diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c b/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c index 7da789f2..bfd71dd2 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c @@ -123,7 +123,7 @@ void MachineSettingInit( void ) GX_DispOff(); GXS_DispOff(); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"MACHINE SETTINGS" ); @@ -132,11 +132,12 @@ void MachineSettingInit( void ) s_pStrSetting[ i ] = s_pStrSettingElemTbl[ i ][ TSD_GetLanguage() ]; } + ChangeUserColor( TSD_GetUserColor() ); DrawMenu( s_csr, &s_settingParam ); SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn(); diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c b/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c index 18ab0199..3254fc28 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c @@ -299,7 +299,7 @@ int TP_CalibrationMain( void ) switch (s_pTPC->seq) { case INIT: - NNS_G2dCharCanvasClearArea( &gCanvas, TXT_COLOR_WHITE, + NNS_G2dCharCanvasClearArea( &gCanvas, TXT_COLOR_NULL, 0 * 8 , 20 * 8, 32 * 8, 4 * 8 ); s_pTPC->seq = INTERVAL_0; PutStringUTF16( 2 * 8, 21 * 8, TXT_COLOR_CYAN, (const u16 *)L"[B]:CANCEL" ); @@ -365,7 +365,7 @@ int TP_CalibrationMain( void ) TP_GetUnCalibratedPoint( &tpd.disp.x, &tpd.disp.y, DISP_X_SIZE / 2, DISP_Y_SIZE / 2 ); s_pTPC->seq = GET_POINT; - NNS_G2dCharCanvasClearArea( &gCanvas, TXT_COLOR_WHITE, + NNS_G2dCharCanvasClearArea( &gCanvas, TXT_COLOR_NULL, 2 * 8 , 21 * 8, 10 * 8, 2 * 8 ); PutStringUTF16( OK_BUTTON_TOP_X, OK_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L" OK "); PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L" CANCEL "); @@ -475,7 +475,7 @@ void TP_CalibrationInit( void ) { GX_DispOff(); GXS_DispOff(); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"TOUCH PANEL CALIBRATION" ); @@ -492,7 +492,7 @@ void TP_CalibrationInit( void ) SVC_CpuClear( 0x0000, s_pTPC, sizeof(CalibWork), 16 ); SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_OBJ ); + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_OBJ ); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn(); diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/misc.c b/build/systemMenu_RED/MachineSettings/ARM9/src/misc.c index b04065ff..42dedff6 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/misc.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/misc.c @@ -29,6 +29,8 @@ enum { TXT_CPALETTE_MAIN, TXT_CPALETTE_USERCOLOR, + TXT_CPALETTE_USERCOLORSAMPLE1, + TXT_CPALETTE_USERCOLORSAMPLE2, TXT_CPALETTE_4BPP, TXT_NUM_CPALEETE }; @@ -36,12 +38,22 @@ enum // デモ共通のカラーパレット GXRgb TXTColorPalette[TXT_NUM_CPALEETE * 16] = { - GX_RGB(31, 31, 31), GX_RGB(31, 31, 31), GX_RGB( 0, 0, 0), GX_RGB(31, 0, 0), + GX_RGB(31, 31, 31), GX_RGB(31, 31, 31), GX_RGB( 0, 0, 0), GX_RGB(31, 0, 0),// 基本文字色 GX_RGB( 0, 31, 0), GX_RGB( 0, 0, 31), GX_RGB( 0, 31, 31), GX_RGB(31, 0, 31), GX_RGB(31, 31, 0), GX_RGB( 0, 0, 0), GX_RGB( 0, 0, 0), GX_RGB( 0, 0, 0), GX_RGB( 0, 0, 0), GX_RGB( 0, 0, 0), GX_RGB( 0, 0, 0), GX_RGB( 0, 0, 0), - GX_RGB( 0, 0, 0), GX_RGB(12, 16, 19), GX_RGB(23, 9, 0), GX_RGB(31, 0, 3), + GX_RGB( 0, 0, 0), GX_RGB(12, 16, 19), GX_RGB(23, 9, 0), GX_RGB(31, 0, 3),// ユーザーカラー領域 + GX_RGB(31, 17, 31), GX_RGB(31, 18, 0), GX_RGB(30, 28, 0), GX_RGB(21, 31, 0), + GX_RGB( 0, 20, 7), GX_RGB( 9, 27, 17), GX_RGB( 6, 23, 30), GX_RGB( 0, 11, 30), + GX_RGB( 0, 0, 18), GX_RGB(17, 0, 26), GX_RGB(26, 0, 29), GX_RGB(31, 0, 18), + + GX_RGB( 0, 0, 0), GX_RGB(12, 16, 19), GX_RGB(23, 9, 0), GX_RGB(31, 0, 3),// ユーザーカラーのサンプル領域2 + GX_RGB(31, 17, 31), GX_RGB(31, 18, 0), GX_RGB(30, 28, 0), GX_RGB(21, 31, 0), + GX_RGB(12, 16, 19), GX_RGB(23, 9, 0), GX_RGB(31, 0, 3), GX_RGB(31, 17, 31), + GX_RGB(31, 18, 0), GX_RGB(30, 28, 0), GX_RGB(21, 31, 0), GX_RGB( 0, 31, 0), + + GX_RGB( 0, 0, 0), GX_RGB(12, 16, 19), GX_RGB(23, 9, 0), GX_RGB(31, 0, 3),// ユーザーカラーのサンプル領域1 GX_RGB(31, 17, 31), GX_RGB(31, 18, 0), GX_RGB(30, 28, 0), GX_RGB(21, 31, 0), GX_RGB( 0, 20, 7), GX_RGB( 9, 27, 17), GX_RGB( 6, 23, 30), GX_RGB( 0, 11, 30), GX_RGB( 0, 0, 18), GX_RGB(17, 0, 26), GX_RGB(26, 0, 29), GX_RGB(31, 0, 18), @@ -52,6 +64,46 @@ GXRgb TXTColorPalette[TXT_NUM_CPALEETE * 16] = GRAY( 8), GRAY( 6), GRAY( 3), GRAY( 0), }; +// グラデパレットを作るためのマクロ +#define MAKECOLOR(r,g,b) GX_RGB( 0, 0, 0), GX_RGB(r, g, b), MC(r,g,b,1), MC(r,g,b,2),\ + MC(r,g,b,3), MC(r,g,b,4), MC(r,g,b,5), MC(r,g,b,6),\ + MC(r,g,b,7), MC(r,g,b,8), MC(r,g,b,9), MC(r,g,b,10),\ + MC(r,g,b,11), MC(r,g,b,12), MC(r,g,b,13), GX_RGB(31, 31, 31) + +#define MC(r,g,b,i) GX_RGB(r+((31-r)*i)/14, g+((31-g)*i)/14, b+((31-b)*i)/14) + +// ユーザーカラーパレット切り替え用 +GXRgb TempPalette[16 * 16] = +{ + MAKECOLOR(12, 16, 19), + MAKECOLOR(23, 9, 0), + MAKECOLOR(31, 0, 3), + MAKECOLOR(31, 17, 31), + MAKECOLOR(31, 18, 0), + MAKECOLOR(30, 28, 0), + MAKECOLOR(21, 31, 0), + MAKECOLOR( 0, 31, 0), + MAKECOLOR( 0, 20, 7), + MAKECOLOR( 9, 27, 17), + MAKECOLOR( 6, 23, 30), + MAKECOLOR( 0, 11, 30), + MAKECOLOR( 0, 0, 18), + MAKECOLOR(17, 0, 26), + MAKECOLOR(26, 0, 29), + MAKECOLOR(31, 0, 18), +}; + +const unsigned int bg_char_data[16 * 3] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000,// 0000h + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x11111111, 0x44444444, 0x77777777, 0x99999999,// 0001h + 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, + 0xdddddddd, 0xdddddddd, 0xdddddddd, 0xeeeeeeee,// 0002h + 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,// 0003h + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, +}; + // extern data----------------------------------------------------------------- // define data----------------------------------------------------------------- @@ -96,6 +148,59 @@ static RTCDate s_rtcDate; static RTCTime s_rtcTime; static u16 s_vcount; + +static const u16 sScrnBuf[32 * 32]= +{ + 0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,//0 + 0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001, + 0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,//1 + 0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//2 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//3 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//4 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//5 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//6 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//7 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//8 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//9 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//10 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//11 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//12 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//13 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//14 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//15 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//16 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//17 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//18 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//19 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//20 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,//21 + 0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003,0x1003, + 0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,//22 + 0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802, + 0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,//23 + 0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, +};// Buffer for screen data(背景の枠) + static char s_strBuffer[ STRING_LENGTH_MAX * 2 ] ATTRIBUTE_ALIGN(2); static u16 s_strBufferUTF16[ STRING_LENGTH_MAX ]; @@ -213,17 +318,29 @@ static void InitScreen( void ) // メイン画面 BG 0 を設定 G2_SetBG0Control( GX_BG_SCRSIZE_TEXT_256x256, // スクリーンサイズ 256x256 - GX_BG_COLORMODE_16, // カラーモード 16色 + GX_BG_COLORMODE_256, // カラーモード 256色 GX_BG_SCRBASE_0xf800, // スクリーンベース GX_BG_CHARBASE_0x00000, // キャラクタベース GX_BG_EXTPLTT_01 // 拡張パレットスロット ); - GX_SetVisiblePlane( GX_PLANEMASK_BG0 ); - + G2_SetBG1Control( + GX_BG_SCRSIZE_TEXT_256x256, // 256pix x 256pix text + GX_BG_COLORMODE_16, // use 16 colors mode + GX_BG_SCRBASE_0xf000, // screen base offset + 0x0000 is the address for BG #1 screen + GX_BG_CHARBASE_0x10000, // character base offset + 0x04000 is the address for BG #0 characters + GX_BG_EXTPLTT_01 // use BGExtPltt slot #0 if BGExtPltt is enabled + ); + GX_SetVisiblePlane( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); + G2_SetBG0Priority(0); + G2_SetBG1Priority(1); + + GX_LoadBG1Char(bg_char_data, 0, sizeof(bg_char_data)); + GX_LoadBG1Scr(sScrnBuf, 0, sizeof(sScrnBuf)); + // サブ画面 BG 0 を設定 G2S_SetBG0Control( GX_BG_SCRSIZE_TEXT_256x256, // 256pix x 256pix text - GX_BG_COLORMODE_16, // use 256 colors mode + GX_BG_COLORMODE_16, // use 16 colors mode GX_BG_SCRBASE_0xf800, // screen base offset + 0x0000 is the address for BG #0 screen GX_BG_CHARBASE_0x00000, // character base offset + 0x04000 is the address for BG #0 characters GX_BG_EXTPLTT_01 // use BGExtPltt slot #0 if BGExtPltt is enabled @@ -250,10 +367,10 @@ static void InitCanvas( void ) // CharCanvas の初期化 NNS_G2dCharCanvasInitForBG( &gCanvas, - (GXCharFmt16*)G2_GetBG0CharPtr() + CHARACTER_OFFSET, + (GXCharFmt256*)G2_GetBG0CharPtr() + CHARACTER_OFFSET, CANVAS_WIDTH, CANVAS_HEIGHT, - NNS_G2D_CHARA_COLORMODE_16 + NNS_G2D_CHARA_COLORMODE_256 ); // TextCanvasの初期化 @@ -638,3 +755,15 @@ void GetAndDrawRTCData( RTCDrawProperty *pRTCDraw, BOOL forceGetFlag ) DrawRTCData( pRTCDraw ); } } + +// ユーザーカラーの切り替え +void ChangeUserColor( u8 col ) +{ + int l; + if(col > 15) return; + for(l=0;l<16;l++) + { + TXTColorPalette[16+l] = TempPalette[16 * col + l]; + } + GX_LoadBGPltt( TXTColorPalette, 0, sizeof(TXTColorPalette) ); +} \ No newline at end of file diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/misc.h b/build/systemMenu_RED/MachineSettings/ARM9/src/misc.h index c2178276..bac424ba 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/misc.h +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/misc.h @@ -76,6 +76,7 @@ enum TXT_COLOR_4BPP_TEXT=1 }; +#define TXT_COLOR_USER 17 // 時計表示場所 #define RTC_DATE_TOP_X ( 9 * 8 ) @@ -163,6 +164,7 @@ void SetBannerIconOBJ( GXOamAttr *pDstOAM, BannerFileV1 *bannerp ); BOOL GetRTCData( RTCDrawProperty *pRTCDraw, BOOL forceGetFlag ); void DrawRTCData( RTCDrawProperty *pRTCDraw ); void GetAndDrawRTCData( RTCDrawProperty *pRTCDraw, BOOL forceGetFlag ); +void ChangeUserColor( u8 col ); #ifdef __cplusplus } diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c b/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c index ec51bf89..a618d72a 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c @@ -72,7 +72,7 @@ void SelectLanguageInit( void ) { GX_DispOff(); GXS_DispOff(); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"LANGUAGE SELECT" ); PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L"CANCEL" ); @@ -91,7 +91,7 @@ void SelectLanguageInit( void ) SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn(); diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/setOwnerInfo.c b/build/systemMenu_RED/MachineSettings/ARM9/src/setOwnerInfo.c index a59e50c8..f93f4690 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/setOwnerInfo.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/setOwnerInfo.c @@ -22,8 +22,10 @@ // define data---------------------------------- // ソフトウェアキーボードLCD領域 -#define CLIST_LT_X 18 -#define CLIST_LT_Y 40 +#define CLIST_LT_X 23 +#define CLIST_LT_Y 50 + +#define CLIST_MARGIN 14 #define CANCEL_BUTTON_TOP_X ( 2 * 8 ) #define CANCEL_BUTTON_TOP_Y ( 21 * 8 ) @@ -55,6 +57,12 @@ typedef struct CsrPos { u16 y; // y }CsrPos; +typedef enum NameOrComment +{ + NOC_NAME, + NOC_COMMENT +}NameOrComment; + // extern data---------------------------------- @@ -74,7 +82,9 @@ static u16 s_csr = 0; static const u16 *s_pStrSetting[ USER_INFO_MENU_ELEMENT_NUM ]; // メインメニュー用文字テーブルへのポインタリスト static int char_mode = 0; static u16 s_key_csr = 0; +static u8 s_color_csr = 0; static TWLNickname s_temp_name; +static TWLComment s_temp_comment; // const data----------------------------------- static const u16 char_tbl[CHAR_LIST_MODE_NUM][CHAR_LIST_CHAR_NUM]; @@ -172,6 +182,28 @@ static void SetSoftKeyboardButton(int mode) char_mode = mode; } +static void DrawOwnerInfoMenuScene( void ) +{ + u16 tempbuf[TWL_COMMENT_LENGTH+2]; + u8 color; + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); + PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"USER INFORMATION" ); + PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_USER, (const u16 *)L"CANCEL" ); + // メニュー項目 + DrawMenu( s_csr, &s_settingParam ); + // ニックネーム + PutStringUTF16( 128 , 8*8, TXT_COLOR_USER, TSD_GetNickname()->buffer ); + // カラー + color = TSD_GetUserColor(); + PutStringUTF16( 128 , 12*8, TXT_COLOR_USER, L"■" ); + // コメント + SVC_CpuCopy( TSD_GetComment()->buffer, tempbuf, 13 * 2, 16 ); + *(tempbuf+13)='\n'; + SVC_CpuCopy( TSD_GetComment()->buffer+13, tempbuf+14, 13 * 2, 16 ); + *(tempbuf+TWL_COMMENT_LENGTH+1)=0; + PutStringUTF16( 128-78 , 16*8 , TXT_COLOR_USER, tempbuf ); +} + // オーナー情報編集の初期化 void SetOwnerInfoInit( void ) { @@ -180,21 +212,16 @@ void SetOwnerInfoInit( void ) GX_DispOff(); GXS_DispOff(); - PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"USER INFORMATION" ); - PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L"CANCEL" ); - // NITRO設定データのlanguageに応じたメインメニュー構成言語の切り替え for( i = 0; i < USER_INFO_MENU_ELEMENT_NUM; i++ ) { s_pStrSetting[ i ] = s_pStrSettingElemTbl[ i ][ TSD_GetLanguage() ]; } - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); - DrawMenu( s_csr, &s_settingParam ); - PutStringUTF16( 128 , 8*8, TXT_COLOR_CYAN, TSD_GetNickname()->buffer ); + DrawOwnerInfoMenuScene(); SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn(); @@ -222,9 +249,7 @@ int SetOwnerInfoMain( void ) } tp_select = SelectMenuByTP( &s_csr, &s_settingParam ); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); - DrawMenu( s_csr, &s_settingParam ); - PutStringUTF16( 128 , 8*8, TXT_COLOR_CYAN, TSD_GetNickname()->buffer ); + DrawOwnerInfoMenuScene(); // [CANCEL]ボタン押下チェック if( tpd.disp.touch ) { @@ -260,6 +285,7 @@ int SetOwnerInfoMain( void ) return 0; } +// バーチャルキー関係 // キーの表示 static void DrawCharKeys( void ) { @@ -276,28 +302,75 @@ static void DrawCharKeys( void ) if( (code >= CODE_BUTTON_TOP_) && (code < CODE_BUTTON_BOTTOM_) ) { int x = code - CODE_BUTTON_TOP_; - PutStringUTF16( CLIST_LT_X + 15*(l%KEY_PER_LINE) + 7*((l%KEY_PER_LINE)/5) , CLIST_LT_Y + 15*(l/KEY_PER_LINE) , color, str_button[x] ); + PutStringUTF16( CLIST_LT_X + CLIST_MARGIN*(l%KEY_PER_LINE) + 7*((l%KEY_PER_LINE)/5) , + CLIST_LT_Y + CLIST_MARGIN*(l/KEY_PER_LINE) , color, str_button[x] ); } else { u16 s[2]; s[0] = code; s[1] = 0; - PutStringUTF16( CLIST_LT_X + 15*(l%KEY_PER_LINE) + 7*((l%KEY_PER_LINE)/5) , CLIST_LT_Y + 15*(l/KEY_PER_LINE) , color, s ); + PutStringUTF16( CLIST_LT_X + CLIST_MARGIN*(l%KEY_PER_LINE) + 7*((l%KEY_PER_LINE)/5) , + CLIST_LT_Y + CLIST_MARGIN*(l/KEY_PER_LINE) , color, s ); } } } } // 一文字削除 -static void DeleteACharacter( void ) +static void DeleteACharacter( NameOrComment noc ) { - if(s_temp_name.length > 0) s_temp_name.buffer[--s_temp_name.length] = CHAR_USCORE; + u16 *buf; + u8 *length; + if(noc == NOC_NAME) + { + buf = s_temp_name.buffer; + length = &s_temp_name.length; + }else if(noc == NOC_COMMENT) + { + buf = s_temp_comment.buffer; + length = &s_temp_comment.length; + }else + { + //unknown + return; + } + + if(*length > 0) buf[--(*length)] = CHAR_USCORE; } // 選択中文字キー・特殊キーで決定した時の挙動 -static void PushKeys( u16 code ) +static void PushKeys( u16 code, NameOrComment noc ) { + u16 *buf; + u8 *length; + u16 *dest; + u8 *destlength; + u16 max_length; + void (*setflag)(BOOL); + if(noc == NOC_NAME) + { + buf = s_temp_name.buffer; + length = &s_temp_name.length; + dest = TSD_GetNickname()->buffer; + destlength = &TSD_GetNickname()->length; + max_length = TWL_NICKNAME_LENGTH; + setflag = TSD_SetFlagNickname; + }else if(noc == NOC_COMMENT) + { + buf = s_temp_comment.buffer; + length = &s_temp_comment.length; + dest = TSD_GetComment()->buffer; + destlength = &TSD_GetComment()->length; + max_length = TWL_COMMENT_LENGTH; + // setflag = TSD_SetFlagComment; + setflag = NULL; + }else + { + //unknown + return; + } + if( (code >= CODE_BUTTON_TOP_) && (code < CODE_BUTTON_BOTTOM_) ) { // 特殊キー @@ -308,16 +381,16 @@ static void PushKeys( u16 code ) SetSoftKeyboardButton(next_char_mode[code - VAR_BUTTON1_]); break; case DEL_BUTTON_: - DeleteACharacter(); + DeleteACharacter(noc); break; case SPACE_BUTTON_: - if(s_temp_name.length < TWL_NICKNAME_LENGTH) s_temp_name.buffer[s_temp_name.length++] = L' '; + if(*length < max_length) buf[(*length)++] = L' '; break; case OK_BUTTON_: - TSD_SetFlagNickname( TRUE );// ニックネーム設定完了フラグを立てておく - SVC_CpuClear(0, TSD_GetNickname()->buffer, (TWL_NICKNAME_LENGTH + 1) * 2, 16);// ゼロクリア - TSD_GetNickname()->length = s_temp_name.length;// 長さコピー - SVC_CpuCopy( s_temp_name.buffer, TSD_GetNickname()->buffer, s_temp_name.length * 2, 16 );// 内容コピー + if(setflag) setflag(TRUE);// 設定完了フラグを立てておく + SVC_CpuClear(0, dest, (max_length + 1) * 2, 16);// ゼロクリア + *destlength = *length;// 長さコピー + SVC_CpuCopy( buf, dest, (*length) * 2, 16 );// 内容コピー (void)SYSM_WriteTWLSettingsFile();// ファイルへ書き込み // セーブ後にキャンセル処理と合流 case CANCEL_BUTTON_: @@ -331,50 +404,15 @@ static void PushKeys( u16 code ) else { // 普通キー - if(s_temp_name.length < TWL_NICKNAME_LENGTH) s_temp_name.buffer[s_temp_name.length++] = code; + if(*length < max_length) buf[(*length)++] = code; } } -static void DrawSetNicknameScene( void ) +// バーチャルキー上でのキーパッド及びタッチパッド処理 +// 先にReadTPしておくこと。 +static void PadDetectOnKey( NameOrComment noc ) { - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); - PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"NICKNAME" ); - DrawCharKeys(); - PutStringUTF16( 128-60 , 15 , TXT_COLOR_CYAN, s_temp_name.buffer ); -} - -// ニックネーム編集の初期化 -static void SetNicknameInit( void ) -{ - GX_DispOff(); - GXS_DispOff(); - - SetSoftKeyboardButton(0); - s_key_csr = 0; - - // ニックネーム用テンポラリバッファの初期化 - s_temp_name.length = TSD_GetNickname()->length; - SVC_CpuClear(CHAR_USCORE, s_temp_name.buffer, TWL_NICKNAME_LENGTH * 2, 16); - SVC_CpuCopy( TSD_GetNickname()->buffer, s_temp_name.buffer, s_temp_name.length * 2, 16 ); - s_temp_name.buffer[TWL_NICKNAME_LENGTH] = 0; - - DrawSetNicknameScene(); - - SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); - GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); - GX_DispOn(); - GXS_DispOn(); -} - -// ニックネーム編集メイン -static int SetNicknameMain( void ) -{ - BOOL tp_select,tp_cancel = FALSE; - - ReadTP(); - + BOOL tp_select = FALSE; //-------------------------------------- // キー入力処理 //-------------------------------------- @@ -413,20 +451,56 @@ static int SetNicknameMain( void ) } while(char_tbl[char_mode][s_key_csr]==EOM_); } - tp_select = SelectMenuByTP( &s_csr, &s_settingParam ); - - // [CANCEL]ボタン押下チェック - if( tpd.disp.touch ) { - tp_cancel = WithinRangeTP( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, - CANCEL_BUTTON_BOTTOM_X, CANCEL_BUTTON_BOTTOM_Y, &tpd.disp ); - } if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // Aキーが押された - PushKeys( char_tbl[char_mode][s_key_csr] ); + PushKeys( char_tbl[char_mode][s_key_csr], noc ); }else if( pad.trg & PAD_BUTTON_B ) { - DeleteACharacter(); + DeleteACharacter(noc); } - if(pad.trg || tpd.disp.touch) +} + +// ニックネーム編集画面の描画処理 +static void DrawSetNicknameScene( void ) +{ + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); + PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"NICKNAME" ); + DrawCharKeys(); + PutStringUTF16( 128-60 , 21 , TXT_COLOR_USER, s_temp_name.buffer ); +} + +// ニックネーム編集の初期化 +static void SetNicknameInit( void ) +{ + GX_DispOff(); + GXS_DispOff(); + + SetSoftKeyboardButton(0); + s_key_csr = 0; + + // ニックネーム用テンポラリバッファの初期化 + s_temp_name.length = TSD_GetNickname()->length; + SVC_CpuClear(CHAR_USCORE, s_temp_name.buffer, TWL_NICKNAME_LENGTH * 2, 16); + SVC_CpuCopy( TSD_GetNickname()->buffer, s_temp_name.buffer, s_temp_name.length * 2, 16 ); + s_temp_name.buffer[TWL_NICKNAME_LENGTH] = 0; + + DrawSetNicknameScene(); + + SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); + + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); + GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); + GX_DispOn(); + GXS_DispOn(); +} + +// ニックネーム編集メイン +static int SetNicknameMain( void ) +{ + ReadTP(); + + PadDetectOnKey(NOC_NAME); + + if(pad.trg || tpd.disp.touch) {// 描画処理……ボタン押したorタッチ時ぐらいで十分 DrawSetNicknameScene(); } @@ -441,10 +515,10 @@ static void SetBirthdayInit( void ) GX_DispOff(); GXS_DispOff(); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"BIRTHDAY" ); - PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L"CANCEL" ); + PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_USER, (const u16 *)L"CANCEL" ); // NITRO設定データのlanguageに応じたメインメニュー構成言語の切り替え for( i = 0; i < USER_INFO_MENU_ELEMENT_NUM; i++ ) { @@ -455,7 +529,7 @@ static void SetBirthdayInit( void ) SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn(); @@ -519,28 +593,33 @@ static int SetBirthdayMain( void ) return 0; } +static void DrawColorSample( void ) +{ + int l; + + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); + PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"USER COLOR" ); + PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_USER, (const u16 *)L"CANCEL" ); + for(l=0;l<16;l++) //16色 + { + PutStringUTF16( 88 + 24 * (l%4), 54 + 24 * (l/4), 40 + l + 8 * (l/8), (const u16 *)L"■" ); + } + PutStringUTF16( 88 + 24 * (s_color_csr%4), 54 + 24 * (s_color_csr/4), TXT_COLOR_WHITE, (const u16 *)L"☆" ); +} + // ユーザーカラー編集の初期化 static void SetUserColorInit( void ) { - int i; - GX_DispOff(); GXS_DispOff(); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); - PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"USER COLOR" ); - PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L"CANCEL" ); - - // NITRO設定データのlanguageに応じたメインメニュー構成言語の切り替え - for( i = 0; i < USER_INFO_MENU_ELEMENT_NUM; i++ ) { - s_pStrSetting[ i ] = s_pStrSettingElemTbl[ i ][ TSD_GetLanguage() ]; - } - - DrawMenu( s_csr, &s_settingParam ); + DrawColorSample(); SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); + s_color_csr = TSD_GetUserColor(); + + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn(); @@ -549,7 +628,7 @@ static void SetUserColorInit( void ) // ユーザーカラー編集メイン static int SetUserColorMain( void ) { - BOOL tp_select,tp_cancel = FALSE; + BOOL tp_cancel = FALSE; ReadTP(); @@ -557,17 +636,21 @@ static int SetUserColorMain( void ) // キー入力処理 //-------------------------------------- if( pad.trg & PAD_KEY_DOWN ){ // カーソルの移動 - if( ++s_csr == USER_INFO_MENU_ELEMENT_NUM ) { - s_csr=0; - } + s_color_csr += 4; + if(s_color_csr >= 16) s_color_csr -= 16; } if( pad.trg & PAD_KEY_UP ){ - if( --s_csr & 0x80 ) { - s_csr=USER_INFO_MENU_ELEMENT_NUM - 1; - } + if(s_color_csr < 4) s_color_csr += 16; + s_color_csr -= 4; + } + if( pad.trg & PAD_KEY_RIGHT ){ + s_color_csr += 1; + if(s_color_csr%4 == 0) s_color_csr -= 4; + } + if( pad.trg & PAD_KEY_LEFT ){ + if(s_color_csr%4 == 0) s_color_csr += 4; + s_color_csr -= 1; } - tp_select = SelectMenuByTP( &s_csr, &s_settingParam ); - DrawMenu( s_csr, &s_settingParam ); // [CANCEL]ボタン押下チェック if( tpd.disp.touch ) { @@ -575,57 +658,65 @@ static int SetUserColorMain( void ) CANCEL_BUTTON_BOTTOM_X, CANCEL_BUTTON_BOTTOM_Y, &tpd.disp ); } - if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐 - if( s_settingPos[ s_csr ].enable ) { - switch( s_csr ) { - case 0: - SetNicknameInit(); - g_pNowProcess = SetNicknameMain; - break; - case 1: - SetBirthdayInit(); - g_pNowProcess = SetBirthdayMain; - break; - case 2: - SetUserColorInit(); - g_pNowProcess = SetUserColorMain; - break; - case 3: - SetCommentInit(); - g_pNowProcess = SetCommentMain; - break; - } - } + DrawColorSample(); + + if( ( pad.trg & PAD_BUTTON_A ) ) { // 色決定 + TSD_SetUserColor( (u8 )s_color_csr ); + TSD_SetFlagUserColor( TRUE ); + (void)SYSM_WriteTWLSettingsFile();// ファイルへ書き込み + SetOwnerInfoInit(); + g_pNowProcess = SetOwnerInfoMain; + return 0; }else if( ( pad.trg & PAD_BUTTON_B ) || tp_cancel ) { + ChangeUserColor( TSD_GetUserColor() ); // パレット色を元にもどす SetOwnerInfoInit(); g_pNowProcess = SetOwnerInfoMain; return 0; } + + if(pad.trg || tpd.disp.touch) + {// 描画処理……ボタン押したorタッチ時ぐらいで十分 + ChangeUserColor( s_color_csr ); + DrawColorSample(); + } + return 0; } +// コメント編集画面の描画処理 +static void DrawSetCommentScene( void ) +{ + u16 tempbuf[TWL_COMMENT_LENGTH+2]; + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); + PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"COMMENT" ); + DrawCharKeys(); + SVC_CpuCopy( s_temp_comment.buffer, tempbuf, 13 * 2, 16 ); + *(tempbuf+13)='\n'; + SVC_CpuCopy( s_temp_comment.buffer+13, tempbuf+14, 13 * 2, 16 ); + *(tempbuf+TWL_COMMENT_LENGTH+1)=0; + PutStringUTF16( 128-78 , 15 , TXT_COLOR_USER, tempbuf ); +} + // コメント編集の初期化 static void SetCommentInit( void ) { - int i; - GX_DispOff(); GXS_DispOff(); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); - PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"COMMENT" ); - PutStringUTF16( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L"CANCEL" ); + SetSoftKeyboardButton(0); + s_key_csr = 0; - // NITRO設定データのlanguageに応じたメインメニュー構成言語の切り替え - for( i = 0; i < USER_INFO_MENU_ELEMENT_NUM; i++ ) { - s_pStrSetting[ i ] = s_pStrSettingElemTbl[ i ][ TSD_GetLanguage() ]; - } + // コメント用テンポラリバッファの初期化 + s_temp_comment.length = TSD_GetComment()->length; + SVC_CpuClear(CHAR_USCORE, s_temp_comment.buffer, TWL_COMMENT_LENGTH * 2, 16); + SVC_CpuCopy( TSD_GetComment()->buffer, s_temp_comment.buffer, s_temp_comment.length * 2, 16 ); + s_temp_comment.buffer[TWL_COMMENT_LENGTH] = 0; - DrawMenu( s_csr, &s_settingParam ); + DrawSetCommentScene(); SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn(); @@ -634,58 +725,15 @@ static void SetCommentInit( void ) // コメント編集メイン static int SetCommentMain( void ) { - BOOL tp_select,tp_cancel = FALSE; - ReadTP(); - //-------------------------------------- - // キー入力処理 - //-------------------------------------- - if( pad.trg & PAD_KEY_DOWN ){ // カーソルの移動 - if( ++s_csr == USER_INFO_MENU_ELEMENT_NUM ) { - s_csr=0; - } - } - if( pad.trg & PAD_KEY_UP ){ - if( --s_csr & 0x80 ) { - s_csr=USER_INFO_MENU_ELEMENT_NUM - 1; - } - } - tp_select = SelectMenuByTP( &s_csr, &s_settingParam ); - DrawMenu( s_csr, &s_settingParam ); - - // [CANCEL]ボタン押下チェック - if( tpd.disp.touch ) { - tp_cancel = WithinRangeTP( CANCEL_BUTTON_TOP_X, CANCEL_BUTTON_TOP_Y, - CANCEL_BUTTON_BOTTOM_X, CANCEL_BUTTON_BOTTOM_Y, &tpd.disp ); + PadDetectOnKey(NOC_COMMENT); + + if(pad.trg || tpd.disp.touch) + {// 描画処理……ボタン押したorタッチ時ぐらいで十分 + DrawSetCommentScene(); } - if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐 - if( s_settingPos[ s_csr ].enable ) { - switch( s_csr ) { - case 0: - SetNicknameInit(); - g_pNowProcess = SetNicknameMain; - break; - case 1: - SetBirthdayInit(); - g_pNowProcess = SetBirthdayMain; - break; - case 2: - SetUserColorInit(); - g_pNowProcess = SetUserColorMain; - break; - case 3: - SetCommentInit(); - g_pNowProcess = SetCommentMain; - break; - } - } - }else if( ( pad.trg & PAD_BUTTON_B ) || tp_cancel ) { - SetOwnerInfoInit(); - g_pNowProcess = SetOwnerInfoMain; - return 0; - } return 0; } diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c b/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c index ee3610fe..1d35af08 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c @@ -107,7 +107,7 @@ void SetRTCInit( void ) { GX_DispOff(); GXS_DispOff(); - NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); PutStringUTF16( 0, 0, TXT_COLOR_BLUE, (const u16 *)L"DATE & TIME SET" ); PutStringUTF16( RETURN_BUTTON_TOP_X, RETURN_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L" RETURN " ); @@ -139,7 +139,7 @@ void SetRTCInit( void ) DrawDateTime( &s_pWork->dtp.Date, &s_pWork->dtp.Time, TXT_COLOR_BLACK ); - GX_SetVisiblePlane ( GX_PLANEMASK_BG0 ); + GX_SetVisiblePlane ( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1); GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); GX_DispOn(); GXS_DispOn();