リージョン設定の追加

リージョン設定に伴う言語設定関係連動の実装

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@233 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2007-11-21 02:06:10 +00:00
parent 2c4d4a179c
commit 16b4e815d0
5 changed files with 92 additions and 21 deletions

View File

@ -36,7 +36,7 @@ MISC_DIR = ../../misc
BG_DIR = ../../data
SRCS = main.c MachineSetting.c \
setRTC.c selectLanguage.c calibrationTP.c setOwnerInfo.c \
setRTC.c selectLanguage.c calibrationTP.c setOwnerInfo.c selectRegion.c \
$(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c \
$(BG_DIR)/BGData_MachineSettings.c

View File

@ -33,7 +33,7 @@
#define OK_BUTTON_BOTTOM_Y ( OK_BUTTON_TOP_Y + 2 * 8 )
#define SETTING_MENU_ELEMENT_NUM 4 // メインメニューの項目数
#define SETTING_MENU_ELEMENT_NUM 5 // メインメニューの項目数
// extern data------------------------------------------
@ -66,6 +66,8 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"LANGUAGE(G)",
(const u16 *)L"LANGUAGE(I)",
(const u16 *)L"LANGUAGE(S)",
(const u16 *)L"LANGUAGE(C)",
(const u16 *)L"LANGUAGE(K)",
},
{
(const u16 *)L"日付 & 時刻",
@ -74,6 +76,8 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"DATE & TIME(G)",
(const u16 *)L"DATE & TIME(I)",
(const u16 *)L"DATE & TIME(S)",
(const u16 *)L"DATE & TIME(C)",
(const u16 *)L"DATE & TIME(K)",
},
{
(const u16 *)L"ユーザー情報",
@ -82,6 +86,8 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"USER INFORMATION(G)",
(const u16 *)L"USER INFORMATION(I)",
(const u16 *)L"USER INFORMATION(S)",
(const u16 *)L"USER INFORMATION(C)",
(const u16 *)L"USER INFORMATION(K)",
},
{
(const u16 *)L"タッチパネル補正",
@ -90,6 +96,18 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"TOUCH PANEL(G)",
(const u16 *)L"TOUCH PANEL(I)",
(const u16 *)L"TOUCH PANEL(S)",
(const u16 *)L"TOUCH PANEL(C)",
(const u16 *)L"TOUCH PANEL(K)",
},
{
(const u16 *)L"リージョン設定",
(const u16 *)L"REGION",
(const u16 *)L"REGION(F)",
(const u16 *)L"REGION(G)",
(const u16 *)L"REGION(I)",
(const u16 *)L"REGION(S)",
(const u16 *)L"REGION(C)",
(const u16 *)L"REGION(K)",
},
};
@ -98,6 +116,7 @@ static MenuPos s_settingPos[] = {
{ TRUE, 4 * 8, 10 * 8 },
{ TRUE, 4 * 8, 12 * 8 },
{ TRUE, 4 * 8, 14 * 8 },
{ TRUE, 4 * 8, 16 * 8 },
};
@ -201,6 +220,9 @@ int MachineSettingMain( void )
TP_CalibrationInit();
g_pNowProcess = TP_CalibrationMain;
break;
case 4:
SelectRegionInit();
g_pNowProcess = SelectRegionMain;
}
}
}

View File

@ -63,6 +63,8 @@ extern void SelectLanguageInit( void );
extern int SelectLanguageMain( void );
extern void TP_CalibrationInit( void );
extern int TP_CalibrationMain( void );
extern void SelectRegionInit( void );
extern int SelectRegionMain( void );
extern void DrawOKCancelButton( void );
extern void CheckOKCancelButton(BOOL *tp_ok, BOOL *tp_cancel);

View File

@ -32,29 +32,47 @@
// global variable -------------------------------------
// static variable -------------------------------------
static TWLLangCode s_langCode; // Œ¾ŒêƒR<C692>[ƒh
static int s_lang; // 言語選択肢の何番目を選択しているか
static TWLRegion s_regionCode; // リージョンコード
static const u16* s_pStrLanguage[TWL_LANG_CODE_MAX];
static TWLLangCode s_langCodeList[TWL_LANG_CODE_MAX];
// const data -----------------------------------------
static const u16 *const s_pStrLanguage[] = {
static const u16 region_lang_Mapping[TWL_REGION_MAX] =
{
TWL_LANG_BITMAP_JAPAN,
TWL_LANG_BITMAP_AMERICA,
TWL_LANG_BITMAP_EUROPE,
TWL_LANG_BITMAP_AUSTRALIA,
TWL_LANG_BITMAP_CHINA,
TWL_LANG_BITMAP_KOREA
};
static const u16 *const s_pStrLanguageData[TWL_LANG_CODE_MAX] = {
(const u16 *)L"日本語",
(const u16 *)L"English ",
(const u16 *)L"Francais",
(const u16 *)L"Deutsch ",
(const u16 *)L"Italiano",
(const u16 *)L"Espanol ",
(const u16 *)L"中国語(仮)",
(const u16 *)L"韓国語(仮)"
};
static MenuPos s_languagePos[] = {
static MenuPos s_languagePos[TWL_LANG_CODE_MAX] = {
{ TRUE, 4 * 8, 6 * 8 },
{ TRUE, 4 * 8, 8 * 8 },
{ TRUE, 4 * 8, 10 * 8 },
{ TRUE, 4 * 8, 12 * 8 },
{ TRUE, 4 * 8, 14 * 8 },
{ TRUE, 4 * 8, 16 * 8 },
{ TRUE, 4 * 8, 18 * 8 },
{ TRUE, 4 * 8, 20 * 8 }
};
static const MenuParam langSel = {
6,
static MenuParam langSel = {
TWL_LANG_CODE_MAX,
TXT_COLOR_BLACK,
TXT_COLOR_GREEN,
TXT_COLOR_RED,
@ -70,6 +88,11 @@ static const MenuParam langSel = {
// 言語設定の初期化
void SelectLanguageInit( void )
{
int l;
u16 temp_langCode = 0;
BOOL in_list_flag = FALSE;
int lang_count = 0;
GX_DispOff();
GXS_DispOff();
NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL );
@ -80,14 +103,38 @@ void SelectLanguageInit( void )
PutStringUTF16( 8 * 8, 18 * 8, TXT_COLOR_RED, (const u16 *)L"Select language." );
}
if( SYSM_IsValidTSD() ||
( TSD_GetLanguage() >= TWL_LANG_CODE_MAX ) ) {
s_langCode = TWL_LANG_ENGLISH;
if( !SYSM_IsValidTSD() ||
( TSD_GetRegion() >= TWL_REGION_MAX ) ) {
s_regionCode = (TWLRegion)TWL_DEFAULT_REGION;
}else {
s_langCode = TSD_GetLanguage();
s_regionCode = (TWLRegion)TSD_GetRegion();
}
DrawMenu( (u16)s_langCode, &langSel );
if( !SYSM_IsValidTSD() ||
( TSD_GetLanguage() >= TWL_LANG_CODE_MAX ) ) {
temp_langCode = TWL_LANG_ENGLISH;
}else {
temp_langCode = TSD_GetLanguage();
}
s_lang = 0;
for(l=0; l<TWL_LANG_CODE_MAX; l++)
{
if( ( 0x0001 << l ) & region_lang_Mapping[s_regionCode] )
{
s_pStrLanguage[lang_count] = s_pStrLanguageData[l];
s_langCodeList[lang_count] = (TWLLangCode)l;
if(temp_langCode == l)
{
s_lang = lang_count;
}
lang_count++;
}
}
langSel.num = lang_count;
DrawMenu( (u16)s_lang, &langSel );
SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 );
@ -109,17 +156,17 @@ int SelectLanguageMain( void )
// キー入力処理
//--------------------------------------
if( pad.trg & PAD_KEY_DOWN ) { // カーソルの移動
if( ++s_langCode == TWL_LANG_CODE_MAX ) {
s_langCode = (TWLLangCode)0;
if( ++s_lang == langSel.num ) {
s_lang = (TWLLangCode)0;
}
}
if( pad.trg & PAD_KEY_UP ) {
if( --s_langCode < 0 ) {
s_langCode = (TWLLangCode)( TWL_LANG_CODE_MAX - 1 );
if( --s_lang < 0 ) {
s_lang = (TWLLangCode)( langSel.num - 1 );
}
}
tp_select = SelectMenuByTP( (u16 *)&s_langCode, &langSel );
DrawMenu( (u16)s_langCode, &langSel );
tp_select = SelectMenuByTP( (u16 *)&s_lang, &langSel );
DrawMenu( (u16)s_lang, &langSel );
// [CANCEL]ボタン押下チェック
if( tpd.disp.touch ) {
@ -128,7 +175,7 @@ int SelectLanguageMain( void )
}
if( ( pad.trg & PAD_BUTTON_A ) || tp_select ) { // メニュー項目への分岐
TSD_SetLanguage( s_langCode );
TSD_SetLanguage( s_langCodeList[s_lang] );
TSD_SetFlagLanguage( TRUE ); // 言語入力フラグを立てる
// ::::::::::::::::::::::::::::::::::::::::::::::
// TWL設定データファイルへの書き込み

View File

@ -39,7 +39,7 @@ extern "C" {
#define TWL_COMMENT_BUFFERSIZE ( ( TWL_COMMENT_LENGTH + 1 ) * 2 ) // コメントバッファサイズ
#define TWL_FAVORITE_COLOR_MAX_NUM NTR_FAVORITE_COLOR_MAX_NUM // 好きな色の最大数
#define TSD_TEMP_BUFFER_SIZE ( sizeof(TSDStore) * 2 ) // TSD_ReadTWLSettingsで必要なTempBufferサイズ
#define TWL_BACKLIGHT_LEVEL_MAX 22 // バックライト輝度上限(ハード的な制約は上限のみ)
// 言語コード
// 欧州と北米の表示テキストの違いは、リージョンと言語コードを併せて判断
@ -98,7 +98,7 @@ typedef enum TWLRegionCode {
TWL_REGION_AUSTRALIA = 3, // NAL
TWL_REGION_CHINA = 4, // IQue
TWL_REGION_KOREA = 5, // NOK
TWL_REGION_MAX = 5
TWL_REGION_MAX
}TWLRegion;