e16/src/settings.c

955 lines
31 KiB
C

/*
* Copyright (C) 2000-2005 Carsten Haitzler, Geoff Harrison and various contributors
* Copyright (C) 2004-2005 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 <time.h>
static int tmp_move;
static int tmp_resize;
static int tmp_geominfo;
static char tmp_update_while_moving;
static void
CB_ConfigureMoveResize(Dialog * d, 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;
}
if (val)
if ((d = FindItem("CONFIGURE_MOVERESIZE_EXAMPLE", 0, LIST_FINDBY_NAME,
LIST_TYPE_DIALOG)))
{
DialogClose(d);
}
autosave();
}
void
SettingsMoveResize(void)
{
Dialog *d;
DItem *table, *di, *radio1, *radio2, *radio3;
if ((d =
FindItem("CONFIGURE_MOVERESIZE", 0, LIST_FINDBY_NAME,
LIST_TYPE_DIALOG)))
{
SoundPlay("SOUND_SETTINGS_ACTIVE");
ShowDialog(d);
return;
}
SoundPlay("SOUND_SETTINGS_MOVERESIZE");
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;
d = DialogCreate("CONFIGURE_MOVERESIZE");
DialogSetTitle(d, _("Move & Resize Settings"));
table = DialogInitItem(d);
DialogItemTableSetOptions(table, 2, 0, 0, 0);
if (Conf.dialogs.headers)
{
di = DialogAddItem(table, DITEM_IMAGE);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemImageSetFile(di, "pix/moveres.png");
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di,
_("Enlightenment Move & Resize\n"
"Method Settings Dialog\n"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
}
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemSetText(di, _("Move Methods:"));
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemSetText(di, _("Resize Methods:"));
radio1 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Opaque"));
DialogItemRadioButtonSetFirst(di, radio1);
DialogItemRadioButtonGroupSetVal(di, 0);
radio2 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Opaque"));
DialogItemRadioButtonSetFirst(di, radio2);
DialogItemRadioButtonGroupSetVal(di, 0);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Technical"));
DialogItemRadioButtonSetFirst(di, radio1);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Technical"));
DialogItemRadioButtonSetFirst(di, radio2);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Box"));
DialogItemRadioButtonSetFirst(di, radio1);
DialogItemRadioButtonGroupSetVal(di, 2);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Box"));
DialogItemRadioButtonSetFirst(di, radio2);
DialogItemRadioButtonGroupSetVal(di, 2);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Shaded"));
DialogItemRadioButtonSetFirst(di, radio1);
DialogItemRadioButtonGroupSetVal(di, 3);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Shaded"));
DialogItemRadioButtonSetFirst(di, radio2);
DialogItemRadioButtonGroupSetVal(di, 3);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Semi-Solid"));
DialogItemRadioButtonSetFirst(di, radio1);
DialogItemRadioButtonGroupSetVal(di, 4);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Semi-Solid"));
DialogItemRadioButtonSetFirst(di, radio2);
DialogItemRadioButtonGroupSetVal(di, 4);
DialogItemRadioButtonGroupSetValPtr(radio2, &tmp_resize);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
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);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 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);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Window Center (O/T/B Methods)"));
DialogItemRadioButtonSetFirst(di, radio3);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Always Screen corner"));
DialogItemRadioButtonSetFirst(di, radio3);
DialogItemRadioButtonGroupSetVal(di, 2);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Don't show"));
DialogItemRadioButtonSetFirst(di, radio3);
DialogItemRadioButtonGroupSetVal(di, 0);
DialogItemRadioButtonGroupSetValPtr(radio3, &tmp_geominfo);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Update window while moving"));
DialogItemCheckButtonSetPtr(di, &tmp_update_while_moving);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
DialogAddButton(d, _("OK"), CB_ConfigureMoveResize, 1, DIALOG_BUTTON_OK);
DialogAddButton(d, _("Apply"), CB_ConfigureMoveResize, 0,
DIALOG_BUTTON_APPLY);
DialogAddButton(d, _("Close"), CB_ConfigureMoveResize, 1,
DIALOG_BUTTON_CLOSE);
DialogSetExitFunction(d, CB_ConfigureMoveResize, 2);
DialogBindKey(d, "Escape", DialogCallbackClose, 0);
DialogBindKey(d, "Return", CB_ConfigureMoveResize, 0);
ShowDialog(d);
}
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 HAS_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.animate_shading = tmp_animate_shading;
Conf.shadespeed = tmp_shade_speed;
Conf.place.ignore_struts = tmp_place_ignore_struts;
Conf.place.raise_fullscreen = tmp_raise_fullscreen;
#ifdef HAS_XINERAMA
if (Mode.display.xinerama_active)
Conf.extra_head = tmp_extra_head;
#endif
}
autosave();
}
void
SettingsPlacement(void)
{
Dialog *d;
DItem *table, *di, *radio;
if ((d =
FindItem("CONFIGURE_PLACEMENT", 0, LIST_FINDBY_NAME, LIST_TYPE_DIALOG)))
{
SoundPlay("SOUND_SETTINGS_ACTIVE");
ShowDialog(d);
return;
}
SoundPlay("SOUND_SETTINGS_PLACEMENT");
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.animate_shading;
tmp_shade_speed = Conf.shadespeed;
tmp_place_ignore_struts = Conf.place.ignore_struts;
tmp_raise_fullscreen = Conf.place.raise_fullscreen;
#ifdef HAS_XINERAMA
tmp_extra_head = Conf.extra_head;
#endif
d = DialogCreate("CONFIGURE_PLACEMENT");
DialogSetTitle(d, _("Window Placement Settings"));
table = DialogInitItem(d);
DialogItemTableSetOptions(table, 2, 0, 1, 0);
if (Conf.dialogs.headers)
{
di = DialogAddItem(table, DITEM_IMAGE);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemImageSetFile(di, "pix/place.png");
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di,
_("Enlightenment Window Placement\n"
"Settings Dialog\n"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
}
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Dialog windows appear together with their owner"));
DialogItemCheckButtonSetPtr(di, &tmp_with_leader);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Switch to desktop where dialog appears"));
DialogItemCheckButtonSetPtr(di, &tmp_switch_popup);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Place windows manually"));
DialogItemCheckButtonSetPtr(di, &tmp_manual_placement);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Place windows under mouse"));
DialogItemCheckButtonSetPtr(di, &tmp_manual_placement_mouse_pointer);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Slide windows in when they appear"));
DialogItemCheckButtonSetPtr(di, &tmp_map_slide);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Slide windows around when cleaning up"));
DialogItemCheckButtonSetPtr(di, &tmp_cleanup_slide);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Slide Method:"));
radio = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Opaque"));
DialogItemRadioButtonSetFirst(di, radio);
DialogItemRadioButtonGroupSetVal(di, 0);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Technical"));
DialogItemRadioButtonSetFirst(di, radio);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Box"));
DialogItemRadioButtonSetFirst(di, radio);
DialogItemRadioButtonGroupSetVal(di, 2);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di, _("Shaded"));
DialogItemRadioButtonSetFirst(di, radio);
DialogItemRadioButtonGroupSetVal(di, 3);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
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);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 1024, 512);
DialogItemSetText(di, _("Appear Slide speed:"));
di = DialogAddItem(table, DITEM_SLIDER);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSliderSetBounds(di, 0, 20000);
DialogItemSliderSetUnits(di, 500);
DialogItemSliderSetJump(di, 1000);
DialogItemSliderSetValPtr(di, &tmp_map_slide_speed);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 1024, 512);
DialogItemSetText(di, _("Cleanup Slide speed:"));
di = DialogAddItem(table, DITEM_SLIDER);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSliderSetBounds(di, 0, 20000);
DialogItemSliderSetUnits(di, 500);
DialogItemSliderSetJump(di, 1000);
DialogItemSliderSetValPtr(di, &tmp_cleanup_slide_speed);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Animate shading and unshading of windows"));
DialogItemCheckButtonSetPtr(di, &tmp_animate_shading);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 1024, 512);
DialogItemSetText(di, _("Window Shading speed:"));
di = DialogAddItem(table, DITEM_SLIDER);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSliderSetBounds(di, 0, 20000);
DialogItemSliderSetUnits(di, 500);
DialogItemSliderSetJump(di, 1000);
DialogItemSliderSetValPtr(di, &tmp_shade_speed);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Ignore struts"));
DialogItemCheckButtonSetPtr(di, &tmp_place_ignore_struts);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Raise fullscreen windows"));
DialogItemCheckButtonSetPtr(di, &tmp_raise_fullscreen);
#ifdef HAS_XINERAMA
if (Mode.display.xinerama_active)
{
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Place windows on another head when full"));
DialogItemCheckButtonSetPtr(di, &tmp_extra_head);
}
#endif
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
DialogAddButton(d, _("OK"), CB_ConfigurePlacement, 1, DIALOG_BUTTON_OK);
DialogAddButton(d, _("Apply"), CB_ConfigurePlacement, 0,
DIALOG_BUTTON_APPLY);
DialogAddButton(d, _("Close"), CB_ConfigurePlacement, 1,
DIALOG_BUTTON_CLOSE);
DialogSetExitFunction(d, CB_ConfigurePlacement, 2);
DialogBindKey(d, "Escape", DialogCallbackClose, 0);
DialogBindKey(d, "Return", CB_ConfigurePlacement, 0);
ShowDialog(d);
}
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();
}
void
SettingsAutoRaise(void)
{
Dialog *d;
DItem *table, *di;
if ((d =
FindItem("CONFIGURE_AUTORAISE", 0, LIST_FINDBY_NAME, LIST_TYPE_DIALOG)))
{
SoundPlay("SOUND_SETTINGS_ACTIVE");
ShowDialog(d);
return;
}
SoundPlay("SOUND_SETTINGS_AUTORAISE");
tmp_autoraise = Conf.autoraise.enable;
tmp_autoraisetime = Conf.autoraise.delay / 10;
d = DialogCreate("CONFIGURE_AUTORAISE");
DialogSetTitle(d, _("Autoraise Settings"));
table = DialogInitItem(d);
DialogItemTableSetOptions(table, 2, 0, 0, 0);
if (Conf.dialogs.headers)
{
di = DialogAddItem(table, DITEM_IMAGE);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemImageSetFile(di, "pix/raise.png");
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di,
_("Enlightenment Automatic Raising\n"
"of Windows Settings Dialog\n"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
}
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Raise Windows Automatically"));
DialogItemCheckButtonSetPtr(di, &tmp_autoraise);
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemSetText(di, _("Autoraise delay:"));
di = DialogAddItem(table, DITEM_SLIDER);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSliderSetBounds(di, 0, 300);
DialogItemSliderSetUnits(di, 10);
DialogItemSliderSetJump(di, 25);
DialogItemSliderSetValPtr(di, &tmp_autoraisetime);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
DialogAddButton(d, _("OK"), CB_ConfigureAutoraise, 1, DIALOG_BUTTON_OK);
DialogAddButton(d, _("Apply"), CB_ConfigureAutoraise, 0,
DIALOG_BUTTON_APPLY);
DialogAddButton(d, _("Close"), CB_ConfigureAutoraise, 1,
DIALOG_BUTTON_CLOSE);
DialogSetExitFunction(d, CB_ConfigureAutoraise, 2);
DialogBindKey(d, "Escape", DialogCallbackClose, 0);
DialogBindKey(d, "Return", CB_ConfigureAutoraise, 0);
ShowDialog(d);
}
static char tmp_dialog_headers;
static char tmp_logout_dialog;
static char tmp_reboot_halt;
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.session.enable_logout_dialog = tmp_logout_dialog;
Conf.session.enable_reboot_halt = tmp_reboot_halt;
Conf.dialogs.button_image = tmp_button_image;
Conf.startup.animate = tmp_animate_startup;
Conf.save_under = tmp_saveunders;
}
autosave();
}
void
SettingsMiscellaneous(void)
{
Dialog *d;
DItem *table, *di;
if ((d = FindItem("CONFIGURE_MISCELLANEOUS", 0, LIST_FINDBY_NAME,
LIST_TYPE_DIALOG)))
{
SoundPlay("SOUND_SETTINGS_ACTIVE");
ShowDialog(d);
return;
}
SoundPlay("SOUND_SETTINGS_MISCELLANEOUS");
tmp_dialog_headers = Conf.dialogs.headers;
tmp_logout_dialog = Conf.session.enable_logout_dialog;
tmp_reboot_halt = Conf.session.enable_reboot_halt;
tmp_button_image = Conf.dialogs.button_image;
tmp_animate_startup = Conf.startup.animate;
tmp_saveunders = Conf.save_under;
d = DialogCreate("CONFIGURE_MISCELLANEOUS");
DialogSetTitle(d, _("Miscellaneous Settings"));
table = DialogInitItem(d);
DialogItemTableSetOptions(table, 2, 0, 0, 0);
if (Conf.dialogs.headers)
{
di = DialogAddItem(table, DITEM_IMAGE);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemImageSetFile(di, "pix/miscellaneous.png");
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetText(di,
_("Enlightenment Miscellaneous\n"
"Settings Dialog\n"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
}
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Enable Dialog Headers"));
DialogItemCheckButtonSetPtr(di, &tmp_dialog_headers);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Enable Button Images"));
DialogItemCheckButtonSetPtr(di, &tmp_button_image);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Enable Logout Dialog"));
DialogItemCheckButtonSetPtr(di, &tmp_logout_dialog);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Enable Reboot/Halt on Logout"));
DialogItemCheckButtonSetPtr(di, &tmp_reboot_halt);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Enable sliding startup windows"));
DialogItemCheckButtonSetPtr(di, &tmp_animate_startup);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Use saveunders to reduce window exposures"));
DialogItemCheckButtonSetPtr(di, &tmp_saveunders);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSeparatorSetOrientation(di, 0);
DialogAddButton(d, _("OK"), CB_ConfigureMiscellaneous, 1, DIALOG_BUTTON_OK);
DialogAddButton(d, _("Apply"), CB_ConfigureMiscellaneous, 0,
DIALOG_BUTTON_APPLY);
DialogAddButton(d, _("Close"), CB_ConfigureMiscellaneous, 1,
DIALOG_BUTTON_CLOSE);
DialogSetExitFunction(d, CB_ConfigureMiscellaneous, 2);
DialogBindKey(d, "Escape", DialogCallbackClose, 0);
DialogBindKey(d, "Return", CB_ConfigureMiscellaneous, 0);
ShowDialog(d);
}
#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);
}
void
SettingsComposite(void)
{
static cfg_composite Cfg_composite;
Dialog *d;
DItem *table, *di, *radio;
if ((d =
FindItem("CONFIGURE_COMPOSITE", 0, LIST_FINDBY_NAME, LIST_TYPE_DIALOG)))
{
SoundPlay("SOUND_SETTINGS_ACTIVE");
ShowDialog(d);
return;
}
SoundPlay("SOUND_SETTINGS_COMPOSITE");
d = DialogCreate("CONFIGURE_COMPOSITE");
DialogSetTitle(d, _("Composite Settings"));
/* Get current settings */
ECompMgrConfigGet(&Cfg_composite);
DialogSetData(d, &Cfg_composite);
table = DialogInitItem(d);
DialogItemTableSetOptions(table, 2, 0, 0, 0);
if (Conf.dialogs.headers)
{
#if 0
di = DialogAddItem(table, DITEM_IMAGE);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemImageSetFile(di, "pix/tips.png");
#endif
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di,
_("Enlightenment Composite\n" "Settings Dialog\n"));
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
}
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Enable Composite"));
DialogItemCheckButtonSetPtr(di, &Cfg_composite.enable);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
di = DialogAddItem(table, DITEM_CHECKBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Enable Fading"));
DialogItemCheckButtonSetPtr(di, &Cfg_composite.fading);
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
radio = di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Shadows Off"));
DialogItemRadioButtonSetFirst(di, radio);
DialogItemRadioButtonGroupSetVal(di, 0);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Shadows Sharp"));
DialogItemRadioButtonSetFirst(di, radio);
DialogItemRadioButtonGroupSetVal(di, 1);
di = DialogAddItem(table, DITEM_RADIOBUTTON);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSetColSpan(di, 2);
DialogItemSetText(di, _("Shadows Blurred"));
DialogItemRadioButtonSetFirst(di, radio);
DialogItemRadioButtonGroupSetVal(di, 2);
DialogItemRadioButtonGroupSetValPtr(radio, &Cfg_composite.shadow);
#if 0
di = DialogAddItem(table, DITEM_TEXT);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 0, 0);
DialogItemSetAlign(di, 0, 512);
DialogItemSetText(di, _("Fading Speed:\n"));
di = DialogAddItem(table, DITEM_SLIDER);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSliderSetBounds(di, 0, 300);
DialogItemSliderSetUnits(di, 10);
DialogItemSliderSetJump(di, 25);
DialogItemSliderSetValPtr(di, &tmp_tooltiptime);
#endif
di = DialogAddItem(table, DITEM_SEPARATOR);
DialogItemSetColSpan(di, 2);
DialogItemSetPadding(di, 2, 2, 2, 2);
DialogItemSetFill(di, 1, 0);
DialogItemSeparatorSetOrientation(di, 0);
DialogAddButton(d, _("OK"), CB_ConfigureComposite, 1, DIALOG_BUTTON_OK);
DialogAddButton(d, _("Apply"), CB_ConfigureComposite, 0,
DIALOG_BUTTON_APPLY);
DialogAddButton(d, _("Close"), CB_ConfigureComposite, 1,
DIALOG_BUTTON_CLOSE);
DialogSetExitFunction(d, CB_ConfigureComposite, 2);
DialogBindKey(d, "Escape", DialogCallbackClose, 0);
DialogBindKey(d, "Return", CB_ConfigureComposite, 0);
ShowDialog(d);
}
#endif