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); } } }
//Update text objects, progress bar... //Called when an new frame is decoded void eclair_update(Eclair *eclair) { char time_elapsed[10]; double position, length; if (!eclair) return; position = eclair_position_get(eclair); //Display subtitles eclair_subtitles_display_current_subtitle(&eclair->subtitles, eclair_position_get(eclair), eclair->video.subtitles_object); if (!eclair->video.video_object || !eclair->gui_window) return; //Update time text length = emotion_object_play_length_get(eclair->video.video_object); if (eclair->use_progress_bar_drag_for_time) { edje_object_part_drag_value_get(eclair->gui_window->edje_object, "progress_bar_drag", &position, NULL); position *= length; } eclair_utils_second_to_string(position, length, time_elapsed); eclair_all_windows_text_set(eclair, "time_elapsed", time_elapsed); //Update progress bar if (eclair->dont_update_progressbar) eclair->dont_update_progressbar = 0; else if (eclair->seek_to_pos >= 0.0) eclair->seek_to_pos = -1.0; edje_object_part_drag_value_set(eclair->gui_window->edje_object, "progress_bar_drag", position / length, 0.0); }
static void _scrolldrag(void *data, Evas_Object *o, const char *emission, const char *source) { double y; edje_object_part_drag_value_get(container_outer, "vbar_bar", NULL, &y); esmart_container_scroll_percent_set(container, y); }
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 _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; } }