|
|
@@ -124,34 +124,22 @@ void baselist::startdisplay() {
|
|
|
for (i = 1; i < numscreenparts; i++) {
|
|
|
if (init_pair(i, color[i].fore, color[i].back) != OK)
|
|
|
ohshite(_("failed to allocate colour pair"));
|
|
|
+ part_attr[i] = COLOR_PAIR(i) | color[i].attr;
|
|
|
}
|
|
|
- /* TODO: should use an array of attr's, indexed by attr name. Oh well. */
|
|
|
- list_attr= COLOR_PAIR(list) | color[list].attr;
|
|
|
- listsel_attr= COLOR_PAIR(listsel) | color[listsel].attr;
|
|
|
- title_attr= COLOR_PAIR(title) | color[title].attr;
|
|
|
- thisstate_attr= COLOR_PAIR(thisstate) | color[thisstate].attr;
|
|
|
- selstate_attr= COLOR_PAIR(selstate) | color[selstate].attr;
|
|
|
- selstatesel_attr= COLOR_PAIR(selstatesel) | color[selstatesel].attr;
|
|
|
- colheads_attr= COLOR_PAIR(colheads) | color[colheads].attr;
|
|
|
- query_attr= COLOR_PAIR(query) | color[query].attr;
|
|
|
- info_attr= COLOR_PAIR(info) | color[info].attr;
|
|
|
- info_headattr= COLOR_PAIR(info_head) | color[info_head].attr;
|
|
|
- whatinfo_attr= COLOR_PAIR(whatinfo) | color[whatinfo].attr;
|
|
|
- helpscreen_attr= COLOR_PAIR(helpscreen) | color[helpscreen].attr;
|
|
|
} else {
|
|
|
/* User defined attributes for B&W mode are not currently supported. */
|
|
|
- title_attr= A_REVERSE;
|
|
|
- thisstate_attr= A_STANDOUT;
|
|
|
- list_attr= 0;
|
|
|
- listsel_attr= A_STANDOUT;
|
|
|
- selstate_attr= A_BOLD;
|
|
|
- selstatesel_attr= A_STANDOUT;
|
|
|
- colheads_attr= A_BOLD;
|
|
|
- query_attr= title_attr;
|
|
|
- info_attr= list_attr;
|
|
|
- info_headattr= A_BOLD;
|
|
|
- whatinfo_attr= thisstate_attr;
|
|
|
- helpscreen_attr= A_NORMAL;
|
|
|
+ part_attr[title] = A_REVERSE;
|
|
|
+ part_attr[thisstate] = A_STANDOUT;
|
|
|
+ part_attr[list] = 0;
|
|
|
+ part_attr[listsel] = A_STANDOUT;
|
|
|
+ part_attr[selstate] = A_BOLD;
|
|
|
+ part_attr[selstatesel] = A_STANDOUT;
|
|
|
+ part_attr[colheads]= A_BOLD;
|
|
|
+ part_attr[query] = part_attr[title];
|
|
|
+ part_attr[info] = part_attr[list];
|
|
|
+ part_attr[info_head] = A_BOLD;
|
|
|
+ part_attr[whatinfo] = part_attr[thisstate];
|
|
|
+ part_attr[helpscreen] = A_NORMAL;
|
|
|
}
|
|
|
|
|
|
// set up windows and pads, based on screen size
|
|
|
@@ -165,31 +153,31 @@ void baselist::startdisplay() {
|
|
|
|
|
|
titlewin= newwin(1,xmax, 0,0);
|
|
|
if (!titlewin) ohshite(_("failed to create title window"));
|
|
|
- wattrset(titlewin,title_attr);
|
|
|
+ wattrset(titlewin, part_attr[title]);
|
|
|
|
|
|
whatinfowin= newwin(1,xmax, whatinfo_row,0);
|
|
|
if (!whatinfowin) ohshite(_("failed to create whatinfo window"));
|
|
|
- wattrset(whatinfowin,whatinfo_attr);
|
|
|
+ wattrset(whatinfowin, part_attr[whatinfo]);
|
|
|
|
|
|
listpad = newpad(ymax, total_width);
|
|
|
if (!listpad) ohshite(_("failed to create baselist pad"));
|
|
|
|
|
|
colheadspad= newpad(1, total_width);
|
|
|
if (!colheadspad) ohshite(_("failed to create heading pad"));
|
|
|
- wattrset(colheadspad,colheads_attr);
|
|
|
+ wattrset(colheadspad, part_attr[colheads]);
|
|
|
|
|
|
thisstatepad= newpad(1, total_width);
|
|
|
if (!thisstatepad) ohshite(_("failed to create thisstate pad"));
|
|
|
- wattrset(thisstatepad,thisstate_attr);
|
|
|
+ wattrset(thisstatepad, part_attr[thisstate]);
|
|
|
|
|
|
infopad= newpad(MAX_DISPLAY_INFO, total_width);
|
|
|
if (!infopad) ohshite(_("failed to create info pad"));
|
|
|
- wattrset(infopad,info_attr);
|
|
|
- wbkgdset(infopad, ' ' | info_attr);
|
|
|
+ wattrset(infopad, part_attr[info]);
|
|
|
+ wbkgdset(infopad, ' ' | part_attr[info]);
|
|
|
|
|
|
querywin= newwin(1,xmax,ymax-1,0);
|
|
|
if (!querywin) ohshite(_("failed to create query window"));
|
|
|
- wbkgdset(querywin, ' ' | query_attr);
|
|
|
+ wbkgdset(querywin, ' ' | part_attr[query]);
|
|
|
|
|
|
if (cursorline >= topofscreen + list_height) topofscreen= cursorline;
|
|
|
if (topofscreen > nitems - list_height) topofscreen= nitems - list_height;
|
|
|
@@ -225,7 +213,8 @@ void baselist::enddisplay() {
|
|
|
void baselist::redrawall() {
|
|
|
redrawtitle();
|
|
|
redrawcolheads();
|
|
|
- wattrset(listpad,list_attr); mywerase(listpad);
|
|
|
+ wattrset(listpad, part_attr[list]);
|
|
|
+ mywerase(listpad);
|
|
|
ldrawnstart= ldrawnend= -1; // start is first drawn; end is first undrawn; -1=none
|
|
|
refreshlist();
|
|
|
redrawthisstate();
|