2 * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors
3 * Copyright (C) 2004-2009 Kim Woelders
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to
7 * deal in the Software without restriction, including without limitation the
8 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9 * sell copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice shall be included in
13 * all copies of the Software, its documentation and marketing & publicity
14 * materials, and acknowledgment shall be given in the documentation, materials
15 * and software packages that this Software was used.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 static int tmp_resize;
31 static int tmp_geominfo;
32 static int tmp_maximize;
33 static char tmp_dragbar_nocover;
34 static char tmp_avoid_server_grab;
35 static char tmp_update_while_moving;
36 static char tmp_sync_request;
39 CB_ConfigureMoveResize(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
43 Conf.movres.mode_move = tmp_move;
44 Conf.movres.mode_resize = tmp_resize;
45 Conf.movres.mode_info = tmp_geominfo;
46 Conf.movres.mode_maximize_default = tmp_maximize;
47 Conf.movres.avoid_server_grab = tmp_avoid_server_grab;
48 Conf.movres.update_while_moving = tmp_update_while_moving;
49 Conf.movres.enable_sync_request = tmp_sync_request;
50 Conf.movres.dragbar_nocover = tmp_dragbar_nocover;
56 _DlgFillMoveResize(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
58 DItem *di, *radio1, *radio2, *radio3, *radio4;
60 tmp_move = Conf.movres.mode_move;
61 tmp_resize = Conf.movres.mode_resize;
62 tmp_geominfo = Conf.movres.mode_info;
63 tmp_maximize = Conf.movres.mode_maximize_default;
64 tmp_avoid_server_grab = Conf.movres.avoid_server_grab;
65 tmp_update_while_moving = Conf.movres.update_while_moving;
66 tmp_sync_request = Conf.movres.enable_sync_request;
67 tmp_dragbar_nocover = Conf.movres.dragbar_nocover;
69 DialogItemTableSetOptions(table, 2, 0, 0, 0);
71 di = DialogAddItem(table, DITEM_TEXT);
72 DialogItemSetFill(di, 0, 0);
73 DialogItemSetAlign(di, 0, 512);
74 DialogItemSetText(di, _("Move Methods:"));
76 di = DialogAddItem(table, DITEM_TEXT);
77 DialogItemSetFill(di, 0, 0);
78 DialogItemSetAlign(di, 0, 512);
79 DialogItemSetText(di, _("Resize Methods:"));
81 radio1 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
82 DialogItemSetText(di, _("Opaque"));
83 DialogItemRadioButtonSetFirst(di, radio1);
84 DialogItemRadioButtonGroupSetVal(di, 0);
86 radio2 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
87 DialogItemSetText(di, _("Opaque"));
88 DialogItemRadioButtonSetFirst(di, radio2);
89 DialogItemRadioButtonGroupSetVal(di, 0);
91 di = DialogAddItem(table, DITEM_RADIOBUTTON);
92 DialogItemSetText(di, _("Technical"));
93 DialogItemRadioButtonSetFirst(di, radio1);
94 DialogItemRadioButtonGroupSetVal(di, 1);
96 di = DialogAddItem(table, DITEM_RADIOBUTTON);
97 DialogItemSetText(di, _("Technical"));
98 DialogItemRadioButtonSetFirst(di, radio2);
99 DialogItemRadioButtonGroupSetVal(di, 1);
101 di = DialogAddItem(table, DITEM_RADIOBUTTON);
102 DialogItemSetText(di, _("Box"));
103 DialogItemRadioButtonSetFirst(di, radio1);
104 DialogItemRadioButtonGroupSetVal(di, 2);
106 di = DialogAddItem(table, DITEM_RADIOBUTTON);
107 DialogItemSetText(di, _("Box"));
108 DialogItemRadioButtonSetFirst(di, radio2);
109 DialogItemRadioButtonGroupSetVal(di, 2);
111 di = DialogAddItem(table, DITEM_RADIOBUTTON);
112 DialogItemSetText(di, _("Shaded"));
113 DialogItemRadioButtonSetFirst(di, radio1);
114 DialogItemRadioButtonGroupSetVal(di, 3);
116 di = DialogAddItem(table, DITEM_RADIOBUTTON);
117 DialogItemSetText(di, _("Shaded"));
118 DialogItemRadioButtonSetFirst(di, radio2);
119 DialogItemRadioButtonGroupSetVal(di, 3);
121 di = DialogAddItem(table, DITEM_RADIOBUTTON);
122 DialogItemSetText(di, _("Semi-Solid"));
123 DialogItemRadioButtonSetFirst(di, radio1);
124 DialogItemRadioButtonGroupSetVal(di, 4);
126 di = DialogAddItem(table, DITEM_RADIOBUTTON);
127 DialogItemSetText(di, _("Semi-Solid"));
128 DialogItemRadioButtonSetFirst(di, radio2);
129 DialogItemRadioButtonGroupSetVal(di, 4);
130 DialogItemRadioButtonGroupSetValPtr(radio2, &tmp_resize);
132 di = DialogAddItem(table, DITEM_RADIOBUTTON);
133 DialogItemSetText(di, _("Translucent"));
134 DialogItemRadioButtonSetFirst(di, radio1);
135 DialogItemRadioButtonGroupSetVal(di, 5);
136 DialogItemRadioButtonGroupSetValPtr(radio1, &tmp_move);
138 di = DialogAddItem(table, DITEM_NONE);
140 di = DialogAddItem(table, DITEM_CHECKBUTTON);
141 DialogItemSetColSpan(di, 2);
142 DialogItemSetText(di, _("Avoid server grab"));
143 DialogItemCheckButtonSetPtr(di, &tmp_avoid_server_grab);
145 di = DialogAddItem(table, DITEM_SEPARATOR);
146 DialogItemSetColSpan(di, 2);
148 di = DialogAddItem(table, DITEM_TEXT);
149 DialogItemSetColSpan(di, 2);
150 DialogItemSetFill(di, 0, 0);
151 DialogItemSetAlign(di, 0, 512);
152 DialogItemSetText(di, _("Move/Resize Geometry Info Postion:"));
154 radio3 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
155 DialogItemSetColSpan(di, 2);
156 DialogItemSetText(di, _("Window Center (O/T/B Methods)"));
157 DialogItemRadioButtonSetFirst(di, radio3);
158 DialogItemRadioButtonGroupSetVal(di, 1);
160 di = DialogAddItem(table, DITEM_RADIOBUTTON);
161 DialogItemSetColSpan(di, 2);
162 DialogItemSetText(di, _("Always Screen corner"));
163 DialogItemRadioButtonSetFirst(di, radio3);
164 DialogItemRadioButtonGroupSetVal(di, 2);
166 di = DialogAddItem(table, DITEM_RADIOBUTTON);
167 DialogItemSetColSpan(di, 2);
168 DialogItemSetText(di, _("Don't show"));
169 DialogItemRadioButtonSetFirst(di, radio3);
170 DialogItemRadioButtonGroupSetVal(di, 0);
171 DialogItemRadioButtonGroupSetValPtr(radio3, &tmp_geominfo);
173 di = DialogAddItem(table, DITEM_SEPARATOR);
174 DialogItemSetColSpan(di, 2);
176 di = DialogAddItem(table, DITEM_TEXT);
177 DialogItemSetColSpan(di, 2);
178 DialogItemSetFill(di, 0, 0);
179 DialogItemSetAlign(di, 0, 512);
180 DialogItemSetText(di, _("Default Resize Policy:"));
182 radio4 = di = DialogAddItem(table, DITEM_RADIOBUTTON);
183 DialogItemSetColSpan(di, 2);
184 DialogItemSetText(di, _("Conservative"));
185 DialogItemRadioButtonSetFirst(di, radio4);
186 DialogItemRadioButtonGroupSetVal(di, 2);
188 di = DialogAddItem(table, DITEM_RADIOBUTTON);
189 DialogItemSetColSpan(di, 2);
190 DialogItemSetText(di, _("Available"));
191 DialogItemRadioButtonSetFirst(di, radio4);
192 DialogItemRadioButtonGroupSetVal(di, 1);
194 di = DialogAddItem(table, DITEM_RADIOBUTTON);
195 DialogItemSetColSpan(di, 2);
196 DialogItemSetText(di, _("Absolute"));
197 DialogItemRadioButtonSetFirst(di, radio4);
198 DialogItemRadioButtonGroupSetVal(di, 0);
199 DialogItemRadioButtonGroupSetValPtr(radio4, &tmp_maximize);
201 di = DialogAddItem(table, DITEM_SEPARATOR);
202 DialogItemSetColSpan(di, 2);
204 di = DialogAddItem(table, DITEM_CHECKBUTTON);
205 DialogItemSetColSpan(di, 2);
206 DialogItemSetText(di, _("Update window while moving"));
207 DialogItemCheckButtonSetPtr(di, &tmp_update_while_moving);
209 di = DialogAddItem(table, DITEM_CHECKBUTTON);
210 DialogItemSetColSpan(di, 2);
211 DialogItemSetText(di, _("Synchronize move/resize with application"));
212 DialogItemCheckButtonSetPtr(di, &tmp_sync_request);
214 di = DialogAddItem(table, DITEM_CHECKBUTTON);
215 DialogItemSetColSpan(di, 2);
216 DialogItemSetText(di, _("Do not cover dragbar"));
217 DialogItemCheckButtonSetPtr(di, &tmp_dragbar_nocover);
220 const DialogDef DlgMoveResize = {
221 "CONFIGURE_MOVERESIZE",
223 N_("Move & Resize Settings"),
224 SOUND_SETTINGS_MOVERESIZE,
226 N_("Enlightenment Move & Resize\n" "Method Settings Dialog\n"),
228 DLG_OAC, CB_ConfigureMoveResize,
231 static char tmp_with_leader;
232 static char tmp_switch_popup;
233 static char tmp_manual_placement;
234 static char tmp_manual_placement_mouse_pointer;
235 static char tmp_center_if_desk_full;
236 static char tmp_map_slide;
237 static char tmp_cleanup_slide;
238 static int tmp_slide_mode;
239 static int tmp_map_slide_speed;
240 static int tmp_cleanup_slide_speed;
241 static char tmp_animate_shading;
242 static int tmp_shade_speed;
243 static char tmp_place_ignore_struts;
244 static char tmp_raise_fullscreen;
246 #ifdef USE_XINERAMA_no /* Not implemented */
247 static char tmp_extra_head;
251 CB_ConfigurePlacement(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
255 Conf.focus.transientsfollowleader = tmp_with_leader;
256 Conf.focus.switchfortransientmap = tmp_switch_popup;
258 Conf.place.manual = tmp_manual_placement;
259 Conf.place.manual_mouse_pointer = tmp_manual_placement_mouse_pointer;
260 Conf.place.center_if_desk_full = tmp_center_if_desk_full;
262 Conf.place.slidein = tmp_map_slide;
263 Conf.place.cleanupslide = tmp_cleanup_slide;
264 Conf.place.slidemode = tmp_slide_mode;
265 Conf.place.slidespeedmap = tmp_map_slide_speed;
266 Conf.place.slidespeedcleanup = tmp_cleanup_slide_speed;
268 Conf.shading.animate = tmp_animate_shading;
269 Conf.shading.speed = tmp_shade_speed;
271 Conf.place.ignore_struts = tmp_place_ignore_struts;
272 Conf.place.raise_fullscreen = tmp_raise_fullscreen;
273 #ifdef USE_XINERAMA_no /* Not implemented */
274 if (Mode.display.xinerama_active)
275 Conf.place.extra_head = tmp_extra_head;
282 _DlgFillPlacement(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
286 tmp_with_leader = Conf.focus.transientsfollowleader;
287 tmp_switch_popup = Conf.focus.switchfortransientmap;
289 tmp_manual_placement = Conf.place.manual;
290 tmp_manual_placement_mouse_pointer = Conf.place.manual_mouse_pointer;
291 tmp_center_if_desk_full = Conf.place.center_if_desk_full;
293 tmp_map_slide = Conf.place.slidein;
294 tmp_cleanup_slide = Conf.place.cleanupslide;
295 tmp_slide_mode = Conf.place.slidemode;
296 tmp_map_slide_speed = Conf.place.slidespeedmap;
297 tmp_cleanup_slide_speed = Conf.place.slidespeedcleanup;
299 tmp_animate_shading = Conf.shading.animate;
300 tmp_shade_speed = Conf.shading.speed;
302 tmp_place_ignore_struts = Conf.place.ignore_struts;
303 tmp_raise_fullscreen = Conf.place.raise_fullscreen;
305 #ifdef USE_XINERAMA_no /* Not implemented */
306 tmp_extra_head = Conf.place.extra_head;
309 DialogItemTableSetOptions(table, 2, 0, 1, 0);
311 di = DialogAddItem(table, DITEM_CHECKBUTTON);
312 DialogItemSetColSpan(di, 2);
313 DialogItemSetText(di, _("Dialog windows appear together with their owner"));
314 DialogItemCheckButtonSetPtr(di, &tmp_with_leader);
316 di = DialogAddItem(table, DITEM_CHECKBUTTON);
317 DialogItemSetColSpan(di, 2);
318 DialogItemSetText(di, _("Switch to desktop where dialog appears"));
319 DialogItemCheckButtonSetPtr(di, &tmp_switch_popup);
321 di = DialogAddItem(table, DITEM_SEPARATOR);
322 DialogItemSetColSpan(di, 2);
324 di = DialogAddItem(table, DITEM_CHECKBUTTON);
325 DialogItemSetColSpan(di, 2);
326 DialogItemSetText(di, _("Place windows manually"));
327 DialogItemCheckButtonSetPtr(di, &tmp_manual_placement);
329 di = DialogAddItem(table, DITEM_CHECKBUTTON);
330 DialogItemSetColSpan(di, 2);
331 DialogItemSetText(di, _("Place windows under mouse"));
332 DialogItemCheckButtonSetPtr(di, &tmp_manual_placement_mouse_pointer);
334 di = DialogAddItem(table, DITEM_CHECKBUTTON);
335 DialogItemSetColSpan(di, 2);
336 DialogItemSetText(di, _("Center windows when desk is full"));
337 DialogItemCheckButtonSetPtr(di, &tmp_center_if_desk_full);
339 di = DialogAddItem(table, DITEM_CHECKBUTTON);
340 DialogItemSetColSpan(di, 2);
341 DialogItemSetText(di, _("Slide windows in when they appear"));
342 DialogItemCheckButtonSetPtr(di, &tmp_map_slide);
344 di = DialogAddItem(table, DITEM_CHECKBUTTON);
345 DialogItemSetColSpan(di, 2);
346 DialogItemSetText(di, _("Slide windows around when cleaning up"));
347 DialogItemCheckButtonSetPtr(di, &tmp_cleanup_slide);
349 di = DialogAddItem(table, DITEM_TEXT);
350 DialogItemSetColSpan(di, 2);
351 DialogItemSetText(di, _("Slide Method:"));
353 radio = di = DialogAddItem(table, DITEM_RADIOBUTTON);
354 DialogItemSetText(di, _("Opaque"));
355 DialogItemRadioButtonSetFirst(di, radio);
356 DialogItemRadioButtonGroupSetVal(di, 0);
358 di = DialogAddItem(table, DITEM_RADIOBUTTON);
359 DialogItemSetText(di, _("Technical"));
360 DialogItemRadioButtonSetFirst(di, radio);
361 DialogItemRadioButtonGroupSetVal(di, 1);
363 di = DialogAddItem(table, DITEM_RADIOBUTTON);
364 DialogItemSetText(di, _("Box"));
365 DialogItemRadioButtonSetFirst(di, radio);
366 DialogItemRadioButtonGroupSetVal(di, 2);
368 di = DialogAddItem(table, DITEM_RADIOBUTTON);
369 DialogItemSetText(di, _("Shaded"));
370 DialogItemRadioButtonSetFirst(di, radio);
371 DialogItemRadioButtonGroupSetVal(di, 3);
373 di = DialogAddItem(table, DITEM_RADIOBUTTON);
374 DialogItemSetText(di, _("Semi-Solid"));
375 DialogItemRadioButtonSetFirst(di, radio);
376 DialogItemRadioButtonGroupSetVal(di, 4);
377 DialogItemRadioButtonGroupSetValPtr(radio, &tmp_slide_mode);
379 di = DialogAddItem(table, DITEM_NONE);
381 di = DialogAddItem(table, DITEM_TEXT);
382 DialogItemSetFill(di, 0, 0);
383 DialogItemSetAlign(di, 1024, 512);
384 DialogItemSetText(di, _("Appear Slide speed:"));
386 di = DialogAddItem(table, DITEM_SLIDER);
387 DialogItemSliderSetBounds(di, 0, 20000);
388 DialogItemSliderSetUnits(di, 500);
389 DialogItemSliderSetJump(di, 1000);
390 DialogItemSliderSetValPtr(di, &tmp_map_slide_speed);
392 di = DialogAddItem(table, DITEM_TEXT);
393 DialogItemSetFill(di, 0, 0);
394 DialogItemSetAlign(di, 1024, 512);
395 DialogItemSetText(di, _("Cleanup Slide speed:"));
397 di = DialogAddItem(table, DITEM_SLIDER);
398 DialogItemSliderSetBounds(di, 0, 20000);
399 DialogItemSliderSetUnits(di, 500);
400 DialogItemSliderSetJump(di, 1000);
401 DialogItemSliderSetValPtr(di, &tmp_cleanup_slide_speed);
403 di = DialogAddItem(table, DITEM_SEPARATOR);
404 DialogItemSetColSpan(di, 2);
406 di = DialogAddItem(table, DITEM_CHECKBUTTON);
407 DialogItemSetColSpan(di, 2);
408 DialogItemSetText(di, _("Animate shading and unshading of windows"));
409 DialogItemCheckButtonSetPtr(di, &tmp_animate_shading);
411 di = DialogAddItem(table, DITEM_TEXT);
412 DialogItemSetFill(di, 0, 0);
413 DialogItemSetAlign(di, 1024, 512);
414 DialogItemSetText(di, _("Window Shading speed:"));
416 di = DialogAddItem(table, DITEM_SLIDER);
417 DialogItemSliderSetBounds(di, 0, 20000);
418 DialogItemSliderSetUnits(di, 500);
419 DialogItemSliderSetJump(di, 1000);
420 DialogItemSliderSetValPtr(di, &tmp_shade_speed);
422 di = DialogAddItem(table, DITEM_SEPARATOR);
423 DialogItemSetColSpan(di, 2);
425 di = DialogAddItem(table, DITEM_CHECKBUTTON);
426 DialogItemSetColSpan(di, 2);
427 DialogItemSetText(di, _("Ignore struts"));
428 DialogItemCheckButtonSetPtr(di, &tmp_place_ignore_struts);
430 di = DialogAddItem(table, DITEM_CHECKBUTTON);
431 DialogItemSetColSpan(di, 2);
432 DialogItemSetText(di, _("Raise fullscreen windows"));
433 DialogItemCheckButtonSetPtr(di, &tmp_raise_fullscreen);
435 #ifdef USE_XINERAMA_no /* Not implemented */
436 if (Mode.display.xinerama_active)
438 di = DialogAddItem(table, DITEM_CHECKBUTTON);
439 DialogItemSetColSpan(di, 2);
440 DialogItemSetText(di, _("Place windows on another head when full"));
441 DialogItemCheckButtonSetPtr(di, &tmp_extra_head);
446 const DialogDef DlgPlacement = {
447 "CONFIGURE_PLACEMENT",
449 N_("Window Placement Settings"),
450 SOUND_SETTINGS_PLACEMENT,
452 N_("Enlightenment Window Placement\n" "Settings Dialog\n"),
454 DLG_OAC, CB_ConfigurePlacement,
457 static char tmp_autoraise;
458 static int tmp_autoraisetime;
461 CB_ConfigureAutoraise(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
465 Conf.autoraise.enable = tmp_autoraise;
466 Conf.autoraise.delay = 10 * tmp_autoraisetime;
472 _DlgFillAutoraise(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
476 tmp_autoraise = Conf.autoraise.enable;
477 tmp_autoraisetime = Conf.autoraise.delay / 10;
479 DialogItemTableSetOptions(table, 2, 0, 0, 0);
481 di = DialogAddItem(table, DITEM_CHECKBUTTON);
482 DialogItemSetColSpan(di, 2);
483 DialogItemSetText(di, _("Raise Windows Automatically"));
484 DialogItemCheckButtonSetPtr(di, &tmp_autoraise);
486 di = DialogAddItem(table, DITEM_TEXT);
487 DialogItemSetFill(di, 0, 0);
488 DialogItemSetAlign(di, 0, 512);
489 DialogItemSetText(di, _("Autoraise delay:"));
491 di = DialogAddItem(table, DITEM_SLIDER);
492 DialogItemSliderSetBounds(di, 0, 300);
493 DialogItemSliderSetUnits(di, 10);
494 DialogItemSliderSetJump(di, 25);
495 DialogItemSliderSetValPtr(di, &tmp_autoraisetime);
498 const DialogDef DlgAutoraise = {
499 "CONFIGURE_AUTORAISE",
501 N_("Autoraise Settings"),
502 SOUND_SETTINGS_AUTORAISE,
504 N_("Enlightenment Automatic Raising\n" "of Windows Settings Dialog\n"),
506 DLG_OAC, CB_ConfigureAutoraise,
509 static char tmp_dialog_headers;
510 static char tmp_button_image;
511 static char tmp_animate_startup;
512 static char tmp_saveunders;
515 CB_ConfigureMiscellaneous(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
519 Conf.dialogs.headers = tmp_dialog_headers;
520 Conf.dialogs.button_image = tmp_button_image;
521 Conf.startup.animate = tmp_animate_startup;
522 Conf.save_under = tmp_saveunders;
528 _DlgFillMisc(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
532 tmp_dialog_headers = Conf.dialogs.headers;
533 tmp_button_image = Conf.dialogs.button_image;
534 tmp_animate_startup = Conf.startup.animate;
535 tmp_saveunders = Conf.save_under;
537 DialogItemTableSetOptions(table, 2, 0, 0, 0);
539 di = DialogAddItem(table, DITEM_CHECKBUTTON);
540 DialogItemSetColSpan(di, 2);
541 DialogItemSetText(di, _("Enable Dialog Headers"));
542 DialogItemCheckButtonSetPtr(di, &tmp_dialog_headers);
544 #if 0 /* Not functional */
545 di = DialogAddItem(table, DITEM_CHECKBUTTON);
546 DialogItemSetColSpan(di, 2);
547 DialogItemSetText(di, _("Enable Button Images"));
548 DialogItemCheckButtonSetPtr(di, &tmp_button_image);
551 di = DialogAddItem(table, DITEM_SEPARATOR);
552 DialogItemSetColSpan(di, 2);
554 di = DialogAddItem(table, DITEM_CHECKBUTTON);
555 DialogItemSetColSpan(di, 2);
556 DialogItemSetText(di, _("Enable sliding startup windows"));
557 DialogItemCheckButtonSetPtr(di, &tmp_animate_startup);
559 di = DialogAddItem(table, DITEM_SEPARATOR);
560 DialogItemSetColSpan(di, 2);
562 di = DialogAddItem(table, DITEM_CHECKBUTTON);
563 DialogItemSetColSpan(di, 2);
564 DialogItemSetText(di, _("Use saveunders to reduce window exposures"));
565 DialogItemCheckButtonSetPtr(di, &tmp_saveunders);
568 const DialogDef DlgMisc = {
569 "CONFIGURE_MISCELLANEOUS",
571 N_("Miscellaneous Settings"),
572 SOUND_SETTINGS_MISCELLANEOUS,
573 "pix/miscellaneous.png",
574 N_("Enlightenment Miscellaneous\n" "Settings Dialog\n"),
576 DLG_OAC, CB_ConfigureMiscellaneous,
580 #include "ecompmgr.h"
587 CB_ConfigureComposite(Dialog * d, int val, void *data __UNUSED__)
594 /* Configure and read back */
595 cfg = (cfg_composite *) DialogGetData(d);
596 ECompMgrConfigSet(cfg);
597 ECompMgrConfigGet(cfg);
601 _DlgFillComposite(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__)
603 static cfg_composite Cfg_composite;
606 /* Get current settings */
607 ECompMgrConfigGet(&Cfg_composite);
608 DialogSetData(d, &Cfg_composite);
611 DialogItemTableSetOptions(table, 2, 0, 0, 0);
613 di = DialogAddItem(table, DITEM_CHECKBUTTON);
614 DialogItemSetColSpan(di, 2);
615 DialogItemSetText(di, _("Enable Composite"));
616 DialogItemCheckButtonSetPtr(di, &Cfg_composite.enable);
618 di = DialogAddItem(table, DITEM_SEPARATOR);
619 DialogItemSetColSpan(di, 2);
621 di = DialogAddItem(table, DITEM_CHECKBUTTON);
622 DialogItemSetColSpan(di, 2);
623 DialogItemSetText(di, _("Enable Fading"));
624 DialogItemCheckButtonSetPtr(di, &Cfg_composite.fading);
626 di = DialogAddItem(table, DITEM_TEXT);
627 DialogItemSetFill(di, 0, 0);
628 DialogItemSetAlign(di, 0, 512);
629 DialogItemSetText(di, _("Fading Speed:"));
631 di = DialogAddItem(table, DITEM_SLIDER);
632 DialogItemSliderSetBounds(di, 0, 100);
633 DialogItemSliderSetUnits(di, 5);
634 DialogItemSliderSetJump(di, 5);
635 DialogItemSliderSetValPtr(di, &Cfg_composite.fade_speed);
637 di = DialogAddItem(table, DITEM_SEPARATOR);
638 DialogItemSetColSpan(di, 2);
640 radio = di = DialogAddItem(table, DITEM_RADIOBUTTON);
641 DialogItemSetColSpan(di, 2);
642 DialogItemSetText(di, _("Shadows Off"));
643 DialogItemRadioButtonSetFirst(di, radio);
644 DialogItemRadioButtonGroupSetVal(di, 0);
646 di = DialogAddItem(table, DITEM_RADIOBUTTON);
647 DialogItemSetColSpan(di, 2);
648 DialogItemSetText(di, _("Shadows Sharp"));
649 DialogItemRadioButtonSetFirst(di, radio);
650 DialogItemRadioButtonGroupSetVal(di, 1);
652 di = DialogAddItem(table, DITEM_RADIOBUTTON);
653 DialogItemSetColSpan(di, 2);
654 DialogItemSetText(di, _("Shadows Sharp2"));
655 DialogItemRadioButtonSetFirst(di, radio);
656 DialogItemRadioButtonGroupSetVal(di, 3);
658 di = DialogAddItem(table, DITEM_RADIOBUTTON);
659 DialogItemSetColSpan(di, 2);
660 DialogItemSetText(di, _("Shadows Blurred"));
661 DialogItemRadioButtonSetFirst(di, radio);
662 DialogItemRadioButtonGroupSetVal(di, 2);
663 DialogItemRadioButtonGroupSetValPtr(radio, &Cfg_composite.shadow);
665 di = DialogAddItem(table, DITEM_SEPARATOR);
666 DialogItemSetColSpan(di, 2);
668 di = DialogAddItem(table, DITEM_TEXT);
669 DialogItemSetFill(di, 0, 0);
670 DialogItemSetAlign(di, 0, 512);
671 DialogItemSetText(di, _("Default focused window opacity:"));
673 di = DialogAddItem(table, DITEM_SLIDER);
674 DialogItemSliderSetBounds(di, 0, 100);
675 DialogItemSliderSetUnits(di, 5);
676 DialogItemSliderSetJump(di, 5);
677 DialogItemSliderSetValPtr(di, &Cfg_composite.opacity_focused);
679 di = DialogAddItem(table, DITEM_TEXT);
680 DialogItemSetFill(di, 0, 0);
681 DialogItemSetAlign(di, 0, 512);
682 DialogItemSetText(di, _("Default unfocused window opacity:"));
684 di = DialogAddItem(table, DITEM_SLIDER);
685 DialogItemSliderSetBounds(di, 0, 100);
686 DialogItemSliderSetUnits(di, 5);
687 DialogItemSliderSetJump(di, 5);
688 DialogItemSliderSetValPtr(di, &Cfg_composite.opacity_unfocused);
690 di = DialogAddItem(table, DITEM_TEXT);
691 DialogItemSetFill(di, 0, 0);
692 DialogItemSetAlign(di, 0, 512);
693 DialogItemSetText(di, _("Default pop-up window opacity:"));
695 di = DialogAddItem(table, DITEM_SLIDER);
696 DialogItemSliderSetBounds(di, 0, 100);
697 DialogItemSliderSetUnits(di, 5);
698 DialogItemSliderSetJump(di, 5);
699 DialogItemSliderSetValPtr(di, &Cfg_composite.opacity_override);
702 const DialogDef DlgComposite = {
703 "CONFIGURE_COMPOSITE",
705 N_("Composite Settings"),
706 SOUND_SETTINGS_COMPOSITE,
708 N_("Enlightenment Composite\n" "Settings Dialog\n"),
710 DLG_OAC, CB_ConfigureComposite,
715 * Combined configuration dialog
718 static const DialogDef *dialogs[] = {
736 #ifdef ENABLE_THEME_TRANSPARENCY
745 #define N_CFG_DLGS (sizeof(dialogs)/sizeof(DialogDef*))
748 CB_DlgSelect(Dialog * d, int val, void *data)
750 const DialogDef *dd = dialogs[val];
751 DItem *table = (DItem *) data;
758 DialogCallExitFunction(d);
760 DialogItemTableEmpty(table);
761 DialogKeybindingsDestroy(d);
763 DialogSetTitle(d, _(dd->title));
764 DialogFill(d, table, dd, NULL);
770 _DlgFillConfiguration(Dialog * d, DItem * table, void *data __UNUSED__)
772 DItem *di, *buttons, *content;
775 DialogItemTableSetOptions(table, 2, 0, 0, 0);
777 buttons = DialogAddItem(table, DITEM_TABLE);
778 content = DialogAddItem(table, DITEM_TABLE);
780 for (i = 0; i < N_CFG_DLGS; i++)
782 di = DialogAddItem(buttons, DITEM_BUTTON);
783 DialogItemSetPadding(di, 2, 2, 0, 0);
784 DialogItemSetText(di, _(dialogs[i]->label));
785 DialogItemSetCallback(di, CB_DlgSelect, i, content);
788 DialogFill(d, content, dialogs[0], NULL);
791 static const DialogDef DlgConfiguration = {
794 N_("Enlightenment Settings"),
798 _DlgFillConfiguration,
803 IPC_Cfg(const char *params)
808 if (!params || !params[0])
810 DialogShowSimple(&DlgConfiguration, NULL);
814 for (i = 0; i < N_CFG_DLGS; i++)
816 name = dialogs[i]->label;
817 if (strcasecmp(params, name))
819 DialogShowSimple(dialogs[i], NULL);
822 #endif /* ENABLE_DIALOGS */