* dialog.h: Replaced object-like macros with implicit references

to an identifier ``h'' with function-like macros. Adjusted all
	users.
	* dialog.c: Likewise.
	* find.c: Likewise.
	* tree.c: Likewise.
	* widget.c: Likewise.
	* widget.c (widget_selectcolor): New function that selects a
	color among DLG_{HOT_,}{FOCUS,NORMAL}C.
This commit is contained in:
Roland Illig 2005-07-07 19:34:55 +00:00
parent 0c2b595997
commit bc446f0cee
6 changed files with 55 additions and 31 deletions

View File

@ -1,3 +1,15 @@
2005-07-07 Roland Illig <roland.illig@gmx.de>
* dialog.h: Replaced object-like macros with implicit references
to an identifier ``h'' with function-like macros. Adjusted all
users.
* dialog.c: Likewise.
* find.c: Likewise.
* tree.c: Likewise.
* widget.c: Likewise.
* widget.c (widget_selectcolor): New function that selects a
color among DLG_{HOT_,}{FOCUS,NORMAL}C.
2005-07-07 Roland Illig <roland.illig@gmx.de>
* view.c (view_compute_areas): Fixed a bug noted by Pavel

View File

@ -160,12 +160,12 @@ common_dialog_repaint (struct Dlg_head *h)
space = (h->flags & DLG_COMPACT) ? 0 : 1;
attrset (NORMALC);
attrset (DLG_NORMALC (h));
dlg_erase (h);
draw_box (h, space, space, h->lines - 2 * space, h->cols - 2 * space);
if (h->title) {
attrset (HOT_NORMALC);
attrset (DLG_HOT_NORMALC (h));
dlg_move (h, space, (h->cols - strlen (h->title)) / 2);
addstr (h->title);
}

View File

@ -22,10 +22,10 @@
#include "mouse.h"
/* Color constants */
#define FOCUSC h->color[1]
#define NORMALC h->color[0]
#define HOT_NORMALC h->color[2]
#define HOT_FOCUSC h->color[3]
#define DLG_NORMALC(h) ((h)->color[0])
#define DLG_FOCUSC(h) ((h)->color[1])
#define DLG_HOT_NORMALC(h) ((h)->color[2])
#define DLG_HOT_FOCUSC(h) ((h)->color[3])
/* Common return values */
#define B_EXIT 0

View File

@ -719,7 +719,7 @@ do_search (struct Dlg_head *h)
if (verbose){
pos = (pos + 1) % 4;
attrset (NORMALC);
attrset (DLG_NORMALC (h));
dlg_move (h, FIND2_Y-6, FIND2_X - 4);
addch (rotating_dash [pos]);
mc_refresh ();

View File

@ -54,7 +54,7 @@
extern int command_prompt;
/* Use the color of the parent widget for the unselected entries */
#define TREE_NORMALC NORMALC
#define TREE_NORMALC(h) (DLG_NORMALC (h))
/* Specifies the display mode: 1d or 2d */
static int tree_navigation_flag;
@ -171,13 +171,13 @@ static void tree_show_mini_info (WTree *tree, int tree_lines, int tree_cols)
if (tree->searching){
/* Show search string */
attrset (TREE_NORMALC);
attrset (FOCUSC);
attrset (TREE_NORMALC (h));
attrset (DLG_FOCUSC (h));
addch (PATH_SEP);
addstr ((char *) name_trunc (tree->search_buffer, tree_cols-2));
addch (' ');
attrset (FOCUSC);
attrset (DLG_FOCUSC (h));
} else {
/* Show full name of selected directory */
addstr ((char *) name_trunc (tree->selected_ptr->name, tree_cols));
@ -197,7 +197,7 @@ static void show_tree (WTree *tree)
tree_lines = tlines (tree);
tree_cols = tree->widget.cols;
attrset (TREE_NORMALC);
attrset (TREE_NORMALC (h));
widget_move ((Widget*)tree, y, x);
if (tree->is_panel){
tree_cols -= 2;
@ -306,7 +306,7 @@ static void show_tree (WTree *tree)
addch (' ');
/* Return to normal color */
attrset (TREE_NORMALC);
attrset (TREE_NORMALC (h));
/* Calculate the next value for current */
current = current->next;

View File

@ -66,6 +66,20 @@ static int button_event (Gpm_Event *event, void *);
int quote = 0;
static void
widget_selectcolor (Widget *w, gboolean focused, gboolean hotkey)
{
Dlg_head *h = w->parent;
attrset (hotkey
? (focused
? DLG_HOT_FOCUSC (h)
: DLG_HOT_NORMALC (h))
: (focused
? DLG_FOCUSC (h)
: DLG_NORMALC (h)));
}
static cb_ret_t
button_callback (Widget *w, widget_msg_t msg, int parm)
{
@ -159,14 +173,14 @@ button_callback (Widget *w, widget_msg_t msg, int parm)
break;
}
attrset ((b->selected) ? FOCUSC : NORMALC);
widget_move (&b->widget, 0, 0);
widget_selectcolor (w, b->selected, FALSE);
widget_move (w, 0, 0);
addstr (buf);
if (b->hotpos >= 0) {
attrset ((b->selected) ? HOT_FOCUSC : HOT_NORMALC);
widget_move (&b->widget, 0, b->hotpos + off);
widget_selectcolor (w, b->selected, TRUE);
widget_move (w, 0, b->hotpos + off);
addch ((unsigned char) b->text[b->hotpos]);
}
return MSG_HANDLED;
@ -342,18 +356,16 @@ radio_callback (Widget *w, widget_msg_t msg, int parm)
case WIDGET_DRAW:
for (i = 0; i < r->count; i++) {
register const char *cp;
attrset ((i == r->pos
&& msg == WIDGET_FOCUS) ? FOCUSC : NORMALC);
const gboolean focused = (i == r->pos && msg == WIDGET_FOCUS);
widget_selectcolor (w, focused, FALSE);
widget_move (&r->widget, i, 0);
printw ("(%c) ", (r->sel == i) ? '*' : ' ');
for (cp = r->texts[i]; *cp; cp++) {
if (*cp == '&') {
attrset ((i == r->pos && msg == WIDGET_FOCUS)
? HOT_FOCUSC : HOT_NORMALC);
widget_selectcolor (w, focused, TRUE);
addch (*++cp);
attrset ((i == r->pos
&& msg == WIDGET_FOCUS) ? FOCUSC : NORMALC);
widget_selectcolor (w, focused, FALSE);
} else
addch (*cp);
}
@ -449,12 +461,12 @@ check_callback (Widget *w, widget_msg_t msg, int parm)
case WIDGET_FOCUS:
case WIDGET_UNFOCUS:
case WIDGET_DRAW:
attrset ((msg == WIDGET_FOCUS) ? FOCUSC : NORMALC);
widget_selectcolor (w, msg == WIDGET_FOCUS, FALSE);
widget_move (&c->widget, 0, 0);
printw ("[%c] %s", (c->state & C_BOOL) ? 'x' : ' ', c->text);
if (c->hotpos >= 0) {
attrset ((msg == WIDGET_FOCUS) ? HOT_FOCUSC : HOT_NORMALC);
widget_selectcolor (w, msg == WIDGET_FOCUS, TRUE);
widget_move (&c->widget, 0, +c->hotpos + 4);
addch ((unsigned char) c->text[c->hotpos]);
}
@ -549,7 +561,7 @@ label_callback (Widget *w, widget_msg_t msg, int parm)
if (l->transparent)
attrset (DEFAULT_COLOR);
else
attrset (NORMALC);
attrset (DLG_NORMALC (h));
for (;;) {
int xlen;
@ -649,7 +661,7 @@ gauge_callback (Widget *w, widget_msg_t msg, int parm)
if (msg == WIDGET_DRAW){
widget_move (&g->widget, 0, 0);
attrset (NORMALC);
attrset (DLG_NORMALC (h));
if (!g->shown)
printw ("%*s", gauge_len, "");
else {
@ -671,7 +683,7 @@ gauge_callback (Widget *w, widget_msg_t msg, int parm)
addch ('[');
attrset (GAUGE_COLOR);
printw ("%*s", (int) columns, "");
attrset (NORMALC);
attrset (DLG_NORMALC (h));
printw ("%*s] %3d%%", (int)(gauge_len - 7 - columns), "", (int) percentage);
}
return MSG_HANDLED;
@ -1738,14 +1750,14 @@ listbox_draw (WListbox *l, int focused)
int i;
int sel_line;
Dlg_head *h = l->widget.parent;
int normalc = NORMALC;
int normalc = DLG_NORMALC (h);
int selc;
const char *text;
if (focused){
selc = FOCUSC;
selc = DLG_FOCUSC (h);
} else {
selc = HOT_FOCUSC;
selc = DLG_HOT_FOCUSC (h);
}
sel_line = -1;