Diff for /np2/embed/menubase/menusys.c between versions 1.2 and 1.9

version 1.2, 2003/12/23 18:31:43 version 1.9, 2005/02/13 05:31:26
Line 11  typedef struct _mhdl { Line 11  typedef struct _mhdl {
 struct _mhdl    *chain;  struct _mhdl    *chain;
 struct _mhdl    *next;  struct _mhdl    *next;
 struct _mhdl    *child;  struct _mhdl    *child;
                 MENUID  id;          MENUID          id;
                 MENUFLG flag;          MENUFLG         flag;
                 RECT_T  rct;          RECT_T          rct;
                 char    string[32];          OEMCHAR         string[32];
 } _MENUHDL, *MENUHDL;  } _MENUHDL, *MENUHDL;
   
 typedef struct {  typedef struct {
Line 38  typedef struct { Line 38  typedef struct {
         int                     lastpos;          int                     lastpos;
         int                     popupx;          int                     popupx;
         int                     popupy;          int                     popupy;
         char            title[128];          OEMCHAR         title[128];
 } MENUSYS;  } MENUSYS;
   
   
 static MENUSYS  menusys;  static MENUSYS  menusys;
   
   #if defined(OSLANG_SJIS) && !defined(RESOURCE_US)
 static const BYTE str_sysr[] = {                // 元のサイズに戻す  static const OEMCHAR str_sysr[] =                       // 元のサイズに戻す
                 0x8c,0xb3,0x82,0xcc,0x83,0x54,0x83,0x43,0x83,0x59,0x82,0xc9,0x96,                          "\214\263\202\314\203\124\203\103\203\131\202\311" \
                 0xdf,0x82,0xb7,0x00};                          "\226\337\202\267";
 static const BYTE str_sysm[] = {                // 移動  static const OEMCHAR str_sysm[] =                       // 移動
                 0x88,0xda,0x93,0xae,0x00};                          "\210\332\223\256";
 static const BYTE str_syss[] = {                // サイズ変更  static const OEMCHAR str_syss[] =                       // サイズ変更
                 0x83,0x54,0x83,0x43,0x83,0x59,0x95,0xcf,0x8d,0x58,0x00};                          "\203\124\203\103\203\131\225\317\215\130";
 static const BYTE str_sysn[] = {                // 最小化  static const OEMCHAR str_sysn[] =                       // 最小化
                 0x8d,0xc5,0x8f,0xac,0x89,0xbb,0x00};                          "\215\305\217\254\211\273";
 static const BYTE str_sysx[] = {                // 最大化  static const OEMCHAR str_sysx[] =                       // 最大化
                 0x8d,0xc5,0x91,0xe5,0x89,0xbb,0x00};                          "\215\305\221\345\211\273";
 static const BYTE str_sysc[] = {                // 閉じる  static const OEMCHAR str_sysc[] =                       // 閉じる
                 0x95,0xc2,0x82,0xb6,0x82,0xe9,0x00};                          "\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 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
   
   
 static const MSYSITEM s_exit[] = {  static const MSYSITEM s_exit[] = {
                 {(char *)str_sysr,      NULL,           0,                              MENU_GRAY},                  {str_sysr,                      NULL,           0,                              MENU_GRAY},
                 {(char *)str_sysm,      NULL,           0,                              MENU_GRAY},                  {str_sysm,                      NULL,           0,                              MENU_GRAY},
                 {(char *)str_syss,      NULL,           0,                              MENU_GRAY},                  {str_syss,                      NULL,           0,                              MENU_GRAY},
 #if defined(MENU_TASKMINIMIZE)  #if defined(MENU_TASKMINIMIZE)
                 {(char *)str_sysn,      NULL,           SID_MINIMIZE,   0},                  {str_sysn,                      NULL,           SID_MINIMIZE,   0},
 #else  #else
                 {(char *)str_sysn,      NULL,           0,                              MENU_GRAY},                  {str_sysn,                      NULL,           0,                              MENU_GRAY},
 #endif  #endif
                 {(char *)str_sysx,      NULL,           0,                              MENU_GRAY},                  {str_sysx,                      NULL,           0,                              MENU_GRAY},
                 {NULL,                          NULL,           0,                              MENU_SEPARATOR},                  {NULL,                          NULL,           0,                              MENU_SEPARATOR},
                 {(char *)str_sysc,      NULL,           SID_CLOSE,              MENU_DELETED}};                  {str_sysc,                      NULL,           SID_CLOSE,              MENU_DELETED}};
   
 static const MSYSITEM s_root[] = {  static const MSYSITEM s_root[] = {
                 {NULL,                          s_exit,         0,                              MENUS_SYSTEM},                  {NULL,                          s_exit,         0,                              MENUS_SYSTEM},
Line 102  static MENUHDL append1(MENUSYS *sys, con Line 138  static MENUHDL append1(MENUSYS *sys, con
         hdl.id = item->id;          hdl.id = item->id;
         hdl.flag = item->flag & (~MENU_DELETED);          hdl.flag = item->flag & (~MENU_DELETED);
         if (item->string) {          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);          ret = (MENUHDL)listarray_enum(sys->res, seaempty, NULL);
         if (ret) {          if (ret) {
Line 255  enum { Line 291  enum {
         MEXIST_ITEM             = 0x08          MEXIST_ITEM             = 0x08
 };  };
   
 static BOOL wndopenbase(MENUSYS *sys) {  static BRESULT wndopenbase(MENUSYS *sys) {
   
         MENUHDL menu;          MENUHDL menu;
         RECT_T  mrect;          RECT_T  mrect;
Line 309  static BOOL wndopenbase(MENUSYS *sys) { Line 345  static BOOL wndopenbase(MENUSYS *sys) {
                 mrect.right -= MENUSYS_BCAPTION;                  mrect.right -= MENUSYS_BCAPTION;
                 mrect.bottom += 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;          sys->wnd[0].vram = vram;
         if (vram == NULL) {          if (vram == NULL) {
                 goto wopn0_err;                  goto wopn0_err;
Line 446  static void citemdraw(VRAMHDL vram, MENU Line 482  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;          MENUHDL menu;
         RECT_T  parent;          RECT_T  parent;
Line 523  static BOOL childopn(MENUSYS *sys, int d Line 559  static BOOL childopn(MENUSYS *sys, int d
                 width = menubase.width;                  width = menubase.width;
         }          }
         height += (MENU_FBORDER + MENU_BORDER);          height += (MENU_FBORDER + MENU_BORDER);
         wnd->vram = menuvram_create(width, height);          wnd->vram = menuvram_create(width, height, menubase.bpp);
         if (wnd->vram == NULL) {          if (wnd->vram == NULL) {
                 TRACEOUT(("sub menu vram couldn't create"));                  TRACEOUT(("sub menu vram couldn't create"));
                 goto copn_err;                  goto copn_err;
Line 672  static void defcmd(MENUID id) { Line 708  static void defcmd(MENUID id) {
         (void)id;          (void)id;
 }  }
   
 BOOL menusys_create(const MSYSITEM *item, void (*cmd)(MENUID id),  BRESULT menusys_create(const MSYSITEM *item, void (*cmd)(MENUID id),
                                                                                         UINT16 icon, const char *title) {                                                                                  UINT16 icon, const OEMCHAR *title) {
   
         MENUSYS         *ret;          MENUSYS         *ret;
         LISTARRAY       r;          LISTARRAY       r;
Line 687  BOOL menusys_create(const MSYSITEM *item Line 723  BOOL menusys_create(const MSYSITEM *item
         }          }
         ret->cmd = cmd;          ret->cmd = cmd;
         if (title) {          if (title) {
                 milsjis_ncpy(ret->title, title, sizeof(ret->title));                  milstr_ncpy(ret->title, title, NELEMENTS(ret->title));
         }          }
         r = listarray_new(sizeof(_MENUHDL), 32);          r = listarray_new(sizeof(_MENUHDL), 32);
         if (r == NULL) {          if (r == NULL) {
Line 722  void menusys_destroy(void) { Line 758  void menusys_destroy(void) {
         }          }
 }  }
   
 BOOL menusys_open(int x, int y) {  BRESULT menusys_open(int x, int y) {
   
         MENUSYS *sys;          MENUSYS *sys;
   
Line 1051  static void menusys_settxt(MENUID id, vo Line 1087  static void menusys_settxt(MENUID id, vo
         }          }
   
         if (arg) {          if (arg) {
                 milsjis_ncpy(itm->string, (char *)arg, sizeof(itm->string));                  milstr_ncpy(itm->string, (OEMCHAR *)arg, NELEMENTS(itm->string));
         }          }
         else {          else {
                 itm->string[0] = '\0';                  itm->string[0] = '\0';

Removed from v.1.2  
changed lines
  Added in v.1.9


RetroPC.NET-CVS <cvs@retropc.net>