forked from enlightenment/enlightenment
usability improvement
-> shrink and autohide widgets are only enabled if checks are set SVN revision: 40117
This commit is contained in:
parent
df07dc5807
commit
cf1e0172cf
|
@ -10,6 +10,7 @@ static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
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 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 Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
|
static void _cb_disable_check_list(void *data, Evas_Object *obj);
|
||||||
|
|
||||||
#define MODE_CUSTOM 0
|
#define MODE_CUSTOM 0
|
||||||
#define MODE_BOTTOM_MIDDLE 1
|
#define MODE_BOTTOM_MIDDLE 1
|
||||||
|
@ -46,6 +47,9 @@ struct _E_Config_Dialog_Data
|
||||||
Evas_Object *desk_sel_list;
|
Evas_Object *desk_sel_list;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Eina_List *shrink_list = NULL;
|
||||||
|
Eina_List *autohide_list = NULL;
|
||||||
|
|
||||||
/* a nice easy setup function that does the dirty work */
|
/* a nice easy setup function that does the dirty work */
|
||||||
EAPI void
|
EAPI void
|
||||||
e_int_shelf_config(E_Shelf *es)
|
e_int_shelf_config(E_Shelf *es)
|
||||||
|
@ -213,6 +217,9 @@ _create_data(E_Config_Dialog *cfd)
|
||||||
static void
|
static void
|
||||||
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
|
shrink_list = eina_list_free(shrink_list);
|
||||||
|
autohide_list = eina_list_free(autohide_list);
|
||||||
|
|
||||||
/* Free the cfdata */
|
/* Free the cfdata */
|
||||||
cfdata->es->config_dialog = NULL;
|
cfdata->es->config_dialog = NULL;
|
||||||
eina_stringshare_del(cfdata->style);
|
eina_stringshare_del(cfdata->style);
|
||||||
|
@ -539,6 +546,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
||||||
{
|
{
|
||||||
/* generate the core widget layout for a basic dialog */
|
/* generate the core widget layout for a basic dialog */
|
||||||
Evas_Object *o, *o2, *of, *ob, *oi, *oj;
|
Evas_Object *o, *o2, *of, *ob, *oi, *oj;
|
||||||
|
Evas_Object *shrink_check;
|
||||||
|
Evas_Object *autohide_check;
|
||||||
E_Radio_Group *rg;
|
E_Radio_Group *rg;
|
||||||
Evas_Coord wmw, wmh;
|
Evas_Coord wmw, wmh;
|
||||||
Eina_List *styles, *l;
|
Eina_List *styles, *l;
|
||||||
|
@ -594,13 +603,19 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
||||||
o2 = e_widget_list_add(evas, 0, 0);
|
o2 = e_widget_list_add(evas, 0, 0);
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Size"), 0);
|
of = e_widget_framelist_add(evas, _("Size"), 0);
|
||||||
ob = e_widget_check_add(evas, _("Shrink to Content Size"), &(cfdata->fit_along));
|
shrink_check = e_widget_check_add(evas, _("Shrink to Content Size"), &(cfdata->fit_along));
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, shrink_check);
|
||||||
ob = e_widget_label_add(evas, _("Shelf Size"));
|
ob = e_widget_label_add(evas, _("Shelf Size"));
|
||||||
|
shrink_list = eina_list_append (shrink_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->fit_along); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
ob = e_widget_slider_add(evas, 1, 0, _("%3.0f pixels"), 4, 120, 4, 0, NULL, &(cfdata->size), 100);
|
ob = e_widget_slider_add(evas, 1, 0, _("%3.0f pixels"), 4, 120, 4, 0, NULL, &(cfdata->size), 100);
|
||||||
|
shrink_list = eina_list_append (shrink_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->fit_along); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
e_widget_list_object_append(o2, of, 1, 1, 0.5);
|
e_widget_list_object_append(o2, of, 1, 1, 0.5);
|
||||||
|
// handler for enable/disable widget array
|
||||||
|
e_widget_on_change_hook_set(shrink_check, _cb_disable_check_list, shrink_list);
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Styles"), 0);
|
of = e_widget_framelist_add(evas, _("Styles"), 0);
|
||||||
|
|
||||||
|
@ -641,22 +656,36 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
||||||
o2 = e_widget_list_add(evas, 0, 0);
|
o2 = e_widget_list_add(evas, 0, 0);
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Auto Hide"), 0);
|
of = e_widget_framelist_add(evas, _("Auto Hide"), 0);
|
||||||
ob = e_widget_check_add(evas, _("Auto-hide the shelf"), &(cfdata->autohiding));
|
autohide_check = e_widget_check_add(evas, _("Auto-hide the shelf"), &(cfdata->autohiding));
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, autohide_check);
|
||||||
rg = e_widget_radio_group_new(&(cfdata->autohiding_show_action));
|
rg = e_widget_radio_group_new(&(cfdata->autohiding_show_action));
|
||||||
ob = e_widget_radio_add(evas, _("Show on mouse in"), 0, rg);
|
ob = e_widget_radio_add(evas, _("Show on mouse in"), 0, rg);
|
||||||
|
autohide_list = eina_list_append (autohide_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->autohiding); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
ob = e_widget_radio_add(evas, _("Show on mouse click"), 1, rg);
|
ob = e_widget_radio_add(evas, _("Show on mouse click"), 1, rg);
|
||||||
|
autohide_list = eina_list_append (autohide_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->autohiding); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
ob = e_widget_label_add(evas, _("Hide timeout"));
|
ob = e_widget_label_add(evas, _("Hide timeout"));
|
||||||
|
autohide_list = eina_list_append (autohide_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->autohiding); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
ob = e_widget_slider_add(evas, 1, 0, _("%.1f seconds"), 0.2, 6.0, 0.2, 0, &(cfdata->hide_timeout), NULL, 60);
|
ob = e_widget_slider_add(evas, 1, 0, _("%.1f seconds"), 0.2, 6.0, 0.2, 0, &(cfdata->hide_timeout), NULL, 60);
|
||||||
|
autohide_list = eina_list_append (autohide_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->autohiding); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
ob = e_widget_label_add(evas, _("Hide duration"));
|
ob = e_widget_label_add(evas, _("Hide duration"));
|
||||||
|
autohide_list = eina_list_append (autohide_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->autohiding); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
ob = e_widget_slider_add(evas, 1, 0, _("%.1f seconds"), 0.1, 2.0, 0.1, 0, &(cfdata->hide_duration), NULL, 60);
|
ob = e_widget_slider_add(evas, 1, 0, _("%.1f seconds"), 0.1, 2.0, 0.1, 0, &(cfdata->hide_duration), NULL, 60);
|
||||||
|
autohide_list = eina_list_append (autohide_list, ob);
|
||||||
|
e_widget_disabled_set(ob, !cfdata->autohiding); // set state from saved config
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
e_widget_list_object_append(o2, of, 1, 1, 0.5);
|
e_widget_list_object_append(o2, of, 1, 1, 0.5);
|
||||||
|
// handler for enable/disable widget array
|
||||||
|
e_widget_on_change_hook_set(autohide_check, _cb_disable_check_list, autohide_list);
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Desktop"), 0);
|
of = e_widget_framelist_add(evas, _("Desktop"), 0);
|
||||||
rg = e_widget_radio_group_new(&(cfdata->desk_show_mode));
|
rg = e_widget_radio_group_new(&(cfdata->desk_show_mode));
|
||||||
|
@ -666,6 +695,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
ob = e_widget_ilist_add(evas, 16, 16, NULL);
|
ob = e_widget_ilist_add(evas, 16, 16, NULL);
|
||||||
|
e_widget_disabled_set(ob, 1); // set state from saved config
|
||||||
cfdata->desk_sel_list = ob;
|
cfdata->desk_sel_list = ob;
|
||||||
e_widget_ilist_multi_select_set(ob, 1);
|
e_widget_ilist_multi_select_set(ob, 1);
|
||||||
_desk_sel_list_load(cfdata);
|
_desk_sel_list_load(cfdata);
|
||||||
|
@ -679,3 +709,18 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
||||||
|
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @param data A Eina_List of Evas_Object to chain widgets together with the checkbox
|
||||||
|
* @param obj A Evas_Object checkbox created with e_widget_check_add()
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
_cb_disable_check_list(void *data, Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Eina_List *list = (Eina_List*) data;
|
||||||
|
Eina_List *l;
|
||||||
|
Evas_Object *o;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(list, l, o)
|
||||||
|
e_widget_disabled_set(o, !e_widget_check_checked_get(obj));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue