/* Called when the spinner is realized */ static Etk_Bool _etk_spinner_realized_cb(Etk_Object *object, void *data) { Etk_Spinner *spinner; Evas_Object *theme_object; Evas *evas; if (!(spinner = ETK_SPINNER(object)) || !(evas = etk_widget_toplevel_evas_get(ETK_WIDGET(spinner)))) return ETK_TRUE; if (!(theme_object = ETK_WIDGET(spinner)->theme_object)) return ETK_TRUE; /* Create the editable object */ spinner->editable_object = etk_editable_add(evas); evas_object_show(spinner->editable_object); etk_widget_member_object_add(ETK_WIDGET(spinner), spinner->editable_object); etk_editable_theme_set(spinner->editable_object, etk_widget_theme_file_get(ETK_WIDGET(spinner)), etk_widget_theme_group_get(ETK_WIDGET(spinner))); etk_editable_align_set(spinner->editable_object, 1.0); if (!etk_widget_is_focused(ETK_WIDGET(spinner))) { etk_editable_cursor_hide(spinner->editable_object); etk_editable_selection_hide(spinner->editable_object); } if (etk_widget_disabled_get(ETK_WIDGET(spinner))) etk_editable_disabled_set(spinner->editable_object, ETK_TRUE); evas_object_event_callback_add(spinner->editable_object, EVAS_CALLBACK_MOUSE_IN, _etk_spinner_editable_mouse_in_cb, spinner); evas_object_event_callback_add(spinner->editable_object, EVAS_CALLBACK_MOUSE_OUT, _etk_spinner_editable_mouse_out_cb, spinner); evas_object_event_callback_add(spinner->editable_object, EVAS_CALLBACK_MOUSE_DOWN, _etk_spinner_editable_mouse_down_cb, spinner); evas_object_event_callback_add(spinner->editable_object, EVAS_CALLBACK_MOUSE_UP, _etk_spinner_editable_mouse_up_cb, spinner); evas_object_event_callback_add(spinner->editable_object, EVAS_CALLBACK_MOUSE_MOVE, _etk_spinner_editable_mouse_move_cb, spinner); /* Connect the "decrement"/"increment" edje signals to callbacks */ edje_object_signal_callback_add(theme_object, "etk,action,decrement,start", "", _etk_spinner_step_start_cb, spinner); edje_object_signal_callback_add(theme_object, "etk,action,increment,start", "", _etk_spinner_step_start_cb, spinner); edje_object_signal_callback_add(theme_object, "etk,action,decrement,stop", "", _etk_spinner_step_stop_cb, spinner); edje_object_signal_callback_add(theme_object, "etk,action,increment,stop", "", _etk_spinner_step_stop_cb, spinner); /* Update the text of the editable object */ _etk_spinner_update_text_from_value(spinner); return ETK_TRUE; }
/* Called when a widget is added to the toolbar's box */ static Etk_Bool _etk_toolbar_child_added_cb(Etk_Object *object, Etk_Widget *child, void *data) { Etk_Toolbar *toolbar; if (!(toolbar = ETK_TOOLBAR(data)) || !child) return ETK_TRUE; /* Sets the style and the stock size if the new child is a tool-item */ if (ETK_IS_TOOL_ITEM(child)) { Etk_Button_Style button_style; switch (toolbar->style) { case ETK_TOOLBAR_ICON: button_style = ETK_BUTTON_ICON; break; case ETK_TOOLBAR_TEXT: button_style = ETK_BUTTON_TEXT; break; case ETK_TOOLBAR_BOTH_VERT: button_style = ETK_BUTTON_BOTH_VERT; break; case ETK_TOOLBAR_BOTH_HORIZ: button_style = ETK_BUTTON_BOTH_HORIZ; break; default: button_style = ETK_BUTTON_BOTH_VERT; break; } etk_button_style_set(ETK_BUTTON(child), button_style); etk_button_stock_size_set(ETK_BUTTON(child), toolbar->stock_size); } /* Reorientate the separators */ else if (toolbar->reorientating && (((toolbar->orientation == ETK_TOOLBAR_HORIZ) && ETK_IS_VSEPARATOR(child)) || ((toolbar->orientation == ETK_TOOLBAR_VERT) && ETK_IS_HSEPARATOR(child)))) { Etk_Bool visible; Etk_Box_Fill_Policy policy; Etk_Box_Group group; int pos, padding; visible = etk_widget_is_visible(child); etk_box_child_position_get(ETK_BOX(toolbar->box), child, &group, &pos); etk_box_child_packing_get(ETK_BOX(toolbar->box), child, &policy, &padding); etk_object_destroy(ETK_OBJECT(child)); if (toolbar->orientation == ETK_TOOLBAR_HORIZ) child = etk_vseparator_new(); else child = etk_hseparator_new(); etk_box_insert_at(ETK_BOX(toolbar->box), child, group, pos, policy, padding); if (visible) etk_widget_show(child); } if (etk_theme_group_exists(etk_widget_theme_file_get(ETK_WIDGET(toolbar)), etk_widget_theme_group_get(child), etk_widget_theme_group_get(ETK_WIDGET(toolbar)))) { etk_widget_theme_parent_set(child, ETK_WIDGET(toolbar)); } //etk_signal_emit(ETK_CONTAINER_CHILD_ADDED_SIGNAL, ETK_OBJECT(toolbar), child); return ETK_TRUE; }