--- np2/embed/menubase/menusys.c 2004/06/18 16:58:11 1.3 +++ np2/embed/menubase/menusys.c 2005/02/13 05:31:26 1.9 @@ -11,10 +11,10 @@ typedef struct _mhdl { struct _mhdl *chain; struct _mhdl *next; struct _mhdl *child; - MENUID id; - MENUFLG flag; - RECT_T rct; - char string[32]; + MENUID id; + MENUFLG flag; + RECT_T rct; + OEMCHAR string[32]; } _MENUHDL, *MENUHDL; typedef struct { @@ -38,33 +38,61 @@ typedef struct { int lastpos; int popupx; int popupy; - char title[128]; + OEMCHAR title[128]; } MENUSYS; static MENUSYS menusys; -#if 1 - // 元のサイズに戻す -static const char str_sysr[] = - "\214\263\202\314\203\124\203\103\203\131\202\311\226\337\202\267"; - // 移動 -static const char str_sysm[] = "\210\332\223\256"; - // サイズ変更 -static const char str_syss[] = "\203\124\203\103\203\131\225\317\215\130"; - // 最小化 -static const char str_sysn[] = "\215\305\217\254\211\273"; - // 最大化 -static const char str_sysx[] = "\215\305\221\345\211\273"; - // 閉じる -static const char str_sysc[] = "\225\302\202\266\202\351"; +#if defined(OSLANG_SJIS) && !defined(RESOURCE_US) +static const OEMCHAR str_sysr[] = // 元のサイズに戻す + "\214\263\202\314\203\124\203\103\203\131\202\311" \ + "\226\337\202\267"; +static const OEMCHAR str_sysm[] = // 移動 + "\210\332\223\256"; +static const OEMCHAR str_syss[] = // サイズ変更 + "\203\124\203\103\203\131\225\317\215\130"; +static const OEMCHAR str_sysn[] = // 最小化 + "\215\305\217\254\211\273"; +static const OEMCHAR str_sysx[] = // 最大化 + "\215\305\221\345\211\273"; +static const OEMCHAR str_sysc[] = // 閉じる + "\225\302\202\266\202\351"; +#elif defined(OSLANG_EUC) && !defined(RESOURCE_US) +static const OEMCHAR str_sysr[] = // 元のサイズに戻す + "\270\265\244\316\245\265\245\244\245\272\244\313" \ + "\314\341\244\271"; +static const OEMCHAR str_sysm[] = // 移動 + "\260\334\306\260"; +static const OEMCHAR str_syss[] = // サイズ変更 + "\245\265\245\244\245\272\312\321\271\271"; +static const OEMCHAR str_sysn[] = // 最小化 + "\272\307\276\256\262\275"; +static const OEMCHAR str_sysx[] = // 最大化 + "\272\307\302\347\262\275"; +static const OEMCHAR str_sysc[] = // 閉じる + "\312\304\244\270\244\353"; +#elif defined(OSLANG_UTF8) && !defined(RESOURCE_US) +static const OEMCHAR str_sysr[] = // 元のサイズに戻す + "\345\205\203\343\201\256\343\202\265\343\202\244\343\202\272" \ + "\343\201\253\346\210\273\343\201\231"; +static const OEMCHAR str_sysm[] = // 移動 + "\347\247\273\345\213\225"; +static const OEMCHAR str_syss[] = // サイズ変更 + "\343\202\265\343\202\244\343\202\272\345\244\211\346\233\264"; +static const OEMCHAR str_sysn[] = // 最小化 + "\346\234\200\345\260\217\345\214\226"; +static const OEMCHAR str_sysx[] = // 最大化 + "\346\234\200\345\244\247\345\214\226"; +static const OEMCHAR str_sysc[] = // 閉じる + "\351\226\211\343\201\230\343\202\213"; #else -static const char str_sysr[] = "Restore"; -static const char str_sysm[] = "Move"; -static const char str_syss[] = "Size"; -static const char str_sysn[] = "Minimize"; -static const char str_sysx[] = "Maximize"; -static const char str_sysc[] = "Close"; +static const OEMCHAR str_sysr[] = OEMTEXT("Restore"); +static const OEMCHAR str_sysm[] = OEMTEXT("Move"); +static const OEMCHAR str_syss[] = OEMTEXT("Size"); +static const OEMCHAR str_sysn[] = OEMTEXT("Minimize"); +static const OEMCHAR str_sysx[] = OEMTEXT("Maximize"); +static const OEMCHAR str_sysc[] = OEMTEXT("Close"); #endif @@ -110,7 +138,7 @@ static MENUHDL append1(MENUSYS *sys, con hdl.id = item->id; hdl.flag = item->flag & (~MENU_DELETED); if (item->string) { - milsjis_ncpy(hdl.string, item->string, sizeof(hdl.string)); + milstr_ncpy(hdl.string, item->string, NELEMENTS(hdl.string)); } ret = (MENUHDL)listarray_enum(sys->res, seaempty, NULL); if (ret) { @@ -263,7 +291,7 @@ enum { MEXIST_ITEM = 0x08 }; -static BOOL wndopenbase(MENUSYS *sys) { +static BRESULT wndopenbase(MENUSYS *sys) { MENUHDL menu; RECT_T mrect; @@ -317,7 +345,7 @@ static BOOL wndopenbase(MENUSYS *sys) { mrect.right -= MENUSYS_BCAPTION; mrect.bottom += MENUSYS_BCAPTION; } - vram = menuvram_create(menubase.width, height); + vram = menuvram_create(menubase.width, height, menubase.bpp); sys->wnd[0].vram = vram; if (vram == NULL) { goto wopn0_err; @@ -454,7 +482,7 @@ static void citemdraw(VRAMHDL vram, MENU } } -static BOOL childopn(MENUSYS *sys, int depth, int pos) { +static BRESULT childopn(MENUSYS *sys, int depth, int pos) { MENUHDL menu; RECT_T parent; @@ -531,7 +559,7 @@ static BOOL childopn(MENUSYS *sys, int d width = menubase.width; } height += (MENU_FBORDER + MENU_BORDER); - wnd->vram = menuvram_create(width, height); + wnd->vram = menuvram_create(width, height, menubase.bpp); if (wnd->vram == NULL) { TRACEOUT(("sub menu vram couldn't create")); goto copn_err; @@ -680,8 +708,8 @@ static void defcmd(MENUID id) { (void)id; } -BOOL menusys_create(const MSYSITEM *item, void (*cmd)(MENUID id), - UINT16 icon, const char *title) { +BRESULT menusys_create(const MSYSITEM *item, void (*cmd)(MENUID id), + UINT16 icon, const OEMCHAR *title) { MENUSYS *ret; LISTARRAY r; @@ -695,7 +723,7 @@ BOOL menusys_create(const MSYSITEM *item } ret->cmd = cmd; if (title) { - milsjis_ncpy(ret->title, title, sizeof(ret->title)); + milstr_ncpy(ret->title, title, NELEMENTS(ret->title)); } r = listarray_new(sizeof(_MENUHDL), 32); if (r == NULL) { @@ -730,7 +758,7 @@ void menusys_destroy(void) { } } -BOOL menusys_open(int x, int y) { +BRESULT menusys_open(int x, int y) { MENUSYS *sys; @@ -1059,7 +1087,7 @@ static void menusys_settxt(MENUID id, vo } if (arg) { - milsjis_ncpy(itm->string, (char *)arg, sizeof(itm->string)); + milstr_ncpy(itm->string, (OEMCHAR *)arg, NELEMENTS(itm->string)); } else { itm->string[0] = '\0';