/** * @brief Implementation of do action from AtkAction interface * * @param action EailSlideshow instance * @param i action index * * @returns TRUE on success, FALSE otherwise */ static gboolean eail_slideshow_do_action(AtkAction *action, gint i) { Evas_Object *widget; gboolean result; double slideshow_timeout; g_return_val_if_fail(EAIL_IS_SLIDESHOW(action), FALSE); widget = eail_widget_get_widget(EAIL_WIDGET(action)); if (!widget) return FALSE; if ((elm_object_disabled_get(widget)) || (!evas_object_visible_get(widget))) return FALSE; switch (i) { case 0: elm_slideshow_next(widget); result = TRUE; break; case 1: elm_slideshow_previous(widget); result = TRUE; break; case 2: elm_slideshow_timeout_set(widget, 0.0); result = TRUE; break; case 3: slideshow_timeout = elm_slideshow_timeout_get(widget); if (_double_cmp(slideshow_timeout, 0.0, 1)) { result = TRUE; elm_slideshow_timeout_set(widget, SLIDESHOW_DEFAULT_TIMEOUT); break; } result = FALSE; break; default: result = FALSE; break; } return result; }
static Eina_Bool _input_events_cb(void *data, enna_input event) { Smart_Data *sd = evas_object_data_get(data, "sd"); switch(event) { case ENNA_INPUT_LEFT: _button_clicked_prev_cb(sd, data, NULL); break; case ENNA_INPUT_RIGHT: _button_clicked_next_cb(sd, data, NULL); break; case ENNA_INPUT_OK: _button_clicked_play_cb(sd, data, NULL); break; #ifdef FEATURE_ROTATION case ENNA_INPUT_ROTATE_CW: _button_clicked_rotate_cw_cb(sd, data, NULL); break; case ENNA_INPUT_ROTATE_CCW: _button_clicked_rotate_ccw_cb(sd, data, NULL); break; #endif /* FEATURE_ROTATION */ case ENNA_INPUT_DOWN: sd->delay--; if (sd->delay < 1) sd->delay = 1; if (elm_slideshow_timeout_get(sd->slideshow)) elm_slideshow_timeout_set(sd->slideshow, sd->delay); elm_spinner_value_set(sd->spin, sd->delay); break; case ENNA_INPUT_UP: sd->delay++; if (sd->delay > 100) sd->delay = 100; if (elm_slideshow_timeout_get(sd->slideshow)) elm_slideshow_timeout_set(sd->slideshow, sd->delay); elm_spinner_value_set(sd->spin, sd->delay); break; default: break; } return ENNA_EVENT_CONTINUE; }
static void _spin(void *data, Evas_Object *obj, void *event_info) { Smart_Data *sd = data; sd->delay = (int)elm_spinner_value_get(sd->spin); if (elm_slideshow_timeout_get(sd->slideshow) > 0) elm_slideshow_timeout_set(sd->slideshow, sd->delay); }
static void _button_clicked_play_cb(void *data, Evas_Object *obj, void *event_info) { Smart_Data *sd = data; Evas_Object *ic; ic = elm_icon_add(obj); if (!elm_slideshow_timeout_get(sd->slideshow)) { elm_slideshow_timeout_set(sd->slideshow, sd->delay); elm_image_file_set(ic, enna_config_theme_get(), "icon/mp_pause"); } else { elm_slideshow_timeout_set(sd->slideshow, 0); elm_image_file_set(ic, enna_config_theme_get(), "icon/mp_play"); } elm_object_content_set(sd->btplay, ic); evas_object_size_hint_min_set(sd->btplay, 64, 64); evas_object_size_hint_weight_set(sd->btplay, 0.0, 1.0); evas_object_size_hint_align_set(sd->btplay, 0.5, 0.5); }
void enna_photo_slideshow_timeout_set(Evas_Object *obj, int to) { Smart_Data *sd = evas_object_data_get(obj, "sd"); elm_slideshow_timeout_set(sd->slideshow, to); }