#include <Elementary.h>
#include "elm_priv.h"
-/**
- * @defgroup Slideshow Slideshow
- * @ingroup Elementary
- *
- * 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)
{