From 4619bd37a5e2b67cfc16a338f04d59695270badf Mon Sep 17 00:00:00 2001 From: Gustavo Lima Chaves Date: Wed, 27 Jul 2011 19:38:43 +0000 Subject: [PATCH] [elementary] Documentation for the slideshow widget. SVN revision: 61813 --- legacy/elementary/doc/Makefile.am | 3 +- legacy/elementary/doc/examples.dox | 121 ++++ legacy/elementary/doc/index.doxy | 3 + legacy/elementary/doc/widgets/Makefile.am | 4 +- .../doc/widgets/widget_preview_slideshow.c | 32 ++ legacy/elementary/src/examples/Makefile.am | 5 +- .../src/examples/slideshow_example.c | 321 +++++++++++ legacy/elementary/src/lib/Elementary.h.in | 532 +++++++++++++++++- legacy/elementary/src/lib/elm_slideshow.c | 244 -------- 9 files changed, 1009 insertions(+), 256 deletions(-) create mode 100644 legacy/elementary/doc/widgets/widget_preview_slideshow.c create mode 100644 legacy/elementary/src/examples/slideshow_example.c diff --git a/legacy/elementary/doc/Makefile.am b/legacy/elementary/doc/Makefile.am index e282e4783a..c689cbbe15 100644 --- a/legacy/elementary/doc/Makefile.am +++ b/legacy/elementary/doc/Makefile.am @@ -60,7 +60,8 @@ WGT_PREVIEW = \ 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 diff --git a/legacy/elementary/doc/examples.dox b/legacy/elementary/doc/examples.dox index b21db2dc4b..191dba8d1f 100644 --- a/legacy/elementary/doc/examples.dox +++ b/legacy/elementary/doc/examples.dox @@ -68,6 +68,8 @@ * @ref genlist_example_02 * * @ref progressbar_example + * + * @ref slideshow_example */ /** @@ -4361,6 +4363,119 @@ * @example notify_example_01.c */ +/** + * @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 item class 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 @@ -4502,3 +4617,9 @@ * @include progressbar_example.c * @example progressbar_example.c */ + +/** + * @page slideshow_example_c Slideshow example + * @include slideshow_example.c + * @example slideshow_example.c + */ diff --git a/legacy/elementary/doc/index.doxy b/legacy/elementary/doc/index.doxy index 27eb03c211..6653292ddf 100644 --- a/legacy/elementary/doc/index.doxy +++ b/legacy/elementary/doc/index.doxy @@ -175,6 +175,9 @@ * @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 diff --git a/legacy/elementary/doc/widgets/Makefile.am b/legacy/elementary/doc/widgets/Makefile.am index 56bb822aa4..1b167c692c 100644 --- a/legacy/elementary/doc/widgets/Makefile.am +++ b/legacy/elementary/doc/widgets/Makefile.am @@ -76,7 +76,8 @@ widget_preview_panel \ 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@ @@ -134,5 +135,6 @@ EXTRA_DIST = \ 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 diff --git a/legacy/elementary/doc/widgets/widget_preview_slideshow.c b/legacy/elementary/doc/widgets/widget_preview_slideshow.c new file mode 100644 index 0000000000..5fee27e024 --- /dev/null +++ b/legacy/elementary/doc/widgets/widget_preview_slideshow.c @@ -0,0 +1,32 @@ +#include + +/* 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" diff --git a/legacy/elementary/src/examples/Makefile.am b/legacy/elementary/src/examples/Makefile.am index b838856e0d..6dc6f4e8a8 100644 --- a/legacy/elementary/src/examples/Makefile.am +++ b/legacy/elementary/src/examples/Makefile.am @@ -93,6 +93,7 @@ SRCS = \ panel_example_01.c \ gengrid_example.c \ entry_example.c \ + slideshow_example.c \ progressbar_example.c \ notify_example_01.c @@ -177,6 +178,7 @@ pkglib_PROGRAMS += \ genlist_example_02 \ genlist_example_03 \ entry_example \ + slideshow_example \ progressbar_example \ notify_example_01 @@ -235,7 +237,8 @@ SCREENSHOTS = \ 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 diff --git a/legacy/elementary/src/examples/slideshow_example.c b/legacy/elementary/src/examples/slideshow_example.c new file mode 100644 index 0000000000..534efa503d --- /dev/null +++ b/legacy/elementary/src/examples/slideshow_example.c @@ -0,0 +1,321 @@ +/** + * Simple Elementary's slide show widget 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 +#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() diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 2ecb2b9bd7..7cc66ec855 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -12652,12 +12652,78 @@ extern "C" { * @} */ - 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 already "realized" (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 @@ -12665,38 +12731,486 @@ extern "C" { 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 by #Elm_Slideshow_Item item handles + * @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, and start the slideshow, itself + * + * @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. Do not modify this object (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, + * before the current item + * + * @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, + * before the current item + * + * @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, + * after the current item + * + * @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, + * after the current item + * + * @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 + + /** + * @} */ /** diff --git a/legacy/elementary/src/lib/elm_slideshow.c b/legacy/elementary/src/lib/elm_slideshow.c index e15622babf..4d282969f5 100644 --- a/legacy/elementary/src/lib/elm_slideshow.c +++ b/legacy/elementary/src/lib/elm_slideshow.c @@ -1,24 +1,6 @@ #include #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 @@ -344,14 +326,6 @@ _timer_cb(void *data) 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) { @@ -402,16 +376,6 @@ 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) { @@ -432,17 +396,6 @@ elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, co 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) { @@ -463,14 +416,6 @@ elm_slideshow_item_sorted_insert(Evas_Object *obj, const Elm_Slideshow_Item_Clas 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) { @@ -500,13 +445,6 @@ 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) { @@ -541,13 +479,6 @@ 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) { @@ -582,14 +513,6 @@ 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) { @@ -599,14 +522,6 @@ 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) { @@ -616,14 +531,6 @@ 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) { @@ -633,14 +540,6 @@ 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) { @@ -650,15 +549,6 @@ 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) { @@ -672,14 +562,6 @@ 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) { @@ -689,14 +571,6 @@ 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) { @@ -706,14 +580,6 @@ 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) { @@ -723,14 +589,6 @@ 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) { @@ -744,14 +602,6 @@ 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) { @@ -761,13 +611,6 @@ 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) { @@ -791,13 +634,6 @@ 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) { @@ -826,13 +662,6 @@ 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) { @@ -842,14 +671,6 @@ 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) { @@ -859,14 +680,6 @@ 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) { @@ -874,14 +687,6 @@ 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) { @@ -889,14 +694,6 @@ 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) { @@ -906,14 +703,6 @@ 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) { @@ -924,14 +713,6 @@ 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) { @@ -941,14 +722,6 @@ 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) { @@ -959,15 +732,6 @@ 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) { @@ -977,14 +741,6 @@ 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) {