716 lines
22 KiB
C
716 lines
22 KiB
C
/*
|
|
* Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors
|
|
* Copyright (C) 2004-2007 Kim Woelders
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to
|
|
* deal in the Software without restriction, including without limitation the
|
|
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
* sell copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies of the Software, its documentation and marketing & publicity
|
|
* materials, and acknowledgment shall be given in the documentation, materials
|
|
* and software packages that this Software was used.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
#include "E.h"
|
|
#include "dialog.h"
|
|
#include "settings.h"
|
|
|
|
static int tmp_move;
|
|
static int tmp_resize;
|
|
static int tmp_geominfo;
|
|
static char tmp_update_while_moving;
|
|
static char tmp_sync_request;
|
|
|
|
static void
|
|
CB_ConfigureMoveResize(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
|
|
{
|
|
if (val < 2)
|
|
{
|
|
Conf.movres.mode_move = tmp_move;
|
|
Conf.movres.mode_resize = tmp_resize;
|
|
Conf.movres.mode_info = tmp_geominfo;
|
|
Conf.movres.update_while_moving = tmp_update_while_moving;
|
|
Conf.movres.enable_sync_request = tmp_sync_request;
|
|
}
|
|
autosave();
|
|
}
|
|
|
|
static void
|
|
_DlgFillMoveResize(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
|
|
{
|
|
DItem *di, *radio1, *radio2, *radio3;
|
|
|
|
tmp_move = Conf.movres.mode_move;
|
|
tmp_resize = Conf.movres.mode_resize;
|
|
tmp_geominfo = Conf.movres.mode_info;
|
|
tmp_update_while_moving = Conf.movres.update_while_moving;
|
|
tmp_sync_request = Conf.movres.enable_sync_request;
|
|
|
|
DialogItemTableSetOptions(table, 2, 0, 0, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 0, 512);
|
|
DialogItemSetText(di, _("Move Methods:"));
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 0, 512);
|
|
DialogItemSetText(di, _("Resize Methods:"));
|
|
|
|
radio1 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Opaque"));
|
|
DialogItemRadioButtonSetFirst(di, radio1);
|
|
DialogItemRadioButtonGroupSetVal(di, 0);
|
|
|
|
radio2 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Opaque"));
|
|
DialogItemRadioButtonSetFirst(di, radio2);
|
|
DialogItemRadioButtonGroupSetVal(di, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Technical"));
|
|
DialogItemRadioButtonSetFirst(di, radio1);
|
|
DialogItemRadioButtonGroupSetVal(di, 1);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Technical"));
|
|
DialogItemRadioButtonSetFirst(di, radio2);
|
|
DialogItemRadioButtonGroupSetVal(di, 1);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Box"));
|
|
DialogItemRadioButtonSetFirst(di, radio1);
|
|
DialogItemRadioButtonGroupSetVal(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Box"));
|
|
DialogItemRadioButtonSetFirst(di, radio2);
|
|
DialogItemRadioButtonGroupSetVal(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Shaded"));
|
|
DialogItemRadioButtonSetFirst(di, radio1);
|
|
DialogItemRadioButtonGroupSetVal(di, 3);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Shaded"));
|
|
DialogItemRadioButtonSetFirst(di, radio2);
|
|
DialogItemRadioButtonGroupSetVal(di, 3);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Semi-Solid"));
|
|
DialogItemRadioButtonSetFirst(di, radio1);
|
|
DialogItemRadioButtonGroupSetVal(di, 4);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Semi-Solid"));
|
|
DialogItemRadioButtonSetFirst(di, radio2);
|
|
DialogItemRadioButtonGroupSetVal(di, 4);
|
|
DialogItemRadioButtonGroupSetValPtr(radio2, &tmp_resize);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Translucent"));
|
|
DialogItemRadioButtonSetFirst(di, radio1);
|
|
DialogItemRadioButtonGroupSetVal(di, 5);
|
|
DialogItemRadioButtonGroupSetValPtr(radio1, &tmp_move);
|
|
|
|
di = DialogAddItem(table, DITEM_NONE);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 0, 512);
|
|
DialogItemSetText(di, _("Move/Resize Geometry Info Postion:"));
|
|
|
|
radio3 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Window Center (O/T/B Methods)"));
|
|
DialogItemRadioButtonSetFirst(di, radio3);
|
|
DialogItemRadioButtonGroupSetVal(di, 1);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Always Screen corner"));
|
|
DialogItemRadioButtonSetFirst(di, radio3);
|
|
DialogItemRadioButtonGroupSetVal(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Don't show"));
|
|
DialogItemRadioButtonSetFirst(di, radio3);
|
|
DialogItemRadioButtonGroupSetVal(di, 0);
|
|
DialogItemRadioButtonGroupSetValPtr(radio3, &tmp_geominfo);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Update window while moving"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_update_while_moving);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Synchronize move/resize with application"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_sync_request);
|
|
}
|
|
|
|
const DialogDef DlgMoveResize = {
|
|
"CONFIGURE_MOVERESIZE",
|
|
N_("Move/Resize"),
|
|
N_("Move & Resize Settings"),
|
|
"SOUND_SETTINGS_MOVERESIZE",
|
|
"pix/moveres.png",
|
|
N_("Enlightenment Move & Resize\n" "Method Settings Dialog\n"),
|
|
_DlgFillMoveResize,
|
|
DLG_OAC, CB_ConfigureMoveResize,
|
|
};
|
|
|
|
static char tmp_with_leader;
|
|
static char tmp_switch_popup;
|
|
static char tmp_manual_placement;
|
|
static char tmp_manual_placement_mouse_pointer;
|
|
static char tmp_map_slide;
|
|
static char tmp_cleanup_slide;
|
|
static int tmp_slide_mode;
|
|
static int tmp_map_slide_speed;
|
|
static int tmp_cleanup_slide_speed;
|
|
static char tmp_animate_shading;
|
|
static int tmp_shade_speed;
|
|
static char tmp_place_ignore_struts;
|
|
static char tmp_raise_fullscreen;
|
|
|
|
#ifdef HAVE_XINERAMA
|
|
static char tmp_extra_head;
|
|
#endif
|
|
|
|
static void
|
|
CB_ConfigurePlacement(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
|
|
{
|
|
if (val < 2)
|
|
{
|
|
Conf.focus.transientsfollowleader = tmp_with_leader;
|
|
Conf.focus.switchfortransientmap = tmp_switch_popup;
|
|
|
|
Conf.place.manual = tmp_manual_placement;
|
|
Conf.place.manual_mouse_pointer = tmp_manual_placement_mouse_pointer;
|
|
|
|
Conf.place.slidein = tmp_map_slide;
|
|
Conf.place.cleanupslide = tmp_cleanup_slide;
|
|
Conf.place.slidemode = tmp_slide_mode;
|
|
Conf.place.slidespeedmap = tmp_map_slide_speed;
|
|
Conf.place.slidespeedcleanup = tmp_cleanup_slide_speed;
|
|
|
|
Conf.shading.animate = tmp_animate_shading;
|
|
Conf.shading.speed = tmp_shade_speed;
|
|
|
|
Conf.place.ignore_struts = tmp_place_ignore_struts;
|
|
Conf.place.raise_fullscreen = tmp_raise_fullscreen;
|
|
#ifdef HAVE_XINERAMA
|
|
if (Mode.display.xinerama_active)
|
|
Conf.place.extra_head = tmp_extra_head;
|
|
#endif
|
|
}
|
|
autosave();
|
|
}
|
|
|
|
static void
|
|
_DlgFillPlacement(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
|
|
{
|
|
DItem *di, *radio;
|
|
|
|
tmp_with_leader = Conf.focus.transientsfollowleader;
|
|
tmp_switch_popup = Conf.focus.switchfortransientmap;
|
|
|
|
tmp_manual_placement = Conf.place.manual;
|
|
tmp_manual_placement_mouse_pointer = Conf.place.manual_mouse_pointer;
|
|
|
|
tmp_map_slide = Conf.place.slidein;
|
|
tmp_cleanup_slide = Conf.place.cleanupslide;
|
|
tmp_slide_mode = Conf.place.slidemode;
|
|
tmp_map_slide_speed = Conf.place.slidespeedmap;
|
|
tmp_cleanup_slide_speed = Conf.place.slidespeedcleanup;
|
|
|
|
tmp_animate_shading = Conf.shading.animate;
|
|
tmp_shade_speed = Conf.shading.speed;
|
|
|
|
tmp_place_ignore_struts = Conf.place.ignore_struts;
|
|
tmp_raise_fullscreen = Conf.place.raise_fullscreen;
|
|
|
|
#ifdef HAVE_XINERAMA
|
|
tmp_extra_head = Conf.place.extra_head;
|
|
#endif
|
|
|
|
DialogItemTableSetOptions(table, 2, 0, 1, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Dialog windows appear together with their owner"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_with_leader);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Switch to desktop where dialog appears"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_switch_popup);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Place windows manually"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_manual_placement);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Place windows under mouse"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_manual_placement_mouse_pointer);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Slide windows in when they appear"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_map_slide);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Slide windows around when cleaning up"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_cleanup_slide);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Slide Method:"));
|
|
|
|
radio = di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Opaque"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Technical"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 1);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Box"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Shaded"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 3);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetText(di, _("Semi-Solid"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 4);
|
|
DialogItemRadioButtonGroupSetValPtr(radio, &tmp_slide_mode);
|
|
|
|
di = DialogAddItem(table, DITEM_NONE);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 1024, 512);
|
|
DialogItemSetText(di, _("Appear Slide speed:"));
|
|
|
|
di = DialogAddItem(table, DITEM_SLIDER);
|
|
DialogItemSliderSetBounds(di, 0, 20000);
|
|
DialogItemSliderSetUnits(di, 500);
|
|
DialogItemSliderSetJump(di, 1000);
|
|
DialogItemSliderSetValPtr(di, &tmp_map_slide_speed);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 1024, 512);
|
|
DialogItemSetText(di, _("Cleanup Slide speed:"));
|
|
|
|
di = DialogAddItem(table, DITEM_SLIDER);
|
|
DialogItemSliderSetBounds(di, 0, 20000);
|
|
DialogItemSliderSetUnits(di, 500);
|
|
DialogItemSliderSetJump(di, 1000);
|
|
DialogItemSliderSetValPtr(di, &tmp_cleanup_slide_speed);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Animate shading and unshading of windows"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_animate_shading);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 1024, 512);
|
|
DialogItemSetText(di, _("Window Shading speed:"));
|
|
|
|
di = DialogAddItem(table, DITEM_SLIDER);
|
|
DialogItemSliderSetBounds(di, 0, 20000);
|
|
DialogItemSliderSetUnits(di, 500);
|
|
DialogItemSliderSetJump(di, 1000);
|
|
DialogItemSliderSetValPtr(di, &tmp_shade_speed);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Ignore struts"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_place_ignore_struts);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Raise fullscreen windows"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_raise_fullscreen);
|
|
|
|
#ifdef HAVE_XINERAMA_no /* Not implemented */
|
|
if (Mode.display.xinerama_active)
|
|
{
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Place windows on another head when full"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_extra_head);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
const DialogDef DlgPlacement = {
|
|
"CONFIGURE_PLACEMENT",
|
|
N_("Placement"),
|
|
N_("Window Placement Settings"),
|
|
"SOUND_SETTINGS_PLACEMENT",
|
|
"pix/place.png",
|
|
N_("Enlightenment Window Placement\n" "Settings Dialog\n"),
|
|
_DlgFillPlacement,
|
|
DLG_OAC, CB_ConfigurePlacement,
|
|
};
|
|
|
|
static char tmp_autoraise;
|
|
static int tmp_autoraisetime;
|
|
|
|
static void
|
|
CB_ConfigureAutoraise(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
|
|
{
|
|
if (val < 2)
|
|
{
|
|
Conf.autoraise.enable = tmp_autoraise;
|
|
Conf.autoraise.delay = 10 * tmp_autoraisetime;
|
|
}
|
|
autosave();
|
|
}
|
|
|
|
static void
|
|
_DlgFillAutoraise(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
|
|
{
|
|
DItem *di;
|
|
|
|
tmp_autoraise = Conf.autoraise.enable;
|
|
tmp_autoraisetime = Conf.autoraise.delay / 10;
|
|
|
|
DialogItemTableSetOptions(table, 2, 0, 0, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Raise Windows Automatically"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_autoraise);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 0, 512);
|
|
DialogItemSetText(di, _("Autoraise delay:"));
|
|
|
|
di = DialogAddItem(table, DITEM_SLIDER);
|
|
DialogItemSliderSetBounds(di, 0, 300);
|
|
DialogItemSliderSetUnits(di, 10);
|
|
DialogItemSliderSetJump(di, 25);
|
|
DialogItemSliderSetValPtr(di, &tmp_autoraisetime);
|
|
}
|
|
|
|
const DialogDef DlgAutoraise = {
|
|
"CONFIGURE_AUTORAISE",
|
|
N_("Autoraise"),
|
|
N_("Autoraise Settings"),
|
|
"SOUND_SETTINGS_AUTORAISE",
|
|
"pix/raise.png",
|
|
N_("Enlightenment Automatic Raising\n" "of Windows Settings Dialog\n"),
|
|
_DlgFillAutoraise,
|
|
DLG_OAC, CB_ConfigureAutoraise,
|
|
};
|
|
|
|
static char tmp_dialog_headers;
|
|
static char tmp_button_image;
|
|
static char tmp_animate_startup;
|
|
static char tmp_saveunders;
|
|
|
|
static void
|
|
CB_ConfigureMiscellaneous(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
|
|
{
|
|
if (val < 2)
|
|
{
|
|
Conf.dialogs.headers = tmp_dialog_headers;
|
|
Conf.dialogs.button_image = tmp_button_image;
|
|
Conf.startup.animate = tmp_animate_startup;
|
|
Conf.save_under = tmp_saveunders;
|
|
}
|
|
autosave();
|
|
}
|
|
|
|
static void
|
|
_DlgFillMisc(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
|
|
{
|
|
DItem *di;
|
|
|
|
tmp_dialog_headers = Conf.dialogs.headers;
|
|
tmp_button_image = Conf.dialogs.button_image;
|
|
tmp_animate_startup = Conf.startup.animate;
|
|
tmp_saveunders = Conf.save_under;
|
|
|
|
DialogItemTableSetOptions(table, 2, 0, 0, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Enable Dialog Headers"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_dialog_headers);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Enable Button Images"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_button_image);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Enable sliding startup windows"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_animate_startup);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Use saveunders to reduce window exposures"));
|
|
DialogItemCheckButtonSetPtr(di, &tmp_saveunders);
|
|
}
|
|
|
|
const DialogDef DlgMisc = {
|
|
"CONFIGURE_MISCELLANEOUS",
|
|
N_("Miscellaneous"),
|
|
N_("Miscellaneous Settings"),
|
|
"SOUND_SETTINGS_MISCELLANEOUS",
|
|
"pix/miscellaneous.png",
|
|
N_("Enlightenment Miscellaneous\n" "Settings Dialog\n"),
|
|
_DlgFillMisc,
|
|
DLG_OAC, CB_ConfigureMiscellaneous,
|
|
};
|
|
|
|
#if USE_COMPOSITE
|
|
#include "ecompmgr.h"
|
|
|
|
/*
|
|
* Composite dialog
|
|
*/
|
|
|
|
static void
|
|
CB_ConfigureComposite(Dialog * d, int val, void *data __UNUSED__)
|
|
{
|
|
cfg_composite *cfg;
|
|
|
|
if (val >= 2)
|
|
return;
|
|
|
|
/* Configure and read back */
|
|
cfg = DialogGetData(d);
|
|
ECompMgrConfigSet(cfg);
|
|
ECompMgrConfigGet(cfg);
|
|
}
|
|
|
|
static void
|
|
_DlgFillComposite(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
|
|
{
|
|
static cfg_composite Cfg_composite;
|
|
DItem *di, *radio;
|
|
|
|
DialogSetTitle(d, _("Composite Settings"));
|
|
|
|
/* Get current settings */
|
|
ECompMgrConfigGet(&Cfg_composite);
|
|
DialogSetData(d, &Cfg_composite);
|
|
|
|
/* Layout */
|
|
DialogItemTableSetOptions(table, 2, 0, 0, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Enable Composite"));
|
|
DialogItemCheckButtonSetPtr(di, &Cfg_composite.enable);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Enable Fading"));
|
|
DialogItemCheckButtonSetPtr(di, &Cfg_composite.fading);
|
|
|
|
di = DialogAddItem(table, DITEM_SEPARATOR);
|
|
DialogItemSetColSpan(di, 2);
|
|
|
|
radio = di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Shadows Off"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 0);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Shadows Sharp"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 1);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Shadows Sharp2"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 3);
|
|
|
|
di = DialogAddItem(table, DITEM_RADIOBUTTON);
|
|
DialogItemSetColSpan(di, 2);
|
|
DialogItemSetText(di, _("Shadows Blurred"));
|
|
DialogItemRadioButtonSetFirst(di, radio);
|
|
DialogItemRadioButtonGroupSetVal(di, 2);
|
|
DialogItemRadioButtonGroupSetValPtr(radio, &Cfg_composite.shadow);
|
|
|
|
di = DialogAddItem(table, DITEM_TEXT);
|
|
DialogItemSetFill(di, 0, 0);
|
|
DialogItemSetAlign(di, 0, 512);
|
|
DialogItemSetText(di, _("Fading Speed:"));
|
|
|
|
di = DialogAddItem(table, DITEM_SLIDER);
|
|
DialogItemSliderSetBounds(di, 1, 100);
|
|
DialogItemSliderSetUnits(di, 5);
|
|
DialogItemSliderSetJump(di, 5);
|
|
DialogItemSliderSetValPtr(di, &Cfg_composite.fade_speed);
|
|
}
|
|
|
|
const DialogDef DlgComposite = {
|
|
"CONFIGURE_COMPOSITE",
|
|
N_("Composite"),
|
|
N_("Composite Settings"),
|
|
"SOUND_SETTINGS_COMPOSITE",
|
|
"pix/pager.png",
|
|
N_("Enlightenment Composite\n" "Settings Dialog\n"),
|
|
_DlgFillComposite,
|
|
DLG_OAC, CB_ConfigureComposite,
|
|
};
|
|
|
|
void
|
|
SettingsComposite(void)
|
|
{
|
|
DialogShowSimple(&DlgComposite, NULL);
|
|
}
|
|
#endif
|
|
|
|
/*
|
|
* Combined configuration dialog
|
|
*/
|
|
|
|
static const DialogDef *dialogs[] = {
|
|
&DlgFocus,
|
|
&DlgMoveResize,
|
|
&DlgPlacement,
|
|
&DlgDesks,
|
|
&DlgAreas,
|
|
&DlgPagers,
|
|
&DlgMenus,
|
|
&DlgAutoraise,
|
|
&DlgTooltips,
|
|
&DlgSound,
|
|
&DlgGroupDefaults,
|
|
&DlgRemember,
|
|
&DlgFx,
|
|
&DlgBackground,
|
|
&DlgThemeTrans,
|
|
#if USE_COMPOSITE
|
|
&DlgComposite,
|
|
#endif
|
|
&DlgSession,
|
|
&DlgMisc,
|
|
};
|
|
#define N_CFG_DLGS (sizeof(dialogs)/sizeof(DialogDef*))
|
|
|
|
static void
|
|
CB_DlgSelect(Dialog * d, int val, void *data)
|
|
{
|
|
const DialogDef *dd = dialogs[val];
|
|
DItem *table = data;
|
|
|
|
if (!table)
|
|
return;
|
|
if (!dd->fill)
|
|
return;
|
|
|
|
DialogCallExitFunction(d);
|
|
|
|
DialogItemTableEmpty(table);
|
|
DialogKeybindingsDestroy(d);
|
|
|
|
DialogSetTitle(d, _(dd->title));
|
|
DialogFill(d, table, dd, NULL);
|
|
|
|
DialogArrange(d, 1);
|
|
}
|
|
|
|
static void
|
|
_DlgFillConfiguration(Dialog * d, DItem * table, void *data __UNUSED__)
|
|
{
|
|
DItem *di, *buttons, *content;
|
|
unsigned int i;
|
|
|
|
DialogItemTableSetOptions(table, 2, 0, 0, 0);
|
|
|
|
buttons = DialogAddItem(table, DITEM_TABLE);
|
|
content = DialogAddItem(table, DITEM_TABLE);
|
|
|
|
for (i = 0; i < N_CFG_DLGS; i++)
|
|
{
|
|
di = DialogAddItem(buttons, DITEM_BUTTON);
|
|
DialogItemSetPadding(di, 2, 2, 0, 0);
|
|
DialogItemSetText(di, _(dialogs[i]->label));
|
|
DialogItemSetCallback(di, CB_DlgSelect, i, content);
|
|
}
|
|
|
|
DialogFill(d, content, dialogs[0], NULL);
|
|
}
|
|
|
|
static const DialogDef DlgConfiguration = {
|
|
"CONFIGURE_ALL",
|
|
NULL,
|
|
N_("Enlightenment Settings"),
|
|
"SOUND_SETTINGS_ALL",
|
|
NULL,
|
|
NULL,
|
|
_DlgFillConfiguration,
|
|
0, NULL,
|
|
};
|
|
|
|
void
|
|
SettingsConfiguration(void)
|
|
{
|
|
DialogShowSimple(&DlgConfiguration, NULL);
|
|
}
|