EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *bg; Elm_Object_Item *it; const char *data_dir; elm_app_info_set(elm_main, "elementary", "images"); data_dir = "./data"; snprintf(img1, sizeof(img1), "%s/01.jpg", data_dir); snprintf(img2, sizeof(img2), "%s/02.jpg", data_dir); snprintf(img3, sizeof(img3), "%s/03.jpg", data_dir); snprintf(img4, sizeof(img4), "%s/04.jpg", data_dir); snprintf(img5, sizeof(img5), "%s/05.jpg", data_dir); snprintf(img6, sizeof(img6), "%s/06.jpg", data_dir); snprintf(img7, sizeof(img7), "%s/07.jpg", data_dir); snprintf(img8, sizeof(img8), "%s/08.jpg", data_dir); snprintf(img9, sizeof(img9), "%s/09.jpg", data_dir); win = eailu_create_test_window_with_glib_init(NULL, _on_focus_in); evas_object_resize(win, 600, 400); evas_object_show(win); bg = elm_bg_add(win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bg); evas_object_show(bg); slideshow = elm_slideshow_add(win); elm_slideshow_loop_set(slideshow, EINA_TRUE); elm_slideshow_cache_before_set(slideshow, 8); elm_slideshow_cache_after_set(slideshow, 8); evas_object_size_hint_weight_set(slideshow, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, slideshow); evas_object_show(slideshow); itc.func.get = _get; itc.func.del = NULL; elm_slideshow_item_sorted_insert(slideshow, &itc, img1, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img2, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img3, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img4, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img5, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img6, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img7, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img8, _cmp_func); elm_slideshow_item_sorted_insert(slideshow, &itc, img9, _cmp_func); /*show last item, otherwise tests fail*/ it = elm_slideshow_item_nth_get(slideshow, 8); elm_slideshow_item_show(it); elm_run(); elm_shutdown(); return 0; }
/* externally accessible functions */ Evas_Object * enna_photo_slideshow_add(Evas_Object *parent) { Smart_Data *sd; Evas_Object *bx, *bt, *ic; Evas_Coord w, h; sd = calloc(1, sizeof(Smart_Data)); sd->delay = enna_config->slideshow_delay; sd->layout = elm_layout_add(parent); elm_layout_file_set(sd->layout, enna_config_theme_get(), "enna/slideshow"); evas_object_size_hint_weight_set(sd->layout, 1.0, 1.0); evas_object_show(sd->layout); sd->slideshow = elm_slideshow_add(sd->layout); elm_slideshow_transition_set(sd->slideshow, "horizontal"); elm_slideshow_loop_set(sd->slideshow, 1); // sd->controls = elm_notify_add(sd->layout); // elm_notify_orient_set(sd->controls, ELM_NOTIFY_ORIENT_BOTTOM); evas_object_geometry_get(enna->layout, NULL, NULL, &w, &h); evas_object_move(sd->controls, 0, 0); evas_object_resize(sd->controls, w, h); //elm_object_style_set(sd->controls, "enna_bottom"); /* Fixme : add a config value */ // elm_notify_timeout_set(sd->controls, 10); bx = elm_box_add(sd->layout); elm_box_horizontal_set(bx, 1); // elm_notify_content_set(sd->controls, bx); evas_object_show(bx); evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_IN, _mouse_in, sd); evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_OUT, _mouse_out, sd); ELM_ADD ("icon/mp_prev", _button_clicked_prev_cb); ELM_ADD ("icon/mp_pause", _button_clicked_play_cb); sd->btplay = bt; ELM_ADD ("icon/mp_next", _button_clicked_next_cb); ELM_ADD ("icon/mp_stop", _button_clicked_stop_cb); sd->spin = elm_spinner_add(bx); elm_spinner_label_format_set(sd->spin, "%2.f secs."); evas_object_smart_callback_add(sd->spin, "changed", _spin, sd); elm_spinner_step_set(sd->spin, 1); elm_spinner_min_max_set(sd->spin, 1, 100); elm_spinner_value_set(sd->spin, sd->delay); elm_box_pack_end(bx, sd->spin); evas_object_show(sd->spin); #ifdef FEATURE_ROTATION ELM_ADD ("icon/rotate_ccw", _button_clicked_rotate_ccw_cb); ELM_ADD ("icon/rotate_cw", _button_clicked_rotate_cw_cb); #endif /* FEATURE_ROTATION */ evas_object_show(sd->layout); evas_object_show(sd->slideshow); elm_layout_content_set(sd->layout, "enna.content.swallow", sd->slideshow); evas_object_data_set(sd->layout, "sd", sd); sd->state = 4; /* Catch mouse wheel event */ evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel_cb, sd); /* connect to the input signal */ sd->listener = enna_input_listener_add("slideshow", _input_events_cb, sd->layout); enna_input_listener_demote(sd->listener); evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_MOUSE_UP, _controls_show, sd); evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_MOUSE_MOVE, _controls_show, sd); evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_DEL, _sd_del, sd); return sd->layout; }