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

SVN revision: 10506
This commit is contained in:
Kim Woelders 2004-06-14 17:02:32 +00:00
parent ec266936d3
commit f549bae73e
6 changed files with 570 additions and 5 deletions

20
src/E.h
View File

@ -78,6 +78,10 @@
#define ST_PAGER 9
#define ST_WARPLIST 10
#define ICLASS_ATTR_OPAQUE 0 /* No transparency */
#define ICLASS_ATTR_BG 1 /* Background transparency */
#define ICLASS_ATTR_GLASS 2 /* Glass transparency */
#else
#include <Imlib.h>
@ -1229,6 +1233,21 @@ typedef struct
char warpiconified;
char warpfocused;
} warplist;
#if USE_IMLIB2
struct
{
int border;
int widget;
int iconbox;
int menu;
int menu_item;
int tooltip;
int dialog;
int hilight;
int pager;
int warplist;
} st_trans;
#endif
int deskmode;
int movemode;
int resizemode;
@ -2538,6 +2557,7 @@ void SettingsTooltips(void);
void SettingsAudio(void);
void SettingsSpecialFX(void);
void SettingsBackground(Background * bg);
void SettingsSelectiveTransparency(void);
void SettingsIconbox(char *name);
void SettingsGroups(EWin * ewin);
void SettingsDefaultGroupControl(void);

View File

@ -143,6 +143,17 @@
#define CONTROL_GROUP_SWAPMOVE 1372
#define CONTROL_THEME_TRANSPARENCY 1373
#define CONTROL_ST_BORDER 1375
#define CONTROL_ST_WIDGET 1376
#define CONTROL_ST_ICONBOX 1377
#define CONTROL_ST_MENU 1378
#define CONTROL_ST_MENU_ITEM 1379
#define CONTROL_ST_TOOLTIP 1380
#define CONTROL_ST_DIALOG 1381
#define CONTROL_ST_HILIGHT 1382
#define CONTROL_ST_PAGER 1383
#define CONTROL_ST_WARPLIST 1384
#define ICLASS_NAME 350
#define ICLASS_NORMAL 351
#define ICLASS_CLICKED 352

View File

@ -902,9 +902,41 @@ Config_Control(FILE * ConfigFile)
case CONTROL_USER_BG:
Conf.backgrounds.user = i2;
break;
#ifdef USE_IMLIB2
case CONTROL_THEME_TRANSPARENCY:
Conf.theme.transparency = i2;
break;
case CONTROL_ST_BORDER:
Conf.st_trans.border = i2;
break;
case CONTROL_ST_WIDGET:
Conf.st_trans.widget = i2;
break;
case CONTROL_ST_ICONBOX:
Conf.st_trans.iconbox = i2;
break;
case CONTROL_ST_MENU:
Conf.st_trans.menu = i2;
break;
case CONTROL_ST_MENU_ITEM:
Conf.st_trans.menu_item = i2;
break;
case CONTROL_ST_TOOLTIP:
Conf.st_trans.tooltip = i2;
break;
case CONTROL_ST_DIALOG:
Conf.st_trans.dialog = i2;
break;
case CONTROL_ST_HILIGHT:
Conf.st_trans.hilight = i2;
break;
case CONTROL_ST_PAGER:
Conf.st_trans.pager = i2;
break;
case CONTROL_ST_WARPLIST:
Conf.st_trans.warplist = i2;
break;
#endif
case CONTROL_DOCKSTARTPOS:
sscanf(s, "%*s %d %d ", &Conf.dock.startx, &Conf.dock.starty);
break;
@ -3898,7 +3930,19 @@ SaveUserControlConfig(FILE * autosavefile)
fprintf(autosavefile, "1368 %i\n", (int)Conf.tooltips.showroottooltip);
fprintf(autosavefile, "1369 %i %i %i\n", (int)Conf.pagers.sel_button,
(int)Conf.pagers.win_button, (int)Conf.pagers.menu_button);
#ifdef USE_IMLIB2
fprintf(autosavefile, "1373 %i\n", (int)Conf.theme.transparency);
fprintf(autosavefile, "1375 %i\n", (int)Conf.st_trans.border);
fprintf(autosavefile, "1376 %i\n", (int)Conf.st_trans.widget);
fprintf(autosavefile, "1377 %i\n", (int)Conf.st_trans.iconbox);
fprintf(autosavefile, "1378 %i\n", (int)Conf.st_trans.menu);
fprintf(autosavefile, "1379 %i\n", (int)Conf.st_trans.menu_item);
fprintf(autosavefile, "1380 %i\n", (int)Conf.st_trans.tooltip);
fprintf(autosavefile, "1381 %i\n", (int)Conf.st_trans.dialog);
fprintf(autosavefile, "1382 %i\n", (int)Conf.st_trans.hilight);
fprintf(autosavefile, "1383 %i\n", (int)Conf.st_trans.pager);
fprintf(autosavefile, "1384 %i\n", (int)Conf.st_trans.warplist);
#endif
#ifdef HAS_XINERAMA
fprintf(autosavefile, "2013 %i\n", (int)Conf.extra_head);
#endif

View File

@ -394,11 +394,52 @@ ImageStateMakePmapMask(ImageState * is, Drawable win, PmapMask * pmm,
{
int apply, trans;
int ww, hh;
int flags;
PmapMask pmml;
#ifdef ENABLE_TRANSPARENCY
Imlib_Image *ii = NULL;
switch (image_type)
{
case ST_UNKNWN:
flags = ICLASS_ATTR_OPAQUE;
break;
case ST_BORDER:
flags = Conf.st_trans.border;
break;
case ST_WIDGET:
flags = Conf.st_trans.widget;
break;
case ST_ICONBOX:
flags = Conf.st_trans.iconbox;
break;
case ST_MENU:
flags = Conf.st_trans.menu;
break;
case ST_MENU_ITEM:
flags = Conf.st_trans.menu_item;
break;
case ST_TOOLTIP:
flags = Conf.st_trans.tooltip;
break;
case ST_DIALOG:
flags = Conf.st_trans.dialog;
break;
case ST_HILIGHT:
flags = Conf.st_trans.hilight;
break;
case ST_PAGER:
flags = Conf.st_trans.pager;
break;
case ST_WARPLIST:
flags = Conf.st_trans.warplist;
break;
default:
flags = ICLASS_ATTR_OPAQUE;
break;
}
/*
* is->transparent flags:
* 0x01: Use desktop background pixmap as base
@ -428,7 +469,7 @@ ImageStateMakePmapMask(ImageState * is, Drawable win, PmapMask * pmm,
imlib_image_has_alpha()));
#ifdef ENABLE_TRANSPARENCY
if (trans)
if (flags != ICLASS_ATTR_OPAQUE)
{
Window cr;
Pixmap bg;
@ -440,7 +481,7 @@ ImageStateMakePmapMask(ImageState * is, Drawable win, PmapMask * pmm,
{
/* Create the background base image */
bg = BackgroundGetPixmap(desks.desk[desks.current].bg);
if ((is->transparent & 0x02) != 0 || bg == None)
if (flags == ICLASS_ATTR_GLASS || bg == None)
bg = VRoot.win;
imlib_context_set_drawable(bg);
ii = imlib_create_image_from_drawable(0, xx, yy, w, h, 1);
@ -461,13 +502,19 @@ ImageStateMakePmapMask(ImageState * is, Drawable win, PmapMask * pmm,
{
imlib_context_set_blend(1);
#ifdef ENABLE_THEME_TRANSPARENCY
imlib_context_set_color_modifier(icm);
if (flags != ICLASS_ATTR_OPAQUE)
{
imlib_context_set_color_modifier(icm);
}
#endif
imlib_context_set_operation(IMLIB_OP_COPY);
imlib_blend_image_onto_image(is->im, 0, 0, 0, ww, hh, 0, 0, w, h);
imlib_context_set_blend(0);
#ifdef ENABLE_THEME_TRANSPARENCY
imlib_context_set_color_modifier(NULL);
if (flags != ICLASS_ATTR_OPAQUE)
{
imlib_context_set_color_modifier(NULL);
}
#if 0 /* Do we ever need to free it? */
imlib_free_color_modifier();
#endif

View File

@ -2443,6 +2443,16 @@ static char tmp_hiq;
static char tmp_userbg;
static int tmp_bg_timeout;
static int tmp_theme_transparency;
static int tmp_st_border;
static int tmp_st_widget;
static int tmp_st_menu;
static int tmp_st_menu_item;
static int tmp_st_tooltip;
static int tmp_st_dialog;
static int tmp_st_hilight;
static int tmp_st_pager;
static int tmp_st_iconbox;
static int tmp_st_warplist;
static void BG_RedrawView(char nuke_old);
@ -2456,9 +2466,22 @@ CB_ConfigureBG(int val, void *data)
Conf.backgrounds.timeout = tmp_bg_timeout;
Conf.backgrounds.hiquality = tmp_hiq;
Conf.backgrounds.user = tmp_userbg;
#ifdef ENABLE_THEME_TRANSPARENCY
Conf.st_trans.border = tmp_st_border;
Conf.st_trans.widget = tmp_st_widget;
Conf.st_trans.menu = tmp_st_menu;
Conf.st_trans.menu_item = tmp_st_menu_item;
Conf.st_trans.tooltip = tmp_st_tooltip;
Conf.st_trans.dialog = tmp_st_dialog;
Conf.st_trans.hilight = tmp_st_hilight;
Conf.st_trans.pager = tmp_st_pager;
Conf.st_trans.iconbox = tmp_st_iconbox;
Conf.st_trans.warplist = tmp_st_warplist;
TransparencySet(tmp_theme_transparency);
#endif
ESetColor(&(tmp_bg->bg_solid), tmp_bg_r, tmp_bg_g, tmp_bg_b);
tmp_bg->bg_tile = tmp_bg_tile;
tmp_bg->bg.keep_aspect = tmp_bg_keep_aspect;
@ -3148,6 +3171,395 @@ CB_ThemeTransparency(int val, void *data)
return;
val = 0;
}
static void
CB_AdvancedSettings(int val, void *data)
{
if (data == NULL && val == 0)
{
SettingsSelectiveTransparency();
}
return;
}
void
SettingsSelectiveTransparency(void)
{
Dialog *d;
/* Dialog *dexp; */
DItem *table, *di;
DItem *radio_border, *radio_widget, *radio_iconbox,
*radio_menu, *radio_menu_item, *radio_tooltip,
*radio_dialog, *radio_hilight, *radio_pager, *radio_warplist;
if ((d =
FindItem("CONFIGURE_SELECTIVETRANSPARENCY", 0, LIST_FINDBY_NAME,
LIST_TYPE_DIALOG)))
{
SoundPlay("SOUND_SETTINGS_ACTIVE");
ShowDialog(d);
return;
}
SoundPlay("SOUND_SETTINGS_SELECTIVETRANSPARENCY");
tmp_st_border = Conf.st_trans.border;
tmp_st_widget = Conf.st_trans.widget;
tmp_st_iconbox = Conf.st_trans.iconbox;
tmp_st_menu = Conf.st_trans.menu;
tmp_st_menu_item = Conf.st_trans.menu_item;
tmp_st_tooltip = Conf.st_trans.tooltip;
tmp_st_dialog = Conf.st_trans.dialog;
tmp_st_hilight = Conf.st_trans.hilight;
tmp_st_pager = Conf.st_trans.pager;
tmp_st_warplist = Conf.st_trans.warplist;
d = DialogCreate("CONFIGURE_SELECTIVETRANSPARENCY");
DialogSetTitle(d, _("Selective Transparency Settings"));
table = DialogInitItem(d);
DialogItemTableSetOptions(table, 11, 0, 0, 0);
if (Conf.dialogs.headers)
{
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemTextSetText(di,
_("Enlightenment Selective Transparency\n"
"Settings Dialog\n"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
}
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Changes Might Require Restart:"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 2, 2, 10);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_NONE);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Borders:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Menus:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Menu Items:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Hilights:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Dialog:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("E Widgets:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Tooltips:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Pager:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Warplist:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Iconbox:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Opaque"));
radio_border = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_border);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_menu = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_menu);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_menu_item = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_menu_item);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_hilight = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_hilight);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_dialog = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_dialog);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_widget = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_widget);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_tooltip = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_tooltip);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_pager = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_pager);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_warplist = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_warplist);
DialogItemRadioButtonGroupSetVal(di, 0);
radio_iconbox = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_iconbox);
DialogItemRadioButtonGroupSetVal(di, 0);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 2, 4, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 2, 8, 8);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Transparency Style:"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 2, 2, 4);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Background"));
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_border);
DialogItemRadioButtonGroupSetVal(di, 1);
DialogItemRadioButtonGroupSetValPtr(radio_border, &tmp_st_border);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_menu);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_menu_item);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_hilight);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_dialog);
DialogItemRadioButtonGroupSetVal(di, 1);
DialogItemRadioButtonGroupSetValPtr(radio_dialog, &tmp_st_dialog);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_widget);
DialogItemRadioButtonGroupSetVal(di, 1);
DialogItemRadioButtonGroupSetValPtr(radio_widget, &tmp_st_widget);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_tooltip);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_pager);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_warplist);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_iconbox);
DialogItemRadioButtonGroupSetVal(di, 1);
DialogItemRadioButtonGroupSetValPtr(radio_iconbox, &tmp_st_iconbox);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemTextSetText(di, _("Glass"));
di = DialogAddItem(table, DITEM_NONE);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_menu);
DialogItemRadioButtonGroupSetVal(di, 2);
DialogItemRadioButtonGroupSetValPtr(radio_menu, &tmp_st_menu);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_menu_item);
DialogItemRadioButtonGroupSetVal(di, 2);
DialogItemRadioButtonGroupSetValPtr(radio_menu_item, &tmp_st_menu_item);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_hilight);
DialogItemRadioButtonGroupSetVal(di, 2);
DialogItemRadioButtonGroupSetValPtr(radio_hilight, &tmp_st_hilight);
di = DialogAddItem(table, DITEM_NONE);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
di = DialogAddItem(table, DITEM_NONE);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_tooltip);
DialogItemRadioButtonGroupSetVal(di, 2);
DialogItemRadioButtonGroupSetValPtr(radio_tooltip, &tmp_st_tooltip);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_pager);
DialogItemRadioButtonGroupSetVal(di, 2);
DialogItemRadioButtonGroupSetValPtr(radio_pager, &tmp_st_pager);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemRadioButtonSetFirst(di, radio_warplist);
DialogItemRadioButtonGroupSetVal(di, 2);
DialogItemRadioButtonGroupSetValPtr(radio_warplist, &tmp_st_warplist);
di = DialogAddItem(table, DITEM_NONE);
DialogItemSetPadding(di, 2, 20, 2, 2);
DialogItemSetFill(di, 1, 0);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 12);
DialogItemSetPadding(di, 2, 2, 4, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
DialogAddButton(d, _("OK"), CB_ConfigureBG, 1);
DialogAddButton(d, _("Apply"), CB_ConfigureBG, 0);
DialogAddButton(d, _("Close"), CB_ConfigureBG, 1);
DialogSetExitFunction(d, CB_ConfigureBG, 2, d);
DialogBindKey(d, "Escape", CB_SettingsEscape, 0, d);
DialogBindKey(d, "Return", CB_ConfigureBG, 0, d);
ShowDialog(d);
}
#endif
void
@ -3182,6 +3594,19 @@ SettingsBackground(Background * bg)
tmp_bg_timeout = Conf.backgrounds.timeout;
tmp_theme_transparency = Conf.theme.transparency;
#ifdef USE_IMLIB2
tmp_st_border = Conf.st_trans.border;
tmp_st_widget = Conf.st_trans.widget;
tmp_st_iconbox = Conf.st_trans.iconbox;
tmp_st_menu = Conf.st_trans.menu;
tmp_st_menu_item = Conf.st_trans.menu_item;
tmp_st_tooltip = Conf.st_trans.tooltip;
tmp_st_dialog = Conf.st_trans.dialog;
tmp_st_hilight = Conf.st_trans.hilight;
tmp_st_pager = Conf.st_trans.pager;
tmp_st_warplist = Conf.st_trans.warplist;
#endif
d = bg_sel_dialog = DialogCreate("CONFIGURE_BG");
DialogSetTitle(d, _("Desktop Background Settings"));
@ -3547,7 +3972,7 @@ SettingsBackground(Background * bg)
#ifdef ENABLE_THEME_TRANSPARENCY
di = label = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 3);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetAlign(di, 512, 512);
@ -3555,6 +3980,14 @@ SettingsBackground(Background * bg)
tmp_theme_transparency);
DialogItemTextSetText(di, s);
di = DialogAddItem(table, DITEM_BUTTON);
DialogItemSetColSpan(di, 1);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 1024, 512);
DialogItemButtonSetText(di, _("Advanced Settings\n"));
DialogItemSetCallback(di, CB_AdvancedSettings, 0, NULL);
di = DialogAddItem(table, DITEM_SLIDER);
DialogItemSetColSpan(di, 3);
DialogItemSliderSetMinLength(di, 10);

View File

@ -437,6 +437,16 @@ SetupX(void)
Conf.manual_placement = 0;
Conf.edge_flip_resistance = 15;
#ifdef USE_IMLIB2
Conf.st_trans.menu = ICLASS_ATTR_GLASS;
Conf.st_trans.menu_item = ICLASS_ATTR_OPAQUE;
Conf.st_trans.tooltip = ICLASS_ATTR_GLASS;
Conf.st_trans.widget = ICLASS_ATTR_OPAQUE;
Conf.st_trans.border = ICLASS_ATTR_OPAQUE;
Conf.st_trans.iconbox = ICLASS_ATTR_OPAQUE;
Conf.st_trans.dialog = ICLASS_ATTR_BG;
#endif
ScreenInit();
MenusInit();