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