return BCHANL_SUBJECT_CREATEVIEWERVOBJ_CREATED;
}
+EXPORT VOID bchanl_subject_setresnumberdisplay(bchanl_subject_t *subject, Bool display)
+{
+ sbjtlayout_setresnumberdisplay(subject->layout, display);
+}
+
+EXPORT VOID bchanl_subject_setsincedisplay(bchanl_subject_t *subject, Bool display)
+{
+ sbjtlayout_setsincedisplay(subject->layout, display);
+}
+
+EXPORT VOID bchanl_subject_setvigordisplay(bchanl_subject_t *subject, Bool display)
+{
+ sbjtlayout_setvigordisplay(subject->layout, display);
+}
+
+EXPORT Bool bchanl_subject_getresnumberdisplay(bchanl_subject_t *subject)
+{
+ return sbjtlayout_getresnumberdisplay(subject->layout);
+}
+
+EXPORT Bool bchanl_subject_getsincedisplay(bchanl_subject_t *subject)
+{
+ return sbjtlayout_getsincedisplay(subject->layout);
+}
+
+EXPORT Bool bchanl_subject_getvigordisplay(bchanl_subject_t *subject)
+{
+ return sbjtlayout_getvigordisplay(subject->layout);
+}
+
LOCAL W bchanl_subject_initialize(bchanl_subject_t *subject, GID gid, UB *host, W host_len, UB *board, W board_len, TC *title, W title_len, FSSPEC *fspec, COLOR vobjbgcol)
{
sbjtcache_t *cache;
#define BCHANL_SUBJECT_CREATEVIEWERVOBJ_CANCELED 0
#define BCHANL_SUBJECT_CREATEVIEWERVOBJ_CREATED 1
IMPORT W bchanl_subject_createviewervobj(bchanl_subject_t *subject, sbjtlist_tuple_t *tuple, UB *fsnrec, W fsnrec_len, VOBJSEG *seg, LINK *lnk);
+IMPORT VOID bchanl_subject_setresnumberdisplay(bchanl_subject_t *subject, Bool display);
+IMPORT VOID bchanl_subject_setsincedisplay(bchanl_subject_t *subject, Bool display);
+IMPORT VOID bchanl_subject_setvigordisplay(bchanl_subject_t *subject, Bool display);
+IMPORT Bool bchanl_subject_getresnumverdisplay(bchanl_subject_t *subject);
+IMPORT Bool bchanl_subject_getsincedisplay(bchanl_subject_t *subject);
+IMPORT Bool bchanl_subject_getvigordisplay(bchanl_subject_t *subject);
IMPORT bchanl_subjecthash_t* bchanl_subjecthash_new(GID gid, W base);
IMPORT VOID bchanl_subjecthash_delete(bchanl_subjecthash_t *subjecthash);
bchanl_subjecthash_t *subjecthash;
bchanl_bbsmenu_t bbsmenu;
bchanl_subject_t *currentsubject;
+ struct {
+ Bool resnum;
+ Bool since;
+ Bool vigor;
+ } subjectdisplay;
bchanlhmi_t *hmi;
subjectwindow_t *subjectwindow;
};
typedef struct bchanl_t_ bchanl_t;
+LOCAL VOID bchanl_swapresnumberdisplay(bchanl_t *bchanl)
+{
+ if (bchanl->subjectdisplay.resnum != False) {
+ bchanl->subjectdisplay.resnum = False;
+ } else {
+ bchanl->subjectdisplay.resnum = True;
+ }
+}
+
+LOCAL VOID bchanl_swapsincedisplay(bchanl_t *bchanl)
+{
+ if (bchanl->subjectdisplay.since != False) {
+ bchanl->subjectdisplay.since = False;
+ } else {
+ bchanl->subjectdisplay.since = True;
+ }
+}
+
+LOCAL VOID bchanl_swapvigordisplay(bchanl_t *bchanl)
+{
+ if (bchanl->subjectdisplay.vigor != False) {
+ bchanl->subjectdisplay.vigor = False;
+ } else {
+ bchanl->subjectdisplay.vigor = True;
+ }
+}
+
LOCAL VOID bchanl_killme(bchanl_t *bchanl);
LOCAL VOID bchanl_subjectwindow_draw(bchanl_t *bchanl)
LOCAL VOID bchanl_setcurrentsubject(bchanl_t *bchanl, bchanl_subject_t *sbjt)
{
bchanl->currentsubject = sbjt;
+ bchanl_subject_setresnumberdisplay(sbjt, bchanl->subjectdisplay.resnum);
+ bchanl_subject_setsincedisplay(sbjt, bchanl->subjectdisplay.since);
+ bchanl_subject_setvigordisplay(sbjt, bchanl->subjectdisplay.vigor);
subjectwindow_requestredisp(bchanl->subjectwindow);
}
bchanl->subjecthash = subjecthash;
bchanl->currentsubject = NULL;
+ bchanl->subjectdisplay.resnum = True;
+ bchanl->subjectdisplay.since = False;
+ bchanl->subjectdisplay.vigor = False;
bchanl->vid = vid;
bchanl->exectype = exectype;
break;
}
- bchanl_mainmenu_setup(&bchanl->mainmenu, isopen, isopen_extbbs, selected, fromtray, totray, False, False, False);
+ bchanl_mainmenu_setup(&bchanl->mainmenu, isopen, isopen_extbbs, selected, fromtray, totray, bchanl->subjectdisplay.resnum, bchanl->subjectdisplay.since, bchanl->subjectdisplay.vigor);
}
LOCAL VOID bchanl_selectmenu(bchanl_t *bchanl, W sel, BCHANL_TEXTBOX_MENU_TYPE type)
}
break;
case BCHANL_MAINMENU_SELECT_DISPLAY_RESNUMBER:
+ bchanl_swapresnumberdisplay(bchanl);
+ if (bchanl->currentsubject != NULL) {
+ bchanl_subject_setresnumberdisplay(bchanl->currentsubject, bchanl->subjectdisplay.resnum);
+ }
break;
case BCHANL_MAINMENU_SELECT_DISPLAY_SINCE:
+ bchanl_swapsincedisplay(bchanl);
+ if (bchanl->currentsubject != NULL) {
+ bchanl_subject_setsincedisplay(bchanl->currentsubject, bchanl->subjectdisplay.since);
+ }
break;
case BCHANL_MAINMENU_SELECT_DISPLAY_VIGOR:
+ bchanl_swapvigordisplay(bchanl);
+ if (bchanl->currentsubject != NULL) {
+ bchanl_subject_setvigordisplay(bchanl->currentsubject, bchanl->subjectdisplay.vigor);
+ }
break;
}
return;
RECT vframe;
};
+#define SBJTLAYOUT_FLAG_RESNUM_DISPLAY 0x00000001
+#define SBJTLAYOUT_FLAG_SINCE_DISPLAY 0x00000002
+#define SBJTLAYOUT_FLAG_VIGOR_DISPLAY 0x00000004
+
struct sbjtlayout_t_ {
GID target;
W draw_l,draw_t,draw_r,draw_b;
W len;
FSSPEC fspec;
COLOR vobjbgcol;
+ UW flag;
};
LOCAL sbjtlayout_thread_t* sbjtlayout_thread_new(sbjtlist_tuple_t *thread)
return layout->vobjbgcol;
}
+EXPORT VOID sbjtlayout_setresnumberdisplay(sbjtlayout_t *layout, Bool display)
+{
+ if (display == False) {
+ layout->flag = layout->flag & ~SBJTLAYOUT_FLAG_RESNUM_DISPLAY;
+ } else {
+ layout->flag |= SBJTLAYOUT_FLAG_RESNUM_DISPLAY;
+ }
+}
+
+EXPORT VOID sbjtlayout_setsincedisplay(sbjtlayout_t *layout, Bool display)
+{
+ if (display == False) {
+ layout->flag = layout->flag & ~SBJTLAYOUT_FLAG_SINCE_DISPLAY;
+ } else {
+ layout->flag |= SBJTLAYOUT_FLAG_SINCE_DISPLAY;
+ }
+}
+
+EXPORT VOID sbjtlayout_setvigordisplay(sbjtlayout_t *layout, Bool display)
+{
+ if (display == False) {
+ layout->flag = layout->flag & ~SBJTLAYOUT_FLAG_VIGOR_DISPLAY;
+ } else {
+ layout->flag |= SBJTLAYOUT_FLAG_VIGOR_DISPLAY;
+ }
+}
+
+EXPORT Bool sbjtlayout_getresnumberdisplay(sbjtlayout_t *layout)
+{
+ if ((layout->flag & SBJTLAYOUT_FLAG_RESNUM_DISPLAY) != 0) {
+ return True;
+ } else {
+ return False;
+ }
+}
+
+EXPORT Bool sbjtlayout_getsincedisplay(sbjtlayout_t *layout)
+{
+ if ((layout->flag & SBJTLAYOUT_FLAG_SINCE_DISPLAY) != 0) {
+ return True;
+ } else {
+ return False;
+ }
+}
+
+EXPORT Bool sbjtlayout_getvigordisplay(sbjtlayout_t *layout)
+{
+ if ((layout->flag & SBJTLAYOUT_FLAG_VIGOR_DISPLAY) != 0) {
+ return True;
+ } else {
+ return False;
+ }
+}
+
EXPORT sbjtlayout_t* sbjtlayout_new(GID gid)
{
sbjtlayout_t *layout;
layout->fspec.size.h = 16;
layout->fspec.size.v = 16;
layout->vobjbgcol = 0x10000000;
+ layout->flag = 0;
return layout;
}
IMPORT VOID sbjtlayout_setfsspec(sbjtlayout_t *layout, FSSPEC *fspec);
IMPORT VOID sbjtlayout_setvobjbgcol(sbjtlayout_t *layout, COLOR color);
IMPORT COLOR sbjtlayout_getvobjbgcol(sbjtlayout_t *layout);
+IMPORT VOID sbjtlayout_setresnumberdisplay(sbjtlayout_t *layout, Bool display);
+IMPORT VOID sbjtlayout_setsincedisplay(sbjtlayout_t *layout, Bool display);
+IMPORT VOID sbjtlayout_setvigordisplay(sbjtlayout_t *layout, Bool display);
+IMPORT Bool sbjtlayout_getresnumberdisplay(sbjtlayout_t *layout);
+IMPORT Bool sbjtlayout_getsincedisplay(sbjtlayout_t *layout);
+IMPORT Bool sbjtlayout_getvigordisplay(sbjtlayout_t *layout);
typedef struct sbjtdraw_t_ sbjtdraw_t;