X11: Make TTY status obey hilite_status
This commit is contained in:
+19
-46
@@ -114,12 +114,11 @@ static enum statusfields X11_fieldorder[X11_NUM_STATUS_LINES][X11_NUM_STATUS_FIE
|
|||||||
BL_CAP, BL_CONDITION, BL_FLUSH }
|
BL_CAP, BL_CONDITION, BL_FLUSH }
|
||||||
};
|
};
|
||||||
|
|
||||||
/* static boolean X11_labels_created = FALSE; */
|
|
||||||
static Widget X11_status_widget;
|
static Widget X11_status_widget;
|
||||||
static Widget X11_status_labels[MAXBLSTATS];
|
static Widget X11_status_labels[MAXBLSTATS];
|
||||||
static Widget X11_cond_labels[32]; /* Ugh */
|
static Widget X11_cond_labels[32]; /* Ugh */
|
||||||
|
|
||||||
static Pixel X11_colors[16];
|
struct xwindow *xw_status_win;
|
||||||
static Pixel X11_status_widget_fg, X11_status_widget_bg;
|
static Pixel X11_status_widget_fg, X11_status_widget_bg;
|
||||||
|
|
||||||
|
|
||||||
@@ -266,15 +265,22 @@ const char *text;
|
|||||||
XtSetArg(args[num_args], nhStr(XtNlabel), (text && *text) ? text : ""); num_args++;
|
XtSetArg(args[num_args], nhStr(XtNlabel), (text && *text) ? text : ""); num_args++;
|
||||||
XtSetArg(args[num_args], nhStr(XtNwidth), lbl_wid); num_args++;
|
XtSetArg(args[num_args], nhStr(XtNwidth), lbl_wid); num_args++;
|
||||||
|
|
||||||
fg = (coloridx != NO_COLOR) ? X11_colors[coloridx]
|
fg = (coloridx != NO_COLOR) ? get_nhcolor(xw_status_win, coloridx).pixel
|
||||||
: X11_status_widget_fg;
|
: X11_status_widget_fg;
|
||||||
if (attrmask & HL_INVERSE) {
|
if (attrmask & HL_INVERSE) {
|
||||||
Pixel tmppx = fg;
|
Pixel tmppx = fg;
|
||||||
fg = bg;
|
fg = bg;
|
||||||
bg = tmppx;
|
bg = tmppx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (attrmask & HL_BOLD) {
|
||||||
|
load_boldfont(xw_status_win, label);
|
||||||
|
XtSetArg(args[num_args], nhStr(XtNfont),
|
||||||
|
xw_status_win->boldfs); num_args++;
|
||||||
|
}
|
||||||
|
|
||||||
if (fg == bg)
|
if (fg == bg)
|
||||||
fg = X11_colors[CLR_GRAY];
|
fg = get_nhcolor(xw_status_win, CLR_GRAY).pixel;
|
||||||
|
|
||||||
XtSetArg(args[num_args], nhStr(XtNforeground), fg); num_args++;
|
XtSetArg(args[num_args], nhStr(XtNforeground), fg); num_args++;
|
||||||
XtSetArg(args[num_args], nhStr(XtNbackground), bg); num_args++;
|
XtSetArg(args[num_args], nhStr(XtNbackground), bg); num_args++;
|
||||||
@@ -404,7 +410,7 @@ unsigned long *colormasks;
|
|||||||
(text && *text) ? text : ""); num_args++;
|
(text && *text) ? text : ""); num_args++;
|
||||||
XtSetArg(args[num_args], nhStr(XtNwidth), lbl_wid); num_args++;
|
XtSetArg(args[num_args], nhStr(XtNwidth), lbl_wid); num_args++;
|
||||||
|
|
||||||
fg = (coloridx != NO_COLOR) ? X11_colors[coloridx]
|
fg = (coloridx != NO_COLOR) ? get_nhcolor(xw_status_win, coloridx).pixel
|
||||||
: X11_status_widget_fg;
|
: X11_status_widget_fg;
|
||||||
if (attridx & HL_INVERSE) {
|
if (attridx & HL_INVERSE) {
|
||||||
Pixel tmppx = fg;
|
Pixel tmppx = fg;
|
||||||
@@ -413,8 +419,14 @@ unsigned long *colormasks;
|
|||||||
bg = tmppx;
|
bg = tmppx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (attridx & HL_BOLD) {
|
||||||
|
load_boldfont(xw_status_win, label);
|
||||||
|
XtSetArg(args[num_args], nhStr(XtNfont),
|
||||||
|
xw_status_win->boldfs); num_args++;
|
||||||
|
}
|
||||||
|
|
||||||
if (fg == bg)
|
if (fg == bg)
|
||||||
fg = X11_colors[CLR_GRAY];
|
fg = get_nhcolor(xw_status_win, CLR_GRAY).pixel;
|
||||||
|
|
||||||
XtSetArg(args[num_args], nhStr(XtNforeground), fg); num_args++;
|
XtSetArg(args[num_args], nhStr(XtNforeground), fg); num_args++;
|
||||||
XtSetArg(args[num_args], nhStr(XtNbackground), bg); num_args++;
|
XtSetArg(args[num_args], nhStr(XtNbackground), bg); num_args++;
|
||||||
@@ -581,44 +593,6 @@ unsigned long *colormasks;
|
|||||||
X11_status_update_tty(fld, ptr, chg, percent, color, colormasks);
|
X11_status_update_tty(fld, ptr, chg, percent, color, colormasks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
init_nhcolors(w)
|
|
||||||
Widget w;
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
Display *dpy = XtDisplay(w);
|
|
||||||
int defscreen = DefaultScreen(dpy);
|
|
||||||
Colormap cmap = DefaultColormap(dpy, defscreen);
|
|
||||||
const char * resource2clr[16] = {
|
|
||||||
XtNblack,
|
|
||||||
XtNred,
|
|
||||||
XtNgreen,
|
|
||||||
XtNbrown,
|
|
||||||
XtNblue,
|
|
||||||
XtNmagenta,
|
|
||||||
XtNcyan,
|
|
||||||
XtNgray,
|
|
||||||
XtNforeground,
|
|
||||||
XtNorange,
|
|
||||||
XtNbright_green,
|
|
||||||
XtNyellow,
|
|
||||||
XtNbright_blue,
|
|
||||||
XtNbright_magenta,
|
|
||||||
XtNbright_cyan,
|
|
||||||
XtNwhite
|
|
||||||
};
|
|
||||||
|
|
||||||
for (i = 0; i < SIZE(resource2clr); i++) {
|
|
||||||
XColor color, ignore;
|
|
||||||
|
|
||||||
if (XAllocNamedColor(dpy, cmap, resource2clr[i], &color, &ignore))
|
|
||||||
X11_colors[i] = color.pixel;
|
|
||||||
else
|
|
||||||
X11_colors[i] = WhitePixel(dpy, defscreen);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget
|
Widget
|
||||||
create_tty_status(parent, top)
|
create_tty_status(parent, top)
|
||||||
Widget parent, top;
|
Widget parent, top;
|
||||||
@@ -718,8 +692,6 @@ Widget parent, top;
|
|||||||
args, num_args);
|
args, num_args);
|
||||||
}
|
}
|
||||||
|
|
||||||
init_nhcolors(w);
|
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -776,6 +748,7 @@ struct xwindow *wp; /* window pointer */
|
|||||||
boolean create_popup;
|
boolean create_popup;
|
||||||
Widget parent;
|
Widget parent;
|
||||||
{
|
{
|
||||||
|
xw_status_win = wp;
|
||||||
if (appResources.fancy_status)
|
if (appResources.fancy_status)
|
||||||
create_status_window_fancy(wp, create_popup, parent);
|
create_status_window_fancy(wp, create_popup, parent);
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user