static void _val_set(Evas_Object *obj) { Eina_Bool rtl; double pos; ELM_SLIDER_DATA_GET(obj, sd); if (sd->val_max > sd->val_min) pos = (sd->val - sd->val_min) / (sd->val_max - sd->val_min); else pos = 0.0; if (pos < 0.0) pos = 0.0; else if (pos > 1.0) pos = 1.0; rtl = elm_widget_mirrored_get(obj); if ((!rtl && sd->inverted) || (rtl && ((!sd->horizontal && sd->inverted) || (sd->horizontal && !sd->inverted)))) pos = 1.0 - pos; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); edje_object_part_drag_value_set (wd->resize_obj, "elm.dragable.slider", pos, pos); }
static void _val_fetch(Evas_Object *obj, Eina_Bool user_event) { Eina_Bool rtl; double posx = 0.0, posy = 0.0, pos = 0.0, val; ELM_SLIDER_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); edje_object_part_drag_value_get (wd->resize_obj, "elm.dragable.slider", &posx, &posy); if (sd->horizontal) pos = posx; else pos = posy; rtl = elm_widget_mirrored_get(obj); if ((!rtl && sd->inverted) || (rtl && ((!sd->horizontal && sd->inverted) || (sd->horizontal && !sd->inverted)))) pos = 1.0 - pos; val = (pos * (sd->val_max - sd->val_min)) + sd->val_min; if (val != sd->val) { sd->val = val; if (user_event) { evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); if (sd->delay) ecore_timer_del(sd->delay); sd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj); } } }
static void _sizing_eval(Eo *obj, Efl_Ui_Text_Alert_Popup_Data *pd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Evas_Coord obj_minw = -1, obj_minh = -1; Evas_Coord text_minw = -1, text_minh = -1; Eina_Size2D text_min; //Calculate popup's min size including scroller's min size { elm_label_line_wrap_set(pd->message, ELM_WRAP_NONE); text_min = efl_gfx_hint_size_combined_min_get(pd->message); elm_label_line_wrap_set(pd->message, ELM_WRAP_MIXED); elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_TRUE); elm_coords_finger_size_adjust(1, &text_minw, 1, &text_minh); edje_object_size_min_restricted_calc (wd->resize_obj, &text_minw, &text_minh, text_minw, text_minh); } //Calculate popup's min size except scroller's min size { elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE); elm_coords_finger_size_adjust(1, &obj_minw, 1, &obj_minh); edje_object_size_min_restricted_calc (wd->resize_obj, &obj_minw, &obj_minh, obj_minw, obj_minh); } text_min.h = text_minh; _scroller_sizing_eval(obj, pd, EINA_SIZE2D(obj_minw, obj_minh), text_min); }
EOLIAN static Eo * _efl_ui_pager_efl_object_constructor(Eo *obj, Efl_Ui_Pager_Data *pd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "pager"); obj = efl_constructor(efl_super(obj, MY_CLASS)); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), elm_widget_theme_element_get(obj), elm_widget_theme_style_get(obj)) == EFL_UI_THEME_APPLY_ERROR_GENERIC) CRI("Failed to set layout!"); pd->cnt = 0; pd->loop = EFL_UI_PAGER_LOOP_DISABLED; pd->curr.page = -1; pd->curr.pos = 0.0; pd->transition = NULL; pd->indicator = NULL; pd->fill_width = EINA_TRUE; pd->fill_height = EINA_TRUE; pd->page_spec.sz.w = -1; pd->page_spec.sz.h = -1; elm_widget_can_focus_set(obj, EINA_TRUE); pd->page_root = efl_add(EFL_CANVAS_GROUP_CLASS, evas_object_evas_get(obj)); efl_content_set(efl_part(obj, "efl.page_root"), pd->page_root); efl_event_callback_add(pd->page_root, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _resize_cb, pd); efl_event_callback_add(pd->page_root, EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, _move_cb, pd); pd->page_box = efl_add(EFL_UI_BOX_CLASS, obj); efl_ui_widget_internal_set(pd->page_box, EINA_TRUE); efl_canvas_group_member_add(pd->page_root, pd->page_box); pd->foreclip = efl_add(EFL_CANVAS_RECTANGLE_CLASS, evas_object_evas_get(obj)); efl_canvas_group_member_add(pd->page_root, pd->foreclip); evas_object_static_clip_set(pd->foreclip, EINA_TRUE); efl_canvas_object_clipper_set(pd->page_box, pd->foreclip); pd->backclip = efl_add(EFL_CANVAS_RECTANGLE_CLASS, evas_object_evas_get(obj)); efl_canvas_group_member_add(pd->page_root, pd->backclip); evas_object_static_clip_set(pd->backclip, EINA_TRUE); efl_gfx_entity_visible_set(pd->backclip, EINA_FALSE); return obj; }
EOLIAN static void _jk_spinner_elm_layout_sizing_eval(Eo *obj, Jk_Spinner_Data *pd) { Evas_Coord minw = -1, minh = -1; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); elm_coords_finger_size_adjust(1, &minw, 1, &minh); edje_object_size_min_restricted_calc (wd->resize_obj, &minw, &minh, minw, minh); elm_coords_finger_size_adjust(1, &minw, 1, &minh); evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, -1, -1); }
void _efl_ui_slider_interval_val_set(Evas_Object *obj, Efl_Ui_Slider_Interval_Data *pd) { double pos, pos2; EFL_UI_SLIDER_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); if (sd->val_max > sd->val_min) { pos = (pd->intvl_from - sd->val_min) / (sd->val_max - sd->val_min); pos2 = (pd->intvl_to - sd->val_min) / (sd->val_max - sd->val_min); } else { pos = 0.0; pos2 = 0.0; } if (pos < 0.0) pos = 0.0; else if (pos > 1.0) pos = 1.0; if (pos2 < 0.0) pos2 = 0.0; else if (pos2 > 1.0) pos2 = 1.0; if (elm_widget_is_legacy(obj)) { efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable.slider"), pos, pos); efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"), pos2, pos2); } else { efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), pos, pos); efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable2.slider"), pos2, pos2); } // emit accessibility event also if value was changed by API if (_elm_config->atspi_mode) efl_access_value_changed_signal_emit(obj); evas_object_smart_changed(obj); }
EOLIAN static void _elm_actionslider_elm_layout_sizing_eval(Eo *obj, Elm_Actionslider_Data *sd) { Evas_Coord minw = -1, minh = -1; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); elm_coords_finger_size_adjust(1, &minw, 1, &minh); evas_object_size_hint_min_set(sd->drag_button_base, minw, minh); evas_object_size_hint_max_set(sd->drag_button_base, -1, -1); minw = -1; minh = -1; elm_coords_finger_size_adjust(3, &minw, 1, &minh); edje_object_size_min_restricted_calc (wd->resize_obj, &minw, &minh, minw, minh); evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, -1, -1); }
static void _update_view(Evas_Object *obj) { const char *label; Elm_Object_Item *eo_item; ELM_FLIPSELECTOR_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); label = NULL; eo_item = DATA_GET(sd->current); ELM_FLIPSELECTOR_ITEM_DATA_GET(eo_item, item); if (item) label = item->label; elm_layout_text_set(obj, "elm.top", label ? label : ""); elm_layout_text_set(obj, "elm.bottom", label ? label : ""); edje_object_message_signal_process(wd->resize_obj); }
EOLIAN static void _elm_flipselector_elm_layout_sizing_eval(Eo *obj, Elm_Flipselector_Data *sd) { char *tmp = NULL; Evas_Coord minw = -1, minh = -1, w, h; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); if (sd->evaluating) return; elm_coords_finger_size_adjust(1, &minw, 2, &minh); sd->evaluating = EINA_TRUE; if (sd->sentinel) { const char *label = elm_object_item_text_get(DATA_GET(sd->sentinel)); const char *src = elm_layout_text_get(obj, "elm.top"); if (src) tmp = strdup(src); elm_layout_text_set(obj, "elm.top", label); } edje_object_size_min_restricted_calc (wd->resize_obj, &minw, &minh, minw, minh); elm_coords_finger_size_adjust(1, &minw, 2, &minh); evas_object_size_hint_min_get(obj, &w, &h); if (sd->sentinel) { elm_layout_text_set(obj, "elm.top", tmp); free(tmp); } if (w > minw) minw = w; if (h > minh) minh = h; sd->evaluating = EINA_FALSE; evas_object_size_hint_min_set(obj, minw, minh); }
static void _mirroredness_change_eval(Evas_Object *obj) { double pos; char *left; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); left = (char *)elm_layout_text_get(obj, "elm.text.left"); if (left) left = strdup(left); elm_layout_text_set (obj, "elm.text.left", elm_layout_text_get(obj, "elm.text.right")); elm_layout_text_set(obj, "elm.text.right", left); free(left); edje_object_part_drag_value_get (wd->resize_obj, "elm.drag_button_base", &pos, NULL); edje_object_part_drag_value_set (wd->resize_obj, "elm.drag_button_base", 1.0 - pos, 0.5); }
static void _sizing_eval(Evas_Object *obj) { Evas_Coord minw = 0, minh = 0, maxw = -1, maxh = -1; double scale; ELM_PHOTO_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); if (sd->size <= 0) return; scale = (sd->size * efl_gfx_entity_scale_get(obj) * elm_config_scale_get()); evas_object_size_hint_min_set(sd->icon, scale, scale); elm_coords_finger_size_adjust(1, &minw, 1, &minh); edje_object_size_min_restricted_calc (wd->resize_obj, &minw, &minh, minw, minh); maxw = minw; maxh = minh; evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, maxw, maxh); }
EOLIAN static Elm_Theme_Apply _elm_photo_elm_widget_theme_apply(Eo *obj, Elm_Photo_Data *sd) { Elm_Theme_Apply int_ret = ELM_THEME_APPLY_FAILED; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); int_ret = elm_obj_widget_theme_apply(efl_super(obj, MY_CLASS)); if (!int_ret) return ELM_THEME_APPLY_FAILED; edje_object_mirrored_set (wd->resize_obj, elm_widget_mirrored_get(obj)); elm_widget_theme_object_set (obj, wd->resize_obj, "photo", "base", elm_widget_style_get(obj)); elm_object_scale_set(sd->icon, elm_widget_scale_get(obj)); edje_object_scale_set(wd->resize_obj, elm_widget_scale_get(obj) * elm_config_scale_get()); _sizing_eval(obj); return int_ret; }
void _efl_ui_slider_interval_move_knob(Evas_Object *obj, Efl_Ui_Slider_Interval_Data *pd, double button_x, double button_y) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); if (pd->intvl_flag == 1) { if (elm_widget_is_legacy(obj)) efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable.slider"), button_x, button_y); else efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), button_x, button_y); } else if (pd->intvl_flag == 2) { if (elm_widget_is_legacy(obj)) efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"), button_x, button_y); else efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable2.slider"), button_x, button_y); } }
EOLIAN static Eina_Error _elm_photo_efl_ui_widget_theme_apply(Eo *obj, Elm_Photo_Data *sd) { Eina_Error int_ret = EFL_UI_THEME_APPLY_ERROR_GENERIC; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); if (int_ret == EFL_UI_THEME_APPLY_ERROR_GENERIC) return int_ret; edje_object_mirrored_set (wd->resize_obj, efl_ui_mirrored_get(obj)); elm_widget_theme_object_set (obj, wd->resize_obj, "photo", "base", elm_widget_style_get(obj)); elm_object_scale_set(sd->icon, efl_gfx_entity_scale_get(obj)); edje_object_scale_set(wd->resize_obj, efl_gfx_entity_scale_get(obj) * elm_config_scale_get()); _sizing_eval(obj); return int_ret; }
static void _elm_panes_smart_focus_next(Eo *obj, void *_pd, va_list *list) { double w, h; unsigned char i; Evas_Object *to_focus; Evas_Object *chain[2]; Evas_Object *left, *right; Elm_Panes_Smart_Data *sd = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Elm_Focus_Direction dir = va_arg(*list, Elm_Focus_Direction); Evas_Object **next = va_arg(*list, Evas_Object **); Eina_Bool *ret = va_arg(*list, Eina_Bool *); if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; edje_object_part_drag_value_get (wd->resize_obj, "elm.bar", &w, &h); left = elm_layout_content_get(obj, "left"); right = elm_layout_content_get(obj, "right"); if (((sd->horizontal) && (h == 0.0)) || ((!sd->horizontal) && (w == 0.0))) { int_ret = elm_widget_focus_next_get(right, dir, next); if (ret) *ret = int_ret; return; } /* Direction */ if (dir == ELM_FOCUS_PREVIOUS) { chain[0] = right; chain[1] = left; } else if (dir == ELM_FOCUS_NEXT) { chain[0] = left; chain[1] = right; } else return; i = elm_widget_focus_get(chain[1]); if (elm_widget_focus_next_get(chain[i], dir, next)) { if (ret) *ret = EINA_TRUE; return; } i = !i; if (elm_widget_focus_next_get(chain[i], dir, &to_focus)) { *next = to_focus; if (ret) *ret = !!i; return; } }
void _efl_ui_slider_interval_down_knob(Evas_Object *obj, Efl_Ui_Slider_Interval_Data *pd, double button_x, double button_y) { EFL_UI_SLIDER_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); double posx = 0.0, posy = 0.0, posx2 = 0.0, posy2 = 0.0, diff1, diff2, diff3; pd->intvl_flag = 0; if (elm_widget_is_legacy(obj)) { efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable.slider"), &posx, &posy); efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable2.slider"), &posx2, &posy2); } else { efl_ui_drag_value_get(efl_part(wd->resize_obj, "efl.dragable.slider"), &posx, &posy); efl_ui_drag_value_get(efl_part(wd->resize_obj, "efl.dragable2.slider"), &posx2, &posy2); } if (efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) { diff1 = fabs(button_x - posx); diff2 = fabs(button_x - posx2); diff3 = button_x - posx; } else { diff1 = fabs(button_y - posy); diff2 = fabs(button_y - posy2); diff3 = button_y - posy; } if (diff1 < diff2) { if (elm_widget_is_legacy(obj)) efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable.slider"), button_x, button_y); else efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), button_x, button_y); pd->intvl_flag = 1; } else if (diff1 > diff2) { if (elm_widget_is_legacy(obj)) efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"), button_x, button_y); else efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable2.slider"), button_x, button_y); pd->intvl_flag = 2; } else { if (diff3 < 0) { if (elm_widget_is_legacy(obj)) efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable.slider"), button_x, button_y); else efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), button_x, button_y); pd->intvl_flag = 1; } else { if (elm_widget_is_legacy(obj)) efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"), button_x, button_y); else efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable2.slider"), button_x, button_y); pd->intvl_flag = 2; } } }
static void _conformant_parts_swallow(Evas_Object *obj) { Evas *e; ELM_CONFORMANT_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); e = evas_object_evas_get(obj); sd->scroller = NULL; //Virtual Keyboard if (edje_object_part_exists(wd->resize_obj, VIRTUALKEYPAD_PART)) { if (!sd->virtualkeypad) { sd->virtualkeypad = evas_object_rectangle_add(e); elm_widget_sub_object_add(obj, sd->virtualkeypad); evas_object_size_hint_max_set(sd->virtualkeypad, -1, 0); } else _conformant_part_sizing_eval(obj, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART); evas_object_color_set(sd->virtualkeypad, 0, 0, 0, 0); elm_layout_content_set(obj, VIRTUALKEYPAD_PART, sd->virtualkeypad); } else ELM_SAFE_FREE(sd->virtualkeypad, evas_object_del); //Clipboard if (edje_object_part_exists(wd->resize_obj, CLIPBOARD_PART)) { if (!sd->clipboard) { sd->clipboard = evas_object_rectangle_add(e); evas_object_size_hint_min_set(sd->clipboard, -1, 0); evas_object_size_hint_max_set(sd->clipboard, -1, 0); } else _conformant_part_sizing_eval(obj, ELM_CONFORMANT_CLIPBOARD_PART); evas_object_color_set(sd->clipboard, 0, 0, 0, 0); elm_layout_content_set(obj, CLIPBOARD_PART, sd->clipboard); } else ELM_SAFE_FREE(sd->clipboard, evas_object_del); //Softkey if (edje_object_part_exists(wd->resize_obj, SOFTKEY_PART)) { if (!sd->softkey) { sd->softkey = evas_object_rectangle_add(e); evas_object_size_hint_min_set(sd->softkey, -1, 0); evas_object_size_hint_max_set(sd->softkey, -1, 0); } else _conformant_part_sizing_eval(obj, ELM_CONFORMANT_SOFTKEY_PART); evas_object_color_set(sd->softkey, 0, 0, 0, 0); elm_layout_content_set(obj, SOFTKEY_PART, sd->softkey); } else ELM_SAFE_FREE(sd->softkey, evas_object_del); }
EOLIAN static void _jk_spinner_efl_canvas_group_group_add(Eo *obj, Jk_Spinner_Data *priv) { printf("jk spinner group group add \n"); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); JK_SPINNER_DATA_GET(obj, sd); efl_canvas_group_add(efl_super(obj, JK_SPINNER_CLASS)); elm_widget_sub_object_parent_add(obj); /* pd->rect = evas_object_rectangle_add(evas_object_evas_get(obj)); //evas_object_color_set(pd->rect, rand() % 255, rand() % 255, rand() % 255, 255/2); evas_object_show(pd->rect); evas_object_color_set(pd->rect, rand() % 255, rand() % 255, rand() % 255, 255/2); int r,g,b,a; evas_object_color_get(pd->rect, &r, &g, &b, &a); printf("color before : %d, %d, %d, %d \n", r, g, b, a); // evas_object_smart_member_add(pd->rect, obj); //elm_layout_content_set(obj, "elm.swallow.content", pd->rect); evas_object_color_get(pd->rect, &r, &g, &b, &a); printf("color after : %d, %d, %d, %d \n", r, g, b, a); evas_object_color_set(pd->rect, rand() % 255, rand() % 255, rand() % 255, 255/2); elm_widget_sub_object_add(obj, pd->rect); evas_object_color_get(pd->rect, &r, &g, &b, &a); printf("color after 222: %d, %d, %d, %d \n", r, g, b, a); */ elm_layout_file_set(obj, "edc/entry.edj", "main"); Evas_Object* en = elm_entry_add(obj); elm_entry_single_line_set(en, EINA_TRUE); elm_entry_editable_set(en, EINA_FALSE); //pd->entry = en; evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); //evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); //evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); //elm_object_text_set(en, "<align=center>hello</align>"); //elm_entry_text_style_user_push(en, "DEFAULT='align=center'"); //elm_entry_text_style_user_push(en, "DEFAULT='color=#0f0'"); elm_entry_text_style_user_push(en, user_style); evas_object_data_set(obj, "realentry", en); const char* cur_style = elm_entry_text_style_user_peek(en); /* if (cur_style) printf("Current style user: %s\n", cur_style); else printf("Style user stack is empty.\n"); */ const char* yep = "aaa"; /* elm_object_text_set(en, "aaa"); if (test == 1) yep = "xxx"; if (test == 2) yep = "yyy"; if (test == 3) yep = "zzz"; test++; */ elm_object_text_set(en, yep); evas_object_name_set(en, yep); //elm_entry_scrollable_set(en, EINA_TRUE); //elm_entry_scrollbar_policy_set(en, // ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); //evas_object_smart_member_add(rect, en); elm_layout_content_set(obj, "content", en); elm_widget_sub_object_add(obj, en); evas_object_show(en); elm_widget_can_focus_set(obj, EINA_TRUE); elm_layout_sizing_eval(obj); evas_object_data_set(en, "smart", obj); /* evas_object_smart_callback_add(en, "activated", _entry_activated, obj); evas_object_smart_callback_add(en, "unfocused", _entry_unfocused, obj); evas_object_smart_callback_add(en, "changed,user", _entry_changed, obj); //evas_object_smart_callback_add(en, "focused", _select_all, pd); //evas_object_smart_callback_add(en, "selection,changed", _print_signal, "selection changed"); evas_object_smart_callback_add(en, "selection,cleared", _entry_cleared, pd); //evas_object_smart_callback_add(en, "selection,start", _print_signal, "selection start"); //evas_object_smart_callback_add(en, "clicked", _print_signal, "clicked"); //evas_object_smart_callback_add(en, "cursor,changed", _print_signal, "cursor,changed"); //evas_object_smart_callback_add(en, "cursor,changed,manual", _print_signal, "cursor,changed,manual"); elm_layout_signal_callback_add(obj, "mouse,down,1", "bg",_ondown, pd); elm_layout_signal_callback_add(obj, "mouse,move", "bg", _onmove, obj); elm_layout_signal_callback_add(obj, "mouse,up,1", "bg", _onup, obj); elm_layout_signal_callback_add(obj, "mouse,clicked,1", "bg", _onclicked, pd); elm_layout_signal_callback_add(obj, "drag", "*", _drag_cb, obj); elm_layout_signal_callback_add(obj, "drag,start", "*", _drag_start_cb, obj); elm_layout_signal_callback_add(obj, "drag,stop", "*", _drag_stop_cb, obj); elm_layout_signal_callback_add(obj, "drag,step", "*", _drag_stop_cb, obj); elm_layout_signal_callback_add(obj, "drag,page", "*", _drag_stop_cb, obj); */ }
void _efl_ui_slider_interval_val_fetch(Evas_Object *obj, Efl_Ui_Slider_Interval_Data *pd, Eina_Bool user_event) { double posx = 0.0, posy = 0.0, pos = 0.0, val; double posx2 = 0.0, posy2 = 0.0, pos2 = 0.0, val2; EFL_UI_SLIDER_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); if (elm_widget_is_legacy(obj)) efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable.slider"), &posx, &posy); else efl_ui_drag_value_get(efl_part(wd->resize_obj, "efl.dragable.slider"), &posx, &posy); if (efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) pos = posx; else pos = posy; if (elm_widget_is_legacy(obj)) efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable2.slider"), &posx2, &posy2); else efl_ui_drag_value_get(efl_part(wd->resize_obj, "efl.dragable2.slider"), &posx2, &posy2); if (efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) pos2 = posx2; else pos2 = posy2; val = (pos * (sd->val_max - sd->val_min)) + sd->val_min; val2 = (pos2 * (sd->val_max - sd->val_min)) + sd->val_min; if (val > pd->intvl_to) { val = pd->intvl_to; efl_ui_slider_val_set(obj); } else if (val2 < pd->intvl_from) { val2 = pd->intvl_from; efl_ui_slider_val_set(obj); } if (fabs(val - pd->intvl_from) > DBL_EPSILON) { sd->val = val; pd->intvl_from = val; if (user_event) { efl_event_callback_call(obj, EFL_UI_SLIDER_EVENT_CHANGED, NULL); efl_event_callback_legacy_call(obj, EFL_UI_SLIDER_EVENT_CHANGED, NULL); ecore_timer_del(pd->delay); pd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj); } } if (fabs(val2 - pd->intvl_to) > DBL_EPSILON) { pd->intvl_to = val2; if (user_event) { efl_event_callback_call(obj, EFL_UI_SLIDER_EVENT_CHANGED, NULL); efl_event_callback_legacy_call(obj, EFL_UI_SLIDER_EVENT_CHANGED, NULL); ecore_timer_del(pd->delay); pd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj); } } }