gengrid:preview-00.png:widget_preview_gengrid:200:160 \
progressbar:preview-00.png:widget_preview_progressbar:150:50 \
box:preview-00.png:widget_preview_box:200:160 \
- notify:preview-00.png:widget_preview_notify:60:30
+ notify:preview-00.png:widget_preview_notify:60:30 \
+ slideshow:preview-00.png:widget_preview_slideshow:50:50
widget-build:
@$(MAKE) -C widgets
* @ref genlist_example_02
*
* @ref progressbar_example
+ *
+ * @ref slideshow_example
*/
/**
*/
/**
+ * @page slideshow_example Slideshow widget example
+ *
+ * This application is aimed to exemplify the slideshow widget. It
+ * consists of a window with a slideshow widget set as "resize
+ * object", along with a control bar, in the form of a notify. Those
+ * controls will exercise most of the slideshow's API functions.
+ *
+ * We create the slideshow, itself, first, making it @b loop on its
+ * image itens, when in slideshow mode:
+ * @dontinclude slideshow_example.c
+ * @skip slideshow = elm_slideshow_add
+ * @until evas_object_show
+ *
+ * Next, we define the <b>item class</b> for our slideshow
+ * items. Slideshow images are going to be Elementary @ref Photo "photo"
+ * widgets, here, as pointed by our @c get class
+ * function. We'll let the Elementary infrastructure to delete those
+ * objects for us, and, as there's no additional data attached to our
+ * slideshow items, the @c del class function can be left undefined:
+ * @dontinclude slideshow_example.c
+ * @skip itc
+ * @until ;
+ * @dontinclude slideshow_example.c
+ * @skip itc.func
+ * @until = NULL
+ * @dontinclude slideshow_example.c
+ * @skip get our images to make slideshow items
+ * @until }
+ *
+ * We now get to populate the slideshow widget with items. Our images
+ * are going to be some randomly chosen from the Elementary package,
+ * nine of them. For the first eight, we insert them ordered in the
+ * widget, by using elm_slideshow_item_sorted_insert(). The comparing
+ * function will use the image names to sort items. The last item is
+ * inserted at the end of the slideshow's items list, with
+ * elm_slideshow_item_add(). We check out how that list ends with
+ * elm_slideshow_items_get(), than:
+ * @dontinclude slideshow_example.c
+ * @skip static const char *img
+ * @until _2
+ * @dontinclude slideshow_example.c
+ * @skip first =
+ * @until data_get
+ *
+ * Note that we save the pointers to the first and last items in the
+ * slideshow, for future use.
+ *
+ * What follows is the code creating a notify, to be shown over the
+ * slideshow's viewport, with knobs to act on it. We're not showing
+ * that boilerplate code, but only the callbacks attached to the
+ * interesting smart events of those knobs. The first four are
+ * buttons, which will:
+ * - Select the @b next item in the slideshow
+ * - Select the @b previous item in the slideshow
+ * - Select the @b first item in the slideshow
+ * - Select the @b last item in the slideshow
+ *
+ * Check out the code for those four actions, being the two last @c
+ * data pointers the same @c first and @c last pointers we save
+ * before, respectively:
+ * @dontinclude slideshow_example.c
+ * @skip jump to next
+ * @until }
+ * @until }
+ * @until }
+ * @until }
+ *
+ * What follow are two hoversels, meant for one to change the
+ * slideshow's @b transition and @b layout styles, respectively. We
+ * fetch all the available transition and layout names to populate
+ * those widgets and, when one selects any of them, we apply the
+ * corresponding setters on the slideshow:
+ * @dontinclude slideshow_example.c
+ * @skip hv = elm_hoversel_add
+ * @until show(hv)
+ * @until show(hv)
+ * @dontinclude slideshow_example.c
+ * @skip transition changed
+ * @until }
+ * @until }
+ *
+ * For one to change the transition @b time on the slideshow widget,
+ * we use a spinner widget. We set it to the initial value of 3
+ * (seconds), which will be probed by the next knob -- a button
+ * starting the slideshow, de facto. Note that changing the transition
+ * time while a slideshow is already happening will ajust its
+ * transition time:
+ * @dontinclude slideshow_example.c
+ * @skip spin = elm_spinner_add
+ * @until evas_object_show
+ * @dontinclude slideshow_example.c
+ * @skip slideshow transition time has
+ * @until }
+ *
+ * Finally, we have two buttons which will, respectively, start and
+ * stop the slideshow on our widget. Here are their "clicked"
+ * callbacks:
+ * @dontinclude slideshow_example.c
+ * @skip start the show
+ * @until }
+ * @until }
+ *
+ * This is how the example program's window looks like:
+ * @image html screenshots/slideshow_example.png
+ * @image latex screenshots/slideshow_example.eps width=\textwidth
+ *
+ * See the full @ref slideshow_example_c "source code" for
+ * this example.
+ *
+ * @example slideshow_example.c
+ */
+
+/**
* @page bg_example_01_c bg_example_01.c
* @include bg_example_01.c
* @example bg_example_01.c
* @include progressbar_example.c
* @example progressbar_example.c
*/
+
+/**
+ * @page slideshow_example_c Slideshow example
+ * @include slideshow_example.c
+ * @example slideshow_example.c
+ */
* @image html img/widget/slider/preview-00.png
* @image latex img/widget/slider/preview-00.eps
* @li @ref Slideshow
+ *
+ * @image html img/widget/slideshow/preview-00.png
+ * @image latex img/widget/slideshow/preview-00.eps
* @li @ref Spinner
*
* @image html img/widget/spinner/preview-00.png
widget_preview_gengrid \
widget_preview_progressbar \
widget_preview_box \
-widget_preview_notify
+widget_preview_notify \
+widget_preview_slideshow
LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ @ELEMENTARY_EMAP_LIBS@ @ELEMENTARY_LIBS@ @EIO_LIBS@ @my_libs@
widget_preview_progressbar.c \
widget_preview_box.c \
widget_preview_notify.c \
+ widget_preview_slideshow.c \
widget_preview_tmpl_foot.c \
widget_preview_tmpl_head.c
--- /dev/null
+#include <Elementary.h>
+
+/* get our images to make slideshow items */
+static Evas_Object *
+_get(void *data,
+ Evas_Object *obj)
+{
+ Evas_Object *photo = elm_photo_add(obj);
+ elm_photo_file_set(photo, data);
+ elm_photo_fill_inside_set(photo, EINA_TRUE);
+ elm_object_style_set(photo, "shadow");
+
+ return photo;
+}
+
+#include "widget_preview_tmpl_head.c"
+
+static const char *img9 = PACKAGE_DATA_DIR "/images/logo.png";
+static Elm_Slideshow_Item_Class itc;
+
+Evas_Object *o = elm_slideshow_add(win);
+evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+elm_win_resize_object_add(win, o);
+evas_object_show(o);
+
+itc.func.get = _get;
+itc.func.del = NULL;
+
+elm_slideshow_timeout_set(o, 0.01);
+elm_slideshow_item_add(o, &itc, img9);
+
+#include "widget_preview_tmpl_foot.c"
panel_example_01.c \
gengrid_example.c \
entry_example.c \
+ slideshow_example.c \
progressbar_example.c \
notify_example_01.c
genlist_example_02 \
genlist_example_03 \
entry_example \
+ slideshow_example \
progressbar_example \
notify_example_01
entry_example:entry_example.png:0.0 \
progressbar_example:progressbar_example.png:0.0 \
notify_example_01:notify_example_01.png:0.0 \
- notify_example_01:notify_example_01_a.png:6.0
+ notify_example_01:notify_example_01_a.png:6.0 \
+ slideshow_example:slideshow_example.png:1.0
HTML_SS_DIR=$(top_builddir)/doc/html/screenshots
LATEX_SS_DIR=$(top_builddir)/doc/latex/screenshots
--- /dev/null
+/**
+ * Simple Elementary's <b>slide show widget</b> example, illustrating its
+ * usage and API.
+ *
+ * See stdout/stderr for output. Compile with:
+ *
+ * @verbatim
+ * gcc -g `pkg-config --cflags --libs elementary` slideshow_example.c -o slideshow_example
+ * @endverbatim
+ */
+
+#include <Elementary.h>
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#else
+# define __UNUSED__
+# define PACKAGE_DATA_DIR "../../data"
+#endif
+
+static void
+_on_done(void *data __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_exit();
+}
+
+static Evas_Object *slideshow, *bt_start, *bt_stop;
+static Elm_Slideshow_Item_Class itc;
+
+static const char *img1 = PACKAGE_DATA_DIR "/images/logo.png";
+static const char *img2 = PACKAGE_DATA_DIR "/images/plant_01.jpg";
+static const char *img3 = PACKAGE_DATA_DIR "/images/rock_01.jpg";
+static const char *img4 = PACKAGE_DATA_DIR "/images/rock_02.jpg";
+static const char *img5 = PACKAGE_DATA_DIR "/images/sky_01.jpg";
+static const char *img6 = PACKAGE_DATA_DIR "/images/sky_04.jpg";
+static const char *img7 = PACKAGE_DATA_DIR "/images/wood_01.jpg";
+static const char *img8 = PACKAGE_DATA_DIR "/images/mystrale.jpg";
+static const char *img9 = PACKAGE_DATA_DIR "/images/mystrale_2.jpg";
+
+static void
+_notify_show(void *data,
+ Evas *e __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ evas_object_show(data);
+}
+
+/* jump to next item, cyclically */
+static void
+_next(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_next(data);
+}
+
+static void
+_previous(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_previous(data);
+}
+
+static void
+_first(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_show(data);
+}
+
+static void
+_last(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_show(data);
+}
+
+static void
+_mouse_in(void *data,
+ Evas *e __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_notify_timeout_set(data, 0.0);
+ evas_object_show(data);
+}
+
+static void
+_mouse_out(void *data,
+ Evas *e __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_notify_timeout_set(data, 3.0);
+}
+
+/* transition changed */
+static void
+_transition_select(void *data,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_transition_set(slideshow, data);
+ elm_object_text_set(obj, data);
+}
+
+static void
+_layout_select(void *data,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_layout_set(slideshow, data);
+ elm_object_text_set(obj, data);
+}
+
+/* start the show! */
+static void
+_start(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_timeout_set(slideshow, elm_spinner_value_get(data));
+
+ elm_object_disabled_set(bt_start, EINA_TRUE);
+ elm_object_disabled_set(bt_stop, EINA_FALSE);
+}
+
+static void
+_stop(void *data __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_slideshow_timeout_set(slideshow, 0.0);
+ elm_object_disabled_set(bt_start, EINA_FALSE);
+ elm_object_disabled_set(bt_stop, EINA_TRUE);
+}
+
+/* slideshow transition time has changed */
+static void
+_spin(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ if (elm_slideshow_timeout_get(slideshow) > 0)
+ elm_slideshow_timeout_set(slideshow, elm_spinner_value_get(data));
+}
+
+/* get our images to make slideshow items */
+static Evas_Object *
+_get(void *data,
+ Evas_Object *obj)
+{
+ Evas_Object *photo = elm_photo_add(obj);
+ elm_photo_file_set(photo, data);
+ elm_photo_fill_inside_set(photo, EINA_TRUE);
+ elm_object_style_set(photo, "shadow");
+
+ return photo;
+}
+
+/* ordering alphabetically */
+static int
+_cmp_func(const void *data1,
+ const void *data2)
+{
+ const char *img_path1, *img_path2;
+
+ const Elm_Slideshow_Item *it1 = data1;
+ const Elm_Slideshow_Item *it2 = data2;
+
+ img_path1 = elm_slideshow_item_data_get(it1);
+ img_path2 = elm_slideshow_item_data_get(it2);
+
+ return strcasecmp(img_path1, img_path2);
+}
+
+int
+elm_main(int argc __UNUSED__,
+ char **argv __UNUSED__)
+{
+ Evas_Object *win, *bg, *notify, *bx, *bt, *hv, *spin;
+ Elm_Slideshow_Item *first, *last, *it;
+ const char *transition, *layout;
+ const Eina_List *l, *list;
+
+ win = elm_win_add(NULL, "slideshow", ELM_WIN_BASIC);
+ elm_win_title_set(win, "Slideshow example");
+ evas_object_smart_callback_add(win, "delete,request", _on_done, NULL);
+
+ bg = elm_bg_add(win);
+ elm_win_resize_object_add(win, bg);
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(bg);
+
+ slideshow = elm_slideshow_add(win);
+ elm_slideshow_loop_set(slideshow, EINA_TRUE);
+ elm_win_resize_object_add(win, slideshow);
+ evas_object_size_hint_weight_set(slideshow,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(slideshow);
+
+ itc.func.get = _get;
+ itc.func.del = NULL;
+
+ first = 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);
+ last = elm_slideshow_item_add(slideshow, &itc, img9);
+
+ list = elm_slideshow_items_get(slideshow);
+ fprintf(stdout, "List of items in the slideshow:\n");
+ EINA_LIST_FOREACH(list, l, it)
+ fprintf(stdout, "\t%s\n",
+ (const char *)elm_slideshow_item_data_get(it));
+
+ notify = elm_notify_add(win);
+ elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
+ elm_win_resize_object_add(win, notify);
+ elm_notify_timeout_set(notify, 3.0);
+
+ bx = elm_box_add(win);
+ elm_box_horizontal_set(bx, EINA_TRUE);
+ elm_notify_content_set(notify, bx);
+ evas_object_show(bx);
+
+ evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_IN, _mouse_in,
+ notify);
+ evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_OUT, _mouse_out,
+ notify);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Previous");
+ evas_object_smart_callback_add(bt, "clicked", _previous, slideshow);
+ elm_box_pack_end(bx, bt);
+ evas_object_show(bt);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Next");
+ evas_object_smart_callback_add(bt, "clicked", _next, slideshow);
+ elm_box_pack_end(bx, bt);
+ evas_object_show(bt);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "First");
+ evas_object_smart_callback_add(bt, "clicked", _first, first);
+ elm_box_pack_end(bx, bt);
+ evas_object_show(bt);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Last");
+ evas_object_smart_callback_add(bt, "clicked", _last, last);
+ elm_box_pack_end(bx, bt);
+ evas_object_show(bt);
+
+ hv = elm_hoversel_add(win);
+ elm_box_pack_end(bx, hv);
+ elm_hoversel_hover_parent_set(hv, win);
+ EINA_LIST_FOREACH(elm_slideshow_transitions_get(slideshow), l, transition)
+ elm_hoversel_item_add(hv, transition, NULL, 0, _transition_select,
+ transition);
+ elm_object_text_set(hv, eina_list_data_get(
+ elm_slideshow_transitions_get(slideshow)));
+ evas_object_show(hv);
+
+ hv = elm_hoversel_add(win);
+ elm_box_pack_end(bx, hv);
+ elm_hoversel_hover_parent_set(hv, win);
+ EINA_LIST_FOREACH(elm_slideshow_layouts_get(slideshow), l, layout)
+ elm_hoversel_item_add(hv, layout, NULL, 0, _layout_select, layout);
+ elm_object_text_set(hv, elm_slideshow_layout_get(slideshow));
+ evas_object_show(hv);
+
+ spin = elm_spinner_add(win);
+ elm_spinner_label_format_set(spin, "%2.0f s");
+ evas_object_smart_callback_add(spin, "changed", _spin, spin);
+ elm_spinner_step_set(spin, 1);
+ elm_spinner_min_max_set(spin, 1, 30);
+ elm_spinner_value_set(spin, 3);
+ elm_box_pack_end(bx, spin);
+ evas_object_show(spin);
+
+ bt = elm_button_add(win);
+ bt_start = bt;
+ elm_object_text_set(bt, "Start");
+ evas_object_smart_callback_add(bt, "clicked", _start, spin);
+ elm_box_pack_end(bx, bt);
+ evas_object_show(bt);
+
+ bt = elm_button_add(win);
+ bt_stop = bt;
+ elm_object_text_set(bt, "Stop");
+ evas_object_smart_callback_add(bt, "clicked", _stop, spin);
+ elm_box_pack_end(bx, bt);
+ elm_object_disabled_set(bt, EINA_TRUE);
+ evas_object_show(bt);
+
+ evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_UP,
+ _notify_show, notify);
+ evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_MOVE,
+ _notify_show, notify);
+
+ _notify_show(notify, NULL, NULL, NULL);
+
+ evas_object_resize(win, 600, 400);
+ evas_object_show(win);
+
+ elm_run();
+ return 0;
+}
+
+ELM_MAIN()
* @}
*/
- typedef struct _Elm_Slideshow_Item_Class Elm_Slideshow_Item_Class;
- typedef struct _Elm_Slideshow_Item_Class_Func Elm_Slideshow_Item_Class_Func;
- typedef struct _Elm_Slideshow_Item Elm_Slideshow_Item; /**< Item of Elm_Slideshow. Sub-type of Elm_Widget_Item */
- typedef Evas_Object *(*SlideshowItemGetFunc) (void *data, Evas_Object *obj);
- typedef void (*SlideshowItemDelFunc) (void *data, Evas_Object *obj);
+ /**
+ * @defgroup Slideshow Slideshow
+ *
+ * @image html img/widget/slideshow/preview-00.png
+ * @image latex img/widget/slideshow/preview-00.eps
+ *
+ * This widget, as the name indicates, is a pre-made image
+ * slideshow panel, with API functions acting on (child) image
+ * items presentation. Between those actions, are:
+ * - advance to next/previous image
+ * - select the style of image transition animation
+ * - set the exhibition time for each image
+ * - start/stop the slideshow
+ *
+ * The transition animations are defined in the widget's theme,
+ * consequently new animations can be added without having to
+ * update the widget's code.
+ *
+ * @section Slideshow_Items Slideshow items
+ *
+ * For slideshow items, just like for @ref Genlist "genlist" ones,
+ * the user defines a @b classes, specifying functions that will be
+ * called on the item's creation and deletion times.
+ *
+ * The #Elm_Slideshow_Item_Class structure contains the following
+ * members:
+ *
+ * - @c func.get - When an item is displayed, this function is
+ * called, and it's where one should create the item object, de
+ * facto. For example, the object can be a pure Evas image object
+ * or an Elementary @ref Photocam "photocam" widget. See
+ * #SlideshowItemGetFunc.
+ * - @c func.del - When an item is no more displayed, this function
+ * is called, where the user must delete any data associated to
+ * the item. See #SlideshowItemDelFunc.
+ *
+ * @section Slideshow_Caching Slideshow caching
+ *
+ * The slideshow provides facilities to have items adjacent to the
+ * one being displayed <b>already "realized"</b> (i.e. loaded) for
+ * you, so that the system does not have to decode image data
+ * anymore at the time it has to actually switch images on its
+ * viewport. The user is able to set the numbers of items to be
+ * cached @b before and @b after the current item, in the widget's
+ * item list.
+ *
+ * Smart events one can add callbacks for are:
+ *
+ * - @c "changed" - when the slideshow switches its view to a new
+ * item
+ *
+ * List of examples for the slideshow widget:
+ * @li @ref slideshow_example
+ */
+ /**
+ * @addtogroup Slideshow
+ * @{
+ */
+
+ typedef struct _Elm_Slideshow_Item_Class Elm_Slideshow_Item_Class; /**< Slideshow item class definition struct */
+ typedef struct _Elm_Slideshow_Item_Class_Func Elm_Slideshow_Item_Class_Func; /**< Class functions for slideshow item classes. */
+ typedef struct _Elm_Slideshow_Item Elm_Slideshow_Item; /**< Slideshow item handle */
+ typedef Evas_Object *(*SlideshowItemGetFunc) (void *data, Evas_Object *obj); /**< Image fetching class function for slideshow item classes. */
+ typedef void (*SlideshowItemDelFunc) (void *data, Evas_Object *obj); /**< Deletion class function for slideshow item classes. */
+
+ /**
+ * @struct _Elm_Slideshow_Item_Class
+ *
+ * Slideshow item class definition. See @ref Slideshow_Items for
+ * field details.
+ */
struct _Elm_Slideshow_Item_Class
{
struct _Elm_Slideshow_Item_Class_Func
SlideshowItemGetFunc get;
SlideshowItemDelFunc del;
} func;
- };
+ }; /**< #Elm_Slideshow_Item_Class member definitions */
+ /**
+ * Add a new slideshow widget to the given parent Elementary
+ * (container) object
+ *
+ * @param parent The parent object
+ * @return A new slideshow widget handle or @c NULL, on errors
+ *
+ * This function inserts a new slideshow widget on the canvas.
+ *
+ * @ingroup Slideshow
+ */
EAPI Evas_Object *elm_slideshow_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+ /**
+ * Add (append) a new item in a given slideshow widget.
+ *
+ * @param obj The slideshow object
+ * @aram itc The item class for the item
+ * @param data The item's data
+ * @return A handle to the item added or @c NULL, on errors
+ *
+ * Add a new item to @p obj's internal list of items, appending it.
+ * The item's class must contain the function really fetching the
+ * image object to show for this item, which could be an Evas image
+ * object or an Elementary photo, for example. The @p data
+ * parameter is going to be passed to both class functions of the
+ * item.
+ *
+ * @see #Elm_Slideshow_Item_Class
+ * @see elm_slideshow_item_sorted_insert()
+ *
+ * @ingroup Slideshow
+ */
EAPI Elm_Slideshow_Item *elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data) EINA_ARG_NONNULL(1);
+
+ /**
+ * Insert a new item into the given slideshow widget, using the @p func
+ * function to sort items (by item handles).
+ *
+ * @param obj The slideshow object
+ * @aram itc The item class for the item
+ * @param data The item's data
+ * @param func The comparing function to be used to sort slideshow
+ * items <b>by #Elm_Slideshow_Item item handles</b>
+ * @return Returns The slideshow item handle, on success, or
+ * @c NULL, on errors
+ *
+ * Add a new item to @p obj's internal list of items, in a position
+ * determined by the @p func comparing function. The item's class
+ * must contain the function really fetching the image object to
+ * show for this item, which could be an Evas image object or an
+ * Elementary photo, for example. The @p data parameter is going to
+ * be passed to both class functions of the item.
+ *
+ * @see #Elm_Slideshow_Item_Class
+ * @see elm_slideshow_item_add()
+ *
+ * @ingroup Slideshow
+ */
EAPI Elm_Slideshow_Item *elm_slideshow_item_sorted_insert(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data, Eina_Compare_Cb func) EINA_ARG_NONNULL(1);
+
+ /**
+ * Display a given slideshow widget's item, programmatically.
+ *
+ * @param obj The slideshow object
+ * @param item The item to display on @p obj's viewport
+ *
+ * The change between the current item and @p item will use the
+ * transition @p obj is set to use (@see
+ * elm_slideshow_transition_set()).
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_show(Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Slide to the @b next item, in a given slideshow widget
+ *
+ * @param obj The slideshow object
+ *
+ * The sliding animation @p obj is set to use will be the
+ * transition effect used, after this call is issued.
+ *
+ * @note If the end of the slideshow's internal list of items is
+ * reached, it'll wrap around to the list's beginning, again.
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Slide to the @b previous item, in a given slideshow widget
+ *
+ * @param obj The slideshow object
+ *
+ * The sliding animation @p obj is set to use will be the
+ * transition effect used, after this call is issued.
+ *
+ * @note If the beginning of the slideshow's internal list of items
+ * is reached, it'll wrap around to the list's end, again.
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_previous(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Returns the list of sliding transition/effect names available, for a
+ * given slideshow widget.
+ *
+ * @param obj The slideshow object
+ * @return The list of transitions (list of @b stringshared strings
+ * as data)
+ *
+ * The transitions, which come from @p obj's theme, must be an EDC
+ * data item named @c "transitions" on the theme file, with (prefix)
+ * names of EDC programs actually implementing them.
+ *
+ * The available transitions for slideshows on the default theme are:
+ * - @c "fade" - the current item fades out, while the new one
+ * fades in to the slideshow's viewport.
+ * - @c "black_fade" - the current item fades to black, and just
+ * then, the new item will fade in.
+ * - @c "horizontal" - the current item slides horizontally, until
+ * it gets out of the slideshow's viewport, while the new item
+ * comes from the left to take its place.
+ * - @c "vertical" - the current item slides vertically, until it
+ * gets out of the slideshow's viewport, while the new item comes
+ * from the bottom to take its place.
+ * - @c "square" - the new item starts to appear from the middle of
+ * the current one, but with a tiny size, growing until its
+ * target (full) size and covering the old one.
+ *
+ * @warning The stringshared strings get no new references
+ * exclusive to the user grabbing the list, here, so if you'd like
+ * to use them out of this call's context, you'd better @c
+ * eina_stringshare_ref() them.
+ *
+ * @see elm_slideshow_transition_set()
+ *
+ * @ingroup Slideshow
+ */
EAPI const Eina_List *elm_slideshow_transitions_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the current slide transition/effect in use for a given
+ * slideshow widget
+ *
+ * @param obj The slideshow object
+ * @param transition The new transition's name string
+ *
+ * If @p transition is implemented in @p obj's theme (i.e., is
+ * contained in the list returned by
+ * elm_slideshow_transitions_get()), this new sliding effect will
+ * be used on the widget.
+ *
+ * @see elm_slideshow_transitions_get() for more details
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_transition_set(Evas_Object *obj, const char *transition) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the current slide transition/effect in use for a given
+ * slideshow widget
+ *
+ * @param obj The slideshow object
+ * @return The current transition's name
+ *
+ * @see elm_slideshow_transition_set() for more details
+ *
+ * @ingroup Slideshow
+ */
EAPI const char *elm_slideshow_transition_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the interval between each image transition on a given
+ * slideshow widget, <b>and start the slideshow, itself</b>
+ *
+ * @param obj The slideshow object
+ * @param timeout The new displaying timeout for images
+ *
+ * After this call, the slideshow widget will start cycling its
+ * view, sequentially and automatically, with the images of the
+ * items it has. The time between each new image displayed is going
+ * to be @p timeout, in @b seconds. If a different timeout was set
+ * previously and an slideshow was in progress, it will continue
+ * with the new time between transitions, after this call.
+ *
+ * @note A value less than or equal to 0 on @p timeout will disable
+ * the widget's internal timer, thus halting any slideshow which
+ * could be happening on @p obj.
+ *
+ * @see elm_slideshow_timeout_get()
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_timeout_set(Evas_Object *obj, double timeout) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the interval set for image transitions on a given slideshow
+ * widget.
+ *
+ * @param obj The slideshow object
+ * @return Returns the timeout set on it
+ *
+ * @see elm_slideshow_timeout_set() for more details
+ *
+ * @ingroup Slideshow
+ */
EAPI double elm_slideshow_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set if, after a slideshow is started, for a given slideshow
+ * widget, its items should be displayed cyclically or not.
+ *
+ * @param obj The slideshow object
+ * @param loop Use @c EINA_TRUE to make it cycle through items or
+ * @c EINA_FALSE for it to stop at the end of @p obj's internal
+ * list of items
+ *
+ * @note elm_slideshow_next() and elm_slideshow_previous() will @b
+ * ignore what is set by this functions, i.e., they'll @b always
+ * cycle through items. This affects only the "automatic"
+ * slideshow, as set by elm_slideshow_timeout_set().
+ *
+ * @see elm_slideshow_loop_get()
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_loop_set(Evas_Object *obj, Eina_Bool loop) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get if, after a slideshow is started, for a given slideshow
+ * widget, its items are to be displayed cyclically or not.
+ *
+ * @param obj The slideshow object
+ * @return @c EINA_TRUE, if the items in @p obj will be cycled
+ * through or @c EINA_FALSE, otherwise
+ *
+ * @see elm_slideshow_loop_set() for more details
+ *
+ * @ingroup Slideshow
+ */
EAPI Eina_Bool elm_slideshow_loop_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Remove all items from a given slideshow widget
+ *
+ * @param obj The slideshow object
+ *
+ * This removes (and deletes) all items in @p obj, leaving it
+ * empty.
+ *
+ * @see elm_slideshow_item_del(), to remove just one item.
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the internal list of items in a given slideshow widget.
+ *
+ * @param obj The slideshow object
+ * @return The list of items (#Elm_Slideshow_Item as data) or
+ * @c NULL on errors.
+ *
+ * This list is @b not to be modified in any way and must not be
+ * freed. Use the list members with functions like
+ * elm_slideshow_item_del(), elm_slideshow_item_data_get().
+ *
+ * @warning This list is only valid until @p obj object's internal
+ * items list is changed. It should be fetched again with another
+ * call to this function when changes happen.
+ *
+ * @ingroup Slideshow
+ */
EAPI const Eina_List *elm_slideshow_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Delete a given item from a slideshow widget.
+ *
+ * @param item The slideshow item
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_item_del(Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Return the data associated with a given slideshow item
+ *
+ * @param item The slideshow item
+ * @return Returns the data associated to this item
+ *
+ * @ingroup Slideshow
+ */
EAPI void *elm_slideshow_item_data_get(const Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Returns the currently displayed item, in a given slideshow widget
+ *
+ * @param obj The slideshow object
+ * @return A handle to the item being displayed in @p obj or
+ * @c NULL, if none is (and on errors)
+ *
+ * @ingroup Slideshow
+ */
EAPI Elm_Slideshow_Item *elm_slideshow_item_current_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the real Evas object created to implement the view of a
+ * given slideshow item
+ *
+ * @param item The slideshow item.
+ * @return the Evas object implementing this item's view.
+ *
+ * This returns the actual Evas object used to implement the
+ * specified slideshow item's view. This may be @c NULL, as it may
+ * not have been created or may have been deleted, at any time, by
+ * the slideshow. <b>Do not modify this object</b> (move, resize,
+ * show, hide, etc.), as the slideshow is controlling it. This
+ * function is for querying, emitting custom signals or hooking
+ * lower level callbacks for events on that object. Do not delete
+ * this object under any circumstances.
+ *
+ * @see elm_slideshow_item_data_get()
+ *
+ * @ingroup Slideshow
+ */
EAPI Evas_Object* elm_slideshow_item_object_get(const Elm_Slideshow_Item* item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the the item, in a given slideshow widget, placed at
+ * position @p nth, in its internal items list
+ *
+ * @param obj The slideshow object
+ * @param nth The number of the item to grab a handle to (0 being
+ * the first)
+ * @return The item stored in @p obj at position @p nth or @c NULL,
+ * if there's no item with that index (and on errors)
+ *
+ * @ingroup Slideshow
+ */
EAPI Elm_Slideshow_Item *elm_slideshow_item_nth_get(const Evas_Object *obj, unsigned int nth) EINA_ARG_NONNULL(1);
- EAPI const char *elm_slideshow_layout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the current slide layout in use for a given slideshow widget
+ *
+ * @param obj The slideshow object
+ * @param layout The new layout's name string
+ *
+ * If @p layout is implemented in @p obj's theme (i.e., is contained
+ * in the list returned by elm_slideshow_layouts_get()), this new
+ * images layout will be used on the widget.
+ *
+ * @see elm_slideshow_layouts_get() for more details
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_layout_set(Evas_Object *obj, const char *layout) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the current slide layout in use for a given slideshow widget
+ *
+ * @param obj The slideshow object
+ * @return The current layout's name
+ *
+ * @see elm_slideshow_layout_set() for more details
+ *
+ * @ingroup Slideshow
+ */
+ EAPI const char *elm_slideshow_layout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Returns the list of @b layout names available, for a given
+ * slideshow widget.
+ *
+ * @param obj The slideshow object
+ * @return The list of layouts (list of @b stringshared strings
+ * as data)
+ *
+ * Slideshow layouts will change how the widget is to dispose each
+ * image item in its viewport, with regard to cropping, scaling,
+ * etc.
+ *
+ * The layouts, which come from @p obj's theme, must be an EDC
+ * data item name @c "layouts" on the theme file, with (prefix)
+ * names of EDC programs actually implementing them.
+ *
+ * The available layouts for slideshows on the default theme are:
+ * - @c "fullscreen" - item images with original aspect, scaled to
+ * touch top and down slideshow borders or, if the image's heigh
+ * is not enough, left and right slideshow borders.
+ * - @c "not_fullscreen" - the same behavior as the @c "fullscreen"
+ * one, but always leaving 10% of the slideshow's dimensions of
+ * distance between the item image's borders and the slideshow
+ * borders, for each axis.
+ *
+ * @warning The stringshared strings get no new references
+ * exclusive to the user grabbing the list, here, so if you'd like
+ * to use them out of this call's context, you'd better @c
+ * eina_stringshare_ref() them.
+ *
+ * @see elm_slideshow_layout_set()
+ *
+ * @ingroup Slideshow
+ */
EAPI const Eina_List *elm_slideshow_layouts_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the number of items to cache, on a given slideshow widget,
+ * <b>before the current item</b>
+ *
+ * @param obj The slideshow object
+ * @param count Number of items to cache before the current one
+ *
+ * The default value for this property is @c 2. See
+ * @ref Slideshow_Caching "slideshow caching" for more details.
+ *
+ * @see elm_slideshow_cache_before_get()
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_cache_before_set(Evas_Object *obj, int count) EINA_ARG_NONNULL(1);
+
+ /**
+ * Retrieve the number of items to cache, on a given slideshow widget,
+ * <b>before the current item</b>
+ *
+ * @param obj The slideshow object
+ * @return The number of items set to be cached before the current one
+ *
+ * @see elm_slideshow_cache_before_set() for more details
+ *
+ * @ingroup Slideshow
+ */
EAPI int elm_slideshow_cache_before_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the number of items to cache, on a given slideshow widget,
+ * <b>after the current item</b>
+ *
+ * @param obj The slideshow object
+ * @param count Number of items to cache after the current one
+ *
+ * The default value for this property is @c 2. See
+ * @ref Slideshow_Caching "slideshow caching" for more details.
+ *
+ * @see elm_slideshow_cache_after_get()
+ *
+ * @ingroup Slideshow
+ */
EAPI void elm_slideshow_cache_after_set(Evas_Object *obj, int count) EINA_ARG_NONNULL(1);
+
+ /**
+ * Retrieve the number of items to cache, on a given slideshow widget,
+ * <b>after the current item</b>
+ *
+ * @param obj The slideshow object
+ * @return The number of items set to be cached after the current one
+ *
+ * @see elm_slideshow_cache_after_set() for more details
+ *
+ * @ingroup Slideshow
+ */
EAPI int elm_slideshow_cache_after_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the number of items stored in a given slideshow widget
+ *
+ * @param obj The slideshow object
+ * @return The number of items on @p obj, at the moment of this call
+ *
+ * @ingroup Slideshow
+ */
EAPI unsigned int elm_slideshow_count_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- /* smart callbacks called:
- * "changed" - when the slideshow switch to another item
+
+ /**
+ * @}
*/
/**
#include <Elementary.h>
#include "elm_priv.h"
-/**
- * @defgroup Slideshow Slideshow
- *
- * This object display a list of object (generally a list of images) and some actions like
- * next/previous are used to navigate. The animations are defined in the theme,
- * consequently new animations can be added without having to update the
- * applications.
- *
- * The slideshow use 2 callbacks to create and delete the objects displayed. When an item
- * is displayed the function itc->func.get() is called. This function should create the object,
- * for example the object can be an evas_object_image or a photocam. When an object is no more
- * displayed the function itc->func.del() is called, the user can delete the dana associated to the item.
- *
- * Signals that you can add callbacks for are:
- *
- * "changed" - when the slideshow switch to another item
- */
-
typedef struct _Widget_Data Widget_Data;
struct _Elm_Slideshow_Item
return ECORE_CALLBACK_CANCEL;
}
-/**
- * Add a new slideshow to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Slideshow
- */
EAPI Evas_Object *
elm_slideshow_add(Evas_Object *parent)
{
return obj;
}
-/**
- * Add an object in the list. The object can be a evas object image or a elm photo for example.
- *
- * @param obj The slideshow object
- * @aram itc Callbacks used to create the object and delete the data associated when the item is deleted.
- * @param data Data used by the user to identified the item
- * @return Returns The slideshow item
- *
- * @ingroup Slideshow
- */
EAPI Elm_Slideshow_Item*
elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data)
{
return item;
}
-/**
- * Insert an object in the list. The object can be a evas object image or a elm photo for example.
- *
- * @param obj The slideshow object
- * @aram itc Callbacks used to create the object and delete the data associated when the item is deleted.
- * @param data Data used by the user to identified the item
- * @param func The function to compare data
- * @return Returns The slideshow item
- *
- * @ingroup Slideshow
- */
EAPI Elm_Slideshow_Item*
elm_slideshow_item_sorted_insert(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data, Eina_Compare_Cb func)
{
return item;
}
-/**
- * Go to the item
- *
- * @param obj The slideshow object
- * @param item The item
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_show(Elm_Slideshow_Item *item)
{
evas_object_smart_callback_call(item->base.widget, SIG_CHANGED, wd->current);
}
-/**
- * Go to the next item
- *
- * @param obj The slideshow object
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_next(Evas_Object *obj)
{
evas_object_smart_callback_call(obj, SIG_CHANGED, wd->current);
}
-/**
- * Go to the previous item
- *
- * @param obj The slideshow object
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_previous(Evas_Object *obj)
{
evas_object_smart_callback_call(obj, SIG_CHANGED, wd->current);
}
-/**
- * Returns the list of transitions available.
- *
- * @param obj The slideshow object
- * @return Returns the list of transitions (list of const char*)
- *
- * @ingroup Slideshow
- */
EAPI const Eina_List *
elm_slideshow_transitions_get(const Evas_Object *obj)
{
return wd->transitions;
}
-/**
- * Returns the list of layouts available.
- *
- * @param obj The slideshow object
- * @return Returns the list of layout (list of const char*)
- *
- * @ingroup Slideshow
- */
EAPI const Eina_List *
elm_slideshow_layouts_get(const Evas_Object *obj)
{
return wd->layout.list;
}
-/**
- * Set the transition to use
- *
- * @param obj The slideshow object
- * @param transition the new transition
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_transition_set(Evas_Object *obj, const char *transition)
{
eina_stringshare_replace(&wd->transition, transition);
}
-/**
- * Returns the transition to use
- *
- * @param obj The slideshow object
- * @return the transition set
- *
- * @ingroup Slideshow
- */
EAPI const char *
elm_slideshow_transition_get(const Evas_Object *obj)
{
return wd->transition;
}
-/**
- * The slideshow can go to the next item automatically after a few seconds.
- * This method set the timeout to use. A timeout <=0 disable the timer.
- *
- * @param obj The slideshow object
- * @param timeout The new timeout
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_timeout_set(Evas_Object *obj, double timeout)
{
wd->timer = ecore_timer_add(timeout, _timer_cb, obj);
}
-/**
- * Returns the timeout value
- *
- * @param obj The slideshow object
- * @return Returns the timeout
- *
- * @ingroup Slideshow
- */
EAPI double
elm_slideshow_timeout_get(const Evas_Object *obj)
{
return wd->timeout;
}
-/**
- * Set if the first item should follow the last and vice versa
- *
- * @param obj The slideshow object
- * @param loop if EINA_TRUE, the first item will follow the last and vice versa
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_loop_set(Evas_Object *obj, Eina_Bool loop)
{
wd->loop = loop;
}
-/**
- * Returns the current layout name
- *
- * @param obj The slideshow object
- * @returns Returns the layout name
- *
- * @ingroup Slideshow
- */
EAPI const char *
elm_slideshow_layout_get(const Evas_Object *obj)
{
return wd->layout.current;
}
-/**
- * Set the layout
- *
- * @param obj The slideshow object
- * @param layout the new layout
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_layout_set(Evas_Object *obj, const char *layout)
{
edje_object_signal_emit(wd->slideshow, buf, "slideshow");
}
-/**
- * Return if the first item should follow the last and vice versa
- *
- * @param obj The slideshow object
- * @returns Returns the loop flag
- *
- * @ingroup Slideshow
- */
EAPI Eina_Bool
elm_slideshow_loop_get(const Evas_Object *obj)
{
return wd->loop;
}
-/**
- * Delete all the items
- *
- * @param obj The slideshow object
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_clear(Evas_Object *obj)
{
}
}
-/**
- * Delete the item
- *
- * @param item The slideshow item
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_item_del(Elm_Slideshow_Item *item)
{
free(item);
}
-/**
- * Returns the list of items
- * @param obj The slideshow object
- * @return Returns the list of items (list of Elm_Slideshow_Item).
- *
- * @ingroup Slideshow
- */
EAPI const Eina_List *
elm_slideshow_items_get(const Evas_Object *obj)
{
return wd->items;
}
-/**
- * Returns the current item displayed
- *
- * @param obj The slideshow object
- * @return Returns the current item displayed
- *
- * @ingroup Slideshow
- */
EAPI Elm_Slideshow_Item *
elm_slideshow_item_current_get(const Evas_Object *obj)
{
return wd->current;
}
-/**
- * Returns the evas object associated to an item
- *
- * @param item The slideshow item
- * @return Returns the evas object associated to this item
- *
- * @ingroup Slideshow
- */
EAPI Evas_Object *
elm_slideshow_item_object_get(const Elm_Slideshow_Item * item)
{
return item->base.view;
}
-/**
- * Returns the data associated to an item
- *
- * @param item The slideshow item
- * @return Returns the data associated to this item
- *
- * @ingroup Slideshow
- */
EAPI void *
elm_slideshow_item_data_get(const Elm_Slideshow_Item * item)
{
return elm_widget_item_data_get(item);
}
-/**
- * Returns max amount of cached items before current
- *
- * @param obj The slideshow object
- * @return Returns max amount of cached items
- *
- * @ingroup Slideshow
- */
EAPI int
elm_slideshow_cache_before_get(const Evas_Object *obj)
{
return wd->count_item_pre_before;
}
-/**
- * Set max amount of cached items before current
- *
- * @param obj The slideshow object
- * @param count Max amount of cached items
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_cache_before_set(Evas_Object *obj, int count)
{
wd->count_item_pre_before = count;
}
-/**
- * Returns max amount of cached items after current
- *
- * @param obj The slideshow object
- * @return Returns max amount of cached items
- *
- * @ingroup Slideshow
- */
EAPI int
elm_slideshow_cache_after_get(const Evas_Object *obj)
{
return wd->count_item_pre_after;
}
-/**
- * Set max amount of cached items after current
- *
- * @param obj The slideshow object
- * @param count max amount of cached items
- *
- * @ingroup Slideshow
- */
EAPI void
elm_slideshow_cache_after_set(Evas_Object *obj, int count)
{
wd->count_item_pre_after = count;
}
-/**
- * Get the nth item of the slideshow
- *
- * @param obj The slideshow object
- * @param nth The number of the element (0 being first)
- * @return The item stored in slideshow at position required
- *
- * @ingroup Slideshow
- */
EAPI Elm_Slideshow_Item *
elm_slideshow_item_nth_get(const Evas_Object *obj, unsigned int nth)
{
return eina_list_nth(wd->items, nth);
}
-/**
- * Get count of items stored in slideshow
- *
- * @param obj The slideshow object
- * @return The count of items
- *
- * @ingroup Slideshow
- */
EAPI unsigned int
elm_slideshow_count_get(const Evas_Object *obj)
{