Enlightenment CVS committal Author : titan Project : e17 Module : apps/e_utils
Dir : e17/apps/e_utils/src/bin/eapp_edit Modified Files: eapp_edit_main.c Log Message: Pull out the common stuff and do it only once. =================================================================== RCS file: /cvs/e/e17/apps/e_utils/src/bin/eapp_edit/eapp_edit_main.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -3 -r1.48 -r1.49 --- eapp_edit_main.c 5 Jun 2006 06:00:23 -0000 1.48 +++ eapp_edit_main.c 5 Jun 2006 06:49:43 -0000 1.49 @@ -31,6 +31,9 @@ static void eapp_cb_fd_show(Ewl_Widget *w, void *ev, void *data); static void eapp_cb_fd_hide(Ewl_Widget *w, void *ev, void *data); static void eapp_cb_fd_changed(Ewl_Widget *w, void *ev, void *data); +static void eapp_create_content(Eet_File *ef, char *key, char *name, char *lang, + char *winclass, Ewl_Widget *parent); +Ewl_Widget *eapp_border_get(Ewl_Widget *parent, char *title, char *align); static Eapp_Item basic_keys[] = { {"app/info/name", "App Name", 0}, @@ -226,7 +229,7 @@ eapp_populate(Ewl_Widget *vbox, char *file, char *lang, char *winclass) { Ewl_Widget *hbox, *icon_border, *icon, *basic, *o; - Ewl_Widget *hsep, *label, *entry, *general; + Ewl_Widget *hsep, *general; Ewl_Widget *icon_theme, *window, *misc, *checkbutton; Eet_File *ef = NULL; char *v; @@ -265,164 +268,48 @@ ewl_callback_append(icon, EWL_CALLBACK_CLICKED, eapp_cb_fd_show, NULL); ewl_widget_show(icon); - basic = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(basic), "Basic Info"); - ewl_border_label_alignment_set(EWL_BORDER(basic), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), basic); - ewl_object_alignment_set(EWL_OBJECT(basic), EWL_FLAG_ALIGN_RIGHT); - ewl_widget_show(basic); + basic = eapp_border_get(hbox, "Basic Info", "right"); hsep = ewl_hseparator_new(); ewl_container_child_append(EWL_CONTAINER(vbox), hsep); ewl_widget_show(hsep); - for (i = 0; basic_keys[i].key; i++) - { - hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(basic), hbox); - ewl_widget_show(hbox); - - v = eapp_eet_read(ef, basic_keys[i].key, lang); - - label = ewl_label_new(); - ewl_label_text_set(EWL_LABEL(label), basic_keys[i].name); - ewl_object_fill_policy_set(EWL_OBJECT(label), EWL_FLAG_FILL_NONE); - ewl_object_alignment_set(EWL_OBJECT(label), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), label); - ewl_object_minimum_size_set(EWL_OBJECT(label), 65, 15); - ewl_object_maximum_size_set(EWL_OBJECT(label), 65, 15); - ewl_widget_show(label); - - entry = ewl_entry_new(); - ewl_text_text_set(EWL_TEXT(entry), v); - ewl_object_maximum_size_set(EWL_OBJECT(entry), 99999, 8); - ewl_object_alignment_set(EWL_OBJECT(entry), EWL_FLAG_ALIGN_RIGHT); - ewl_container_child_append(EWL_CONTAINER(hbox), entry); - ewl_widget_name_set(entry, basic_keys[i].key); - ewl_widget_show(entry); - } - hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(vbox), hbox); ewl_widget_show(hbox); - general = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(general), "General"); - ewl_border_label_alignment_set(EWL_BORDER(general), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), general); - ewl_object_alignment_set(EWL_OBJECT(general), EWL_FLAG_ALIGN_LEFT); - ewl_widget_show(general); - - icon_theme = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(icon_theme), "Icon Theme"); - ewl_border_label_alignment_set(EWL_BORDER(icon_theme), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), icon_theme); - ewl_object_alignment_set(EWL_OBJECT(icon_theme), EWL_FLAG_ALIGN_RIGHT); - ewl_widget_show(icon_theme); + general = eapp_border_get(hbox, "General", "left"); + + icon_theme = eapp_border_get(hbox, "Icon Theme", "right"); hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(vbox), hbox); ewl_widget_show(hbox); - window = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(window), "Window"); - ewl_border_label_alignment_set(EWL_BORDER(window), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), window); - ewl_object_alignment_set(EWL_OBJECT(window), EWL_FLAG_ALIGN_LEFT); - ewl_widget_show(window); - - misc = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(misc), "Misc"); - ewl_border_label_alignment_set(EWL_BORDER(misc), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), misc); - ewl_object_alignment_set(EWL_OBJECT(misc), EWL_FLAG_ALIGN_RIGHT); - ewl_widget_show(misc); + window = eapp_border_get(hbox, "Window", "left"); + + misc = eapp_border_get(hbox, "Misc", "Right"); + + for (i = 0; basic_keys[i].key; i++) + { + eapp_create_content(ef, basic_keys[i].key, basic_keys[i].name, lang, winclass, basic); + } for (i = 0; general_keys[i].key; i++) { - hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(general), hbox); - ewl_widget_show(hbox); - - v = eapp_eet_read(ef, general_keys[i].key, lang); - - label = ewl_label_new(); - ewl_label_text_set(EWL_LABEL(label), general_keys[i].name); - ewl_object_fill_policy_set(EWL_OBJECT(label), EWL_FLAG_FILL_NONE); - ewl_object_alignment_set(EWL_OBJECT(label), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), label); - ewl_object_minimum_size_set(EWL_OBJECT(label), 75, 15); - ewl_object_maximum_size_set(EWL_OBJECT(label), 75, 15); - ewl_widget_show(label); - - entry = ewl_entry_new(); - ewl_text_text_set(EWL_TEXT(entry), v); - ewl_object_maximum_size_set(EWL_OBJECT(entry), 99999, 8); - ewl_object_alignment_set(EWL_OBJECT(entry), EWL_FLAG_ALIGN_RIGHT); - ewl_container_child_append(EWL_CONTAINER(hbox), entry); - ewl_widget_name_set(entry, general_keys[i].key); - ewl_widget_show(entry); + eapp_create_content(ef, general_keys[i].key, general_keys[i].name, lang, winclass, + general); } for (i = 0; icon_theme_keys[i].key; i++) { - hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(icon_theme), hbox); - ewl_widget_show(hbox); - - v = eapp_eet_read(ef, icon_theme_keys[i].key, lang); - - label = ewl_label_new(); - ewl_label_text_set(EWL_LABEL(label), icon_theme_keys[i].name); - ewl_object_fill_policy_set(EWL_OBJECT(label), EWL_FLAG_FILL_NONE); - ewl_object_alignment_set(EWL_OBJECT(label), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), label); - ewl_object_minimum_size_set(EWL_OBJECT(label), 75, 15); - ewl_object_maximum_size_set(EWL_OBJECT(label), 75, 15); - ewl_widget_show(label); - - entry = ewl_entry_new(); - ewl_text_text_set(EWL_TEXT(entry), v); - ewl_object_maximum_size_set(EWL_OBJECT(entry), 99999, 8); - ewl_container_child_append(EWL_CONTAINER(hbox), entry); - ewl_object_alignment_set(EWL_OBJECT(entry), EWL_FLAG_ALIGN_RIGHT); - ewl_widget_name_set(entry, icon_theme_keys[i].key); - ewl_widget_show(entry); + eapp_create_content(ef, icon_theme_keys[i].key, icon_theme_keys[i].name, lang, + winclass, icon_theme); } for (i = 0; window_keys[i].key; i++) { - hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(window), hbox); - ewl_widget_show(hbox); - - v = eapp_eet_read(ef, window_keys[i].key, lang); - - if (!strcmp(window_keys[i].key, "app/window/class")) - { - if (winclass) v = winclass; - } - - label = ewl_label_new(); - ewl_label_text_set(EWL_LABEL(label), window_keys[i].name); - ewl_object_fill_policy_set(EWL_OBJECT(label), EWL_FLAG_FILL_NONE); - ewl_object_alignment_set(EWL_OBJECT(label), EWL_FLAG_ALIGN_LEFT); - ewl_container_child_append(EWL_CONTAINER(hbox), label); - ewl_object_minimum_size_set(EWL_OBJECT(label), 75, 15); - ewl_object_maximum_size_set(EWL_OBJECT(label), 75, 15); - ewl_widget_show(label); - - entry = ewl_entry_new(); - ewl_text_text_set(EWL_TEXT(entry), v); - ewl_object_maximum_size_set(EWL_OBJECT(entry), 99999, 8); - ewl_container_child_append(EWL_CONTAINER(hbox), entry); - ewl_object_alignment_set(EWL_OBJECT(entry), EWL_FLAG_ALIGN_RIGHT); - ewl_widget_name_set(entry, window_keys[i].key); - ewl_widget_show(entry); + eapp_create_content(ef, window_keys[i].key, window_keys[i].name, lang, winclass, window); } for (i = 0; misc_keys[i].key; i++) @@ -443,6 +330,63 @@ if (ef) eet_close(ef); return 1; +} + +Ewl_Widget * +eapp_border_get(Ewl_Widget *parent, char *title, char *align) +{ + Ewl_Widget *border; + + border = ewl_border_new(); + ewl_border_text_set(EWL_BORDER(border), title); + ewl_border_label_alignment_set(EWL_BORDER(border), EWL_FLAG_ALIGN_LEFT); + ewl_container_child_append(EWL_CONTAINER(parent), border); + ewl_widget_show(border); + if (strcmp(align, "left") == 0) + ewl_object_alignment_set(EWL_OBJECT(border), EWL_FLAG_ALIGN_LEFT); + else + ewl_object_alignment_set(EWL_OBJECT(border), EWL_FLAG_ALIGN_RIGHT); + + return border; +} + + +static void +eapp_create_content(Eet_File *ef, char *key, char *name, char *lang, char *winclass, + Ewl_Widget *parent) +{ + Ewl_Widget *hbox, *label, *entry; + char *v; + + hbox = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(parent), hbox); + ewl_widget_show(hbox); + + v = eapp_eet_read(ef, key, lang); + + if (!strcmp(key, "app/window/class")) + { + if (winclass) v = winclass; + } + + label = ewl_label_new(); + ewl_label_text_set(EWL_LABEL(label), name); + ewl_object_fill_policy_set(EWL_OBJECT(label), EWL_FLAG_FILL_NONE); + ewl_object_alignment_set(EWL_OBJECT(label), EWL_FLAG_ALIGN_LEFT); + ewl_container_child_append(EWL_CONTAINER(hbox), label); + ewl_object_minimum_size_set(EWL_OBJECT(label), 75, 15); + ewl_object_maximum_size_set(EWL_OBJECT(label), 75, 15); + ewl_widget_show(label); + + entry = ewl_entry_new(); + ewl_text_text_set(EWL_TEXT(entry), v); + ewl_object_maximum_size_set(EWL_OBJECT(entry), 99999, 8); + ewl_container_child_append(EWL_CONTAINER(hbox), entry); + ewl_object_alignment_set(EWL_OBJECT(entry), EWL_FLAG_ALIGN_RIGHT); + ewl_widget_name_set(entry, key); + ewl_widget_show(entry); + return; } static void _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs