From d7dcca1b80ce3df022a3f450b573abdb4d1a8902 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Sat, 4 Mar 2006 04:36:23 +0000 Subject: [PATCH] Update the checkbox label when it gets toggled. Trying to think like grandma here :) SVN revision: 20988 --- src/bin/e_int_config_cursor.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/bin/e_int_config_cursor.c b/src/bin/e_int_config_cursor.c index ce4209e..16e09e6 100644 --- a/src/bin/e_int_config_cursor.c +++ b/src/bin/e_int_config_cursor.c @@ -6,6 +6,7 @@ static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); +static void _cursor_check_toggle(void *data, Evas_Object *obj, const char *emission, const char *source); struct _E_Config_Dialog_Data { @@ -15,6 +16,13 @@ struct _E_Config_Dialog_Data int cursor_size; }; +typedef struct _E_Widget_Check_Data E_Widget_Check_Data; +struct _E_Widget_Check_Data +{ + Evas_Object *o_check; + int *valptr; +}; + EAPI E_Config_Dialog * e_int_config_cursor(E_Container *con) { @@ -88,11 +96,16 @@ static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob; + E_Widget_Check_Data *wd; o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Cursor Settings"), 0); ob = e_widget_check_add(evas, _("Use Enlightenment Cursor"), &(cfdata->use_e_cursor)); + wd = e_widget_data_get(ob); + edje_object_signal_callback_add(wd->o_check, "toggle_on", "", _cursor_check_toggle, ob); + edje_object_signal_callback_add(wd->o_check, "toggle_off", "", _cursor_check_toggle, ob); + e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); @@ -134,11 +147,15 @@ static Evas_Object * _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *ob, *of; + E_Widget_Check_Data *wd; o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Cursor Settings"), 0); ob = e_widget_check_add(evas, _("Use Enlightenment Cursor"), &(cfdata->use_e_cursor)); + wd = e_widget_data_get(ob); + edje_object_signal_callback_add(wd->o_check, "toggle_on", "", _cursor_check_toggle, ob); + edje_object_signal_callback_add(wd->o_check, "toggle_off", "", _cursor_check_toggle, ob); e_widget_framelist_object_append(of, ob); ob = e_widget_label_add(evas, _("Cursor Size")); e_widget_framelist_object_append(of, ob); @@ -147,3 +164,20 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data e_widget_list_object_append(o, of, 1, 1, 0.5); return o; } + +static void +_cursor_check_toggle(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + E_Widget_Check_Data *wd; + Evas_Object *o; + + if (!(o = data)) return; + wd = e_widget_data_get(o); + if (!wd->valptr) + return; + + if (*(wd->valptr) == 0) + edje_object_part_text_set(wd->o_check, "label", _("Use X Cursor")); + else + edje_object_part_text_set(wd->o_check, "label", _("Use Enlightenment Cursor")); +} -- 2.7.4