1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-01-06 05:44:11 +01:00

WPrefs: Add ability to edit FrameBorderColor/FrameSelectedBorderColor.

As part of the process, some #defines were turned into enums.  Also, the *_COL
when needed.

This brings the code for colors in line with the code for textures, and
allows us to use them as array indices to improve readability, e.g.,
colorOptions[MTITLE_COL] instead of colorOptions[3].
This commit is contained in:
Doug Torrance
2014-05-17 02:07:38 -05:00
committed by Carlos R. Mafra
parent 763491f3ff
commit 963b4b2b78

View File

@@ -306,28 +306,38 @@ static const struct {
{ "WorkspaceBack", "(solid, black)", N_("[Background]") } { "WorkspaceBack", "(solid, black)", N_("[Background]") }
}; };
#define RESIZEBAR_BEVEL -1 enum {
#define MENU_BEVEL -2 RESIZEBAR_BEVEL = -1,
MENU_BEVEL = -2
};
#define TEXPREV_WIDTH 40 enum {
#define TEXPREV_HEIGHT 24 TEXPREV_WIDTH = 40,
TEXPREV_HEIGHT = 24
};
#define MSTYLE_NORMAL 0 enum {
#define MSTYLE_SINGLE 1 MSTYLE_NORMAL,
#define MSTYLE_FLAT 2 MSTYLE_SINGLE,
MSTYLE_FLAT
};
#define FTITLE_COL (1<<0) enum {
#define UTITLE_COL (1<<1) FTITLE_COL,
#define OTITLE_COL (1<<2) UTITLE_COL,
#define MTITLE_COL (1<<3) OTITLE_COL,
#define MITEM_COL (1<<4) MTITLE_COL,
#define MDISAB_COL (1<<5) MITEM_COL,
#define MHIGH_COL (1<<6) MDISAB_COL,
#define MHIGHT_COL (1<<7) MHIGH_COL,
#define ICONT_COL (1<<8) MHIGHT_COL,
#define ICONB_COL (1<<9) FBORDER_COL,
#define CLIP_COL (1<<10) FSBORDER_COL,
#define CCLIP_COL (1<<11) ICONT_COL,
ICONB_COL,
CLIP_COL,
CCLIP_COL
};
static const struct { static const struct {
const char *key; const char *key;
@@ -341,10 +351,12 @@ static const struct {
{ "MenuDisabledColor", "#616161" }, { "MenuDisabledColor", "#616161" },
{ "HighlightColor", "white" }, { "HighlightColor", "white" },
{ "HighlightTextColor", "black" }, { "HighlightTextColor", "black" },
{ "IconTitleColor", "white" }, { "FrameBorderColor", "black" },
{ "IconTitleBack", "black" }, { "FrameSelectedBorderColor", "white" }/* , */
{ "ClipTitleColor", "black" }, /* { "IconTitleColor", "white" }, */
{ "CClipTitleColor", "#454045" } /* { "IconTitleBack", "black" }, */
/* { "ClipTitleColor", "black" }, */
/* { "CClipTitleColor", "#454045" } */
}; };
static WMRect previewPositions[] = { static WMRect previewPositions[] = {
@@ -376,6 +388,8 @@ static WMRect previewColorPositions[] = {
{{30, 160}, {90, 20}}, {{30, 160}, {90, 20}},
{{30, 180}, {90, 20}}, {{30, 180}, {90, 20}},
{{30, 200}, {90, 20}}, {{30, 200}, {90, 20}},
{{30, 40}, {190, 20}},
{{30, 10}, {190, 20}},
{{155, 130}, {64, 64}}, {{155, 130}, {64, 64}},
{{155, 130}, {64, 64}}, {{155, 130}, {64, 64}},
{{155, 130}, {64, 64}}, {{155, 130}, {64, 64}},
@@ -433,14 +447,10 @@ static void drawResizebarBevel(RImage * img)
{ {
RColor light; RColor light;
RColor dark; RColor dark;
RColor black;
int width = img->width; int width = img->width;
int height = img->height; int height = img->height;
int cwidth = 28; int cwidth = 28;
black.alpha = 255;
black.red = black.green = black.blue = 0;
light.alpha = 0; light.alpha = 0;
light.red = light.green = light.blue = 80; light.red = light.green = light.blue = 80;
@@ -456,9 +466,6 @@ static void drawResizebarBevel(RImage * img)
ROperateLine(img, RSubtractOperation, width - cwidth - 2, 2, width - cwidth - 2, height - 1, &dark); ROperateLine(img, RSubtractOperation, width - cwidth - 2, 2, width - cwidth - 2, height - 1, &dark);
ROperateLine(img, RAddOperation, width - cwidth - 1, 2, width - cwidth - 1, height - 1, &light); ROperateLine(img, RAddOperation, width - cwidth - 1, 2, width - cwidth - 1, height - 1, &light);
RDrawLine(img, 0, height - 1, width - 1, height - 1, &black);
RDrawLine(img, 0, 0, 0, height - 1, &black);
RDrawLine(img, width - 1, 0, width - 1, height - 1, &black);
} }
static void drawMenuBevel(RImage * img) static void drawMenuBevel(RImage * img)
@@ -744,7 +751,6 @@ static void updatePreviewBox(_Panel * panel, int elements)
Pixmap pix; Pixmap pix;
GC gc; GC gc;
int colorUpdate = 0; int colorUpdate = 0;
WMColor *black = WMBlackColor(scr);
gc = XCreateGC(dpy, WMWidgetXID(panel->parent), 0, NULL); gc = XCreateGC(dpy, WMWidgetXID(panel->parent), 0, NULL);
@@ -779,46 +785,23 @@ static void updatePreviewBox(_Panel * panel, int elements)
if (elements & (1 << PFOCUSED)) { if (elements & (1 << PFOCUSED)) {
renderPreview(panel, gc, PFOCUSED, RBEV_RAISED2); renderPreview(panel, gc, PFOCUSED, RBEV_RAISED2);
XDrawRectangle(dpy, panel->preview, WMColorGC(black), colorUpdate |= 1 << FTITLE_COL | 1 << FSBORDER_COL;
previewPositions[PFOCUSED].pos.x - 1,
previewPositions[PFOCUSED].pos.y - 1,
previewPositions[PFOCUSED].size.width, previewPositions[PFOCUSED].size.height);
XDrawRectangle(dpy, panel->previewNoText, WMColorGC(black),
previewPositions[PFOCUSED].pos.x - 1,
previewPositions[PFOCUSED].pos.y - 1,
previewPositions[PFOCUSED].size.width, previewPositions[PFOCUSED].size.height);
colorUpdate |= FTITLE_COL;
} }
if (elements & (1 << PUNFOCUSED)) { if (elements & (1 << PUNFOCUSED)) {
renderPreview(panel, gc, PUNFOCUSED, RBEV_RAISED2); renderPreview(panel, gc, PUNFOCUSED, RBEV_RAISED2);
XDrawRectangle(dpy, panel->preview, WMColorGC(black), colorUpdate |= 1 << UTITLE_COL | 1 << FBORDER_COL;
previewPositions[PUNFOCUSED].pos.x - 1,
previewPositions[PUNFOCUSED].pos.y - 1,
previewPositions[PUNFOCUSED].size.width, previewPositions[PUNFOCUSED].size.height);
XDrawRectangle(dpy, panel->previewNoText, WMColorGC(black),
previewPositions[PUNFOCUSED].pos.x - 1,
previewPositions[PUNFOCUSED].pos.y - 1,
previewPositions[PUNFOCUSED].size.width, previewPositions[PUNFOCUSED].size.height);
colorUpdate |= UTITLE_COL;
} }
if (elements & (1 << POWNER)) { if (elements & (1 << POWNER)) {
renderPreview(panel, gc, POWNER, RBEV_RAISED2); renderPreview(panel, gc, POWNER, RBEV_RAISED2);
XDrawRectangle(dpy, panel->preview, WMColorGC(black), colorUpdate |= 1 << OTITLE_COL | 1 << FBORDER_COL;
previewPositions[POWNER].pos.x - 1,
previewPositions[POWNER].pos.y - 1,
previewPositions[POWNER].size.width, previewPositions[POWNER].size.height);
XDrawRectangle(dpy, panel->previewNoText, WMColorGC(black),
previewPositions[POWNER].pos.x - 1,
previewPositions[POWNER].pos.y - 1,
previewPositions[POWNER].size.width, previewPositions[POWNER].size.height);
colorUpdate |= OTITLE_COL;
} }
if (elements & (1 << PRESIZEBAR)) { if (elements & (1 << PRESIZEBAR)) {
renderPreview(panel, gc, PRESIZEBAR, RESIZEBAR_BEVEL); renderPreview(panel, gc, PRESIZEBAR, RESIZEBAR_BEVEL);
colorUpdate |= 1 << FBORDER_COL;
} }
if (elements & (1 << PMTITLE)) { if (elements & (1 << PMTITLE)) {
renderPreview(panel, gc, PMTITLE, RBEV_RAISED2); renderPreview(panel, gc, PMTITLE, RBEV_RAISED2);
colorUpdate |= MTITLE_COL; colorUpdate |= 1 << MTITLE_COL | 1 << FBORDER_COL;
} }
if (elements & (1 << PMITEM)) { if (elements & (1 << PMITEM)) {
WMListItem *item; WMListItem *item;
@@ -842,14 +825,9 @@ static void updatePreviewBox(_Panel * panel, int elements)
XFreePixmap(dpy, pix); XFreePixmap(dpy, pix);
colorUpdate |= MITEM_COL | MDISAB_COL | MHIGH_COL | MHIGHT_COL; colorUpdate |= 1 << MITEM_COL | 1 << MDISAB_COL |
} 1 << MHIGH_COL | 1 << MHIGHT_COL |
if (elements & (1 << PMITEM | 1 << PMTITLE)) { 1 << FBORDER_COL;
XDrawLine(dpy, panel->preview, gc, 29, 120, 29, 120 + 20 * 4 + 20);
XDrawLine(dpy, panel->preview, gc, 29, 119, 119, 119);
XDrawLine(dpy, panel->previewNoText, gc, 29, 120, 29, 120 + 20 * 4 + 20);
XDrawLine(dpy, panel->previewNoText, gc, 29, 119, 119, 119);
} }
if (elements & (1 << PICON)) { if (elements & (1 << PICON)) {
WMListItem *item; WMListItem *item;
@@ -860,7 +838,8 @@ static void updatePreviewBox(_Panel * panel, int elements)
renderPreview(panel, gc, PICON, titem->ispixmap ? 0 : RBEV_RAISED3); renderPreview(panel, gc, PICON, titem->ispixmap ? 0 : RBEV_RAISED3);
colorUpdate |= ICONT_COL | ICONB_COL | CLIP_COL | CCLIP_COL; colorUpdate |= 1 << ICONT_COL | 1 << ICONB_COL |
1 << CLIP_COL | 1 << CCLIP_COL;
} }
if (colorUpdate) if (colorUpdate)
@@ -869,7 +848,6 @@ static void updatePreviewBox(_Panel * panel, int elements)
WMRedisplayWidget(panel->prevL); WMRedisplayWidget(panel->prevL);
XFreeGC(dpy, gc); XFreeGC(dpy, gc);
WMReleaseColor(black);
} }
static void cancelNewTexture(void *data) static void cancelNewTexture(void *data)
@@ -1387,6 +1365,8 @@ static void changeColorPage(WMWidget * w, void *data)
{5, 160}, {5, 160},
{5, 180}, {5, 180},
{5, 180}, {5, 180},
{5, 40},
{5, 10},
{130, 140}, {130, 140},
{130, 140}, {130, 140},
{130, 140}, {130, 140},
@@ -1447,62 +1427,145 @@ static void updateColorPreviewBox(_Panel * panel, int elements)
d = panel->preview; d = panel->preview;
pnot = panel->previewNoText; pnot = panel->previewNoText;
gc = WMColorGC(panel->colors[0]); gc = WMColorGC(panel->colors[FTITLE_COL]);
if (elements & FTITLE_COL) { if (elements & (1 << FTITLE_COL)) {
XCopyArea(dpy, pnot, d, gc, 30, 10, 190, 20, 30, 10); XCopyArea(dpy, pnot, d, gc, 30, 10, 190, 20, 30, 10);
paintText(scr, d, panel->colors[0], panel->boldFont, 30, 10, 190, 20, paintText(scr, d, panel->colors[FTITLE_COL],
panel->boldFont, 30, 10, 190, 20,
panel->titleAlignment, _("Focused Window")); panel->titleAlignment, _("Focused Window"));
} }
if (elements & UTITLE_COL) { if (elements & (1 << UTITLE_COL)) {
XCopyArea(dpy, pnot, d, gc, 30, 40, 190, 20, 30, 40); XCopyArea(dpy, pnot, d, gc, 30, 40, 190, 20, 30, 40);
paintText(scr, d, panel->colors[1], panel->boldFont, 30, 40, 190, 20, paintText(scr, d, panel->colors[UTITLE_COL],
panel->titleAlignment, _("Unfocused Window")); panel->boldFont, 30, 40, 190, 20,
panel->titleAlignment,
_("Unfocused Window"));
} }
if (elements & OTITLE_COL) { if (elements & (1 << OTITLE_COL)) {
XCopyArea(dpy, pnot, d, gc, 30, 70, 190, 20, 30, 70); XCopyArea(dpy, pnot, d, gc, 30, 70, 190, 20, 30, 70);
paintText(scr, d, panel->colors[2], panel->boldFont, 30, 70, 190, 20, paintText(scr, d, panel->colors[OTITLE_COL],
panel->titleAlignment, _("Owner of Focused Window")); panel->boldFont, 30, 70, 190, 20,
panel->titleAlignment,
_("Owner of Focused Window"));
} }
if (elements & MTITLE_COL) { if (elements & (1 << MTITLE_COL)) {
XCopyArea(dpy, pnot, d, gc, 30, 120, 90, 20, 30, 120); XCopyArea(dpy, pnot, d, gc, 30, 120, 90, 20, 30, 120);
paintText(scr, d, panel->colors[3], panel->boldFont, 30, 120, 90, 20, WALeft, _("Menu Title")); paintText(scr, d, panel->colors[MTITLE_COL],
panel->boldFont, 30, 120, 90, 20, WALeft,
_("Menu Title"));
} }
if (elements & MITEM_COL) { if (elements & (1 << MITEM_COL)) {
XCopyArea(dpy, pnot, d, gc, 30, 140, 90, 20, 30, 140); XCopyArea(dpy, pnot, d, gc, 30, 140, 90, 20, 30, 140);
paintText(scr, d, panel->colors[4], panel->normalFont, 30, 140, 90, 20, WALeft, _("Normal Item")); paintText(scr, d, panel->colors[MITEM_COL],
panel->normalFont, 30, 140, 90, 20, WALeft,
_("Normal Item"));
XCopyArea(dpy, pnot, d, gc, 30, 200, 90, 20, 30, 200); XCopyArea(dpy, pnot, d, gc, 30, 200, 90, 20, 30, 200);
paintText(scr, d, panel->colors[4], panel->normalFont, 30, 200, 90, 20, WALeft, _("Normal Item")); paintText(scr, d, panel->colors[MITEM_COL],
panel->normalFont, 30, 200, 90, 20, WALeft,
_("Normal Item"));
} }
if (elements & MDISAB_COL) { if (elements & (1 << MDISAB_COL)) {
XCopyArea(dpy, pnot, d, gc, 30, 160, 90, 20, 30, 160); XCopyArea(dpy, pnot, d, gc, 30, 160, 90, 20, 30, 160);
paintText(scr, d, panel->colors[5], panel->normalFont, 30, 160, 90, 20, paintText(scr, d, panel->colors[MDISAB_COL],
WALeft, _("Disabled Item")); panel->normalFont, 30, 160, 90, 20, WALeft,
_("Disabled Item"));
} }
if (elements & MHIGH_COL) { if (elements & (1 << MHIGH_COL)) {
XFillRectangle(WMScreenDisplay(scr), d, WMColorGC(panel->colors[6]), 31, 181, 87, 17); XFillRectangle(WMScreenDisplay(scr), d,
XFillRectangle(WMScreenDisplay(scr), pnot, WMColorGC(panel->colors[6]), 31, 181, 87, 17); WMColorGC(panel->colors[MHIGH_COL]),
elements |= MHIGHT_COL; 31, 181, 87, 17);
XFillRectangle(WMScreenDisplay(scr), pnot,
WMColorGC(panel->colors[MHIGH_COL]),
31, 181, 87, 17);
elements |= 1 << MHIGHT_COL;
} }
if (elements & MHIGHT_COL) { if (elements & (1 << MHIGHT_COL)) {
XCopyArea(dpy, pnot, d, gc, 30, 180, 90, 20, 30, 180); XCopyArea(dpy, pnot, d, gc, 30, 180, 90, 20, 30, 180);
paintText(scr, d, panel->colors[7], panel->normalFont, 30, 180, 90, 20, WALeft, _("Highlighted")); paintText(scr, d, panel->colors[MHIGHT_COL],
panel->normalFont, 30, 180, 90, 20, WALeft,
_("Highlighted"));
} }
if (elements & (1 << FBORDER_COL)) {
XDrawRectangle(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
29, 39, 190, 20);
XDrawRectangle(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
29, 39, 190, 20);
XDrawRectangle(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
29, 69, 190, 20);
XDrawRectangle(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
29, 69, 190, 20);
XDrawLine(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
30, 100, 30, 109);
XDrawLine(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
30, 100, 30, 109);
XDrawLine(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
31, 109, 219, 109);
XDrawLine(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
31, 109, 219, 109);
XDrawLine(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
220, 100, 220, 109);
XDrawLine(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
220, 100, 220, 109);
XDrawLine(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
29, 120, 29, 220);
XDrawLine(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
29, 120, 29, 220);
XDrawLine(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
29, 119, 119, 119);
XDrawLine(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
29, 119, 119, 119);
XDrawLine(dpy, pnot,
WMColorGC(panel->colors[FBORDER_COL]),
119, 120, 119, 220);
XDrawLine(dpy, d,
WMColorGC(panel->colors[FBORDER_COL]),
119, 120, 119, 220);
}
if (elements & (1 << FSBORDER_COL)) {
XDrawRectangle(dpy, pnot,
WMColorGC(panel->
colors[FSBORDER_COL]),
29, 9, 190, 20);
XDrawRectangle(dpy, d,
WMColorGC(panel->
colors[FSBORDER_COL]),
29, 9, 190, 20);
}
/* /*
if (elements & ICONT_COL) { if (elements & (1 << ICONT_COL)) {
WRITE(_("Focused Window"), panel->colors[8], panel->boldFont, WRITE(_("Focused Window"), panel->colors[ICONT_COL],
panel->boldFont,
155, 130, 64); 155, 130, 64);
} }
if (elements & ICONB_COL) { if (elements & (1 << ICONB_COL)) {
WRITE(_("Focused Window"), panel->colors[9], panel->boldFont, WRITE(_("Focused Window"), panel->colors[ICONB_COL],
panel->boldFont,
0, 0, 30); 0, 0, 30);
} }
if (elements & CLIP_COL) { if (elements & (1 << CLIP_COL)) {
WRITE(_("Focused Window"), panel->colors[10], panel->boldFont, WRITE(_("Focused Window"), panel->colors[CLIP_COL],
panel->boldFont,
0, 0, 30); 0, 0, 30);
} }
if (elements & CCLIP_COL) { if (elements & (1 << CCLIP_COL)) {
WRITE(_("Focused Window"), panel->colors[11], panel->boldFont, WRITE(_("Focused Window"), panel->colors[CCLIP_COL],
panel->boldFont,
0, 0, 30); 0, 0, 30);
} }
*/ */
@@ -1775,6 +1838,8 @@ static void createPanel(Panel * p)
WMAddPopUpButtonItem(panel->colP, _("Disabled Menu Item Text")); WMAddPopUpButtonItem(panel->colP, _("Disabled Menu Item Text"));
WMAddPopUpButtonItem(panel->colP, _("Menu Highlight Color")); WMAddPopUpButtonItem(panel->colP, _("Menu Highlight Color"));
WMAddPopUpButtonItem(panel->colP, _("Highlighted Menu Text Color")); WMAddPopUpButtonItem(panel->colP, _("Highlighted Menu Text Color"));
WMAddPopUpButtonItem(panel->colP, _("Frame Border Color"));
WMAddPopUpButtonItem(panel->colP, _("Selected Frame Border Color"));
/* /*
WMAddPopUpButtonItem(panel->colP, _("Miniwindow Title")); WMAddPopUpButtonItem(panel->colP, _("Miniwindow Title"));
WMAddPopUpButtonItem(panel->colP, _("Miniwindow Title Back")); WMAddPopUpButtonItem(panel->colP, _("Miniwindow Title Back"));
@@ -1987,7 +2052,7 @@ static void storeData(_Panel * panel)
SetObjectForKey(titem->prop, textureOptions[i].key); SetObjectForKey(titem->prop, textureOptions[i].key);
} }
for (i = 0; i < 8; i++) { for (i = 0; i < wlengthof(colorOptions); i++) {
char *str; char *str;
str = WMGetColorRGBDescription(panel->colors[i]); str = WMGetColorRGBDescription(panel->colors[i]);