From 5a437ea7b8b363266fc3c6fce1e90325a8e0f5b4 Mon Sep 17 00:00:00 2001 From: ornse01 Date: Tue, 16 Aug 2011 14:32:05 +0000 Subject: [PATCH] add menu item for subject option open/close. git-svn-id: http://svn.sourceforge.jp/svnroot/bchan/bchanl/trunk@295 20a0b8eb-f62a-4a12-8fe1-b598822500fb --- src/bchanl.d | 4 +++- src/bchanl_menus.c | 12 +++++++++++- src/bchanl_menus.h | 3 ++- src/main.c | 17 +++++++++++++++-- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/bchanl.d b/src/bchanl.d index 70a0e47..0a0d0fb 100644 --- a/src/bchanl.d +++ b/src/bchanl.d @@ -106,7 +106,9 @@ MC_STRKEY1 "£Å½ªÎ»\0" {# TEXT_MLIST1 0 0} -- data number - MC_STR "ɽ¼¨" MC_STR "ºÆɽ¼¨\0" + MC_STR "ɽ¼¨" + MC_STR "ºÆɽ¼¨" + MC_IND "¥¹¥ì°ìÍ÷ÀßÄê\0" {# TEXT_MLIST2 0 0} -- data number MC_STR "Áàºî" diff --git a/src/bchanl_menus.c b/src/bchanl_menus.c index 3390955..04950ec 100644 --- a/src/bchanl_menus.c +++ b/src/bchanl_menus.c @@ -43,8 +43,15 @@ #define BCHANL_MAINMENU_ITEMNUM_WINDOW 3 #define BCHANL_MAINMENU_ITEMNUM_GADGET (BCHANL_MAINMENU_ITEMNUM_WINDOW + 1) -EXPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu) +EXPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu, Bool subectjoptionenable) { + /* [ɽ¼¨] -> [¥¹¥ì°ìÍ÷ÀßÄê] */ + if (subectjoptionenable == False) { + mchg_atr(mainmenu->mnid, (1 << 8)|2, M_NOSEL); + } else { + mchg_atr(mainmenu->mnid, (1 << 8)|2, M_SEL); + } + wget_dmn(&(mainmenu->mnitem[BCHANL_MAINMENU_ITEMNUM_WINDOW].ptr)); mset_itm(mainmenu->mnid, BCHANL_MAINMENU_ITEMNUM_WINDOW, mainmenu->mnitem+BCHANL_MAINMENU_ITEMNUM_WINDOW); oget_men(0, NULL, &(mainmenu->mnitem[BCHANL_MAINMENU_ITEMNUM_GADGET].ptr), NULL, NULL); @@ -66,6 +73,9 @@ LOCAL W bchanl_mainmenu_select(bchanl_mainmenu_t *mainmenu, W i) case 1: /* [ºÆɽ¼¨] */ ret = BCHANL_MAINMENU_SELECT_REDISPLAY; break; + case 2: /* [¥¹¥ì°ìÍ÷ÀßÄê] */ + ret = BCHANL_MAINMENU_SELECT_SUBJECTOPTION; + break; default: ret = BCHANL_MAINMENU_SELECT_NOSELECT; break; diff --git a/src/bchanl_menus.h b/src/bchanl_menus.h index a0686c9..572e604 100644 --- a/src/bchanl_menus.h +++ b/src/bchanl_menus.h @@ -38,11 +38,12 @@ typedef struct bchanl_mainmenu_t_ bchanl_mainmenu_t; IMPORT W bchanl_mainmenu_initialize(bchanl_mainmenu_t *mainmenu, W dnum); IMPORT VOID bchanl_mainmenu_finalize(bchanl_mainmenu_t *mainmenu); -IMPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu); +IMPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu, Bool subectjoptionenable); #define BCHANL_MAINMENU_SELECT_NOSELECT 0 #define BCHANL_MAINMENU_SELECT_CLOSE 1 #define BCHANL_MAINMENU_SELECT_REDISPLAY 2 #define BCHANL_MAINMENU_SELECT_BBSMENUFETCH 3 +#define BCHANL_MAINMENU_SELECT_SUBJECTOPTION 4 IMPORT W bchanl_mainmenu_popup(bchanl_mainmenu_t *mainmenu, PNT pos); IMPORT W bchanl_mainmenu_keyselect(bchanl_mainmenu_t *mainmenu, TC keycode); diff --git a/src/main.c b/src/main.c index 4cc9f5e..d33b37a 100644 --- a/src/main.c +++ b/src/main.c @@ -758,7 +758,6 @@ LOCAL W bchanl_initialize(bchanl_t *bchanl, VID vid, W exectype) DP_ER("bchanlhmi_newsubjectoptionwindow", 0); goto error_subjectoptionwindow; } - subjectoptionwindow_open(subjectoptionwindow); dget_dtp(TEXT_DATA, BCHANL_DBX_TEXT_WINDOWTITLE_BBSMENU, (void**)&title1); bbsmenuwindow = bchanlhmi_newbbsmenuwindow(hmi, &r1, title1, NULL, bchanl_bbsmenuwindow_scroll, bchanl); if (bbsmenuwindow == NULL) { @@ -1080,11 +1079,17 @@ LOCAL VOID bchanl_keydwn(bchanl_t *bchanl, UH keytop, TC ch, UW stat) LOCAL VOID bchanl_setupmenu(bchanl_t *bchanl) { - bchanl_mainmenu_setup(&bchanl->mainmenu); + Bool isopen; + + isopen = subjectoptionwindow_isopen(bchanl->subjectoptionwindow); + + bchanl_mainmenu_setup(&bchanl->mainmenu, isopen); } LOCAL VOID bchanl_selectmenu(bchanl_t *bchanl, W sel) { + Bool isopen; + switch(sel) { case BCHANL_MAINMENU_SELECT_CLOSE: /* [½ªÎ»] */ bchanl_killme(bchanl); @@ -1096,6 +1101,14 @@ LOCAL VOID bchanl_selectmenu(bchanl_t *bchanl, W sel) case BCHANL_MAINMENU_SELECT_BBSMENUFETCH: /* [ÈÄ°ìÍ÷ºÆ¼èÆÀ] */ bchanl_networkrequest_bbsmenu(bchanl); break; + case BCHANL_MAINMENU_SELECT_SUBJECTOPTION: /* [¥¹¥ì°ìÍ÷ÀßÄê] */ + isopen = subjectoptionwindow_isopen(bchanl->subjectoptionwindow); + if (isopen == False) { + subjectoptionwindow_open(bchanl->subjectoptionwindow); + } else { + subjectoptionwindow_close(bchanl->subjectoptionwindow); + } + break; } return; } -- 2.11.0