2 #include "e_mod_main.h"
3 #include "e_mod_parse.h"
5 struct _E_Config_Dialog_Data
8 Evas_Object *layout_list, *used_list;
9 Evas_Object *dmodel_list, *model_list, *variant_list;
10 Evas_Object *btn_add, *btn_del, *btn_up, *btn_down;
11 Ecore_Timer *fill_delay;
12 Ecore_Timer *dlg_fill_delay;
14 Eina_List *cfg_layouts;
15 Eina_List *cfg_options;
16 const char *default_model;
20 E_Dialog *dlg_add_new;
23 typedef struct _E_XKB_Dialog_Option
27 } E_XKB_Dialog_Option;
29 /* Local prototypes */
31 static void *_create_data(E_Config_Dialog *cfd);
32 static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
33 static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
34 static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
36 static void _cb_add(void *data, void *data2 __UNUSED__);
37 static void _cb_del(void *data, void *data2 __UNUSED__);
39 static void _cb_up(void *data, void *data2 __UNUSED__);
40 static void _cb_dn(void *data, void *data2 __UNUSED__);
42 static void _dlg_add_cb_ok(void *data, E_Dialog *dlg);
43 static void _dlg_add_cb_cancel(void *data, E_Dialog *dlg);
45 static E_Dialog *_dlg_add_new(E_Config_Dialog_Data *cfdata);
47 static void _dlg_add_cb_del(void *obj);
49 static Eina_Bool _cb_dlg_fill_delay(void *data);
51 static void _cb_layout_select(void *data);
52 static void _cb_used_select (void *data);
54 static Eina_Bool _cb_fill_delay(void *data);
59 _xkb_cfg_dialog(E_Container *con, const char *params __UNUSED__)
62 E_Config_Dialog_View *v;
64 if (e_config_dialog_find("E", "keyboard_and_mouse/xkbswitch"))
66 if (!(v = E_NEW(E_Config_Dialog_View, 1))) return NULL;
68 v->create_cfdata = _create_data;
69 v->free_cfdata = _free_data;
70 v->basic.create_widgets = _basic_create;
71 v->basic.apply_cfdata = _basic_apply;
73 cfd = e_config_dialog_new(con, _("Keyboard Settings"), "E",
74 "keyboard_and_mouse/xkbswitch",
75 "preferences-desktop-keyboard",
77 e_dialog_resizable_set(cfd->dia, 1);
85 _create_data(E_Config_Dialog *cfd __UNUSED__)
87 E_Config_Dialog_Data *cfdata;
88 Eina_List *l, *ll, *lll;
89 E_Config_XKB_Layout *cl, *nl;
90 E_XKB_Dialog_Option *od;
92 E_XKB_Option_Group *gr;
95 parse_rules(); /* XXX: handle in case nothing was found? */
97 cfdata = E_NEW(E_Config_Dialog_Data, 1);
99 cfdata->cfg_layouts = NULL;
100 EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl)
102 nl = E_NEW(E_Config_XKB_Layout, 1);
103 nl->name = eina_stringshare_add(cl->name);
104 nl->model = eina_stringshare_add(cl->model);
105 nl->variant = eina_stringshare_add(cl->variant);
107 cfdata->cfg_layouts = eina_list_append(cfdata->cfg_layouts, nl);
110 /* Initialize options */
112 cfdata->only_label = e_config->xkb.only_label;
113 cfdata->cfg_options = NULL;
115 lll = e_config->xkb.used_options;
116 EINA_LIST_FOREACH(optgroups, l, gr)
118 EINA_LIST_FOREACH(gr->options, ll, op)
120 od = E_NEW(E_XKB_Dialog_Option, 1);
121 od->name = eina_stringshare_add(op->name);
123 (od->name == ((E_Config_XKB_Option *)
124 eina_list_data_get(lll))->name))
127 lll = eina_list_next(lll);
129 else od->enabled = 0;
130 cfdata->cfg_options = eina_list_append(cfdata->cfg_options, od);
138 _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
140 E_Config_XKB_Layout *cl;
141 E_XKB_Dialog_Option *od;
145 EINA_LIST_FREE(cfdata->cfg_layouts, cl)
147 eina_stringshare_del(cl->name);
148 eina_stringshare_del(cl->model);
149 eina_stringshare_del(cl->variant);
153 EINA_LIST_FREE(cfdata->cfg_options, od)
155 eina_stringshare_del(od->name);
159 eina_stringshare_del(cfdata->default_model);
165 _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
168 E_Config_XKB_Layout *cl, *nl;
169 E_Config_XKB_Option *oc;
170 E_XKB_Dialog_Option *od;
172 EINA_LIST_FREE(e_config->xkb.used_layouts, cl)
174 eina_stringshare_del(cl->name);
175 eina_stringshare_del(cl->model);
176 eina_stringshare_del(cl->variant);
180 EINA_LIST_FOREACH(cfdata->cfg_layouts, l, cl)
182 nl = E_NEW(E_Config_XKB_Layout, 1);
183 nl->name = eina_stringshare_add(cl->name);
184 nl->model = eina_stringshare_add(cl->model);
185 nl->variant = eina_stringshare_add(cl->variant);
187 e_config->xkb.used_layouts =
188 eina_list_append(e_config->xkb.used_layouts, nl);
191 if (e_config->xkb.default_model)
192 eina_stringshare_del(e_config->xkb.default_model);
194 e_config->xkb.default_model = eina_stringshare_add(cfdata->default_model);
197 e_config->xkb.only_label = cfdata->only_label;
199 EINA_LIST_FREE(e_config->xkb.used_options, oc)
201 eina_stringshare_del(oc->name);
205 EINA_LIST_FOREACH(cfdata->cfg_options, l, od)
207 if (!od->enabled) continue;
209 oc = E_NEW(E_Config_XKB_Option, 1);
210 oc->name = eina_stringshare_add(od->name);
211 e_config->xkb.used_options = eina_list_append(e_config->xkb.used_options, oc);
217 e_config_save_queue();
222 _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
224 /* Holds the dialog contents, displays a toolbar on the top */
225 Evas_Object *mainn = e_widget_toolbook_add(evas, 24, 24);
227 /* Holds the used layouts ilist and the button table */
228 Evas_Object *layoutss;
229 Evas_Object *modelss;
230 Evas_Object *options;
232 layoutss = e_widget_list_add(evas, 0, 0);
234 /* Holds the used layouts */
235 Evas_Object *configs;
236 Evas_Object *buttons;
238 configs = e_widget_ilist_add(evas, 32, 32, NULL);
241 e_widget_size_min_set(configs, 220, 160);
242 e_widget_ilist_go(configs);
244 e_widget_list_object_append(layoutss, configs, 1, 1, 0.5);
245 cfdata->used_list = configs;
248 /* Holds the buttons */
249 buttons = e_widget_table_add(evas, 1);
251 cfdata->btn_up = e_widget_button_add(evas, _("Up"), "go-up", _cb_up, cfdata, NULL);
253 e_widget_disabled_set(cfdata->btn_up, EINA_TRUE);
254 e_widget_table_object_append(buttons, cfdata->btn_up, 0, 0, 1, 1, 1, 1, 1, 0);
257 cfdata->btn_down = e_widget_button_add(evas, _("Down"), "go-down", _cb_dn, cfdata, NULL);
259 e_widget_disabled_set(cfdata->btn_down, EINA_TRUE);
260 e_widget_table_object_append(buttons, cfdata->btn_down, 1, 0, 1, 1, 1, 1, 1, 0);
263 cfdata->btn_add = e_widget_button_add(evas, _("Add"), "list-add", _cb_add, cfdata, NULL);
265 e_widget_table_object_append(buttons, cfdata->btn_add, 0, 1, 1, 1, 1, 1, 1, 0);
268 cfdata->btn_del = e_widget_button_add(evas, _("Remove"), "list-remove", _cb_del, cfdata, NULL);
270 e_widget_disabled_set(cfdata->btn_del, EINA_TRUE);
271 e_widget_table_object_append(buttons, cfdata->btn_del, 1, 1, 1, 1, 1, 1, 1, 0);
274 e_widget_list_object_append(layoutss, buttons, 1, 0, 1);
277 e_widget_toolbook_page_append(mainn, NULL, _("Configurations"), layoutss, 1, 1, 1, 1, 0.5, 0.0);
280 /* Holds the default models */
281 modelss = e_widget_ilist_add(evas, 32, 32, &cfdata->default_model);
283 e_widget_size_min_set(modelss, 220, 160);
284 cfdata->dmodel_list = modelss;
286 e_widget_toolbook_page_append(mainn, NULL, _("Models"), modelss, 1, 1, 1, 1, 0.5, 0.0);
289 /* Holds the options */
290 options = e_widget_list_add(evas, 0, 0);
292 E_XKB_Option *option;
293 E_XKB_Option_Group *group;
294 Eina_List *l, *ll, *lll;
296 Evas_Object *general;
297 Evas_Object *scroller;
299 general = e_widget_framelist_add(evas, _("Gadgets"), 0);
301 Evas_Object *only_label = e_widget_check_add(evas, _("Label only"), &(cfdata->only_label));
303 e_widget_framelist_object_append(general, only_label);
305 e_widget_list_object_append(options, general, 1, 1, 0.0);
308 lll = cfdata->cfg_options;
310 EINA_LIST_FOREACH(optgroups, l, group)
312 Evas_Object *grp = e_widget_framelist_add(evas, group->description, 0);
314 EINA_LIST_FOREACH(group->options, ll, option)
316 Evas_Object *chk = e_widget_check_add(evas, option->description,
317 &(((E_XKB_Dialog_Option *)
318 eina_list_data_get(lll))->enabled));
319 e_widget_framelist_object_append(grp, chk);
320 lll = eina_list_next(lll);
322 e_widget_list_object_append(options, grp, 1, 1, 0.0);
325 e_widget_size_min_get(options, &mw, &mh);
327 if (mw < 220) mw = 220;
328 if (mh < 160) mh = 160;
330 evas_object_resize(options, mw, mh);
332 scroller = e_widget_scrollframe_simple_add(evas, options);
333 e_widget_size_min_set(scroller, 220, 160);
335 e_widget_toolbook_page_append(mainn, NULL, _("Options"), scroller, 1, 1, 1, 1, 0.5, 0.0);
338 /* Display the first page by default */
339 e_widget_toolbook_page_show(mainn, 0);
345 /* Clear up any previous timer */
346 if (cfdata->fill_delay)
347 ecore_timer_del(cfdata->fill_delay);
349 /* Trigger the fill */
350 cfdata->fill_delay = ecore_timer_add(0.2, _cb_fill_delay, cfdata);
356 _cb_add(void *data, void *data2 __UNUSED__)
358 E_Config_Dialog_Data *cfdata;
359 if (!(cfdata = data)) return;
361 if (cfdata->dlg_add_new) e_win_raise(cfdata->dlg_add_new->win);
362 else cfdata->dlg_add_new = _dlg_add_new(cfdata);
366 _cb_del(void *data, void *data2 __UNUSED__)
368 E_Config_Dialog_Data *cfdata;
371 if (!(cfdata = data)) return;
372 if ((n = e_widget_ilist_selected_get(cfdata->used_list)) < 0) return;
374 cfdata->cfg_layouts = eina_list_remove_list(cfdata->cfg_layouts, eina_list_nth_list(cfdata->cfg_layouts, n));
376 /* Update the list */
377 evas_event_freeze(cfdata->evas);
379 e_widget_ilist_freeze(cfdata->used_list);
380 e_widget_ilist_remove_num(cfdata->used_list, n);
381 e_widget_ilist_go(cfdata->used_list);
382 e_widget_ilist_thaw(cfdata->used_list);
384 evas_event_thaw(cfdata->evas);
388 _cb_up(void *data, void *data2 __UNUSED__)
390 E_Config_Dialog_Data *cfdata;
397 if (!(cfdata = data)) return;
398 if ((n = e_widget_ilist_selected_get(cfdata->used_list)) < 0) return;
400 l = eina_list_nth_list(cfdata->cfg_layouts, n);
402 nddata = eina_list_data_get(eina_list_prev(l));
403 eina_list_data_set(eina_list_prev(l), eina_list_data_get(l));
404 eina_list_data_set(l, nddata);
406 /* Update the list */
408 evas_event_freeze(cfdata->evas);
410 e_widget_ilist_freeze(cfdata->used_list);
412 ic = e_icon_add(cfdata->evas);
413 e_icon_file_set(ic, e_icon_file_get(e_widget_ilist_nth_icon_get(cfdata->used_list, n)));
414 lbl = e_widget_ilist_nth_label_get(cfdata->used_list, n);
415 e_widget_ilist_prepend_relative_full(cfdata->used_list, ic, NULL, lbl, _cb_used_select, cfdata, NULL, (n - 1));
416 e_widget_ilist_remove_num(cfdata->used_list, n);
418 e_widget_ilist_go(cfdata->used_list);
419 e_widget_ilist_thaw(cfdata->used_list);
421 evas_event_thaw(cfdata->evas);
423 e_widget_ilist_selected_set(cfdata->used_list, (n - 1));
427 _cb_dn(void *data, void *data2 __UNUSED__)
429 E_Config_Dialog_Data *cfdata;
436 if (!(cfdata = data)) return;
437 if ((n = e_widget_ilist_selected_get(cfdata->used_list)) < 0) return;
439 l = eina_list_nth_list(cfdata->cfg_layouts, n);
441 nddata = eina_list_data_get(eina_list_next(l));
442 eina_list_data_set(eina_list_next(l), eina_list_data_get(l));
443 eina_list_data_set(l, nddata);
445 /* Update the list */
447 evas_event_freeze(cfdata->evas);
449 e_widget_ilist_freeze(cfdata->used_list);
451 ic = e_icon_add(cfdata->evas);
452 e_icon_file_set(ic, e_icon_file_get(e_widget_ilist_nth_icon_get(cfdata->used_list, n)));
453 lbl = e_widget_ilist_nth_label_get(cfdata->used_list, n);
454 e_widget_ilist_append_relative_full(cfdata->used_list, ic, NULL, lbl, _cb_used_select, cfdata, NULL, n);
455 e_widget_ilist_remove_num(cfdata->used_list, n);
457 e_widget_ilist_go(cfdata->used_list);
458 e_widget_ilist_thaw(cfdata->used_list);
460 evas_event_thaw(cfdata->evas);
462 e_widget_ilist_selected_set(cfdata->used_list, (n + 1));
466 _dlg_add_new(E_Config_Dialog_Data *cfdata)
473 if (!(dlg = e_dialog_new(_xkb.cfd->con, "E", "xkbswitch_config_add_dialog"))) return NULL;
477 e_object_del_attach_func_set(E_OBJECT(dlg), _dlg_add_cb_del);
478 e_win_centered_set(dlg->win, 1);
480 evas = e_win_evas_get(dlg->win);
481 e_dialog_title_set(dlg, _("Add New Configuration"));
483 /* The main toolbook, holds the lists and tabs */
484 mainn = e_widget_toolbook_add(evas, 24, 24);
486 /* Holds the available layouts */
487 Evas_Object *available = e_widget_ilist_add(evas, 32, 32, NULL);
488 Evas_Object *modelss;
489 Evas_Object *variants;
492 e_widget_size_min_set(available, 220, 160);
493 e_widget_ilist_go(available);
494 e_widget_toolbook_page_append(mainn, NULL, _("Available"), available, 1, 1, 1, 1, 0.5, 0.0);
495 cfdata->layout_list = available;
498 /* Holds the available models */
499 modelss = e_widget_ilist_add(evas, 32, 32, NULL);
501 e_widget_toolbook_page_append(mainn, NULL, _("Model"), modelss, 1, 1, 1, 1, 0.5, 0.0);
502 cfdata->model_list = modelss;
505 /* Holds the available variants */
506 variants = e_widget_ilist_add(evas, 32, 32, NULL);
508 e_widget_toolbook_page_append(mainn, NULL, _("Variant"), variants, 1, 1, 1, 1, 0.5, 0.0);
509 cfdata->variant_list = variants;
511 e_widget_toolbook_page_show(mainn, 0);
514 e_widget_size_min_get(mainn, &mw, &mh);
515 e_dialog_content_set(dlg, mainn, mw, mh);
517 cfdata->dlg_evas = evas;
519 /* Clear up any previous timer */
520 if (cfdata->dlg_fill_delay) ecore_timer_del(cfdata->dlg_fill_delay);
522 /* Trigger the fill */
523 cfdata->dlg_fill_delay = ecore_timer_add(0.2, _cb_dlg_fill_delay, cfdata);
526 e_dialog_button_add(dlg, _("OK"), NULL, _dlg_add_cb_ok, cfdata);
527 e_dialog_button_add(dlg, _("Cancel"), NULL, _dlg_add_cb_cancel, cfdata);
529 e_dialog_button_disable_num_set(dlg, 0, 1);
530 e_dialog_button_disable_num_set(dlg, 1, 0);
532 e_dialog_resizable_set(dlg, 1);
539 _dlg_add_cb_ok(void *data __UNUSED__, E_Dialog *dlg)
541 E_Config_Dialog_Data *cfdata = dlg->data;
542 E_Config_XKB_Layout *cl;
544 /* Configuration information */
545 const char *layout = e_widget_ilist_selected_value_get(cfdata->layout_list);
546 const char *model = e_widget_ilist_selected_value_get(cfdata->model_list);
547 const char *variant = e_widget_ilist_selected_value_get(cfdata->variant_list);
549 /* The new configuration */
550 cl = E_NEW(E_Config_XKB_Layout, 1);
551 cl->name = eina_stringshare_add(layout);
552 cl->model = eina_stringshare_add(model);
553 cl->variant = eina_stringshare_add(variant);
555 cfdata->cfg_layouts = eina_list_append(cfdata->cfg_layouts, cl);
557 /* Update the main list */
558 evas_event_freeze(cfdata->evas);
560 e_widget_ilist_freeze(cfdata->used_list);
563 Evas_Object *ic = e_icon_add(cfdata->evas);
564 const char *name = cl->name;
566 e_xkb_e_icon_flag_setup(ic, name);
567 snprintf(buf, sizeof(buf), "%s (%s, %s)",
568 cl->name, cl->model, cl->variant);
569 e_widget_ilist_append_full(cfdata->used_list, ic, NULL, buf,
570 _cb_used_select, cfdata, NULL);
573 e_widget_ilist_go (cfdata->used_list);
574 e_widget_ilist_thaw(cfdata->used_list);
576 evas_event_thaw(cfdata->evas);
578 cfdata->dlg_add_new = NULL;
579 e_object_unref(E_OBJECT(dlg));
583 _dlg_add_cb_cancel(void *data __UNUSED__, E_Dialog *dlg)
585 E_Config_Dialog_Data *cfdata = dlg->data;
586 cfdata->dlg_add_new = NULL;
587 e_object_unref(E_OBJECT(dlg));
591 _dlg_add_cb_del(void *obj)
594 E_Config_Dialog_Data *cfdata = dlg->data;
595 cfdata->dlg_add_new = NULL;
596 e_object_unref(E_OBJECT(dlg));
600 _cb_dlg_fill_delay(void *data)
602 E_Config_Dialog_Data *cfdata;
604 E_XKB_Layout *layout;
607 if (!(cfdata = data)) return ECORE_CALLBACK_RENEW;
609 /* Update the list of available layouts */
610 evas_event_freeze(cfdata->dlg_evas);
613 e_widget_ilist_freeze(cfdata->layout_list);
614 e_widget_ilist_clear (cfdata->layout_list);
616 EINA_LIST_FOREACH(layouts, l, layout)
618 Evas_Object *ic = e_icon_add(cfdata->dlg_evas);
619 const char *name = layout->name;
621 e_xkb_e_icon_flag_setup(ic, name);
622 snprintf(buf, sizeof(buf), "%s (%s)",
623 layout->description, layout->name);
624 e_widget_ilist_append_full(cfdata->layout_list, ic, NULL, buf,
625 _cb_layout_select, cfdata, layout->name);
628 e_widget_ilist_go (cfdata->layout_list);
629 e_widget_ilist_thaw(cfdata->layout_list);
632 evas_event_thaw(cfdata->dlg_evas);
634 cfdata->dlg_fill_delay = NULL;
635 return ECORE_CALLBACK_CANCEL;
639 _cb_layout_select(void *data)
641 E_Config_Dialog_Data *cfdata;
642 E_XKB_Variant *variant;
643 E_XKB_Layout *layout;
650 if (!(cfdata = data)) return;
652 /* Find the right layout */
654 if ((n = e_widget_ilist_selected_get(cfdata->layout_list)) < 0)
656 if (!(label = e_widget_ilist_nth_label_get(cfdata->layout_list, n)))
659 if (!(layout = eina_list_search_unsorted
660 (layouts, layout_sort_by_name_cb,
661 e_widget_ilist_nth_value_get(cfdata->layout_list, n)
664 /* Update the lists */
665 evas_event_freeze(cfdata->dlg_evas);
669 e_widget_ilist_freeze(cfdata->model_list);
670 e_widget_ilist_clear(cfdata->model_list);
672 EINA_LIST_FOREACH(models, l, model)
674 snprintf(buf, sizeof(buf), "%s (%s)", model->description, model->name);
675 e_widget_ilist_append(cfdata->model_list, NULL, buf, NULL, cfdata, model->name);
678 e_widget_ilist_go(cfdata->model_list);
679 e_widget_ilist_thaw(cfdata->model_list);
682 e_widget_ilist_freeze(cfdata->variant_list);
683 e_widget_ilist_clear(cfdata->variant_list);
685 EINA_LIST_FOREACH(layout->variants, l, variant)
687 snprintf(buf, sizeof(buf), "%s (%s)", variant->name, variant->description);
688 e_widget_ilist_append(cfdata->variant_list, NULL, buf, NULL, cfdata, variant->name);
691 e_widget_ilist_go(cfdata->variant_list);
692 e_widget_ilist_thaw(cfdata->variant_list);
695 evas_event_thaw(cfdata->dlg_evas);
697 e_widget_ilist_selected_set(cfdata->model_list, 0);
698 e_widget_ilist_selected_set(cfdata->variant_list, 0);
700 e_dialog_button_disable_num_set(cfdata->dlg_add_new, 0, 0);
704 _cb_fill_delay(void *data)
706 E_Config_Dialog_Data *cfdata;
708 E_Config_XKB_Layout *cl;
713 if (!(cfdata = data)) return ECORE_CALLBACK_RENEW;
715 /* Update the list of used layouts */
716 evas_event_freeze(cfdata->evas);
719 e_widget_ilist_freeze(cfdata->used_list);
720 e_widget_ilist_clear(cfdata->used_list);
722 EINA_LIST_FOREACH(cfdata->cfg_layouts, l, cl)
724 Evas_Object *ic = e_icon_add(cfdata->evas);
725 const char *name = cl->name;
727 e_xkb_e_icon_flag_setup(ic, name);
728 snprintf(buf, sizeof(buf), "%s (%s, %s)",
729 cl->name, cl->model, cl->variant);
730 e_widget_ilist_append_full(cfdata->used_list, ic, NULL, buf,
731 _cb_used_select, cfdata, NULL);
734 e_widget_ilist_go(cfdata->used_list);
735 e_widget_ilist_thaw(cfdata->used_list);
737 e_widget_ilist_freeze(cfdata->dmodel_list);
738 e_widget_ilist_clear(cfdata->dmodel_list);
740 /* Update the global model list */
741 EINA_LIST_FOREACH(models, l, model)
743 snprintf(buf, sizeof(buf), "%s (%s)", model->description, model->name);
744 e_widget_ilist_append(cfdata->dmodel_list, NULL, buf, NULL,
745 cfdata, model->name);
746 if (model->name == e_config->xkb.default_model)
747 e_widget_ilist_selected_set(cfdata->dmodel_list, n);
751 e_widget_ilist_go(cfdata->dmodel_list);
752 e_widget_ilist_thaw(cfdata->dmodel_list);
754 evas_event_thaw(cfdata->evas);
756 cfdata->fill_delay = NULL;
757 return ECORE_CALLBACK_CANCEL;
761 _cb_used_select(void *data)
763 E_Config_Dialog_Data *cfdata;
766 if (!(cfdata = data)) return;
767 if ((n = e_widget_ilist_selected_get(cfdata->used_list)) < 0) return;
769 c = e_widget_ilist_count(cfdata->used_list);
770 e_widget_disabled_set(cfdata->btn_del, EINA_FALSE);
774 e_widget_disabled_set(cfdata->btn_up, EINA_FALSE);
775 e_widget_disabled_set(cfdata->btn_down, EINA_TRUE );
779 e_widget_disabled_set(cfdata->btn_up, EINA_TRUE );
780 e_widget_disabled_set(cfdata->btn_down, EINA_FALSE);
784 e_widget_disabled_set(cfdata->btn_up, EINA_FALSE);
785 e_widget_disabled_set(cfdata->btn_down, EINA_FALSE);