Enlightenment CVS committal

Author  : moom
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/lib


Modified Files:
        etk_button.c etk_combobox.c etk_frame.c etk_iconbox.c 
        etk_menu.c etk_menu.h etk_menu_item.c etk_menu_item.h 
        etk_notebook.c etk_popup_window.c etk_statusbar.c 
        etk_toggle_button.c etk_tree.c etk_widget.c etk_widget.h 
        etk_window.c etk_window.h 


Log Message:
* [Menu] Fix a problem of min size calculation


===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_button.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- etk_button.c        24 Aug 2006 18:09:16 -0000      1.28
+++ etk_button.c        4 Sep 2006 12:51:42 -0000       1.29
@@ -515,7 +515,7 @@
       return;
    
    if (button->is_pressed)
-      etk_widget_theme_signal_emit(ETK_WIDGET(button), "pressed");
+      etk_widget_theme_signal_emit(ETK_WIDGET(button), "pressed", ETK_FALSE);
 }
 
 /* Called when the image is removed from the box */
@@ -605,7 +605,7 @@
 {
    if (!button)
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(button), "pressed");
+   etk_widget_theme_signal_emit(ETK_WIDGET(button), "pressed", ETK_FALSE);
 }
 
 /* Default handler for the "released" signal */
@@ -613,7 +613,7 @@
 {
    if (!button)
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(button), "released");
+   etk_widget_theme_signal_emit(ETK_WIDGET(button), "released", ETK_FALSE);
 }
 
 /* Default handler for the "clicked" signal */
@@ -621,7 +621,7 @@
 {
    if (!button)
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(button), "clicked");
+   etk_widget_theme_signal_emit(ETK_WIDGET(button), "clicked", ETK_FALSE);
 }
 
 /* Creates the children of the button */
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_combobox.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- etk_combobox.c      24 Aug 2006 18:09:16 -0000      1.27
+++ etk_combobox.c      4 Sep 2006 12:51:42 -0000       1.28
@@ -1020,7 +1020,7 @@
    
    if (!(combobox = ETK_COMBOBOX(widget)))
       return;
-   etk_widget_theme_signal_emit(combobox->button, "focus");
+   etk_widget_theme_signal_emit(combobox->button, "focus", ETK_FALSE);
 }
 
 /* Default handler for the "unfocus" handler */
@@ -1030,7 +1030,7 @@
    
    if (!(combobox = ETK_COMBOBOX(widget)))
       return;
-   etk_widget_theme_signal_emit(combobox->button, "unfocus");
+   etk_widget_theme_signal_emit(combobox->button, "unfocus", ETK_FALSE);
 }
 
 /* Called when the combobox is realized */
@@ -1245,12 +1245,12 @@
    
    if (combobox->selected_item)
    {
-      etk_widget_theme_signal_emit(ETK_WIDGET(combobox->selected_item), 
"unselect");
+      etk_widget_theme_signal_emit(ETK_WIDGET(combobox->selected_item), 
"unselect", ETK_FALSE);
       combobox->selected_item = NULL;
    }
    if (item)
    {
-      etk_widget_theme_signal_emit(ETK_WIDGET(item), "select");
+      etk_widget_theme_signal_emit(ETK_WIDGET(item), "select", ETK_FALSE);
       combobox->selected_item = item;
    }
 }
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_frame.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_frame.c 13 Aug 2006 22:42:23 -0000      1.10
+++ etk_frame.c 4 Sep 2006 12:51:42 -0000       1.11
@@ -83,12 +83,12 @@
       if (!frame->label || *frame->label == '\0')
       {
          etk_widget_theme_part_text_set(ETK_WIDGET(frame), "label", "");
-         etk_widget_theme_signal_emit(ETK_WIDGET(frame), "hide_label");
+         etk_widget_theme_signal_emit(ETK_WIDGET(frame), "hide_label", 
ETK_TRUE);
       }
       else
       {
          etk_widget_theme_part_text_set(ETK_WIDGET(frame), "label", 
frame->label);
-         etk_widget_theme_signal_emit(ETK_WIDGET(frame), "show_label");
+         etk_widget_theme_signal_emit(ETK_WIDGET(frame), "show_label", 
ETK_TRUE);
       }
    }
 }
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_iconbox.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- etk_iconbox.c       26 Aug 2006 09:38:06 -0000      1.14
+++ etk_iconbox.c       4 Sep 2006 12:51:42 -0000       1.15
@@ -1411,7 +1411,7 @@
    label_geometry.h = model->label_height;
    
    etk_label_set(ETK_LABEL(icon_object->label), icon->label);
-   etk_widget_theme_signal_emit(icon_object->label, icon->selected ? "select" 
: "unselect");
+   etk_widget_theme_signal_emit(icon_object->label, icon->selected ? "select" 
: "unselect", ETK_FALSE);
    
    if (clip && grid->clip)
       etk_widget_clip_set(icon_object->label, grid->clip);
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_menu.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- etk_menu.c  3 Sep 2006 22:29:03 -0000       1.20
+++ etk_menu.c  4 Sep 2006 12:51:42 -0000       1.21
@@ -192,8 +192,6 @@
       size->w = ETK_MAX(size->w, child_size.w);
       size->h += child_size.h;
    }
-   /* TODO: FIXME: incorrect calculated width */
-   size->w += 15;
 }
 
 /* Resizes the menu to the allocated size */
@@ -224,11 +222,12 @@
       item = ETK_MENU_ITEM(l->data);
    
       if (items_have_submenu)
-         etk_widget_theme_signal_emit(ETK_WIDGET(item), item->submenu ? 
"arrow_show" : "arrow_spacer");
+         etk_widget_theme_signal_emit(ETK_WIDGET(item), item->submenu ? 
"arrow_show" : "arrow_spacer", ETK_TRUE);
       else
-         etk_widget_theme_signal_emit(ETK_WIDGET(item), "arrow_hide");
+         etk_widget_theme_signal_emit(ETK_WIDGET(item), "arrow_hide", 
ETK_TRUE);
       
-      etk_widget_theme_signal_emit(ETK_WIDGET(item), items_have_left_widget ? 
"left_widget_show" : "left_widget_hide");
+      etk_widget_theme_signal_emit(ETK_WIDGET(item),
+         items_have_left_widget ? "left_widget_show" : "left_widget_hide", 
ETK_TRUE);
    }
    
    y_offset = geometry.y;
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_menu.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- etk_menu.h  3 Sep 2006 22:29:03 -0000       1.8
+++ etk_menu.h  4 Sep 2006 12:51:42 -0000       1.9
@@ -7,12 +7,9 @@
 #include "etk_types.h"
 
 /* TODO/FIXME list:
- * - Sometimes, when the menu is popped down, the window stay visible, but its 
content is hidden (e17 bug probably)
- * - The width of the menu window is not correctly calculated. Probably a bug 
of edje_object_size_min_calc().
- * For now, 15 pixels are manually added to the calculated width
  * - Keyboard navigation!
  * - better theme grouping?
- * - Sometimes the menu is not popped up at the right place (probably a bug ot 
Etk_Popup_Window)
+ * - Sometimes an item is selected when the menu is popped up. Probably a bug 
in Etk_Popup_Window's feeding code
  */
 
 /**
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_menu_item.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- etk_menu_item.c     3 Sep 2006 18:36:11 -0000       1.23
+++ etk_menu_item.c     4 Sep 2006 12:51:42 -0000       1.24
@@ -222,9 +222,9 @@
       ETK_MENU_SHELL(menu_item->submenu)->parent = menu_item;
    
    if (menu_item->submenu)
-      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "arrow_show");
+      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "arrow_show", 
ETK_TRUE);
    else if (!menu_item->submenu)
-      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "arrow_hide");
+      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "arrow_hide", 
ETK_TRUE);
    
    etk_widget_size_recalc_queue(ETK_WIDGET(menu_item));
    etk_object_notify(ETK_OBJECT(menu_item), "submenu");
@@ -402,10 +402,10 @@
       etk_widget_pass_mouse_events_set(menu_item->left_widget, ETK_TRUE);
       
       etk_widget_swallow_widget(ETK_WIDGET(menu_item), "left_widget_swallow", 
image_widget);
-      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "left_widget_show");
+      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "left_widget_show", 
ETK_TRUE);
    }
    else
-      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "left_widget_hide");
+      etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "left_widget_hide", 
ETK_TRUE);
    
    etk_widget_size_recalc_queue(ETK_WIDGET(menu_item));
 }
@@ -669,8 +669,8 @@
    etk_widget_parent_set(menu_item->left_widget, ETK_WIDGET(menu_item));
    etk_widget_swallow_widget(ETK_WIDGET(menu_item), "left_widget_swallow", 
menu_item->left_widget);
    
-   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "left_widget_show");
-   etk_widget_theme_signal_emit(menu_item->left_widget, check_item->active ? 
"check" : "uncheck");
+   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "left_widget_show", 
ETK_TRUE);
+   etk_widget_theme_signal_emit(menu_item->left_widget, check_item->active ? 
"check" : "uncheck", ETK_FALSE);
    
    etk_signal_connect("realize", ETK_OBJECT(menu_item->left_widget),
       ETK_CALLBACK(_etk_menu_item_check_box_realize_cb), menu_item);
@@ -879,7 +879,7 @@
    if (!(menu_item = ETK_MENU_ITEM(data)) || !menu_item->left_widget)
       return;
    etk_widget_theme_signal_emit(menu_item->left_widget,
-      ETK_MENU_ITEM_CHECK(menu_item)->active ? "check" : "uncheck");
+      ETK_MENU_ITEM_CHECK(menu_item)->active ? "check" : "uncheck", ETK_FALSE);
 }
 
 /* Called when the check item is activated */
@@ -897,8 +897,8 @@
 {
    if (!menu_item)
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "select");
-   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item->left_widget), "select");
+   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "select", ETK_FALSE);
+   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item->left_widget), "select", 
ETK_FALSE);
 }
 
 /* Default handler for the "deselected" signal */
@@ -906,8 +906,8 @@
 {
    if (!menu_item)
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "deselect");
-   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item->left_widget), 
"deselect");
+   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "deselect", ETK_FALSE);
+   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item->left_widget), 
"deselect", ETK_FALSE);
 }
 
 /* Default handler for the "activated" signal */
@@ -915,8 +915,8 @@
 {
    if (!menu_item)
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "activate");
-   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item->left_widget), 
"activate");
+   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item), "activate", ETK_FALSE);
+   etk_widget_theme_signal_emit(ETK_WIDGET(menu_item->left_widget), 
"activate", ETK_FALSE);
 }
 
 /* Default handler for the "toggled" signal */
@@ -925,7 +925,7 @@
    if (check_item && ETK_MENU_ITEM(check_item)->left_widget)
    {
       etk_widget_theme_signal_emit(ETK_MENU_ITEM(check_item)->left_widget,
-         check_item->active ? "check" : "uncheck");
+         check_item->active ? "check" : "uncheck", ETK_FALSE);
    }
 }
 
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_menu_item.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- etk_menu_item.h     3 Sep 2006 18:36:11 -0000       1.13
+++ etk_menu_item.h     4 Sep 2006 12:51:42 -0000       1.14
@@ -5,10 +5,6 @@
 #include "etk_container.h"
 #include "etk_types.h"
 #include "etk_stock.h"
-
-/* TODO/FIXME list:
- * - Fix the calc of width of the item!
- */
  
 /**
  * @defgroup Etk_Menu_Item Etk_Menu_Item
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_notebook.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- etk_notebook.c      24 Aug 2006 18:09:16 -0000      1.31
+++ etk_notebook.c      4 Sep 2006 12:51:42 -0000       1.32
@@ -739,7 +739,7 @@
       return;
    
    if (notebook->current_page)
-      etk_widget_theme_signal_emit(notebook->current_page->tab, "focus");
+      etk_widget_theme_signal_emit(notebook->current_page->tab, "focus", 
ETK_FALSE);
    notebook->tab_bar_focused = ETK_TRUE;
 }
 
@@ -752,7 +752,7 @@
       return;
    
    if (notebook->current_page)
-      etk_widget_theme_signal_emit(notebook->current_page->tab, "unfocus");
+      etk_widget_theme_signal_emit(notebook->current_page->tab, "unfocus", 
ETK_FALSE);
    notebook->tab_bar_focused = ETK_FALSE;
 }
 
@@ -878,7 +878,7 @@
    {
       etk_widget_hide(notebook->current_page->frame);
       if (notebook->tab_bar_focused)
-         etk_widget_theme_signal_emit(notebook->current_page->tab, "unfocus");
+         etk_widget_theme_signal_emit(notebook->current_page->tab, "unfocus", 
ETK_FALSE);
    }
    
    ETK_WIDGET(notebook)->focus_order = 
evas_list_free(ETK_WIDGET(notebook)->focus_order);
@@ -892,7 +892,7 @@
    etk_widget_raise(page->tab);
    
    if (notebook->tab_bar_focused)
-      etk_widget_theme_signal_emit(page->tab, "focus");
+      etk_widget_theme_signal_emit(page->tab, "focus", ETK_FALSE);
    
    notebook->current_page = page;
    etk_signal_emit(_etk_notebook_signals[ETK_NOTEBOOK_PAGE_CHANGED_SIGNAL], 
ETK_OBJECT(notebook), NULL);
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_popup_window.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_popup_window.c  3 Sep 2006 22:29:03 -0000       1.10
+++ etk_popup_window.c  4 Sep 2006 12:51:42 -0000       1.11
@@ -33,6 +33,7 @@
 
 static void _etk_popup_window_constructor(Etk_Popup_Window *popup_window);
 
+static void _etk_popup_window_size_request_cb(Etk_Object *object, Etk_Size 
*requested_size, void *data);
 static void _etk_popup_window_key_down_cb(Etk_Event_Global event_info, void 
*data);
 static void _etk_popup_window_key_up_cb(Etk_Event_Global event_info, void 
*data);
 static void _etk_popup_window_mouse_move_cb(Etk_Event_Global event_info, void 
*data);
@@ -241,8 +242,6 @@
    etk_popup_window_focused_window_set(popup_window);
    
    etk_window_move(ETK_WINDOW(popup_window), x, y);
-   /* TODO: connect a callback on size_request ?? */
-   etk_window_resize(ETK_WINDOW(popup_window), 1, 1);
    etk_widget_show(ETK_WIDGET(popup_window));
    
    _etk_popup_window_slide_timer_update(popup_window);
@@ -356,7 +355,9 @@
    popup_window->children = NULL;
    popup_window->popped_child = NULL;
    etk_window_stacking_set(ETK_WINDOW(popup_window), ETK_WINDOW_ABOVE);
-   etk_engine_popup_window_constructor(popup_window);     
+   etk_engine_popup_window_constructor(popup_window);
+   
+   etk_signal_connect("size_request", ETK_OBJECT(popup_window), 
ETK_CALLBACK(_etk_popup_window_size_request_cb), NULL);
 }
 
 /**************************
@@ -364,6 +365,16 @@
  * Handlers and callbacks
  *
  **************************/
+
+/* Called when the "size_request" signal is emitted */
+static void _etk_popup_window_size_request_cb(Etk_Object *object, Etk_Size 
*requested_size, void *data)
+{
+   Etk_Window *window;
+   
+   if (!(window = ETK_WINDOW(object)) || !requested_size)
+      return;
+   etk_window_resize(window, requested_size->w, requested_size->h);
+}
 
 /* Called when a key is pressed, if a popup window is popped up */
 static void _etk_popup_window_key_down_cb(Etk_Event_Global event_info, void 
*data)
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_statusbar.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_statusbar.c     24 Aug 2006 18:09:16 -0000      1.10
+++ etk_statusbar.c     4 Sep 2006 12:51:42 -0000       1.11
@@ -207,7 +207,8 @@
       return;
    
    statusbar->has_resize_grip = has_resize_grip;
-   etk_widget_theme_signal_emit(ETK_WIDGET(statusbar), 
statusbar->has_resize_grip ? "show_resize_grip" : "hide_resize_grip");
+   etk_widget_theme_signal_emit(ETK_WIDGET(statusbar),
+      statusbar->has_resize_grip ? "show_resize_grip" : "hide_resize_grip", 
ETK_TRUE);
    etk_object_notify(ETK_OBJECT(statusbar), "has_resize_grip");
 }
 
@@ -305,7 +306,8 @@
 /* Called when the status bar is realized */
 static void _etk_statusbar_realize_cb(Etk_Object *object, void *data)
 {
-   etk_widget_theme_signal_emit(ETK_WIDGET(object), 
ETK_STATUSBAR(object)->has_resize_grip ? "show_resize_grip" : 
"hide_resize_grip");
+   etk_widget_theme_signal_emit(ETK_WIDGET(object),
+      ETK_STATUSBAR(object)->has_resize_grip ? "show_resize_grip" : 
"hide_resize_grip", ETK_TRUE);
    _etk_statusbar_update(ETK_STATUSBAR(object));
    
    if (ETK_WIDGET(object)->theme_object)
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_toggle_button.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_toggle_button.c 13 Aug 2006 22:42:23 -0000      1.12
+++ etk_toggle_button.c 4 Sep 2006 12:51:42 -0000       1.13
@@ -180,7 +180,7 @@
 
    if (!(toggle_button = ETK_TOGGLE_BUTTON(object)))
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(toggle_button), 
toggle_button->active ? "activate" : "deactivate");
+   etk_widget_theme_signal_emit(ETK_WIDGET(toggle_button), 
toggle_button->active ? "activate" : "deactivate", ETK_FALSE);
 }
 
 /* Default handler for the "toggled" signal */
@@ -188,7 +188,7 @@
 {
    if (!toggle_button)
       return;
-   etk_widget_theme_signal_emit(ETK_WIDGET(toggle_button), 
toggle_button->active ? "activate" : "deactivate");
+   etk_widget_theme_signal_emit(ETK_WIDGET(toggle_button), 
toggle_button->active ? "activate" : "deactivate", ETK_FALSE);
 }
 
 /**************************
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tree.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -3 -r1.74 -r1.75
--- etk_tree.c  24 Aug 2006 18:09:16 -0000      1.74
+++ etk_tree.c  4 Sep 2006 12:51:42 -0000       1.75
@@ -2164,7 +2164,7 @@
    
    if (!(tree = ETK_TREE(object)))
       return;
-   etk_widget_theme_signal_emit(tree->grid, "focus");
+   etk_widget_theme_signal_emit(tree->grid, "focus", ETK_FALSE);
 }
 
 /* Called when the tree is unfocused */
@@ -2174,7 +2174,7 @@
    
    if (!(tree = ETK_TREE(object)))
       return;
-   etk_widget_theme_signal_emit(tree->grid, "unfocus");
+   etk_widget_theme_signal_emit(tree->grid, "unfocus", ETK_FALSE);
 }
 
 /* Called when the user presses a key */
@@ -2908,7 +2908,7 @@
       row->selected = ETK_TRUE;
       tree->last_selected = row;
       if(tree->dnd_event)              
-       etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected");
+       etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected", 
ETK_FALSE);
       else
        etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SELECTED_SIGNAL], 
ETK_OBJECT(tree), NULL, row);
    }
@@ -2964,7 +2964,7 @@
          tree->last_selected = row;
         
         if(tree->dnd_event)
-          etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected");
+          etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected", 
ETK_FALSE);
         else
           etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SELECTED_SIGNAL], 
ETK_OBJECT(tree), NULL, row);
       }
@@ -2976,7 +2976,7 @@
            --tree->num_selected_rows;
             tree->last_selected = row;
            if(tree->dnd_event)      
-             etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected");
+             etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected", 
ETK_FALSE);
            else
              etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SELECTED_SIGNAL], 
ETK_OBJECT(tree), NULL, row);
          }
@@ -2986,7 +2986,7 @@
            ++tree->num_selected_rows;
             tree->last_selected = row;
            if(tree->dnd_event)      
-             etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected");
+             etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected", 
ETK_FALSE);
            else
              etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SELECTED_SIGNAL], 
ETK_OBJECT(tree), NULL, row);
          }
@@ -3000,7 +3000,7 @@
            row->selected = ETK_TRUE;
            tree->last_selected = row;
            if(tree->dnd_event)      
-             etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected");
+             etk_widget_theme_signal_emit(ETK_WIDGET(tree), "row_selected", 
ETK_FALSE);
            else
              etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SELECTED_SIGNAL], 
ETK_OBJECT(tree), NULL, row);        
         }
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_widget.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -3 -r1.82 -r1.83
--- etk_widget.c        3 Sep 2006 22:29:03 -0000       1.82
+++ etk_widget.c        4 Sep 2006 12:51:42 -0000       1.83
@@ -1066,24 +1066,30 @@
  * @brief Sends a signal to the theme-object of the widget
  * @param widget a widget
  * @param signal_name the name of the signal to send
+ * @param size_recalc if @a size_recalc is ETK_TRUE, 
etk_widget_size_recalc_queue() will be called on the widget.
+ * So, if the emitted signal is likely to change the size of the widget, @a 
size_recalc has to be set to ETK_TRUE.
+ * Otherwise it should be ETK_FALSE
  * @note The widget has to be realized, otherwise it will have no effect
  * @widget_implementation
  * @see edje_object_signal_emit()
  */
-void etk_widget_theme_signal_emit(Etk_Widget *widget, const char *signal_name)
+void etk_widget_theme_signal_emit(Etk_Widget *widget, const char *signal_name, 
Etk_Bool size_recalc)
 {
    if (!widget || !widget->theme_object)
       return;
    edje_object_signal_emit(widget->theme_object, signal_name, "");
    widget->need_theme_min_size_recalc = ETK_TRUE;
+   if (size_recalc)
+      etk_widget_size_recalc_queue(widget);
 }
 
 /**
- * @brief Sets the text of a text part of the widget's theme-object
+ * @brief Sets the text of a text part of the widget's theme-object.
  * @param widget a widget
  * @param part_name the name of the text part
  * @param text the text to set
  * @note The widget has to be realized, otherwise it will have no effect
+ * @note etk_widget_size_recalc_queue() is automatically called on the widget
  * @widget_implementation
  * @see edje_object_part_text_set()
  */
@@ -1093,6 +1099,7 @@
       return;
    edje_object_part_text_set(widget->theme_object, part_name, text);
    widget->need_theme_min_size_recalc = ETK_TRUE;
+   etk_widget_size_recalc_queue(widget);
 }
 
 /**
@@ -1702,7 +1709,7 @@
       return;
    
    /* TODO: FIXME: why isnt this being emitted automatically?!? */
-   etk_widget_theme_signal_emit(widget, "drag_drop");   
+   etk_widget_theme_signal_emit(widget, "drag_drop", ETK_FALSE);   
    etk_signal_emit(_etk_widget_signals[ETK_WIDGET_DRAG_DROP_SIGNAL], 
ETK_OBJECT(widget), NULL, event);
 }
 
@@ -2066,7 +2073,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "enter");
+   etk_widget_theme_signal_emit(widget, "enter", ETK_FALSE);
 }
 
 /* Default handler for the "leave" signal */
@@ -2074,7 +2081,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "leave");
+   etk_widget_theme_signal_emit(widget, "leave", ETK_FALSE);
 }
 
 /* Default handler for the "focus" signal */
@@ -2082,7 +2089,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "focus");
+   etk_widget_theme_signal_emit(widget, "focus", ETK_FALSE);
 }
 
 /* Default handler for the "unfocus" signal */
@@ -2090,7 +2097,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "unfocus");
+   etk_widget_theme_signal_emit(widget, "unfocus", ETK_FALSE);
 }
 
 /* Sets the widget as visible and queues a visibility update */
@@ -2098,7 +2105,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "show");
+   etk_widget_theme_signal_emit(widget, "show", ETK_FALSE);
 }
 
 /* Default handler for the "drag_drop" signal */
@@ -2106,7 +2113,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "drag_drop");
+   etk_widget_theme_signal_emit(widget, "drag_drop", ETK_FALSE);
 }
 
 /* Default handler for the "drag_motion" signal */
@@ -2114,7 +2121,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "drag_motion");
+   etk_widget_theme_signal_emit(widget, "drag_motion", ETK_FALSE);
 }
 
 /* Default handler for the "drag_enter" signal */
@@ -2122,7 +2129,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "drag_enter");
+   etk_widget_theme_signal_emit(widget, "drag_enter", ETK_FALSE);
 }
 
 /* Default handler for the "drag_leave" signal */
@@ -2130,7 +2137,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "drag_leave");
+   etk_widget_theme_signal_emit(widget, "drag_leave", ETK_FALSE);
 }
 
 /* Default handler for the "drag_begin" signal */
@@ -2138,7 +2145,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "drag_begin");
+   etk_widget_theme_signal_emit(widget, "drag_begin", ETK_FALSE);
 }
 
 /* Default handler for the "drag_end" signal */
@@ -2146,7 +2153,7 @@
 {
    if (!widget)
       return;
-   etk_widget_theme_signal_emit(widget, "drag_end");
+   etk_widget_theme_signal_emit(widget, "drag_end", ETK_FALSE);
 }
 
 /* Evas Callback: Called when the mouse pointer enters the widget */
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_widget.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- etk_widget.h        28 Aug 2006 22:08:29 -0000      1.38
+++ etk_widget.h        4 Sep 2006 12:51:42 -0000       1.39
@@ -165,7 +165,7 @@
 void etk_widget_focus(Etk_Widget *widget);
 void etk_widget_unfocus(Etk_Widget *widget);
 
-void etk_widget_theme_signal_emit(Etk_Widget *widget, const char *signal_name);
+void etk_widget_theme_signal_emit(Etk_Widget *widget, const char *signal_name, 
Etk_Bool size_recalc);
 void etk_widget_theme_part_text_set(Etk_Widget *widget, const char *part_name, 
const char *text);
 int  etk_widget_theme_data_get(Etk_Widget *widget, const char *data_name, 
const char *format, ...);
 
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- etk_window.c        1 Sep 2006 13:32:30 -0000       1.38
+++ etk_window.c        4 Sep 2006 12:51:42 -0000       1.39
@@ -44,7 +44,7 @@
 static void _etk_window_property_get(Etk_Object *object, int property_id, 
Etk_Property_Value *value);
 static void _etk_window_show_cb(Etk_Object *object, void *data);
 static void _etk_window_hide_cb(Etk_Object *object, void *data);
-static void _etk_window_size_request_cb(Etk_Window *window, Etk_Size 
*requisition, void *data);
+static void _etk_window_size_request_cb(Etk_Object *object, Etk_Size 
*requested_size, void *data);
 static Etk_Bool _etk_window_delete_event_handler(Etk_Window *window);
 static void _etk_window_evas_position_get(Etk_Toplevel_Widget *toplevel, int 
*x, int *y);
 static void _etk_window_screen_position_get(Etk_Toplevel_Widget *toplevel, int 
*x, int *y);
@@ -530,9 +530,7 @@
    window->wait_size_request = ETK_TRUE;
    window->center = ETK_FALSE;
    window->center_on_window = NULL;
-   window->modal = ETK_FALSE;
-   window->modal_for_window = NULL;   
-
+   
    window->delete_event = _etk_window_delete_event_handler;
    window->move_cb = _etk_window_move_cb;
    window->resize_cb = _etk_window_resize_cb;
@@ -567,8 +565,6 @@
    
    if (window->center_on_window)
       etk_object_weak_pointer_remove(ETK_OBJECT(window->center_on_window), 
(void **)(&window->center_on_window));
-   if (window->modal_for_window)
-      etk_object_weak_pointer_remove(ETK_OBJECT(window->modal_for_window), 
(void **)(&window->modal_for_window));
 }
 
 /* Sets the property whose id is "property_id" to the value "value" */
@@ -687,16 +683,21 @@
    etk_engine_window_hide(window);
 }
 
-/* Called when a size request signal is emitted */
-static void _etk_window_size_request_cb(Etk_Window *window, Etk_Size 
*requisition, void *data)
+/* Called when the "size_request" signal is emitted */
+static void _etk_window_size_request_cb(Etk_Object *object, Etk_Size 
*requested_size, void *data)
 {
-   if (window && requisition && requisition->w >= 0 && requisition->h >= 0)
+   Etk_Window *window;
+   
+   if (!(window = ETK_WINDOW(object)) || !requested_size)
+      return;
+   
+   if (requested_size->w >= 0 && requested_size->h >= 0)
    {
-      etk_engine_window_size_min_set(window, requisition->w, requisition->h);
-      if (window->width < requisition->w || window->height < requisition->h)
+      etk_engine_window_size_min_set(window, requested_size->w, 
requested_size->h);
+      if (window->width < requested_size->w || window->height < 
requested_size->h)
       {
-         window->width = ETK_MAX(window->width, requisition->w);
-         window->height = ETK_MAX(window->height, requisition->h);
+         window->width = ETK_MAX(window->width, requested_size->w);
+         window->height = ETK_MAX(window->height, requested_size->h);
          etk_engine_window_resize(window, window->width, window->height);
       }
       
@@ -711,12 +712,6 @@
             window->center = ETK_FALSE;
             window->center_on_window = NULL;
          }
-         if (window->modal)
-         {
-            etk_window_modal_for_window(window, window->modal_for_window);
-            window->modal = ETK_FALSE;
-            window->modal_for_window = NULL;
-         }      
       }
    }
 }
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- etk_window.h        1 Sep 2006 13:32:30 -0000       1.16
+++ etk_window.h        4 Sep 2006 12:51:42 -0000       1.17
@@ -45,8 +45,6 @@
    Etk_Bool wait_size_request;
    Etk_Bool center;
    Etk_Window *center_on_window;
-   Etk_Bool modal;
-   Etk_Window *modal_for_window;
 
    void (*move_cb)(Etk_Window *window);
    void (*resize_cb)(Etk_Window *window);   



-------------------------------------------------------------------------
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