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

Reply via email to