mirror of
https://gitee.com/anod/open_agb_firm.git
synced 2025-05-06 05:44:11 +08:00
修改atp_tips的范围,只负责右下角不再处理左下角
This commit is contained in:
parent
b295977380
commit
af2e807134
@ -107,8 +107,8 @@ extern atp_error_t atp_select(
|
||||
);
|
||||
|
||||
extern atp_error_t atp_tips(
|
||||
INPUT(atp_text_t) tips_at_bottom_left,
|
||||
INPUT(atp_text_t) tips_at_bottom_right
|
||||
INPUT(atp_text_t) tips_string,
|
||||
OUTPUT(atp_text_t) tips_before
|
||||
);
|
||||
|
||||
#undef INPUT
|
||||
|
@ -7,8 +7,8 @@
|
||||
|
||||
#define TITLE_MAX 8
|
||||
#define TIPS_MAX 64
|
||||
static char ta[TIPS_MAX] = {'\0'};
|
||||
static char tb[TIPS_MAX] = {'\0'};
|
||||
static char dymt[TIPS_MAX] = {'\0'};
|
||||
static atp_text_t stct = NULL;
|
||||
|
||||
#define ATP_COLOR_SIZE (ATP_COLOR_WHITE+1)
|
||||
|
||||
@ -79,8 +79,8 @@ const char *acf_put_text(int x, int y, int width, int height, int maxwidth, u8 c
|
||||
static void screen_clean()
|
||||
{
|
||||
memset(consoleGet()->frameBuffer, 0, WINDOW_WIDTH*WINDOW_HEIGHT*sizeof(uint16_t));
|
||||
if( ta[0] ) acf_put_text( 5, 215, WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_WIDTH-10, ATP_COLOR_CYAN, ATP_PLACEMENT_LEFT, ta );
|
||||
if( tb[0] ) acf_put_text( 5, 215, WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_WIDTH-10, ATP_COLOR_CYAN, ATP_PLACEMENT_RIGHT, tb );
|
||||
if( dymt[0] ) acf_put_text( 5, 215, WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_WIDTH-10, ATP_COLOR_CYAN, ATP_PLACEMENT_LEFT, dymt );
|
||||
if( stct[0] ) acf_put_text( 5, 215, WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_WIDTH-10, ATP_COLOR_CYAN, ATP_PLACEMENT_RIGHT, stct );
|
||||
}
|
||||
|
||||
static void screen_clean_zone( int x, int y, int w, int h )
|
||||
@ -108,6 +108,13 @@ static uint32_t waitKey()
|
||||
return down;
|
||||
}
|
||||
|
||||
static atp_error_t dynamic_tips( atp_text_t tips )
|
||||
{
|
||||
if( strlen(tips) > TIPS_MAX-1 ) return ATP_INDEX_OUTOFRANGE;
|
||||
strcpy( dymt, tips );
|
||||
return ATP_SUCCESS;
|
||||
}
|
||||
|
||||
#define easy_put(text, align, color, row) acf_put_text( \
|
||||
CONTAINER_LEFTTOP_X, \
|
||||
CONTAINER_LEFTTOP_Y+FONT_HEIGHT*(row), \
|
||||
@ -144,6 +151,8 @@ static void container_paint( atp_lineprovider_t provider, atp_callerdata_t data,
|
||||
atp_error_t atp_show( atp_counter_t cnt, atp_lineprovider_t provider, atp_callerdata_t data )
|
||||
{
|
||||
int idx_top = 0;
|
||||
dynamic_tips("");
|
||||
|
||||
screen_clean();
|
||||
container_paint( provider, data, cnt, idx_top );
|
||||
|
||||
@ -197,7 +206,7 @@ static void set_paging( int top, int len )
|
||||
unsigned current = top / CONTAINER_MAX_LINES;
|
||||
char buf[32];
|
||||
ee_snprintf( buf, sizeof(buf), "页码:%d/%d", current+1, total );
|
||||
atp_tips( buf, NULL );
|
||||
dynamic_tips( buf );
|
||||
|
||||
screen_clean();
|
||||
}
|
||||
@ -384,17 +393,17 @@ atp_error_t atp_select( atp_text_t title, atp_counter_t cnt, atp_itemprovider_t
|
||||
}
|
||||
|
||||
|
||||
atp_error_t atp_tips( atp_text_t tipsA, atp_text_t tipsB )
|
||||
atp_error_t atp_tips( atp_text_t tips, atp_text_t *old )
|
||||
{
|
||||
if( tipsA != NULL )
|
||||
if( old != NULL )
|
||||
*old = stct;
|
||||
|
||||
if( tips != NULL )
|
||||
{
|
||||
strncpy( ta, tipsA, TIPS_MAX-1 );
|
||||
ta[TIPS_MAX-1] = 0;
|
||||
}
|
||||
if( tipsB != NULL )
|
||||
{
|
||||
strncpy( tb, tipsB, TIPS_MAX-1 );
|
||||
tb[TIPS_MAX-1] = 0;
|
||||
if( strlen(tips) > TIPS_MAX-1 )
|
||||
return ATP_INDEX_OUTOFRANGE;
|
||||
|
||||
stct = tips;
|
||||
}
|
||||
return ATP_SUCCESS;
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ static atp_text_t folder_help[] = {
|
||||
"A键 查看目录或启动游戏",
|
||||
"B键 上层文件夹",
|
||||
"X键 金手指",
|
||||
"Y键 暂不使用",
|
||||
"Y键 配置游戏键位",
|
||||
"START 查看说明",
|
||||
"SELECT 系统设置"
|
||||
};
|
||||
@ -233,9 +233,10 @@ static atp_error_t display_help( atp_callerdata_t table, atp_counter_t index, at
|
||||
|
||||
atp_error_t help_page( atp_text_t *wording, atp_counter_t length )
|
||||
{
|
||||
atp_tips( NULL, "返回:按A/B" );
|
||||
atp_text_t current;
|
||||
atp_tips( "返回:按A/B", ¤t );
|
||||
atp_error_t res = atp_show( length, display_help, (atp_callerdata_t)wording );
|
||||
atp_tips( NULL, "指引:按START" );
|
||||
atp_tips( current, NULL );
|
||||
return res;
|
||||
}
|
||||
|
||||
@ -658,7 +659,6 @@ static atp_pageopt_t serve_on_key( atp_callerdata_t data, atp_counter_t index, a
|
||||
{
|
||||
if( start )
|
||||
{
|
||||
atp_tips( "", NULL );
|
||||
return WAIT_ON_ACT( help_page( folder_help, sizeof(folder_help)/sizeof(atp_text_t) ) );
|
||||
}
|
||||
else if( select )
|
||||
@ -736,7 +736,8 @@ static atp_pageopt_t serve_on_key( atp_callerdata_t data, atp_counter_t index, a
|
||||
uint8_t status = DISP_REGION;
|
||||
atp_counter_t defi = 0;
|
||||
acl_entryid_t eid = 0;
|
||||
atp_tips(NULL, "确定A/取消B");
|
||||
atp_text_t oldtips;
|
||||
atp_tips("确定A/取消B", &oldtips);
|
||||
|
||||
while( status != DISP_DONE )
|
||||
{
|
||||
@ -812,7 +813,7 @@ static atp_pageopt_t serve_on_key( atp_callerdata_t data, atp_counter_t index, a
|
||||
}
|
||||
|
||||
acl_close_lib();
|
||||
atp_tips( NULL, "指引:按START" );
|
||||
atp_tips( oldtips, NULL );
|
||||
return WAIT_ON_ACT( res );
|
||||
}
|
||||
else if( y )
|
||||
@ -823,6 +824,8 @@ static atp_pageopt_t serve_on_key( atp_callerdata_t data, atp_counter_t index, a
|
||||
#endif
|
||||
atp_itemval_t position=0, field=0, value;
|
||||
atp_error_t res;
|
||||
atp_text_t oldtips;
|
||||
atp_tips( "确定A/取消B", oldtips );
|
||||
|
||||
#define DISP_KPOS 1
|
||||
#define DISP_SETK 2 // SET KEY
|
||||
@ -967,6 +970,7 @@ static atp_pageopt_t serve_on_key( atp_callerdata_t data, atp_counter_t index, a
|
||||
else break;
|
||||
}
|
||||
}
|
||||
atp_tips( oldtips, NULL );
|
||||
|
||||
return WAIT_ON_ACT(res);
|
||||
}
|
||||
@ -1022,7 +1026,7 @@ Result browseFiles(const char *const basePath, char selected[512])
|
||||
{
|
||||
GFX_waitForVBlank0();
|
||||
hidScanInput();
|
||||
atp_tips( NULL, "指引:按START" );
|
||||
atp_tips( "指引:按START", NULL );
|
||||
void *cust[2] = {dList, curDir};
|
||||
error = atp_select( curDir, count, display_folder, serve_on_key, (atp_callerdata_t)cust, selecting, 0, &value );
|
||||
}
|
||||
@ -1067,9 +1071,7 @@ Result browseFiles(const char *const basePath, char selected[512])
|
||||
{// 上层目录
|
||||
if( strcmp(curDir, FS_DRIVE_NAMES) == 0 )
|
||||
{
|
||||
atp_tips("没有上层目录", NULL);
|
||||
help_page( folder_help, sizeof(folder_help)/sizeof(atp_text_t) );
|
||||
atp_tips("", NULL);
|
||||
atp_show(1, disp_str, "没有上层目录");
|
||||
}
|
||||
else DIRUP;
|
||||
}
|
||||
|
@ -43,7 +43,9 @@ void keyremix_freeze()
|
||||
temp[0].game_keys = p->game_keys;
|
||||
has_cheat = 1;
|
||||
}
|
||||
else if( p->remix_type != REMIX_TYPE_NONE )
|
||||
else if( p->remix_type != REMIX_TYPE_NONE
|
||||
&& p->device_keys != 0
|
||||
&& p->game_keys != 0 )
|
||||
{
|
||||
temp[j].remix_type = p->remix_type;
|
||||
temp[j].device_keys = p->device_keys;
|
||||
|
@ -278,7 +278,6 @@ static atp_pageopt_t config_adjust( atp_callerdata_t, atp_counter_t index, atp_b
|
||||
}
|
||||
else if( start )
|
||||
{
|
||||
atp_tips("", NULL);
|
||||
return ATP_POWER_OFF == help_page( config_help, sizeof(config_help)/sizeof(atp_text_t) )
|
||||
? ATP_POWER_OFF : ATP_PAGE_REFRESH;
|
||||
}
|
||||
@ -305,12 +304,15 @@ atp_error_t oaf_config_page()
|
||||
static char title[210];
|
||||
memcpy( base, &g_oafConfig, sizeof(g_oafConfig) );
|
||||
OafConfig *prev = (OafConfig*)&base[0];
|
||||
atp_text_t oldtips;
|
||||
atp_tips("保存X/确定A/取消B", &oldtips);
|
||||
|
||||
ee_snprintf(
|
||||
title, sizeof(title),
|
||||
"参数配置 当前电量:%3d%%"
|
||||
"每次开机存档方案重置为“和卡带序列号一致”,这个方案会优先使用游戏最后一次启动时设置的存档类型", MCU_getBatteryLevel());
|
||||
atp_error_t res = atp_select( title, 5, config_item, config_adjust, NULL, 0, 0, NULL );
|
||||
atp_tips( oldtips, NULL );
|
||||
if( res == ATP_NO_ACTION )
|
||||
{
|
||||
memcpy( &g_oafConfig, prev, sizeof(g_oafConfig) );
|
||||
|
Loading…
x
Reference in New Issue
Block a user