OSDN Git Service

add menu item for subject option open/close.
authorornse01 <ornse01@users.sourceforge.jp>
Tue, 16 Aug 2011 14:32:05 +0000 (14:32 +0000)
committerornse01 <ornse01@users.sourceforge.jp>
Tue, 16 Aug 2011 14:32:05 +0000 (14:32 +0000)
git-svn-id: http://svn.sourceforge.jp/svnroot/bchan/bchanl/trunk@295 20a0b8eb-f62a-4a12-8fe1-b598822500fb

src/bchanl.d
src/bchanl_menus.c
src/bchanl_menus.h
src/main.c

index 70a0e47..0a0d0fb 100644 (file)
        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 "Áàºî"
index 3390955..04950ec 100644 (file)
 #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;
index a0686c9..572e604 100644 (file)
@@ -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);
 
index 4cc9f5e..d33b37a 100644 (file)
@@ -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;
 }