Enlightenment CVS committal

Author  : urandom
Project : e17
Module  : proto

Dir     : e17/proto/edje_viewer/src/bin


Modified Files:
        edje_etk.c edje_etk.h etk_gui.c etk_gui.h 


Log Message:
tree2->tree
tree search
more key bindings
fixed resize issues when parts are hidden and shown again

===================================================================
RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/edje_etk.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- edje_etk.c  16 Jan 2007 16:10:52 -0000      1.9
+++ edje_etk.c  17 Jan 2007 03:44:03 -0000      1.10
@@ -117,23 +117,23 @@
      }
 }
 
-void list_entries(const char *file, Etk_Tree2 *tree, Etk_Tree2 *output,
+void list_entries(const char *file, Etk_Tree *tree, Etk_Tree *output,
       Etk_Canvas *canvas)
 {
    Evas_List *entries;
    Evas_List *collections = NULL;
-   Etk_Tree2_Col *col1;
-   Etk_Tree2_Row *row;
+   Etk_Tree_Col *col1;
+   Etk_Tree_Row *row;
    Etk_Bool sort_parts;
 
    entries = edje_file_collection_list(file);
-   col1 = etk_tree2_nth_col_get(tree, 0);
+   col1 = etk_tree_nth_col_get(tree, 0);
 
    if (entries)
      {
        Evas_List *l;
 
-       etk_tree2_clear(tree);
+       etk_tree_clear(tree);
 
        for (l = entries; l; l = l->next)
          {
@@ -147,20 +147,20 @@
             co->file = strdup(file);
             co->part = strdup(name);
 
-            row = etk_tree2_row_append(tree, NULL, col1, name, NULL);
+            row = etk_tree_row_append(tree, NULL, col1, name, NULL);
             de = edje_part_create(output, canvas, file, name);
-            etk_tree2_row_data_set(row, de);
+            etk_tree_row_data_set(row, de);
          }
        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_tree2_col_sort_set(col1, gui_part_col_sort_cb, NULL);
+         etk_tree_col_sort_set(col1, gui_part_col_sort_cb, NULL);
      }
 }
 
-Demo_Edje *edje_part_create(Etk_Tree2 *output, Etk_Canvas *canvas, 
+Demo_Edje *edje_part_create(Etk_Tree *output, Etk_Canvas *canvas, 
       const char *file, char *name)
 {
    Evas_Object *o;
@@ -255,17 +255,13 @@
    return de;
 }
 
-void edje_part_show(Etk_Widget *canvas, Demo_Edje *de)
+void edje_part_show(Etk_Canvas *canvas, Demo_Edje *de)
 {
    Evas_Coord x, y, w, h, xx, yy, ww, hh, dx, dy, dw, dh;
 
-   etk_widget_geometry_get(canvas, &x, &y, &w, &h);
+   etk_widget_geometry_get(ETK_WIDGET(canvas), &x, &y, &w, &h);
    evas_object_geometry_get(de->image, &dx, &dy, &dw, &dh);
-   if (dx && dy && dw && dh)
-     {
-       edje_move_resize(de, dx, dy, dw, dh);
-     }
-   else
+   if (!dx || !dy || !dw || !dh)
      {
        xx = 10 + x;
        yy = 10 + y;
@@ -288,11 +284,20 @@
    evas_object_show(de->title);
    evas_object_show(de->edje);
 
+/*   etk_canvas_object_add(canvas, de->image);*/
+/*   etk_canvas_object_add(canvas, de->top);*/
+/*   etk_canvas_object_add(canvas, de->bottom);*/
+/*   etk_canvas_object_add(canvas, de->left);*/
+/*   etk_canvas_object_add(canvas, de->right);*/
+/*   etk_canvas_object_add(canvas, de->title_clip);*/
+/*   etk_canvas_object_add(canvas, de->title);*/
+/*   etk_canvas_object_add(canvas, de->edje);*/
+
    edje_part_resize(de);
    visible_elements = evas_list_append(visible_elements, de);
 }
 
-void edje_part_hide(Demo_Edje *de)
+void edje_part_hide(Etk_Canvas *canvas, Demo_Edje *de)
 {
    evas_object_hide(de->edje);
    evas_object_hide(de->left);
@@ -302,6 +307,16 @@
    evas_object_hide(de->image);
    evas_object_hide(de->title_clip);
    evas_object_hide(de->title);
+
+/*   etk_canvas_object_remove(canvas, de->image);*/
+/*   etk_canvas_object_remove(canvas, de->top);*/
+/*   etk_canvas_object_remove(canvas, de->bottom);*/
+/*   etk_canvas_object_remove(canvas, de->left);*/
+/*   etk_canvas_object_remove(canvas, de->right);*/
+/*   etk_canvas_object_remove(canvas, de->title_clip);*/
+/*   etk_canvas_object_remove(canvas, de->title);*/
+/*   etk_canvas_object_remove(canvas, de->edje);*/
+
    visible_elements = evas_list_remove(visible_elements, de);
 }
 
@@ -570,29 +585,29 @@
 static void signal_cb 
 (void *data, Evas_Object *o, const char *sig, const char *src)
 {
-   Etk_Tree2 *output;
-   Etk_Tree2_Col *col;
-   Etk_Tree2_Row *row;
+   Etk_Tree *output;
+   Etk_Tree_Col *col;
+   Etk_Tree_Row *row;
    int count;
    char *str;
 
    if (!(output = data)) return;
    
-   col = etk_tree2_nth_col_get(output, 0);
+   col = etk_tree_nth_col_get(output, 0);
    count = output->total_rows;
    if (count > 5000)
      {
-       row = etk_tree2_first_row_get(output);
-       etk_tree2_row_delete(row);
+       row = etk_tree_first_row_get(output);
+       etk_tree_row_delete(row);
      }
    
    str = calloc(1024, sizeof(char));
    snprintf(str, 1024, "CALLBACK for \"%s\" \"%s\"", sig, src);
 
 
-   row = etk_tree2_row_append(output, NULL, col, str, NULL);
-   etk_tree2_row_scroll_to(row, ETK_TRUE);
-   etk_tree2_row_select(row);
+   row = etk_tree_row_append(output, NULL, col, str, NULL);
+   etk_tree_row_scroll_to(row, ETK_TRUE);
+   etk_tree_row_select(row);
    if (!strcmp(sig, "drag"))
      {
        double x, y;
@@ -600,15 +615,15 @@
        count = output->total_rows;
        if (count > 5000)
          {
-            row = etk_tree2_first_row_get(output);
-            etk_tree2_row_delete(row);
+            row = etk_tree_first_row_get(output);
+            etk_tree_row_delete(row);
          }
 
        edje_object_part_drag_value_get(o, src, &x, &y);
        snprintf(str, 1024, "Drag %3.3f %3.3f", x, y);
-       etk_tree2_row_append(output, NULL, col, str, NULL);
-       etk_tree2_row_scroll_to(row, ETK_TRUE);
-       etk_tree2_row_select(row);
+       etk_tree_row_append(output, NULL, col, str, NULL);
+       etk_tree_row_scroll_to(row, ETK_TRUE);
+       etk_tree_row_select(row);
      }
 
    FREE(str);
@@ -618,28 +633,28 @@
 static void message_cb
 (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg)
 {
-   Etk_Tree2 *output;
-   Etk_Tree2_Col *col;
-   Etk_Tree2_Row *row;
+   Etk_Tree *output;
+   Etk_Tree_Col *col;
+   Etk_Tree_Row *row;
    int count;
    char *str;
 
    if (!(output = data)) return;
    
-   col = etk_tree2_nth_col_get(output, 0);
+   col = etk_tree_nth_col_get(output, 0);
    count = output->total_rows;
    if (count > 5000)
      {
-       row = etk_tree2_first_row_get(output);
-       etk_tree2_row_delete(row);
+       row = etk_tree_first_row_get(output);
+       etk_tree_row_delete(row);
      }
    
    str = calloc(1024, sizeof(char));
    snprintf(str, 1024, "MESSAGE for %p from script type %i id %i", obj, type, 
id);
 
-   row = etk_tree2_row_append(output, NULL, col, str, NULL);
-   etk_tree2_row_scroll_to(row, ETK_TRUE);
-   etk_tree2_row_select(row);
+   row = etk_tree_row_append(output, NULL, col, str, NULL);
+   etk_tree_row_scroll_to(row, ETK_TRUE);
+   etk_tree_row_select(row);
    if (type == EDJE_MESSAGE_STRING)
      {
        Edje_Message_String *emsg;
@@ -647,15 +662,15 @@
        count = output->total_rows;
        if (count > 5000)
          {
-            row = etk_tree2_first_row_get(output);
-            etk_tree2_row_delete(row);
+            row = etk_tree_first_row_get(output);
+            etk_tree_row_delete(row);
          }
 
        emsg = (Edje_Message_String *)msg;
        snprintf(str, 1024, "STWING: \"%s\"\n", emsg->str);
-       row = etk_tree2_row_append(output, NULL, col, str, NULL);
-       etk_tree2_row_scroll_to(row, ETK_TRUE);
-       etk_tree2_row_select(row);
+       row = etk_tree_row_append(output, NULL, col, str, NULL);
+       etk_tree_row_scroll_to(row, ETK_TRUE);
+       etk_tree_row_select(row);
      }
    edje_object_message_send(obj, EDJE_MESSAGE_NONE, 12345, NULL);
 
===================================================================
RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/edje_etk.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- edje_etk.h  16 Jan 2007 16:10:52 -0000      1.6
+++ edje_etk.h  17 Jan 2007 03:44:03 -0000      1.7
@@ -38,12 +38,12 @@
 void bg_setup(Etk_Canvas *canvas);
 void canvas_resize_cb(Etk_Object *canvas, const char *property_name, 
        void *data);
-void list_entries(const char *file, Etk_Tree2 *tree, Etk_Tree2 *output, 
+void list_entries(const char *file, Etk_Tree *tree, Etk_Tree *output, 
        Etk_Canvas *canvas);
-Demo_Edje *edje_part_create(Etk_Tree2 *output, Etk_Canvas *canvas,
+Demo_Edje *edje_part_create(Etk_Tree *output, Etk_Canvas *canvas,
        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_show(Etk_Canvas *canvas, Demo_Edje *de);
+void edje_part_hide(Etk_Canvas *canvas, 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.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- etk_gui.c   16 Jan 2007 16:10:52 -0000      1.14
+++ etk_gui.c   17 Jan 2007 03:44:03 -0000      1.15
@@ -10,16 +10,22 @@
        Etk_Stock_Id stock_id, Etk_Menu_Shell *menu_shell);
 static Etk_Widget *_gui_menu_item_new(Gui *gui, const char *label,
       Etk_Menu_Shell *menu_shell);
+
+static Etk_Bool _gui_tree_search(Gui *gui, Tree_Search direction);
+
 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_tree_key_down_cb(Etk_Object *object, Etk_Event_Key_Down 
*event, void *data);
+static void _gui_search_entry_key_down_cb(Etk_Object *object, 
Etk_Event_Key_Down *event, void *data);
+static void _gui_search_entry_text_changed_cb(Etk_Entry *entry, 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);
 static void _gui_open_edje_file_cb(Gui *gui);
-static void _gui_tree_checkbox_toggled_cb(Etk_Object *obj, Etk_Tree2_Row *row,
+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);
 
@@ -32,8 +38,7 @@
    Etk_Widget *vbox;
    Etk_Widget *paned;
    Etk_Widget *vpaned;
-   Etk_Widget *scrollview;
-   Etk_Tree2_Col *col, *col2;
+   Etk_Tree_Col *col, *col2;
    Etk_Widget *hbox;
    Etk_Widget *signal_label, *signal_entry;
    Etk_Widget *source_label, *source_entry;
@@ -46,11 +51,20 @@
 
    gui = calloc(1, sizeof(Gui));
    gui->win = etk_window_new();
+   gui->popup = ETK_POPUP_WINDOW(etk_widget_new(ETK_POPUP_WINDOW_TYPE, 
"theme_group", "window", NULL));
    etk_window_title_set(ETK_WINDOW(gui->win), _(WINDOW_TITLE));
    etk_window_wmclass_set(ETK_WINDOW(gui->win), "edje_viewer", "Edje_viewer");
    etk_container_border_width_set(ETK_CONTAINER(gui->win), 0);
    etk_window_resize(ETK_WINDOW(gui->win), WINDOW_WIDTH, WINDOW_HEIGHT);
 
+   gui->search_entry = etk_entry_new();
+   etk_container_add(ETK_CONTAINER(gui->popup), gui->search_entry);
+   etk_widget_show(gui->search_entry);
+   etk_signal_connect("key_down", ETK_OBJECT(gui->search_entry), 
+        ETK_CALLBACK(_gui_search_entry_key_down_cb), gui);
+   etk_signal_connect("text_changed", ETK_OBJECT(gui->search_entry), 
+        ETK_CALLBACK(_gui_search_entry_text_changed_cb), gui);
+
    vbox = etk_vbox_new(ETK_FALSE, 0);
    etk_container_add(ETK_CONTAINER(gui->win), vbox);
 
@@ -107,33 +121,31 @@
    etk_box_append(ETK_BOX(vbox), vpaned, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 
0);
    etk_paned_child1_set(ETK_PANED(vpaned), paned, ETK_TRUE);
 
-   gui->tree = etk_tree2_new();
-   etk_tree2_headers_visible_set(ETK_TREE2(gui->tree), ETK_TRUE);
-   col = etk_tree2_col_new(ETK_TREE2(gui->tree), _("Part"), 80, 0.0);
-   etk_tree2_col_model_add(col, etk_tree2_model_text_new());
-   etk_tree2_col_expand_set(col, ETK_TRUE);
-   etk_tree2_col_sort_set(col, gui_part_col_sort_cb, NULL);
-   col2 = etk_tree2_col_new(ETK_TREE2(gui->tree), _("Visibility"), 60, 0.0);
-   etk_tree2_col_model_add(col2, etk_tree2_model_checkbox_new());
-   etk_tree2_build(ETK_TREE2(gui->tree));
+   gui->tree = etk_tree_new();
+   etk_tree_headers_visible_set(ETK_TREE(gui->tree), ETK_TRUE);
+   col = etk_tree_col_new(ETK_TREE(gui->tree), _("Part"), 80, 0.0);
+   etk_tree_col_model_add(col, etk_tree_model_text_new());
+   etk_tree_col_expand_set(col, ETK_TRUE);
+   etk_tree_col_sort_set(col, gui_part_col_sort_cb, NULL);
+   col2 = etk_tree_col_new(ETK_TREE(gui->tree), _("Visibility"), 60, 0.0);
+   etk_tree_col_model_add(col2, etk_tree_model_checkbox_new());
+   etk_tree_build(ETK_TREE(gui->tree));
    etk_widget_size_request_set(gui->tree, 300, 0);
+   etk_signal_connect("key_down", ETK_OBJECT(gui->tree), 
ETK_CALLBACK(_gui_tree_key_down_cb), gui);
    etk_paned_child1_set(ETK_PANED(paned), gui->tree, ETK_FALSE);
 
-   scrollview = etk_scrolled_view_new();
-   etk_paned_child2_set(ETK_PANED(paned), scrollview, ETK_TRUE);
    gui->canvas = etk_canvas_new();
    etk_widget_size_request_set(gui->canvas, 500, 500);
    etk_object_notification_callback_add(ETK_OBJECT(gui->canvas), "geometry",
         canvas_resize_cb, NULL);
-   etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(scrollview),
-        gui->canvas);
+   etk_paned_child2_set(ETK_PANED(paned), gui->canvas, ETK_TRUE);
 
-   gui->output = etk_tree2_new();
-   etk_tree2_headers_visible_set(ETK_TREE2(gui->output), ETK_TRUE);
-   col = etk_tree2_col_new(ETK_TREE2(gui->output), _("Output"), 200, 0.0);
-   etk_tree2_col_model_add(col, etk_tree2_model_text_new());
-   etk_tree2_col_expand_set(col, ETK_TRUE);
-   etk_tree2_build(ETK_TREE2(gui->output));
+   gui->output = etk_tree_new();
+   etk_tree_headers_visible_set(ETK_TREE(gui->output), ETK_TRUE);
+   col = etk_tree_col_new(ETK_TREE(gui->output), _("Output"), 200, 0.0);
+   etk_tree_col_model_add(col, etk_tree_model_text_new());
+   etk_tree_col_expand_set(col, ETK_TRUE);
+   etk_tree_build(ETK_TREE(gui->output));
    etk_widget_size_request_set(gui->output, 0, 100);
    etk_paned_child2_set(ETK_PANED(vpaned), gui->output, ETK_FALSE);
 
@@ -167,14 +179,14 @@
    etk_widget_show_all(gui->win);
 
    check = edje_viewer_config_open_last_get();
-   if (file) list_entries(file, ETK_TREE2(gui->tree), ETK_TREE2(gui->output),
+   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();
        if (file)
          {
-            list_entries(file, ETK_TREE2(gui->tree), ETK_TREE2(gui->output),
+            list_entries(file, ETK_TREE(gui->tree), ETK_TREE(gui->output),
                   ETK_CANVAS(gui->canvas));
             etk_window_title_set(ETK_WINDOW(gui->win), file);
          }
@@ -251,6 +263,56 @@
 
 }
 
+static Etk_Bool _gui_tree_search(Gui *gui, Tree_Search direction)
+{
+   Etk_Tree_Row *row, *current;
+   const char *search_text, *col_text;
+
+   search_text = etk_entry_text_get(ETK_ENTRY(gui->search_entry));
+   current = etk_tree_selected_row_get(ETK_TREE(gui->tree));
+
+   if (direction == TREE_SEARCH_START)
+     for (row = etk_tree_first_row_get(ETK_TREE(gui->tree)); row; 
+          row = etk_tree_row_next_get(row))
+       {
+         etk_tree_row_fields_get(row, 
+               etk_tree_nth_col_get(ETK_TREE(gui->tree), 0), &col_text, NULL);
+         if (strstr (col_text, search_text) != NULL)
+           {
+              etk_tree_row_scroll_to(row, ETK_TRUE);
+              etk_tree_row_select(row);
+              return ETK_TRUE;
+           }
+       }
+   else if (direction == TREE_SEARCH_NEXT)
+     for (row = etk_tree_row_next_get(current);
+          row; row = etk_tree_row_next_get(row))
+       {
+         etk_tree_row_fields_get(row, 
+               etk_tree_nth_col_get(ETK_TREE(gui->tree), 0), &col_text, NULL);
+         if (strstr (col_text, search_text) != NULL)
+           {
+              etk_tree_row_scroll_to(row, ETK_TRUE);
+              etk_tree_row_select(row);
+              return ETK_TRUE;
+           }
+       }
+   else if (direction == TREE_SEARCH_PREV)
+     for (row = etk_tree_row_prev_get(current);
+          row; row = etk_tree_row_prev_get(row))
+       {
+         etk_tree_row_fields_get(row, 
+               etk_tree_nth_col_get(ETK_TREE(gui->tree), 0), &col_text, NULL);
+         if (strstr (col_text, search_text) != NULL)
+           {
+              etk_tree_row_scroll_to(row, ETK_TRUE);
+              etk_tree_row_select(row);
+              return ETK_TRUE;
+           }
+       }
+   return ETK_FALSE;    
+}
+
 static void _gui_menu_item_selected_cb(Etk_Object *obj, void *data)
 {
    Etk_Menu_Item *item;
@@ -290,7 +352,7 @@
    else if (!strcmp(label, "Open"))
      _gui_open_edje_file_cb(gui);
    else if (strstr(label, ".edj"))
-     list_entries(label, ETK_TREE2(gui->tree), ETK_TREE2(gui->output),
+     list_entries(label, ETK_TREE(gui->tree), ETK_TREE(gui->output),
           ETK_CANVAS(gui->canvas));
 }
 
@@ -320,6 +382,95 @@
    edje_viewer_config_sort_parts_set(check);
 }
 
+static void _gui_tree_key_down_cb(Etk_Object *object, Etk_Event_Key_Down 
*event, void *data)
+{
+   Gui *gui;
+   int wx, wy, x, y, w, h;
+
+   if (!(gui = data))
+     return;
+
+   if (!strcmp(event->key, "Return") || !strcmp(event->key, "KP_Enter") || 
!strcmp(event->keyname, "space"))
+     {
+       Etk_Tree_Row *row;
+       Etk_Tree_Col *col;
+       Etk_Bool checked;
+
+       row = etk_tree_selected_row_get(ETK_TREE(gui->tree));
+       col = etk_tree_nth_col_get(ETK_TREE(gui->tree), 1);
+       etk_tree_row_fields_get(row, col, &checked, NULL);
+       checked = checked ? ETK_FALSE : ETK_TRUE;
+       etk_tree_row_fields_set(row, ETK_TRUE, col, checked, NULL);
+
+       return;
+     }
+
+   if (!strlen(event->string) || !strcmp(event->key, "Tab") || 
!strcmp(event->key, "Escape") 
+        || !(event->modifiers == ETK_MODIFIER_NONE || event->modifiers == 
ETK_MODIFIER_SHIFT))
+     return;
+
+   etk_widget_geometry_get(gui->tree, &x, &y, &w, &h);
+   etk_window_geometry_get(ETK_WINDOW(gui->win), &wx, &wy, NULL, NULL);
+   etk_popup_window_popup_at_xy(gui->popup, wx + x + w/2, wy + y + h);
+   etk_widget_focus(gui->search_entry);
+   etk_entry_text_set(ETK_ENTRY(gui->search_entry), event->string);
+}
+
+static void _gui_search_entry_key_down_cb(Etk_Object *object, 
Etk_Event_Key_Down *event, void *data)
+{
+   Gui *gui;
+
+   if (!(gui = data))
+     return;
+
+   if (event->modifiers & ETK_MODIFIER_CTRL)
+     {
+       if (!strcmp(event->keyname, "g"))
+         _gui_tree_search(gui, TREE_SEARCH_NEXT);
+     }
+   else if (!strcmp(event->key, "Return") || !strcmp(event->key, "KP_Enter"))
+     {
+       Etk_Tree_Row *row;
+       Etk_Tree_Col *col;
+       Etk_Bool checked;
+
+       row = etk_tree_selected_row_get(ETK_TREE(gui->tree));
+       col = etk_tree_nth_col_get(ETK_TREE(gui->tree), 1);
+       etk_tree_row_fields_get(row, col, &checked, NULL);
+       checked = checked ? ETK_FALSE : ETK_TRUE;
+       etk_tree_row_fields_set(row, ETK_TRUE, col, checked, NULL);
+
+       etk_widget_focus(gui->tree);
+       etk_popup_window_popdown(gui->popup);
+     }
+   else if (!strcmp(event->key, "Escape"))
+     {
+       etk_widget_focus(gui->tree);
+       etk_popup_window_popdown(gui->popup);
+     }
+   else if (!strcmp(event->keyname, "Up"))
+     _gui_tree_search(gui, TREE_SEARCH_PREV);
+   else if (!strcmp(event->keyname, "Down"))
+     _gui_tree_search(gui, TREE_SEARCH_NEXT);
+}
+
+static void _gui_search_entry_text_changed_cb(Etk_Entry *entry, void *data)
+{
+   Gui *gui;
+   Evas_Object *editable;
+   int cursor_pos;
+
+   if (!(gui = data))
+     return;
+
+   if (!_gui_tree_search(gui, TREE_SEARCH_START))
+     {
+       editable = ETK_ENTRY(gui->search_entry)->editable_object;
+       cursor_pos = etk_editable_cursor_pos_get(editable);
+       etk_editable_delete(editable, cursor_pos - 1, cursor_pos);
+     }
+}
+
 static Etk_Bool _gui_main_window_deleted_cb(void *data)
 {
    etk_main_quit();
@@ -380,7 +531,7 @@
    gui->path = strdup(dir);
    gui->path = strcat(gui->path, "/");
    gui->path = strcat(gui->path, file);
-   list_entries(gui->path, ETK_TREE2(gui->tree), ETK_TREE2(gui->output),
+   list_entries(gui->path, ETK_TREE(gui->tree), ETK_TREE(gui->output),
         ETK_CANVAS(gui->canvas));
    etk_window_hide_on_delete(ETK_OBJECT(gui->fm_dialog), NULL);
    etk_window_title_set(ETK_WINDOW(gui->win), gui->path);
@@ -395,23 +546,23 @@
    etk_window_hide_on_delete(ETK_OBJECT(gui->fm_dialog), NULL);
 }
 
-static void _gui_tree_checkbox_toggled_cb(Etk_Object *obj, Etk_Tree2_Row *row,
+static void _gui_tree_checkbox_toggled_cb(Etk_Object *obj, Etk_Tree_Row *row,
       void *data)
 {
    Demo_Edje *de;
    Etk_Bool checked;
-   Etk_Tree2_Col *col;
+   Etk_Tree_Col *col;
    Gui *gui;
 
-   if (!(de = etk_tree2_row_data_get(row))) return;
-   if (!(col = ETK_TREE2_COL(obj)) || !row) return;
+   if (!(de = etk_tree_row_data_get(row))) return;
+   if (!(col = ETK_TREE_COL(obj)) || !row) return;
    if (!(gui = data)) return;
 
-   etk_tree2_row_fields_get(row, col, &checked, NULL);
+   etk_tree_row_fields_get(row, col, &checked, NULL);
    if (checked)
-     edje_part_show(gui->canvas, de);
+     edje_part_show(ETK_CANVAS(gui->canvas), de);
    else
-     edje_part_hide(de);
+     edje_part_hide(ETK_CANVAS(gui->canvas), de);
 }
 
 static void _gui_send_clicked_cb(Etk_Object *obj, void *data)
@@ -437,7 +588,7 @@
 }
 
 int gui_part_col_sort_cb
-(Etk_Tree2 *tree, Etk_Tree2_Row *row1, Etk_Tree2_Row *row2, Etk_Tree2_Col *col,
+(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col,
  void *data)
 {
    char *row1_value, *row2_value;
@@ -445,8 +596,8 @@
    if (!tree || !row1 || !row2 || !col)
       return 0;
 
-   etk_tree2_row_fields_get(row1, col, &row1_value, NULL);
-   etk_tree2_row_fields_get(row2, col, &row2_value, NULL);
+   etk_tree_row_fields_get(row1, col, &row1_value, NULL);
+   etk_tree_row_fields_get(row2, col, &row2_value, NULL);
 
    if (strcmp(row1_value, row2_value) < 0)
       return -1;
===================================================================
RCS file: /cvs/e/e17/proto/edje_viewer/src/bin/etk_gui.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- etk_gui.h   16 Jan 2007 16:10:52 -0000      1.6
+++ etk_gui.h   17 Jan 2007 03:44:03 -0000      1.7
@@ -2,8 +2,16 @@
 #define WINDOW_WIDTH 800
 #define WINDOW_HEIGHT 600
 
+typedef enum _Tree_Search Tree_Search;
 typedef struct _Gui Gui;
 
+enum _Tree_Search
+{
+    TREE_SEARCH_START = 1,
+    TREE_SEARCH_NEXT,
+    TREE_SEARCH_PREV,
+};
+
 struct _Gui
 {
    Etk_Widget *win;
@@ -17,9 +25,12 @@
    Etk_Widget *fm_dialog;
    Etk_Widget *fm_chooser;
 
+   Etk_Popup_Window *popup;
+   Etk_Widget *search_entry;
+
    char *path;
 };
 
 void main_window_show(char *file);
-int gui_part_col_sort_cb(Etk_Tree2 *tree, Etk_Tree2_Row *row1,
-      Etk_Tree2_Row *row2, Etk_Tree2_Col *col, void *data);
+int gui_part_col_sort_cb(Etk_Tree *tree, Etk_Tree_Row *row1,
+      Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data);



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to