Selective Transparency - basic functionality (Jaron Omega <jaron@sock-stream.net>).
SVN revision: 10427
This commit is contained in:
parent
7969e6d6c1
commit
0163c3ff80
19
src/E.h
19
src/E.h
|
@ -66,6 +66,18 @@
|
|||
#define ENABLE_TRANSPARENCY 1
|
||||
#define ENABLE_THEME_TRANSPARENCY 1
|
||||
|
||||
#define ST_UNKNWN 0
|
||||
#define ST_BORDER 1
|
||||
#define ST_WIDGET 2
|
||||
#define ST_ICONBOX 3
|
||||
#define ST_MENU 4
|
||||
#define ST_MENU_ITEM 5
|
||||
#define ST_TOOLTIP 6
|
||||
#define ST_DIALOG 7
|
||||
#define ST_HILIGHT 8
|
||||
#define ST_PAGER 9
|
||||
#define ST_WARPLIST 10
|
||||
|
||||
#else
|
||||
|
||||
#include <Imlib.h>
|
||||
|
@ -1574,6 +1586,7 @@ typedef struct _drawqueue
|
|||
Dialog *d;
|
||||
DItem *di;
|
||||
int x, y;
|
||||
int image_type;
|
||||
}
|
||||
DrawQueue;
|
||||
|
||||
|
@ -2311,10 +2324,12 @@ void ImageStateRealize(ImageState * is);
|
|||
void IclassPopulate(ImageClass * iclass);
|
||||
int IclassIsTransparent(ImageClass * iclass);
|
||||
void IclassApply(ImageClass * iclass, Window win, int w, int h,
|
||||
int active, int sticky, int state, char expose);
|
||||
int active, int sticky, int state, char expose,
|
||||
int image_type);
|
||||
void IclassApplyCopy(ImageClass * iclass, Window win, int w,
|
||||
int h, int active, int sticky, int state,
|
||||
PmapMask * pmm, int make_mask);
|
||||
PmapMask * pmm, int make_mask,
|
||||
int image_type);
|
||||
void FreePmapMask(PmapMask * pmm);
|
||||
|
||||
/* iconify.c */
|
||||
|
|
|
@ -725,7 +725,8 @@ EwinWinpartITclassApply(EWin * ewin, int i)
|
|||
|
||||
IclassApply(ewin->border->part[i].iclass, ewin->bits[i].win,
|
||||
ewin->bits[i].w, ewin->bits[i].h, ewin->active,
|
||||
ewin->sticky, ewin->bits[i].state, ewin->bits[i].expose);
|
||||
ewin->sticky, ewin->bits[i].state, ewin->bits[i].expose,
|
||||
ST_BORDER);
|
||||
|
||||
if (ewin->border->part[i].flags == FLAG_TITLE)
|
||||
{
|
||||
|
|
|
@ -303,7 +303,7 @@ ButtonDraw(Button * b)
|
|||
{
|
||||
EDBUG(3, "ButtonDraw");
|
||||
|
||||
IclassApply(b->iclass, b->win, b->w, b->h, 0, 0, b->state, 0);
|
||||
IclassApply(b->iclass, b->win, b->w, b->h, 0, 0, b->state, 0, ST_BORDER);
|
||||
|
||||
if (b->label)
|
||||
TclassApply(b->iclass, b->win, b->w, b->h, 0, 0, b->state, 0, b->tclass,
|
||||
|
|
|
@ -99,7 +99,7 @@ SetCoords(EWin * ewin)
|
|||
EMoveResizeWindow(disp, c_win, cx, cy, cw, ch);
|
||||
pq = Mode.queue_up;
|
||||
Mode.queue_up = 0;
|
||||
IclassApply(ic, c_win, cw, ch, 1, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, c_win, cw, ch, 1, 0, STATE_NORMAL, 0, ST_UNKNWN);
|
||||
TclassApply(ic, c_win, cw, ch, 0, 0, STATE_NORMAL, 0, tc, s);
|
||||
Mode.queue_up = pq;
|
||||
XFlush(disp);
|
||||
|
|
46
src/dialog.c
46
src/dialog.c
|
@ -481,7 +481,8 @@ DialogDrawButton(Dialog * d, int bnum)
|
|||
state = STATE_CLICKED;
|
||||
}
|
||||
IclassApply(d->button[bnum]->iclass, d->button[bnum]->win,
|
||||
d->button[bnum]->w, d->button[bnum]->h, 0, 0, state, 0);
|
||||
d->button[bnum]->w, d->button[bnum]->h, 0, 0, state, 0,
|
||||
ST_WIDGET);
|
||||
TclassApply(d->button[bnum]->iclass, d->button[bnum]->win,
|
||||
d->button[bnum]->w, d->button[bnum]->h, 0, 0, state, 1,
|
||||
d->button[bnum]->tclass, d->button[bnum]->text);
|
||||
|
@ -557,7 +558,7 @@ DialogRedraw(Dialog * d)
|
|||
if ((!d->tclass) || (!d->iclass))
|
||||
return;
|
||||
|
||||
IclassApply(d->iclass, d->win, d->w, d->h, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(d->iclass, d->win, d->w, d->h, 0, 0, STATE_NORMAL, 0, ST_DIALOG);
|
||||
|
||||
for (i = 0; i < d->num_buttons; i++)
|
||||
DialogDrawButton(d, i);
|
||||
|
@ -1616,20 +1617,9 @@ DialogDrawItems(Dialog * d, DItem * di, int x, int y, int w, int h)
|
|||
{
|
||||
DrawQueue *dq;
|
||||
|
||||
dq = Emalloc(sizeof(DrawQueue));
|
||||
dq->win = 0;
|
||||
dq->iclass = NULL;
|
||||
dq = Ecalloc(1, sizeof(DrawQueue));
|
||||
dq->w = w;
|
||||
dq->h = h;
|
||||
dq->active = 0;
|
||||
dq->sticky = 0;
|
||||
dq->state = 0;
|
||||
dq->expose = 0;
|
||||
dq->tclass = NULL;
|
||||
dq->text = NULL;
|
||||
dq->shape_propagate = 0;
|
||||
dq->pager = NULL;
|
||||
dq->redraw_pager = NULL;
|
||||
dq->d = d;
|
||||
dq->di = di;
|
||||
dq->x = x;
|
||||
|
@ -1687,12 +1677,13 @@ DialogDrawItems(Dialog * d, DItem * di, int x, int y, int w, int h)
|
|||
if (di->item.slider.base_win)
|
||||
IclassApply(di->item.slider.ic_base, di->item.slider.base_win,
|
||||
di->item.slider.base_w, di->item.slider.base_h, 0,
|
||||
0, STATE_NORMAL, 0);
|
||||
0, STATE_NORMAL, 0, ST_WIDGET);
|
||||
if (di->item.slider.border_win)
|
||||
IclassApply(di->item.slider.ic_border,
|
||||
di->item.slider.border_win,
|
||||
di->item.slider.border_w,
|
||||
di->item.slider.border_h, 0, 0, STATE_NORMAL, 0);
|
||||
di->item.slider.border_h, 0, 0, STATE_NORMAL, 0,
|
||||
ST_WIDGET);
|
||||
state = STATE_NORMAL;
|
||||
if ((di->hilited) && (di->clicked))
|
||||
state = STATE_CLICKED;
|
||||
|
@ -1703,7 +1694,7 @@ DialogDrawItems(Dialog * d, DItem * di, int x, int y, int w, int h)
|
|||
if (di->item.slider.knob_win)
|
||||
IclassApply(di->item.slider.ic_knob, di->item.slider.knob_win,
|
||||
di->item.slider.knob_w, di->item.slider.knob_h, 0,
|
||||
0, state, 0);
|
||||
0, state, 0, ST_WIDGET);
|
||||
break;
|
||||
case DITEM_BUTTON:
|
||||
state = STATE_NORMAL;
|
||||
|
@ -1713,13 +1704,14 @@ DialogDrawItems(Dialog * d, DItem * di, int x, int y, int w, int h)
|
|||
state = STATE_HILITED;
|
||||
else if (!(di->hilited) && (di->clicked))
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(di->iclass, di->win, di->w, di->h, 0, 0, state, 0);
|
||||
IclassApply(di->iclass, di->win, di->w, di->h, 0, 0, state, 0,
|
||||
ST_WIDGET);
|
||||
TclassApply(di->iclass, di->win, di->w, di->h, 0, 0, state, 1,
|
||||
di->tclass, di->item.button.text);
|
||||
break;
|
||||
case DITEM_AREA:
|
||||
IclassApply(di->iclass, di->win, di->w, di->h, 0, 0,
|
||||
STATE_NORMAL, 0);
|
||||
STATE_NORMAL, 0, ST_DIALOG);
|
||||
break;
|
||||
case DITEM_CHECKBUTTON:
|
||||
state = STATE_NORMAL;
|
||||
|
@ -1732,11 +1724,13 @@ DialogDrawItems(Dialog * d, DItem * di, int x, int y, int w, int h)
|
|||
if (di->item.check_button.onoff)
|
||||
IclassApply(di->iclass, di->item.check_button.check_win,
|
||||
di->item.check_button.check_orig_w,
|
||||
di->item.check_button.check_orig_h, 1, 0, state, 0);
|
||||
di->item.check_button.check_orig_h, 1, 0, state, 0,
|
||||
ST_WIDGET);
|
||||
else
|
||||
IclassApply(di->iclass, di->item.check_button.check_win,
|
||||
di->item.check_button.check_orig_w,
|
||||
di->item.check_button.check_orig_h, 0, 0, state, 0);
|
||||
di->item.check_button.check_orig_h, 0, 0, state, 0,
|
||||
ST_WIDGET);
|
||||
XClearArea(disp, d->win, di->x, di->y, di->w, di->h, False);
|
||||
TextDraw(di->tclass, d->win, 0, 0, STATE_NORMAL,
|
||||
di->item.check_button.text,
|
||||
|
@ -1757,10 +1751,10 @@ DialogDrawItems(Dialog * d, DItem * di, int x, int y, int w, int h)
|
|||
case DITEM_SEPARATOR:
|
||||
if (di->item.separator.horizontal)
|
||||
IclassApply(di->iclass, di->win, di->w, di->h, 0, 0,
|
||||
STATE_NORMAL, 0);
|
||||
STATE_NORMAL, 0, ST_WIDGET);
|
||||
else
|
||||
IclassApply(di->iclass, di->win, di->w, di->h, 0, 0,
|
||||
STATE_CLICKED, 0);
|
||||
STATE_CLICKED, 0, ST_WIDGET);
|
||||
break;
|
||||
case DITEM_RADIOBUTTON:
|
||||
state = STATE_NORMAL;
|
||||
|
@ -1773,11 +1767,13 @@ DialogDrawItems(Dialog * d, DItem * di, int x, int y, int w, int h)
|
|||
if (di->item.radio_button.onoff)
|
||||
IclassApply(di->iclass, di->item.radio_button.radio_win,
|
||||
di->item.radio_button.radio_orig_w,
|
||||
di->item.radio_button.radio_orig_h, 1, 0, state, 0);
|
||||
di->item.radio_button.radio_orig_h, 1, 0, state, 0,
|
||||
ST_WIDGET);
|
||||
else
|
||||
IclassApply(di->iclass, di->item.radio_button.radio_win,
|
||||
di->item.radio_button.radio_orig_w,
|
||||
di->item.radio_button.radio_orig_w, 0, 0, state, 0);
|
||||
di->item.radio_button.radio_orig_w, 0, 0, state, 0,
|
||||
ST_WIDGET);
|
||||
XClearArea(disp, d->win, di->x, di->y, di->w, di->h, False);
|
||||
TextDraw(di->tclass, d->win, 0, 0, STATE_NORMAL,
|
||||
di->item.radio_button.text,
|
||||
|
|
|
@ -219,7 +219,7 @@ HandleDrawQueue()
|
|||
/* printf("I %x\n", dq->win); */
|
||||
if (WinExists(dq->win))
|
||||
IclassApply(dq->iclass, dq->win, dq->w, dq->h, dq->active,
|
||||
dq->sticky, dq->state, 0);
|
||||
dq->sticky, dq->state, 0, dq->image_type);
|
||||
}
|
||||
else if (dq->pager)
|
||||
{
|
||||
|
|
12
src/iclass.c
12
src/iclass.c
|
@ -390,7 +390,7 @@ IclassGetImageState2(ImageClass * iclass, int state, int active, int sticky)
|
|||
|
||||
static void
|
||||
ImageStateMakePmapMask(ImageState * is, Drawable win, PmapMask * pmm,
|
||||
int make_mask, int w, int h)
|
||||
int make_mask, int w, int h, int image_type __UNUSED__)
|
||||
{
|
||||
int apply, trans;
|
||||
int ww, hh;
|
||||
|
@ -719,7 +719,7 @@ ImageStateDrawBevel(ImageState * is, Drawable win, GC gc, int w, int h)
|
|||
|
||||
void
|
||||
IclassApply(ImageClass * iclass, Window win, int w, int h, int active,
|
||||
int sticky, int state, char expose)
|
||||
int sticky, int state, char expose, int image_type)
|
||||
{
|
||||
ImageState *is;
|
||||
|
||||
|
@ -757,6 +757,7 @@ IclassApply(ImageClass * iclass, Window win, int w, int h, int active,
|
|||
dq->di = NULL;
|
||||
dq->x = 0;
|
||||
dq->y = 0;
|
||||
dq->image_type = image_type;
|
||||
AddItem(dq, "DRAW", dq->win, LIST_TYPE_DRAW);
|
||||
EDBUG_RETURN_;
|
||||
}
|
||||
|
@ -775,7 +776,7 @@ IclassApply(ImageClass * iclass, Window win, int w, int h, int active,
|
|||
|
||||
if (is->im)
|
||||
{
|
||||
ImageStateMakePmapMask(is, win, NULL, 1, w, h);
|
||||
ImageStateMakePmapMask(is, win, NULL, 1, w, h, image_type);
|
||||
|
||||
if ((is->unloadable) || (Conf.memory_paranoia))
|
||||
{
|
||||
|
@ -806,7 +807,8 @@ IclassApply(ImageClass * iclass, Window win, int w, int h, int active,
|
|||
|
||||
void
|
||||
IclassApplyCopy(ImageClass * iclass, Window win, int w, int h, int active,
|
||||
int sticky, int state, PmapMask * pmm, int make_mask)
|
||||
int sticky, int state, PmapMask * pmm, int make_mask,
|
||||
int image_type)
|
||||
{
|
||||
ImageState *is;
|
||||
XGCValues gcv;
|
||||
|
@ -835,7 +837,7 @@ IclassApplyCopy(ImageClass * iclass, Window win, int w, int h, int active,
|
|||
|
||||
if (is->im)
|
||||
{
|
||||
ImageStateMakePmapMask(is, win, pmm, make_mask, w, h);
|
||||
ImageStateMakePmapMask(is, win, pmm, make_mask, w, h, image_type);
|
||||
|
||||
if ((is->unloadable) || (Conf.memory_paranoia))
|
||||
{
|
||||
|
|
|
@ -824,7 +824,7 @@ IB_PasteDefaultBase(Drawable d, int x, int y, int w, int h)
|
|||
if (!ic)
|
||||
return;
|
||||
|
||||
IclassApplyCopy(ic, d, w, h, 0, 0, STATE_NORMAL, &pmm, 1);
|
||||
IclassApplyCopy(ic, d, w, h, 0, 0, STATE_NORMAL, &pmm, 1, ST_ICONBOX);
|
||||
PastePixmap(disp, d, pmm.pmap, pmm.mask, x, y);
|
||||
FreePmapMask(&pmm);
|
||||
}
|
||||
|
@ -839,8 +839,7 @@ IB_PasteDefaultBaseMask(Drawable d, int x, int y, int w, int h)
|
|||
ic = FindItem("DEFAULT_ICON_BUTTON", 0, LIST_FINDBY_NAME, LIST_TYPE_ICLASS);
|
||||
if (!ic)
|
||||
return;
|
||||
|
||||
IclassApplyCopy(ic, d, w, h, 0, 0, STATE_NORMAL, &pmm, 1);
|
||||
IclassApplyCopy(ic, d, w, h, 0, 0, STATE_NORMAL, &pmm, 1, ST_ICONBOX);
|
||||
PasteMask(disp, d, pmm.mask, x, y, w, h);
|
||||
FreePmapMask(&pmm);
|
||||
}
|
||||
|
@ -1623,7 +1622,10 @@ IB_DrawScroll(Iconbox * ib)
|
|||
ic = FindItem("ICONBOX_SCROLLBAR_BASE_VERTICAL", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApply(ic, ib->scroll_win, -1, -1, 0, 0, STATE_NORMAL, 0);
|
||||
{
|
||||
IclassApply(ic, ib->scroll_win, -1, -1, 0, 0, STATE_NORMAL, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_SCROLLBAR_KNOB_VERTICAL", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
|
@ -1634,7 +1636,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->scrollbar_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->scrollbar_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->scrollbar_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_SCROLLKNOB_VERTICAL", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
|
@ -1646,7 +1649,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->scrollbar_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->scrollbarknob_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->scrollbarknob_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_ARROW_UP", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
|
@ -1658,7 +1662,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->arrow1_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_ARROW_DOWN", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
|
@ -1670,7 +1675,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->arrow2_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
/* remove this coment when fixed */
|
||||
}
|
||||
|
@ -1865,7 +1871,10 @@ IB_DrawScroll(Iconbox * ib)
|
|||
ic = FindItem("ICONBOX_SCROLLBAR_BASE_HORIZONTAL", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApply(ic, ib->scroll_win, -1, -1, 0, 0, STATE_NORMAL, 0);
|
||||
{
|
||||
IclassApply(ic, ib->scroll_win, -1, -1, 0, 0, STATE_NORMAL, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_SCROLLBAR_KNOB_HORIZONTAL", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
|
@ -1876,7 +1885,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->scrollbar_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->scrollbar_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->scrollbar_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_SCROLLKNOB_HORIZONTAL", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
|
@ -1888,7 +1898,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->scrollbar_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->scrollbarknob_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->scrollbarknob_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_ARROW_LEFT", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
|
@ -1900,7 +1911,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->arrow1_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
ic = FindItem("ICONBOX_ARROW_RIGHT", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
|
@ -1912,7 +1924,8 @@ IB_DrawScroll(Iconbox * ib)
|
|||
state = STATE_HILITED;
|
||||
if (ib->arrow2_clicked)
|
||||
state = STATE_CLICKED;
|
||||
IclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0);
|
||||
IclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
}
|
||||
PropagateShapes(ib->win);
|
||||
|
@ -2103,7 +2116,8 @@ IconboxRedraw(Iconbox * ib)
|
|||
{
|
||||
EMoveResizeWindow(disp, ib->cover_win, ib_xlt, ib_ylt, ib_ww, ib_hh);
|
||||
EMapWindow(disp, ib->cover_win);
|
||||
IclassApply(ib_ic_cover, ib->cover_win, -1, -1, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ib_ic_cover, ib->cover_win, -1, -1, 0, 0, STATE_NORMAL, 0,
|
||||
ST_ICONBOX);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2119,7 +2133,7 @@ IconboxRedraw(Iconbox * ib)
|
|||
|
||||
GetWinWH(ib->icon_win, (unsigned int *)&w, (unsigned int *)&h);
|
||||
IclassApplyCopy(ib_ic_box, ib->icon_win, w, h, 0, 0, STATE_NORMAL,
|
||||
&pmm, 1);
|
||||
&pmm, 1, ST_ICONBOX);
|
||||
EShapeCombineMask(disp, ib->icon_win, ShapeBounding, 0, 0,
|
||||
pmm.mask, ShapeSet);
|
||||
PastePixmap(disp, ib->pmap, pmm.pmap, pmm.mask, 0, 0);
|
||||
|
|
|
@ -1295,7 +1295,7 @@ IPC_ImageClass(const char *params, Client * c)
|
|||
}
|
||||
pq = Mode.queue_up;
|
||||
Mode.queue_up = 0;
|
||||
IclassApply(iclass, win, w, h, 0, 0, st, 0);
|
||||
IclassApply(iclass, win, w, h, 0, 0, st, 0, ST_UNKNWN);
|
||||
Mode.queue_up = pq;
|
||||
}
|
||||
}
|
||||
|
@ -1337,7 +1337,7 @@ IPC_ImageClass(const char *params, Client * c)
|
|||
pq = Mode.queue_up;
|
||||
Mode.queue_up = 0;
|
||||
IclassApplyCopy(iclass, win, w, h, 0, 0, st, &pmm,
|
||||
1);
|
||||
1, ST_UNKNWN);
|
||||
Mode.queue_up = pq;
|
||||
Esnprintf(buf, sizeof(buf), "0x%08x 0x%08x",
|
||||
(unsigned)pmm.pmap, (unsigned)pmm.mask);
|
||||
|
|
38
src/menus.c
38
src/menus.c
|
@ -770,7 +770,7 @@ MenuRealize(Menu * m)
|
|||
ih = 0;
|
||||
GetWinWH(m->items[i]->icon_win, &iw, &ih);
|
||||
IclassApply(m->items[i]->icon_iclass, m->items[i]->icon_win, iw,
|
||||
ih, 0, 0, STATE_NORMAL, 0);
|
||||
ih, 0, 0, STATE_NORMAL, 0, ST_MENU_ITEM);
|
||||
}
|
||||
if (x + maxw > mmw)
|
||||
mmw = x + maxw;
|
||||
|
@ -828,7 +828,7 @@ MenuRedraw(Menu * m)
|
|||
GetWinWH(m->win, &w, &h);
|
||||
FreePmapMask(&m->pmm);
|
||||
IclassApplyCopy(m->style->bg_iclass, m->win, w, h, 0, 0,
|
||||
STATE_NORMAL, &m->pmm, 1);
|
||||
STATE_NORMAL, &m->pmm, 1, ST_MENU);
|
||||
ESetWindowBackgroundPixmap(disp, m->win, m->pmm.pmap);
|
||||
EShapeCombineMask(disp, m->win, ShapeBounding, 0, 0, m->pmm.mask,
|
||||
ShapeSet);
|
||||
|
@ -884,10 +884,12 @@ MenuDrawItem(Menu * m, MenuItem * mi, char shape)
|
|||
|
||||
if (mi->child)
|
||||
IclassApplyCopy(m->style->sub_iclass, mi->win, w, h,
|
||||
0, 0, mi->state, &pmm, 1);
|
||||
0, 0, mi->state, &pmm, 1,
|
||||
ST_MENU_ITEM);
|
||||
else
|
||||
IclassApplyCopy(m->style->item_iclass, mi->win, w, h,
|
||||
0, 0, mi->state, &pmm, 1);
|
||||
IclassApplyCopy(m->style->item_iclass, mi->win, w,
|
||||
h, 0, 0, mi->state, &pmm, 1,
|
||||
ST_MENU_ITEM);
|
||||
if (pmm.mask)
|
||||
{
|
||||
XSetClipMask(disp, gc, pmm.mask);
|
||||
|
@ -902,11 +904,11 @@ MenuDrawItem(Menu * m, MenuItem * mi, char shape)
|
|||
else
|
||||
{
|
||||
if (mi->child)
|
||||
IclassApplyCopy(m->style->sub_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, mi_pmm, 1);
|
||||
IclassApplyCopy(m->style->sub_iclass, mi->win, w, h, 0,
|
||||
0, mi->state, mi_pmm, 1, ST_MENU_ITEM);
|
||||
else
|
||||
IclassApplyCopy(m->style->item_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, mi_pmm, 1);
|
||||
IclassApplyCopy(m->style->item_iclass, mi->win, w, h, 0,
|
||||
0, mi->state, mi_pmm, 1, ST_MENU_ITEM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -932,8 +934,10 @@ MenuDrawItem(Menu * m, MenuItem * mi, char shape)
|
|||
if (!m->style->use_item_bg)
|
||||
{
|
||||
if ((mi->state != STATE_NORMAL) || (mi->child))
|
||||
IclassApply(m->style->item_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, 0);
|
||||
{
|
||||
IclassApply(m->style->item_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, 0, ST_MENU);
|
||||
}
|
||||
else
|
||||
{
|
||||
ESetWindowBackgroundPixmap(disp, mi->win, ParentRelative);
|
||||
|
@ -945,11 +949,15 @@ MenuDrawItem(Menu * m, MenuItem * mi, char shape)
|
|||
else
|
||||
{
|
||||
if (mi->child)
|
||||
IclassApply(m->style->sub_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, 0);
|
||||
{
|
||||
IclassApply(m->style->sub_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, 0, ST_MENU);
|
||||
}
|
||||
else
|
||||
IclassApply(m->style->item_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, 0);
|
||||
{
|
||||
IclassApply(m->style->item_iclass, mi->win, w, h, 0, 0,
|
||||
mi->state, 0, ST_MENU);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
19
src/pager.c
19
src/pager.c
|
@ -213,7 +213,8 @@ PagerCreate(void)
|
|||
Mode.queue_up = 0;
|
||||
ic = FindItem("PAGER_SEL", 0, LIST_FINDBY_NAME, LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApply(ic, p->sel_win, p->w / ax, p->h / ay, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, p->sel_win, p->w / ax, p->h / ay, 0, 0, STATE_NORMAL, 0,
|
||||
ST_PAGER);
|
||||
Mode.queue_up = pq;
|
||||
return p;
|
||||
}
|
||||
|
@ -269,7 +270,8 @@ PagerEwinMoveResize(EWin * ewin, int resize)
|
|||
cy = desks.desk[p->desktop].current_area_y;
|
||||
EMoveResizeWindow(disp, p->sel_win, cx * p->dw, cy * p->dh, p->dw,
|
||||
p->dh);
|
||||
IclassApply(ic, p->sel_win, p->dw, p->dh, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, p->sel_win, p->dw, p->dh, 0, 0, STATE_NORMAL, 0,
|
||||
ST_PAGER);
|
||||
}
|
||||
Mode.queue_up = pq;
|
||||
|
||||
|
@ -532,7 +534,7 @@ PagerEwinUpdateMini(Pager * p, EWin * ewin)
|
|||
ic = FindItem("PAGER_WIN", 0, LIST_FINDBY_NAME, LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApplyCopy(ic, ewin->win, w, h, 0, 0, STATE_NORMAL,
|
||||
&ewin->mini_pmm, 1);
|
||||
&ewin->mini_pmm, 1, ST_PAGER);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -624,6 +626,7 @@ PagerRedraw(Pager * p, char newbg)
|
|||
dq->di = NULL;
|
||||
dq->x = 0;
|
||||
dq->y = 0;
|
||||
dq->image_type = ST_PAGER;
|
||||
AddItem(dq, "DRAW", dq->win, LIST_TYPE_DRAW);
|
||||
return;
|
||||
}
|
||||
|
@ -647,7 +650,7 @@ PagerRedraw(Pager * p, char newbg)
|
|||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApplyCopy(ic, p->win, p->w / ax, p->h / ay, 0, 0,
|
||||
STATE_NORMAL, &p->bgpmap, 0);
|
||||
STATE_NORMAL, &p->bgpmap, 0, ST_PAGER);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1050,7 +1053,7 @@ UpdatePagerSel(void)
|
|||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApply(ic, p->sel_win, p->dw, p->dh, 0, 0,
|
||||
STATE_NORMAL, 0);
|
||||
STATE_NORMAL, 0, ST_PAGER);
|
||||
}
|
||||
}
|
||||
Efree(pl);
|
||||
|
@ -1215,7 +1218,8 @@ PagerShowHi(Pager * p, EWin * ewin, int x, int y, int w, int h)
|
|||
hh = (i * h) / w;
|
||||
xx = x + ((w - ww) / 2);
|
||||
yy = y + ((h - hh) / 2);
|
||||
IclassApply(ic, p->hi_win, ww, hh, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, p->hi_win, ww, hh, 0, 0, STATE_NORMAL, 0,
|
||||
ST_PAGER);
|
||||
EMoveResizeWindow(disp, p->hi_win, xx, yy, ww, hh);
|
||||
XClearWindow(disp, p->hi_win);
|
||||
{
|
||||
|
@ -1239,7 +1243,8 @@ PagerShowHi(Pager * p, EWin * ewin, int x, int y, int w, int h)
|
|||
hh = i;
|
||||
xx = x + ((w - ww) / 2);
|
||||
yy = y + ((h - hh) / 2);
|
||||
IclassApply(ic, p->hi_win, ww, hh, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, p->hi_win, ww, hh, 0, 0, STATE_NORMAL, 0,
|
||||
ST_PAGER);
|
||||
EMoveResizeWindow(disp, p->hi_win, xx, yy, ww, hh);
|
||||
XClearWindow(disp, p->hi_win);
|
||||
{
|
||||
|
|
|
@ -97,7 +97,7 @@ SetProgressbar(Progressbar * p, int progress)
|
|||
Mode.queue_up = 0;
|
||||
TclassApply(p->inc, p->n_win, p->h * 5, p->h, 0, 0, STATE_CLICKED, 0,
|
||||
p->tnc, s);
|
||||
IclassApply(p->inc, p->p_win, w, p->h, 1, 0, STATE_NORMAL, 0);
|
||||
IclassApply(p->inc, p->p_win, w, p->h, 1, 0, STATE_NORMAL, 0, ST_UNKNWN);
|
||||
EResizeWindow(disp, p->p_win, w, p->h);
|
||||
Mode.queue_up = pq;
|
||||
XFlush(disp);
|
||||
|
@ -119,9 +119,11 @@ ShowProgressbar(Progressbar * p)
|
|||
w = p->w;
|
||||
pq = Mode.queue_up;
|
||||
Mode.queue_up = 0;
|
||||
IclassApply(p->ic, p->win, p->w - (p->h * 5), p->h, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(p->inc, p->n_win, (p->h * 5), p->h, 0, 0, STATE_CLICKED, 0);
|
||||
IclassApply(p->ipc, p->p_win, w, p->h, 1, 0, STATE_NORMAL, 0);
|
||||
IclassApply(p->ic, p->win, p->w - (p->h * 5), p->h, 0, 0, STATE_NORMAL, 0,
|
||||
ST_UNKNWN);
|
||||
IclassApply(p->inc, p->n_win, (p->h * 5), p->h, 0, 0, STATE_CLICKED, 0,
|
||||
ST_UNKNWN);
|
||||
IclassApply(p->ipc, p->p_win, w, p->h, 1, 0, STATE_NORMAL, 0, ST_UNKNWN);
|
||||
EMapRaised(disp, p->win);
|
||||
EMapRaised(disp, p->n_win);
|
||||
EMapRaised(disp, p->p_win);
|
||||
|
|
|
@ -1058,7 +1058,7 @@ CB_DesktopDisplayRedraw(int val, void *data)
|
|||
ic = FindItem("SETTINGS_DESKTOP_AREA", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApply(ic, win, w, h, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, win, w, h, 0, 0, STATE_NORMAL, 0, ST_UNKNWN);
|
||||
for (i = 0; i < ENLIGHTENMENT_CONF_NUM_DESKTOPS; i++)
|
||||
wins[i] = 0;
|
||||
called = 1;
|
||||
|
@ -1268,13 +1268,14 @@ CB_AreaDisplayRedraw(int val, void *data)
|
|||
ic = FindItem("SETTINGS_AREA_AREA", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
IclassApply(ic, win, w, h, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, win, w, h, 0, 0, STATE_NORMAL, 0, ST_UNKNWN);
|
||||
awin = ECreateWindow(win, 0, 0, 18, 14, 0);
|
||||
ic = FindItem("SETTINGS_AREADESK_AREA", 0, LIST_FINDBY_NAME,
|
||||
LIST_TYPE_ICLASS);
|
||||
if (ic)
|
||||
{
|
||||
IclassApplyCopy(ic, awin, 18, 14, 0, 0, STATE_NORMAL, &pmm, 0);
|
||||
IclassApplyCopy(ic, awin, 18, 14, 0, 0, STATE_NORMAL, &pmm, 0,
|
||||
ST_UNKNWN);
|
||||
ESetWindowBackgroundPixmap(disp, awin, pmm.pmap);
|
||||
FreePmapMask(&pmm);
|
||||
}
|
||||
|
@ -2498,6 +2499,7 @@ CB_ConfigureBG(int val, void *data)
|
|||
{
|
||||
BackgroundImagesKeep(tmp_bg, 0);
|
||||
}
|
||||
HandleDrawQueue();
|
||||
autosave();
|
||||
|
||||
data = NULL;
|
||||
|
@ -2772,10 +2774,10 @@ BG_RedrawView(char nuke_old)
|
|||
|
||||
if (i == tmp_bg_selected)
|
||||
IclassApplyCopy(ic, pmap, 64 + 8, 48 + 8, 0, 0,
|
||||
STATE_CLICKED, &pmm, 0);
|
||||
STATE_CLICKED, &pmm, 0, ST_UNKNWN);
|
||||
else
|
||||
IclassApplyCopy(ic, pmap, 64 + 8, 48 + 8, 0, 0,
|
||||
STATE_NORMAL, &pmm, 0);
|
||||
STATE_NORMAL, &pmm, 0, ST_UNKNWN);
|
||||
XCopyArea(disp, pmm.pmap, pmap, gc, 0, 0, 64 + 8, 48 + 8, x,
|
||||
0);
|
||||
FreePmapMask(&pmm);
|
||||
|
|
|
@ -219,8 +219,10 @@ CreateStartupDisplay(char start)
|
|||
|
||||
pq = Mode.queue_up;
|
||||
Mode.queue_up = 0;
|
||||
IclassApply(ic, b1, VRoot.w, Conf.desks.dragbar_width, 0, 0, 0, 0);
|
||||
IclassApply(ic, b2, VRoot.w, Conf.desks.dragbar_width, 0, 0, 0, 0);
|
||||
IclassApply(ic, b1, VRoot.w, Conf.desks.dragbar_width, 0, 0, 0, 0,
|
||||
ST_UNKNWN);
|
||||
IclassApply(ic, b2, VRoot.w, Conf.desks.dragbar_width, 0, 0, 0, 0,
|
||||
ST_UNKNWN);
|
||||
Mode.queue_up = pq;
|
||||
BackgroundApply(bg, win1, 1);
|
||||
BackgroundApply(bg, win2, 1);
|
||||
|
|
|
@ -272,7 +272,8 @@ ShowToolTip(ToolTip * tt, const char *text, ActionClass * ac, int x, int y)
|
|||
iy = (h - ih) / 2;
|
||||
EMoveResizeWindow(disp, tt->iwin, ix, iy, iw, ih);
|
||||
EMapWindow(disp, tt->iwin);
|
||||
IclassApply(tt->tooltippic, tt->iwin, iw, ih, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(tt->tooltippic, tt->iwin, iw, ih, 0, 0, STATE_NORMAL, 0,
|
||||
ST_TOOLTIP);
|
||||
}
|
||||
else
|
||||
EUnmapWindow(disp, tt->iwin);
|
||||
|
@ -374,13 +375,17 @@ ShowToolTip(ToolTip * tt, const char *text, ActionClass * ac, int x, int y)
|
|||
|
||||
EMoveResizeWindow(disp, tt->win, xx - ww, yy - hh, w, h);
|
||||
|
||||
IclassApply(tt->s_iclass[0], tt->s_win[0], 8, 8, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(tt->s_iclass[1], tt->s_win[1], 16, 16, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(tt->s_iclass[2], tt->s_win[2], 24, 24, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(tt->s_iclass[3], tt->s_win[3], 32, 32, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(tt->s_iclass[0], tt->s_win[0], 8, 8, 0, 0, STATE_NORMAL, 0,
|
||||
ST_TOOLTIP);
|
||||
IclassApply(tt->s_iclass[1], tt->s_win[1], 16, 16, 0, 0, STATE_NORMAL, 0,
|
||||
ST_TOOLTIP);
|
||||
IclassApply(tt->s_iclass[2], tt->s_win[2], 24, 24, 0, 0, STATE_NORMAL, 0,
|
||||
ST_TOOLTIP);
|
||||
IclassApply(tt->s_iclass[3], tt->s_win[3], 32, 32, 0, 0, STATE_NORMAL, 0,
|
||||
ST_TOOLTIP);
|
||||
if (Conf.theme.transparency && tt->iclass->norm.normal->transparent == 0)
|
||||
tt->iclass->norm.normal->transparent = 2;
|
||||
IclassApply(tt->iclass, tt->win, w, h, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(tt->iclass, tt->win, w, h, 0, 0, STATE_NORMAL, 0, ST_TOOLTIP);
|
||||
EMapRaised(disp, tt->s_win[0]);
|
||||
EMapRaised(disp, tt->s_win[1]);
|
||||
EMapRaised(disp, tt->s_win[2]);
|
||||
|
|
12
src/warp.c
12
src/warp.c
|
@ -240,9 +240,10 @@ WarpFocusShowTitle(EWin * ewin)
|
|||
EMoveResizeWindow(disp, warplist[i].win, 0, (h * i), mw, mh);
|
||||
if (ewin == warplist[i].ewin)
|
||||
IclassApply(ic, warplist[i].win, mw, mh, 0, 0, STATE_CLICKED,
|
||||
0);
|
||||
0, ST_WARPLIST);
|
||||
else
|
||||
IclassApply(ic, warplist[i].win, mw, mh, 0, 0, STATE_NORMAL, 0);
|
||||
IclassApply(ic, warplist[i].win, mw, mh, 0, 0, STATE_NORMAL,
|
||||
0, ST_WARPLIST);
|
||||
}
|
||||
PropagateShapes(warpFocusTitleWindow);
|
||||
EMapWindow(disp, warpFocusTitleWindow);
|
||||
|
@ -266,9 +267,10 @@ WarpFocusShowTitle(EWin * ewin)
|
|||
|
||||
state = (ewin == warplist[i].ewin) ? STATE_CLICKED : STATE_NORMAL;
|
||||
|
||||
IclassApply(ic, warplist[i].win, mw, mh, 0, 0, state, 0);
|
||||
TclassApply(ic, warplist[i].win, mw, mh, 0, 0, state, 0,
|
||||
tc, warplist[i].txt);
|
||||
IclassApply(ic, warplist[i].win, mw, mh, 0, 0, state, 0,
|
||||
ST_WARPLIST);
|
||||
TclassApply(ic, warplist[i].win, mw, mh, 0, 0, state, 0, tc,
|
||||
warplist[i].txt);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue