implement menu handling logic.
@@ -43,7 +43,7 @@ | ||
43 | 43 | #define BCHANL_MAINMENU_ITEMNUM_WINDOW 4 |
44 | 44 | #define BCHANL_MAINMENU_ITEMNUM_GADGET (BCHANL_MAINMENU_ITEMNUM_WINDOW + 1) |
45 | 45 | |
46 | -EXPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu, Bool subectjoptionenable) | |
46 | +EXPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu, Bool subectjoptionenable, Bool extbbsmanageropen, Bool extbbsselected) | |
47 | 47 | { |
48 | 48 | /* [表示] -> [スレ一覧設定] */ |
49 | 49 | if (subectjoptionenable == False) { |
@@ -52,6 +52,32 @@ | ||
52 | 52 | mchg_atr(mainmenu->mnid, (1 << 8)|2, M_SEL); |
53 | 53 | } |
54 | 54 | |
55 | + /* [外部板] -> [外部板管理] */ | |
56 | + if (extbbsmanageropen == False) { | |
57 | + mchg_atr(mainmenu->mnid, (3 << 8)|1, M_NOSEL); | |
58 | + } else { | |
59 | + mchg_atr(mainmenu->mnid, (3 << 8)|1, M_SEL); | |
60 | + } | |
61 | + | |
62 | + /* [外部板] -> [板追加] */ | |
63 | + if (extbbsmanageropen != False) { | |
64 | + mchg_atr(mainmenu->mnid, (3 << 8)|3, M_ACT); | |
65 | + } else { | |
66 | + mchg_atr(mainmenu->mnid, (3 << 8)|3, M_INACT); | |
67 | + } | |
68 | + /* [外部板] -> [一つ上げる] */ | |
69 | + /* [外部板] -> [一つ下げる] */ | |
70 | + /* [外部板] -> [削除] */ | |
71 | + if (extbbsselected == False) { | |
72 | + mchg_atr(mainmenu->mnid, (3 << 8)|4, M_INACT); | |
73 | + mchg_atr(mainmenu->mnid, (3 << 8)|5, M_INACT); | |
74 | + mchg_atr(mainmenu->mnid, (3 << 8)|6, M_INACT); | |
75 | + } else { | |
76 | + mchg_atr(mainmenu->mnid, (3 << 8)|4, M_ACT); | |
77 | + mchg_atr(mainmenu->mnid, (3 << 8)|5, M_ACT); | |
78 | + mchg_atr(mainmenu->mnid, (3 << 8)|6, M_ACT); | |
79 | + } | |
80 | + | |
55 | 81 | wget_dmn(&(mainmenu->mnitem[BCHANL_MAINMENU_ITEMNUM_WINDOW].ptr)); |
56 | 82 | mset_itm(mainmenu->mnid, BCHANL_MAINMENU_ITEMNUM_WINDOW, mainmenu->mnitem+BCHANL_MAINMENU_ITEMNUM_WINDOW); |
57 | 83 | oget_men(0, NULL, &(mainmenu->mnitem[BCHANL_MAINMENU_ITEMNUM_GADGET].ptr), NULL, NULL); |
@@ -69,7 +95,7 @@ | ||
69 | 95 | ret = BCHANL_MAINMENU_SELECT_CLOSE; |
70 | 96 | break; |
71 | 97 | case 1: /* [表示] */ |
72 | - switch(i & 0xff) { | |
98 | + switch (i & 0xff) { | |
73 | 99 | case 1: /* [再表示] */ |
74 | 100 | ret = BCHANL_MAINMENU_SELECT_REDISPLAY; |
75 | 101 | break; |
@@ -82,13 +108,32 @@ | ||
82 | 108 | } |
83 | 109 | break; |
84 | 110 | case 2: /* [操作] */ |
85 | - switch(i & 0xff) { | |
111 | + switch (i & 0xff) { | |
86 | 112 | case 1: /* [板一覧再取得] */ |
87 | 113 | ret = BCHANL_MAINMENU_SELECT_BBSMENUFETCH; |
88 | 114 | break; |
89 | - case 2: /* [外部板の追加] */ | |
90 | - ret = BCHANL_MAINMENU_SELECT_REGISTEREXTBBS; | |
115 | + default: | |
116 | + ret = BCHANL_MAINMENU_SELECT_NOSELECT; | |
91 | 117 | break; |
118 | + } | |
119 | + break; | |
120 | + case 3: /* [外部板] */ | |
121 | + switch (i & 0xff) { | |
122 | + case 1: /* [外部板管理] */ | |
123 | + ret = BCHANL_MAINMENU_SELECT_EXTBBS_MANAGER; | |
124 | + break; | |
125 | + case 3: /* [板追加] */ | |
126 | + ret = BCHANL_MAINMENU_SELECT_EXTBBS_REGISTER; | |
127 | + break; | |
128 | + case 4: /* [一つ上げる] */ | |
129 | + ret = BCHANL_MAINMENU_SELECT_EXTBBS_UP; | |
130 | + break; | |
131 | + case 5: /* [一つ下げる] */ | |
132 | + ret = BCHANL_MAINMENU_SELECT_EXTBBS_DOWN; | |
133 | + break; | |
134 | + case 6: /* [削除] */ | |
135 | + ret = BCHANL_MAINMENU_SELECT_EXTBBS_DELETE; | |
136 | + break; | |
92 | 137 | default: |
93 | 138 | ret = BCHANL_MAINMENU_SELECT_NOSELECT; |
94 | 139 | break; |
@@ -38,13 +38,17 @@ | ||
38 | 38 | |
39 | 39 | IMPORT W bchanl_mainmenu_initialize(bchanl_mainmenu_t *mainmenu, W dnum); |
40 | 40 | IMPORT VOID bchanl_mainmenu_finalize(bchanl_mainmenu_t *mainmenu); |
41 | -IMPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu, Bool subectjoptionenable); | |
41 | +IMPORT W bchanl_mainmenu_setup(bchanl_mainmenu_t *mainmenu, Bool subectjoptionenable, Bool extbbsmanageropen, Bool extbbsselected); | |
42 | 42 | #define BCHANL_MAINMENU_SELECT_NOSELECT 0 |
43 | 43 | #define BCHANL_MAINMENU_SELECT_CLOSE 1 |
44 | 44 | #define BCHANL_MAINMENU_SELECT_REDISPLAY 2 |
45 | 45 | #define BCHANL_MAINMENU_SELECT_BBSMENUFETCH 3 |
46 | 46 | #define BCHANL_MAINMENU_SELECT_SUBJECTOPTION 4 |
47 | -#define BCHANL_MAINMENU_SELECT_REGISTEREXTBBS 5 | |
47 | +#define BCHANL_MAINMENU_SELECT_EXTBBS_MANAGER 5 | |
48 | +#define BCHANL_MAINMENU_SELECT_EXTBBS_REGISTER 6 | |
49 | +#define BCHANL_MAINMENU_SELECT_EXTBBS_UP 7 | |
50 | +#define BCHANL_MAINMENU_SELECT_EXTBBS_DOWN 8 | |
51 | +#define BCHANL_MAINMENU_SELECT_EXTBBS_DELETE 9 | |
48 | 52 | IMPORT W bchanl_mainmenu_popup(bchanl_mainmenu_t *mainmenu, PNT pos); |
49 | 53 | IMPORT W bchanl_mainmenu_keyselect(bchanl_mainmenu_t *mainmenu, TC keycode); |
50 | 54 |
@@ -1392,11 +1392,12 @@ | ||
1392 | 1392 | |
1393 | 1393 | LOCAL VOID bchanl_setupmenu(bchanl_t *bchanl) |
1394 | 1394 | { |
1395 | - Bool isopen; | |
1395 | + Bool isopen, isopen_extbbs; | |
1396 | 1396 | |
1397 | 1397 | isopen = subjectoptionwindow_isopen(bchanl->subjectoptionwindow); |
1398 | + isopen_extbbs = externalbbswindow_isopen(bchanl->externalbbswindow); | |
1398 | 1399 | |
1399 | - bchanl_mainmenu_setup(&bchanl->mainmenu, isopen); | |
1400 | + bchanl_mainmenu_setup(&bchanl->mainmenu, isopen, isopen_extbbs, False); | |
1400 | 1401 | } |
1401 | 1402 | |
1402 | 1403 | LOCAL VOID bchanl_selectmenu(bchanl_t *bchanl, W sel) |
@@ -1423,11 +1424,7 @@ | ||
1423 | 1424 | subjectoptionwindow_close(bchanl->subjectoptionwindow); |
1424 | 1425 | } |
1425 | 1426 | break; |
1426 | - case BCHANL_MAINMENU_SELECT_REGISTEREXTBBS: /* [外部板の追加] */ | |
1427 | - isopen = registerexternalwindow_isopen(bchanl->registerexternalwindow); | |
1428 | - if (isopen == False) { | |
1429 | - registerexternalwindow_open(bchanl->registerexternalwindow); | |
1430 | - } | |
1427 | + case BCHANL_MAINMENU_SELECT_EXTBBS_MANAGER: /* [外部板の追加] */ | |
1431 | 1428 | isopen = externalbbswindow_isopen(bchanl->externalbbswindow); |
1432 | 1429 | if (isopen == False) { |
1433 | 1430 |
@@ -1440,6 +1437,19 @@ | ||
1440 | 1437 | extbbslist_editcontext_setviewrect(bchanl->bbsmenu.editctx, 0, 0, work.c.right - work.c.left, work.c.bottom - work.c.top); |
1441 | 1438 | externalbbswindow_setworkrect(bchanl->externalbbswindow, 0, 0, work.c.right - work.c.left, work.c.bottom - work.c.top); |
1442 | 1439 | } |
1440 | + break; | |
1441 | + case BCHANL_MAINMENU_SELECT_EXTBBS_REGISTER: | |
1442 | + isopen = registerexternalwindow_isopen(bchanl->registerexternalwindow); | |
1443 | + if (isopen == False) { | |
1444 | + registerexternalwindow_open(bchanl->registerexternalwindow); | |
1445 | + } | |
1446 | + break; | |
1447 | + case BCHANL_MAINMENU_SELECT_EXTBBS_UP: | |
1448 | + break; | |
1449 | + case BCHANL_MAINMENU_SELECT_EXTBBS_DOWN: | |
1450 | + break; | |
1451 | + case BCHANL_MAINMENU_SELECT_EXTBBS_DELETE: | |
1452 | + break; | |
1443 | 1453 | } |
1444 | 1454 | return; |
1445 | 1455 | } |