Enlightenment CVS committal Author : urandom Project : e17 Module : proto
Dir : e17/proto/edje_viewer/src/bin Modified Files: conf.c conf.h edje_etk.c edje_etk.h etk_gui.c etk_gui.h Log Message: more options for the masses 1 - open last file 2 - sort parts automatically =================================================================== RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/conf.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- conf.c 8 Jul 2006 14:43:31 -0000 1.3 +++ conf.c 8 Jul 2006 23:32:00 -0000 1.4 @@ -15,6 +15,8 @@ void edje_viewer_config_load(void) { ecore_config_int_default("/recent/count", 0); + ecore_config_int_default("/startup/open_last", 1); + ecore_config_int_default("/startup/sort_parts", 1); ecore_config_load(); } @@ -80,10 +82,10 @@ { FREE(key); FREE(new_path); - if (val) FREE(val); + FREE(val); return; } - if (val) FREE(val); + FREE(val); } count++; i = count; @@ -100,4 +102,59 @@ FREE(key); FREE(new_path); +} + +char *edje_viewer_config_last_get(void) +{ + return ecore_config_string_get("/recent/last"); +} + +void edje_viewer_config_last_set(const char *path) +{ + char *cwd, *new_path; + + if (!path) return; + + new_path = malloc(PATH_MAX); + if (!(path[0] == '/')) { + cwd = malloc(PATH_MAX); + getcwd(cwd, PATH_MAX); + + snprintf(new_path, PATH_MAX, "%s/%s", cwd, path); + + FREE(cwd); + } else { + new_path = strdup(path); + } + + + ecore_config_string_set("/recent/last", new_path); + + FREE(new_path); +} + +Etk_Bool edje_viewer_config_open_last_get(void) +{ + Etk_Bool check; + check = ecore_config_int_get("/startup/open_last"); + + return check; +} + +void edje_viewer_config_open_last_set(Etk_Bool check) +{ + ecore_config_int_set("/startup/open_last", check); +} + +Etk_Bool edje_viewer_config_sort_parts_get(void) +{ + Etk_Bool check; + check = ecore_config_int_get("/startup/sort_parts"); + + return check; +} + +void edje_viewer_config_sort_parts_set(Etk_Bool check) +{ + ecore_config_int_set("/startup/sort_parts", check); } =================================================================== RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/conf.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- conf.h 8 Jul 2006 14:43:31 -0000 1.2 +++ conf.h 8 Jul 2006 23:32:00 -0000 1.3 @@ -7,3 +7,11 @@ char *edje_viewer_config_recent_get(int number); void edje_viewer_config_recent_set(const char *path); + +char *edje_viewer_config_last_get(void); +void edje_viewer_config_last_set(const char *path); + +Etk_Bool edje_viewer_config_open_last_get(void); +void edje_viewer_config_open_last_set(Etk_Bool check); +Etk_Bool edje_viewer_config_sort_parts_get(void); +void edje_viewer_config_sort_parts_set(Etk_Bool check); =================================================================== RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/edje_etk.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- edje_etk.c 8 Jul 2006 14:43:31 -0000 1.7 +++ edje_etk.c 8 Jul 2006 23:32:00 -0000 1.8 @@ -124,6 +124,7 @@ Evas_List *collections = NULL; Etk_Tree_Col *col1; Etk_Tree_Row *row; + Etk_Bool sort_parts; entries = edje_file_collection_list(file); col1 = etk_tree_nth_col_get(tree, 0); @@ -152,11 +153,15 @@ } edje_file_collection_list_free(entries); edje_viewer_config_recent_set(file); + edje_viewer_config_last_set(file); + sort_parts = edje_viewer_config_sort_parts_get(); + if (sort_parts) + etk_tree_sort(tree, gui_part_col_sort_cb, ETK_TRUE, col1, NULL); } } Demo_Edje *edje_part_create(Etk_Tree *output, Etk_Canvas *canvas, - char *file, char *name) + const char *file, char *name) { Evas_Object *o; Demo_Edje *de; =================================================================== RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/edje_etk.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- edje_etk.h 8 Jul 2006 14:43:31 -0000 1.4 +++ edje_etk.h 8 Jul 2006 23:32:00 -0000 1.5 @@ -41,7 +41,7 @@ void list_entries(const char *file, Etk_Tree *tree, Etk_Tree *output, Etk_Canvas *canvas); Demo_Edje *edje_part_create(Etk_Tree *output, Etk_Canvas *canvas, - char *file, char *name); + const char *file, char *name); void edje_part_show(Etk_Widget *canvas, Demo_Edje *de); void edje_part_hide(Demo_Edje *de); void edje_part_resize(Demo_Edje *de); =================================================================== RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/etk_gui.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- etk_gui.c 8 Jul 2006 22:12:05 -0000 1.9 +++ etk_gui.c 8 Jul 2006 23:32:00 -0000 1.10 @@ -13,6 +13,8 @@ static void _gui_menu_item_selected_cb(Etk_Object *obj, void *data); static void _gui_menu_item_deselected_cb(Etk_Object *obj, void *data); static void _gui_menu_item_clicked_cb(Etk_Object *obj, void *data); +static void _gui_open_last_clicked_cb(Etk_Object *obj, void *data); +static void _gui_sort_parts_clicked_cb(Etk_Object *obj, void *data); static void _gui_fm_ok_clicked_cb(Etk_Object *obj, void *data); static void _gui_fm_cancel_clicked_cb(Etk_Object *obj, void *data); static Etk_Bool _gui_main_window_deleted_cb(void *data); @@ -20,8 +22,6 @@ static void _gui_tree_checkbox_toggled_cb(Etk_Object *obj, Etk_Tree_Row *row, void *data); static void _gui_send_clicked_cb(Etk_Object *obj, void *data); -static int _gui_part_col_sort_cb(Etk_Tree *tree, Etk_Tree_Row *row1, - Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); void main_window_show(char *file) { @@ -39,6 +39,7 @@ Etk_Widget *source_label, *source_entry; Etk_Widget *send_button; Etk_Widget *separator; + Etk_Bool check; int count, i; const char *recent; @@ -82,6 +83,25 @@ if (count == 0) _gui_menu_item_new(gui, _("No recent files"), ETK_MENU_SHELL(menu)); + /* Settings menu */ + menuitem = _gui_menubar_item_new(gui, _("Settings"), + ETK_MENU_SHELL(menubar)); + menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menuitem), ETK_MENU(menu)); + menuitem = etk_menu_item_check_new_with_label(_("Open Last")); + etk_menu_shell_append(ETK_MENU_SHELL(menu), ETK_MENU_ITEM(menuitem)); + etk_signal_connect("activated", ETK_OBJECT(menuitem), + ETK_CALLBACK(_gui_open_last_clicked_cb), gui); + check = edje_viewer_config_open_last_get(); + etk_menu_item_check_active_set(ETK_MENU_ITEM_CHECK(menuitem), check); + + menuitem = etk_menu_item_check_new_with_label(_("Sort parts")); + etk_menu_shell_append(ETK_MENU_SHELL(menu), ETK_MENU_ITEM(menuitem)); + etk_signal_connect("activated", ETK_OBJECT(menuitem), + ETK_CALLBACK(_gui_sort_parts_clicked_cb), gui); + check = edje_viewer_config_sort_parts_get(); + etk_menu_item_check_active_set(ETK_MENU_ITEM_CHECK(menuitem), check); + paned = etk_hpaned_new(); vpaned = etk_vpaned_new(); etk_box_pack_start(ETK_BOX(vbox), vpaned, ETK_TRUE, ETK_TRUE, 0); @@ -92,7 +112,7 @@ col = etk_tree_col_new(ETK_TREE(gui->tree), _("Part"), etk_tree_model_text_new(ETK_TREE(gui->tree)), 100); etk_tree_col_expand_set(col, ETK_TRUE); - etk_tree_col_sort_func_set(col, _gui_part_col_sort_cb, NULL); + etk_tree_col_sort_func_set(col, gui_part_col_sort_cb, NULL); col2 = etk_tree_col_new(ETK_TREE(gui->tree), _("Visibility"), etk_tree_model_checkbox_new(ETK_TREE(gui->tree)), 30); etk_tree_build(ETK_TREE(gui->tree)); @@ -146,8 +166,15 @@ bg_setup(ETK_CANVAS(gui->canvas)); etk_widget_show_all(gui->win); + check = edje_viewer_config_open_last_get(); if (file) list_entries(file, ETK_TREE(gui->tree), ETK_TREE(gui->output), ETK_CANVAS(gui->canvas)); + else if (check) + { + file = edje_viewer_config_last_get(); + list_entries(file, ETK_TREE(gui->tree), ETK_TREE(gui->output), + ETK_CANVAS(gui->canvas)); + } etk_signal_connect("delete_event", ETK_OBJECT(gui->win), ETK_CALLBACK(_gui_main_window_deleted_cb), NULL); etk_signal_connect("cell_value_changed", ETK_OBJECT(col2), @@ -263,6 +290,32 @@ ETK_CANVAS(gui->canvas)); } +static void _gui_open_last_clicked_cb(Etk_Object *obj, void *data) +{ + Etk_Menu_Item_Check *item; + Gui *gui; + Etk_Bool check; + + if (!(item = ETK_MENU_ITEM_CHECK(obj))) + return; + if (!(gui = data)) return; + check = etk_menu_item_check_active_get(item); + edje_viewer_config_open_last_set(check); +} + +static void _gui_sort_parts_clicked_cb(Etk_Object *obj, void *data) +{ + Etk_Menu_Item_Check *item; + Gui *gui; + Etk_Bool check; + + if (!(item = ETK_MENU_ITEM_CHECK(obj))) + return; + if (!(gui = data)) return; + check = etk_menu_item_check_active_get(item); + edje_viewer_config_sort_parts_set(check); +} + static Etk_Bool _gui_main_window_deleted_cb(void *data) { etk_main_quit(); @@ -378,7 +431,7 @@ } } -static int _gui_part_col_sort_cb +int gui_part_col_sort_cb (Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) { =================================================================== RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/etk_gui.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- etk_gui.h 2 Jul 2006 21:15:03 -0000 1.4 +++ etk_gui.h 8 Jul 2006 23:32:00 -0000 1.5 @@ -21,3 +21,5 @@ }; void main_window_show(char *file); +int gui_part_col_sort_cb(Etk_Tree *tree, Etk_Tree_Row *row1, + Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs