Selective Transparency - basic functionality (Jaron Omega <jaron@sock-stream.net>).

SVN revision: 10427
This commit is contained in:
Kim Woelders 2004-06-03 18:04:47 +00:00
parent 7969e6d6c1
commit 0163c3ff80
16 changed files with 151 additions and 97 deletions

19
src/E.h
View File

@ -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 */

View File

@ -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)
{

View File

@ -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,

View File

@ -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);

View File

@ -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,

View File

@ -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)
{

View File

@ -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))
{

View File

@ -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);

View File

@ -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);

View File

@ -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);
}
}
}

View File

@ -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);
{

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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]);

View File

@ -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);
}
}