Enlightenment CVS committal Author : dj2 Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src/lib Modified Files: ewl_combo.c ewl_combo.h ewl_model.c ewl_model.h ewl_tree2.c Log Message: - remove the dirty flag from the models, makes it impossible to share them - start moving combo over to use the model/view setup, working not half bad, there appears to be something wrong with the button appearance change [This is API breakage.] - need to add doxy - need to redo the theme tests as I've just removed the combo for now until it can be ported to model/view =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_combo.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ewl_combo.c 22 Feb 2006 18:12:01 -0000 1.15 +++ ewl_combo.c 13 Mar 2006 00:19:27 -0000 1.16 @@ -3,24 +3,26 @@ #include "ewl_macros.h" #include "ewl_private.h" +void ewl_combo_cb_item_clicked(Ewl_Widget *w, void *ev, void *data); + /** * @param title: the text to place in the combo * @return Returns a pointer to a new combo on success, NULL on failure. * @brief Create a new internal combo */ Ewl_Widget * -ewl_combo_new(char *title) +ewl_combo_new(void) { Ewl_Combo *combo; DENTER_FUNCTION(DLEVEL_STABLE); combo = NEW(Ewl_Combo, 1); - if (!combo) { + if (!combo) DRETURN_PTR(NULL, DLEVEL_STABLE); - } - if (!ewl_combo_init(combo, title)) { + if (!ewl_combo_init(combo)) + { ewl_widget_destroy(EWL_WIDGET(combo)); combo = NULL; } @@ -28,272 +30,317 @@ DRETURN_PTR(EWL_WIDGET(combo), DLEVEL_STABLE); } -/** - * @param combo: the combo to initialize - * @param title: the string displayed in the title - * @return Returns TRUE on success or FALSE on failure - * @brief Initialize an internal combo to starting values - */ -int -ewl_combo_init(Ewl_Combo *combo, char *title) +int +ewl_combo_init(Ewl_Combo *combo) { - Ewl_Container *redirect; DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR_RET("combo", combo, FALSE); - /* - * Initialize the defaults of the inherited fields. - */ - if (!ewl_menu_base_init(EWL_MENU_BASE(combo))) + if (!ewl_box_init(EWL_BOX(combo))) DRETURN_INT(FALSE, DLEVEL_STABLE); - ewl_button_label_set(EWL_BUTTON(combo), title); - ewl_object_fill_policy_set(EWL_OBJECT(combo), EWL_FLAG_FILL_HFILL | - EWL_FLAG_FILL_HSHRINK); - - ewl_widget_appearance_set( EWL_WIDGET(combo), EWL_COMBO_TYPE ); ewl_widget_inherit(EWL_WIDGET(combo), EWL_COMBO_TYPE); + ewl_widget_appearance_set(EWL_WIDGET(combo), EWL_COMBO_TYPE); - redirect = ewl_container_redirect_get( EWL_CONTAINER(combo) ); - ewl_container_redirect_set( EWL_CONTAINER(combo), NULL ); + ewl_box_orientation_set(EWL_BOX(combo), EWL_ORIENTATION_HORIZONTAL); combo->button = ewl_button_new(); ewl_widget_appearance_set(combo->button, "decrement"); - ewl_object_alignment_set(EWL_OBJECT(combo->button), EWL_FLAG_ALIGN_RIGHT); + ewl_widget_internal_set(combo->button, TRUE); + ewl_object_alignment_set(EWL_OBJECT(combo->button), + EWL_FLAG_ALIGN_RIGHT); ewl_container_child_append(EWL_CONTAINER(combo), combo->button); + ewl_object_fill_policy_set(EWL_OBJECT(combo->button), + EWL_FLAG_FILL_NONE); + ewl_callback_append(combo->button, EWL_CALLBACK_CLICKED, + ewl_combo_cb_decrement_clicked, combo); ewl_widget_show(combo->button); - combo->selected = ewl_entry_new(); - ewl_text_text_set(EWL_TEXT(combo->selected), title); - ewl_entry_editable_set(EWL_ENTRY(combo->selected), FALSE); - ewl_object_fill_policy_set(EWL_OBJECT(combo->selected), - EWL_FLAG_FILL_HFILL | EWL_FLAG_FILL_HSHRINK); - ewl_object_alignment_set(EWL_OBJECT(combo->selected), - EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(combo), combo->selected); - ewl_widget_show(combo->selected); - - ewl_callback_del(EWL_WIDGET(combo), EWL_CALLBACK_FOCUS_IN, - ewl_menu_base_expand_cb); - - ewl_container_callback_nointercept(EWL_CONTAINER(combo), - EWL_CALLBACK_CLICKED); - ewl_container_callback_nointercept(EWL_CONTAINER(combo), - EWL_CALLBACK_MOUSE_DOWN); - ewl_container_callback_nointercept(EWL_CONTAINER(combo), - EWL_CALLBACK_MOUSE_UP); - ewl_container_callback_nointercept(EWL_CONTAINER(combo), - EWL_CALLBACK_MOUSE_MOVE); - ewl_container_callback_nointercept(EWL_CONTAINER(combo), - EWL_CALLBACK_FOCUS_IN); - ewl_container_callback_nointercept(EWL_CONTAINER(combo), - EWL_CALLBACK_FOCUS_OUT); - - ewl_container_redirect_set(EWL_CONTAINER(combo), redirect); + combo->popup = NEW(Ewl_Menu_Base, 1); + ewl_menu_base_init(EWL_MENU_BASE(combo->popup)); + ewl_widget_internal_set(EWL_WIDGET(combo->popup), TRUE); + + combo->popup->popup = ewl_floater_new(); + ewl_floater_follow_set(EWL_FLOATER(combo->popup->popup), + EWL_WIDGET(combo)); + ewl_widget_internal_set(combo->popup->popup, TRUE); + ewl_widget_layer_set(combo->popup->popup, 1000); + ewl_widget_appearance_set(combo->popup->popup, EWL_IMENU_TYPE); + ewl_box_orientation_set(EWL_BOX(combo->popup->popup), + EWL_ORIENTATION_VERTICAL); + ewl_object_fill_policy_set(EWL_OBJECT(combo->popup->popup), + EWL_FLAG_FILL_NONE); + ewl_object_alignment_set(EWL_OBJECT(combo->popup->popup), + EWL_FLAG_ALIGN_LEFT | EWL_FLAG_ALIGN_TOP); - ewl_callback_append(combo->button, EWL_CALLBACK_MOUSE_DOWN, - ewl_combo_expand_cb, combo); + /* default this to -2 so that when we first show we will set it to -1 */ + combo->selected_idx = -2; ewl_callback_append(EWL_WIDGET(combo), EWL_CALLBACK_CONFIGURE, - ewl_combo_configure_cb, NULL); - ewl_callback_append(combo->selected, EWL_CALLBACK_VALUE_CHANGED, - ewl_combo_value_changed_cb, combo); - - /* - * Create the popup combo portion of the widget. - */ - combo->base.popup = ewl_floater_new(); - ewl_floater_follow_set(EWL_FLOATER(combo->base.popup), - EWL_WIDGET(combo)); - ewl_widget_internal_set(combo->base.popup, TRUE); - ewl_widget_layer_set(combo->base.popup, 1000); - ewl_widget_appearance_set(EWL_WIDGET(combo->base.popup), - EWL_IMENU_TYPE); - ewl_box_orientation_set(EWL_BOX(combo->base.popup), - EWL_ORIENTATION_VERTICAL); - ewl_object_fill_policy_set(EWL_OBJECT(combo->base.popup), - EWL_FLAG_FILL_NONE); - ewl_object_alignment_set(EWL_OBJECT(combo->base.popup), - EWL_FLAG_ALIGN_LEFT | EWL_FLAG_ALIGN_TOP); + ewl_combo_cb_configure, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(combo), EWL_FLAG_FILL_NONE); DRETURN_INT(TRUE, DLEVEL_STABLE); } -/** - * @param combo: the combo to set the selected item of - * @param item: the entry to be set selected - * @return Returns no value - * @brief Set the currently selected item - */ void -ewl_combo_selected_set(Ewl_Combo *combo, Ewl_Widget *item) +ewl_combo_selected_set(Ewl_Combo *combo, int idx) { DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR("combo", combo); - DCHECK_PARAM_PTR("item", item); DCHECK_TYPE("combo", combo, EWL_COMBO_TYPE); - DCHECK_TYPE("item", item, EWL_WIDGET_TYPE); - combo->selected = item; - ewl_callback_call_with_event_data(EWL_WIDGET(combo), - EWL_CALLBACK_VALUE_CHANGED, item); + if (combo->selected_idx == idx) + DRETURN(DLEVEL_STABLE); + + combo->selected_idx = idx; + + /* remove the previously selected value */ + if (combo->selected) + { + ewl_container_child_remove(EWL_CONTAINER(combo), + combo->selected); + ewl_widget_destroy(combo->selected); + } + + /* if we have a selected value then show it in the top, else show + * the header */ + if (idx > -1) + { + combo->selected = combo->view->construct(); + combo->view->assign(combo->selected, + combo->model->fetch(combo->data, idx, 0)); + ewl_widget_show(combo->selected); + } + else + combo->selected = combo->model->header_fetch(combo->data, 0); + + ewl_container_child_prepend(EWL_CONTAINER(combo), combo->selected); + DLEAVE_FUNCTION(DLEVEL_STABLE); } -/** - * @param combo: the combo to get the selcted item of - * @return Returns the currently selected item (possibly NULL) - * @brief Gets the currently selected item - */ -Ewl_Widget * +int ewl_combo_selected_get(Ewl_Combo *combo) { DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR_RET("combo", combo, -1); + DCHECK_TYPE_RET("combo", combo, EWL_COMBO_TYPE, -1); + + DRETURN_INT(combo->selected_idx, DLEVEL_STABLE); +} + +void +ewl_combo_model_set(Ewl_Combo *combo, Ewl_Model *model) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("combo", combo); + DCHECK_PARAM_PTR("model", model); + DCHECK_TYPE("combo", combo, EWL_COMBO_TYPE); + + combo->model = model; + ewl_combo_dirty_set(combo, TRUE); + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +Ewl_Model * +ewl_combo_model_get(Ewl_Combo *combo) +{ + DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR_RET("combo", combo, NULL); DCHECK_TYPE_RET("combo", combo, EWL_COMBO_TYPE, NULL); - DRETURN_PTR(combo->selected, DLEVEL_STABLE); + DRETURN_PTR(combo->model, DLEVEL_STABLE); } void -ewl_combo_item_focus_in_cb(Ewl_Widget *w, void *ev_data __UNUSED__, - void *user_data) +ewl_combo_view_set(Ewl_Combo *combo, Ewl_View *view) { - Ewl_Combo *combo; + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("combo", combo); + DCHECK_PARAM_PTR("view", view); + DCHECK_TYPE("combo", combo, EWL_COMBO_TYPE); + + combo->view = view; + ewl_combo_dirty_set(combo, TRUE); + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} +Ewl_View * +ewl_combo_view_get(Ewl_Combo *combo) +{ DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR("w", w); - DCHECK_PARAM_PTR("user_data", user_data); - DCHECK_TYPE("w", w, EWL_WIDGET_TYPE); + DCHECK_PARAM_PTR_RET("combo", combo, NULL); + DCHECK_TYPE_RET("combo", combo, EWL_COMBO_TYPE, NULL); - combo = EWL_COMBO(user_data); + DRETURN_PTR(combo->view, DLEVEL_STABLE); +} - ewl_combo_selected_set(combo, w); - ewl_widget_hide(EWL_MENU_BASE(combo)->popup); +void +ewl_combo_data_set(Ewl_Combo *combo, void *data) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("combo", combo); + DCHECK_PARAM_PTR("data", data); + DCHECK_TYPE("combo", combo, EWL_COMBO_TYPE); - ewl_widget_appearance_set(combo->button, "decrement"); - ewl_callback_del(EWL_MENU_BASE(combo)->popbox, EWL_CALLBACK_MOUSE_OUT, - ewl_combo_collapse_cb); - ewl_callback_del(combo->button, EWL_CALLBACK_MOUSE_DOWN, - ewl_combo_collapse_cb); - ewl_callback_append(combo->button, EWL_CALLBACK_MOUSE_DOWN, - ewl_combo_expand_cb, combo); + combo->data = data; + ewl_combo_dirty_set(combo, TRUE); DLEAVE_FUNCTION(DLEVEL_STABLE); } -void -ewl_combo_configure_cb(Ewl_Widget *w, void *ev_data __UNUSED__, - void *user_data __UNUSED__) +void * +ewl_combo_data_get(Ewl_Combo *combo) { - Ewl_Combo *combo; + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR_RET("combo", combo, NULL); + DCHECK_TYPE_RET("combo", combo, EWL_COMBO_TYPE, NULL); + DRETURN_PTR(combo->data, DLEVEL_STABLE); +} + +void +ewl_combo_dirty_set(Ewl_Combo *combo, unsigned int dirty) +{ DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR("w", w); - DCHECK_TYPE("w", w, EWL_WIDGET_TYPE); + DCHECK_PARAM_PTR("combo", combo); + DCHECK_TYPE("combo", combo, EWL_COMBO_TYPE); - combo = EWL_COMBO(w); - /* - * Position the popup combo relative to the combo. - */ - if (EWL_MENU_ITEM(w)->inmenu) { - ewl_floater_position_set(EWL_FLOATER(combo->base.popup), - CURRENT_W(w), 0); - } - else { - ewl_floater_position_set(EWL_FLOATER(combo->base.popup), 0, - CURRENT_H(w)); - } + combo->dirty = !!dirty; DLEAVE_FUNCTION(DLEVEL_STABLE); } +unsigned int +ewl_combo_dirty_get(Ewl_Combo *combo) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR_RET("combo", combo, FALSE); + DCHECK_TYPE_RET("combo", combo, EWL_COMBO_TYPE, FALSE); + + DRETURN_INT(combo->dirty, DLEVEL_STABLE); +} + void -ewl_combo_value_changed_cb(Ewl_Widget *w __UNUSED__, - void *ev_data __UNUSED__, void *user_data) +ewl_combo_cb_configure(Ewl_Widget *w, void *ev __UNUSED__, + void *data __UNUSED__) { - Ewl_Widget *cw; Ewl_Combo *combo; DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR("user_data", user_data); + DCHECK_PARAM_PTR("w", w); + DCHECK_TYPE("w", w, EWL_WIDGET_TYPE); + + combo = EWL_COMBO(w); - cw = EWL_WIDGET(user_data); - combo = EWL_COMBO(user_data); + if (EWL_MENU_ITEM(combo->popup)->inmenu) + ewl_floater_position_set(EWL_FLOATER(combo->popup->popup), + CURRENT_W(w), 0); + else + ewl_floater_position_set(EWL_FLOATER(combo->popup->popup), + 0, CURRENT_H(w)); - ewl_callback_call_with_event_data(cw, EWL_CALLBACK_VALUE_CHANGED, - combo->selected); + if (combo->selected_idx < -1) + ewl_combo_selected_set(combo, -1); DLEAVE_FUNCTION(DLEVEL_STABLE); } void -ewl_combo_expand_cb(Ewl_Widget *w, void *ev_data, void *user_data) +ewl_combo_cb_decrement_clicked(Ewl_Widget *w __UNUSED__, void *ev, void *data) { Ewl_Combo *combo; - Ewl_Embed *emb; - Ewl_Container *pb; - Ewl_Widget *child; + int i; DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR("w", w); - DCHECK_PARAM_PTR("user_data", user_data); - DCHECK_TYPE("w", w, EWL_WIDGET_TYPE); - - combo = EWL_COMBO(user_data); - ewl_widget_appearance_set(combo->button, "increment"); - ewl_menu_base_expand_cb(EWL_WIDGET(combo), ev_data, NULL); + DCHECK_PARAM_PTR("data", data); - if (!REALIZED(combo->base.popup)) { - emb = ewl_embed_widget_find(w); + combo = data; + + /* nothing to do if we have no model/view or data */ + if ((!combo->model) || (!combo->view) || (!combo->data)) + DRETURN(DLEVEL_STABLE); + + /* change hte button appearance and expand the menu */ + ewl_widget_appearance_set(combo->button, "increment"); + ewl_callback_del(combo->button, EWL_CALLBACK_CLICKED, + ewl_combo_cb_decrement_clicked); + ewl_callback_append(combo->button, EWL_CALLBACK_CLICKED, + ewl_combo_cb_increment_clicked, combo); + + ewl_menu_base_expand_cb(EWL_WIDGET(combo->popup), ev, NULL); + if (!REALIZED(combo->popup->popup)) + { + Ewl_Embed *emb; + emb = ewl_embed_widget_find(EWL_WIDGET(combo)); ewl_container_child_append(EWL_CONTAINER(emb), - combo->base.popup); + combo->popup->popup); } - pb = EWL_CONTAINER(EWL_MENU_BASE(combo)->popbox); + if (!combo->dirty) + DRETURN(DLEVEL_STABLE); - ewl_callback_append(EWL_WIDGET(pb), EWL_CALLBACK_MOUSE_OUT, - ewl_combo_collapse_cb, combo); - ewl_callback_del(combo->button, EWL_CALLBACK_MOUSE_DOWN, ewl_combo_expand_cb); - ewl_callback_append(combo->button, EWL_CALLBACK_MOUSE_DOWN, - ewl_combo_collapse_cb, combo); - - ecore_dlist_goto_first(pb->children); - - /* - * Set all of the items in this menu a callback to set the currently selected - * widget - */ - while ((child = ecore_dlist_next(pb->children))) { - ewl_callback_del(child, EWL_CALLBACK_FOCUS_IN, ewl_combo_item_focus_in_cb); - ewl_callback_append(child, EWL_CALLBACK_FOCUS_IN, - ewl_combo_item_focus_in_cb, combo); + ewl_container_reset(EWL_CONTAINER(combo->popup)); + for (i = 0; i < combo->model->count(combo->data); i++) + { + Ewl_Widget *item; + + item = combo->view->construct(); + combo->view->assign(item, + combo->model->fetch(combo->data, i, 0)); + ewl_container_child_append(EWL_CONTAINER(combo->popup), item); + ewl_widget_data_set(item, "ewl_combo_position", (int *)i); + ewl_callback_append(item, EWL_CALLBACK_CLICKED, + ewl_combo_cb_item_clicked, combo); + ewl_widget_show(item); } - ewl_widget_show(combo->base.popup); + combo->dirty = 0; DLEAVE_FUNCTION(DLEVEL_STABLE); } void -ewl_combo_collapse_cb(Ewl_Widget *w __UNUSED__, - void *ev_data __UNUSED__, void *user_data) +ewl_combo_cb_increment_clicked(Ewl_Widget *w __UNUSED__, + void *ev __UNUSED__, void *data) { Ewl_Combo *combo; DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR("user_data", user_data); + DCHECK_PARAM_PTR("data", data); - combo = EWL_COMBO(user_data); - ewl_widget_hide(EWL_MENU_BASE(combo)->popup); + combo = data; + ewl_widget_hide(combo->popup->popup); ewl_widget_appearance_set(combo->button, "decrement"); - ewl_callback_del(EWL_MENU_BASE(combo)->popbox, EWL_CALLBACK_MOUSE_OUT, - ewl_combo_collapse_cb); - ewl_callback_del(combo->button, EWL_CALLBACK_MOUSE_DOWN, - ewl_combo_collapse_cb); - ewl_callback_append(combo->button, EWL_CALLBACK_MOUSE_DOWN, - ewl_combo_expand_cb, combo); + ewl_callback_del(combo->button, EWL_CALLBACK_CLICKED, + ewl_combo_cb_increment_clicked); + ewl_callback_append(combo->button, EWL_CALLBACK_CLICKED, + ewl_combo_cb_decrement_clicked, combo); + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +void +ewl_combo_cb_item_clicked(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, + void *data) +{ + int i; + Ewl_Combo *combo; + + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("data", data); + + combo = data; + + i = (int)ewl_widget_data_get(w, "ewl_combo_position"); + ewl_combo_selected_set(combo, i); + ewl_combo_cb_increment_clicked(NULL, NULL, data); + + ewl_callback_call(EWL_WIDGET(combo), EWL_CALLBACK_VALUE_CHANGED); DLEAVE_FUNCTION(DLEVEL_STABLE); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_combo.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- ewl_combo.h 16 Feb 2006 17:06:43 -0000 1.9 +++ ewl_combo.h 13 Mar 2006 00:19:27 -0000 1.10 @@ -34,24 +34,44 @@ */ struct Ewl_Combo { - Ewl_Menu_Base base; /**< Inherits from menu_base. */ - Ewl_Widget *button; /**< The button used to expand/collapse the selector. */ - Ewl_Widget *selected; /**< An entry that contains the current selection. */ + Ewl_Box box; /**< Inherit from box */ + Ewl_Menu_Base *popup; /**< Use a menu to display with. */ + + Ewl_Widget *button; /**< expand/contract button */ + Ewl_Widget *selected; /**< Selected widget */ + unsigned int selected_idx; /**< The selected row */ + + Ewl_Model *model; /**< The model for the combo */ + Ewl_View *view; /**< The view for the combo */ + + void *data; /**< The data for the combo */ + unsigned char dirty:1; /**< The combo's data is dirty */ }; -Ewl_Widget *ewl_combo_new(char *title); -int ewl_combo_init(Ewl_Combo *combo, char *title); -Ewl_Widget *ewl_combo_selected_get(Ewl_Combo *combo); -void ewl_combo_selected_set(Ewl_Combo *combo, Ewl_Widget *item); +Ewl_Widget *ewl_combo_new(void); +int ewl_combo_init(Ewl_Combo *combo); + +int ewl_combo_selected_get(Ewl_Combo *combo); +void ewl_combo_selected_set(Ewl_Combo *combo, int); + +void ewl_combo_model_set(Ewl_Combo *combo, Ewl_Model *model); +Ewl_Model *ewl_combo_model_get(Ewl_Combo *combo); + +void ewl_combo_view_set(Ewl_Combo *combo, Ewl_View *view); +Ewl_View *ewl_combo_view_get(Ewl_Combo *combo); + +void ewl_combo_data_set(Ewl_Combo *combo, void *data); +void *ewl_combo_data_get(Ewl_Combo *combo); + +void ewl_combo_dirty_set(Ewl_Combo *combo, unsigned int dirty); +unsigned int ewl_combo_dirty_get(Ewl_Combo *combo); /* * Internally used callbacks, override at your own risk. */ -void ewl_combo_item_focus_in_cb(Ewl_Widget *w, void *ev_data, void *user_data); -void ewl_combo_configure_cb(Ewl_Widget *w, void *ev_data, void *user_data); -void ewl_combo_value_changed_cb(Ewl_Widget *w, void *ev_data, void *user_data); -void ewl_combo_expand_cb(Ewl_Widget * w, void *ev_data, void *user_data); -void ewl_combo_collapse_cb(Ewl_Widget * w, void *ev_data, void *user_data); +void ewl_combo_cb_configure(Ewl_Widget *w, void *ev, void *data); +void ewl_combo_cb_decrement_clicked(Ewl_Widget *w, void *ev, void *data); +void ewl_combo_cb_increment_clicked(Ewl_Widget *w, void *ev, void *data); /** * @} =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_model.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- ewl_model.c 22 Feb 2006 03:51:01 -0000 1.4 +++ ewl_model.c 13 Mar 2006 00:19:27 -0000 1.5 @@ -35,9 +35,6 @@ DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR_RET("model", model, FALSE); - /* we're dirty by default */ - model->dirty = TRUE; - DRETURN_INT(TRUE, DLEVEL_STABLE); } @@ -198,34 +195,3 @@ DRETURN_INT(m->header_fetch, DLEVEL_STABLE); } -/** - * @param m: The model to set dirty - * @param dirty: The dirty value to set - * @return Returns no value - * @brief Sets if the model is dirty - */ -void -ewl_model_dirty_set(Ewl_Model *m, unsigned int dirty) -{ - DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR("m", m); - - m->dirty = !!dirty; - - DLEAVE_FUNCTION(DLEVEL_STABLE); -} - -/** - * @param m: The model to get the dirty value of - * @return Returns TRUE if the model is dirty, FALSE otherwise - * @brief Gets if the model is dirty - */ -unsigned int -ewl_model_dirty_get(Ewl_Model *m) -{ - DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR_RET("m", m, FALSE); - - DRETURN_INT(m->dirty, DLEVEL_STABLE); -} - =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_model.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- ewl_model.h 17 Feb 2006 06:43:33 -0000 1.3 +++ ewl_model.h 13 Mar 2006 00:19:27 -0000 1.4 @@ -57,8 +57,6 @@ Ewl_Model_Sort sort; /**< Trigger sort on column */ Ewl_Model_Count count; /**< Count of data items */ Ewl_Model_Header_Fetch header_fetch; /**< Get the header for the given column */ - - unsigned int dirty; /**< Is this models data dirty? */ }; Ewl_Model *ewl_model_new(void); @@ -79,9 +77,6 @@ void ewl_model_header_fetch_set(Ewl_Model *m, Ewl_Model_Header_Fetch f); Ewl_Model_Header_Fetch ewl_model_header_fetch_get(Ewl_Model *m); -void ewl_model_dirty_set(Ewl_Model *m, unsigned int dirty); -unsigned int ewl_model_dirty_get(Ewl_Model *m); - /** * @} */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_tree2.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- ewl_tree2.c 17 Feb 2006 06:43:33 -0000 1.9 +++ ewl_tree2.c 13 Mar 2006 00:19:27 -0000 1.10 @@ -427,11 +427,13 @@ ecore_list_goto_first(tree->columns); while ((col = ecore_list_next(tree->columns))) { +#if 0 if (ewl_model_dirty_get(col->model)) { dirty = TRUE; break; } +#endif } /* place the header */ @@ -454,7 +456,7 @@ ewl_container_child_append(EWL_CONTAINER(tree->header), h); /* once we are done this model won't be dirty anymore */ - col->model->dirty = FALSE; +// col->model->dirty = FALSE; column ++; } ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs