From f7027577cc2f17394d5f8aab7d4a3089ca3b4f1e Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 19 Nov 2005 06:10:52 +0000 Subject: [PATCH] added 2 more config dialogs. examples of slider SVN revision: 18534 --- data/themes/default_slider.edc | 153 ++++++++++----------- src/bin/Makefile.am | 6 +- src/bin/e_config.h | 30 ++--- src/bin/e_configure.c | 3 + src/bin/e_includes.h | 2 + src/bin/e_int_config_window_display.c | 208 +++++++++++++++++++++++++++++ src/bin/e_int_config_window_display.h | 12 ++ src/bin/e_int_config_window_manipulation.c | 202 ++++++++++++++++++++++++++++ src/bin/e_int_config_window_manipulation.h | 12 ++ src/bin/e_widget_slider.c | 2 +- src/bin/e_widget_slider.h | 2 +- 11 files changed, 533 insertions(+), 99 deletions(-) create mode 100644 src/bin/e_int_config_window_display.c create mode 100644 src/bin/e_int_config_window_display.h create mode 100644 src/bin/e_int_config_window_manipulation.c create mode 100644 src/bin/e_int_config_window_manipulation.h diff --git a/data/themes/default_slider.edc b/data/themes/default_slider.edc index 26e8672..9ffd0d8 100644 --- a/data/themes/default_slider.edc +++ b/data/themes/default_slider.edc @@ -13,36 +13,34 @@ group { name: "widgets/slider_vertical"; parts { part { - name: "sld"; - type: RECT; - mouse_events: 0; - description { - state: "default" 0.0; - min: 16 16; - } - } - part { name: "sld_base"; type: RECT; - clip_to: "sld"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; + rel1 { + offset: 2 2; + } + rel2 { + offset: -3 -3; + } } description { state: "active" 0.0; color: 0 0 0 0; + rel1 { + offset: 2 2; + } rel2 { to_y: "label_over"; relative: 1.0 0.0; - offset: -1 -1; + offset: -3 -1; } } } part { name: "sld_runner"; - clip_to: "sld"; mouse_events: 0; description { state: "default" 0.0; @@ -106,11 +104,11 @@ group { align: 0.5 1.0; rel1 { relative: 0.0 1.0; - offset: 4 -5; + offset: 7 -8; } rel2 { relative: 1.0 1.0; - offset: -5 -5; + offset: -8 -8; } color: 0 0 0 255; text { @@ -142,7 +140,7 @@ group { rel2 { to: "label"; relative: 1.0 1.0; - offset: 2 2; + offset: 2 3; } image { normal: "e17_frame_label_over.png"; @@ -156,7 +154,6 @@ group { part { name: "sld_p1"; type: RECT; - clip_to: "sld"; mouse_events: 1; description { state: "default" 0.0; @@ -171,7 +168,6 @@ group { part { name: "sld_p2"; type: RECT; - clip_to: "sld"; mouse_events: 1; description { state: "default" 0.0; @@ -210,29 +206,6 @@ group { } } part { - name: "focus"; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - color: 255 255 255 0; - image { - normal: "focus.png"; - border: 7 7 7 7; - middle: 0; - } - fill { - smooth: 0; - } - } - description { - state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 255; - } - } - part { name: "slider_img"; mouse_events: 0; description { @@ -258,6 +231,29 @@ group { } } part { + name: "focus"; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + image { + normal: "focus.png"; + border: 7 7 7 7; + middle: 0; + } + fill { + smooth: 0; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part { name: "slider_glow"; mouse_events: 0; description { @@ -378,36 +374,34 @@ group { name: "widgets/slider_horizontal"; parts { part { - name: "sld"; - type: RECT; - mouse_events: 0; - description { - state: "default" 0.0; - min: 16 16; - } - } - part { name: "sld_base"; type: RECT; - clip_to: "sld"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; + rel1 { + offset: 2 2; + } + rel2 { + offset: -3 -3; + } } description { state: "active" 0.0; color: 0 0 0 0; + rel1 { + offset: 2 2; + } rel2 { to_x: "label_over"; relative: 0.0 1.0; - offset: -1 -1; + offset: -1 -3; } } } part { name: "sld_runner"; - clip_to: "sld"; mouse_events: 0; description { state: "default" 0.0; @@ -471,11 +465,11 @@ group { align: 1.0 0.5; rel1 { relative: 1.0 0.0; - offset: -1 4; + offset: -8 7; } rel2 { relative: 1.0 1.0; - offset: -5 -5; + offset: -8 -8; } color: 0 0 0 255; text { @@ -507,7 +501,7 @@ group { rel2 { to: "label"; relative: 1.0 1.0; - offset: 2 2; + offset: 2 3; } image { normal: "e17_frame_label_over.png"; @@ -521,7 +515,6 @@ group { part { name: "sld_p1"; type: RECT; - clip_to: "sld"; mouse_events: 1; description { state: "default" 0.0; @@ -536,7 +529,6 @@ group { part { name: "sld_p2"; type: RECT; - clip_to: "sld"; mouse_events: 1; description { state: "default" 0.0; @@ -551,7 +543,6 @@ group { part { name: "slider"; type: RECT; - clip_to: "sld"; mouse_events: 1; dragable { x: 1 1 0; @@ -576,29 +567,6 @@ group { } } part { - name: "focus"; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - color: 255 255 255 0; - image { - normal: "focus.png"; - border: 7 7 7 7; - middle: 0; - } - fill { - smooth: 0; - } - } - description { - state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 255; - } - } - part { name: "slider_img"; mouse_events: 0; description { @@ -624,6 +592,29 @@ group { } } part { + name: "focus"; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + image { + normal: "focus.png"; + border: 7 7 7 7; + middle: 0; + } + fill { + smooth: 0; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part { name: "slider_glow"; mouse_events: 0; description { diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 5ae07b3..1ff808b 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -114,7 +114,9 @@ e_livethumb.h \ e_int_border_border.h \ e_widget_ilist.h \ e_slider.h \ -e_widget_slider.h +e_widget_slider.h \ +e_int_config_window_manipulation.h \ +e_int_config_window_display.h enlightenment_src = \ e_user.c \ @@ -210,6 +212,8 @@ e_int_border_border.c \ e_widget_ilist.c \ e_slider.c \ e_widget_slider.c \ +e_int_config_window_manipulation.c \ +e_int_config_window_display.c \ $(ENLIGHTENMENTHEADERS) enlightenment_SOURCES = \ diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 1eebc7c..cfadbad 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -81,9 +81,9 @@ struct _E_Config double menus_scroll_speed; double menus_fast_mouse_move_threshhold; double menus_click_drag_timeout; - int border_shade_animate; - int border_shade_transition; - double border_shade_speed; + int border_shade_animate; // GUI + int border_shade_transition; // GUI + double border_shade_speed; // GUI double framerate; int image_cache; int font_cache; @@ -120,19 +120,19 @@ struct _E_Config Evas_List *path_append_modules; Evas_List *path_append_backgrounds; Evas_List *path_append_input_methods; - int window_placement_policy; + int window_placement_policy; // int focus_policy; // GUI int focus_setting; // GUI int pass_click_on; // GUI int always_click_to_raise; // GUI int always_click_to_focus; // GUI - int use_auto_raise; - double auto_raise_delay; - int use_resist; + int use_auto_raise; // GUI + double auto_raise_delay; // GUI + int use_resist; // GUI int drag_resist; - int desk_resist; - int window_resist; - int gadget_resist; + int desk_resist; // GUI + int window_resist; // GUI + int gadget_resist; // GUI int winlist_warp_while_selecting; int winlist_warp_at_end; double winlist_warp_speed; @@ -153,7 +153,7 @@ struct _E_Config int winlist_pos_min_h; int winlist_pos_max_w; int winlist_pos_max_h; - int maximize_policy; + int maximize_policy; // GUI int kill_if_close_not_possible; int kill_process; double kill_timer_wait; @@ -163,10 +163,10 @@ struct _E_Config char *transition_desk; char *transition_change; Evas_List *remembers; - int move_info_follows; - int resize_info_follows; - int move_info_visible; - int resize_info_visible; + int move_info_follows; // GUI + int resize_info_follows; // GUI + int move_info_visible; // GUI + int resize_info_visible; // GUI int focus_last_focused_per_desktop; int focus_revert_on_hide_or_close; int use_e_cursor; diff --git a/src/bin/e_configure.c b/src/bin/e_configure.c index 3fccf30..92e6632 100644 --- a/src/bin/e_configure.c +++ b/src/bin/e_configure.c @@ -59,6 +59,9 @@ e_configure_show(E_Container *con) /* add items here */ e_configure_standard_item_add(eco, "enlightenment/e", _("Focus Settings"), e_int_config_focus); + e_configure_standard_item_add(eco, "enlightenment/e", _("Window Manipulation"), e_int_config_window_manipulation); + e_configure_standard_item_add(eco, "enlightenment/e", _("Window Display"), e_int_config_window_display); + /* FIXME: we should have a way for modules to hook in here and add their * own entries */ diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h index 58f5825..1cc40b2 100644 --- a/src/bin/e_includes.h +++ b/src/bin/e_includes.h @@ -95,3 +95,5 @@ #include "e_widget_ilist.h" #include "e_slider.h" #include "e_widget_slider.h" +#include "e_int_config_window_manipulation.h" +#include "e_int_config_window_display.h" diff --git a/src/bin/e_int_config_window_display.c b/src/bin/e_int_config_window_display.c new file mode 100644 index 0000000..5d4168f --- /dev/null +++ b/src/bin/e_int_config_window_display.c @@ -0,0 +1,208 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#include "e.h" + +/* PROTOTYPES - same all the time */ +typedef struct _CFData CFData; + +static void *_create_data(E_Config_Dialog *cfd); +static void _free_data(E_Config_Dialog *cfd, CFData *cfdata); +static int _basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata); +static int _advanced_apply_data(E_Config_Dialog *cfd, CFData *cfdata); +static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata); +static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata); + +/* Actual config data we will be playing with whil the dialog is active */ +struct _CFData +{ + /*- BASIC -*/ + int move_resize_info; + int animate_shading; + int placement; + /*- ADVANCED -*/ + int window_placement_policy; + int move_info_visible; + int move_info_follows; + int resize_info_visible; + int resize_info_follows; + int border_shade_animate; + int border_shade_transition; + double border_shade_speed; +}; + +/* a nice easy setup function that does the dirty work */ +E_Config_Dialog * +e_int_config_window_display(E_Container *con) +{ + E_Config_Dialog *cfd; + E_Config_Dialog_View v; + + /* methods */ + v.create_cfdata = _create_data; + v.free_cfdata = _free_data; + v.basic.apply_cfdata = _basic_apply_data; + v.basic.create_widgets = _basic_create_widgets; + v.advanced.apply_cfdata = _advanced_apply_data; + v.advanced.create_widgets = _advanced_create_widgets; + /* create config diaolg for NULL object/data */ + cfd = e_config_dialog_new(con, _("Window Display"), NULL, 0, &v, NULL); + return cfd; +} + +/**--CREATE--**/ +static void +_fill_data(CFData *cfdata) +{ + cfdata->window_placement_policy = e_config->window_placement_policy; + cfdata->move_info_visible = e_config->move_info_visible; + cfdata->move_info_follows = e_config->move_info_follows; + cfdata->resize_info_visible = e_config->resize_info_visible; + cfdata->resize_info_follows = e_config->resize_info_follows; + cfdata->border_shade_animate = e_config->border_shade_animate; + cfdata->border_shade_transition = e_config->border_shade_transition; + cfdata->border_shade_speed = e_config->border_shade_speed; + if (cfdata->move_info_visible || + cfdata->resize_info_follows) cfdata->move_resize_info = 1; + if (cfdata->border_shade_animate) cfdata->animate_shading = 1; + cfdata->placement = cfdata->window_placement_policy; +} + +static void * +_create_data(E_Config_Dialog *cfd) +{ + /* Create cfdata - cfdata is a temporary block of config data that this + * dialog will be dealing with while configuring. it will be applied to + * the running systems/config in the apply methods + */ + CFData *cfdata; + + cfdata = E_NEW(CFData, 1); + _fill_data(cfdata); + return cfdata; +} + +static void +_free_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + /* Free the cfdata */ + free(cfdata); +} + +/**--APPLY--**/ +static int +_basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + /* Actually take our cfdata settings and apply them in real life */ + if (cfdata->move_resize_info) + { + e_config->move_info_visible = 1; + e_config->resize_info_visible = 1; + } + e_config->window_placement_policy = cfdata->placement; + e_config->border_shade_animate = cfdata->animate_shading; + e_config_save_queue(); + return 1; /* Apply was OK */ +} + +static int +_advanced_apply_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + /* Actually take our cfdata settings and apply them in real life */ + e_config->window_placement_policy = cfdata->window_placement_policy; + e_config->move_info_visible = cfdata->move_info_visible; + e_config->move_info_follows = cfdata->move_info_follows; + e_config->resize_info_visible = cfdata->resize_info_visible; + e_config->resize_info_follows = cfdata->resize_info_follows; + e_config->border_shade_animate = cfdata->border_shade_animate; + e_config->border_shade_transition = cfdata->border_shade_transition; + e_config->border_shade_speed = cfdata->border_shade_speed; + e_config_save_queue(); + return 1; /* Apply was OK */ +} + +/**--GUI--**/ +static Evas_Object * +_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) +{ + /* generate the core widget layout for a basic dialog */ + Evas_Object *o, *of, *ob; + E_Radio_Group *rg; + + _fill_data(cfdata); + + o = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Display"), 0); + ob = e_widget_check_add(evas, _("Show window geometry information when moving or resizing"), &(cfdata->move_resize_info)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("Animate the shading and unshading of windows"), &(cfdata->animate_shading)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Automatic New Window Placement"), 0); + rg = e_widget_radio_group_new(&(cfdata->placement)); + ob = e_widget_radio_add(evas, _("Smart Placement"), E_WINDOW_PLACEMENT_SMART, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Place at mouse pointer"), E_WINDOW_PLACEMENT_CURSOR, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Place manually with the mouse"), E_WINDOW_PLACEMENT_MANUAL, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + return o; +} + +static Evas_Object * +_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) +{ + /* generate the core widget layout for an advanced dialog */ + Evas_Object *o, *ob, *of, *of2; + E_Radio_Group *rg; + + _fill_data(cfdata); + + o = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Window Move Geometry"), 0); + ob = e_widget_check_add(evas, _("Display information"), &(cfdata->move_info_visible)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("Follow the window as it moves"), &(cfdata->move_info_follows)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Window Resize Geometry"), 0); + ob = e_widget_check_add(evas, _("Display information"), &(cfdata->resize_info_visible)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("Follow the window as it resizes"), &(cfdata->resize_info_follows)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Window Shading"), 0); + ob = e_widget_check_add(evas, _("Animate shading and unshading of windows"), &(cfdata->border_shade_animate)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%4.0f pixels/sec"), 100, 9900, 100, 0, &(cfdata->border_shade_speed), NULL, 200); + e_widget_framelist_object_append(of, ob); + rg = e_widget_radio_group_new(&(cfdata->border_shade_transition)); + ob = e_widget_radio_add(evas, _("Linear"), E_TRANSITION_LINEAR, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Smooth accelerate and decelerate"), E_TRANSITION_SINUSOIDAL, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Accelerate"), E_TRANSITION_ACCELERATE, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Decelerate"), E_TRANSITION_DECELERATE, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Automatic New Window Placement"), 0); + rg = e_widget_radio_group_new(&(cfdata->placement)); + ob = e_widget_radio_add(evas, _("Smart Placement"), E_WINDOW_PLACEMENT_SMART, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Place at mouse pointer"), E_WINDOW_PLACEMENT_CURSOR, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Place manually with the mouse"), E_WINDOW_PLACEMENT_MANUAL, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + return o; +} diff --git a/src/bin/e_int_config_window_display.h b/src/bin/e_int_config_window_display.h new file mode 100644 index 0000000..0377571 --- /dev/null +++ b/src/bin/e_int_config_window_display.h @@ -0,0 +1,12 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#ifdef E_TYPEDEFS +#else +#ifndef E_INT_CONFIG_WINDOW_DISPLAY_H +#define E_INT_CONFIG_WINDOW_DISPLAY_H + +EAPI E_Config_Dialog *e_int_config_window_display(E_Container *con); + +#endif +#endif diff --git a/src/bin/e_int_config_window_manipulation.c b/src/bin/e_int_config_window_manipulation.c new file mode 100644 index 0000000..161e9ef --- /dev/null +++ b/src/bin/e_int_config_window_manipulation.c @@ -0,0 +1,202 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#include "e.h" + +/* PROTOTYPES - same all the time */ +typedef struct _CFData CFData; + +static void *_create_data(E_Config_Dialog *cfd); +static void _free_data(E_Config_Dialog *cfd, CFData *cfdata); +static int _basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata); +static int _advanced_apply_data(E_Config_Dialog *cfd, CFData *cfdata); +static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata); +static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata); + +/* Actual config data we will be playing with whil the dialog is active */ +struct _CFData +{ + /*- BASIC -*/ + int auto_raise; + int resist; + int maximize; + /*- ADVANCED -*/ + int use_auto_raise; + double auto_raise_delay; + int use_resist; + int desk_resist; + int window_resist; + int gadget_resist; + int maximize_policy; +}; + +/* a nice easy setup function that does the dirty work */ +E_Config_Dialog * +e_int_config_window_manipulation(E_Container *con) +{ + E_Config_Dialog *cfd; + E_Config_Dialog_View v; + + /* methods */ + v.create_cfdata = _create_data; + v.free_cfdata = _free_data; + v.basic.apply_cfdata = _basic_apply_data; + v.basic.create_widgets = _basic_create_widgets; + v.advanced.apply_cfdata = _advanced_apply_data; + v.advanced.create_widgets = _advanced_create_widgets; + /* create config diaolg for NULL object/data */ + cfd = e_config_dialog_new(con, _("Window Manipulation"), NULL, 0, &v, NULL); + return cfd; +} + +/**--CREATE--**/ +static void +_fill_data(CFData *cfdata) +{ + cfdata->use_auto_raise = e_config->use_auto_raise; + cfdata->auto_raise_delay = e_config->auto_raise_delay; + cfdata->use_resist = e_config->use_resist; + cfdata->desk_resist = e_config->desk_resist; + cfdata->window_resist = e_config->window_resist; + cfdata->gadget_resist = e_config->gadget_resist; + cfdata->maximize_policy = e_config->maximize_policy; + if (cfdata->maximize_policy == E_MAXIMIZE_NONE) + cfdata->maximize_policy = E_MAXIMIZE_FULLSCREEN; + if (cfdata->use_auto_raise) cfdata->auto_raise = 1; + if (cfdata->use_resist) cfdata->resist = 1; + cfdata->maximize = cfdata->maximize_policy; +} + +static void * +_create_data(E_Config_Dialog *cfd) +{ + /* Create cfdata - cfdata is a temporary block of config data that this + * dialog will be dealing with while configuring. it will be applied to + * the running systems/config in the apply methods + */ + CFData *cfdata; + + cfdata = E_NEW(CFData, 1); + _fill_data(cfdata); + return cfdata; +} + +static void +_free_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + /* Free the cfdata */ + free(cfdata); +} + +/**--APPLY--**/ +static int +_basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + /* Actually take our cfdata settings and apply them in real life */ + e_config->use_auto_raise = cfdata->auto_raise; + cfdata->use_resist = cfdata->resist; + e_config->maximize_policy = cfdata->maximize; + e_config_save_queue(); + return 1; /* Apply was OK */ +} + +static int +_advanced_apply_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + /* Actually take our cfdata settings and apply them in real life */ + e_config->use_auto_raise = cfdata->use_auto_raise; + e_config->auto_raise_delay = cfdata->auto_raise_delay; + e_config->use_resist = cfdata->use_resist; + e_config->desk_resist = cfdata->desk_resist; + e_config->window_resist = cfdata->window_resist; + e_config->gadget_resist = cfdata->gadget_resist; + e_config->maximize_policy = cfdata->maximize_policy; + e_config_save_queue(); + return 1; /* Apply was OK */ +} + +/**--GUI--**/ +static Evas_Object * +_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) +{ + /* generate the core widget layout for a basic dialog */ + Evas_Object *o, *of, *ob; + E_Radio_Group *rg; + + _fill_data(cfdata); + + o = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Miscellaneous Options"), 0); + ob = e_widget_check_add(evas, _("Automatically raise windows on mouse over"), &(cfdata->auto_raise)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("When moving or resizing windows, resist at the boundaries"), &(cfdata->resist)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Maximize Policy"), 0); + rg = e_widget_radio_group_new(&(cfdata->maximize)); + ob = e_widget_radio_add(evas, _("Fullscreen"), E_MAXIMIZE_FULLSCREEN, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Smart expansion"), E_MAXIMIZE_SMART, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Expand the window"), E_MAXIMIZE_EXPAND, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Fill available space"), E_MAXIMIZE_FILL, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + return o; +} + +static Evas_Object * +_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) +{ + /* generate the core widget layout for an advanced dialog */ + Evas_Object *o, *ob, *of; + E_Radio_Group *rg; + + _fill_data(cfdata); + + o = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Autoraise"), 0); + ob = e_widget_check_add(evas, _("Automatically raise windows on mouse over"), &(cfdata->use_auto_raise)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Delay before raising:")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.1f sec"), 0.0, 9.9, 0.1, 0, &(cfdata->auto_raise_delay), NULL, 200); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Resistance"), 0); + ob = e_widget_check_add(evas, _("Resist moving or resizing a window over an obstacle"), &(cfdata->use_resist)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Resistance between windows:")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%2.0f pixels"), 0, 64.0, 1.0, 0, NULL, &(cfdata->window_resist), 200); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Resistance at the edge of the screen:")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%2.0f pixels"), 0, 64.0, 1.0, 0, NULL, &(cfdata->desk_resist), 200); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Resistance to desktop gadgets:")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%2.0f pixels"), 0, 64.0, 1.0, 0, NULL, &(cfdata->gadget_resist), 200); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Maximize Policy"), 0); + rg = e_widget_radio_group_new(&(cfdata->maximize_policy)); + ob = e_widget_radio_add(evas, _("Fullscreen"), E_MAXIMIZE_FULLSCREEN, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Smart expansion"), E_MAXIMIZE_SMART, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Expand the window"), E_MAXIMIZE_EXPAND, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Fill available space"), E_MAXIMIZE_FILL, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + return o; +} diff --git a/src/bin/e_int_config_window_manipulation.h b/src/bin/e_int_config_window_manipulation.h new file mode 100644 index 0000000..47655de --- /dev/null +++ b/src/bin/e_int_config_window_manipulation.h @@ -0,0 +1,12 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#ifdef E_TYPEDEFS +#else +#ifndef E_INT_CONFIG_WINDOW_MANIPULATION_H +#define E_INT_CONFIG_WINDOW_MANIPULATION_H + +EAPI E_Config_Dialog *e_int_config_window_manipulation(E_Container *con); + +#endif +#endif diff --git a/src/bin/e_widget_slider.c b/src/bin/e_widget_slider.c index 74d6ae0..7512a9c 100644 --- a/src/bin/e_widget_slider.c +++ b/src/bin/e_widget_slider.c @@ -41,10 +41,10 @@ e_widget_slider_add(Evas *evas, int horiz, int rev, char *fmt, double min, doubl e_slider_orientation_set(o, horiz); e_slider_direction_set(o, rev); + e_slider_value_range_set(o, min, max); e_slider_value_format_display_set(o, fmt); e_slider_value_step_count_set(o, count); e_slider_value_step_size_set(o, step); - e_slider_value_range_set(o, min, max); if (dval) e_slider_value_set(o, *dval); else if (ival) e_slider_value_set(o, *ival); diff --git a/src/bin/e_widget_slider.h b/src/bin/e_widget_slider.h index e59ef19..092d4e6 100644 --- a/src/bin/e_widget_slider.h +++ b/src/bin/e_widget_slider.h @@ -6,7 +6,7 @@ #ifndef E_WIDGET_SLIDER_H #define E_WIDGET_SLIDER_H -EAPI Evas_Object *e_widget_slider_add(Evas *evas, int horiz, int rev, char *fmt, double min, double max, double step, int count, double *dval, int *ival, Evas_Coord sizex); +EAPI Evas_Object *e_widget_slider_add(Evas *evas, int horiz, int rev, char *fmt, double min, double max, double step, int count, double *dval, int *ival, Evas_Coord size); #endif #endif -- 2.7.4