Elementary: Split headers for Map, Menu, Panel, Panes, Photocam, Plug,

Prefs, ProgressBar, Radio. Route, Segment Control, Separator, Slider,
   Slideshow, Spinner, Systray, Table, Thumb, Video, Web.
This commit is contained in:
Daniel Zaoui 2013-04-28 12:58:28 +03:00
parent 0ca5c025aa
commit 3b6fa4e0a2
68 changed files with 11267 additions and 8624 deletions

View File

@ -253,43 +253,91 @@ elm_layout.h \
elm_list.h \
elm_macros.h \
elm_map.h \
elm_map_common.h \
elm_map_eo.h \
elm_map_legacy.h \
elm_mapbuf.h \
elm_menu.h \
elm_menu_common.h \
elm_menu_eo.h \
elm_menu_legacy.h \
elm_mirroring.h \
elm_need.h \
elm_notify.h \
elm_object.h \
elm_object_item.h \
elm_panel.h \
elm_panel_common.h \
elm_panel_eo.h \
elm_panel_legacy.h \
elm_panes.h \
elm_panes_eo.h \
elm_panes_legacy.h \
elm_photo.h \
elm_photocam.h \
elm_photocam_eo.h \
elm_photocam_legacy.h \
elm_plug.h \
elm_plug_eo.h \
elm_plug_legacy.h \
elm_prefs.h \
elm_prefs_common.h \
elm_prefs_eo.h \
elm_prefs_legacy.h \
elm_prefs_data.h \
elm_progressbar.h \
elm_progressbar_eo.h \
elm_progressbar_legacy.h \
elm_radio.h \
elm_radio_eo.h \
elm_radio_legacy.h \
elm_route.h \
elm_route_eo.h \
elm_route_legacy.h \
elm_scale.h \
elm_scroll.h \
elm_scroller.h \
elm_segment_control.h \
elm_segment_control_common.h \
elm_segment_control_eo.h \
elm_segment_control_legacy.h \
elm_separator.h \
elm_separator_eo.h \
elm_separator_legacy.h \
elm_slider.h \
elm_slider_eo.h \
elm_slider_legacy.h \
elm_slideshow.h \
elm_slideshow_common.h \
elm_slideshow_eo.h \
elm_slideshow_legacy.h \
elm_spinner.h \
elm_spinner_eo.h \
elm_spinner_legacy.h \
elm_store.h \
elm_systray.h \
elm_systray_eo.h \
elm_systray_common.h \
elm_systray_watcher.h \
elm_sys_notify.h \
elm_table.h \
elm_table_eo.h \
elm_table_legacy.h \
elm_theme.h \
elm_thumb.h \
elm_thumb_common.h \
elm_thumb_eo.h \
elm_thumb_legacy.h \
elm_toolbar.h \
elm_tooltip.h \
elm_transit.h \
elm_video.h \
elm_video_eo.h \
elm_video_legacy.h \
elm_web.h \
elm_web_common.h \
elm_web_eo.h \
elm_web_legacy.h \
elm_win.h
includesubdir = $(includedir)/elementary-@VMAJ@/

View File

@ -0,0 +1,748 @@
/**
* Set map's zoom behavior. It can be set to manual or automatic.
*
* Default value is #ELM_MAP_ZOOM_MODE_MANUAL.
*
* Values <b> don't </b> work as bitmask, only one can be chosen.
*
* @note Valid sizes are 2^zoom, consequently the map may be smaller
* than the scroller view.
*
* @see elm_map_zoom_mode_set()
* @see elm_map_zoom_mode_get()
*
* @ingroup Map
*/
typedef enum
{
ELM_MAP_ZOOM_MODE_MANUAL, /**< Zoom controlled manually by elm_map_zoom_set(). It's set by default. */
ELM_MAP_ZOOM_MODE_AUTO_FIT, /**< Zoom until map fits inside the scroll frame with no pixels outside this area. */
ELM_MAP_ZOOM_MODE_AUTO_FILL, /**< Zoom until map fills scroll, ensuring no pixels are left unfilled. */
ELM_MAP_ZOOM_MODE_LAST
} Elm_Map_Zoom_Mode;
/**
* Set type of a external source (provider).
*
* @see elm_map_sources_get()
* @see elm_map_source_get()
* @see elm_map_source_set()
*
* @ingroup Map
*/
typedef enum
{
ELM_MAP_SOURCE_TYPE_TILE, /**< Map tile provider. */
ELM_MAP_SOURCE_TYPE_ROUTE, /**< Route service provider. */
ELM_MAP_SOURCE_TYPE_NAME, /**< Name service provider. */
ELM_MAP_SOURCE_TYPE_LAST
} Elm_Map_Source_Type;
/**
* Set type of transport used on route.
*
* @see elm_map_route_add()
*
* @ingroup Map
*/
typedef enum
{
ELM_MAP_ROUTE_TYPE_MOTOCAR, /**< Route should consider an automobile will be used. */
ELM_MAP_ROUTE_TYPE_BICYCLE, /**< Route should consider a bicycle will be used by the user. */
ELM_MAP_ROUTE_TYPE_FOOT, /**< Route should consider user will be walking. */
ELM_MAP_ROUTE_TYPE_LAST
} Elm_Map_Route_Type;
/**
* Set the routing method, what should be prioritized, time or distance.
*
* @see elm_map_route_add()
*
* @ingroup Map
*/
typedef enum
{
ELM_MAP_ROUTE_METHOD_FASTEST, /**< Route should prioritize time. */
ELM_MAP_ROUTE_METHOD_SHORTEST, /**< Route should prioritize distance. */
ELM_MAP_ROUTE_METHOD_LAST
} Elm_Map_Route_Method;
/**
* Set the name search method.
*
* This is for name module interface.
*
* @ingroup Map
*/
typedef enum
{
ELM_MAP_NAME_METHOD_SEARCH,
ELM_MAP_NAME_METHOD_REVERSE,
ELM_MAP_NAME_METHOD_LAST
} Elm_Map_Name_Method;
/**
* Set overlay type to be used. This type is resolved
* when the overlay is created.
* You can get this value by elm_map_overlay_type_get().
*
* @see elm_map_overlay_type_get()
* @see elm_map_overlay_add()
* @see elm_map_overlay_class_add()
* @see elm_map_overlay_bubble_add()
*
* @ingroup Map
*/
typedef enum _Elm_Map_Overlay_Type
{
ELM_MAP_OVERLAY_TYPE_NONE = 0,
ELM_MAP_OVERLAY_TYPE_DEFAULT,
ELM_MAP_OVERLAY_TYPE_CLASS,
ELM_MAP_OVERLAY_TYPE_GROUP,
ELM_MAP_OVERLAY_TYPE_BUBBLE,
ELM_MAP_OVERLAY_TYPE_ROUTE,
ELM_MAP_OVERLAY_TYPE_LINE,
ELM_MAP_OVERLAY_TYPE_POLYGON,
ELM_MAP_OVERLAY_TYPE_CIRCLE,
ELM_MAP_OVERLAY_TYPE_SCALE
} Elm_Map_Overlay_Type;
typedef struct _Elm_Map_Marker Elm_Map_Marker; /**< A marker to be shown in a specific point of the map. Can be created with elm_map_marker_add() and deleted with elm_map_marker_remove(). */
typedef struct _Elm_Map_Marker_Class Elm_Map_Marker_Class; /**< Each marker must be associated to a class. It's required to add a mark. The class defines the style of the marker when a marker is displayed alone (not grouped). A new class can be created with elm_map_marker_class_new(). */
typedef struct _Elm_Map_Group_Class Elm_Map_Group_Class; /**< Each marker must be associated to a group class. It's required to add a mark. The group class defines the style of the marker when a marker is grouped to other markers. Markers with the same group are grouped if they are close. A new group class can be created with elm_map_marker_group_class_new(). */
typedef struct _Elm_Map_Route Elm_Map_Route; /**< A route to be shown in the map. Can be created with elm_map_route_add() and deleted with elm_map_route_del(). */
typedef struct _Elm_Map_Name Elm_Map_Name; /**< A handle for specific coordinates. */
typedef struct _Elm_Map_Overlay Elm_Map_Overlay; /**< A overlay to be shown in a specific point of the map. This can be created by elm_map_overlay_add() and similar functions and deleted by elm_map_overlay_del(). */
typedef Evas_Object *(*Elm_Map_Marker_Get_Func)(Evas_Object *obj, Elm_Map_Marker *marker, void *data); /**< Bubble content fetching class function for marker classes. When the user click on a marker, a bubble is displayed with a content. */
typedef void (*Elm_Map_Marker_Del_Func)(Evas_Object *obj, Elm_Map_Marker *marker, void *data, Evas_Object *o); /**< Function to delete bubble content for marker classes. */
typedef Evas_Object *(*Elm_Map_Marker_Icon_Get_Func)(Evas_Object *obj, Elm_Map_Marker *marker, void *data); /**< Icon fetching class function for marker classes. */
typedef Evas_Object *(*Elm_Map_Group_Icon_Get_Func)(Evas_Object *obj, void *data); /**< Icon fetching class function for markers group classes. */
typedef void (*Elm_Map_Overlay_Get_Cb)(void *data, Evas_Object *map, Elm_Map_Overlay *overlay); /**< Get callback function for the overlay. */
typedef void (*Elm_Map_Overlay_Del_Cb)(void *data, Evas_Object *map, Elm_Map_Overlay *overlay); /**< Det callback function for the overlay. @since 1.7 */
typedef void (*Elm_Map_Name_Cb)(void *data, Evas_Object *map, Elm_Map_Name *name); /**< Async-callback function for the name request. */
typedef void (*Elm_Map_Name_List_Cb)(void *data, Evas_Object *map, Eina_List *name_list); /**< Async-callback function for the name list request. */
typedef void (*Elm_Map_Route_Cb)(void *data, Evas_Object *map, Elm_Map_Route *route); /**< Async-callback function for the route request. */
/**
* Delete a overlay from the map. This function can delete all types
* of overlays.
*
* @param overlay The overlay to be deleted.
*
* @see elm_map_overlay_add()
* @see elm_map_overlay_class_add()
* @see elm_map_overlay_bubble_add()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_del(Elm_Map_Overlay *overlay);
/**
* Get the overlay type.
*
* @param overlay The overlay to return type.
* @return Return the overlay type.
*
* This type is resolved when the overlay is created.
*
* @see elm_map_overlay_add()
* @see elm_map_overlay_class_add()
* @see elm_map_overlay_bubble_add()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay_Type elm_map_overlay_type_get(const Elm_Map_Overlay *overlay);
/**
* Set a pointer of user data for a overlay.
*
* @param overlay The overlay to own the user data.
* @param data A pointer of user data
*
* @see elm_map_overlay_data_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_data_set(Elm_Map_Overlay *overlay, void *data);
/**
* Get the user data stored on a overlay.
*
* @param overlay The overlay to return the user data.
* @return A pointer to data stored using elm_map_overlay_data_set(),
* or @c NULL, if none has been set.
*
* @see elm_map_overlay_data_set()
*
* @ingroup Map
*/
EAPI void * elm_map_overlay_data_get(const Elm_Map_Overlay *overlay);
/**
* Set if the overlay is hidden or not.
*
* @param overlay The overlay to be hidden.
* @param hide Use @c EINA_TRUE to hide the overlay or @c EINA_FALSE to show.
*
* @see elm_map_overlay_hide_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_hide_set(Elm_Map_Overlay *overlay, Eina_Bool hide);
/**
* Get a value whether the overlay is hidden or not.
*
* @param overlay The overlay to return the hidden state.
* @return @c EINA_TRUE means the overlay is hidden. @c EINA_FALSE indicates
* it is not.
*
* This gets the current hidden state for the overlay.
*
* @see elm_map_overlay_hide_set()
*
* @ingroup Map
*/
EAPI Eina_Bool elm_map_overlay_hide_get(const Elm_Map_Overlay *overlay);
/**
* Set the minimum zoom from where the overlay is displayed.
*
* @param overlay The overlay to be set the minimum zoom.
* @param zoom The minimum zoom.
*
* The overlay only will be displayed when the map is displayed at @p zoom
* or bigger.
*
* @see elm_map_overlay_displayed_zoom_min_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_displayed_zoom_min_set(Elm_Map_Overlay *overlay, int zoom);
/**
* Get the minimum zoom from where the overlay is displayed.
*
* @param overlay The overlay to return the minimum zoom.
* @return zoom The minimum zoom.
*
* @see elm_map_overlay_displayed_zoom_min_set()
*
* @ingroup Map
*/
EAPI int elm_map_overlay_displayed_zoom_min_get(const Elm_Map_Overlay *overlay);
/**
* Pause or unpause the overlay.
*
* @param overlay The overlay to be paused.
* @param paused Use @c EINA_TRUE to pause the @p overlay or @c EINA_FALSE
* to unpause it.
*
* This sets the paused state to on (@c EINA_TRUE) or off (@c EINA_FALSE)
* for the overlay.
*
* The default is off.
*
* This will stop moving the overlay coordinates instantly.
* even if map being scrolled or zoomed.
*
* @see elm_map_overlay_paused_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_paused_set(Elm_Map_Overlay *overlay, Eina_Bool paused);
/**
* Get a value whether the overlay is paused or not.
*
* @param overlay The overlay to return paused state.
* @return @c EINA_TRUE means overlay is paused. @c EINA_FALSE indicates
* it is not.
*
* This gets the current paused state for the overlay.
*
* @see elm_map_overlay_paused_set()
*
* @ingroup Map
*/
EAPI Eina_Bool elm_map_overlay_paused_get(const Elm_Map_Overlay *overlay);
/**
* Get a value whether the overlay is visible or not.
*
* @param overlay The overlay to return visible state.
* @return @c EINA_TRUE means overlay is visible. @c EINA_FALSE indicates
* it is not.
*
* The visible of the overlay can not be set.
* This value can be changed dynamically while zooming and panning
*
* @since 1.7
*
* @ingroup Map
*/
EAPI Eina_Bool elm_map_overlay_visible_get(const Elm_Map_Overlay *overlay);
/**
* Set the content object of the overlay.
*
* @param overlay The overlay to be set the content.
* @param obj The evas object will be used to display the overlay.
*
* Only default and class type overlay support this function.
*
* The content should be resized or set size hints before set to the overlay.
* <b> Do not modify this object</b> (move, show, hide, del, etc.),
* after set.
* You can only resize this.
*
* This content is what will be inside the overlay that will be displayed.
* If a content is set, icon and default style layout are no more used before
* the content is deleted.
*
* If @p obj is @c NULL, content inside the overlay is deleted.
*
* @see elm_map_overlay_content_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_content_set(Elm_Map_Overlay *overlay, Evas_Object *obj);
/**
* Get the content object.
*
* @param overlay The overlay to return the content.
* @return Return the evas object if it exists, else @c NULL.
*
* Only default and class type overlay support this function.
*
* Returned content is what being inside the overlay that being displayed.
*
* <b> Do not modify this object</b> (move, show, hide, del, etc.).
* You can only resize this.
*
* The content can be set by elm_map_overlay_content_set().
*
* @see elm_map_overlay_content_set()
*
* @ingroup Map
*/
EAPI const Evas_Object * elm_map_overlay_content_get(const Elm_Map_Overlay *overlay);
/**
* Set a icon of the overlay.
*
* @param overlay The overlay to be set the icon.
* @param icon The icon will be used to display the overlay.
*
* Only default and class type overlay support this function.
*
* <b> Do not modify this object</b> (move, show, hide, resize, del, etc.),
* after set.
*
* If icon is set, default style layout will not be used.
*
* If @p icon is @c NULL, icon inside the overlay will be deleted.
*
* @see elm_map_overlay_icon_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_icon_set(Elm_Map_Overlay *overlay, Evas_Object *icon);
/**
* Get the icon object.
*
* @param overlay The overlay to return the icon.
* @return Return the icon object if it exists, else @c NULL.
*
* Only default and class type overlay support this function.
*
* Returned icon is what being inside the overlay that being displayed.
*
* <b> Do not modify this icon </b> (move, show, hide, resize, del, etc.).
*
* The icon can be set by elm_map_overlay_icon_set().
*
* @see elm_map_overlay_icon_set()
*
* @ingroup Map
*/
EAPI const Evas_Object * elm_map_overlay_icon_get(const Elm_Map_Overlay *overlay);
/**
* Set the geographic coordinates of the overlay.
*
* @param overlay The overlay to be set geographic coordinates.
* @param lon Longitude to be set.
* @param lat Latitude to be set.
*
* Only default and bubble type overlay support this function.
*
* This sets the center coordinates of the overlay. It can be
* get by elm_map_overlay_region_get().
*
* @see elm_map_overlay_region_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_region_set(Elm_Map_Overlay *overlay, double lon, double lat);
/**
* Get the geographic coordinates of the overlay.
*
* @param overlay The overlay to return geographic coordinates.
* @param lon Pointer to store longitude.
* @param lat Pointer to store latitude.
*
* Only default and bubble type overlay support this function.
*
* This returns the center coordinates of the overlay. It can be
* set by elm_map_overlay_region_set().
*
* @see elm_map_overlay_region_set()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_region_get(const Elm_Map_Overlay *overlay, double *lon, double *lat);
/**
* Set the object color of the overlay.
*
* @param overlay The overlay to be set color.
* @param r Red channel value, from 0 to 255.
* @param g Green channel value, from 0 to 255.
* @param b Blue channel value, from 0 to 255.
* @param a Alpha channel value, from 0 to 255.
*
* It uses an additive color model, so each color channel represents
* how much of each primary colors must to be used. 0 represents
* absence of this color, so if all of the three are set to 0,
* the color will be black.
*
* These component values should be integers in the range 0 to 255,
* (single 8-bit byte).
*
* This sets the color used for the overlay. By default, it is set to
* solid red (r = 255, g = 0, b = 0, a = 255).
*
* For alpha channel, 0 represents completely transparent, and 255, opaque.
*
* Function supports only ELM_MAP_OVERLAY_TYPE_CLASS, ELM_MAP_OVERLAY_TYPE_DEFAULT
* and ELM_MAP_OVERLAY_TYPE_ROUTE Elm_Map_Overlay_Type types.
*
* @see elm_map_overlay_color_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_color_set(Elm_Map_Overlay *overlay, int r, int g, int b, int a);
/**
* Get the object color of the overlay.
*
* @param overlay The overlay to return color.
* @param r Pointer to store the red channel value.
* @param g Pointer to store the green channel value.
* @param b Pointer to store the blue channel value.
* @param a Pointer to store the alpha channel value.
*
* @see elm_map_overlay_color_set()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_color_get(const Elm_Map_Overlay *overlay, int *r, int *g, int *b, int *a);
/**
* Show the given overlay at the center of the map, immediately.
*
* @param overlay The overlay to be center at.
*
* This causes map to @b redraw its viewport's contents to the
* region containing the given @p overlay's coordinates, that will be
* moved to the center of the map.
*
* @see elm_map_overlays_show() if more than one overlay need to be displayed.
*
* @ingroup Map
*/
EAPI void elm_map_overlay_show(Elm_Map_Overlay *overlay);
/**
* Move and zoom the map to display a list of overlays.
*
* @param overlays A list of #Elm_Map_Overlay handles.
*
* The map will be centered on the center point of the overlays in the list.
* Then the map will be zoomed in order to fit the overlays using the maximum
* zoom which allows display of all the overlays.
*
* @warning All the overlays should belong to the same map object.
*
* @see elm_map_overlay_show() to show a single overlay.
*
* @ingroup Map
*/
EAPI void elm_map_overlays_show(Eina_List *overlays);
/**
* Set the get callback function of the overlay.
*
* @param overlay The overlay to own the get callback function.
* @param get_cb The callback function.
* @param data The user callback data.
*
* If the overlay is clicked, the callback wll be called.
* The clicked overlay is returned by callback.
*
* You can add callback to the class overlay. If one of the group overlays in this class
* is clicked, callback will be called and return a virtual group overlays.
*
* You can delete this callback function by setting @c NULL.
*
* @ingroup Map
*/
EAPI void elm_map_overlay_get_cb_set(Elm_Map_Overlay *overlay, Elm_Map_Overlay_Get_Cb get_cb, void *data);
/**
* Set the get callback function to call when the overlay is deleted.
*
* @param overlay The overlay to own the del callback function.
* @param get_cb The callback function.
* @param data The user callback data.
*
* If the overlay is deleted, the callback wll be called.
* The deleted overlay is returned by callback.
*
* You can delete this callback function by setting @c NULL.
*
* @since 1.7
*
* @ingroup Map
*/
EAPI void elm_map_overlay_del_cb_set(Elm_Map_Overlay *overlay, Elm_Map_Overlay_Del_Cb del_cb, void *data);
/**
* Add a new overlay member to the class overlay.
*
* @param clas The class overlay to add a new overlay.
* @param overlay The overlay to be added to the class overlay.
*
* @see elm_map_overlay_class_remove()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_class_append(Elm_Map_Overlay *clas, Elm_Map_Overlay *overlay);
/**
* Remove a overlay from the class.
*
* @param clas The class overlay to delete the overlay.
* @param overlay The overlay to be deleted from the class overlay.
*
* @see elm_map_overlay_class_append()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_class_remove(Elm_Map_Overlay *clas, Elm_Map_Overlay *overlay);
/**
* Set the maximum zoom from where the overlay members in the class can be
* grouped.
*
* @param clas The overlay class has overlay members.
* @param zoom The maximum zoom.
*
* Overlay members in the class only will be grouped when the map
* is displayed at less than @p zoom.
*
* @see elm_map_overlay_class_zoom_max_get()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_class_zoom_max_set(Elm_Map_Overlay *clas, int zoom);
/**
* Get the maximum zoom from where the overlay members in the class can be
* grouped.
*
* @param clas The overlay class has overlay members.
*
* @return The maximum zoom.
*
* @see elm_map_overlay_class_zoom_max_set()
*
* @ingroup Map
*/
EAPI int elm_map_overlay_class_zoom_max_get(const Elm_Map_Overlay *clas);
/**
* Get the overlay members of the group overlay.
*
* @param grp The group overlay has overlay members.
*
* @return The list of group overlay members.
*
* The group overlays are virtualy overlays. Those are shown and hidden dynamically.
* You can add callback to the class overlay. If one of the group overlays in this class
* is clicked, callback will be called and return a virtual group overlays.
*
* You can change the state (hidden, paused, etc.) or set the content
* or icon of the group overlays by chaning the state of the class overlay.
* Do not modifty the group overlay itself.
*
* @see elm_map_overlay_class_add()
*
* @ingroup Map
*/
EAPI Eina_List * elm_map_overlay_group_members_get(const Elm_Map_Overlay *grp);
/**
* Follow a other overlay.
*
* @param bubble The bubble overlay to follow a parent overlay.
* @param parent The parent overlay to be followed by the bubble overlay.
*
* Bubble overlay will follow the parent overlay's movement (hide, show, move).
*
* @see elm_map_overlay_bubble_add()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_bubble_follow(Elm_Map_Overlay *bubble, const Elm_Map_Overlay *parent);
/**
* Add a content object to the bubble overlay.
*
* @param bubble The bubble overlay to add a content.
* @param content The content to be added to the bubble overlay.
*
* Added contents will be displayed inside the bubble overlay.
*
* @see elm_map_overlay_bubble_content_clear()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_bubble_content_append(Elm_Map_Overlay *bubble, Evas_Object *content);
/**
* Clear all contents inside the bubble overlay.
*
* @param bubble The bubble overlay to clear the contents.
*
* This will delete all contents inside the bubble overlay.
*
* @see elm_map_overlay_bubble_content_append()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_bubble_content_clear(Elm_Map_Overlay *bubble);
/**
* Add a geographic coordinates to the polygon overlay.
*
* @param overlay The polygon overlay to get a region.
* @param lon The longitude.
* @param lat The latitude.
*
* At least 3 regions should be added to show the polygon overlay.
*
* Overlay created with this method can be deleted with elm_map_overlay_del().
*
* @see elm_map_overlay_polygon_add()
* @see elm_map_overlay_del()
*
* @ingroup Map
*/
EAPI void elm_map_overlay_polygon_region_add(Elm_Map_Overlay *overlay, double lon, double lat);
/**
* Remove a route from the map.
*
* @param route The route to remove.
*
* @see elm_map_route_add()
*
* @ingroup Map
*/
EAPI void elm_map_route_del(Elm_Map_Route *route);
/**
* Get the route distance in kilometers.
*
* @param route The route object.
* @return The distance of route (unit : km).
*
* @ingroup Map
*/
EAPI double elm_map_route_distance_get(const Elm_Map_Route *route);
/**
* Get the information of route nodes.
*
* @param route The route object.
* @return Returns a string with the nodes of route.
*
* @ingroup Map
*/
EAPI const char *elm_map_route_node_get(const Elm_Map_Route *route);
/**
* Get the information of route waypoint.
*
* @param route the route object.
* @return Returns a string with information about waypoint of route.
*
* @ingroup Map
*/
EAPI const char *elm_map_route_waypoint_get(const Elm_Map_Route *route);
/**
* Get the address of the name.
*
* @param name The name handle.
* @return Returns the address string of @p name.
*
* This gets the coordinates of the @p name, created with one of the
* conversion functions.
*
* @see elm_map_name_add()
*
* @ingroup Map
*/
EAPI const char *elm_map_name_address_get(const Elm_Map_Name *name);
/**
* Get the current coordinates of the name.
*
* @param name The name handle.
* @param lat Pointer to store the latitude.
* @param lon Pointer to store The longitude.
*
* This gets the coordinates of the @p name, created with one of the
* conversion functions.
*
* @see elm_map_name_add()
*
* @ingroup Map
*/
EAPI void elm_map_name_region_get(const Elm_Map_Name *name, double *lon, double *lat);
/**
* Remove a name from the map.
*
* @param name The name to remove.
*
* Basically the struct handled by @p name will be freed, so conversions
* between address and coordinates will be lost.
*
* @see elm_map_name_add()
*
* @ingroup Map
*/
EAPI void elm_map_name_del(Elm_Map_Name *name);

View File

@ -0,0 +1,631 @@
#define ELM_OBJ_MAP_PAN_CLASS elm_obj_map_pan_class_get()
const Eo_Class *elm_obj_map_pan_class_get(void) EINA_CONST;
#define ELM_OBJ_MAP_CLASS elm_obj_map_class_get()
const Eo_Class *elm_obj_map_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_MAP_BASE_ID;
enum
{
ELM_OBJ_MAP_SUB_ID_ZOOM_SET,
ELM_OBJ_MAP_SUB_ID_ZOOM_GET,
ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_SET,
ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_GET,
ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_SET,
ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_GET,
ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_SET,
ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_GET,
ELM_OBJ_MAP_SUB_ID_REGION_BRING_IN,
ELM_OBJ_MAP_SUB_ID_REGION_SHOW,
ELM_OBJ_MAP_SUB_ID_REGION_GET,
ELM_OBJ_MAP_SUB_ID_PAUSED_SET,
ELM_OBJ_MAP_SUB_ID_PAUSED_GET,
ELM_OBJ_MAP_SUB_ID_ROTATE_SET,
ELM_OBJ_MAP_SUB_ID_ROTATE_GET,
ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_SET,
ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_GET,
ELM_OBJ_MAP_SUB_ID_TILE_LOAD_STATUS_GET,
ELM_OBJ_MAP_SUB_ID_CANVAS_TO_REGION_CONVERT,
ELM_OBJ_MAP_SUB_ID_REGION_TO_CANVAS_CONVERT,
ELM_OBJ_MAP_SUB_ID_USER_AGENT_SET,
ELM_OBJ_MAP_SUB_ID_USER_AGENT_GET,
ELM_OBJ_MAP_SUB_ID_SOURCE_SET,
ELM_OBJ_MAP_SUB_ID_SOURCE_GET,
ELM_OBJ_MAP_SUB_ID_SOURCES_GET,
ELM_OBJ_MAP_SUB_ID_ROUTE_ADD,
ELM_OBJ_MAP_SUB_ID_NAME_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAY_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAYS_GET,
ELM_OBJ_MAP_SUB_ID_OVERLAY_CLASS_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAY_BUBBLE_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAY_ROUTE_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAY_LINE_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAY_POLYGON_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAY_CIRCLE_ADD,
ELM_OBJ_MAP_SUB_ID_OVERLAY_SCALE_ADD,
ELM_OBJ_MAP_SUB_ID_TRACK_ADD,
ELM_OBJ_MAP_SUB_ID_TRACK_REMOVE,
ELM_OBJ_MAP_SUB_ID_LAST
};
#define ELM_OBJ_MAP_ID(sub_id) (ELM_OBJ_MAP_BASE_ID + sub_id)
/**
* @def elm_obj_map_zoom_set
* @since 1.8
*
* Set the zoom level of the map.
*
* @param[in] zoom
*
* @see elm_map_zoom_set
*
* @ingroup Map
*/
#define elm_obj_map_zoom_set(zoom) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_SET), EO_TYPECHECK(int, zoom)
/**
* @def elm_obj_map_zoom_get
* @since 1.8
*
* Get the zoom level of the map.
*
* @param[out] ret
*
* @see elm_map_zoom_get
*
* @ingroup Map
*/
#define elm_obj_map_zoom_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_map_zoom_mode_set
* @since 1.8
*
* Set the zoom mode used by the map object.
*
* @param[in] mode
*
* @see elm_map_zoom_mode_set
*
* @ingroup Map
*/
#define elm_obj_map_zoom_mode_set(mode) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_SET), EO_TYPECHECK(Elm_Map_Zoom_Mode, mode)
/**
* @def elm_obj_map_zoom_mode_get
* @since 1.8
*
* Get the zoom mode used by the map object.
*
* @param[out] ret
*
* @see elm_map_zoom_mode_get
*
* @ingroup Map
*/
#define elm_obj_map_zoom_mode_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_GET), EO_TYPECHECK(Elm_Map_Zoom_Mode *, ret)
/**
* @def elm_obj_map_zoom_max_set
* @since 1.8
*
* Set the maximum zoom of the source.
*
* @param[in] zoom
*
* @see elm_map_zoom_max_set
*
* @ingroup Map
*/
#define elm_obj_map_zoom_max_set(zoom) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_SET), EO_TYPECHECK(int, zoom)
/**
* @def elm_obj_map_zoom_max_get
* @since 1.8
*
* Get the maximum zoom of the source.
*
* @param[out] ret
*
* @see elm_map_zoom_max_get
*
* @ingroup Map
*/
#define elm_obj_map_zoom_max_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_map_zoom_min_set
* @since 1.8
*
* Set the minimum zoom of the source.
*
* @param[in] zoom
*
* @see elm_map_zoom_min_set
*
* @ingroup Map
*/
#define elm_obj_map_zoom_min_set(zoom) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_SET), EO_TYPECHECK(int, zoom)
/**
* @def elm_obj_map_zoom_min_get
* @since 1.8
*
* Get the minimum zoom of the source.
*
* @param[out] ret
*
* @see elm_map_zoom_min_get
*
* @ingroup Map
*/
#define elm_obj_map_zoom_min_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_map_region_bring_in
* @since 1.8
*
* Animatedly bring in given coordinates to the center of the map.
*
* @param[in] lon
* @param[in] lat
*
* @see elm_map_region_bring_in
*
* @ingroup Map
*/
#define elm_obj_map_region_bring_in(lon, lat) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_BRING_IN), EO_TYPECHECK(double, lon), EO_TYPECHECK(double, lat)
/**
* @def elm_obj_map_region_show
* @since 1.8
*
* Show the given coordinates at the center of the map, immediately.
*
* @param[in] lon
* @param[in] lat
*
* @see elm_map_region_show
*
* @ingroup Map
*/
#define elm_obj_map_region_show(lon, lat) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_SHOW), EO_TYPECHECK(double, lon), EO_TYPECHECK(double, lat)
/**
* @def elm_obj_map_region_get
* @since 1.8
*
* Get the current geographic coordinates of the map.
*
* @param[out] lon
* @param[out] lat
*
* @see elm_map_region_get
*
* @ingroup Map
*/
#define elm_obj_map_region_get(lon, lat) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_GET), EO_TYPECHECK(double *, lon), EO_TYPECHECK(double *, lat)
/**
* @def elm_obj_map_paused_set
* @since 1.8
*
* Pause or unpause the map.
*
* @param[in] paused
*
* @see elm_map_paused_set
*
* @ingroup Map
*/
#define elm_obj_map_paused_set(paused) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_PAUSED_SET), EO_TYPECHECK(Eina_Bool, paused)
/**
* @def elm_obj_map_paused_get
* @since 1.8
*
* Get a value whether map is paused or not.
*
* @param[out] ret
*
* @see elm_map_paused_get
*
* @ingroup Map
*/
#define elm_obj_map_paused_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_PAUSED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_map_rotate_set
* @since 1.8
*
* Rotate the map.
*
* @param[in] degree
* @param[in] cx
* @param[in] cy
*
* @see elm_map_rotate_set
*
* @ingroup Map
*/
#define elm_obj_map_rotate_set(degree, cx, cy) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ROTATE_SET), EO_TYPECHECK(double, degree), EO_TYPECHECK(Evas_Coord, cx), EO_TYPECHECK(Evas_Coord, cy)
/**
* @def elm_obj_map_rotate_get
* @since 1.8
*
* Get the rotate degree of the map
*
* @param[out] degree
* @param[out] cx
* @param[out] cy
*
* @see elm_map_rotate_get
*
* @ingroup Map
*/
#define elm_obj_map_rotate_get(degree, cx, cy) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ROTATE_GET), EO_TYPECHECK(double *, degree), EO_TYPECHECK(Evas_Coord *, cx), EO_TYPECHECK(Evas_Coord *, cy)
/**
* @def elm_obj_map_wheel_disabled_set
* @since 1.8
*
* Enable or disable mouse wheel to be used to zoom in / out the map.
*
* @param[in] disabled
*
* @see elm_map_wheel_disabled_set
*
* @ingroup Map
*/
#define elm_obj_map_wheel_disabled_set(disabled) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_SET), EO_TYPECHECK(Eina_Bool, disabled)
/**
* @def elm_obj_map_wheel_disabled_get
* @since 1.8
*
* Get a value whether mouse wheel is enabled or not.
*
* @param[out] ret
*
* @see elm_map_wheel_disabled_get
*
* @ingroup Map
*/
#define elm_obj_map_wheel_disabled_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_map_tile_load_status_get
* @since 1.8
*
* Get the information of tile load status.
*
* @param[out] try_num
* @param[out] finish_num
*
* @see elm_map_tile_load_status_get
*
* @ingroup Map
*/
#define elm_obj_map_tile_load_status_get(try_num, finish_num) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_TILE_LOAD_STATUS_GET), EO_TYPECHECK(int *, try_num), EO_TYPECHECK(int *, finish_num)
/**
* @def elm_obj_map_canvas_to_region_convert
* @since 1.8
*
* Convert canvas coordinates into geographic coordinates
*
* @param[in] x
* @param[in] y
* @param[out] lon
* @param[out] lat
*
* @see elm_map_canvas_to_region_convert
*
* @ingroup Map
*/
#define elm_obj_map_canvas_to_region_convert(x, y, lon, lat) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_CANVAS_TO_REGION_CONVERT), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y), EO_TYPECHECK(double *, lon), EO_TYPECHECK(double *, lat)
/**
* @def elm_obj_map_region_to_canvas_convert
* @since 1.8
*
* Convert geographic coordinates (longitude, latitude)
*
* @param[in] lon
* @param[in] lat
* @param[out] x
* @param[out] y
*
* @see elm_map_region_to_canvas_convert
*
* @ingroup Map
*/
#define elm_obj_map_region_to_canvas_convert(lon, lat, x, y) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_TO_CANVAS_CONVERT), EO_TYPECHECK(double, lon), EO_TYPECHECK(double, lat), EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y)
/**
* @def elm_obj_map_user_agent_set
* @since 1.8
*
* Set the user agent used by the map object to access routing services.
*
* @param[in] user_agent
*
* @see elm_map_user_agent_set
*
* @ingroup Map
*/
#define elm_obj_map_user_agent_set(user_agent) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_USER_AGENT_SET), EO_TYPECHECK(const char *, user_agent)
/**
* @def elm_obj_map_user_agent_get
* @since 1.8
*
* Get the user agent used by the map object.
*
* @param[out] ret
*
* @see elm_map_user_agent_get
*
* @ingroup Map
*/
#define elm_obj_map_user_agent_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_USER_AGENT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_map_source_set
* @since 1.8
*
* Set the current source of the map for a specific type.
*
* @param[in] type
* @param[in] source_name
*
* @see elm_map_source_set
*
* @ingroup Map
*/
#define elm_obj_map_source_set(type, source_name) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_SOURCE_SET), EO_TYPECHECK(Elm_Map_Source_Type, type), EO_TYPECHECK(const char *, source_name)
/**
* @def elm_obj_map_source_get
* @since 1.8
*
* Get the name of currently used source for a specific type.
*
* @param[in] type
* @param[out] ret
*
* @see elm_map_source_get
*
* @ingroup Map
*/
#define elm_obj_map_source_get(type, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_SOURCE_GET), EO_TYPECHECK(Elm_Map_Source_Type, type), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_map_sources_get
* @since 1.8
*
* Get the names of available sources for a specific type.
*
* @param[in] type
* @param[out] ret
*
* @see elm_map_sources_get
*
* @ingroup Map
*/
#define elm_obj_map_sources_get(type, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_SOURCES_GET), EO_TYPECHECK(Elm_Map_Source_Type, type), EO_TYPECHECK(const char ***, ret)
/**
* @def elm_obj_map_route_add
* @since 1.8
*
* Add a new route to the map object.
*
* @param[in] type
* @param[in] method
* @param[in] flon
* @param[in] flat
* @param[in] tlon
* @param[in] tlat
* @param[in] route_cb
* @param[in] data
* @param[out] ret
*
* @see elm_map_route_add
*
* @ingroup Map
*/
#define elm_obj_map_route_add(type, method, flon, flat, tlon, tlat, route_cb, data, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ROUTE_ADD), EO_TYPECHECK(Elm_Map_Route_Type, type), EO_TYPECHECK(Elm_Map_Route_Method, method), EO_TYPECHECK(double, flon), EO_TYPECHECK(double, flat), EO_TYPECHECK(double, tlon), EO_TYPECHECK(double, tlat), EO_TYPECHECK(Elm_Map_Route_Cb, route_cb), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Map_Route **, ret)
/**
* @def elm_obj_map_name_add
* @since 1.8
*
* Request a address or geographic coordinates(longitude, latitude)
*
* @param[in] address
* @param[in] lon
* @param[in] lat
* @param[in] name_cb
* @param[in] data
* @param[out] ret
*
* @see elm_map_name_add
*
* @ingroup Map
*/
#define elm_obj_map_name_add(address, lon, lat, name_cb, data, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_NAME_ADD), EO_TYPECHECK(const char *, address), EO_TYPECHECK(double, lon), EO_TYPECHECK(double, lat), EO_TYPECHECK(Elm_Map_Name_Cb, name_cb), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Map_Name **, ret)
/**
* @def elm_obj_map_overlay_add
* @since 1.8
*
* Add a new overlay to the map object. This overlay has a default type.
*
* @param[in] lon
* @param[in] lat
* @param[out] ret
*
* @see elm_map_overlay_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_add(lon, lat, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_ADD), EO_TYPECHECK(double, lon), EO_TYPECHECK(double, lat), EO_TYPECHECK(Elm_Map_Overlay **, ret)
/**
* @def elm_obj_map_overlays_get
* @since 1.8
*
* Return all overlays in the map object.
*
* @param[out] ret
*
* @see elm_map_overlays_get
*
* @ingroup Map
*/
#define elm_obj_map_overlays_get(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAYS_GET), EO_TYPECHECK(Eina_List **, ret)
/**
* @def elm_obj_map_overlay_class_add
* @since 1.8
*
* Add a new class overlay to the map object.
*
* @param[out] ret
*
* @see elm_map_overlay_class_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_class_add(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_CLASS_ADD), EO_TYPECHECK(Elm_Map_Overlay **, ret)
/**
* @def elm_obj_map_overlay_bubble_add
* @since 1.8
*
* Add a new bubble overlay to the map object.
*
* @param[out] ret
*
* @see elm_map_overlay_bubble_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_bubble_add(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_BUBBLE_ADD), EO_TYPECHECK(Elm_Map_Overlay **, ret)
/**
* @def elm_obj_map_overlay_route_add
* @since 1.8
*
* Add a new route overlay to the map object.
*
* @param[in] route
* @param[out] ret
*
* @see elm_map_overlay_route_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_route_add(route, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_ROUTE_ADD), EO_TYPECHECK(const Elm_Map_Route *, route), EO_TYPECHECK(Elm_Map_Overlay **, ret)
/**
* @def elm_obj_map_overlay_line_add
* @since 1.8
*
* Add a new line overlay to the map object.
*
* @param[in] flon
* @param[in] flat
* @param[in] tlon
* @param[in] tlat
* @param[out] ret
*
* @see elm_map_overlay_line_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_line_add(flon, flat, tlon, tlat, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_LINE_ADD), EO_TYPECHECK(double, flon), EO_TYPECHECK(double, flat), EO_TYPECHECK(double, tlon), EO_TYPECHECK(double, tlat), EO_TYPECHECK(Elm_Map_Overlay **, ret)
/**
* @def elm_obj_map_overlay_polygon_add
* @since 1.8
*
* Add a new polygon overlay to the map object.
*
* @param[out] ret
*
* @see elm_map_overlay_polygon_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_polygon_add(ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_POLYGON_ADD), EO_TYPECHECK(Elm_Map_Overlay **, ret)
/**
* @def elm_obj_map_overlay_circle_add
* @since 1.8
*
* Add a new circle overlay to the map object.
*
* @param[in] lon
* @param[in] lat
* @param[in] radius
* @param[out] ret
*
* @see elm_map_overlay_circle_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_circle_add(lon, lat, radius, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_CIRCLE_ADD), EO_TYPECHECK(double, lon), EO_TYPECHECK(double, lat), EO_TYPECHECK(double, radius), EO_TYPECHECK(Elm_Map_Overlay **, ret)
/**
* @def elm_obj_map_overlay_scale_add
* @since 1.8
*
* Add a new scale overlay to the map object.
*
* @param[in] x
* @param[in] y
* @param[out] ret
*
* @see elm_map_overlay_scale_add
*
* @ingroup Map
*/
#define elm_obj_map_overlay_scale_add(x, y, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_SCALE_ADD), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y), EO_TYPECHECK(Elm_Map_Overlay **, ret)
#ifdef ELM_EMAP
/**
* @def elm_obj_map_track_add
* @since 1.8
*
* Add a track on the map
*
* @param[in] emap
* @param[out] ret
*
* @see elm_map_track_add
*
* @ingroup Map
*/
#define elm_obj_map_track_add(emap, ret) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_TRACK_ADD), EO_TYPECHECK(void *, emap), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_map_track_remove
* @since 1.8
*
* Remove a track from the map
*
* @param[in] route
*
* @see elm_map_track_remove
*
* @ingroup Map
*/
#define elm_obj_map_track_remove(route) ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_TRACK_REMOVE), EO_TYPECHECK(Evas_Object *, route)

View File

@ -0,0 +1,723 @@
/**
* Set the zoom level of the map.
*
* @param obj The map object.
* @param zoom The zoom level to set.
*
* This sets the zoom level.
*
* It will respect limits defined by elm_map_zoom_min_set() and
* elm_map_zoom_max_set().
*
* By default these values are 0 (world map) and 18 (maximum zoom).
*
* This function should be used when zoom mode is set to #ELM_MAP_ZOOM_MODE_MANUAL.
* This is the default mode, and can be set with elm_map_zoom_mode_set().
*
* @see elm_map_zoom_mode_set()
* @see elm_map_zoom_get()
*
* @ingroup Map
*/
EAPI void elm_map_zoom_set(Evas_Object *obj, int zoom);
/**
* Get the zoom level of the map.
*
* @param obj The map object.
* @return The current zoom level.
*
* This returns the current zoom level of the map object.
*
* Note that if you set the fill mode to other than #ELM_MAP_ZOOM_MODE_MANUAL
* (which is the default), the zoom level may be changed at any time by the
* map object itself to account for map size and map viewport size.
*
* @see elm_map_zoom_set() for details.
*
* @ingroup Map
*/
EAPI int elm_map_zoom_get(const Evas_Object *obj);
/**
* Set the zoom mode used by the map object.
*
* @param obj The map object.
* @param mode The zoom mode of the map, being it one of #ELM_MAP_ZOOM_MODE_MANUAL
* (default), #ELM_MAP_ZOOM_MODE_AUTO_FIT, or #ELM_MAP_ZOOM_MODE_AUTO_FILL.
*
* This sets the zoom mode to manual or one of the automatic levels.
* Manual (#ELM_MAP_ZOOM_MODE_MANUAL) means that zoom is set manually by
* elm_map_zoom_set() and will stay at that level until changed by code
* or until zoom mode is changed. This is the default mode.
*
* The Automatic modes will allow the map object to automatically
* adjust zoom mode based on properties. #ELM_MAP_ZOOM_MODE_AUTO_FIT will
* adjust zoom so the map fits inside the scroll frame with no pixels
* outside this area. #ELM_MAP_ZOOM_MODE_AUTO_FILL will be similar but
* ensure no pixels within the frame are left unfilled. Do not forget that
* the valid sizes are 2^zoom, consequently the map may be smaller than
* the scroller view.
*
* @see elm_map_zoom_set()
*
* @ingroup Map
*/
EAPI void elm_map_zoom_mode_set(Evas_Object *obj, Elm_Map_Zoom_Mode mode);
/**
* Get the zoom mode used by the map object.
*
* @param obj The map object.
* @return The zoom mode of the map, being it one of #ELM_MAP_ZOOM_MODE_MANUAL
* (default), #ELM_MAP_ZOOM_MODE_AUTO_FIT, or #ELM_MAP_ZOOM_MODE_AUTO_FILL.
*
* This function returns the current zoom mode used by the map object.
*
* @see elm_map_zoom_mode_set() for more details.
*
* @ingroup Map
*/
EAPI Elm_Map_Zoom_Mode elm_map_zoom_mode_get(const Evas_Object *obj);
/**
* Set the maximum zoom of the source.
*
* @param obj The map object.
* @param zoom New maximum zoom value to be used.
*
* @see elm_map_zoom_max_get() for details.
*
* @ingroup Map
*/
EAPI void elm_map_zoom_max_set(Evas_Object *obj, int zoom);
/**
* Get the maximum zoom of the source.
*
* @param obj The map object.
* @return Returns the maximum zoom of the source.
*
* @see elm_map_zoom_max_set() for details.
*
* @ingroup Map
*/
EAPI int elm_map_zoom_max_get(const Evas_Object *obj);
/**
* Set the minimum zoom of the source.
*
* @param obj The map object.
* @param zoom New minimum zoom value to be used.
*
* @see elm_map_zoom_min_get() for details.
*
* @ingroup Map
*/
EAPI void elm_map_zoom_min_set(Evas_Object *obj, int zoom);
/**
* Get the minimum zoom of the source.
*
* @param obj The map object.
* @return Returns the minimum zoom of the source.
*
* @see elm_map_zoom_min_set() for details.
*
* @ingroup Map
*/
EAPI int elm_map_zoom_min_get(const Evas_Object *obj);
/**
* Animatedly bring in given coordinates to the center of the map.
*
* @param obj The map object.
* @param lon Longitude to center at.
* @param lat Latitude to center at.
*
* This causes map to jump to the given @p lat and @p lon coordinates
* and show it (by scrolling) in the center of the viewport, if it is not
* already centered. This will use animation to do so and take a period
* of time to complete.
*
* @see elm_map_region_show() for a function to avoid animation.
* @see elm_map_region_get()
*
* @ingroup Map
*/
EAPI void elm_map_region_bring_in(Evas_Object *obj, double lon, double lat);
/**
* Show the given coordinates at the center of the map, @b immediately.
*
* @param obj The map object.
* @param lon Longitude to center at.
* @param lat Latitude to center at.
*
* This causes map to @b redraw its viewport's contents to the
* region containing the given @p lat and @p lon, that will be moved to the
* center of the map.
*
* @see elm_map_region_bring_in() for a function to move with animation.
* @see elm_map_region_get()
*
* @ingroup Map
*/
EAPI void elm_map_region_show(Evas_Object *obj, double lon, double lat);
/**
* Get the current geographic coordinates of the map.
*
* @param obj The map object.
* @param lon Pointer to store longitude.
* @param lat Pointer to store latitude.
*
* This gets the current center coordinates of the map object. It can be
* set by elm_map_region_bring_in() and elm_map_region_show().
*
* @see elm_map_region_bring_in()
* @see elm_map_region_show()
*
* @ingroup Map
*/
EAPI void elm_map_region_get(const Evas_Object *obj, double *lon, double *lat);
/**
* Pause or unpause the map.
*
* @param obj The map object.
* @param paused Use @c EINA_TRUE to pause the map @p obj or @c EINA_FALSE
* to unpause it.
*
* This sets the paused state to on (@c EINA_TRUE) or off (@c EINA_FALSE)
* for map.
*
* The default is off.
*
* This will stop zooming using animation, changing zoom levels will
* change instantly. This will stop any existing animations that are running.
*
* @see elm_map_paused_get()
*
* @ingroup Map
*/
EAPI void elm_map_paused_set(Evas_Object *obj, Eina_Bool paused);
/**
* Get a value whether map is paused or not.
*
* @param obj The map object.
* @return @c EINA_TRUE means map is pause. @c EINA_FALSE indicates
* it is not.
*
* This gets the current paused state for the map object.
*
* @see elm_map_paused_set() for details.
*
* @ingroup Map
*/
EAPI Eina_Bool elm_map_paused_get(const Evas_Object *obj);
/**
* Rotate the map.
*
* @param obj The map object.
* @param degree Angle from 0.0 to 360.0 to rotate around Z axis.
* @param cx Rotation's center horizontal position.
* @param cy Rotation's center vertical position.
*
* @see elm_map_rotate_get()
*
* @ingroup Map
*/
EAPI void elm_map_rotate_set(Evas_Object *obj, double degree, Evas_Coord cx, Evas_Coord cy);
/**
* Get the rotate degree of the map
*
* @param obj The map object
* @param degree Pointer to store degrees from 0.0 to 360.0
* to rotate around Z axis.
* @param cx Pointer to store rotation's center horizontal position.
* @param cy Pointer to store rotation's center vertical position.
*
* @see elm_map_rotate_set() to set map rotation.
*
* @ingroup Map
*/
EAPI void elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_Coord *cy);
/**
* Enable or disable mouse wheel to be used to zoom in / out the map.
*
* @param obj The map object.
* @param disabled Use @c EINA_TRUE to disable mouse wheel or @c EINA_FALSE
* to enable it.
*
* Mouse wheel can be used for the user to zoom in or zoom out the map.
*
* It's disabled by default.
*
* @see elm_map_wheel_disabled_get()
*
* @ingroup Map
*/
EAPI void elm_map_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled);
/**
* Get a value whether mouse wheel is enabled or not.
*
* @param obj The map object.
* @return @c EINA_TRUE means map is disabled. @c EINA_FALSE indicates
* it is enabled.
*
* Mouse wheel can be used for the user to zoom in or zoom out the map.
*
* @see elm_map_wheel_disabled_set() for details.
*
* @ingroup Map
*/
EAPI Eina_Bool elm_map_wheel_disabled_get(const Evas_Object *obj);
/**
* Get the information of tile load status.
*
* @param obj The map object.
* @param try_num Pointer to store number of tiles download requested.
* @param finish_num Pointer to store number of tiles successfully downloaded.
*
* This gets the current tile loaded status for the map object.
*
* @ingroup Map
*/
EAPI void elm_map_tile_load_status_get(const Evas_Object *obj, int *try_num, int *finish_num);
/**
* Convert canvas coordinates into geographic coordinates
* (longitude, latitude).
*
* @param obj The map object.
* @param x horizontal coordinate of the point to convert.
* @param y vertical coordinate of the point to convert.
* @param lon A pointer to the longitude.
* @param lat A pointer to the latitude.
*
* This gets longitude and latitude from canvas x, y coordinates. The canvas
* coordinates mean x, y coordinate from current viewport.
*
* see elm_map_region_to_canvas_convert()
*
* @ingroup Map
*/
EAPI void elm_map_canvas_to_region_convert(const Evas_Object *obj, const Evas_Coord x, const Evas_Coord y, double *lon, double *lat);
/**
* Convert geographic coordinates (longitude, latitude)
* into canvas coordinates.
*
* @param obj The map object.
* @param lon The longitude to convert.
* @param lat The latitude to convert.
* @param x A pointer to horizontal coordinate.
* @param y A pointer to vertical coordinate.
*
* This gets canvas x, y coordinates from longitude and latitude. The canvas
* coordinates mean x, y coordinate from current viewport.
*
* see elm_map_canvas_to_region_convert()
*
* @ingroup Map
*/
EAPI void elm_map_region_to_canvas_convert(const Evas_Object *obj, double lon, double lat, Evas_Coord *x, Evas_Coord *y);
/**
* Set the user agent used by the map object to access routing services.
*
* @param obj The map object.
* @param user_agent The user agent to be used by the map.
*
* User agent is a client application implementing a network protocol used
* in communications within a clientserver distributed computing system
*
* The @p user_agent identification string will transmitted in a header
* field @c User-Agent.
*
* @see elm_map_user_agent_get()
*
* @ingroup Map
*/
EAPI void elm_map_user_agent_set(Evas_Object *obj, const char *user_agent);
/**
* Get the user agent used by the map object.
*
* @param obj The map object.
* @return The user agent identification string used by the map.
*
* @see elm_map_user_agent_set() for details.
*
* @ingroup Map
*/
EAPI const char *elm_map_user_agent_get(const Evas_Object *obj);
/**
* Set the current source of the map for a specific type.
*
* @param obj The map object.
* @param type source type.
* @param source_name The source to be used.
*
* Map widget retrieves tile images that composes the map from a web service.
* This web service can be set with this method
* for ELM_MAP_SOURCE_TYPE_TILE type.
* A different service can return a different maps with different
* information and it can use different zoom values.
*
* Map widget provides route data based on a external web service.
* This web service can be set with this method
* for ELM_MAP_SOURCE_TYPE_ROUTE type.
*
* Map widget also provide geoname data based on a external web service.
* This web service can be set with this method
* for ELM_MAP_SOURCE_TYPE_NAME type.
*
* The @p source_name need to match one of the names provided by
* elm_map_sources_get().
*
* The current source can be get using elm_map_source_get().
*
* @see elm_map_sources_get()
* @see elm_map_source_get()
*
* @ingroup Map
*/
EAPI void elm_map_source_set(Evas_Object *obj, Elm_Map_Source_Type type, const char *source_name);
/**
* Get the name of currently used source for a specific type.
*
* @param obj The map object.
* @param type source type.
* @return Returns the name of the source in use.
*
* @see elm_map_sources_get()
* @see elm_map_source_set()
*
* @ingroup Map
*/
EAPI const char *elm_map_source_get(const Evas_Object *obj, Elm_Map_Source_Type type);
/**
* Get the names of available sources for a specific type.
*
* @param obj The map object.
* @param type source type.
* @return The char pointer array of source names.
*
* It will provide a list with all available sources.
* Current source can be set by elm_map_source_set(), or get with
* elm_map_source_get().
*
* At least available sources of tile type:
* @li "Mapnik"
* @li "Osmarender"
* @li "CycleMap"
* @li "Maplint"
*
* At least available sources of route type:
* @li "Yours"
*
* At least available sources of name type:
* @li "Nominatim"
*
* @see elm_map_source_set()
* @see elm_map_source_get()
*
* @ingroup Map
*/
EAPI const char **elm_map_sources_get(const Evas_Object *obj, Elm_Map_Source_Type type);
/**
* Add a new route to the map object.
*
* @param obj The map object.
* @param type The type of transport to be considered when tracing a route.
* @param method The routing method, what should be prioritized.
* @param flon The start longitude.
* @param flat The start latitude.
* @param tlon The destination longitude.
* @param tlat The destination latitude.
* @param route_cb The route to be traced.
* @param data A pointer of user data.
*
* @return The created route or @c NULL upon failure.
*
* A route will be traced by point on coordinates (@p flat, @p flon)
* to point on coordinates (@p tlat, @p tlon), using the route service
* set with elm_map_source_set().
*
* It will take @p type on consideration to define the route,
* depending if the user will be walking or driving, the route may vary.
* One of #ELM_MAP_ROUTE_TYPE_MOTOCAR, #ELM_MAP_ROUTE_TYPE_BICYCLE,
* or #ELM_MAP_ROUTE_TYPE_FOOT need to be used.
*
* Another parameter is what the route should prioritize, the minor distance
* or the less time to be spend on the route. So @p method should be one
* of #ELM_MAP_ROUTE_METHOD_SHORTEST or #ELM_MAP_ROUTE_METHOD_FASTEST.
*
* Routes created with this method can be deleted with
* elm_map_route_del(),
* and distance can be get with elm_map_route_distance_get().
*
* @see elm_map_route_del()
* @see elm_map_route_distance_get()
* @see elm_map_source_set()
*
* @ingroup Map
*/
EAPI Elm_Map_Route *elm_map_route_add(Evas_Object *obj, Elm_Map_Route_Type type, Elm_Map_Route_Method method, double flon, double flat, double tlon, double tlat, Elm_Map_Route_Cb route_cb, void *data);
/**
* Request a address or geographic coordinates(longitude, latitude)
* from a given address or geographic coordinate(longitude, latitude).
*
* @param obj The map object.
* @param address The address.
* @param lon The longitude.
* @param lat The latitude.
* @param name_cb The callback function.
* @param data The user callback data.
* @return name A #Elm_Map_Name handle for this coordinate.
*
* If you want to get address from geographic coordinates, set input @p address
* as @c NULL and set @p lon, @p lat as you want to convert.
* If address is set except NULL, @p lon and @p lat are checked.
*
* To get the string for this address, elm_map_name_address_get()
* should be used after callback or "name,loaded" signal is called.
*
* To get the longitude and latitude, elm_map_name_region_get()
* should be used.
*
* @ingroup Map
*/
EAPI Elm_Map_Name *elm_map_name_add(const Evas_Object *obj, const char *address, double lon, double lat, Elm_Map_Name_Cb name_cb, void *data);
/**
* Add a new overlay to the map object. This overlay has a default type.
*
* @param obj The map object to add a new overlay.
* @param lon The longitude of the overlay.
* @param lat The latitude of the overlay.
* @return The created overlay or @c NULL upon failure.
*
* A overlay will be created and shown in a specific point of the map, defined
* by @p lon and @p lat.
*
* The created overlay has a default style layout before content or
* icon is set.
* If content or icon is set, those are displayed instead of default style
* layout.
* You can set by using elm_map_overlay_content_set() or
* elm_map_overlay_icon_set(). If NULL is set, default style
* is shown again.
*
* Overlay created with this method can be deleted by elm_map_overlay_del().
*
* @see elm_map_overlay_del()
* @see elm_map_overlay_class_add()
* @see elm_map_overlay_bubble_add()
* @see elm_map_overlay_content_set()
* @see elm_map_overlay_icon_set()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_add(Evas_Object *obj, double lon, double lat);
/**
* Return all overlays in the map object.
*
* @param obj The map object to return overlays.
* @return The list of all overlays or @c NULL upon failure.
*
* This list includes group overlays also.
* So this can be changed dynamically while zooming and panning.
*
* @since 1.7
*
* @ingroup Map
*/
EAPI EAPI Eina_List * elm_map_overlays_get(Evas_Object *obj);
/**
* Add a new class overlay to the map object.
* This overlay has a class type.
*
* @param obj The map object to add a new overlay.
* @return The created overlay or @c NULL upon failure.
*
* This overlay is not shown before overlay members are appended.
* if overlay members in the same class are close, group overlays
* are created. If they are far away, group overlays are hidden.
* When group overlays are shown, they have default style layouts at first.
*
* You can change the state (hidden, paused, etc.) or set the content
* or icon of the group overlays by chaning the state of the class overlay.
* Do not modify the group overlay itself.
*
* Also these changes have a influence on the overlays in the same class
* even if each overlay is alone and is not grouped.
*
* @see elm_map_overlay_del()
* @see elm_map_overlay_add()
* @see elm_map_overlay_bubble_add()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_class_add(Evas_Object *obj);
/**
* Add a new bubble overlay to the map object.
* This overlay has a bubble type.
*
* @param obj The map object to add a new overlay.
* @return The created overlay or @c NULL upon failure.
*
* A bubble will not be displayed before geographic coordinates are set or
* any other overlays are followed.
*
* This overlay has a bubble style layout and icon or content can not
* be set.
*
* Overlay created with this method can be deleted with elm_map_overlay_del().
*
* @see elm_map_overlay_del()
* @see elm_map_overlay_add()
* @see elm_map_overlay_class_add()
* @see elm_map_overlay_region_set()
* @see elm_map_overlay_bubble_follow()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_bubble_add(Evas_Object *obj);
/**
* Add a new route overlay to the map object.
* This overlay has a route type.
*
* @param obj The map object to add a new overlay.
* @param route The route object to make a overlay.
* @return The created overlay or @c NULL upon failure.
*
* This overlay has a route style layout and icon or content can not
* be set.
*
* The color scheme can be changed by elm_map_overlay_content_set().
*
* Overlay created with this method can be deleted with elm_map_overlay_del().
*
* @see elm_map_overlay_del()
* @see elm_map_overlay_class_add()
* @see elm_map_overlay_content_set()
* @see elm_map_overlay_content_get()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_route_add(Evas_Object *obj, const Elm_Map_Route *route);
/**
* Add a new line overlay to the map object.
* This overlay has a line type.
*
* @param obj The map object to add a new overlay.
* @param flon The start longitude.
* @param flat The start latitude.
* @param tlon The destination longitude.
* @param tlat The destination latitude.
* @return The created overlay or @c NULL upon failure.
*
* Overlay created with this method can be deleted with elm_map_overlay_del().
*
* @see elm_map_overlay_del()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_line_add(Evas_Object *obj, double flon, double flat, double tlon, double tlat);
/**
* Add a new polygon overlay to the map object.
* This overlay has a polygon type.
*
* @param obj The map object to add a new overlay.
* @return The created overlay or @c NULL upon failure.
*
* At least 3 regions should be added to show the polygon overlay.
*
* Overlay created with this method can be deleted with elm_map_overlay_del().
*
* @see elm_map_overlay_polygon_region_add()
* @see elm_map_overlay_del()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_polygon_add(Evas_Object *obj);
/**
* Add a new circle overlay to the map object.
* This overlay has a circle type.
*
* @param obj The map object to add a new overlay.
* @param lon The center longitude.
* @param lat The center latitude.
* @param radius The pixel length of radius.
* @return The created overlay or @c NULL upon failure.
*
* Overlay created with this method can be deleted with elm_map_overlay_del().
*
* @see elm_map_overlay_del()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_circle_add(Evas_Object *obj, double lon, double lat, double radius);
/**
* Add a new scale overlay to the map object.
* This overlay has a scale type.
*
* @param obj The map object to add a new overlay.
* @param x horizontal pixel coordinate.
* @param y vertical pixel coordinate
* @return The created overlay or @c NULL upon failure.
*
* The scale overlay shows the ratio of a distance on the map to the corresponding distance.
*
* Overlay created with this method can be deleted with elm_map_overlay_del().
*
* @see elm_map_overlay_del()
*
* @ingroup Map
*/
EAPI Elm_Map_Overlay * elm_map_overlay_scale_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
/**
* Add a track on the map
*
* @param obj The map object.
* @param emap The emap route object.
* @return The route object. This is an elm object of type Route.
*
* @see elm_route_add() for details.
*
* @ingroup Map
*/
EAPI Evas_Object *elm_map_track_add(Evas_Object *obj, void *emap);
/**
* Remove a track from the map
*
* @param obj The map object.
* @param route The track to remove.
*
* @ingroup Map
*/
EAPI void elm_map_track_remove(Evas_Object *obj, Evas_Object *route);

View File

@ -34,381 +34,13 @@
* @{
*/
#define ELM_OBJ_MENU_CLASS elm_obj_menu_class_get()
const Eo_Class *elm_obj_menu_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_MENU_BASE_ID;
enum
{
ELM_OBJ_MENU_SUB_ID_MOVE,
ELM_OBJ_MENU_SUB_ID_CLOSE,
ELM_OBJ_MENU_SUB_ID_ITEM_ADD,
ELM_OBJ_MENU_SUB_ID_ITEM_SEPARATOR_ADD,
ELM_OBJ_MENU_SUB_ID_ITEMS_GET,
ELM_OBJ_MENU_SUB_ID_FIRST_ITEM_GET,
ELM_OBJ_MENU_SUB_ID_LAST_ITEM_GET,
ELM_OBJ_MENU_SUB_ID_SELECTED_ITEM_GET,
ELM_OBJ_MENU_SUB_ID_LAST
};
#define ELM_OBJ_MENU_ID(sub_id) (ELM_OBJ_MENU_BASE_ID + sub_id)
/**
* @def elm_obj_menu_move
* @since 1.8
*
* @brief Move the menu to a new position
*
* @param[in] x
* @param[in] y
*
* @see elm_menu_move
*/
#define elm_obj_menu_move(x, y) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_MOVE), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y)
/**
* @def elm_obj_menu_close
* @since 1.8
*
* @brief Close a opened menu
*
*
* @see elm_menu_close
*/
#define elm_obj_menu_close() ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_CLOSE)
/**
* @def elm_obj_menu_item_add
* @since 1.8
*
* @brief Add an item at the end of the given menu widget
*
* @param[in] parent
* @param[in] icon
* @param[in] label
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_menu_item_add
*/
#define elm_obj_menu_item_add(parent, icon, label, func, data, ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_ITEM_ADD), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(const char *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_item_separator_add
* @since 1.8
*
* @brief Add a separator item to menu obj under @p parent.
*
* @param[in] parent
* @param[out] ret
*
* @see elm_menu_item_separator_add
*/
#define elm_obj_menu_item_separator_add(parent, ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_ITEM_SEPARATOR_ADD), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_items_get
* @since 1.8
*
* @brief Returns a list of item's items.
*
* @param[out] ret
*
* @see elm_menu_items_get
*/
#define elm_obj_menu_items_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_menu_first_item_get
* @since 1.8
*
* @brief Get the first item in the menu
*
* @param[out] ret
*
* @see elm_menu_first_item_get
*/
#define elm_obj_menu_first_item_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_FIRST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_last_item_get
* @since 1.8
*
* @brief Get the last item in the menu
*
* @param[out] ret
*
* @see elm_menu_last_item_get
*/
#define elm_obj_menu_last_item_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_LAST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_selected_item_get
* @since 1.8
*
* @brief Get the selected item in the menu
*
* @param[out] ret
*
* @see elm_menu_selected_item_get
*/
#define elm_obj_menu_selected_item_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @brief Add a new menu to the parent
*
* @param parent The parent object.
* @return The new object or NULL if it cannot be created.
*
* @ingroup Menu
*/
EAPI Evas_Object *elm_menu_add(Evas_Object *parent);
/**
* @brief Set the parent for the given menu widget
*
* @param obj The menu object.
* @param parent The new parent.
*
* @ingroup Menu
*/
EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent);
/**
* @brief Get the parent for the given menu widget
*
* @param obj The menu object.
* @return The parent.
*
* @see elm_menu_parent_set()
*
* @ingroup Menu
*/
EAPI Evas_Object *elm_menu_parent_get(const Evas_Object *obj);
/**
* @brief Move the menu to a new position
*
* @param obj The menu object.
* @param x The new position.
* @param y The new position.
*
* Sets the top-left position of the menu to (@p x,@p y).
*
* @note @p x and @p y coordinates are relative to parent.
*
* @ingroup Menu
*/
EAPI void elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
/**
* @brief Close a opened menu
*
* @param obj the menu object
* @return void
*
* Hides the menu and all it's sub-menus.
*
* @ingroup Menu
*/
EAPI void elm_menu_close(Evas_Object *obj);
/**
* @brief Returns a list of @p item's items.
*
* @param obj The menu object
* @return An Eina_List* of @p item's items
*
* @ingroup Menu
*/
EAPI const Eina_List *elm_menu_items_get(const Evas_Object *obj);
/**
* Get the real Evas(Edje) object created to implement the view of a given
* menu @p item.
*
* @param it The menu item.
* @return The base Edje object containing the swallowed content associated with
* @p it.
*
* @warning Don't manipulate this object!
*
* @ingroup Menu
*/
EAPI Evas_Object *elm_menu_item_object_get(const Elm_Object_Item *it);
/**
* @brief Add an item at the end of the given menu widget
*
* @param obj The menu object.
* @param parent The parent menu item (optional)
* @param icon An icon display on the item. The icon will be destroyed by the menu.
* @param label The label of the item.
* @param func Function called when the user select the item.
* @param data Data sent by the callback.
* @return Returns the new item.
*
* @note This function does not accept relative icon path.
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_add(Evas_Object *obj, Elm_Object_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data);
/**
* @brief Set the icon of a menu item to the standard icon with name @p icon
*
* @param it The menu item object.
* @param icon The name of icon object to set for the content of @p item
*
* Once this icon is set, any previously set icon will be deleted.
*
* @ingroup Menu
*/
EAPI void elm_menu_item_icon_name_set(Elm_Object_Item *it, const char *icon);
/**
* @brief Get the string representation from the icon of a menu item
*
* @param it The menu item object.
* @return The string representation of @p item's icon or NULL
*
* @see elm_menu_item_icon_name_set()
*
* @ingroup Menu
*/
EAPI const char *elm_menu_item_icon_name_get(const Elm_Object_Item *it);
/**
* @brief Set the selected state of @p item.
*
* @param it The menu item object.
* @param selected The selected/unselected state of the item
*
* @ingroup Menu
*/
EAPI void elm_menu_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
/**
* @brief Get the selected state of @p item.
*
* @param it The menu item object.
* @return The selected/unselected state of the item
*
* @see elm_menu_item_selected_set()
*
* @ingroup Menu
*/
EAPI Eina_Bool elm_menu_item_selected_get(const Elm_Object_Item *it);
/**
* @brief Add a separator item to menu @p obj under @p parent.
*
* @param obj The menu object
* @param parent The item to add the separator under
* @return The created item or NULL on failure
*
* This is item is a @ref Separator.
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_separator_add(Evas_Object *obj, Elm_Object_Item *parent);
/**
* @brief Returns whether @p item is a separator.
*
* @param it The item to check
* @return If true, @p item is a separator
*
* @see elm_menu_item_separator_add()
*
* @ingroup Menu
*/
EAPI Eina_Bool elm_menu_item_is_separator(Elm_Object_Item *it);
/**
* @brief Returns a list of @p item's subitems.
*
* @param it The item
* @return An Eina_List* of @p item's subitems
*
* @see elm_menu_add()
*
* @ingroup Menu
*/
EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Object_Item *it);
/**
* @brief Get the position of a menu item
*
* @param it The menu item
* @return The item's index
*
* This function returns the index position of a menu item in a menu.
* For a sub-menu, this number is relative to the first item in the sub-menu.
*
* @note Index values begin with 0
*
* @ingroup Menu
*/
EAPI unsigned int elm_menu_item_index_get(const Elm_Object_Item *it);
/**
* @brief Get the selected item in the menu
*
* @param obj The menu object
* @return The selected item, or NULL if none
*
* @see elm_menu_item_selected_get()
* @see elm_menu_item_selected_set()
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_selected_item_get(const Evas_Object *obj);
/**
* @brief Get the last item in the menu
*
* @param obj The menu object
* @return The last item, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_last_item_get(const Evas_Object *obj);
/**
* @brief Get the first item in the menu
*
* @param obj The menu object
* @return The first item, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_first_item_get(const Evas_Object *obj);
/**
* @brief Get the next item in the menu.
*
* @param it The menu item object.
* @return The item after it, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_next_get(const Elm_Object_Item *it);
/**
* @brief Get the previous item in the menu.
*
* @param it The menu item object.
* @return The item before it, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_prev_get(const Elm_Object_Item *it);
#include "elm_menu_common.h"
#ifdef EFL_EO_API_SUPPORT
#include "elm_menu_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_menu_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,119 @@
/**
* Get the real Evas(Edje) object created to implement the view of a given
* menu @p item.
*
* @param it The menu item.
* @return The base Edje object containing the swallowed content associated with
* @p it.
*
* @warning Don't manipulate this object!
*
* @ingroup Menu
*/
EAPI Evas_Object *elm_menu_item_object_get(const Elm_Object_Item *it);
/**
* @brief Set the icon of a menu item to the standard icon with name @p icon
*
* @param it The menu item object.
* @param icon The name of icon object to set for the content of @p item
*
* Once this icon is set, any previously set icon will be deleted.
*
* @ingroup Menu
*/
EAPI void elm_menu_item_icon_name_set(Elm_Object_Item *it, const char *icon);
/**
* @brief Get the string representation from the icon of a menu item
*
* @param it The menu item object.
* @return The string representation of @p item's icon or NULL
*
* @see elm_menu_item_icon_name_set()
*
* @ingroup Menu
*/
EAPI const char *elm_menu_item_icon_name_get(const Elm_Object_Item *it);
/**
* @brief Set the selected state of @p item.
*
* @param it The menu item object.
* @param selected The selected/unselected state of the item
*
* @ingroup Menu
*/
EAPI void elm_menu_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
/**
* @brief Get the selected state of @p item.
*
* @param it The menu item object.
* @return The selected/unselected state of the item
*
* @see elm_menu_item_selected_set()
*
* @ingroup Menu
*/
EAPI Eina_Bool elm_menu_item_selected_get(const Elm_Object_Item *it);
/**
* @brief Returns whether @p item is a separator.
*
* @param it The item to check
* @return If true, @p item is a separator
*
* @see elm_menu_item_separator_add()
*
* @ingroup Menu
*/
EAPI Eina_Bool elm_menu_item_is_separator(Elm_Object_Item *it);
/**
* @brief Returns a list of @p item's subitems.
*
* @param it The item
* @return An Eina_List* of @p item's subitems
*
* @see elm_menu_add()
*
* @ingroup Menu
*/
EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Object_Item *it);
/**
* @brief Get the position of a menu item
*
* @param it The menu item
* @return The item's index
*
* This function returns the index position of a menu item in a menu.
* For a sub-menu, this number is relative to the first item in the sub-menu.
*
* @note Index values begin with 0
*
* @ingroup Menu
*/
EAPI unsigned int elm_menu_item_index_get(const Elm_Object_Item *it);
/**
* @brief Get the next item in the menu.
*
* @param it The menu item object.
* @return The item after it, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_next_get(const Elm_Object_Item *it);
/**
* @brief Get the previous item in the menu.
*
* @param it The menu item object.
* @return The item before it, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_prev_get(const Elm_Object_Item *it);

View File

@ -0,0 +1,139 @@
#define ELM_OBJ_MENU_CLASS elm_obj_menu_class_get()
const Eo_Class *elm_obj_menu_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_MENU_BASE_ID;
enum
{
ELM_OBJ_MENU_SUB_ID_MOVE,
ELM_OBJ_MENU_SUB_ID_CLOSE,
ELM_OBJ_MENU_SUB_ID_ITEM_ADD,
ELM_OBJ_MENU_SUB_ID_ITEM_SEPARATOR_ADD,
ELM_OBJ_MENU_SUB_ID_ITEMS_GET,
ELM_OBJ_MENU_SUB_ID_FIRST_ITEM_GET,
ELM_OBJ_MENU_SUB_ID_LAST_ITEM_GET,
ELM_OBJ_MENU_SUB_ID_SELECTED_ITEM_GET,
ELM_OBJ_MENU_SUB_ID_LAST
};
#define ELM_OBJ_MENU_ID(sub_id) (ELM_OBJ_MENU_BASE_ID + sub_id)
/**
* @def elm_obj_menu_move
* @since 1.8
*
* @brief Move the menu to a new position
*
* @param[in] x
* @param[in] y
*
* @see elm_menu_move
*
* @ingroup Menu
*/
#define elm_obj_menu_move(x, y) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_MOVE), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y)
/**
* @def elm_obj_menu_close
* @since 1.8
*
* @brief Close a opened menu
*
*
* @see elm_menu_close
*
* @ingroup Menu
*/
#define elm_obj_menu_close() ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_CLOSE)
/**
* @def elm_obj_menu_item_add
* @since 1.8
*
* @brief Add an item at the end of the given menu widget
*
* @param[in] parent
* @param[in] icon
* @param[in] label
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_menu_item_add
*
* @ingroup Menu
*/
#define elm_obj_menu_item_add(parent, icon, label, func, data, ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_ITEM_ADD), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(const char *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_item_separator_add
* @since 1.8
*
* @brief Add a separator item to menu obj under @p parent.
*
* @param[in] parent
* @param[out] ret
*
* @see elm_menu_item_separator_add
*
* @ingroup Menu
*/
#define elm_obj_menu_item_separator_add(parent, ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_ITEM_SEPARATOR_ADD), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_items_get
* @since 1.8
*
* @brief Returns a list of item's items.
*
* @param[out] ret
*
* @see elm_menu_items_get
*
* @ingroup Menu
*/
#define elm_obj_menu_items_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_menu_first_item_get
* @since 1.8
*
* @brief Get the first item in the menu
*
* @param[out] ret
*
* @see elm_menu_first_item_get
*
* @ingroup Menu
*/
#define elm_obj_menu_first_item_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_FIRST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_last_item_get
* @since 1.8
*
* @brief Get the last item in the menu
*
* @param[out] ret
*
* @see elm_menu_last_item_get
*
* @ingroup Menu
*/
#define elm_obj_menu_last_item_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_LAST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_menu_selected_item_get
* @since 1.8
*
* @brief Get the selected item in the menu
*
* @param[out] ret
*
* @see elm_menu_selected_item_get
*
* @ingroup Menu
*/
#define elm_obj_menu_selected_item_get(ret) ELM_OBJ_MENU_ID(ELM_OBJ_MENU_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)

View File

@ -0,0 +1,131 @@
/**
* @brief Add a new menu to the parent
*
* @param parent The parent object.
* @return The new object or NULL if it cannot be created.
*
* @ingroup Menu
*/
EAPI Evas_Object *elm_menu_add(Evas_Object *parent);
/**
* @brief Set the parent for the given menu widget
*
* @param obj The menu object.
* @param parent The new parent.
*
* @ingroup Menu
*/
EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent);
/**
* @brief Get the parent for the given menu widget
*
* @param obj The menu object.
* @return The parent.
*
* @see elm_menu_parent_set()
*
* @ingroup Menu
*/
EAPI Evas_Object *elm_menu_parent_get(const Evas_Object *obj);
/**
* @brief Move the menu to a new position
*
* @param obj The menu object.
* @param x The new position.
* @param y The new position.
*
* Sets the top-left position of the menu to (@p x,@p y).
*
* @note @p x and @p y coordinates are relative to parent.
*
* @ingroup Menu
*/
EAPI void elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
/**
* @brief Close a opened menu
*
* @param obj the menu object
* @return void
*
* Hides the menu and all it's sub-menus.
*
* @ingroup Menu
*/
EAPI void elm_menu_close(Evas_Object *obj);
/**
* @brief Add an item at the end of the given menu widget
*
* @param obj The menu object.
* @param parent The parent menu item (optional)
* @param icon An icon display on the item. The icon will be destroyed by the menu.
* @param label The label of the item.
* @param func Function called when the user select the item.
* @param data Data sent by the callback.
* @return Returns the new item.
*
* @note This function does not accept relative icon path.
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_add(Evas_Object *obj, Elm_Object_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data);
/**
* @brief Add a separator item to menu @p obj under @p parent.
*
* @param obj The menu object
* @param parent The item to add the separator under
* @return The created item or NULL on failure
*
* This is item is a @ref Separator.
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_item_separator_add(Evas_Object *obj, Elm_Object_Item *parent);
/**
* @brief Returns a list of @p item's items.
*
* @param obj The menu object
* @return An Eina_List* of @p item's items
*
* @ingroup Menu
*/
EAPI const Eina_List *elm_menu_items_get(const Evas_Object *obj);
/**
* @brief Get the first item in the menu
*
* @param obj The menu object
* @return The first item, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_first_item_get(const Evas_Object *obj);
/**
* @brief Get the last item in the menu
*
* @param obj The menu object
* @return The last item, or NULL if none
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_last_item_get(const Evas_Object *obj);
/**
* @brief Get the selected item in the menu
*
* @param obj The menu object
* @return The selected item, or NULL if none
*
* @see elm_menu_item_selected_get()
* @see elm_menu_item_selected_set()
*
* @ingroup Menu
*/
EAPI Elm_Object_Item *elm_menu_selected_item_get(const Evas_Object *obj);

View File

@ -28,159 +28,13 @@
* @{
*/
#define ELM_OBJ_PANEL_CLASS elm_obj_panel_class_get()
const Eo_Class *elm_obj_panel_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PANEL_BASE_ID;
enum
{
ELM_OBJ_PANEL_SUB_ID_ORIENT_SET,
ELM_OBJ_PANEL_SUB_ID_ORIENT_GET,
ELM_OBJ_PANEL_SUB_ID_HIDDEN_SET,
ELM_OBJ_PANEL_SUB_ID_HIDDEN_GET,
ELM_OBJ_PANEL_SUB_ID_TOGGLE,
ELM_OBJ_PANEL_SUB_ID_LAST
};
#define ELM_OBJ_PANEL_ID(sub_id) (ELM_OBJ_PANEL_BASE_ID + sub_id)
/**
* @def elm_obj_panel_orient_set
* @since 1.8
*
* @brief Sets the orientation of the panel
*
* @param[in] orient
*
* @see elm_panel_orient_set
*/
#define elm_obj_panel_orient_set(orient) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_ORIENT_SET), EO_TYPECHECK(Elm_Panel_Orient, orient)
/**
* @def elm_obj_panel_orient_get
* @since 1.8
*
* @brief Get the orientation of the panel.
*
* @param[out] ret
*
* @see elm_panel_orient_get
*/
#define elm_obj_panel_orient_get(ret) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_ORIENT_GET), EO_TYPECHECK(Elm_Panel_Orient *, ret)
/**
* @def elm_obj_panel_hidden_set
* @since 1.8
*
* @brief Set the state of the panel.
*
* @param[in] hidden
*
* @see elm_panel_hidden_set
*/
#define elm_obj_panel_hidden_set(hidden) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_HIDDEN_SET), EO_TYPECHECK(Eina_Bool, hidden)
/**
* @def elm_obj_panel_hidden_get
* @since 1.8
*
* @brief Get the state of the panel.
*
* @param[out] ret
*
* @see elm_panel_hidden_get
*/
#define elm_obj_panel_hidden_get(ret) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_HIDDEN_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_panel_toggle
* @since 1.8
*
* @brief Toggle the hidden state of the panel from code
*
*
* @see elm_panel_toggle
*/
#define elm_obj_panel_toggle() ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_TOGGLE)
typedef enum
{
ELM_PANEL_ORIENT_TOP, /**< Panel (dis)appears from the top */
ELM_PANEL_ORIENT_BOTTOM, /**< Panel (dis)appears from the bottom */
ELM_PANEL_ORIENT_LEFT, /**< Panel (dis)appears from the left */
ELM_PANEL_ORIENT_RIGHT, /**< Panel (dis)appears from the right */
} Elm_Panel_Orient;
/**
* @brief Adds a panel object
*
* @param parent The parent object
*
* @return The panel object, or NULL on failure
*
* @ingroup Panel
*/
EAPI Evas_Object *elm_panel_add(Evas_Object *parent);
/**
* @brief Sets the orientation of the panel
*
* @param obj The panel object
* @param orient The panel orientation. Can be one of the following:
* @li ELM_PANEL_ORIENT_TOP
* @li ELM_PANEL_ORIENT_LEFT
* @li ELM_PANEL_ORIENT_RIGHT
*
* Sets from where the panel will (dis)appear.
*
* @ingroup Panel
*/
EAPI void elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient);
/**
* @brief Get the orientation of the panel.
*
* @param obj The panel object
* @return The Elm_Panel_Orient, or ELM_PANEL_ORIENT_LEFT on failure.
*
* @ingroup Panel
*/
EAPI Elm_Panel_Orient elm_panel_orient_get(const Evas_Object *obj);
/**
* @brief Set the state of the panel.
*
* @param obj The panel object
* @param hidden If true, the panel will run the animation to disappear.
*
* @ingroup Panel
*/
EAPI void elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden);
/**
* @brief Get the state of the panel.
*
* @param obj The panel object
* @return EINA_TRUE if it is hidden state
*
* @ingroup Panel
*/
EAPI Eina_Bool elm_panel_hidden_get(const Evas_Object *obj);
/**
* @brief Toggle the hidden state of the panel from code
*
* @param obj The panel object
*
* @ingroup Panel
*/
EAPI void elm_panel_toggle(Evas_Object *obj);
#include "elm_panel_common.h"
#ifdef EFL_EO_API_SUPPORT
#include "elm_panel_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_panel_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,8 @@
typedef enum
{
ELM_PANEL_ORIENT_TOP, /**< Panel (dis)appears from the top */
ELM_PANEL_ORIENT_BOTTOM, /**< Panel (dis)appears from the bottom */
ELM_PANEL_ORIENT_LEFT, /**< Panel (dis)appears from the left */
ELM_PANEL_ORIENT_RIGHT, /**< Panel (dis)appears from the right */
} Elm_Panel_Orient;

View File

@ -0,0 +1,87 @@
#define ELM_OBJ_PANEL_CLASS elm_obj_panel_class_get()
const Eo_Class *elm_obj_panel_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PANEL_BASE_ID;
enum
{
ELM_OBJ_PANEL_SUB_ID_ORIENT_SET,
ELM_OBJ_PANEL_SUB_ID_ORIENT_GET,
ELM_OBJ_PANEL_SUB_ID_HIDDEN_SET,
ELM_OBJ_PANEL_SUB_ID_HIDDEN_GET,
ELM_OBJ_PANEL_SUB_ID_TOGGLE,
ELM_OBJ_PANEL_SUB_ID_LAST
};
#define ELM_OBJ_PANEL_ID(sub_id) (ELM_OBJ_PANEL_BASE_ID + sub_id)
/**
* @def elm_obj_panel_orient_set
* @since 1.8
*
* @brief Sets the orientation of the panel
*
* @param[in] orient
*
* @see elm_panel_orient_set
*
* @ingroup Panel
*/
#define elm_obj_panel_orient_set(orient) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_ORIENT_SET), EO_TYPECHECK(Elm_Panel_Orient, orient)
/**
* @def elm_obj_panel_orient_get
* @since 1.8
*
* @brief Get the orientation of the panel.
*
* @param[out] ret
*
* @see elm_panel_orient_get
*
* @ingroup Panel
*/
#define elm_obj_panel_orient_get(ret) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_ORIENT_GET), EO_TYPECHECK(Elm_Panel_Orient *, ret)
/**
* @def elm_obj_panel_hidden_set
* @since 1.8
*
* @brief Set the state of the panel.
*
* @param[in] hidden
*
* @see elm_panel_hidden_set
*
* @ingroup Panel
*/
#define elm_obj_panel_hidden_set(hidden) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_HIDDEN_SET), EO_TYPECHECK(Eina_Bool, hidden)
/**
* @def elm_obj_panel_hidden_get
* @since 1.8
*
* @brief Get the state of the panel.
*
* @param[out] ret
*
* @see elm_panel_hidden_get
*
* @ingroup Panel
*/
#define elm_obj_panel_hidden_get(ret) ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_HIDDEN_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_panel_toggle
* @since 1.8
*
* @brief Toggle the hidden state of the panel from code
*
*
* @see elm_panel_toggle
*
* @ingroup Panel
*/
#define elm_obj_panel_toggle() ELM_OBJ_PANEL_ID(ELM_OBJ_PANEL_SUB_ID_TOGGLE)

View File

@ -0,0 +1,64 @@
/**
* @brief Adds a panel object
*
* @param parent The parent object
*
* @return The panel object, or NULL on failure
*
* @ingroup Panel
*/
EAPI Evas_Object *elm_panel_add(Evas_Object *parent);
/**
* @brief Sets the orientation of the panel
*
* @param obj The panel object
* @param orient The panel orientation. Can be one of the following:
* @li ELM_PANEL_ORIENT_TOP
* @li ELM_PANEL_ORIENT_LEFT
* @li ELM_PANEL_ORIENT_RIGHT
*
* Sets from where the panel will (dis)appear.
*
* @ingroup Panel
*/
EAPI void elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient);
/**
* @brief Get the orientation of the panel.
*
* @param obj The panel object
* @return The Elm_Panel_Orient, or ELM_PANEL_ORIENT_LEFT on failure.
*
* @ingroup Panel
*/
EAPI Elm_Panel_Orient elm_panel_orient_get(const Evas_Object *obj);
/**
* @brief Set the state of the panel.
*
* @param obj The panel object
* @param hidden If true, the panel will run the animation to disappear.
*
* @ingroup Panel
*/
EAPI void elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden);
/**
* @brief Get the state of the panel.
*
* @param obj The panel object
* @return EINA_TRUE if it is hidden state
*
* @ingroup Panel
*/
EAPI Eina_Bool elm_panel_hidden_get(const Evas_Object *obj);
/**
* @brief Toggle the hidden state of the panel from code
*
* @param obj The panel object
*
* @ingroup Panel
*/
EAPI void elm_panel_toggle(Evas_Object *obj);

View File

@ -48,284 +48,18 @@
* @li @ref panes_example
*/
#define ELM_OBJ_PANES_CLASS elm_obj_panes_class_get()
const Eo_Class *elm_obj_panes_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PANES_BASE_ID;
enum
{
ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_GET,
ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_SET,
ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_GET,
ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_SET,
ELM_OBJ_PANES_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_PANES_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_PANES_SUB_ID_FIXED_SET,
ELM_OBJ_PANES_SUB_ID_FIXED_GET,
ELM_OBJ_PANES_SUB_ID_LAST
};
#define ELM_OBJ_PANES_ID(sub_id) (ELM_OBJ_PANES_BASE_ID + sub_id)
/**
* @def elm_obj_panes_content_left_size_get
* @since 1.8
*
* Get the size proportion of panes widget's left side.
*
* @param[out] ret
*
* @see elm_panes_content_left_size_get
*/
#define elm_obj_panes_content_left_size_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_panes_content_left_size_set
* @since 1.8
*
* Set the size proportion of panes widget's left side.
*
* @param[in] size
*
* @see elm_panes_content_left_size_set
*/
#define elm_obj_panes_content_left_size_set(size) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_SET), EO_TYPECHECK(double, size)
/**
* @def elm_obj_panes_content_right_size_get
* @since 1.8
*
* Get the size proportion of panes widget's right side.
*
* @param[out] ret
*
* @see elm_panes_content_right_size_get
*/
#define elm_obj_panes_content_right_size_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_panes_content_right_size_set
* @since 1.8
*
* Set the size proportion of panes widget's right side.
*
* @param[in] size
*
* @see elm_panes_content_right_size_set
*/
#define elm_obj_panes_content_right_size_set(size) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_SET), EO_TYPECHECK(double, size)
/**
* @def elm_obj_panes_horizontal_set
* @since 1.8
*
* Set how to split and dispose each content.
*
* @param[in] horizontal
*
* @see elm_panes_horizontal_set
*/
#define elm_obj_panes_horizontal_set(horizontal) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_panes_horizontal_get
* @since 1.8
*
* Retrieve the split direction of a given panes widget.
*
* @param[out] ret
*
* @see elm_panes_horizontal_get
*/
#define elm_obj_panes_horizontal_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_panes_fixed_set
* @since 1.8
*
* Set whether the left and right panes can be resized by user interaction.
*
* @param[in] fixed
*
* @see elm_panes_fixed_set
*/
#define elm_obj_panes_fixed_set(fixed) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_FIXED_SET), EO_TYPECHECK(Eina_Bool, fixed)
/**
* @def elm_obj_panes_fixed_get
* @since 1.8
*
* Retrieve the resize mode for the panes of a given panes widget.
*
* @param[out] ret
*
* @see elm_panes_fixed_get
*/
#define elm_obj_panes_fixed_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_FIXED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @addtogroup Panes
* @{
*/
/**
* Add a new panes widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new panes widget handle or @c NULL, on errors.
*
* This function inserts a new panes widget on the canvas.
*
* @ingroup Panes
*/
EAPI Evas_Object *elm_panes_add(Evas_Object *parent);
/**
* Set whether the left and right panes can be resized by user interaction.
*
* @param obj The panes object.
* @param fixed Use @c EINA_TRUE to fix the left and right panes sizes and make
* them not to be resized by user interaction. Use @c EINA_FALSE to make them
* resizable.
*
* By default panes' contents are resizable by user interaction.
*
* @see elm_panes_fixed_get()
* @see elm_panes_content_left_size_set()
* @see elm_panes_content_right_size_set()
*
* @ingroup Panes
*/
EAPI void elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed);
/**
* Retrieve the resize mode for the panes of a given panes widget.
*
* @param obj The panes object.
* @return @c EINA_TRUE, if @p obj is set to be resizable by user interaction.
*
* @see elm_panes_fixed_set() for more details.
* @see elm_panes_content_left_size_get()
* @see elm_panes_content_right_size_get()
*
* @ingroup Panes
*/
EAPI Eina_Bool elm_panes_fixed_get(const Evas_Object *obj);
/**
* Get the size proportion of panes widget's left side.
*
* @param obj The panes object.
* @return float value between 0.0 and 1.0 representing size proportion
* of left side.
*
* @see elm_panes_content_left_size_set() for more details.
*
* @ingroup Panes
*/
EAPI double elm_panes_content_left_size_get(const Evas_Object *obj);
/**
* Set the size proportion of panes widget's left side.
*
* @param obj The panes object.
* @param size Value between 0.0 and 1.0 representing size proportion
* of left side.
*
* By default it's homogeneous, i.e., both sides have the same size.
*
* If something different is required, it can be set with this function.
* For example, if the left content should be displayed over
* 75% of the panes size, @p size should be passed as @c 0.75.
* This way, right content will be resized to 25% of panes size.
*
* If displayed vertically, left content is displayed at top, and
* right content at bottom.
*
* @note This proportion will change when user drags the panes bar.
*
* @see elm_panes_content_left_size_get()
*
* @ingroup Panes
*/
EAPI void elm_panes_content_left_size_set(Evas_Object *obj, double size);
/**
* Get the size proportion of panes widget's right side.
*
* @param obj The panes object.
* @return float value between 0.0 and 1.0 representing size proportion
* of right side.
*
* @see elm_panes_content_right_size_set() for more details.
*
* @ingroup Panes
*/
EAPI double elm_panes_content_right_size_get(const Evas_Object *obj);
/**
* Set the size proportion of panes widget's right side.
*
* @param obj The panes object.
* @param size Value between 0.0 and 1.0 representing size proportion
* of right side.
*
* By default it's homogeneous, i.e., both sides have the same size.
*
* If something different is required, it can be set with this function.
* For example, if the right content should be displayed over
* 75% of the panes size, @p size should be passed as @c 0.75.
* This way, left content will be resized to 25% of panes size.
*
* If displayed vertically, left content is displayed at top, and
* right content at bottom.
*
* @note This proportion will change when user drags the panes bar.
*
* @see elm_panes_content_right_size_get()
*
* @ingroup Panes
*/
EAPI void elm_panes_content_right_size_set(Evas_Object *obj, double size);
/**
* Set how to split and dispose each content.
*
* @param obj The panes object.
* @param horizontal Use @c EINA_TRUE to make @p obj to split panes
* horizontally ("top" and "bottom" contents). @c EINA_FALSE to make it
* vertically ("left" and "right" contents)
*
* Use this function to change how your panes is to be disposed:
* vertically or horizontally.
* Horizontal panes have "top" and "bottom" contents, vertical panes have
* "left" and "right" contents.
*
* By default panes is in a vertical mode.
*
* @see elm_panes_horizontal_get()
*
* @ingroup Panes
*/
EAPI void elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Retrieve the split direction of a given panes widget.
*
* @param obj The panes object.
* @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
* @c EINA_FALSE if it's @b vertical (and on errors).
*
* @see elm_panes_horizontal_set() for more details.
*
* @ingroup Panes
*/
EAPI Eina_Bool elm_panes_horizontal_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_panes_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_panes_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,133 @@
#define ELM_OBJ_PANES_CLASS elm_obj_panes_class_get()
const Eo_Class *elm_obj_panes_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PANES_BASE_ID;
enum
{
ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_GET,
ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_SET,
ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_GET,
ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_SET,
ELM_OBJ_PANES_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_PANES_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_PANES_SUB_ID_FIXED_SET,
ELM_OBJ_PANES_SUB_ID_FIXED_GET,
ELM_OBJ_PANES_SUB_ID_LAST
};
#define ELM_OBJ_PANES_ID(sub_id) (ELM_OBJ_PANES_BASE_ID + sub_id)
/**
* @def elm_obj_panes_content_left_size_get
* @since 1.8
*
* Get the size proportion of panes widget's left side.
*
* @param[out] ret
*
* @see elm_panes_content_left_size_get
*
* @ingroup Panes
*/
#define elm_obj_panes_content_left_size_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_panes_content_left_size_set
* @since 1.8
*
* Set the size proportion of panes widget's left side.
*
* @param[in] size
*
* @see elm_panes_content_left_size_set
*
* @ingroup Panes
*/
#define elm_obj_panes_content_left_size_set(size) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_LEFT_SIZE_SET), EO_TYPECHECK(double, size)
/**
* @def elm_obj_panes_content_right_size_get
* @since 1.8
*
* Get the size proportion of panes widget's right side.
*
* @param[out] ret
*
* @see elm_panes_content_right_size_get
*
* @ingroup Panes
*/
#define elm_obj_panes_content_right_size_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_panes_content_right_size_set
* @since 1.8
*
* Set the size proportion of panes widget's right side.
*
* @param[in] size
*
* @see elm_panes_content_right_size_set
*
* @ingroup Panes
*/
#define elm_obj_panes_content_right_size_set(size) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_CONTENT_RIGHT_SIZE_SET), EO_TYPECHECK(double, size)
/**
* @def elm_obj_panes_horizontal_set
* @since 1.8
*
* Set how to split and dispose each content.
*
* @param[in] horizontal
*
* @see elm_panes_horizontal_set
*
* @ingroup Panes
*/
#define elm_obj_panes_horizontal_set(horizontal) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_panes_horizontal_get
* @since 1.8
*
* Retrieve the split direction of a given panes widget.
*
* @param[out] ret
*
* @see elm_panes_horizontal_get
*
* @ingroup Panes
*/
#define elm_obj_panes_horizontal_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_panes_fixed_set
* @since 1.8
*
* Set whether the left and right panes can be resized by user interaction.
*
* @param[in] fixed
*
* @see elm_panes_fixed_set
*
* @ingroup Panes
*/
#define elm_obj_panes_fixed_set(fixed) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_FIXED_SET), EO_TYPECHECK(Eina_Bool, fixed)
/**
* @def elm_obj_panes_fixed_get
* @since 1.8
*
* Retrieve the resize mode for the panes of a given panes widget.
*
* @param[out] ret
*
* @see elm_panes_fixed_get
*
* @ingroup Panes
*/
#define elm_obj_panes_fixed_get(ret) ELM_OBJ_PANES_ID(ELM_OBJ_PANES_SUB_ID_FIXED_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,155 @@
/**
* Add a new panes widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new panes widget handle or @c NULL, on errors.
*
* This function inserts a new panes widget on the canvas.
*
* @ingroup Panes
*/
EAPI Evas_Object *elm_panes_add(Evas_Object *parent);
/**
* Get the size proportion of panes widget's left side.
*
* @param obj The panes object.
* @return float value between 0.0 and 1.0 representing size proportion
* of left side.
*
* @see elm_panes_content_left_size_set() for more details.
*
* @ingroup Panes
*/
EAPI double elm_panes_content_left_size_get(const Evas_Object *obj);
/**
* Set the size proportion of panes widget's left side.
*
* @param obj The panes object.
* @param size Value between 0.0 and 1.0 representing size proportion
* of left side.
*
* By default it's homogeneous, i.e., both sides have the same size.
*
* If something different is required, it can be set with this function.
* For example, if the left content should be displayed over
* 75% of the panes size, @p size should be passed as @c 0.75.
* This way, right content will be resized to 25% of panes size.
*
* If displayed vertically, left content is displayed at top, and
* right content at bottom.
*
* @note This proportion will change when user drags the panes bar.
*
* @see elm_panes_content_left_size_get()
*
* @ingroup Panes
*/
EAPI void elm_panes_content_left_size_set(Evas_Object *obj, double size);
/**
* Get the size proportion of panes widget's right side.
*
* @param obj The panes object.
* @return float value between 0.0 and 1.0 representing size proportion
* of right side.
*
* @see elm_panes_content_right_size_set() for more details.
*
* @ingroup Panes
*/
EAPI double elm_panes_content_right_size_get(const Evas_Object *obj);
/**
* Set the size proportion of panes widget's right side.
*
* @param obj The panes object.
* @param size Value between 0.0 and 1.0 representing size proportion
* of right side.
*
* By default it's homogeneous, i.e., both sides have the same size.
*
* If something different is required, it can be set with this function.
* For example, if the right content should be displayed over
* 75% of the panes size, @p size should be passed as @c 0.75.
* This way, left content will be resized to 25% of panes size.
*
* If displayed vertically, left content is displayed at top, and
* right content at bottom.
*
* @note This proportion will change when user drags the panes bar.
*
* @see elm_panes_content_right_size_get()
*
* @ingroup Panes
*/
EAPI void elm_panes_content_right_size_set(Evas_Object *obj, double size);
/**
* Set how to split and dispose each content.
*
* @param obj The panes object.
* @param horizontal Use @c EINA_TRUE to make @p obj to split panes
* horizontally ("top" and "bottom" contents). @c EINA_FALSE to make it
* vertically ("left" and "right" contents)
*
* Use this function to change how your panes is to be disposed:
* vertically or horizontally.
* Horizontal panes have "top" and "bottom" contents, vertical panes have
* "left" and "right" contents.
*
* By default panes is in a vertical mode.
*
* @see elm_panes_horizontal_get()
*
* @ingroup Panes
*/
EAPI void elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Retrieve the split direction of a given panes widget.
*
* @param obj The panes object.
* @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
* @c EINA_FALSE if it's @b vertical (and on errors).
*
* @see elm_panes_horizontal_set() for more details.
*
* @ingroup Panes
*/
EAPI Eina_Bool elm_panes_horizontal_get(const Evas_Object *obj);
/**
* Set whether the left and right panes can be resized by user interaction.
*
* @param obj The panes object.
* @param fixed Use @c EINA_TRUE to fix the left and right panes sizes and make
* them not to be resized by user interaction. Use @c EINA_FALSE to make them
* resizable.
*
* By default panes' contents are resizable by user interaction.
*
* @see elm_panes_fixed_get()
* @see elm_panes_content_left_size_set()
* @see elm_panes_content_right_size_set()
*
* @ingroup Panes
*/
EAPI void elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed);
/**
* Retrieve the resize mode for the panes of a given panes widget.
*
* @param obj The panes object.
* @return @c EINA_TRUE, if @p obj is set to be resizable by user interaction.
*
* @see elm_panes_fixed_set() for more details.
* @see elm_panes_content_left_size_get()
* @see elm_panes_content_right_size_get()
*
* @ingroup Panes
*/
EAPI Eina_Bool elm_panes_fixed_get(const Evas_Object *obj);

View File

@ -54,465 +54,12 @@
* @{
*/
#define ELM_OBJ_PHOTOCAM_PAN_CLASS elm_obj_photocam_pan_class_get()
const Eo_Class *elm_obj_photocam_pan_class_get(void) EINA_CONST;
/**
* @brief Types of zoom available.
*/
typedef enum
{
ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0, /**< Zoom controlled normally by elm_photocam_zoom_set */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT, /**< Zoom until photo fits in photocam */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL, /**< Zoom until photo fills photocam */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN, /**< Zoom in until photo fits in photocam */
ELM_PHOTOCAM_ZOOM_MODE_LAST
} Elm_Photocam_Zoom_Mode;
#define ELM_OBJ_PHOTOCAM_CLASS elm_obj_photocam_class_get()
const Eo_Class *elm_obj_photocam_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PHOTOCAM_BASE_ID;
enum
{
ELM_OBJ_PHOTOCAM_SUB_ID_FILE_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_FILE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_SIZE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_SHOW,
ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_INTERNAL_IMAGE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_LAST
};
#define ELM_OBJ_PHOTOCAM_ID(sub_id) (ELM_OBJ_PHOTOCAM_BASE_ID + sub_id)
/**
* @def elm_obj_photocam_file_set
* @since 1.8
*
* @brief Set the photo file to be shown
*
* @param[in] file
* @param[out] ret
*
* @see elm_photocam_file_set
*/
#define elm_obj_photocam_file_set(file, ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, file), EO_TYPECHECK(Evas_Load_Error *, ret)
/**
* @def elm_obj_photocam_file_get
* @since 1.8
*
* @brief Returns the path of the current image file
*
* @param[out] ret
*
* @see elm_photocam_file_get
*/
#define elm_obj_photocam_file_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_photocam_zoom_set
* @since 1.8
*
* @brief Set the zoom level of the photo
*
* @param[in] zoom
*
* @see elm_photocam_zoom_set
*/
#define elm_obj_photocam_zoom_set(zoom) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_SET), EO_TYPECHECK(double, zoom)
/**
* @def elm_obj_photocam_zoom_get
* @since 1.8
*
* @brief Get the zoom level of the photo
*
* @param[out] ret
*
* @see elm_photocam_zoom_get
*/
#define elm_obj_photocam_zoom_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_photocam_zoom_mode_set
* @since 1.8
*
* @brief Set the zoom mode
*
* @param[in] mode
*
* @see elm_photocam_zoom_mode_set
*/
#define elm_obj_photocam_zoom_mode_set(mode) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_SET), EO_TYPECHECK(Elm_Photocam_Zoom_Mode, mode)
/**
* @def elm_obj_photocam_zoom_mode_get
* @since 1.8
*
* @brief Get the zoom mode
*
* @param[out] ret
*
* @see elm_photocam_zoom_mode_get
*/
#define elm_obj_photocam_zoom_mode_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_GET), EO_TYPECHECK(Elm_Photocam_Zoom_Mode *, ret)
/**
* @def elm_obj_photocam_image_size_get
* @since 1.8
*
* @brief Get the current image pixel width and height
*
* @param[out] w
* @param[out] h
*
* @see elm_photocam_image_size_get
*/
#define elm_obj_photocam_image_size_get(w, h) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_SIZE_GET), EO_TYPECHECK(int *, w), EO_TYPECHECK(int *, h)
/**
* @def elm_obj_photocam_image_region_get
* @since 1.8
*
* @brief Get the region of the image that is currently shown
*
* @param[out] x
* @param[out] y
* @param[out] w
* @param[out] h
*
* @see elm_photocam_image_region_get
*/
#define elm_obj_photocam_image_region_get(x, y, w, h) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_GET), EO_TYPECHECK(int *, x), EO_TYPECHECK(int *, y), EO_TYPECHECK(int *, w), EO_TYPECHECK(int *, h)
/**
* @def elm_obj_photocam_image_region_show
* @since 1.8
*
* @brief Set the viewed region of the image
*
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_photocam_image_region_show
*/
#define elm_obj_photocam_image_region_show(x, y, w, h) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_SHOW), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_photocam_paused_set
* @since 1.8
*
* @brief Set the paused state for photocam
*
* @param[in] paused
*
* @see elm_photocam_paused_set
*/
#define elm_obj_photocam_paused_set(paused) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_SET), EO_TYPECHECK(Eina_Bool, paused)
/**
* @def elm_obj_photocam_paused_get
* @since 1.8
*
* @brief Get the paused state for photocam
*
* @param[out] ret
*
* @see elm_photocam_paused_get
*/
#define elm_obj_photocam_paused_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_photocam_internal_image_get
* @since 1.8
*
* @brief Get the internal low-res image used for photocam
*
* @param[out] ret
*
* @see elm_photocam_internal_image_get
*/
#define elm_obj_photocam_internal_image_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_INTERNAL_IMAGE_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_photocam_gesture_enabled_set
* @since 1.8
*
* @brief Set the gesture state for photocam.
*
* @param[in] gesture
*
* @see elm_photocam_gesture_enabled_set
*/
#define elm_obj_photocam_gesture_enabled_set(gesture) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_SET), EO_TYPECHECK(Eina_Bool, gesture)
/**
* @def elm_obj_photocam_gesture_enabled_get
* @since 1.8
*
* @brief Get the gesture state for photocam.
*
* @param[out] ret
*
* @see elm_photocam_gesture_enabled_get
*/
#define elm_obj_photocam_gesture_enabled_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @brief Add a new Photocam object
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Photocam
*/
EAPI Evas_Object *elm_photocam_add(Evas_Object *parent);
/**
* @brief Set the photo file to be shown
*
* @param obj The photocam object
* @param file The photo file
* @return The return error (see EVAS_LOAD_ERROR_NONE, EVAS_LOAD_ERROR_GENERIC etc.)
*
* This sets (and shows) the specified file (with a relative or absolute
* path) and will return a load error (same error that
* evas_object_image_load_error_get() will return). The image will change and
* adjust its size at this point and begin a background load process for this
* photo that at some time in the future will be displayed at the full
* quality needed.
*
* @ingroup Photocam
*/
EAPI Evas_Load_Error elm_photocam_file_set(Evas_Object *obj, const char *file);
/**
* @brief Returns the path of the current image file
*
* @param obj The photocam object
* @return Returns the path
*
* @see elm_photocam_file_set()
*
* @ingroup Photocam
*/
EAPI const char *elm_photocam_file_get(const Evas_Object *obj);
/**
* @brief Set the zoom level of the photo
*
* @param obj The photocam object
* @param zoom The zoom level to set
*
* This sets the zoom level. 1 will be 1:1 pixel for pixel. 2 will be 2:1
* (that is 2x2 photo pixels will display as 1 on-screen pixel). 4:1 will be
* 4x4 photo pixels as 1 screen pixel, and so on. The @p zoom parameter must
* be greater than 0. It is suggested to stick to powers of 2. (1, 2, 4, 8,
* 16, 32, etc.).
*
* @ingroup Photocam
*/
EAPI void elm_photocam_zoom_set(Evas_Object *obj, double zoom);
/**
* @brief Get the zoom level of the photo
*
* @param obj The photocam object
* @return The current zoom level
*
* This returns the current zoom level of the photocam object. Note that if
* you set the fill mode to other than ELM_PHOTOCAM_ZOOM_MODE_MANUAL
* (which is the default), the zoom level may be changed at any time by the
* photocam object itself to account for photo size and photocam viewport
* size.
*
* @see elm_photocam_zoom_set()
* @see elm_photocam_zoom_mode_set()
*
* @ingroup Photocam
*/
EAPI double elm_photocam_zoom_get(const Evas_Object *obj);
/**
* @brief Set the zoom mode
*
* @param obj The photocam object
* @param mode The desired mode
*
* This sets the zoom mode to manual or one of several automatic levels.
* Manual (ELM_PHOTOCAM_ZOOM_MODE_MANUAL) means that zoom is set manually by
* elm_photocam_zoom_set() and will stay at that level until changed by code
* or until zoom mode is changed. This is the default mode. The Automatic
* modes will allow the photocam object to automatically adjust zoom mode
* based on properties. ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT) will adjust zoom so
* the photo fits EXACTLY inside the scroll frame with no pixels outside this
* region. ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL will be similar but ensure no
* pixels within the frame are left unfilled.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_zoom_mode_set(Evas_Object *obj, Elm_Photocam_Zoom_Mode mode);
/**
* @brief Get the zoom mode
*
* @param obj The photocam object
* @return The current zoom mode
*
* This gets the current zoom mode of the photocam object.
*
* @see elm_photocam_zoom_mode_set()
*
* @ingroup Photocam
*/
EAPI Elm_Photocam_Zoom_Mode elm_photocam_zoom_mode_get(const Evas_Object *obj);
/**
* @brief Get the current image pixel width and height
*
* @param obj The photocam object
* @param w A pointer to the width return
* @param h A pointer to the height return
*
* This gets the current photo pixel width and height (for the original).
* The size will be returned in the integers @p w and @p h that are pointed
* to.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_image_size_get(const Evas_Object *obj, int *w, int *h);
/**
* @brief Get the region of the image that is currently shown
*
* @param obj
* @param x A pointer to the X-coordinate of region
* @param y A pointer to the Y-coordinate of region
* @param w A pointer to the width
* @param h A pointer to the height
*
* @see elm_photocam_image_region_show()
* @see elm_photocam_image_region_bring_in()
*
* @ingroup Photocam
*/
EAPI void elm_photocam_image_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h);
/**
* @brief Set the viewed region of the image
*
* @param obj The photocam object
* @param x X-coordinate of region in image original pixels
* @param y Y-coordinate of region in image original pixels
* @param w Width of region in image original pixels
* @param h Height of region in image original pixels
*
* This shows the region of the image without using animation.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_image_region_show(Evas_Object *obj, int x, int y, int w, int h);
/**
* @brief Bring in the viewed portion of the image
*
* @param obj The photocam object
* @param x X-coordinate of region in image original pixels
* @param y Y-coordinate of region in image original pixels
* @param w Width of region in image original pixels
* @param h Height of region in image original pixels
*
* This shows the region of the image using animation.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_image_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
/**
* @brief Set the paused state for photocam
*
* @param obj The photocam object
* @param paused The pause state to set
*
* This sets the paused state to on(EINA_TRUE) or off (EINA_FALSE) for
* photocam. The default is off. This will stop zooming using animation on
* zoom level changes and change instantly. This will stop any existing
* animations that are running.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_paused_set(Evas_Object *obj, Eina_Bool paused);
/**
* @brief Get the paused state for photocam
*
* @param obj The photocam object
* @return The current paused state
*
* This gets the current paused state for the photocam object.
*
* @see elm_photocam_paused_set()
*
* @ingroup Photocam
*/
EAPI Eina_Bool elm_photocam_paused_get(const Evas_Object *obj);
/**
* @brief Get the internal low-res image used for photocam
*
* @param obj The photocam object
* @return The internal image object handle, or NULL if none exists
*
* This gets the internal image object inside photocam. Do not modify it. It
* is for inspection only, and hooking callbacks to. Nothing else. It may be
* deleted at any time as well.
*
* @ingroup Photocam
*/
EAPI Evas_Object *elm_photocam_internal_image_get(const Evas_Object *obj);
/**
* @brief Set the gesture state for photocam.
*
* @param obj The photocam object
* @param gesture The gesture state to set
*
* This sets the gesture state to on(EINA_TRUE) or off (EINA_FALSE) for
* photocam. The default is off. This will start multi touch zooming.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_gesture_enabled_set(Evas_Object *obj, Eina_Bool gesture);
/**
* @brief Get the gesture state for photocam.
*
* @param obj The photocam object
* @return The current gesture state
*
* This gets the current gesture state for the photocam object.
*
* @see elm_photocam_gesture_enabled_set()
*
* @ingroup Photocam
*/
EAPI Eina_Bool elm_photocam_gesture_enabled_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_photocam_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_photocam_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,247 @@
#define ELM_OBJ_PHOTOCAM_PAN_CLASS elm_obj_photocam_pan_class_get()
const Eo_Class *elm_obj_photocam_pan_class_get(void) EINA_CONST;
/**
* @brief Types of zoom available.
*/
typedef enum
{
ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0, /**< Zoom controlled normally by elm_photocam_zoom_set */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT, /**< Zoom until photo fits in photocam */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL, /**< Zoom until photo fills photocam */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN, /**< Zoom in until photo fits in photocam */
ELM_PHOTOCAM_ZOOM_MODE_LAST
} Elm_Photocam_Zoom_Mode;
#define ELM_OBJ_PHOTOCAM_CLASS elm_obj_photocam_class_get()
const Eo_Class *elm_obj_photocam_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PHOTOCAM_BASE_ID;
enum
{
ELM_OBJ_PHOTOCAM_SUB_ID_FILE_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_FILE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_SIZE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_SHOW,
ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_INTERNAL_IMAGE_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_SET,
ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_GET,
ELM_OBJ_PHOTOCAM_SUB_ID_LAST
};
#define ELM_OBJ_PHOTOCAM_ID(sub_id) (ELM_OBJ_PHOTOCAM_BASE_ID + sub_id)
/**
* @def elm_obj_photocam_file_set
* @since 1.8
*
* @brief Set the photo file to be shown
*
* @param[in] file
* @param[out] ret
*
* @see elm_photocam_file_set
*
* @ingroup Photocam
*/
#define elm_obj_photocam_file_set(file, ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, file), EO_TYPECHECK(Evas_Load_Error *, ret)
/**
* @def elm_obj_photocam_file_get
* @since 1.8
*
* @brief Returns the path of the current image file
*
* @param[out] ret
*
* @see elm_photocam_file_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_file_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_photocam_zoom_set
* @since 1.8
*
* @brief Set the zoom level of the photo
*
* @param[in] zoom
*
* @see elm_photocam_zoom_set
*
* @ingroup Photocam
*/
#define elm_obj_photocam_zoom_set(zoom) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_SET), EO_TYPECHECK(double, zoom)
/**
* @def elm_obj_photocam_zoom_get
* @since 1.8
*
* @brief Get the zoom level of the photo
*
* @param[out] ret
*
* @see elm_photocam_zoom_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_zoom_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_photocam_zoom_mode_set
* @since 1.8
*
* @brief Set the zoom mode
*
* @param[in] mode
*
* @see elm_photocam_zoom_mode_set
*
* @ingroup Photocam
*/
#define elm_obj_photocam_zoom_mode_set(mode) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_SET), EO_TYPECHECK(Elm_Photocam_Zoom_Mode, mode)
/**
* @def elm_obj_photocam_zoom_mode_get
* @since 1.8
*
* @brief Get the zoom mode
*
* @param[out] ret
*
* @see elm_photocam_zoom_mode_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_zoom_mode_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_ZOOM_MODE_GET), EO_TYPECHECK(Elm_Photocam_Zoom_Mode *, ret)
/**
* @def elm_obj_photocam_image_size_get
* @since 1.8
*
* @brief Get the current image pixel width and height
*
* @param[out] w
* @param[out] h
*
* @see elm_photocam_image_size_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_image_size_get(w, h) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_SIZE_GET), EO_TYPECHECK(int *, w), EO_TYPECHECK(int *, h)
/**
* @def elm_obj_photocam_image_region_get
* @since 1.8
*
* @brief Get the region of the image that is currently shown
*
* @param[out] x
* @param[out] y
* @param[out] w
* @param[out] h
*
* @see elm_photocam_image_region_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_image_region_get(x, y, w, h) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_GET), EO_TYPECHECK(int *, x), EO_TYPECHECK(int *, y), EO_TYPECHECK(int *, w), EO_TYPECHECK(int *, h)
/**
* @def elm_obj_photocam_image_region_show
* @since 1.8
*
* @brief Set the viewed region of the image
*
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_photocam_image_region_show
*
* @ingroup Photocam
*/
#define elm_obj_photocam_image_region_show(x, y, w, h) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_IMAGE_REGION_SHOW), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_photocam_paused_set
* @since 1.8
*
* @brief Set the paused state for photocam
*
* @param[in] paused
*
* @see elm_photocam_paused_set
*
* @ingroup Photocam
*/
#define elm_obj_photocam_paused_set(paused) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_SET), EO_TYPECHECK(Eina_Bool, paused)
/**
* @def elm_obj_photocam_paused_get
* @since 1.8
*
* @brief Get the paused state for photocam
*
* @param[out] ret
*
* @see elm_photocam_paused_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_paused_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_PAUSED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_photocam_internal_image_get
* @since 1.8
*
* @brief Get the internal low-res image used for photocam
*
* @param[out] ret
*
* @see elm_photocam_internal_image_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_internal_image_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_INTERNAL_IMAGE_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_photocam_gesture_enabled_set
* @since 1.8
*
* @brief Set the gesture state for photocam.
*
* @param[in] gesture
*
* @see elm_photocam_gesture_enabled_set
*
* @ingroup Photocam
*/
#define elm_obj_photocam_gesture_enabled_set(gesture) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_SET), EO_TYPECHECK(Eina_Bool, gesture)
/**
* @def elm_obj_photocam_gesture_enabled_get
* @since 1.8
*
* @brief Get the gesture state for photocam.
*
* @param[out] ret
*
* @see elm_photocam_gesture_enabled_get
*
* @ingroup Photocam
*/
#define elm_obj_photocam_gesture_enabled_get(ret) ELM_OBJ_PHOTOCAM_ID(ELM_OBJ_PHOTOCAM_SUB_ID_GESTURE_ENABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,224 @@
/**
* @brief Add a new Photocam object
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Photocam
*/
EAPI Evas_Object *elm_photocam_add(Evas_Object *parent);
/**
* @brief Set the photo file to be shown
*
* @param obj The photocam object
* @param file The photo file
* @return The return error (see EVAS_LOAD_ERROR_NONE, EVAS_LOAD_ERROR_GENERIC etc.)
*
* This sets (and shows) the specified file (with a relative or absolute
* path) and will return a load error (same error that
* evas_object_image_load_error_get() will return). The image will change and
* adjust its size at this point and begin a background load process for this
* photo that at some time in the future will be displayed at the full
* quality needed.
*
* @ingroup Photocam
*/
EAPI Evas_Load_Error elm_photocam_file_set(Evas_Object *obj, const char *file);
/**
* @brief Returns the path of the current image file
*
* @param obj The photocam object
* @return Returns the path
*
* @see elm_photocam_file_set()
*
* @ingroup Photocam
*/
EAPI const char *elm_photocam_file_get(const Evas_Object *obj);
/**
* @brief Set the zoom level of the photo
*
* @param obj The photocam object
* @param zoom The zoom level to set
*
* This sets the zoom level. 1 will be 1:1 pixel for pixel. 2 will be 2:1
* (that is 2x2 photo pixels will display as 1 on-screen pixel). 4:1 will be
* 4x4 photo pixels as 1 screen pixel, and so on. The @p zoom parameter must
* be greater than 0. It is suggested to stick to powers of 2. (1, 2, 4, 8,
* 16, 32, etc.).
*
* @ingroup Photocam
*/
EAPI void elm_photocam_zoom_set(Evas_Object *obj, double zoom);
/**
* @brief Get the zoom level of the photo
*
* @param obj The photocam object
* @return The current zoom level
*
* This returns the current zoom level of the photocam object. Note that if
* you set the fill mode to other than ELM_PHOTOCAM_ZOOM_MODE_MANUAL
* (which is the default), the zoom level may be changed at any time by the
* photocam object itself to account for photo size and photocam viewport
* size.
*
* @see elm_photocam_zoom_set()
* @see elm_photocam_zoom_mode_set()
*
* @ingroup Photocam
*/
EAPI double elm_photocam_zoom_get(const Evas_Object *obj);
/**
* @brief Set the zoom mode
*
* @param obj The photocam object
* @param mode The desired mode
*
* This sets the zoom mode to manual or one of several automatic levels.
* Manual (ELM_PHOTOCAM_ZOOM_MODE_MANUAL) means that zoom is set manually by
* elm_photocam_zoom_set() and will stay at that level until changed by code
* or until zoom mode is changed. This is the default mode. The Automatic
* modes will allow the photocam object to automatically adjust zoom mode
* based on properties. ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT) will adjust zoom so
* the photo fits EXACTLY inside the scroll frame with no pixels outside this
* region. ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL will be similar but ensure no
* pixels within the frame are left unfilled.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_zoom_mode_set(Evas_Object *obj, Elm_Photocam_Zoom_Mode mode);
/**
* @brief Get the zoom mode
*
* @param obj The photocam object
* @return The current zoom mode
*
* This gets the current zoom mode of the photocam object.
*
* @see elm_photocam_zoom_mode_set()
*
* @ingroup Photocam
*/
EAPI Elm_Photocam_Zoom_Mode elm_photocam_zoom_mode_get(const Evas_Object *obj);
/**
* @brief Get the current image pixel width and height
*
* @param obj The photocam object
* @param w A pointer to the width return
* @param h A pointer to the height return
*
* This gets the current photo pixel width and height (for the original).
* The size will be returned in the integers @p w and @p h that are pointed
* to.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_image_size_get(const Evas_Object *obj, int *w, int *h);
/**
* @brief Get the region of the image that is currently shown
*
* @param obj
* @param x A pointer to the X-coordinate of region
* @param y A pointer to the Y-coordinate of region
* @param w A pointer to the width
* @param h A pointer to the height
*
* @see elm_photocam_image_region_show()
* @see elm_photocam_image_region_bring_in()
*
* @ingroup Photocam
*/
EAPI void elm_photocam_image_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h);
/**
* @brief Set the viewed region of the image
*
* @param obj The photocam object
* @param x X-coordinate of region in image original pixels
* @param y Y-coordinate of region in image original pixels
* @param w Width of region in image original pixels
* @param h Height of region in image original pixels
*
* This shows the region of the image without using animation.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_image_region_show(Evas_Object *obj, int x, int y, int w, int h);
/**
* @brief Set the paused state for photocam
*
* @param obj The photocam object
* @param paused The pause state to set
*
* This sets the paused state to on(EINA_TRUE) or off (EINA_FALSE) for
* photocam. The default is off. This will stop zooming using animation on
* zoom level changes and change instantly. This will stop any existing
* animations that are running.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_paused_set(Evas_Object *obj, Eina_Bool paused);
/**
* @brief Get the paused state for photocam
*
* @param obj The photocam object
* @return The current paused state
*
* This gets the current paused state for the photocam object.
*
* @see elm_photocam_paused_set()
*
* @ingroup Photocam
*/
EAPI Eina_Bool elm_photocam_paused_get(const Evas_Object *obj);
/**
* @brief Get the internal low-res image used for photocam
*
* @param obj The photocam object
* @return The internal image object handle, or NULL if none exists
*
* This gets the internal image object inside photocam. Do not modify it. It
* is for inspection only, and hooking callbacks to. Nothing else. It may be
* deleted at any time as well.
*
* @ingroup Photocam
*/
EAPI Evas_Object *elm_photocam_internal_image_get(const Evas_Object *obj);
/**
* @brief Set the gesture state for photocam.
*
* @param obj The photocam object
* @param gesture The gesture state to set
*
* This sets the gesture state to on(EINA_TRUE) or off (EINA_FALSE) for
* photocam. The default is off. This will start multi touch zooming.
*
* @ingroup Photocam
*/
EAPI void elm_photocam_gesture_enabled_set(Evas_Object *obj, Eina_Bool gesture);
/**
* @brief Get the gesture state for photocam.
*
* @param obj The photocam object
* @return The current gesture state
*
* This gets the current gesture state for the photocam object.
*
* @see elm_photocam_gesture_enabled_set()
*
* @ingroup Photocam
*/
EAPI Eina_Bool elm_photocam_gesture_enabled_get(const Evas_Object *obj);

View File

@ -25,93 +25,18 @@
*
*/
#define ELM_OBJ_PLUG_CLASS elm_obj_plug_class_get()
const Eo_Class *elm_obj_plug_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PLUG_BASE_ID;
enum
{
ELM_OBJ_PLUG_SUB_ID_IMAGE_OBJECT_GET,
ELM_OBJ_PLUG_SUB_ID_CONNECT,
ELM_OBJ_PLUG_SUB_ID_LAST
};
#define ELM_OBJ_PLUG_ID(sub_id) (ELM_OBJ_PLUG_BASE_ID + sub_id)
/**
* @def elm_obj_plug_image_object_get
* @since 1.8
*
* Get the basic Evas_Image object from this object (widget).
*
* @param[out] ret
*
* @see elm_plug_image_object_get
*/
#define elm_obj_plug_image_object_get(ret) ELM_OBJ_PLUG_ID(ELM_OBJ_PLUG_SUB_ID_IMAGE_OBJECT_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_plug_connect
* @since 1.8
*
* Connect a plug widget to service provided by socket image.
*
* @param[in] svcname
* @param[in] svcnum
* @param[in] svcsys
* @param[out] ret
*
* @see elm_plug_connect
*/
#define elm_obj_plug_connect(svcname, svcnum, svcsys, ret) ELM_OBJ_PLUG_ID(ELM_OBJ_PLUG_SUB_ID_CONNECT), EO_TYPECHECK(const char *, svcname), EO_TYPECHECK(int, svcnum), EO_TYPECHECK(Eina_Bool, svcsys), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @addtogroup Plug
* @{
*/
/**
* Add a new plug image to the parent.
*
* @param parent The parent object
* @return The new plug image object or NULL if it cannot be created
*
* @ingroup Plug
*/
EAPI Evas_Object *elm_plug_add(Evas_Object *parent);
/**
* Connect a plug widget to service provided by socket image.
*
* @param obj The Evas_Object where the new image object will live.
* @param svcname The service name to connect to set up by the socket.
* @param svcnum The service number to connect to (set up by socket).
* @param svcsys Boolean to set if the service is a system one or not (set up by socket).
* @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
*
* @ingroup Plug
*/
EAPI Eina_Bool elm_plug_connect(Evas_Object *obj, const char *svcname, int svcnum, Eina_Bool svcsys);
/**
* Get the basic Evas_Image object from this object (widget).
*
* @param obj The image object to get the inlined image from
* @return The inlined image object, or NULL if none exists
*
* This function allows one to get the underlying @c Evas_Object of type
* Image from this elementary widget. It can be useful to do things like get
* the pixel data, save the image to a file, etc.
*
* @note Be careful to not manipulate it, as it is under control of
* elementary.
*
* @ingroup Plug
*/
EAPI Evas_Object *elm_plug_image_object_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_plug_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_plug_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,46 @@
#define ELM_OBJ_PLUG_CLASS elm_obj_plug_class_get()
const Eo_Class *elm_obj_plug_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PLUG_BASE_ID;
enum
{
ELM_OBJ_PLUG_SUB_ID_IMAGE_OBJECT_GET,
ELM_OBJ_PLUG_SUB_ID_CONNECT,
ELM_OBJ_PLUG_SUB_ID_LAST
};
#define ELM_OBJ_PLUG_ID(sub_id) (ELM_OBJ_PLUG_BASE_ID + sub_id)
/**
* @def elm_obj_plug_image_object_get
* @since 1.8
*
* Get the basic Evas_Image object from this object (widget).
*
* @param[out] ret
*
* @see elm_plug_image_object_get
*
* @ingroup Plug
*/
#define elm_obj_plug_image_object_get(ret) ELM_OBJ_PLUG_ID(ELM_OBJ_PLUG_SUB_ID_IMAGE_OBJECT_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_plug_connect
* @since 1.8
*
* Connect a plug widget to service provided by socket image.
*
* @param[in] svcname
* @param[in] svcnum
* @param[in] svcsys
* @param[out] ret
*
* @see elm_plug_connect
*
* @ingroup Plug
*/
#define elm_obj_plug_connect(svcname, svcnum, svcsys, ret) ELM_OBJ_PLUG_ID(ELM_OBJ_PLUG_SUB_ID_CONNECT), EO_TYPECHECK(const char *, svcname), EO_TYPECHECK(int, svcnum), EO_TYPECHECK(Eina_Bool, svcsys), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,39 @@
/**
* Add a new plug image to the parent.
*
* @param parent The parent object
* @return The new plug image object or NULL if it cannot be created
*
* @ingroup Plug
*/
EAPI Evas_Object *elm_plug_add(Evas_Object *parent);
/**
* Get the basic Evas_Image object from this object (widget).
*
* @param obj The image object to get the inlined image from
* @return The inlined image object, or NULL if none exists
*
* This function allows one to get the underlying @c Evas_Object of type
* Image from this elementary widget. It can be useful to do things like get
* the pixel data, save the image to a file, etc.
*
* @note Be careful to not manipulate it, as it is under control of
* elementary.
*
* @ingroup Plug
*/
EAPI Evas_Object *elm_plug_image_object_get(const Evas_Object *obj);
/**
* Connect a plug widget to service provided by socket image.
*
* @param obj The Evas_Object where the new image object will live.
* @param svcname The service name to connect to set up by the socket.
* @param svcnum The service number to connect to (set up by socket).
* @param svcsys Boolean to set if the service is a system one or not (set up by socket).
* @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
*
* @ingroup Plug
*/
EAPI Eina_Bool elm_plug_connect(Evas_Object *obj, const char *svcname, int svcnum, Eina_Bool svcsys);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,316 @@
/**
* Modes of resetting a prefs widget.
*
* @see elm_prefs_reset()
*
* @since 1.8
*/
typedef enum
{
ELM_PREFS_RESET_DEFAULTS, /** reset to default values, declared in its @b .epb file */
ELM_PREFS_RESET_LAST /** prefs will keep a small history of changes, so this resets back to last batch of changes on the UI elements. it does @b not work on autosave mode */
} Elm_Prefs_Reset_Mode;
/**
* @brief Add a new prefs widget
*
* @param parent The parent widget to hold the new one
* @return The new object or @c NULL, on errors
*
* @since 1.8
*/
EAPI Evas_Object *elm_prefs_add(Evas_Object *parent);
/* API for prefs interface modules, from now on */
typedef struct _Elm_Prefs_Item_Spec_Void
{
} Elm_Prefs_Item_Spec_Void;
typedef struct _Elm_Prefs_Item_Spec_Bool
{
Eina_Bool def;
} Elm_Prefs_Item_Spec_Bool;
typedef struct _Elm_Prefs_Item_Spec_Int
{
int def, min, max;
} Elm_Prefs_Item_Spec_Int;
typedef struct _Elm_Prefs_Item_Spec_Float
{
float def, min, max;
} Elm_Prefs_Item_Spec_Float;
typedef struct _Elm_Prefs_Item_Spec_String
{
const char *def;
const char *placeholder;
const char *accept;
const char *deny;
struct
{
int min, max;
} length;
} Elm_Prefs_Item_Spec_String;
typedef struct _Elm_Prefs_Item_Spec_Date
{
struct
{
unsigned char d; /* day*/
unsigned char m; /* month*/
unsigned short y; /* year */
} def;
struct
{
unsigned char d; /* day*/
unsigned char m; /* month*/
unsigned short y; /* year */
} min;
struct
{
unsigned char d; /* day*/
unsigned char m; /* month*/
unsigned short y; /* year */
} max;
} Elm_Prefs_Item_Spec_Date;
typedef struct _Elm_Prefs_Item_Spec_Page
{
const char *source;
} Elm_Prefs_Item_Spec_Page;
typedef union _Elm_Prefs_Item_Spec
{
Elm_Prefs_Item_Spec_Void v;
Elm_Prefs_Item_Spec_Bool b;
Elm_Prefs_Item_Spec_Int i;
Elm_Prefs_Item_Spec_Float f;
Elm_Prefs_Item_Spec_String s;
Elm_Prefs_Item_Spec_Date d;
Elm_Prefs_Item_Spec_Page p;
} Elm_Prefs_Item_Spec;
typedef struct _Elm_Prefs_Item_Iface Elm_Prefs_Item_Iface;
/**
* Convenience struct used to mass-register widgets implementing
* prefs @b items interfaces.
*
* To be used with elm_prefs_item_iface_register() and
* elm_prefs_item_iface_unregister().
*/
struct _Elm_Prefs_Item_Iface_Info
{
const char *widget_name; /**< The name of the widget implementing the interface, to be exposed on the prefs collections language. */
const Elm_Prefs_Item_Iface *info; /**< The type interface's implementation. */
};
typedef struct _Elm_Prefs_Item_Iface_Info Elm_Prefs_Item_Iface_Info;
typedef void (*Elm_Prefs_Item_Changed_Cb)(Evas_Object *it_obj); /**< Elementary prefs' item widget changed function signature */
/**
* @struct _Elm_Prefs_Item_Iface
*
* @brief Interface between items of the @ref elm-prefs-widget widget
* and the real widgets implementing them.
*
* This structure defines the interface between the
* @ref elm-prefs-widget widget's items (all item types in Elementary prefs
* collections but the @c PAGE one) and Elementary widgets
* implementing them. @c add() is the only mandatory function an
* item widget has to implement.
*
* @note For items of type @c PAGE, refer to #Elm_Prefs_Page_Iface.
*
* @since 1.8
*/
struct _Elm_Prefs_Item_Iface
{
#define ELM_PREFS_ITEM_IFACE_ABI_VERSION (1)
unsigned int abi_version; /**< always use:
* - #ELM_PREFS_ITEM_IFACE_ABI_VERSION to declare.
* - elm_prefs_widget_iface_abi_version_get() to check.
*/
const Elm_Prefs_Item_Type *types; /**< types of prefs items supported by the widget, #ELM_PREFS_TYPE_UNKNOWN terminated */
Evas_Object * (*add)(const Elm_Prefs_Item_Iface * iface,
Evas_Object * prefs,
const Elm_Prefs_Item_Type type,
const Elm_Prefs_Item_Spec spec,
Elm_Prefs_Item_Changed_Cb it_changed_cb); /**< Function to instantiate the item widget. It must return the widget handle, which should be the @c obj argument on the functions which follow. That object argument, by the way, should always have their respective #Elm_Prefs_Item_Node handle accessible via a @c "prefs_item" Evas object data value. The return value of the following functions should be @c EINA_TRUE, on success or @c EINA_FALSE, otherwise. */
Eina_Bool (*value_set)(Evas_Object *obj,
Eina_Value *value); /**< Function to set the value on the item widget. Note that for items of type #ELM_PREFS_TYPE_SEPARATOR, this function has a special meaning of making the separator widget a @b horizontal one */
Eina_Bool (*value_get)(Evas_Object *obj,
Eina_Value *value); /**< Function to set the value on the item widget. Note that for items of type #ELM_PREFS_TYPE_SEPARATOR, this function has a special meaning of making the separator widget a @b vertical one */
Eina_Bool (*value_validate)(Evas_Object *obj); /** < Function to validate the value from the item widget before saving it. The return value of the following function should be @c EINA_TRUE, if the value conforms with the expected or @c EINA_FALSE, otherwise. */
Eina_Bool (*label_set)(Evas_Object *obj,
const char *label); /**< function to set a label on the item widget */
Eina_Bool (*icon_set)(Evas_Object *obj,
const char *icon); /**< function to set an icon on the item widget */
Eina_Bool (*editable_set)(Evas_Object *obj,
Eina_Bool val); /**< function to set an item widget as editable or not */
Eina_Bool (*editable_get)(Evas_Object *obj); /**< function to retrieve whether an item widget is editable or not */
Eina_Bool (*expand_want)(Evas_Object *obj); /**< function to get wether the item implementation needs to be expanded in the page's longitudinal axis or not */
};
/**
* Mass-register widgets implementing prefs @b items interfaces.
*
* @param array An array of #Elm_Prefs_Iface_Info structs, @c NULL
* terminated.
*
* This will register all item interfaces declared on @a array in
* Elementary, so that the prefs widget will recognize them on @c .epc
* files @c 'widget:' (item) declarations.
*
* @see elm_prefs_item_iface_unregister()
*
* @since 1.8
*/
EAPI void elm_prefs_item_iface_register(const Elm_Prefs_Item_Iface_Info *array);
/**
* Mass-unregister widgets implementing prefs @b items interfaces.
*
* @param array An array of #Elm_Prefs_Iface_Info structs, @c NULL
* terminated.
*
* This will unregister all item interfaces declared on @a array in
* Elementary, given they had been previously registered.
*
* @see elm_prefs_item_iface_register() for more details
*
* @since 1.8
*/
EAPI void elm_prefs_item_iface_unregister(const Elm_Prefs_Item_Iface_Info *array);
EAPI Eina_Bool elm_prefs_item_widget_common_add(Evas_Object *prefs,
Evas_Object *obj);
typedef struct _Elm_Prefs_Page_Iface Elm_Prefs_Page_Iface;
/**
* Convenience struct used to mass-register widgets implementing
* prefs @b pages interfaces.
*
* To be used with elm_prefs_page_iface_register() and
* elm_prefs_page_iface_unregister().
*/
struct _Elm_Prefs_Page_Iface_Info
{
const char *widget_name; /**< The name of the widget implementing the interface, to be exposed on the prefs collections language. */
const Elm_Prefs_Page_Iface *info; /**< The interface's implementation. */
};
typedef struct _Elm_Prefs_Page_Iface_Info Elm_Prefs_Page_Iface_Info;
/**
* @struct _Elm_Prefs_Page_Iface
*
* @brief Interface between pages of the @ref elm-prefs-widget widget
* and the real widgets implementing them.
*
* This structure defines the interface between the
* @ref elm-prefs-widget widget's pages and Elementary widgets
* implementing them.
*
* It is @b mandatory that the following functions be implemented, at
* least, for a page widget:
*
* - #Elm_Prefs_Page_Iface::add
* - #Elm_Prefs_Page_Iface::item_pack
* - #Elm_Prefs_Page_Iface::item_unpack
* - #Elm_Prefs_Page_Iface::item_pack_before
* - #Elm_Prefs_Page_Iface::item_pack_after
*
* @note For regular, non-page prefs items, refer to #Elm_Prefs_Item_Iface.
*
* @since 1.8
*/
struct _Elm_Prefs_Page_Iface
{
#define ELM_PREFS_PAGE_IFACE_ABI_VERSION (1)
unsigned int abi_version; /**< always use:
* - #ELM_PREFS_PAGE_IFACE_ABI_VERSION to declare.
* - elm_prefs_widget_iface_abi_version_get() to check.
*/
Evas_Object * (*add)(const Elm_Prefs_Page_Iface * iface,
Evas_Object * prefs); /**< Function to instantiate the page widget. It must return the widget handle, which should be the @c obj argument on the functions which follow. That object argument, by the way, should always have their respective #Elm_Prefs_Page_Node handle accessible via a @c "prefs_page" Evas object data value. The return value of the following functions should be @c EINA_TRUE, on success or @c EINA_FALSE, otherwise. */
Eina_Bool (*title_set)(Evas_Object *obj,
const char *title); /**< function to set a title on the page widget */
Eina_Bool (*sub_title_set)(Evas_Object *obj,
const char *sub_title); /**< function to set a sub-title on the page widget */
Eina_Bool (*icon_set)(Evas_Object *obj,
const char *icon); /**< function to set an icon on the page widget */
Eina_Bool (*item_pack)(Evas_Object *obj,
Evas_Object *it,
const Elm_Prefs_Item_Type type,
const Elm_Prefs_Item_Iface *iface); /**< function to pack an item (widget) on the page widget */
Eina_Bool (*item_unpack)(Evas_Object *obj,
Evas_Object *it); /**< function to unpack an item (widget) on the page widget */
Eina_Bool (*item_pack_before)(Evas_Object *obj,
Evas_Object *it,
Evas_Object *it_before,
const Elm_Prefs_Item_Type type,
const Elm_Prefs_Item_Iface *iface); /**< function to pack an item (widget) on the page widget, before a pre-existing, referential, packed one */
Eina_Bool (*item_pack_after)(Evas_Object *obj,
Evas_Object *it,
Evas_Object *it_after, /**< function to pack an item (widget) on the page widget, after a pre-existing, referential, packed one */
const Elm_Prefs_Item_Type type,
const Elm_Prefs_Item_Iface *iface);
};
/**
* Mass-register widgets implementing prefs @b pages interfaces.
*
* @param array An array of #Elm_Prefs_Iface_Info structs, @c NULL
* terminated.
*
* This will register all page interfaces declared on @a array in
* Elementary, so that the prefs widget will recognize them on @c .epc
* files @c 'widget:' (page) declarations.
*
* @see elm_prefs_page_iface_unregister()
*
* @since 1.8
*/
EAPI void elm_prefs_page_iface_register(const Elm_Prefs_Page_Iface_Info *array);
/**
* Mass-unregister widgets implementing prefs @b pages interfaces.
*
* @param array An array of #Elm_Prefs_Iface_Info structs, @c NULL
* terminated.
*
* This will unregister all page interfaces declared on @a array in
* Elementary, given they had been previously registered.
*
* @see elm_prefs_page_iface_register() for more details
*
* @since 1.8
*/
EAPI void elm_prefs_page_iface_unregister(const Elm_Prefs_Page_Iface_Info *array);

View File

@ -0,0 +1,349 @@
#define ELM_OBJ_PREFS_CLASS elm_obj_prefs_class_get()
const Eo_Class *elm_obj_prefs_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PREFS_BASE_ID;
enum
{
ELM_OBJ_PREFS_SUB_ID_FILE_SET,
ELM_OBJ_PREFS_SUB_ID_FILE_GET,
ELM_OBJ_PREFS_SUB_ID_DATA_SET,
ELM_OBJ_PREFS_SUB_ID_DATA_GET,
ELM_OBJ_PREFS_SUB_ID_AUTOSAVE_SET,
ELM_OBJ_PREFS_SUB_ID_AUTOSAVE_GET,
ELM_OBJ_PREFS_SUB_ID_RESET,
ELM_OBJ_PREFS_SUB_ID_ITEM_VALUE_SET,
ELM_OBJ_PREFS_SUB_ID_ITEM_VALUE_GET,
ELM_OBJ_PREFS_SUB_ID_ITEM_OBJECT_GET,
ELM_OBJ_PREFS_SUB_ID_ITEM_VISIBLE_SET,
ELM_OBJ_PREFS_SUB_ID_ITEM_VISIBLE_GET,
ELM_OBJ_PREFS_SUB_ID_ITEM_DISABLED_SET,
ELM_OBJ_PREFS_SUB_ID_ITEM_DISABLED_GET,
ELM_OBJ_PREFS_SUB_ID_ITEM_EDITABLE_SET,
ELM_OBJ_PREFS_SUB_ID_ITEM_EDITABLE_GET,
ELM_OBJ_PREFS_SUB_ID_ITEM_SWALLOW,
ELM_OBJ_PREFS_SUB_ID_ITEM_UNSWALLOW,
ELM_OBJ_PREFS_SUB_ID_LAST
};
#define ELM_OBJ_PREFS_ID(sub_id) (ELM_OBJ_PREFS_BASE_ID + sub_id)
/**
* @def elm_obj_prefs_file_set
*
* Set file and page to populate a given prefs widget's interface.
*
* @param[in] file
* @param[in] page
* @param[out] ret
*
* @see elm_prefs_file_set()
*
* @since 1.8
*/
#define elm_obj_prefs_file_set(file, page, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_FILE_SET), \
EO_TYPECHECK(const char *, file), \
EO_TYPECHECK(const char *, page), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_file_get
*
* Retrieve file and page bound to a given prefs widget.
*
* @param[out] file
* @param[out] page
* @param[out] ret
*
* @see elm_prefs_file_get()
*
* @since 1.8
*/
#define elm_obj_prefs_file_get(file, page, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_FILE_GET), \
EO_TYPECHECK(const char **, file), \
EO_TYPECHECK(const char **, page), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_data_set
*
* Set user data for a given prefs widget
*
* @param[in] data
* @param[out] ret
*
* @see elm_prefs_data_set()
*
* @since 1.8
*/
#define elm_obj_prefs_data_set(data, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_DATA_SET), \
EO_TYPECHECK(Elm_Prefs_Data *, data), \
EO_TYPECHECK(Eina_Bool *, ret)
//FIXME: prefs_data == eobject?
/**
* @def elm_obj_prefs_data_get
*
* Retrieve user data for a given prefs widget
*
* @param[out] ret
*
* @see elm_prefs_data_get()
*
* @since 1.8
*/
#define elm_obj_prefs_data_get(ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_DATA_GET), \
EO_TYPECHECK(Elm_Prefs_Data **, ret)
/**
* @def elm_obj_prefs_autosave_set
*
* Set whether a given prefs widget should save its values back (on
* the user data file, if set) automatically on every UI element
* changes.
*
* @param[in] autosave
*
* @see elm_prefs_autosave_get()
*
* @since 1.8
*/
#define elm_obj_prefs_autosave_set(autosave) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_AUTOSAVE_SET), \
EO_TYPECHECK(Eina_Bool, autosave)
/**
* @def elm_obj_prefs_autosave_get
*
* Get whether a given prefs widget is saving its values back
* automatically on changes.
*
* @param[out] ret
*
* @see elm_prefs_autosave_set()
*
* @since 1.8
*/
#define elm_obj_prefs_autosave_get(ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_AUTOSAVE_GET), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_reset
*
* Reset the values of a given prefs widget to a previous state.
*
* @param[in] mode
*
* @since 1.8
*/
#define elm_obj_prefs_reset(mode) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_RESET), \
EO_TYPECHECK(Elm_Prefs_Reset_Mode, mode)
/**
* @def elm_obj_prefs_item_value_set
*
* Set the value on a given prefs widget's item.
*
* @param[in] name
* @param[in] value
* @param[out] ret
*
* @see elm_prefs_item_value_get()
*
* @since 1.8
*/
#define elm_obj_prefs_item_value_set(name, value, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_VALUE_SET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(const Eina_Value *, value), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_item_value_get
*
* Retrieve the value of a given prefs widget's item.
*
* @param[in] name
* @param[out] value
* @param[out] ret
*
* @see elm_prefs_item_value_set()
*
* @since 1.8
*/
#define elm_obj_prefs_item_value_get(name, value, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_VALUE_GET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(Eina_Value *, value), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_item_object_get
*
* Retrieve the Elementary widget bound to a given prefs widget's
* item.
*
* @param[in] name
* @param[out] ret
*
* @see elm_prefs_item_value_get()
*
* @since 1.8
*/
#define elm_obj_prefs_item_object_get(name, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_OBJECT_GET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(const Evas_Object **, ret) //FIXME: return EObject?
/**
* @def elm_obj_prefs_item_visible_set
*
* Set whether the widget bound to given prefs widget's item should be
* visible or not.
*
* @param[in] name
* @param[in] visible
*
* @see elm_prefs_item_visible_set()
*
* @since 1.8
*/
#define elm_obj_prefs_item_visible_set(name, visible) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_VISIBLE_SET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(Eina_Bool, visible)
/**
* @def elm_obj_prefs_item_visible_get
*
* Retrieve whether the widget bound to a given prefs widget's item is
* visible or not.
*
* @param[in] name
* @param[out] ret
*
* @see elm_prefs_item_visible_get()
*
* @since 1.8
*/
#define elm_obj_prefs_item_visible_get(name, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_VISIBLE_GET), \
EO_TYPECHECK(const char *,name), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_item_disabled_set
*
* Set whether the widget bound to a given prefs widget's item is
* disabled or not.
*
* @param[in] name
* @param[in] disabled
*
* @see elm_prefs_item_disabled_set()
*
* @since 1.8
*/
#define elm_obj_prefs_item_disabled_set(name, disabled) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_DISABLED_SET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(Eina_Bool, disabled)
/**
* @def elm_obj_prefs_item_disabled_get
*
* Retrieve whether the widget bound to a given prefs widget's item is
* disabled or not.
*
* @param[in] name
* @param[out] ret
*
* @see elm_prefs_item_disabled_get()
*
* @since 1.8
*/
#define elm_obj_prefs_item_disabled_get(name, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_DISABLED_GET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_item_editable_set
*
* Set whether the widget bound to a given prefs widget's item is
* editable or not.
*
* @param[in] name
* @param[in] editable
*
* @see elm_prefs_item_editable_set()
*
* @since 1.8
*/
#define elm_obj_prefs_item_editable_set(name, editable) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_EDITABLE_SET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(Eina_Bool, editable)
/**
* @def elm_obj_prefs_item_editable_get
*
* Retrieve whether the widget bound to a given prefs widget's item is
* editable or not.
*
* @param[in] name
* @param[out] ret
*
* @see elm_prefs_item_editable_get()
*
* @since 1.8
*/
#define elm_obj_prefs_item_editable_get(name, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_EDITABLE_GET), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_prefs_item_swallow
*
* "Swallows" an object into a SWALLOW item of a prefs widget.
*
* @param[in] name
* @param[in] child
* @param[out] ret
*
* @see elm_prefs_item_swallow()
*
* @since 1.8
*/
#define elm_obj_prefs_item_swallow(name, child, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_SWALLOW), \
EO_TYPECHECK(const char *, name), \
EO_TYPECHECK(Evas_Object *, child), \
EO_TYPECHECK(Eina_Bool *, ret)
//FIXME: child == EObject?
/**
* @def elm_obj_prefs_item_unswallow
*
* Unswallow an object from a SWALLOW item of a prefs widget.
*
* @param[in] name
* @param[out] ret
*
* @see elm_prefs_item_unswallow()
*
* @since 1.8
*/
#define elm_obj_prefs_item_unswallow(name, ret) \
ELM_OBJ_PREFS_ID(ELM_OBJ_PREFS_SUB_ID_ITEM_UNSWALLOW), \
EO_TYPECHECK(const char *,name), \
EO_TYPECHECK(Evas_Object **, ret)
//FIXME: ret == EObject?

View File

@ -0,0 +1,368 @@
EAPI Eina_Bool elm_prefs_page_widget_common_add(Evas_Object *prefs,
Evas_Object *obj);
/**
* Set file and page to populate a given prefs widget's interface.
*
* @param o A prefs widget handle
* @param file The @b .epb (binary) file to get contents from
* @param page The page, inside @a file, where to get item contents from
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* Elm prefs widgets start blank, with no child widgets. It's meant to
* have its viewport populated with child elements coming from a
* declaration file. That file (usually with @b .epb extension), is a
* binary format (Eet) one, coming from a human-readable textual
* declaration. This textual form (usually with @b .epc extension) is
* translated to the binary form by means of the @b prefs_cc compiler.
*
* With this function, one thus populates a prefs widget with UI
* elements.
*
* If @a file is @c NULL, "elm_app_data_dir_get()/preferences.epb"
* will be used, by default. If @a file is a @b relative path, the
* prefix "elm_app_data_dir_get()/" will be implicitly used with it.
* If @a page is @c NULL, it is considered "main", as default.
*
* @warning If your binary is not properly installed and
* elm_app_data_dir_get() can't be figured out, a fallback value of
* "." will be tryed, instead.
*
* @see elm_prefs_file_get()
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_file_set(Evas_Object *o,
const char *file,
const char *page);
/**
* Retrieve file and page bound to a given prefs widget.
*
* @param o A prefs widget handle
* @param file Where to store the file @a o is bound to
* @param page Where to store the page @a o is bound to
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* @note Use @c NULL pointers on the components you're not
* interested in: they'll be ignored by the function.
*
* @see elm_prefs_file_set() for more information
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_file_get(const Evas_Object *o,
const char **file,
const char **page);
/**
* Set user data for a given prefs widget
*
* @param obj A prefs widget handle
* @param prefs_data A valid prefs_data handle
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* Once a prefs widget is created, after elm_prefs_file_set() is
* issued on it, all of its UI elements will get default values, when
* declared on that file. To fetch an user's own, personal set of
* those values, one gets to pair a <b>prefs data</b> handle to the
* prefs widget. This is what this call is intended for.
*
* Prefs data values from @a prefs_data with keys matching the ones
* present on the file passed on elm_prefs_file_set() to @a obj will
* have their values applied to the respective UI elements of the
* widget.
*
* When @a obj dies, the values of the elements declared on its @b
* .epb file (the one set on elm_prefs_file_set()) marked as permanent
* <b>will be written back</b> to @a prefs_data, if it is writable.
* One is also able to make this writing event to take place
* automatically after each UI element modification by using
* elm_prefs_autosave_set().
*
* @note @a obj will keep a reference of its own for @a prefs_data,
* but you should still unreference it by yourself, after the widget
* is gone.
*
* @see elm_prefs_data_get()
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_data_set(Evas_Object *obj,
Elm_Prefs_Data *data);
/**
* Retrieve user data for a given prefs widget
*
* @param obj A prefs widget handle
* @param prefs_data A valid prefs_data handle
* @return A pointer to the user data of a given prefs widget on success.
* @c NULL otherwise.
*
* @see elm_prefs_data_set() for more details
*
* @since 1.8
*/
EAPI Elm_Prefs_Data *elm_prefs_data_get(const Evas_Object *o);
/**
* Set whether a given prefs widget should save its values back (on
* the user data file, if set) automatically on every UI element
* changes.
*
* @param prefs A valid prefs widget handle
* @param autosave @c EINA_TRUE to save automatically, @c EINA_FALSE
* otherwise.
*
* If @a autosave is @c EINA_TRUE, every call to
* elm_prefs_item_value_set(), every
* Elm_Prefs_Data_Event_Type::ELM_PREFS_DATA_EVENT_ITEM_CHANGED event
* coming for its prefs data and every UI element direct value
* changing will implicitly make the prefs values to be flushed back
* to it prefs data. If a prefs data handle with no writing
* permissions or no prefs data is set on @a prefs, naturally nothing
* will happen.
*
* @see elm_prefs_autosave_get()
*
* @since 1.8
*/
EAPI void elm_prefs_autosave_set(Evas_Object *prefs,
Eina_Bool autosave);
/**
* Get whether a given prefs widget is saving its values back
* automatically on changes.
*
* @param prefs A valid prefs widget handle
* @return @c EINA_TRUE if @a prefs is saving automatically,
* @c EINA_FALSE otherwise.
*
* @see elm_prefs_autosave_set(), for more details
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_autosave_get(const Evas_Object *prefs);
/**
* Reset the values of a given prefs widget to a previous state.
*
* @param prefs A valid prefs widget handle
* @param mode The reset mode to apply on @a prefs
*
* As can be seen on #Elm_Prefs_Reset_Mode, there are two possible
* actions to be taken by this call -- either to reset @a prefs'
* values to the defaults (declared on the @c .epb file it is bound
* to) or to reset to the state they were before the last modification
* it got.
*
* @since 1.8
*/
EAPI void elm_prefs_reset(Evas_Object *prefs,
Elm_Prefs_Reset_Mode mode);
/**
* Set the value on a given prefs widget's item.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection)
* @param value The value to set on the item. It should be typed as
* the item expects, preferably, or a conversion will
* take place
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* This will change the value of item named @a name programatically.
*
* @see elm_prefs_item_value_get()
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_item_value_set(Evas_Object *prefs,
const char *name,
const Eina_Value *value);
/**
* Retrieve the value of a given prefs widget's item.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to get value from
* @param value Where to store the value of the item. It will be
* overwritten and setup with the type the item
* is bound to
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* This will retrieve the value of item named @a name.
*
* @see elm_prefs_item_value_set()
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_item_value_get(const Evas_Object *prefs,
const char *name,
Eina_Value *value);
/**
* Retrieve the Elementary widget bound to a given prefs widget's
* item.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to get object from
* @return A valid widget handle, on success, or @c NULL, otherwise
*
* This will retrieve a handle to the real widget implementing a given
* item of @a prefs, <b>for read-only</b> actions.
*
* @warning You should @b never modify the state of the returned
* widget, because it's meant to be managed by @a prefs, solely.
*
* @see elm_prefs_item_value_set()
*
* @since 1.8
*/
EAPI const Evas_Object *elm_prefs_item_object_get(Evas_Object *prefs,
const char *name);
/**
* Set whether the widget bound to given prefs widget's item should be
* visible or not.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to change visibility of
* @param visible @c EINA_TRUE, to make it visible, @c EINA_FALSE
* otherwise
*
* Each prefs item may have a default visibility state, declared on
* the @c .epb @a prefs it was loaded with. By this call one may alter
* that state, programatically.
*
* @see elm_prefs_item_visible_get()
*
* @since 1.8
*/
EAPI void elm_prefs_item_visible_set(Evas_Object *prefs,
const char *name,
Eina_Bool visible);
/**
* Retrieve whether the widget bound to a given prefs widget's item is
* visible or not.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to get visibility state from
* @return @c EINA_TRUE, if it is visible, @c EINA_FALSE
* otherwise
*
* @see elm_prefs_item_visible_set() for more details
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_item_visible_get(const Evas_Object *prefs,
const char *name);
/**
* Set whether the widget bound to a given prefs widget's item is
* disabled or not.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to act on
* @param disabled @c EINA_TRUE, to make it disabled, @c EINA_FALSE
* otherwise
*
* @see elm_prefs_item_disabled_get()
*
* @since 1.8
*/
EAPI void elm_prefs_item_disabled_set(Evas_Object *prefs,
const char *name,
Eina_Bool disabled);
/**
* Retrieve whether the widget bound to a given prefs widget's item is
* disabled or not.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to get disabled state from
* @return @c EINA_TRUE, if it is disabled, @c EINA_FALSE
* otherwise
*
* @see elm_prefs_item_disabled_set()
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_item_disabled_get(const Evas_Object *prefs,
const char *name);
/**
* Set whether the widget bound to a given prefs widget's item is
* editable or not.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to act on
* @param editable @c EINA_TRUE, to make it editable, @c EINA_FALSE
* otherwise
*
* @note Only @c TEXT or @c TEXTAREA items' default widgets implement
* the 'editable' property. Custom registered widgets may as well
* implement them.
*
* @see elm_prefs_item_editable_get()
*
* @since 1.8
*/
EAPI void elm_prefs_item_editable_set(Evas_Object *prefs,
const char *name,
Eina_Bool editable);
/**
* Retrieve whether the widget bound to a given prefs widget's item is
* editable or not.
*
* @param prefs A valid prefs widget handle
* @param name The name of the item (as declared in the prefs
* collection) to get editable state from
* @return @c EINA_TRUE, if it is editable, @c EINA_FALSE
* otherwise
*
* @see elm_prefs_item_editable_set() for more details
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_item_editable_get(const Evas_Object *prefs,
const char *name);
/**
* "Swallows" an object into a SWALLOW item of a prefs widget.
*
* @param obj A valid prefs widget handle
* @param name the name of the SWALLOW item (as declared in the prefs
* collection)
* @param child The object to occupy the item
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* @see elm_prefs_item_swallow() for more details
*
* @since 1.8
*/
EAPI Eina_Bool elm_prefs_item_swallow(Evas_Object *obj,
const char *name,
Evas_Object *child);
/**
* Unswallow an object from a SWALLOW item of a prefs widget.
*
* @param obj A valid prefs widget handle
* @param name the name of the SWALLOW item (as declared in the prefs
* collection)
* @return The unswallowed object, or NULL on errors
*
* @see elm_prefs_item_unswallow() for more details
*
* @since 1.8
*/
EAPI Evas_Object *elm_prefs_item_unswallow(Evas_Object *obj,
const char *name);

View File

@ -60,462 +60,12 @@
* @li @ref progressbar_example
*/
#define ELM_OBJ_PROGRESSBAR_CLASS elm_obj_progressbar_class_get()
const Eo_Class *elm_obj_progressbar_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PROGRESSBAR_BASE_ID;
typedef char *(*progressbar_func_type)(double);
typedef void (*progressbar_freefunc_type)(char *);
enum
{
ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE,
ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_FUNCTION_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_LAST
};
#define ELM_OBJ_PROGRESSBAR_ID(sub_id) (ELM_OBJ_PROGRESSBAR_BASE_ID + sub_id)
/**
* @def elm_obj_progressbar_pulse_set
* @since 1.8
*
* Set whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param[in] pulse
*
* @see elm_progressbar_pulse_set
*/
#define elm_obj_progressbar_pulse_set(pulse) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_SET), EO_TYPECHECK(Eina_Bool, pulse)
/**
* @def elm_obj_progressbar_pulse_get
* @since 1.8
*
* Get whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param[out] ret
*
* @see elm_progressbar_pulse_get
*/
#define elm_obj_progressbar_pulse_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_progressbar_pulse
* @since 1.8
*
* Start/stop a given progress bar "pulsing" animation, if its
* under that mode
*
* @param[in] state
*
* @see elm_progressbar_pulse
*/
#define elm_obj_progressbar_pulse(state) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE), EO_TYPECHECK(Eina_Bool, state)
/**
* @def elm_obj_progressbar_value_set
* @since 1.8
*
* Set the progress value (in percentage) on a given progress bar
*
* @param[in] val
*
* @see elm_progressbar_value_set
*/
#define elm_obj_progressbar_value_set(val) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_SET), EO_TYPECHECK(double, val)
/**
* @def elm_obj_progressbar_value_get
* @since 1.8
*
* Get the progress value (in percentage) on a given progress bar
*
* @param[out] ret
*
* @see elm_progressbar_value_get
*/
#define elm_obj_progressbar_value_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_progressbar_span_size_set
* @since 1.8
*
* Set the (exact) length of the bar region of a given progress bar
*
* @param[in] size
*
* @see elm_progressbar_span_size_set
*/
#define elm_obj_progressbar_span_size_set(size) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_SET), EO_TYPECHECK(Evas_Coord, size)
/**
* @def elm_obj_progressbar_span_size_get
* @since 1.8
*
* Get the length set for the bar region of a given progress bar
*
* @param[out] ret
*
* @see elm_progressbar_span_size_get
*/
#define elm_obj_progressbar_span_size_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_GET), EO_TYPECHECK(Evas_Coord *, ret)
/**
* @def elm_obj_progressbar_unit_format_set
* @since 1.8
*
* Set the format string for a given progress bar widget's units
*
* @param[in] units
*
* @see elm_progressbar_unit_format_set
*/
#define elm_obj_progressbar_unit_format_set(units) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_SET), EO_TYPECHECK(const char *, units)
/**
* @def elm_obj_progressbar_unit_format_get
* @since 1.8
*
* Retrieve the format string set for a given progress bar widget's
*
* @param[out] ret
*
* @see elm_progressbar_unit_format_get
*/
#define elm_obj_progressbar_unit_format_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_progressbar_unit_format_function_set
* @since 1.8
*
* Set the format function pointer for the units label
*
* @param[in] func
* @param[in] free_func
*
* @see elm_progressbar_unit_format_function_set
*/
#define elm_obj_progressbar_unit_format_function_set(func, free_func) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_FUNCTION_SET), EO_TYPECHECK(progressbar_func_type, func), EO_TYPECHECK(progressbar_freefunc_type, free_func)
/**
* @def elm_obj_progressbar_horizontal_set
* @since 1.8
*
* Set the orientation of a given progress bar widget
*
* @param[in] horizontal
*
* @see elm_progressbar_horizontal_set
*/
#define elm_obj_progressbar_horizontal_set(horizontal) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_progressbar_horizontal_get
* @since 1.8
*
* Retrieve the orientation of a given progress bar widget
*
* @param[out] ret
*
* @see elm_progressbar_horizontal_get
*/
#define elm_obj_progressbar_horizontal_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_progressbar_inverted_set
* @since 1.8
*
* Invert a given progress bar widget's displaying values order
*
* @param[in] inverted
*
* @see elm_progressbar_inverted_set
*/
#define elm_obj_progressbar_inverted_set(inverted) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_SET), EO_TYPECHECK(Eina_Bool, inverted)
/**
* @def elm_obj_progressbar_inverted_get
* @since 1.8
*
* Get whether a given progress bar widget's displaying values are
* inverted or not
*
* @param[out] ret
*
* @see elm_progressbar_inverted_get
*/
#define elm_obj_progressbar_inverted_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* Add a new progress bar widget to the given parent Elementary
* (container) object
*
* @param parent The parent object
* @return a new progress bar widget handle or @c NULL, on errors
*
* This function inserts a new progress bar widget on the canvas.
*
* @ingroup Progressbar
*/
EAPI Evas_Object *elm_progressbar_add(Evas_Object *parent);
/**
* Set whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param obj The progress bar object
* @param pulse @c EINA_TRUE to put @p obj in pulsing mode,
* @c EINA_FALSE to put it back to its default one
*
* By default, progress bars will display values from the low to
* high value boundaries. There are, though, contexts in which the
* progress of a given task is @b unknown. For such cases,
* one can set a progress bar widget to a "pulsing state", to give
* the user an idea that some computation is being held, but
* without exact progress values. In the default theme, it will
* animate its bar with the contents filling in constantly and back
* to non-filled, in a loop. To start and stop this pulsing
* animation, one has to explicitly call elm_progressbar_pulse().
*
* @see elm_progressbar_pulse_get()
* @see elm_progressbar_pulse()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_pulse_set(Evas_Object *obj, Eina_Bool pulse);
/**
* Get whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param obj The progress bar object
* @return @c EINA_TRUE, if @p obj is in pulsing mode, @c EINA_FALSE
* if it's in the default one (and on errors)
*
* @ingroup Progressbar
*/
EAPI Eina_Bool elm_progressbar_pulse_get(const Evas_Object *obj);
/**
* Start/stop a given progress bar "pulsing" animation, if its
* under that mode
*
* @param obj The progress bar object
* @param state @c EINA_TRUE, to @b start the pulsing animation,
* @c EINA_FALSE to @b stop it
*
* @note This call won't do anything if @p obj is not under "pulsing mode".
*
* @see elm_progressbar_pulse_set() for more details.
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_pulse(Evas_Object *obj, Eina_Bool state);
/**
* Set the progress value (in percentage) on a given progress bar
* widget
*
* @param obj The progress bar object
* @param val The progress value (@b must be between @c 0.0 and @c
* 1.0)
*
* Use this call to set progress bar levels.
*
* @note If you passes a value out of the specified range for @p
* val, it will be interpreted as the @b closest of the @b boundary
* values in the range.
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_value_set(Evas_Object *obj, double val);
/**
* Get the progress value (in percentage) on a given progress bar
* widget
*
* @param obj The progress bar object
* @return The value of the progressbar
*
* @see elm_progressbar_value_set() for more details
*
* @ingroup Progressbar
*/
EAPI double elm_progressbar_value_get(const Evas_Object *obj);
/**
* Set the (exact) length of the bar region of a given progress bar
* widget
*
* @param obj The progress bar object
* @param size The length of the progress bar's bar region
*
* This sets the minimum width (when in horizontal mode) or height
* (when in vertical mode) of the actual bar area of the progress
* bar @p obj. This in turn affects the object's minimum size. Use
* this when you're not setting other size hints expanding on the
* given direction (like weight and alignment hints) and you would
* like it to have a specific size.
*
* @note Icon, label and unit text around @p obj will require their
* own space, which will make @p obj to require more the @p size,
* actually.
*
* @see elm_progressbar_span_size_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_span_size_set(Evas_Object *obj, Evas_Coord size);
/**
* Get the length set for the bar region of a given progress bar
* widget
*
* @param obj The progress bar object
* @return The length of the progress bar's bar region
*
* If that size was not set previously, with
* elm_progressbar_span_size_set(), this call will return @c 0.
*
* @ingroup Progressbar
*/
EAPI Evas_Coord elm_progressbar_span_size_get(const Evas_Object *obj);
/**
* Set the format string for a given progress bar widget's units
* label
*
* @param obj The progress bar object
* @param format The format string for @p obj's units label
*
* If @c NULL is passed on @p format, it will make @p obj's units
* area to be hidden completely. If not, it'll set the <b>format
* string</b> for the units label's @b text. The units label is
* provided a floating point value, so the units text is up display
* at most one floating point value. Note that the units label is
* optional. Use a format string such as "%1.2f meters" for
* example.
*
* @note The default format string for a progress bar is an integer
* percentage, as in @c "%.0f %%".
*
* @see elm_progressbar_unit_format_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_unit_format_set(Evas_Object *obj, const char *format);
/**
* Retrieve the format string set for a given progress bar widget's
* units label
*
* @param obj The progress bar object
* @return The format set string for @p obj's units label or
* @c NULL, if none was set (and on errors)
*
* @see elm_progressbar_unit_format_set() for more details
*
* @ingroup Progressbar
*/
EAPI const char *elm_progressbar_unit_format_get(const Evas_Object *obj);
/**
* Set the format function pointer for the units label
*
* @param obj The progress bar object
* @param func The unit format function
* @param free_func The freeing function for the format string.
*
* Set the callback function to format the unit string.
*
* @see elm_progressbar_unit_format_set() for more info on how this works.
*
* @since 1.7
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_unit_format_function_set(Evas_Object *obj, char *(func)(double), void (*free_func) (char *));
/**
* Set the orientation of a given progress bar widget
*
* @param obj The progress bar object
* @param horizontal Use @c EINA_TRUE to make @p obj to be
* @b horizontal, @c EINA_FALSE to make it @b vertical
*
* Use this function to change how your progress bar is to be
* disposed: vertically or horizontally.
*
* @see elm_progressbar_horizontal_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Retrieve the orientation of a given progress bar widget
*
* @param obj The progress bar object
* @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
* @c EINA_FALSE if it's @b vertical (and on errors)
*
* @see elm_progressbar_horizontal_set() for more details
*
* @ingroup Progressbar
*/
EAPI Eina_Bool elm_progressbar_horizontal_get(const Evas_Object *obj);
/**
* Invert a given progress bar widget's displaying values order
*
* @param obj The progress bar object
* @param inverted Use @c EINA_TRUE to make @p obj inverted,
* @c EINA_FALSE to bring it back to default, non-inverted values.
*
* A progress bar may be @b inverted, in which state it gets its
* values inverted, with high values being on the left or top and
* low values on the right or bottom, as opposed to normally have
* the low values on the former and high values on the latter,
* respectively, for horizontal and vertical modes.
*
* @see elm_progressbar_inverted_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_inverted_set(Evas_Object *obj, Eina_Bool inverted);
/**
* Get whether a given progress bar widget's displaying values are
* inverted or not
*
* @param obj The progress bar object
* @return @c EINA_TRUE, if @p obj has inverted values,
* @c EINA_FALSE otherwise (and on errors)
*
* @see elm_progressbar_inverted_set() for more details
*
* @ingroup Progressbar
*/
EAPI Eina_Bool elm_progressbar_inverted_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_progressbar_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_progressbar_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,231 @@
#define ELM_OBJ_PROGRESSBAR_CLASS elm_obj_progressbar_class_get()
const Eo_Class *elm_obj_progressbar_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PROGRESSBAR_BASE_ID;
typedef char *(*progressbar_func_type)(double);
typedef void (*progressbar_freefunc_type)(char *);
enum
{
ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE,
ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_FUNCTION_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_SET,
ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_GET,
ELM_OBJ_PROGRESSBAR_SUB_ID_LAST
};
#define ELM_OBJ_PROGRESSBAR_ID(sub_id) (ELM_OBJ_PROGRESSBAR_BASE_ID + sub_id)
/**
* @def elm_obj_progressbar_pulse_set
* @since 1.8
*
* Set whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param[in] pulse
*
* @see elm_progressbar_pulse_set
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_pulse_set(pulse) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_SET), EO_TYPECHECK(Eina_Bool, pulse)
/**
* @def elm_obj_progressbar_pulse_get
* @since 1.8
*
* Get whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param[out] ret
*
* @see elm_progressbar_pulse_get
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_pulse_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_progressbar_pulse
* @since 1.8
*
* Start/stop a given progress bar "pulsing" animation, if its
* under that mode
*
* @param[in] state
*
* @see elm_progressbar_pulse
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_pulse(state) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE), EO_TYPECHECK(Eina_Bool, state)
/**
* @def elm_obj_progressbar_value_set
* @since 1.8
*
* Set the progress value (in percentage) on a given progress bar
*
* @param[in] val
*
* @see elm_progressbar_value_set
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_value_set(val) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_SET), EO_TYPECHECK(double, val)
/**
* @def elm_obj_progressbar_value_get
* @since 1.8
*
* Get the progress value (in percentage) on a given progress bar
*
* @param[out] ret
*
* @see elm_progressbar_value_get
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_value_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_progressbar_span_size_set
* @since 1.8
*
* Set the (exact) length of the bar region of a given progress bar
*
* @param[in] size
*
* @see elm_progressbar_span_size_set
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_span_size_set(size) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_SET), EO_TYPECHECK(Evas_Coord, size)
/**
* @def elm_obj_progressbar_span_size_get
* @since 1.8
*
* Get the length set for the bar region of a given progress bar
*
* @param[out] ret
*
* @see elm_progressbar_span_size_get
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_span_size_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_GET), EO_TYPECHECK(Evas_Coord *, ret)
/**
* @def elm_obj_progressbar_unit_format_set
* @since 1.8
*
* Set the format string for a given progress bar widget's units
*
* @param[in] units
*
* @see elm_progressbar_unit_format_set
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_unit_format_set(units) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_SET), EO_TYPECHECK(const char *, units)
/**
* @def elm_obj_progressbar_unit_format_get
* @since 1.8
*
* Retrieve the format string set for a given progress bar widget's
*
* @param[out] ret
*
* @see elm_progressbar_unit_format_get
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_unit_format_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_progressbar_unit_format_function_set
* @since 1.8
*
* Set the format function pointer for the units label
*
* @param[in] func
* @param[in] free_func
*
* @see elm_progressbar_unit_format_function_set
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_unit_format_function_set(func, free_func) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_FUNCTION_SET), EO_TYPECHECK(progressbar_func_type, func), EO_TYPECHECK(progressbar_freefunc_type, free_func)
/**
* @def elm_obj_progressbar_horizontal_set
* @since 1.8
*
* Set the orientation of a given progress bar widget
*
* @param[in] horizontal
*
* @see elm_progressbar_horizontal_set
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_horizontal_set(horizontal) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_progressbar_horizontal_get
* @since 1.8
*
* Retrieve the orientation of a given progress bar widget
*
* @param[out] ret
*
* @see elm_progressbar_horizontal_get
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_horizontal_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_progressbar_inverted_set
* @since 1.8
*
* Invert a given progress bar widget's displaying values order
*
* @param[in] inverted
*
* @see elm_progressbar_inverted_set
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_inverted_set(inverted) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_SET), EO_TYPECHECK(Eina_Bool, inverted)
/**
* @def elm_obj_progressbar_inverted_get
* @since 1.8
*
* Get whether a given progress bar widget's displaying values are
* inverted or not
*
* @param[out] ret
*
* @see elm_progressbar_inverted_get
*
* @ingroup Progressbar
*/
#define elm_obj_progressbar_inverted_get(ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,251 @@
/**
* Add a new progress bar widget to the given parent Elementary
* (container) object
*
* @param parent The parent object
* @return a new progress bar widget handle or @c NULL, on errors
*
* This function inserts a new progress bar widget on the canvas.
*
* @ingroup Progressbar
*/
EAPI Evas_Object *elm_progressbar_add(Evas_Object *parent);
/**
* Set whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param obj The progress bar object
* @param pulse @c EINA_TRUE to put @p obj in pulsing mode,
* @c EINA_FALSE to put it back to its default one
*
* By default, progress bars will display values from the low to
* high value boundaries. There are, though, contexts in which the
* progress of a given task is @b unknown. For such cases,
* one can set a progress bar widget to a "pulsing state", to give
* the user an idea that some computation is being held, but
* without exact progress values. In the default theme, it will
* animate its bar with the contents filling in constantly and back
* to non-filled, in a loop. To start and stop this pulsing
* animation, one has to explicitly call elm_progressbar_pulse().
*
* @see elm_progressbar_pulse_get()
* @see elm_progressbar_pulse()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_pulse_set(Evas_Object *obj, Eina_Bool pulse);
/**
* Get whether a given progress bar widget is at "pulsing mode" or
* not.
*
* @param obj The progress bar object
* @return @c EINA_TRUE, if @p obj is in pulsing mode, @c EINA_FALSE
* if it's in the default one (and on errors)
*
* @ingroup Progressbar
*/
EAPI Eina_Bool elm_progressbar_pulse_get(const Evas_Object *obj);
/**
* Start/stop a given progress bar "pulsing" animation, if its
* under that mode
*
* @param obj The progress bar object
* @param state @c EINA_TRUE, to @b start the pulsing animation,
* @c EINA_FALSE to @b stop it
*
* @note This call won't do anything if @p obj is not under "pulsing mode".
*
* @see elm_progressbar_pulse_set() for more details.
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_pulse(Evas_Object *obj, Eina_Bool state);
/**
* Set the progress value (in percentage) on a given progress bar
* widget
*
* @param obj The progress bar object
* @param val The progress value (@b must be between @c 0.0 and @c
* 1.0)
*
* Use this call to set progress bar levels.
*
* @note If you passes a value out of the specified range for @p
* val, it will be interpreted as the @b closest of the @b boundary
* values in the range.
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_value_set(Evas_Object *obj, double val);
/**
* Get the progress value (in percentage) on a given progress bar
* widget
*
* @param obj The progress bar object
* @return The value of the progressbar
*
* @see elm_progressbar_value_set() for more details
*
* @ingroup Progressbar
*/
EAPI double elm_progressbar_value_get(const Evas_Object *obj);
/**
* Set the (exact) length of the bar region of a given progress bar
* widget
*
* @param obj The progress bar object
* @param size The length of the progress bar's bar region
*
* This sets the minimum width (when in horizontal mode) or height
* (when in vertical mode) of the actual bar area of the progress
* bar @p obj. This in turn affects the object's minimum size. Use
* this when you're not setting other size hints expanding on the
* given direction (like weight and alignment hints) and you would
* like it to have a specific size.
*
* @note Icon, label and unit text around @p obj will require their
* own space, which will make @p obj to require more the @p size,
* actually.
*
* @see elm_progressbar_span_size_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_span_size_set(Evas_Object *obj, Evas_Coord size);
/**
* Get the length set for the bar region of a given progress bar
* widget
*
* @param obj The progress bar object
* @return The length of the progress bar's bar region
*
* If that size was not set previously, with
* elm_progressbar_span_size_set(), this call will return @c 0.
*
* @ingroup Progressbar
*/
EAPI Evas_Coord elm_progressbar_span_size_get(const Evas_Object *obj);
/**
* Set the format string for a given progress bar widget's units
* label
*
* @param obj The progress bar object
* @param format The format string for @p obj's units label
*
* If @c NULL is passed on @p format, it will make @p obj's units
* area to be hidden completely. If not, it'll set the <b>format
* string</b> for the units label's @b text. The units label is
* provided a floating point value, so the units text is up display
* at most one floating point value. Note that the units label is
* optional. Use a format string such as "%1.2f meters" for
* example.
*
* @note The default format string for a progress bar is an integer
* percentage, as in @c "%.0f %%".
*
* @see elm_progressbar_unit_format_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_unit_format_set(Evas_Object *obj, const char *format);
/**
* Retrieve the format string set for a given progress bar widget's
* units label
*
* @param obj The progress bar object
* @return The format set string for @p obj's units label or
* @c NULL, if none was set (and on errors)
*
* @see elm_progressbar_unit_format_set() for more details
*
* @ingroup Progressbar
*/
EAPI const char *elm_progressbar_unit_format_get(const Evas_Object *obj);
/**
* Set the format function pointer for the units label
*
* @param obj The progress bar object
* @param func The unit format function
* @param free_func The freeing function for the format string.
*
* Set the callback function to format the unit string.
*
* @see elm_progressbar_unit_format_set() for more info on how this works.
*
* @since 1.7
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_unit_format_function_set(Evas_Object *obj, char *(func)(double), void (*free_func) (char *));
/**
* Set the orientation of a given progress bar widget
*
* @param obj The progress bar object
* @param horizontal Use @c EINA_TRUE to make @p obj to be
* @b horizontal, @c EINA_FALSE to make it @b vertical
*
* Use this function to change how your progress bar is to be
* disposed: vertically or horizontally.
*
* @see elm_progressbar_horizontal_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Retrieve the orientation of a given progress bar widget
*
* @param obj The progress bar object
* @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
* @c EINA_FALSE if it's @b vertical (and on errors)
*
* @see elm_progressbar_horizontal_set() for more details
*
* @ingroup Progressbar
*/
EAPI Eina_Bool elm_progressbar_horizontal_get(const Evas_Object *obj);
/**
* Invert a given progress bar widget's displaying values order
*
* @param obj The progress bar object
* @param inverted Use @c EINA_TRUE to make @p obj inverted,
* @c EINA_FALSE to bring it back to default, non-inverted values.
*
* A progress bar may be @b inverted, in which state it gets its
* values inverted, with high values being on the left or top and
* low values on the right or bottom, as opposed to normally have
* the low values on the former and high values on the latter,
* respectively, for horizontal and vertical modes.
*
* @see elm_progressbar_inverted_get()
*
* @ingroup Progressbar
*/
EAPI void elm_progressbar_inverted_set(Evas_Object *obj, Eina_Bool inverted);
/**
* Get whether a given progress bar widget's displaying values are
* inverted or not
*
* @param obj The progress bar object
* @return @c EINA_TRUE, if @p obj has inverted values,
* @c EINA_FALSE otherwise (and on errors)
*
* @see elm_progressbar_inverted_set() for more details
*
* @ingroup Progressbar
*/
EAPI Eina_Bool elm_progressbar_inverted_get(const Evas_Object *obj);

View File

@ -60,212 +60,12 @@
* @{
*/
#define ELM_OBJ_RADIO_CLASS elm_obj_radio_class_get()
const Eo_Class *elm_obj_radio_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_RADIO_BASE_ID;
enum
{
ELM_OBJ_RADIO_SUB_ID_GROUP_ADD,
ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_SET,
ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_GET,
ELM_OBJ_RADIO_SUB_ID_VALUE_SET,
ELM_OBJ_RADIO_SUB_ID_VALUE_GET,
ELM_OBJ_RADIO_SUB_ID_VALUE_POINTER_SET,
ELM_OBJ_RADIO_SUB_ID_SELECTED_OBJECT_GET,
ELM_OBJ_RADIO_SUB_ID_LAST
};
#define ELM_OBJ_RADIO_ID(sub_id) (ELM_OBJ_RADIO_BASE_ID + sub_id)
/**
* @def elm_obj_radio_group_add
* @since 1.8
*
* @brief Add this radio to a group of other radio objects
*
* @param[in] group
*
* @see elm_radio_group_add
*/
#define elm_obj_radio_group_add(group) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_GROUP_ADD), EO_TYPECHECK(Evas_Object *, group)
/**
* @def elm_obj_radio_state_value_set
* @since 1.8
*
* @brief Set the integer value that this radio object represents
*
* @param[in] value
*
* @see elm_radio_state_value_set
*/
#define elm_obj_radio_state_value_set(value) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_SET), EO_TYPECHECK(int, value)
/**
* @def elm_obj_radio_state_value_get
* @since 1.8
*
* @brief Get the integer value that this radio object represents
*
* @param[out] ret
*
* @see elm_radio_state_value_get
*/
#define elm_obj_radio_state_value_get(ret) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_radio_value_set
* @since 1.8
*
* @brief Set the value of the radio group.
*
* @param[in] value
*
* @see elm_radio_value_set
*/
#define elm_obj_radio_value_set(value) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_SET), EO_TYPECHECK(int, value)
/**
* @def elm_obj_radio_value_get
* @since 1.8
*
* @brief Get the value of the radio group
*
* @param[out] ret
*
* @see elm_radio_value_get
*/
#define elm_obj_radio_value_get(ret) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_radio_value_pointer_set
* @since 1.8
*
* @brief Set a convenience pointer to a integer to change when radio group
*
* @param[in] valuep
*
* @see elm_radio_value_pointer_set
*/
#define elm_obj_radio_value_pointer_set(valuep) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_POINTER_SET), EO_TYPECHECK(int *, valuep)
/**
* @def elm_obj_radio_selected_object_get
* @since 1.8
*
* @brief Get the selected radio object.
*
* @param[out] ret
*
* @see elm_radio_selected_object_get
*/
#define elm_obj_radio_selected_object_get(ret) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_SELECTED_OBJECT_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @brief Add a new radio to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Radio
*/
EAPI Evas_Object *elm_radio_add(Evas_Object *parent);
/**
* @brief Add this radio to a group of other radio objects
*
* @param obj The radio object
* @param group Any object whose group the @p obj is to join.
*
* Radio objects work in groups. Each member should have a different integer
* value assigned. In order to have them work as a group, they need to know
* about each other. This adds the given radio object to the group of which
* the group object indicated is a member.
*
* @ingroup Radio
*/
EAPI void elm_radio_group_add(Evas_Object *obj, Evas_Object *group);
/**
* @brief Set the integer value that this radio object represents
*
* @param obj The radio object
* @param value The value to use if this radio object is selected
*
* This sets the value of the radio.
*
* @ingroup Radio
*/
EAPI void elm_radio_state_value_set(Evas_Object *obj, int value);
/**
* @brief Get the integer value that this radio object represents
*
* @param obj The radio object
* @return The value used if this radio object is selected
*
* This gets the value of the radio.
* @see elm_radio_value_set()
*
* @ingroup Radio
*/
EAPI int elm_radio_state_value_get(const Evas_Object *obj);
/**
* @brief Set the value of the radio group.
*
* @param obj The radio object (any radio object of the group).
* @param value The value to use for the group
*
* This sets the value of the radio group and will also set the value if
* pointed to, to the value supplied, but will not call any callbacks.
*
* @ingroup Radio
*/
EAPI void elm_radio_value_set(Evas_Object *obj, int value);
/**
* @brief Get the value of the radio group
*
* @param obj The radio object (any radio object of the group).
* @return The integer state
*
* @ingroup Radio
*/
EAPI int elm_radio_value_get(const Evas_Object *obj);
/**
* @brief Set a convenience pointer to a integer to change when radio group
* value changes.
*
* @param obj The radio object (any object of a group)
* @param valuep Pointer to the integer to modify
*
* This sets a pointer to a integer, that, in addition to the radio objects
* state will also be modified directly. To stop setting the object pointed
* to simply use NULL as the @p valuep argument. If valuep is not NULL, then
* when this is called, the radio objects state will also be modified to
* reflect the value of the integer valuep points to, just like calling
* elm_radio_value_set().
*
* @ingroup Radio
*/
EAPI void elm_radio_value_pointer_set(Evas_Object *obj, int *valuep);
/**
* @brief Get the selected radio object.
*
* @param obj Any radio object (any object of a group)
* @return The selected radio object
*
* @ingroup Radio
*/
EAPI Evas_Object *elm_radio_selected_object_get(Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_radio_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_radio_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,118 @@
#define ELM_OBJ_RADIO_CLASS elm_obj_radio_class_get()
const Eo_Class *elm_obj_radio_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_RADIO_BASE_ID;
enum
{
ELM_OBJ_RADIO_SUB_ID_GROUP_ADD,
ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_SET,
ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_GET,
ELM_OBJ_RADIO_SUB_ID_VALUE_SET,
ELM_OBJ_RADIO_SUB_ID_VALUE_GET,
ELM_OBJ_RADIO_SUB_ID_VALUE_POINTER_SET,
ELM_OBJ_RADIO_SUB_ID_SELECTED_OBJECT_GET,
ELM_OBJ_RADIO_SUB_ID_LAST
};
#define ELM_OBJ_RADIO_ID(sub_id) (ELM_OBJ_RADIO_BASE_ID + sub_id)
/**
* @def elm_obj_radio_group_add
* @since 1.8
*
* @brief Add this radio to a group of other radio objects
*
* @param[in] group
*
* @see elm_radio_group_add
*
* @ingroup Radio
*/
#define elm_obj_radio_group_add(group) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_GROUP_ADD), EO_TYPECHECK(Evas_Object *, group)
/**
* @def elm_obj_radio_state_value_set
* @since 1.8
*
* @brief Set the integer value that this radio object represents
*
* @param[in] value
*
* @see elm_radio_state_value_set
*
* @ingroup Radio
*/
#define elm_obj_radio_state_value_set(value) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_SET), EO_TYPECHECK(int, value)
/**
* @def elm_obj_radio_state_value_get
* @since 1.8
*
* @brief Get the integer value that this radio object represents
*
* @param[out] ret
*
* @see elm_radio_state_value_get
*
* @ingroup Radio
*/
#define elm_obj_radio_state_value_get(ret) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_radio_value_set
* @since 1.8
*
* @brief Set the value of the radio group.
*
* @param[in] value
*
* @see elm_radio_value_set
*
* @ingroup Radio
*/
#define elm_obj_radio_value_set(value) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_SET), EO_TYPECHECK(int, value)
/**
* @def elm_obj_radio_value_get
* @since 1.8
*
* @brief Get the value of the radio group
*
* @param[out] ret
*
* @see elm_radio_value_get
*
* @ingroup Radio
*/
#define elm_obj_radio_value_get(ret) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_radio_value_pointer_set
* @since 1.8
*
* @brief Set a convenience pointer to a integer to change when radio group
*
* @param[in] valuep
*
* @see elm_radio_value_pointer_set
*
* @ingroup Radio
*/
#define elm_obj_radio_value_pointer_set(valuep) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_POINTER_SET), EO_TYPECHECK(int *, valuep)
/**
* @def elm_obj_radio_selected_object_get
* @since 1.8
*
* @brief Get the selected radio object.
*
* @param[out] ret
*
* @see elm_radio_selected_object_get
*
* @ingroup Radio
*/
#define elm_obj_radio_selected_object_get(ret) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_SELECTED_OBJECT_GET), EO_TYPECHECK(Evas_Object **, ret)

View File

@ -0,0 +1,100 @@
/**
* @brief Add a new radio to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Radio
*/
EAPI Evas_Object *elm_radio_add(Evas_Object *parent);
/**
* @brief Add this radio to a group of other radio objects
*
* @param obj The radio object
* @param group Any object whose group the @p obj is to join.
*
* Radio objects work in groups. Each member should have a different integer
* value assigned. In order to have them work as a group, they need to know
* about each other. This adds the given radio object to the group of which
* the group object indicated is a member.
*
* @ingroup Radio
*/
EAPI void elm_radio_group_add(Evas_Object *obj, Evas_Object *group);
/**
* @brief Set the integer value that this radio object represents
*
* @param obj The radio object
* @param value The value to use if this radio object is selected
*
* This sets the value of the radio.
*
* @ingroup Radio
*/
EAPI void elm_radio_state_value_set(Evas_Object *obj, int value);
/**
* @brief Get the integer value that this radio object represents
*
* @param obj The radio object
* @return The value used if this radio object is selected
*
* This gets the value of the radio.
* @see elm_radio_value_set()
*
* @ingroup Radio
*/
EAPI int elm_radio_state_value_get(const Evas_Object *obj);
/**
* @brief Set the value of the radio group.
*
* @param obj The radio object (any radio object of the group).
* @param value The value to use for the group
*
* This sets the value of the radio group and will also set the value if
* pointed to, to the value supplied, but will not call any callbacks.
*
* @ingroup Radio
*/
EAPI void elm_radio_value_set(Evas_Object *obj, int value);
/**
* @brief Get the value of the radio group
*
* @param obj The radio object (any radio object of the group).
* @return The integer state
*
* @ingroup Radio
*/
EAPI int elm_radio_value_get(const Evas_Object *obj);
/**
* @brief Set a convenience pointer to a integer to change when radio group
* value changes.
*
* @param obj The radio object (any object of a group)
* @param valuep Pointer to the integer to modify
*
* This sets a pointer to a integer, that, in addition to the radio objects
* state will also be modified directly. To stop setting the object pointed
* to simply use NULL as the @p valuep argument. If valuep is not NULL, then
* when this is called, the radio objects state will also be modified to
* reflect the value of the integer valuep points to, just like calling
* elm_radio_value_set().
*
* @ingroup Radio
*/
EAPI void elm_radio_value_pointer_set(Evas_Object *obj, int *valuep);
/**
* @brief Get the selected radio object.
*
* @param obj Any radio object (any object of a group)
* @return The selected radio object
*
* @ingroup Radio
*/
EAPI Evas_Object *elm_radio_selected_object_get(Evas_Object *obj);

View File

@ -10,103 +10,12 @@
* @{
*/
#define ELM_OBJ_ROUTE_CLASS elm_obj_route_class_get()
const Eo_Class *elm_obj_route_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_ROUTE_BASE_ID;
enum
{
ELM_OBJ_ROUTE_SUB_ID_EMAP_SET,
ELM_OBJ_ROUTE_SUB_ID_LONGITUDE_MIN_MAX_GET,
ELM_OBJ_ROUTE_SUB_ID_LATITUDE_MIN_MAX_GET,
ELM_OBJ_ROUTE_SUB_ID_LAST
};
#define ELM_OBJ_ROUTE_ID(sub_id) (ELM_OBJ_ROUTE_BASE_ID + sub_id)
/**
* @def elm_obj_route_emap_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] emap
*
* @see elm_route_emap_set
*/
#define elm_obj_route_emap_set(emap) ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_EMAP_SET), EO_TYPECHECK(EMap_Route *, emap)
/**
* @def elm_obj_route_longitude_min_max_get
* @since 1.8
*
* Get the minimum and maximum values along the longitude.
*
* @param[out] min
* @param[out] max
*
* @see elm_route_longitude_min_max_get
*/
#define elm_obj_route_longitude_min_max_get(min, max) ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_LONGITUDE_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)
/**
* @def elm_obj_route_latitude_min_max_get
* @since 1.8
*
* Get the minimum and maximum values along the latitude.
*
* @param[out] min
* @param[out] max
*
* @see elm_route_latitude_min_max_get
*/
#define elm_obj_route_latitude_min_max_get(min, max) ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_LATITUDE_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)
/**
* Add a new route object to the parent's canvas
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Route
*/
EAPI Evas_Object *elm_route_add(Evas_Object *parent);
#ifdef ELM_EMAP
EAPI void elm_route_emap_set(Evas_Object *obj, EMap_Route *emap);
#ifdef EFL_EO_API_SUPPORT
#include "elm_route_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_route_legacy.h"
#endif
/**
* Get the minimum and maximum values along the longitude.
*
* @param obj The route object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @ingroup Route
*/
EAPI void elm_route_longitude_min_max_get(const Evas_Object *obj, double *min, double *max);
/**
* Get the minimum and maximum values along the latitude.
*
* @param obj The route object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @ingroup Route
*/
EAPI void elm_route_latitude_min_max_get(const Evas_Object *obj, double *min, double *max);
/**
* @}
*/

View File

@ -0,0 +1,60 @@
#define ELM_OBJ_ROUTE_CLASS elm_obj_route_class_get()
const Eo_Class *elm_obj_route_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_ROUTE_BASE_ID;
enum
{
ELM_OBJ_ROUTE_SUB_ID_EMAP_SET,
ELM_OBJ_ROUTE_SUB_ID_LONGITUDE_MIN_MAX_GET,
ELM_OBJ_ROUTE_SUB_ID_LATITUDE_MIN_MAX_GET,
ELM_OBJ_ROUTE_SUB_ID_LAST
};
#define ELM_OBJ_ROUTE_ID(sub_id) (ELM_OBJ_ROUTE_BASE_ID + sub_id)
/**
* @def elm_obj_route_emap_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] emap
*
* @see elm_route_emap_set
*
* @ingroup Route
*/
#define elm_obj_route_emap_set(emap) ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_EMAP_SET), EO_TYPECHECK(EMap_Route *, emap)
/**
* @def elm_obj_route_longitude_min_max_get
* @since 1.8
*
* Get the minimum and maximum values along the longitude.
*
* @param[out] min
* @param[out] max
*
* @see elm_route_longitude_min_max_get
*
* @ingroup Route
*/
#define elm_obj_route_longitude_min_max_get(min, max) ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_LONGITUDE_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)
/**
* @def elm_obj_route_latitude_min_max_get
* @since 1.8
*
* Get the minimum and maximum values along the latitude.
*
* @param[out] min
* @param[out] max
*
* @see elm_route_latitude_min_max_get
*
* @ingroup Route
*/
#define elm_obj_route_latitude_min_max_get(min, max) ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_LATITUDE_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)

View File

@ -0,0 +1,53 @@
/**
* Add a new route object to the parent's canvas
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Route
*/
EAPI Evas_Object *elm_route_add(Evas_Object *parent);
#ifdef ELM_EMAP
EAPI void elm_route_emap_set(Evas_Object *obj, EMap_Route *emap);
#endif
#ifdef ELM_EMAP
/**
* emap set
*
* @param parent The parent object
* @param emap The emap
*
* @ingroup Route
*/
EAPI void elm_route_emap_set(Evas_Object *obj, EMap_Route *emap);
#endif
/**
* Get the minimum and maximum values along the longitude.
*
* @param obj The route object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @ingroup Route
*/
EAPI void elm_route_longitude_min_max_get(const Evas_Object *obj, double *min, double *max);
/**
* Get the minimum and maximum values along the latitude.
*
* @param obj The route object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @ingroup Route
*/
EAPI void elm_route_latitude_min_max_get(const Evas_Object *obj, double *min, double *max);

View File

@ -54,371 +54,18 @@
*
*/
#define ELM_OBJ_SEGMENT_CONTROL_CLASS elm_obj_segment_control_class_get()
const Eo_Class *elm_obj_segment_control_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SEGMENT_CONTROL_BASE_ID;
enum
{
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ADD,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_INSERT_AT,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_DEL_AT,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_LABEL_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ICON_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_COUNT_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_SELECTED_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_LAST
};
#define ELM_OBJ_SEGMENT_CONTROL_ID(sub_id) (ELM_OBJ_SEGMENT_CONTROL_BASE_ID + sub_id)
/**
* @def elm_obj_segment_control_item_add
* @since 1.8
*
* Append a new item to the segment control object.
*
* @param[in] icon
* @param[in] label
* @param[out] ret
*
* @see elm_segment_control_item_add
*/
#define elm_obj_segment_control_item_add(icon, label, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ADD), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_segment_control_item_insert_at
* @since 1.8
*
* Insert a new item to the segment control object at specified position.
*
* @param[in] icon
* @param[in] label
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_insert_at
*/
#define elm_obj_segment_control_item_insert_at(icon, label, idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_INSERT_AT), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_segment_control_item_del_at
* @since 1.8
*
* Remove a segment control item at given index from its parent,
*
* @param[in] idx
*
* @see elm_segment_control_item_del_at
*/
#define elm_obj_segment_control_item_del_at(idx) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_DEL_AT), EO_TYPECHECK(int, idx)
/**
* @def elm_obj_segment_control_item_label_get
* @since 1.8
*
* Get the label of item.
*
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_label_get
*/
#define elm_obj_segment_control_item_label_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_LABEL_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_segment_control_item_icon_get
* @since 1.8
*
* Get the icon associated to the item.
*
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_icon_get
*/
#define elm_obj_segment_control_item_icon_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ICON_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_segment_control_item_count_get
* @since 1.8
*
* Get the Segment items count from segment control.
*
* @param[out] ret
*
* @see elm_segment_control_item_count_get
*/
#define elm_obj_segment_control_item_count_get(ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_COUNT_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_segment_control_item_selected_get
* @since 1.8
*
* Get the selected item.
*
* @param[out] ret
*
* @see elm_segment_control_item_selected_get
*/
#define elm_obj_segment_control_item_selected_get(ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_SELECTED_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_segment_control_item_get
* @since 1.8
*
* Get the item placed at specified index.
*
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_get
*/
#define elm_obj_segment_control_item_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @addtogroup SegmentControl
* @{
*/
/**
* Add a new segment control widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new segment control widget handle or @c NULL, on errors.
*
* This function inserts a new segment control widget on the canvas.
*
* @ingroup SegmentControl
*/
EAPI Evas_Object *elm_segment_control_add(Evas_Object *parent);
/**
* Append a new item to the segment control object.
*
* @param obj The segment control object.
* @param icon The icon object to use for the left side of the item. An
* icon can be any Evas object, but usually it is an icon created
* with elm_icon_add().
* @param label The label of the item.
* Note that, NULL is different from empty string "".
* @return The created item or @c NULL upon failure.
*
* A new item will be created and appended to the segment control, i.e., will
* be set as @b last item.
*
* If it should be inserted at another position,
* elm_segment_control_item_insert_at() should be used instead.
*
* Items created with this function can be deleted with function
* elm_object_item_del() or elm_object_item_del_at().
*
* @note @p label set to @c NULL is different from empty string "".
* If an item
* only has icon, it will be displayed bigger and centered. If it has
* icon and label, even that an empty string, icon will be smaller and
* positioned at left.
*
* Simple example:
* @code
* sc = elm_segment_control_add(win);
* ic = elm_icon_add(win);
* elm_image_file_set(ic, "path/to/image", NULL);
* elm_icon_resizable_set(ic, EINA_TRUE, EINA_TRUE);
* elm_segment_control_item_add(sc, ic, "label");
* evas_object_show(sc);
* @endcode
*
* @see elm_segment_control_item_insert_at()
* @see elm_object_item_del()
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, const char *label);
/**
* Insert a new item to the segment control object at specified position.
*
* @param obj The segment control object.
* @param icon The icon object to use for the left side of the item. An
* icon can be any Evas object, but usually it is an icon created
* with elm_icon_add().
* @param label The label of the item.
* @param index Item position. Value should be between 0 and items count.
* @return The created item or @c NULL upon failure.
* Index values must be between @c 0, when item will be prepended to
* segment control, and items count, that can be get with
* elm_segment_control_item_count_get(), case when item will be appended
* to segment control, just like elm_segment_control_item_add().
*
* Items created with this function can be deleted with function
* elm_object_item_del() or elm_segment_control_item_del_at().
*
* @note @p label set to @c NULL is different from empty string "".
* If an item
* only has icon, it will be displayed bigger and centered. If it has
* icon and label, even that an empty string, icon will be smaller and
* positioned at left.
*
* @see elm_segment_control_item_add()
* @see elm_segment_control_item_count_get()
* @see elm_object_item_del()
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, const char *label, int index);
/**
* Remove a segment control item at given index from its parent,
* deleting it.
*
* @param obj The segment control object.
* @param index The position of the segment control item to be deleted.
*
* Items can be added with elm_segment_control_item_add() or
* elm_segment_control_item_insert_at().
*
* @ingroup SegmentControl
*/
EAPI void elm_segment_control_item_del_at(Evas_Object *obj, int index);
/**
* Get the Segment items count from segment control.
*
* @param obj The segment control object.
* @return Segment items count.
*
* It will just return the number of items added to segment control @p obj.
*
* @ingroup SegmentControl
*/
EAPI int elm_segment_control_item_count_get(const Evas_Object *obj);
/**
* Get the item placed at specified index.
*
* @param obj The segment control object.
* @param index The index of the segment item.
* @return The segment control item or @c NULL on failure.
*
* Index is the position of an item in segment control widget. Its
* range is from @c 0 to <tt> count - 1 </tt>.
* Count is the number of items, that can be get with
* elm_segment_control_item_count_get().
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_get(const Evas_Object *obj, int index);
/**
* Get the label of item.
*
* @param obj The segment control object.
* @param index The index of the segment item.
* @return The label of the item at @p index.
*
* The return value is a pointer to the label associated to the item when
* it was created, with function elm_segment_control_item_add(), or later
* with function elm_object_item_text_set. If no label
* was passed as argument, it will return @c NULL.
*
* @see elm_object_item_text_set() for more details.
* @see elm_segment_control_item_add()
*
* @ingroup SegmentControl
*/
EAPI const char *elm_segment_control_item_label_get(const Evas_Object *obj, int index);
/**
* Get the icon associated to the item.
*
* @param obj The segment control object.
* @param index The index of the segment item.
* @return The left side icon associated to the item at @p index.
*
* The return value is a pointer to the icon associated to the item when
* it was created, with function elm_segment_control_item_add(), or later
* with function elm_object_item_part_content_set(). If no icon
* was passed as argument, it will return @c NULL.
*
* @see elm_segment_control_item_add()
* @see elm_object_item_part_content_set()
*
* @ingroup SegmentControl
*/
EAPI Evas_Object *elm_segment_control_item_icon_get(const Evas_Object *obj, int index);
/**
* Get the index of an item.
*
* @param it The segment control item.
* @return The position of item in segment control widget.
*
* Index is the position of an item in segment control widget. Its
* range is from @c 0 to <tt> count - 1 </tt>.
* Count is the number of items, that can be get with
* elm_segment_control_item_count_get().
*
* @ingroup SegmentControl
*/
EAPI int elm_segment_control_item_index_get(const Elm_Object_Item *it);
/**
* Get the real Evas(Edje) object created to implement the view of a given
* segment_control @p item.
*
* @param it The segment control item.
* @return The base Edje object associated with @p it.
*
* Base object is the @c Evas_Object that represents that item.
*
* @ingroup SegmentControl
*/
EAPI Evas_Object *elm_segment_control_item_object_get(const Elm_Object_Item *it);
/**
* Get the selected item.
*
* @param obj The segment control object.
* @return The selected item or @c NULL if none of segment items is
* selected.
*
* The selected item can be unselected with function
* elm_segment_control_item_selected_set().
*
* The selected item always will be highlighted on segment control.
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_selected_get(const Evas_Object *obj);
/**
* Set the selected state of an item.
*
* @param it The segment control item
* @param select The selected state
*
* This sets the selected state of the given item @p it.
* @c EINA_TRUE for selected, @c EINA_FALSE for not selected.
*
* If a new item is selected the previously selected will be unselected.
* Selected item can be got with function
* elm_segment_control_item_selected_get().
*
* The selected item always will be highlighted on segment control.
*
* @see elm_segment_control_item_selected_get()
*
* @ingroup SegmentControl
*/
EAPI void elm_segment_control_item_selected_set(Elm_Object_Item *it, Eina_Bool select);
#include "elm_segment_control_common.h"
#ifdef EFL_EO_API_SUPPORT
#include "elm_segment_control_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_segment_control_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,49 @@
/**
* Get the index of an item.
*
* @param it The segment control item.
* @return The position of item in segment control widget.
*
* Index is the position of an item in segment control widget. Its
* range is from @c 0 to <tt> count - 1 </tt>.
* Count is the number of items, that can be get with
* elm_segment_control_item_count_get().
*
* @ingroup SegmentControl
*/
EAPI int elm_segment_control_item_index_get(const Elm_Object_Item *it);
/**
* Get the real Evas(Edje) object created to implement the view of a given
* segment_control @p item.
*
* @param it The segment control item.
* @return The base Edje object associated with @p it.
*
* Base object is the @c Evas_Object that represents that item.
*
* @ingroup SegmentControl
*/
EAPI Evas_Object *elm_segment_control_item_object_get(const Elm_Object_Item *it);
/**
* Set the selected state of an item.
*
* @param it The segment control item
* @param select The selected state
*
* This sets the selected state of the given item @p it.
* @c EINA_TRUE for selected, @c EINA_FALSE for not selected.
*
* If a new item is selected the previously selected will be unselected.
* Selected item can be got with function
* elm_segment_control_item_selected_get().
*
* The selected item always will be highlighted on segment control.
*
* @see elm_segment_control_item_selected_get()
*
* @ingroup SegmentControl
*/
EAPI void elm_segment_control_item_selected_set(Elm_Object_Item *it, Eina_Bool select);

View File

@ -0,0 +1,141 @@
#define ELM_OBJ_SEGMENT_CONTROL_CLASS elm_obj_segment_control_class_get()
const Eo_Class *elm_obj_segment_control_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SEGMENT_CONTROL_BASE_ID;
enum
{
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ADD,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_INSERT_AT,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_DEL_AT,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_LABEL_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ICON_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_COUNT_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_SELECTED_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_GET,
ELM_OBJ_SEGMENT_CONTROL_SUB_ID_LAST
};
#define ELM_OBJ_SEGMENT_CONTROL_ID(sub_id) (ELM_OBJ_SEGMENT_CONTROL_BASE_ID + sub_id)
/**
* @def elm_obj_segment_control_item_add
* @since 1.8
*
* Append a new item to the segment control object.
*
* @param[in] icon
* @param[in] label
* @param[out] ret
*
* @see elm_segment_control_item_add
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_add(icon, label, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ADD), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_segment_control_item_insert_at
* @since 1.8
*
* Insert a new item to the segment control object at specified position.
*
* @param[in] icon
* @param[in] label
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_insert_at
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_insert_at(icon, label, idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_INSERT_AT), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_segment_control_item_del_at
* @since 1.8
*
* Remove a segment control item at given index from its parent,
*
* @param[in] idx
*
* @see elm_segment_control_item_del_at
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_del_at(idx) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_DEL_AT), EO_TYPECHECK(int, idx)
/**
* @def elm_obj_segment_control_item_label_get
* @since 1.8
*
* Get the label of item.
*
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_label_get
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_label_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_LABEL_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_segment_control_item_icon_get
* @since 1.8
*
* Get the icon associated to the item.
*
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_icon_get
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_icon_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ICON_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_segment_control_item_count_get
* @since 1.8
*
* Get the Segment items count from segment control.
*
* @param[out] ret
*
* @see elm_segment_control_item_count_get
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_count_get(ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_COUNT_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_segment_control_item_selected_get
* @since 1.8
*
* Get the selected item.
*
* @param[out] ret
*
* @see elm_segment_control_item_selected_get
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_selected_get(ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_SELECTED_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_segment_control_item_get
* @since 1.8
*
* Get the item placed at specified index.
*
* @param[in] idx
* @param[out] ret
*
* @see elm_segment_control_item_get
*
* @ingroup SegmentControl
*/
#define elm_obj_segment_control_item_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)

View File

@ -0,0 +1,184 @@
/**
* Add a new segment control widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new segment control widget handle or @c NULL, on errors.
*
* This function inserts a new segment control widget on the canvas.
*
* @ingroup SegmentControl
*/
EAPI Evas_Object *elm_segment_control_add(Evas_Object *parent);
/**
* Append a new item to the segment control object.
*
* @param obj The segment control object.
* @param icon The icon object to use for the left side of the item. An
* icon can be any Evas object, but usually it is an icon created
* with elm_icon_add().
* @param label The label of the item.
* Note that, NULL is different from empty string "".
* @return The created item or @c NULL upon failure.
*
* A new item will be created and appended to the segment control, i.e., will
* be set as @b last item.
*
* If it should be inserted at another position,
* elm_segment_control_item_insert_at() should be used instead.
*
* Items created with this function can be deleted with function
* elm_object_item_del() or elm_object_item_del_at().
*
* @note @p label set to @c NULL is different from empty string "".
* If an item
* only has icon, it will be displayed bigger and centered. If it has
* icon and label, even that an empty string, icon will be smaller and
* positioned at left.
*
* Simple example:
* @code
* sc = elm_segment_control_add(win);
* ic = elm_icon_add(win);
* elm_image_file_set(ic, "path/to/image", NULL);
* elm_icon_resizable_set(ic, EINA_TRUE, EINA_TRUE);
* elm_segment_control_item_add(sc, ic, "label");
* evas_object_show(sc);
* @endcode
*
* @see elm_segment_control_item_insert_at()
* @see elm_object_item_del()
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, const char *label);
/**
* Insert a new item to the segment control object at specified position.
*
* @param obj The segment control object.
* @param icon The icon object to use for the left side of the item. An
* icon can be any Evas object, but usually it is an icon created
* with elm_icon_add().
* @param label The label of the item.
* @param index Item position. Value should be between 0 and items count.
* @return The created item or @c NULL upon failure.
* Index values must be between @c 0, when item will be prepended to
* segment control, and items count, that can be get with
* elm_segment_control_item_count_get(), case when item will be appended
* to segment control, just like elm_segment_control_item_add().
*
* Items created with this function can be deleted with function
* elm_object_item_del() or elm_segment_control_item_del_at().
*
* @note @p label set to @c NULL is different from empty string "".
* If an item
* only has icon, it will be displayed bigger and centered. If it has
* icon and label, even that an empty string, icon will be smaller and
* positioned at left.
*
* @see elm_segment_control_item_add()
* @see elm_segment_control_item_count_get()
* @see elm_object_item_del()
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, const char *label, int index);
/**
* Remove a segment control item at given index from its parent,
* deleting it.
*
* @param obj The segment control object.
* @param index The position of the segment control item to be deleted.
*
* Items can be added with elm_segment_control_item_add() or
* elm_segment_control_item_insert_at().
*
* @ingroup SegmentControl
*/
EAPI void elm_segment_control_item_del_at(Evas_Object *obj, int index);
/**
* Get the label of item.
*
* @param obj The segment control object.
* @param index The index of the segment item.
* @return The label of the item at @p index.
*
* The return value is a pointer to the label associated to the item when
* it was created, with function elm_segment_control_item_add(), or later
* with function elm_object_item_text_set. If no label
* was passed as argument, it will return @c NULL.
*
* @see elm_object_item_text_set() for more details.
* @see elm_segment_control_item_add()
*
* @ingroup SegmentControl
*/
EAPI const char *elm_segment_control_item_label_get(const Evas_Object *obj, int index);
/**
* Get the icon associated to the item.
*
* @param obj The segment control object.
* @param index The index of the segment item.
* @return The left side icon associated to the item at @p index.
*
* The return value is a pointer to the icon associated to the item when
* it was created, with function elm_segment_control_item_add(), or later
* with function elm_object_item_part_content_set(). If no icon
* was passed as argument, it will return @c NULL.
*
* @see elm_segment_control_item_add()
* @see elm_object_item_part_content_set()
*
* @ingroup SegmentControl
*/
EAPI Evas_Object *elm_segment_control_item_icon_get(const Evas_Object *obj, int index);
/**
* Get the Segment items count from segment control.
*
* @param obj The segment control object.
* @return Segment items count.
*
* It will just return the number of items added to segment control @p obj.
*
* @ingroup SegmentControl
*/
EAPI int elm_segment_control_item_count_get(const Evas_Object *obj);
/**
* Get the selected item.
*
* @param obj The segment control object.
* @return The selected item or @c NULL if none of segment items is
* selected.
*
* The selected item can be unselected with function
* elm_segment_control_item_selected_set().
*
* The selected item always will be highlighted on segment control.
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_selected_get(const Evas_Object *obj);
/**
* Get the item placed at specified index.
*
* @param obj The segment control object.
* @param index The index of the segment item.
* @return The segment control item or @c NULL on failure.
*
* Index is the position of an item in segment control widget. Its
* range is from @c 0 to <tt> count - 1 </tt>.
* Count is the number of items, that can be get with
* elm_segment_control_item_count_get().
*
* @ingroup SegmentControl
*/
EAPI Elm_Object_Item *elm_segment_control_item_get(const Evas_Object *obj, int index);

View File

@ -18,79 +18,12 @@
* @{
*/
#define ELM_OBJ_SEPARATOR_CLASS elm_obj_separator_class_get()
const Eo_Class *elm_obj_separator_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SEPARATOR_BASE_ID;
enum
{
ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_SEPARATOR_SUB_ID_LAST
};
#define ELM_OBJ_SEPARATOR_ID(sub_id) (ELM_OBJ_SEPARATOR_BASE_ID + sub_id)
/**
* @def elm_obj_separator_horizontal_set
* @since 1.8
*
* @brief Set the horizontal mode of a separator object
*
* @param[in] horizontal
*
* @see elm_separator_horizontal_set
*/
#define elm_obj_separator_horizontal_set(horizontal) ELM_OBJ_SEPARATOR_ID(ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_separator_horizontal_get
* @since 1.8
*
* @brief Get the horizontal mode of a separator object
*
* @param[out] ret
*
* @see elm_separator_horizontal_get
*/
#define elm_obj_separator_horizontal_get(ret) ELM_OBJ_SEPARATOR_ID(ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @brief Add a separator object to @p parent
*
* @param parent The parent object
*
* @return The separator object, or NULL upon failure
*
* @ingroup Separator
*/
EAPI Evas_Object *elm_separator_add(Evas_Object *parent);
/**
* @brief Set the horizontal mode of a separator object
*
* @param obj The separator object
* @param horizontal If true, the separator is horizontal
*
* @ingroup Separator
*/
EAPI void elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* @brief Get the horizontal mode of a separator object
*
* @param obj The separator object
* @return If true, the separator is horizontal
*
* @see elm_separator_horizontal_set()
*
* @ingroup Separator
*/
EAPI Eina_Bool elm_separator_horizontal_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_separator_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_separator_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,43 @@
#define ELM_OBJ_SEPARATOR_CLASS elm_obj_separator_class_get()
const Eo_Class *elm_obj_separator_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SEPARATOR_BASE_ID;
enum
{
ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_SEPARATOR_SUB_ID_LAST
};
#define ELM_OBJ_SEPARATOR_ID(sub_id) (ELM_OBJ_SEPARATOR_BASE_ID + sub_id)
/**
* @def elm_obj_separator_horizontal_set
* @since 1.8
*
* @brief Set the horizontal mode of a separator object
*
* @param[in] horizontal
*
* @see elm_separator_horizontal_set
*
* @ingroup Separator
*/
#define elm_obj_separator_horizontal_set(horizontal) ELM_OBJ_SEPARATOR_ID(ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_separator_horizontal_get
* @since 1.8
*
* @brief Get the horizontal mode of a separator object
*
* @param[out] ret
*
* @see elm_separator_horizontal_get
*
* @ingroup Separator
*/
#define elm_obj_separator_horizontal_get(ret) ELM_OBJ_SEPARATOR_ID(ELM_OBJ_SEPARATOR_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,32 @@
/**
* @brief Add a separator object to @p parent
*
* @param parent The parent object
*
* @return The separator object, or NULL upon failure
*
* @ingroup Separator
*/
EAPI Evas_Object *elm_separator_add(Evas_Object *parent);
/**
* @brief Set the horizontal mode of a separator object
*
* @param obj The separator object
* @param horizontal If true, the separator is horizontal
*
* @ingroup Separator
*/
EAPI void elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* @brief Get the horizontal mode of a separator object
*
* @param obj The separator object
* @return If true, the separator is horizontal
*
* @see elm_separator_horizontal_set()
*
* @ingroup Separator
*/
EAPI Eina_Bool elm_separator_horizontal_get(const Evas_Object *obj);

View File

@ -66,599 +66,17 @@
* @li @ref slider_example
*/
#define ELM_OBJ_SLIDER_CLASS elm_obj_slider_class_get()
const Eo_Class *elm_obj_slider_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SLIDER_BASE_ID;
typedef char *(*slider_func_type)(double);
typedef void (*slider_freefunc_type)(char *);
enum
{
ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET,
ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET,
ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET,
ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET,
ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET,
ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET,
ELM_OBJ_SLIDER_SUB_ID_VALUE_SET,
ELM_OBJ_SLIDER_SUB_ID_VALUE_GET,
ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET,
ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET,
ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET,
ELM_OBJ_SLIDER_SUB_ID_LAST
};
#define ELM_OBJ_SLIDER_ID(sub_id) (ELM_OBJ_SLIDER_BASE_ID + sub_id)
/**
* @def elm_obj_slider_span_size_set
* @since 1.8
*
* Set the (exact) length of the bar region of a given slider widget.
*
* @param[in] size
*
* @see elm_slider_span_size_set
*/
#define elm_obj_slider_span_size_set(size) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET), EO_TYPECHECK(Evas_Coord, size)
/**
* @def elm_obj_slider_span_size_get
* @since 1.8
*
* Get the length set for the bar region of a given slider widget
*
* @param[out] ret
*
* @see elm_slider_span_size_get
*/
#define elm_obj_slider_span_size_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET), EO_TYPECHECK(Evas_Coord *, ret)
/**
* @def elm_obj_slider_unit_format_set
* @since 1.8
*
* Set the format string for the unit label.
*
* @param[in] units
*
* @see elm_slider_unit_format_set
*/
#define elm_obj_slider_unit_format_set(units) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET), EO_TYPECHECK(const char *, units)
/**
* @def elm_obj_slider_unit_format_get
* @since 1.8
*
* Get the unit label format of the slider.
*
* @param[out] ret
*
* @see elm_slider_unit_format_get
*/
#define elm_obj_slider_unit_format_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slider_indicator_format_set
* @since 1.8
*
* Set the format string for the indicator label.
*
* @param[in] indicator
*
* @see elm_slider_indicator_format_set
*/
#define elm_obj_slider_indicator_format_set(indicator) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET), EO_TYPECHECK(const char *, indicator)
/**
* @def elm_obj_slider_indicator_format_get
* @since 1.8
*
* Get the indicator label format of the slider.
*
* @param[out] ret
*
* @see elm_slider_indicator_format_get
*/
#define elm_obj_slider_indicator_format_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slider_horizontal_set
* @since 1.8
*
* Set the orientation of a given slider widget.
*
* @param[in] horizontal
*
* @see elm_slider_horizontal_set
*/
#define elm_obj_slider_horizontal_set(horizontal) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_slider_horizontal_get
* @since 1.8
*
* Retrieve the orientation of a given slider widget
*
* @param[out] ret
*
* @see elm_slider_horizontal_get
*/
#define elm_obj_slider_horizontal_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_slider_min_max_set
* @since 1.8
*
* Set the minimum and maximum values for the slider.
*
* @param[in] min
* @param[in] max
*
* @see elm_slider_min_max_set
*/
#define elm_obj_slider_min_max_set(min, max) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET), EO_TYPECHECK(double, min), EO_TYPECHECK(double, max)
/**
* @def elm_obj_slider_min_max_get
* @since 1.8
*
* Get the minimum and maximum values of the slider.
*
* @param[out] min
* @param[out] max
*
* @see elm_slider_min_max_get
*/
#define elm_obj_slider_min_max_get(min, max) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)
/**
* @def elm_obj_slider_value_set
* @since 1.8
*
* Set the value the slider displays.
*
* @param[in] val
*
* @see elm_slider_value_set
*/
#define elm_obj_slider_value_set(val) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_SET), EO_TYPECHECK(double, val)
/**
* @def elm_obj_slider_value_get
* @since 1.8
*
* Get the value displayed by the slider.
*
* @param[out] ret
*
* @see elm_slider_value_get
*/
#define elm_obj_slider_value_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_slider_inverted_set
* @since 1.8
*
* Invert a given slider widget's displaying values order
*
* @param[in] inverted
*
* @see elm_slider_inverted_set
*/
#define elm_obj_slider_inverted_set(inverted) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET), EO_TYPECHECK(Eina_Bool, inverted)
/**
* @def elm_obj_slider_inverted_get
* @since 1.8
*
* Get whether a given slider widget's displaying values are
* inverted or not.
*
* @param[out] ret
*
* @see elm_slider_inverted_get
*/
#define elm_obj_slider_inverted_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_slider_indicator_format_function_set
* @since 1.8
*
* Set the format function pointer for the indicator label
*
* @param[in] func
* @param[in] free_func
*
* @see elm_slider_indicator_format_function_set
*/
#define elm_obj_slider_indicator_format_function_set(func, free_func) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET), EO_TYPECHECK(slider_func_type, func), EO_TYPECHECK(slider_freefunc_type, free_func)
/**
* @def elm_obj_slider_units_format_function_set
* @since 1.8
*
* Set the format function pointer for the units label
*
* @param[in] func
* @param[in] free_func
*
* @see elm_slider_units_format_function_set
*/
#define elm_obj_slider_units_format_function_set(func, free_func) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET), EO_TYPECHECK(slider_func_type, func), EO_TYPECHECK(slider_freefunc_type, free_func)
/**
* @def elm_obj_slider_indicator_show_set
* @since 1.8
*
* Set whether to enlarge slider indicator (augmented knob) or not.
*
* @param[in] show
*
* @see elm_slider_indicator_show_set
*/
#define elm_obj_slider_indicator_show_set(show) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET), EO_TYPECHECK(Eina_Bool, show)
/**
* @def elm_obj_slider_indicator_show_get
* @since 1.8
*
* Get whether a given slider widget's enlarging indicator or not.
*
* @param[out] ret
*
* @see elm_slider_indicator_show_get
*/
#define elm_obj_slider_indicator_show_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @addtogroup Slider
* @{
*/
/**
* Add a new slider widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new slider widget handle or @c NULL, on errors.
*
* This function inserts a new slider widget on the canvas.
*
* @ingroup Slider
*/
EAPI Evas_Object *elm_slider_add(Evas_Object *parent);
/**
* Set the (exact) length of the bar region of a given slider widget.
*
* @param obj The slider object.
* @param size The length of the slider's bar region.
*
* This sets the minimum width (when in horizontal mode) or height
* (when in vertical mode) of the actual bar area of the slider
* @p obj. This in turn affects the object's minimum size. Use
* this when you're not setting other size hints expanding on the
* given direction (like weight and alignment hints) and you would
* like it to have a specific size.
*
* @note Icon, end, label, indicator and unit text around @p obj
* will require their
* own space, which will make @p obj to require more the @p size,
* actually.
*
* @see elm_slider_span_size_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size);
/**
* Get the length set for the bar region of a given slider widget
*
* @param obj The slider object.
* @return The length of the slider's bar region.
*
* If that size was not set previously, with
* elm_slider_span_size_set(), this call will return @c 0.
*
* @ingroup Slider
*/
EAPI Evas_Coord elm_slider_span_size_get(const Evas_Object *obj);
/**
* Set the format string for the unit label.
*
* @param obj The slider object.
* @param format The format string for the unit display.
*
* Unit label is displayed all the time, if set, after slider's bar.
* In horizontal mode, at right and in vertical mode, at bottom.
*
* If @c NULL, unit label won't be visible. If not it sets the format
* string for the label text. To the label text is provided a floating point
* value, so the label text can display up to 1 floating point value.
* Note that this is optional.
*
* Use a format string such as "%1.2f meters" for example, and it will
* display values like: "3.14 meters" for a value equal to 3.14159.
*
* Default is unit label disabled.
*
* @see elm_slider_indicator_format_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_unit_format_set(Evas_Object *obj, const char *format);
/**
* Get the unit label format of the slider.
*
* @param obj The slider object.
* @return The unit label format string in UTF-8.
*
* Unit label is displayed all the time, if set, after slider's bar.
* In horizontal mode, at right and in vertical mode, at bottom.
*
* @see elm_slider_unit_format_set() for more
* information on how this works.
*
* @ingroup Slider
*/
EAPI const char *elm_slider_unit_format_get(const Evas_Object *obj);
/**
* Set the format string for the indicator label.
*
* @param obj The slider object.
* @param indicator The format string for the indicator display.
*
* The slider may display its value somewhere else then unit label,
* for example, above the slider knob that is dragged around. This function
* sets the format string used for this.
*
* If @c NULL, indicator label won't be visible. If not it sets the format
* string for the label text. To the label text is provided a floating point
* value, so the label text can display up to 1 floating point value.
* Note that this is optional.
*
* Use a format string such as "%1.2f meters" for example, and it will
* display values like: "3.14 meters" for a value equal to 3.14159.
*
* Default is indicator label disabled.
*
* @see elm_slider_indicator_format_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator);
/**
* Get the indicator label format of the slider.
*
* @param obj The slider object.
* @return The indicator label format string in UTF-8.
*
* The slider may display its value somewhere else then unit label,
* for example, above the slider knob that is dragged around. This function
* gets the format string used for this.
*
* @see elm_slider_indicator_format_set() for more
* information on how this works.
*
* @ingroup Slider
*/
EAPI const char *elm_slider_indicator_format_get(const Evas_Object *obj);
/**
* Set the format function pointer for the indicator label
*
* @param obj The slider object.
* @param func The indicator format function.
* @param free_func The freeing function for the format string.
*
* Set the callback function to format the indicator string.
*
* @see elm_slider_indicator_format_set() for more info on how this works.
*
* @ingroup Slider
*/
EAPI void elm_slider_indicator_format_function_set(Evas_Object *obj, char *(*func)(double val), void (*free_func)(char *str));
/**
* Set the format function pointer for the units label
*
* @param obj The slider object.
* @param func The units format function.
* @param free_func The freeing function for the format string.
*
* Set the callback function to format the units string.
*
* @see elm_slider_unit_format_set() for more info on how this works.
*
* @ingroup Slider
*/
EAPI void elm_slider_units_format_function_set(Evas_Object *obj, char *(*func)(double val), void (*free_func)(char *str));
/**
* Set the orientation of a given slider widget.
*
* @param obj The slider object.
* @param horizontal Use @c EINA_TRUE to make @p obj to be
* @b horizontal, @c EINA_FALSE to make it @b vertical.
*
* Use this function to change how your slider is to be
* disposed: vertically or horizontally.
*
* By default it's displayed horizontally.
*
* @see elm_slider_horizontal_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Retrieve the orientation of a given slider widget
*
* @param obj The slider object.
* @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
* @c EINA_FALSE if it's @b vertical (and on errors).
*
* @see elm_slider_horizontal_set() for more details.
*
* @ingroup Slider
*/
EAPI Eina_Bool elm_slider_horizontal_get(const Evas_Object *obj);
/**
* Set the minimum and maximum values for the slider.
*
* @param obj The slider object.
* @param min The minimum value.
* @param max The maximum value.
*
* Define the allowed range of values to be selected by the user.
*
* If actual value is less than @p min, it will be updated to @p min. If it
* is bigger then @p max, will be updated to @p max. Actual value can be
* get with elm_slider_value_get().
*
* By default, min is equal to 0.0, and max is equal to 1.0.
*
* @warning Maximum must be greater than minimum, otherwise behavior
* is undefined.
*
* @see elm_slider_min_max_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_min_max_set(Evas_Object *obj, double min, double max);
/**
* Get the minimum and maximum values of the slider.
*
* @param obj The slider object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @see elm_slider_min_max_set() for details.
*
* @ingroup Slider
*/
EAPI void elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max);
/**
* Set the value the slider displays.
*
* @param obj The slider object.
* @param val The value to be displayed.
*
* Value will be presented on the unit label following format specified with
* elm_slider_unit_format_set() and on indicator with
* elm_slider_indicator_format_set().
*
* @warning The value must to be between min and max values. This values
* are set by elm_slider_min_max_set().
*
* @see elm_slider_value_get()
* @see elm_slider_unit_format_set()
* @see elm_slider_indicator_format_set()
* @see elm_slider_min_max_set()
*
* @ingroup Slider
*/
EAPI void elm_slider_value_set(Evas_Object *obj, double val);
/**
* Get the value displayed by the slider.
*
* @param obj The slider object.
* @return The value displayed.
*
* @see elm_slider_value_set() for details.
*
* @ingroup Slider
*/
EAPI double elm_slider_value_get(const Evas_Object *obj);
/**
* Invert a given slider widget's displaying values order
*
* @param obj The slider object.
* @param inverted Use @c EINA_TRUE to make @p obj inverted,
* @c EINA_FALSE to bring it back to default, non-inverted values.
*
* A slider may be @b inverted, in which state it gets its
* values inverted, with high vales being on the left or top and
* low values on the right or bottom, as opposed to normally have
* the low values on the former and high values on the latter,
* respectively, for horizontal and vertical modes.
*
* @see elm_slider_inverted_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted);
/**
* Get whether a given slider widget's displaying values are
* inverted or not.
*
* @param obj The slider object.
* @return @c EINA_TRUE, if @p obj has inverted values,
* @c EINA_FALSE otherwise (and on errors).
*
* @see elm_slider_inverted_set() for more details.
*
* @ingroup Slider
*/
EAPI Eina_Bool elm_slider_inverted_get(const Evas_Object *obj);
/**
* Set whether to enlarge slider indicator (augmented knob) or not.
*
* @param obj The slider object.
* @param show @c EINA_TRUE will make it enlarge, @c EINA_FALSE will
* let the knob always at default size.
*
* By default, indicator will be bigger while dragged by the user.
*
* @warning It won't display values set with
* elm_slider_indicator_format_set() if you disable indicator.
*
* @ingroup Slider
*/
EAPI void elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show);
/**
* Get whether a given slider widget's enlarging indicator or not.
*
* @param obj The slider object.
* @return @c EINA_TRUE, if @p obj is enlarging indicator, or
* @c EINA_FALSE otherwise (and on errors).
*
* @see elm_slider_indicator_show_set() for details.
*
* @ingroup Slider
*/
EAPI Eina_Bool elm_slider_indicator_show_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_slider_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_slider_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,291 @@
#define ELM_OBJ_SLIDER_CLASS elm_obj_slider_class_get()
const Eo_Class *elm_obj_slider_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SLIDER_BASE_ID;
typedef char *(*slider_func_type)(double);
typedef void (*slider_freefunc_type)(char *);
enum
{
ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET,
ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET,
ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET,
ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET,
ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET,
ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET,
ELM_OBJ_SLIDER_SUB_ID_VALUE_SET,
ELM_OBJ_SLIDER_SUB_ID_VALUE_GET,
ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET,
ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET,
ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET,
ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET,
ELM_OBJ_SLIDER_SUB_ID_LAST
};
#define ELM_OBJ_SLIDER_ID(sub_id) (ELM_OBJ_SLIDER_BASE_ID + sub_id)
/**
* @def elm_obj_slider_span_size_set
* @since 1.8
*
* Set the (exact) length of the bar region of a given slider widget.
*
* @param[in] size
*
* @see elm_slider_span_size_set
*
* @ingroup Slider
*/
#define elm_obj_slider_span_size_set(size) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET), EO_TYPECHECK(Evas_Coord, size)
/**
* @def elm_obj_slider_span_size_get
* @since 1.8
*
* Get the length set for the bar region of a given slider widget
*
* @param[out] ret
*
* @see elm_slider_span_size_get
*
* @ingroup Slider
*/
#define elm_obj_slider_span_size_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET), EO_TYPECHECK(Evas_Coord *, ret)
/**
* @def elm_obj_slider_unit_format_set
* @since 1.8
*
* Set the format string for the unit label.
*
* @param[in] units
*
* @see elm_slider_unit_format_set
*
* @ingroup Slider
*/
#define elm_obj_slider_unit_format_set(units) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET), EO_TYPECHECK(const char *, units)
/**
* @def elm_obj_slider_unit_format_get
* @since 1.8
*
* Get the unit label format of the slider.
*
* @param[out] ret
*
* @see elm_slider_unit_format_get
*
* @ingroup Slider
*/
#define elm_obj_slider_unit_format_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slider_indicator_format_set
* @since 1.8
*
* Set the format string for the indicator label.
*
* @param[in] indicator
*
* @see elm_slider_indicator_format_set
*
* @ingroup Slider
*/
#define elm_obj_slider_indicator_format_set(indicator) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET), EO_TYPECHECK(const char *, indicator)
/**
* @def elm_obj_slider_indicator_format_get
* @since 1.8
*
* Get the indicator label format of the slider.
*
* @param[out] ret
*
* @see elm_slider_indicator_format_get
*
* @ingroup Slider
*/
#define elm_obj_slider_indicator_format_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slider_horizontal_set
* @since 1.8
*
* Set the orientation of a given slider widget.
*
* @param[in] horizontal
*
* @see elm_slider_horizontal_set
*
* @ingroup Slider
*/
#define elm_obj_slider_horizontal_set(horizontal) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_slider_horizontal_get
* @since 1.8
*
* Retrieve the orientation of a given slider widget
*
* @param[out] ret
*
* @see elm_slider_horizontal_get
*
* @ingroup Slider
*/
#define elm_obj_slider_horizontal_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_slider_min_max_set
* @since 1.8
*
* Set the minimum and maximum values for the slider.
*
* @param[in] min
* @param[in] max
*
* @see elm_slider_min_max_set
*
* @ingroup Slider
*/
#define elm_obj_slider_min_max_set(min, max) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET), EO_TYPECHECK(double, min), EO_TYPECHECK(double, max)
/**
* @def elm_obj_slider_min_max_get
* @since 1.8
*
* Get the minimum and maximum values of the slider.
*
* @param[out] min
* @param[out] max
*
* @see elm_slider_min_max_get
*
* @ingroup Slider
*/
#define elm_obj_slider_min_max_get(min, max) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)
/**
* @def elm_obj_slider_value_set
* @since 1.8
*
* Set the value the slider displays.
*
* @param[in] val
*
* @see elm_slider_value_set
*
* @ingroup Slider
*/
#define elm_obj_slider_value_set(val) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_SET), EO_TYPECHECK(double, val)
/**
* @def elm_obj_slider_value_get
* @since 1.8
*
* Get the value displayed by the slider.
*
* @param[out] ret
*
* @see elm_slider_value_get
*
* @ingroup Slider
*/
#define elm_obj_slider_value_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_slider_inverted_set
* @since 1.8
*
* Invert a given slider widget's displaying values order
*
* @param[in] inverted
*
* @see elm_slider_inverted_set
*
* @ingroup Slider
*/
#define elm_obj_slider_inverted_set(inverted) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET), EO_TYPECHECK(Eina_Bool, inverted)
/**
* @def elm_obj_slider_inverted_get
* @since 1.8
*
* Get whether a given slider widget's displaying values are
* inverted or not.
*
* @param[out] ret
*
* @see elm_slider_inverted_get
*
* @ingroup Slider
*/
#define elm_obj_slider_inverted_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_slider_indicator_format_function_set
* @since 1.8
*
* Set the format function pointer for the indicator label
*
* @param[in] func
* @param[in] free_func
*
* @see elm_slider_indicator_format_function_set
*
* @ingroup Slider
*/
#define elm_obj_slider_indicator_format_function_set(func, free_func) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET), EO_TYPECHECK(slider_func_type, func), EO_TYPECHECK(slider_freefunc_type, free_func)
/**
* @def elm_obj_slider_units_format_function_set
* @since 1.8
*
* Set the format function pointer for the units label
*
* @param[in] func
* @param[in] free_func
*
* @see elm_slider_units_format_function_set
*
* @ingroup Slider
*/
#define elm_obj_slider_units_format_function_set(func, free_func) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET), EO_TYPECHECK(slider_func_type, func), EO_TYPECHECK(slider_freefunc_type, free_func)
/**
* @def elm_obj_slider_indicator_show_set
* @since 1.8
*
* Set whether to enlarge slider indicator (augmented knob) or not.
*
* @param[in] show
*
* @see elm_slider_indicator_show_set
*
* @ingroup Slider
*/
#define elm_obj_slider_indicator_show_set(show) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET), EO_TYPECHECK(Eina_Bool, show)
/**
* @def elm_obj_slider_indicator_show_get
* @since 1.8
*
* Get whether a given slider widget's enlarging indicator or not.
*
* @param[out] ret
*
* @see elm_slider_indicator_show_get
*
* @ingroup Slider
*/
#define elm_obj_slider_indicator_show_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,330 @@
/**
* Add a new slider widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new slider widget handle or @c NULL, on errors.
*
* This function inserts a new slider widget on the canvas.
*
* @ingroup Slider
*/
EAPI Evas_Object *elm_slider_add(Evas_Object *parent);
/**
* Set the (exact) length of the bar region of a given slider widget.
*
* @param obj The slider object.
* @param size The length of the slider's bar region.
*
* This sets the minimum width (when in horizontal mode) or height
* (when in vertical mode) of the actual bar area of the slider
* @p obj. This in turn affects the object's minimum size. Use
* this when you're not setting other size hints expanding on the
* given direction (like weight and alignment hints) and you would
* like it to have a specific size.
*
* @note Icon, end, label, indicator and unit text around @p obj
* will require their
* own space, which will make @p obj to require more the @p size,
* actually.
*
* @see elm_slider_span_size_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size);
/**
* Get the length set for the bar region of a given slider widget
*
* @param obj The slider object.
* @return The length of the slider's bar region.
*
* If that size was not set previously, with
* elm_slider_span_size_set(), this call will return @c 0.
*
* @ingroup Slider
*/
EAPI Evas_Coord elm_slider_span_size_get(const Evas_Object *obj);
/**
* Set the format string for the unit label.
*
* @param obj The slider object.
* @param format The format string for the unit display.
*
* Unit label is displayed all the time, if set, after slider's bar.
* In horizontal mode, at right and in vertical mode, at bottom.
*
* If @c NULL, unit label won't be visible. If not it sets the format
* string for the label text. To the label text is provided a floating point
* value, so the label text can display up to 1 floating point value.
* Note that this is optional.
*
* Use a format string such as "%1.2f meters" for example, and it will
* display values like: "3.14 meters" for a value equal to 3.14159.
*
* Default is unit label disabled.
*
* @see elm_slider_indicator_format_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_unit_format_set(Evas_Object *obj, const char *format);
/**
* Get the unit label format of the slider.
*
* @param obj The slider object.
* @return The unit label format string in UTF-8.
*
* Unit label is displayed all the time, if set, after slider's bar.
* In horizontal mode, at right and in vertical mode, at bottom.
*
* @see elm_slider_unit_format_set() for more
* information on how this works.
*
* @ingroup Slider
*/
EAPI const char *elm_slider_unit_format_get(const Evas_Object *obj);
/**
* Set the format string for the indicator label.
*
* @param obj The slider object.
* @param indicator The format string for the indicator display.
*
* The slider may display its value somewhere else then unit label,
* for example, above the slider knob that is dragged around. This function
* sets the format string used for this.
*
* If @c NULL, indicator label won't be visible. If not it sets the format
* string for the label text. To the label text is provided a floating point
* value, so the label text can display up to 1 floating point value.
* Note that this is optional.
*
* Use a format string such as "%1.2f meters" for example, and it will
* display values like: "3.14 meters" for a value equal to 3.14159.
*
* Default is indicator label disabled.
*
* @see elm_slider_indicator_format_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator);
/**
* Get the indicator label format of the slider.
*
* @param obj The slider object.
* @return The indicator label format string in UTF-8.
*
* The slider may display its value somewhere else then unit label,
* for example, above the slider knob that is dragged around. This function
* gets the format string used for this.
*
* @see elm_slider_indicator_format_set() for more
* information on how this works.
*
* @ingroup Slider
*/
EAPI const char *elm_slider_indicator_format_get(const Evas_Object *obj);
/**
* Set the orientation of a given slider widget.
*
* @param obj The slider object.
* @param horizontal Use @c EINA_TRUE to make @p obj to be
* @b horizontal, @c EINA_FALSE to make it @b vertical.
*
* Use this function to change how your slider is to be
* disposed: vertically or horizontally.
*
* By default it's displayed horizontally.
*
* @see elm_slider_horizontal_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Retrieve the orientation of a given slider widget
*
* @param obj The slider object.
* @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
* @c EINA_FALSE if it's @b vertical (and on errors).
*
* @see elm_slider_horizontal_set() for more details.
*
* @ingroup Slider
*/
EAPI Eina_Bool elm_slider_horizontal_get(const Evas_Object *obj);
/**
* Set the minimum and maximum values for the slider.
*
* @param obj The slider object.
* @param min The minimum value.
* @param max The maximum value.
*
* Define the allowed range of values to be selected by the user.
*
* If actual value is less than @p min, it will be updated to @p min. If it
* is bigger then @p max, will be updated to @p max. Actual value can be
* get with elm_slider_value_get().
*
* By default, min is equal to 0.0, and max is equal to 1.0.
*
* @warning Maximum must be greater than minimum, otherwise behavior
* is undefined.
*
* @see elm_slider_min_max_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_min_max_set(Evas_Object *obj, double min, double max);
/**
* Get the minimum and maximum values of the slider.
*
* @param obj The slider object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @see elm_slider_min_max_set() for details.
*
* @ingroup Slider
*/
EAPI void elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max);
/**
* Set the value the slider displays.
*
* @param obj The slider object.
* @param val The value to be displayed.
*
* Value will be presented on the unit label following format specified with
* elm_slider_unit_format_set() and on indicator with
* elm_slider_indicator_format_set().
*
* @warning The value must to be between min and max values. This values
* are set by elm_slider_min_max_set().
*
* @see elm_slider_value_get()
* @see elm_slider_unit_format_set()
* @see elm_slider_indicator_format_set()
* @see elm_slider_min_max_set()
*
* @ingroup Slider
*/
EAPI void elm_slider_value_set(Evas_Object *obj, double val);
/**
* Get the value displayed by the slider.
*
* @param obj The slider object.
* @return The value displayed.
*
* @see elm_slider_value_set() for details.
*
* @ingroup Slider
*/
EAPI double elm_slider_value_get(const Evas_Object *obj);
/**
* Invert a given slider widget's displaying values order
*
* @param obj The slider object.
* @param inverted Use @c EINA_TRUE to make @p obj inverted,
* @c EINA_FALSE to bring it back to default, non-inverted values.
*
* A slider may be @b inverted, in which state it gets its
* values inverted, with high vales being on the left or top and
* low values on the right or bottom, as opposed to normally have
* the low values on the former and high values on the latter,
* respectively, for horizontal and vertical modes.
*
* @see elm_slider_inverted_get()
*
* @ingroup Slider
*/
EAPI void elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted);
/**
* Get whether a given slider widget's displaying values are
* inverted or not.
*
* @param obj The slider object.
* @return @c EINA_TRUE, if @p obj has inverted values,
* @c EINA_FALSE otherwise (and on errors).
*
* @see elm_slider_inverted_set() for more details.
*
* @ingroup Slider
*/
EAPI Eina_Bool elm_slider_inverted_get(const Evas_Object *obj);
/**
* Set the format function pointer for the indicator label
*
* @param obj The slider object.
* @param func The indicator format function.
* @param free_func The freeing function for the format string.
*
* Set the callback function to format the indicator string.
*
* @see elm_slider_indicator_format_set() for more info on how this works.
*
* @ingroup Slider
*/
EAPI void elm_slider_indicator_format_function_set(Evas_Object *obj, char *(*func)(double val), void (*free_func)(char *str));
/**
* Set the format function pointer for the units label
*
* @param obj The slider object.
* @param func The units format function.
* @param free_func The freeing function for the format string.
*
* Set the callback function to format the units string.
*
* @see elm_slider_unit_format_set() for more info on how this works.
*
* @ingroup Slider
*/
EAPI void elm_slider_units_format_function_set(Evas_Object *obj, char *(*func)(double val), void (*free_func)(char *str));
/**
* Set whether to enlarge slider indicator (augmented knob) or not.
*
* @param obj The slider object.
* @param show @c EINA_TRUE will make it enlarge, @c EINA_FALSE will
* let the knob always at default size.
*
* By default, indicator will be bigger while dragged by the user.
*
* @warning It won't display values set with
* elm_slider_indicator_format_set() if you disable indicator.
*
* @ingroup Slider
*/
EAPI void elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show);
/**
* Get whether a given slider widget's enlarging indicator or not.
*
* @param obj The slider object.
* @return @c EINA_TRUE, if @p obj is enlarging indicator, or
* @c EINA_FALSE otherwise (and on errors).
*
* @see elm_slider_indicator_show_set() for details.
*
* @ingroup Slider
*/
EAPI Eina_Bool elm_slider_indicator_show_get(const Evas_Object *obj);

View File

@ -67,815 +67,13 @@
* @{
*/
#define ELM_OBJ_SLIDESHOW_CLASS elm_obj_slideshow_class_get()
const Eo_Class *elm_obj_slideshow_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SLIDESHOW_BASE_ID;
enum
{
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_ADD,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_SORTED_INSERT,
ELM_OBJ_SLIDESHOW_SUB_ID_NEXT,
ELM_OBJ_SLIDESHOW_SUB_ID_PREVIOUS,
ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITIONS_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUTS_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CLEAR,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEMS_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_CURRENT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_NTH_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_COUNT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAST
};
#define ELM_OBJ_SLIDESHOW_ID(sub_id) (ELM_OBJ_SLIDESHOW_BASE_ID + sub_id)
/**
* @def elm_obj_slideshow_item_add
* @since 1.8
*
* Add (append) a new item in a given slideshow widget.
*
* @param[in] itc
* @param[in] data
* @param[out] ret
*
* @see elm_slideshow_item_add
*/
#define elm_obj_slideshow_item_add(itc, data, ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_ADD), EO_TYPECHECK(const Elm_Slideshow_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_item_sorted_insert
* @since 1.8
*
* Insert a new item into the given slideshow widget, using the func
* function to sort items (by item handles).
*
* @param[in] itc
* @param[in] data
* @param[in] func
* @param[out] ret
*
* @see elm_slideshow_item_sorted_insert
*/
#define elm_obj_slideshow_item_sorted_insert(itc, data, func, ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_SORTED_INSERT), EO_TYPECHECK(const Elm_Slideshow_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Eina_Compare_Cb, func), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_next
* @since 1.8
*
* Slide to the next item, in a given slideshow widget
*
*
* @see elm_slideshow_next
*/
#define elm_obj_slideshow_next() ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_NEXT)
/**
* @def elm_obj_slideshow_previous
* @since 1.8
*
* Slide to the previous item, in a given slideshow widget
*
*
* @see elm_slideshow_previous
*/
#define elm_obj_slideshow_previous() ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_PREVIOUS)
/**
* @def elm_obj_slideshow_transitions_get
* @since 1.8
*
* Returns the list of sliding transition/effect names available, for a
* given slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_transitions_get
*/
#define elm_obj_slideshow_transitions_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITIONS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_slideshow_layouts_get
* @since 1.8
*
* Returns the list of layout names available, for a given
* slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_layouts_get
*/
#define elm_obj_slideshow_layouts_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUTS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_slideshow_transition_set
* @since 1.8
*
* Set the current slide transition/effect in use for a given
* slideshow widget.
*
* @param[in] transition
*
* @see elm_slideshow_transition_set
*/
#define elm_obj_slideshow_transition_set(transition) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_SET), EO_TYPECHECK(const char *, transition)
/**
* @def elm_obj_slideshow_transition_get
* @since 1.8
*
* Get the current slide transition/effect in use for a given
* slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_transition_get
*/
#define elm_obj_slideshow_transition_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slideshow_timeout_set
* @since 1.8
*
* Set the interval between each image transition on a given
* slideshow widget.
*
* @param[in] timeout
*
* @see elm_slideshow_timeout_set
*/
#define elm_obj_slideshow_timeout_set(timeout) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_SET), EO_TYPECHECK(double, timeout)
/**
* @def elm_obj_slideshow_timeout_get
* @since 1.8
*
* Get the interval set for image transitions on a given slideshow
* widget.
*
* @param[out] ret
*
* @see elm_slideshow_timeout_get
*/
#define elm_obj_slideshow_timeout_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_slideshow_loop_set
* @since 1.8
*
* Set if, after a slideshow is started, for a given slideshow
* widget.
*
* @param[in] loop
*
* @see elm_slideshow_loop_set
*/
#define elm_obj_slideshow_loop_set(loop) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_SET), EO_TYPECHECK(Eina_Bool, loop)
/**
* @def elm_obj_slideshow_layout_get
* @since 1.8
*
* Get the current slide layout in use for a given slideshow widget
*
* @param[out] ret
*
* @see elm_slideshow_layout_get
*/
#define elm_obj_slideshow_layout_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slideshow_layout_set
* @since 1.8
*
* Set the current slide layout in use for a given slideshow widget
*
* @param[in] layout
*
* @see elm_slideshow_layout_set
*/
#define elm_obj_slideshow_layout_set(layout) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_SET), EO_TYPECHECK(const char *, layout)
/**
* @def elm_obj_slideshow_loop_get
* @since 1.8
*
* Get if, after a slideshow is started, for a given slideshow
* widget.
*
* @param[out] ret
*
* @see elm_slideshow_loop_get
*/
#define elm_obj_slideshow_loop_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_slideshow_clear
* @since 1.8
*
* Remove all items from a given slideshow widget
*
*
* @see elm_slideshow_clear
*/
#define elm_obj_slideshow_clear() ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CLEAR)
/**
* @def elm_obj_slideshow_items_get
* @since 1.8
*
* Get the internal list of items in a given slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_items_get
*/
#define elm_obj_slideshow_items_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_slideshow_item_current_get
* @since 1.8
*
* Returns the currently displayed item, in a given slideshow widget
*
* @param[out] ret
*
* @see elm_slideshow_item_current_get
*/
#define elm_obj_slideshow_item_current_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_CURRENT_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_cache_before_get
* @since 1.8
*
* Retrieve the number of items to cache, on a given slideshow widget,
*
* @param[out] ret
*
* @see elm_slideshow_cache_before_get
*/
#define elm_obj_slideshow_cache_before_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_slideshow_cache_before_set
* @since 1.8
*
* Set the number of items to cache, on a given slideshow widget,
*
* @param[in] count
*
* @see elm_slideshow_cache_before_set
*/
#define elm_obj_slideshow_cache_before_set(count) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_SET), EO_TYPECHECK(int, count)
/**
* @def elm_obj_slideshow_cache_after_get
* @since 1.8
*
* Retrieve the number of items to cache, on a given slideshow widget,
* <b>after the current item</b>
*
* @param[out] ret
*
* @see elm_slideshow_cache_after_get
*/
#define elm_obj_slideshow_cache_after_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_slideshow_cache_after_set
* @since 1.8
*
* Set the number of items to cache, on a given slideshow widget,
* <b>after the current item</b>
*
* @param[in] count
*
* @see elm_slideshow_cache_after_set
*/
#define elm_obj_slideshow_cache_after_set(count) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_SET), EO_TYPECHECK(int, count)
/**
* @def elm_obj_slideshow_item_nth_get
* @since 1.8
*
* Get the the item, in a given slideshow widget, placed at
* position @p nth, in its internal items list
*
* @param[in] nth
* @param[out] ret
*
* @see elm_slideshow_item_nth_get
*/
#define elm_obj_slideshow_item_nth_get(nth, ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_NTH_GET), EO_TYPECHECK(unsigned int, nth), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_count_get
* @since 1.8
*
* Get the number of items stored in a given slideshow widget
*
* @param[out] ret
*
* @see elm_slideshow_count_get
*/
#define elm_obj_slideshow_count_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_COUNT_GET), EO_TYPECHECK(unsigned int *, ret)
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 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;
}; /**< member definitions of #Elm_Slideshow_Item_Class */
/**
* 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);
/**
* Add (append) a new item in a given slideshow widget.
*
* @param obj The slideshow object
* @param 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()
* @see elm_object_item_data_set()
*
* @ingroup Slideshow
*/
EAPI Elm_Object_Item *elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data);
/**
* 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
* @param 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_Class 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_Object_Item *elm_slideshow_item_sorted_insert(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data, Eina_Compare_Cb func);
/**
* Display a given slideshow widget's item, programmatically.
*
* @param it 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_item_show(Elm_Object_Item *it);
/**
* 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);
/**
* 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);
/**
* 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. Also the list is an internal list and
* so is only valid for as long as the slideshow object is valid and
* has not internally changed its list for some reason, so make a
* copy if you need it around.
*
* @see elm_slideshow_transition_set()
*
* @ingroup Slideshow
*/
EAPI const Eina_List *elm_slideshow_transitions_get(const Evas_Object *obj);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* Get the interval set for image transitions on a given slideshow
* widget.
*
* @param obj The slideshow object
* @return Returns the timeout set on it or -1.0, on errors
*
* @see elm_slideshow_timeout_set() for more details
*
* @ingroup Slideshow
*/
EAPI double elm_slideshow_timeout_get(const Evas_Object *obj);
/**
* 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);
/**
* 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);
/**
* 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_object_item_del(), to remove just one item.
*
* @ingroup Slideshow
*/
EAPI void elm_slideshow_clear(Evas_Object *obj);
/**
* Get the internal list of items in a given slideshow widget.
*
* @param obj The slideshow object
* @return The list of items (#Elm_Object_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_object_item_del(), elm_object_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);
/**
* 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_Object_Item *elm_slideshow_item_current_get(const Evas_Object *obj);
/**
* Get the real Evas object created to implement the view of a
* given slideshow item
*
* @param it 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_object_item_data_get()
*
* @ingroup Slideshow
*/
EAPI Evas_Object *elm_slideshow_item_object_get(const Elm_Object_Item *it);
/**
* 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_Object_Item *elm_slideshow_item_nth_get(const Evas_Object *obj, unsigned int nth);
/**
* 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);
/**
* 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);
/**
* 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 height
* 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);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* 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);
#include "elm_slideshow_common.h"
#ifdef EFL_EO_API_SUPPORT
#include "elm_slideshow_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_slideshow_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,54 @@
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 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;
}; /**< member definitions of #Elm_Slideshow_Item_Class */
/**
* Display a given slideshow widget's item, programmatically.
*
* @param it 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_item_show(Elm_Object_Item *it);
/**
* Get the real Evas object created to implement the view of a
* given slideshow item
*
* @param it 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_object_item_data_get()
*
* @ingroup Slideshow
*/
EAPI Evas_Object *elm_slideshow_item_object_get(const Elm_Object_Item *it);

View File

@ -0,0 +1,373 @@
#define ELM_OBJ_SLIDESHOW_CLASS elm_obj_slideshow_class_get()
const Eo_Class *elm_obj_slideshow_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SLIDESHOW_BASE_ID;
enum
{
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_ADD,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_SORTED_INSERT,
ELM_OBJ_SLIDESHOW_SUB_ID_NEXT,
ELM_OBJ_SLIDESHOW_SUB_ID_PREVIOUS,
ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITIONS_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUTS_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CLEAR,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEMS_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_CURRENT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_SET,
ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_NTH_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_COUNT_GET,
ELM_OBJ_SLIDESHOW_SUB_ID_LAST
};
#define ELM_OBJ_SLIDESHOW_ID(sub_id) (ELM_OBJ_SLIDESHOW_BASE_ID + sub_id)
/**
* @def elm_obj_slideshow_item_add
* @since 1.8
*
* Add (append) a new item in a given slideshow widget.
*
* @param[in] itc
* @param[in] data
* @param[out] ret
*
* @see elm_slideshow_item_add
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_item_add(itc, data, ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_ADD), EO_TYPECHECK(const Elm_Slideshow_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_item_sorted_insert
* @since 1.8
*
* Insert a new item into the given slideshow widget, using the func
* function to sort items (by item handles).
*
* @param[in] itc
* @param[in] data
* @param[in] func
* @param[out] ret
*
* @see elm_slideshow_item_sorted_insert
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_item_sorted_insert(itc, data, func, ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_SORTED_INSERT), EO_TYPECHECK(const Elm_Slideshow_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Eina_Compare_Cb, func), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_next
* @since 1.8
*
* Slide to the next item, in a given slideshow widget
*
*
* @see elm_slideshow_next
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_next() ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_NEXT)
/**
* @def elm_obj_slideshow_previous
* @since 1.8
*
* Slide to the previous item, in a given slideshow widget
*
*
* @see elm_slideshow_previous
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_previous() ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_PREVIOUS)
/**
* @def elm_obj_slideshow_transitions_get
* @since 1.8
*
* Returns the list of sliding transition/effect names available, for a
* given slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_transitions_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_transitions_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITIONS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_slideshow_layouts_get
* @since 1.8
*
* Returns the list of layout names available, for a given
* slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_layouts_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_layouts_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUTS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_slideshow_transition_set
* @since 1.8
*
* Set the current slide transition/effect in use for a given
* slideshow widget.
*
* @param[in] transition
*
* @see elm_slideshow_transition_set
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_transition_set(transition) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_SET), EO_TYPECHECK(const char *, transition)
/**
* @def elm_obj_slideshow_transition_get
* @since 1.8
*
* Get the current slide transition/effect in use for a given
* slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_transition_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_transition_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slideshow_timeout_set
* @since 1.8
*
* Set the interval between each image transition on a given
* slideshow widget.
*
* @param[in] timeout
*
* @see elm_slideshow_timeout_set
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_timeout_set(timeout) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_SET), EO_TYPECHECK(double, timeout)
/**
* @def elm_obj_slideshow_timeout_get
* @since 1.8
*
* Get the interval set for image transitions on a given slideshow
* widget.
*
* @param[out] ret
*
* @see elm_slideshow_timeout_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_timeout_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_slideshow_loop_set
* @since 1.8
*
* Set if, after a slideshow is started, for a given slideshow
* widget.
*
* @param[in] loop
*
* @see elm_slideshow_loop_set
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_loop_set(loop) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_SET), EO_TYPECHECK(Eina_Bool, loop)
/**
* @def elm_obj_slideshow_layout_get
* @since 1.8
*
* Get the current slide layout in use for a given slideshow widget
*
* @param[out] ret
*
* @see elm_slideshow_layout_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_layout_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_slideshow_layout_set
* @since 1.8
*
* Set the current slide layout in use for a given slideshow widget
*
* @param[in] layout
*
* @see elm_slideshow_layout_set
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_layout_set(layout) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_SET), EO_TYPECHECK(const char *, layout)
/**
* @def elm_obj_slideshow_loop_get
* @since 1.8
*
* Get if, after a slideshow is started, for a given slideshow
* widget.
*
* @param[out] ret
*
* @see elm_slideshow_loop_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_loop_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_slideshow_clear
* @since 1.8
*
* Remove all items from a given slideshow widget
*
*
* @see elm_slideshow_clear
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_clear() ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CLEAR)
/**
* @def elm_obj_slideshow_items_get
* @since 1.8
*
* Get the internal list of items in a given slideshow widget.
*
* @param[out] ret
*
* @see elm_slideshow_items_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_items_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_slideshow_item_current_get
* @since 1.8
*
* Returns the currently displayed item, in a given slideshow widget
*
* @param[out] ret
*
* @see elm_slideshow_item_current_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_item_current_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_CURRENT_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_cache_before_get
* @since 1.8
*
* Retrieve the number of items to cache, on a given slideshow widget,
*
* @param[out] ret
*
* @see elm_slideshow_cache_before_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_cache_before_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_slideshow_cache_before_set
* @since 1.8
*
* Set the number of items to cache, on a given slideshow widget,
*
* @param[in] count
*
* @see elm_slideshow_cache_before_set
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_cache_before_set(count) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_SET), EO_TYPECHECK(int, count)
/**
* @def elm_obj_slideshow_cache_after_get
* @since 1.8
*
* Retrieve the number of items to cache, on a given slideshow widget,
* <b>after the current item</b>
*
* @param[out] ret
*
* @see elm_slideshow_cache_after_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_cache_after_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_slideshow_cache_after_set
* @since 1.8
*
* Set the number of items to cache, on a given slideshow widget,
* <b>after the current item</b>
*
* @param[in] count
*
* @see elm_slideshow_cache_after_set
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_cache_after_set(count) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_SET), EO_TYPECHECK(int, count)
/**
* @def elm_obj_slideshow_item_nth_get
* @since 1.8
*
* Get the the item, in a given slideshow widget, placed at
* position @p nth, in its internal items list
*
* @param[in] nth
* @param[out] ret
*
* @see elm_slideshow_item_nth_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_item_nth_get(nth, ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_NTH_GET), EO_TYPECHECK(unsigned int, nth), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_slideshow_count_get
* @since 1.8
*
* Get the number of items stored in a given slideshow widget
*
* @param[out] ret
*
* @see elm_slideshow_count_get
*
* @ingroup Slideshow
*/
#define elm_obj_slideshow_count_get(ret) ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_COUNT_GET), EO_TYPECHECK(unsigned int *, ret)

View File

@ -0,0 +1,425 @@
/**
* 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);
/**
* Add (append) a new item in a given slideshow widget.
*
* @param obj The slideshow object
* @param 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()
* @see elm_object_item_data_set()
*
* @ingroup Slideshow
*/
EAPI Elm_Object_Item *elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data);
/**
* 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
* @param 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_Class 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_Object_Item *elm_slideshow_item_sorted_insert(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data, Eina_Compare_Cb func);
/**
* 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);
/**
* 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);
/**
* 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. Also the list is an internal list and
* so is only valid for as long as the slideshow object is valid and
* has not internally changed its list for some reason, so make a
* copy if you need it around.
*
* @see elm_slideshow_transition_set()
*
* @ingroup Slideshow
*/
EAPI const Eina_List *elm_slideshow_transitions_get(const Evas_Object *obj);
/**
* 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 height
* 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);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* Get the interval set for image transitions on a given slideshow
* widget.
*
* @param obj The slideshow object
* @return Returns the timeout set on it or -1.0, on errors
*
* @see elm_slideshow_timeout_set() for more details
*
* @ingroup Slideshow
*/
EAPI double elm_slideshow_timeout_get(const Evas_Object *obj);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* 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_object_item_del(), to remove just one item.
*
* @ingroup Slideshow
*/
EAPI void elm_slideshow_clear(Evas_Object *obj);
/**
* Get the internal list of items in a given slideshow widget.
*
* @param obj The slideshow object
* @return The list of items (#Elm_Object_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_object_item_del(), elm_object_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);
/**
* 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_Object_Item *elm_slideshow_item_current_get(const Evas_Object *obj);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* 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_Object_Item *elm_slideshow_item_nth_get(const Evas_Object *obj, unsigned int nth);
/**
* 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);

View File

@ -48,686 +48,17 @@
* @ref spinner_example
*/
#define ELM_OBJ_SPINNER_CLASS elm_obj_spinner_class_get()
const Eo_Class *elm_obj_spinner_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SPINNER_BASE_ID;
enum
{
ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_SET,
ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_GET,
ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_SET,
ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_GET,
ELM_OBJ_SPINNER_SUB_ID_STEP_SET,
ELM_OBJ_SPINNER_SUB_ID_STEP_GET,
ELM_OBJ_SPINNER_SUB_ID_VALUE_SET,
ELM_OBJ_SPINNER_SUB_ID_VALUE_GET,
ELM_OBJ_SPINNER_SUB_ID_WRAP_SET,
ELM_OBJ_SPINNER_SUB_ID_WRAP_GET,
ELM_OBJ_SPINNER_SUB_ID_SPECIAL_VALUE_ADD,
ELM_OBJ_SPINNER_SUB_ID_EDITABLE_SET,
ELM_OBJ_SPINNER_SUB_ID_EDITABLE_GET,
ELM_OBJ_SPINNER_SUB_ID_INTERVAL_SET,
ELM_OBJ_SPINNER_SUB_ID_INTERVAL_GET,
ELM_OBJ_SPINNER_SUB_ID_BASE_SET,
ELM_OBJ_SPINNER_SUB_ID_BASE_GET,
ELM_OBJ_SPINNER_SUB_ID_ROUND_SET,
ELM_OBJ_SPINNER_SUB_ID_ROUND_GET,
ELM_OBJ_SPINNER_SUB_ID_LAST
};
#define ELM_OBJ_SPINNER_ID(sub_id) (ELM_OBJ_SPINNER_BASE_ID + sub_id)
/**
* @def elm_obj_spinner_label_format_set
* @since 1.8
*
* Set the format string of the displayed label.
*
* @param[in] fmt
*
* @see elm_spinner_label_format_set
*/
#define elm_obj_spinner_label_format_set(fmt) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_SET), EO_TYPECHECK(const char *, fmt)
/**
* @def elm_obj_spinner_label_format_get
* @since 1.8
*
* Get the label format of the spinner.
*
* @param[out] ret
*
* @see elm_spinner_label_format_get
*/
#define elm_obj_spinner_label_format_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_spinner_min_max_set
* @since 1.8
*
* Set the minimum and maximum values for the spinner.
*
* @param[in] min
* @param[in] max
*
* @see elm_spinner_min_max_set
*/
#define elm_obj_spinner_min_max_set(min, max) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_SET), EO_TYPECHECK(double, min), EO_TYPECHECK(double, max)
/**
* @def elm_obj_spinner_min_max_get
* @since 1.8
*
* Get the minimum and maximum values of the spinner.
*
* @param[out] min
* @param[out] max
*
* @see elm_spinner_min_max_get
*/
#define elm_obj_spinner_min_max_get(min, max) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)
/**
* @def elm_obj_spinner_step_set
* @since 1.8
*
* Set the step used to increment or decrement the spinner value.
*
* @param[in] step
*
* @see elm_spinner_step_set
*/
#define elm_obj_spinner_step_set(step) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_STEP_SET), EO_TYPECHECK(double, step)
/**
* @def elm_obj_spinner_step_get
* @since 1.8
*
* Get the step used to increment or decrement the spinner value.
*
* @param[out] ret
*
* @see elm_spinner_step_get
*/
#define elm_obj_spinner_step_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_STEP_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_value_set
* @since 1.8
*
* Set the value the spinner displays.
*
* @param[in] val
*
* @see elm_spinner_value_set
*/
#define elm_obj_spinner_value_set(val) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_VALUE_SET), EO_TYPECHECK(double, val)
/**
* @def elm_obj_spinner_value_get
* @since 1.8
*
* Get the value displayed by the spinner.
*
* @param[out] ret
*
* @see elm_spinner_value_get
*/
#define elm_obj_spinner_value_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_VALUE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_wrap_set
* @since 1.8
*
* Set whether the spinner should wrap when it reaches its
*
* @param[in] wrap
*
* @see elm_spinner_wrap_set
*/
#define elm_obj_spinner_wrap_set(wrap) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_WRAP_SET), EO_TYPECHECK(Eina_Bool, wrap)
/**
* @def elm_obj_spinner_wrap_get
* @since 1.8
*
* Get whether the spinner should wrap when it reaches its
*
* @param[out] ret
*
* @see elm_spinner_wrap_get
*/
#define elm_obj_spinner_wrap_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_WRAP_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_spinner_special_value_add
* @since 1.8
*
* Set a special string to display in the place of the numerical value.
*
* @param[in] value
* @param[in] label
*
* @see elm_spinner_special_value_add
*/
#define elm_obj_spinner_special_value_add(value, label) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_SPECIAL_VALUE_ADD), EO_TYPECHECK(double, value), EO_TYPECHECK(const char *, label)
/**
* @def elm_obj_spinner_editable_set
* @since 1.8
*
* Set whether the spinner can be directly edited by the user or not.
*
* @param[in] editable
*
* @see elm_spinner_editable_set
*/
#define elm_obj_spinner_editable_set(editable) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, editable)
/**
* @def elm_obj_spinner_editable_get
* @since 1.8
*
* Get whether the spinner can be directly edited by the user or not.
*
* @param[out] ret
*
* @see elm_spinner_editable_get
*/
#define elm_obj_spinner_editable_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_spinner_interval_set
* @since 1.8
*
* Set the interval on time updates for an user mouse button hold
*
* @param[in] interval
*
* @see elm_spinner_interval_set
*/
#define elm_obj_spinner_interval_set(interval) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_INTERVAL_SET), EO_TYPECHECK(double, interval)
/**
* @def elm_obj_spinner_interval_get
* @since 1.8
*
* Get the interval on time updates for an user mouse button hold
*
* @param[out] ret
*
* @see elm_spinner_interval_get
*/
#define elm_obj_spinner_interval_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_INTERVAL_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_base_set
* @since 1.8
*
* Set the base for rounding
*
* @param[in] base
*
* @see elm_spinner_base_set
*/
#define elm_obj_spinner_base_set(base) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_BASE_SET), EO_TYPECHECK(double, base)
/**
* @def elm_obj_spinner_base_get
* @since 1.8
*
* Get the base for rounding
*
* @param[out] ret
*
* @see elm_spinner_base_get
*/
#define elm_obj_spinner_base_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_BASE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_round_set
* @since 1.8
*
* Set the round value for rounding
*
* @param[in] rnd
*
* @see elm_spinner_round_set
*/
#define elm_obj_spinner_round_set(rnd) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_ROUND_SET), EO_TYPECHECK(int, rnd)
/**
* @def elm_obj_spinner_round_get
* @since 1.8
*
* Get the round value for rounding
*
* @param[out] ret
*
* @see elm_spinner_round_get
*/
#define elm_obj_spinner_round_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_ROUND_GET), EO_TYPECHECK(int *, ret)
/**
* @addtogroup Spinner
* @{
*/
/**
* Add a new spinner widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new spinner widget handle or @c NULL, on errors.
*
* This function inserts a new spinner widget on the canvas.
*
* @ingroup Spinner
*
*/
EAPI Evas_Object *elm_spinner_add(Evas_Object *parent);
/**
* Set the format string of the displayed label.
*
* @param obj The spinner object.
* @param fmt The format string for the label display.
*
* If @c NULL, this sets the format to "%.0f". If not it sets the format
* string for the label text. The label text is provided a floating point
* value, so the label text can display up to 1 floating point value.
* Note that this is optional.
*
* Use a format string such as "%1.2f meters" for example, and it will
* display values like: "3.14 meters" for a value equal to 3.14159.
*
* Default is "%0.f".
*
* @see elm_spinner_label_format_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_label_format_set(Evas_Object *obj, const char *fmt);
/**
* Get the label format of the spinner.
*
* @param obj The spinner object.
* @return The text label format string in UTF-8.
*
* @see elm_spinner_label_format_set() for details.
*
* @ingroup Spinner
*/
EAPI const char *elm_spinner_label_format_get(const Evas_Object *obj);
/**
* Set the minimum and maximum values for the spinner.
*
* @param obj The spinner object.
* @param min The minimum value.
* @param max The maximum value.
*
* Define the allowed range of values to be selected by the user.
*
* If actual value is less than @p min, it will be updated to @p min. If it
* is bigger then @p max, will be updated to @p max. Actual value can be
* get with elm_spinner_value_get().
*
* By default, min is equal to 0, and max is equal to 100.
*
* @warning Maximum must be greater than minimum.
*
* @see elm_spinner_min_max_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_min_max_set(Evas_Object *obj, double min, double max);
/**
* Get the minimum and maximum values of the spinner.
*
* @param obj The spinner object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @see elm_spinner_min_max_set() for details.
*
* @ingroup Spinner
*/
EAPI void elm_spinner_min_max_get(const Evas_Object *obj, double *min, double *max);
/**
* Set the step used to increment or decrement the spinner value.
*
* @param obj The spinner object.
* @param step The step value.
*
* This value will be incremented or decremented to the displayed value.
* It will be incremented while the user keep right or top arrow pressed,
* and will be decremented while the user keep left or bottom arrow pressed.
*
* The interval to increment / decrement can be set with
* elm_spinner_interval_set().
*
* By default step value is equal to 1.
*
* @see elm_spinner_step_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_step_set(Evas_Object *obj, double step);
/**
* Get the step used to increment or decrement the spinner value.
*
* @param obj The spinner object.
* @return The step value.
*
* @see elm_spinner_step_get() for more details.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_step_get(const Evas_Object *obj);
/**
* Set the value the spinner displays.
*
* @param obj The spinner object.
* @param val The value to be displayed.
*
* Value will be presented on the label following format specified with
* elm_spinner_format_set().
*
* @warning The value must to be between min and max values. This values
* are set by elm_spinner_min_max_set().
*
* @see elm_spinner_value_get().
* @see elm_spinner_format_set().
* @see elm_spinner_min_max_set().
*
* @ingroup Spinner
*/
EAPI void elm_spinner_value_set(Evas_Object *obj, double val);
/**
* Get the value displayed by the spinner.
*
* @param obj The spinner object.
* @return The value displayed.
*
* @see elm_spinner_value_set() for details.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_value_get(const Evas_Object *obj);
/**
* Set whether the spinner should wrap when it reaches its
* minimum or maximum value.
*
* @param obj The spinner object.
* @param wrap @c EINA_TRUE to enable wrap or @c EINA_FALSE to
* disable it.
*
* Disabled by default. If disabled, when the user tries to increment the
* value,
* but displayed value plus step value is bigger than maximum value,
* the new value will be the maximum value.
* The same happens when the user tries to decrement it,
* but the value less step is less than minimum value. In this case,
* the new displayed value will be the minimum value.
*
* When wrap is enabled, when the user tries to increment the value,
* but displayed value plus step value is bigger than maximum value,
* the new value will be the minimum value. When the the user tries to
* decrement it, but the value less step is less than minimum value,
* the new displayed value will be the maximum value.
*
* E.g.:
* @li min value = 10
* @li max value = 50
* @li step value = 20
* @li displayed value = 20
*
* When the user decrement value (using left or bottom arrow), it will
* displays @c 50.
*
* @see elm_spinner_wrap_get().
*
* @ingroup Spinner
*/
EAPI void elm_spinner_wrap_set(Evas_Object *obj, Eina_Bool wrap);
/**
* Get whether the spinner should wrap when it reaches its
* minimum or maximum value.
*
* @param obj The spinner object
* @return @c EINA_TRUE means wrap is enabled. @c EINA_FALSE indicates
* it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
*
* @see elm_spinner_wrap_set() for details.
*
* @ingroup Spinner
*/
EAPI Eina_Bool elm_spinner_wrap_get(const Evas_Object *obj);
/**
* Set whether the spinner can be directly edited by the user or not.
*
* @param obj The spinner object.
* @param editable @c EINA_TRUE to allow users to edit it or @c EINA_FALSE to
* don't allow users to edit it directly.
*
* Spinner objects can have edition @b disabled, in which state they will
* be changed only by arrows.
* Useful for contexts
* where you don't want your users to interact with it writing the value.
* Specially
* when using special values, the user can see real value instead
* of special label on edition.
*
* It's enabled by default.
*
* @see elm_spinner_editable_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_editable_set(Evas_Object *obj, Eina_Bool editable);
/**
* Get whether the spinner can be directly edited by the user or not.
*
* @param obj The spinner object.
* @return @c EINA_TRUE means edition is enabled. @c EINA_FALSE indicates
* it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
*
* @see elm_spinner_editable_set() for details.
*
* @ingroup Spinner
*/
EAPI Eina_Bool elm_spinner_editable_get(const Evas_Object *obj);
/**
* Set a special string to display in the place of the numerical value.
*
* @param obj The spinner object.
* @param value The value to be replaced.
* @param label The label to be used.
*
* It's useful for cases when a user should select an item that is
* better indicated by a label than a value. For example, weekdays or months.
*
* E.g.:
* @code
* sp = elm_spinner_add(win);
* elm_spinner_min_max_set(sp, 1, 3);
* elm_spinner_special_value_add(sp, 1, "January");
* elm_spinner_special_value_add(sp, 2, "February");
* elm_spinner_special_value_add(sp, 3, "March");
* evas_object_show(sp);
* @endcode
*
* @note If another label was previously set to @p value, it will be replaced
* by the new label.
*
* @see elm_spinner_special_value_get().
* @see elm_spinner_special_value_del().
*
* @ingroup Spinner
*/
EAPI void elm_spinner_special_value_add(Evas_Object *obj, double value, const char *label);
/**
* Delete the special string display in the place of the numerical value.
*
* @param obj The spinner object.
* @param value The replaced value.
*
* It will remove a previously added special value. After this, the spinner
* will display the value itself instead of a label.
*
* @see elm_spinner_special_value_add() for more details.
*
* @ingroup Spinner
* @since 1.8
*/
EAPI void elm_spinner_special_value_del(Evas_Object *obj, double value);
/**
* Get the special string display in the place of the numerical value.
*
* @param obj The spinner object.
* @param value The replaced value.
* @return The used label.
*
* @see elm_spinner_special_value_add() for more details.
*
* @ingroup Spinner
* @since 1.8
*/
EAPI const char *elm_spinner_special_value_get(Evas_Object *obj, double value);
/**
* Set the interval on time updates for an user mouse button hold
* on spinner widgets' arrows.
*
* @param obj The spinner object.
* @param interval The (first) interval value in seconds.
*
* This interval value is @b decreased while the user holds the
* mouse pointer either incrementing or decrementing spinner's value.
*
* This helps the user to get to a given value distant from the
* current one easier/faster, as it will start to change quicker and
* quicker on mouse button holds.
*
* The calculation for the next change interval value, starting from
* the one set with this call, is the previous interval divided by
* @c 1.05, so it decreases a little bit.
*
* The default starting interval value for automatic changes is
* @c 0.85 seconds.
*
* @see elm_spinner_interval_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_interval_set(Evas_Object *obj, double interval);
/**
* Get the interval on time updates for an user mouse button hold
* on spinner widgets' arrows.
*
* @param obj The spinner object.
* @return The (first) interval value, in seconds, set on it.
*
* @see elm_spinner_interval_set() for more details.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_interval_get(const Evas_Object *obj);
/**
* Set the base for rounding
*
* @param obj The spinner object
* @param base The base value
*
* Rounding works as follows:
*
* rounded_val = base + (double)(((value - base) / round) * round)
*
* Where rounded_val, value and base are doubles, and round is an integer.
*
* This means that things will be rounded to increments (or decrements) of
* "round" starting from value @p base. The default base for rounding is 0.
*
* Example: round = 3, base = 2
* Values: 3, 6, 9, 12, 15, ...
*
* Example: round = 2, base = 5.5
* Values: 5.5, 7.5, 9.5, 11.5, ...
*
* @see elm_spinner_round_get()
* @see elm_spinner_base_get() too.
*
* @ingroup Spinner
*/
EAPI void elm_spinner_base_set(Evas_Object *obj, double base);
/**
* Get the base for rounding
*
* @param obj The spinner object
* @return The base rounding value
*
* This returns the base for rounding.
*
* @see elm_spinner_round_set() too.
* @see elm_spinner_base_set() too.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_base_get(const Evas_Object *obj);
/**
* Set the round value for rounding
*
* @param obj The spinner object
* @param rnd The rounding value
*
* Sets the rounding value used for value rounding in the spinner.
*
* @see elm_spinner_round_get()
* @see elm_spinner_base_set()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_round_set(Evas_Object *obj, int rnd);
/**
* Get the round value for rounding
*
* @param obj The spinner object
* @return The rounding value
*
* This returns the round value for rounding.
*
* @see elm_spinner_round_set() too.
* @see elm_spinner_base_set() too.
*
* @ingroup Spinner
*/
EAPI int elm_spinner_round_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include "elm_spinner_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_spinner_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,301 @@
#define ELM_OBJ_SPINNER_CLASS elm_obj_spinner_class_get()
const Eo_Class *elm_obj_spinner_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SPINNER_BASE_ID;
enum
{
ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_SET,
ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_GET,
ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_SET,
ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_GET,
ELM_OBJ_SPINNER_SUB_ID_STEP_SET,
ELM_OBJ_SPINNER_SUB_ID_STEP_GET,
ELM_OBJ_SPINNER_SUB_ID_VALUE_SET,
ELM_OBJ_SPINNER_SUB_ID_VALUE_GET,
ELM_OBJ_SPINNER_SUB_ID_WRAP_SET,
ELM_OBJ_SPINNER_SUB_ID_WRAP_GET,
ELM_OBJ_SPINNER_SUB_ID_SPECIAL_VALUE_ADD,
ELM_OBJ_SPINNER_SUB_ID_EDITABLE_SET,
ELM_OBJ_SPINNER_SUB_ID_EDITABLE_GET,
ELM_OBJ_SPINNER_SUB_ID_INTERVAL_SET,
ELM_OBJ_SPINNER_SUB_ID_INTERVAL_GET,
ELM_OBJ_SPINNER_SUB_ID_BASE_SET,
ELM_OBJ_SPINNER_SUB_ID_BASE_GET,
ELM_OBJ_SPINNER_SUB_ID_ROUND_SET,
ELM_OBJ_SPINNER_SUB_ID_ROUND_GET,
ELM_OBJ_SPINNER_SUB_ID_LAST
};
#define ELM_OBJ_SPINNER_ID(sub_id) (ELM_OBJ_SPINNER_BASE_ID + sub_id)
/**
* @def elm_obj_spinner_label_format_set
* @since 1.8
*
* Set the format string of the displayed label.
*
* @param[in] fmt
*
* @see elm_spinner_label_format_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_label_format_set(fmt) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_SET), EO_TYPECHECK(const char *, fmt)
/**
* @def elm_obj_spinner_label_format_get
* @since 1.8
*
* Get the label format of the spinner.
*
* @param[out] ret
*
* @see elm_spinner_label_format_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_label_format_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_LABEL_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_spinner_min_max_set
* @since 1.8
*
* Set the minimum and maximum values for the spinner.
*
* @param[in] min
* @param[in] max
*
* @see elm_spinner_min_max_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_min_max_set(min, max) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_SET), EO_TYPECHECK(double, min), EO_TYPECHECK(double, max)
/**
* @def elm_obj_spinner_min_max_get
* @since 1.8
*
* Get the minimum and maximum values of the spinner.
*
* @param[out] min
* @param[out] max
*
* @see elm_spinner_min_max_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_min_max_get(min, max) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max)
/**
* @def elm_obj_spinner_step_set
* @since 1.8
*
* Set the step used to increment or decrement the spinner value.
*
* @param[in] step
*
* @see elm_spinner_step_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_step_set(step) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_STEP_SET), EO_TYPECHECK(double, step)
/**
* @def elm_obj_spinner_step_get
* @since 1.8
*
* Get the step used to increment or decrement the spinner value.
*
* @param[out] ret
*
* @see elm_spinner_step_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_step_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_STEP_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_value_set
* @since 1.8
*
* Set the value the spinner displays.
*
* @param[in] val
*
* @see elm_spinner_value_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_value_set(val) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_VALUE_SET), EO_TYPECHECK(double, val)
/**
* @def elm_obj_spinner_value_get
* @since 1.8
*
* Get the value displayed by the spinner.
*
* @param[out] ret
*
* @see elm_spinner_value_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_value_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_VALUE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_wrap_set
* @since 1.8
*
* Set whether the spinner should wrap when it reaches its
*
* @param[in] wrap
*
* @see elm_spinner_wrap_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_wrap_set(wrap) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_WRAP_SET), EO_TYPECHECK(Eina_Bool, wrap)
/**
* @def elm_obj_spinner_wrap_get
* @since 1.8
*
* Get whether the spinner should wrap when it reaches its
*
* @param[out] ret
*
* @see elm_spinner_wrap_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_wrap_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_WRAP_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_spinner_special_value_add
* @since 1.8
*
* Set a special string to display in the place of the numerical value.
*
* @param[in] value
* @param[in] label
*
* @see elm_spinner_special_value_add
*
* @ingroup Spinner
*/
#define elm_obj_spinner_special_value_add(value, label) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_SPECIAL_VALUE_ADD), EO_TYPECHECK(double, value), EO_TYPECHECK(const char *, label)
/**
* @def elm_obj_spinner_editable_set
* @since 1.8
*
* Set whether the spinner can be directly edited by the user or not.
*
* @param[in] editable
*
* @see elm_spinner_editable_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_editable_set(editable) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, editable)
/**
* @def elm_obj_spinner_editable_get
* @since 1.8
*
* Get whether the spinner can be directly edited by the user or not.
*
* @param[out] ret
*
* @see elm_spinner_editable_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_editable_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_spinner_interval_set
* @since 1.8
*
* Set the interval on time updates for an user mouse button hold
*
* @param[in] interval
*
* @see elm_spinner_interval_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_interval_set(interval) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_INTERVAL_SET), EO_TYPECHECK(double, interval)
/**
* @def elm_obj_spinner_interval_get
* @since 1.8
*
* Get the interval on time updates for an user mouse button hold
*
* @param[out] ret
*
* @see elm_spinner_interval_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_interval_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_INTERVAL_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_base_set
* @since 1.8
*
* Set the base for rounding
*
* @param[in] base
*
* @see elm_spinner_base_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_base_set(base) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_BASE_SET), EO_TYPECHECK(double, base)
/**
* @def elm_obj_spinner_base_get
* @since 1.8
*
* Get the base for rounding
*
* @param[out] ret
*
* @see elm_spinner_base_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_base_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_BASE_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_spinner_round_set
* @since 1.8
*
* Set the round value for rounding
*
* @param[in] rnd
*
* @see elm_spinner_round_set
*
* @ingroup Spinner
*/
#define elm_obj_spinner_round_set(rnd) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_ROUND_SET), EO_TYPECHECK(int, rnd)
/**
* @def elm_obj_spinner_round_get
* @since 1.8
*
* Get the round value for rounding
*
* @param[out] ret
*
* @see elm_spinner_round_get
*
* @ingroup Spinner
*/
#define elm_obj_spinner_round_get(ret) ELM_OBJ_SPINNER_ID(ELM_OBJ_SPINNER_SUB_ID_ROUND_GET), EO_TYPECHECK(int *, ret)

View File

@ -0,0 +1,411 @@
/**
* Add a new spinner widget to the given parent Elementary
* (container) object.
*
* @param parent The parent object.
* @return a new spinner widget handle or @c NULL, on errors.
*
* This function inserts a new spinner widget on the canvas.
*
* @ingroup Spinner
*
*/
EAPI Evas_Object *elm_spinner_add(Evas_Object *parent);
/**
* Delete the special string display in the place of the numerical value.
*
* @param obj The spinner object.
* @param value The replaced value.
*
* It will remove a previously added special value. After this, the spinner
* will display the value itself instead of a label.
*
* @see elm_spinner_special_value_add() for more details.
*
* @ingroup Spinner
* @since 1.8
*/
EAPI void elm_spinner_special_value_del(Evas_Object *obj, double value);
/**
* Get the special string display in the place of the numerical value.
*
* @param obj The spinner object.
* @param value The replaced value.
* @return The used label.
*
* @see elm_spinner_special_value_add() for more details.
*
* @ingroup Spinner
* @since 1.8
*/
EAPI const char *elm_spinner_special_value_get(Evas_Object *obj, double value);
/**
* Set the format string of the displayed label.
*
* @param obj The spinner object.
* @param fmt The format string for the label display.
*
* If @c NULL, this sets the format to "%.0f". If not it sets the format
* string for the label text. The label text is provided a floating point
* value, so the label text can display up to 1 floating point value.
* Note that this is optional.
*
* Use a format string such as "%1.2f meters" for example, and it will
* display values like: "3.14 meters" for a value equal to 3.14159.
*
* Default is "%0.f".
*
* @see elm_spinner_label_format_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_label_format_set(Evas_Object *obj, const char *fmt);
/**
* Get the label format of the spinner.
*
* @param obj The spinner object.
* @return The text label format string in UTF-8.
*
* @see elm_spinner_label_format_set() for details.
*
* @ingroup Spinner
*/
EAPI const char *elm_spinner_label_format_get(const Evas_Object *obj);
/**
* Set the minimum and maximum values for the spinner.
*
* @param obj The spinner object.
* @param min The minimum value.
* @param max The maximum value.
*
* Define the allowed range of values to be selected by the user.
*
* If actual value is less than @p min, it will be updated to @p min. If it
* is bigger then @p max, will be updated to @p max. Actual value can be
* get with elm_spinner_value_get().
*
* By default, min is equal to 0, and max is equal to 100.
*
* @warning Maximum must be greater than minimum.
*
* @see elm_spinner_min_max_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_min_max_set(Evas_Object *obj, double min, double max);
/**
* Get the minimum and maximum values of the spinner.
*
* @param obj The spinner object.
* @param min Pointer to store the minimum value.
* @param max Pointer to store the maximum value.
*
* @note If only one value is needed, the other pointer can be passed
* as @c NULL.
*
* @see elm_spinner_min_max_set() for details.
*
* @ingroup Spinner
*/
EAPI void elm_spinner_min_max_get(const Evas_Object *obj, double *min, double *max);
/**
* Set the step used to increment or decrement the spinner value.
*
* @param obj The spinner object.
* @param step The step value.
*
* This value will be incremented or decremented to the displayed value.
* It will be incremented while the user keep right or top arrow pressed,
* and will be decremented while the user keep left or bottom arrow pressed.
*
* The interval to increment / decrement can be set with
* elm_spinner_interval_set().
*
* By default step value is equal to 1.
*
* @see elm_spinner_step_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_step_set(Evas_Object *obj, double step);
/**
* Get the step used to increment or decrement the spinner value.
*
* @param obj The spinner object.
* @return The step value.
*
* @see elm_spinner_step_get() for more details.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_step_get(const Evas_Object *obj);
/**
* Set the value the spinner displays.
*
* @param obj The spinner object.
* @param val The value to be displayed.
*
* Value will be presented on the label following format specified with
* elm_spinner_format_set().
*
* @warning The value must to be between min and max values. This values
* are set by elm_spinner_min_max_set().
*
* @see elm_spinner_value_get().
* @see elm_spinner_format_set().
* @see elm_spinner_min_max_set().
*
* @ingroup Spinner
*/
EAPI void elm_spinner_value_set(Evas_Object *obj, double val);
/**
* Get the value displayed by the spinner.
*
* @param obj The spinner object.
* @return The value displayed.
*
* @see elm_spinner_value_set() for details.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_value_get(const Evas_Object *obj);
/**
* Set whether the spinner should wrap when it reaches its
* minimum or maximum value.
*
* @param obj The spinner object.
* @param wrap @c EINA_TRUE to enable wrap or @c EINA_FALSE to
* disable it.
*
* Disabled by default. If disabled, when the user tries to increment the
* value,
* but displayed value plus step value is bigger than maximum value,
* the new value will be the maximum value.
* The same happens when the user tries to decrement it,
* but the value less step is less than minimum value. In this case,
* the new displayed value will be the minimum value.
*
* When wrap is enabled, when the user tries to increment the value,
* but displayed value plus step value is bigger than maximum value,
* the new value will be the minimum value. When the the user tries to
* decrement it, but the value less step is less than minimum value,
* the new displayed value will be the maximum value.
*
* E.g.:
* @li min value = 10
* @li max value = 50
* @li step value = 20
* @li displayed value = 20
*
* When the user decrement value (using left or bottom arrow), it will
* displays @c 50.
*
* @see elm_spinner_wrap_get().
*
* @ingroup Spinner
*/
EAPI void elm_spinner_wrap_set(Evas_Object *obj, Eina_Bool wrap);
/**
* Get whether the spinner should wrap when it reaches its
* minimum or maximum value.
*
* @param obj The spinner object
* @return @c EINA_TRUE means wrap is enabled. @c EINA_FALSE indicates
* it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
*
* @see elm_spinner_wrap_set() for details.
*
* @ingroup Spinner
*/
EAPI Eina_Bool elm_spinner_wrap_get(const Evas_Object *obj);
/**
* Set a special string to display in the place of the numerical value.
*
* @param obj The spinner object.
* @param value The value to be replaced.
* @param label The label to be used.
*
* It's useful for cases when a user should select an item that is
* better indicated by a label than a value. For example, weekdays or months.
*
* E.g.:
* @code
* sp = elm_spinner_add(win);
* elm_spinner_min_max_set(sp, 1, 3);
* elm_spinner_special_value_add(sp, 1, "January");
* elm_spinner_special_value_add(sp, 2, "February");
* elm_spinner_special_value_add(sp, 3, "March");
* evas_object_show(sp);
* @endcode
*
* @note If another label was previously set to @p value, it will be replaced
* by the new label.
*
* @see elm_spinner_special_value_get().
* @see elm_spinner_special_value_del().
*
* @ingroup Spinner
*/
EAPI void elm_spinner_special_value_add(Evas_Object *obj, double value, const char *label);
/**
* Set whether the spinner can be directly edited by the user or not.
*
* @param obj The spinner object.
* @param editable @c EINA_TRUE to allow users to edit it or @c EINA_FALSE to
* don't allow users to edit it directly.
*
* Spinner objects can have edition @b disabled, in which state they will
* be changed only by arrows.
* Useful for contexts
* where you don't want your users to interact with it writing the value.
* Specially
* when using special values, the user can see real value instead
* of special label on edition.
*
* It's enabled by default.
*
* @see elm_spinner_editable_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_editable_set(Evas_Object *obj, Eina_Bool editable);
/**
* Get whether the spinner can be directly edited by the user or not.
*
* @param obj The spinner object.
* @return @c EINA_TRUE means edition is enabled. @c EINA_FALSE indicates
* it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
*
* @see elm_spinner_editable_set() for details.
*
* @ingroup Spinner
*/
EAPI Eina_Bool elm_spinner_editable_get(const Evas_Object *obj);
/**
* Set the interval on time updates for an user mouse button hold
* on spinner widgets' arrows.
*
* @param obj The spinner object.
* @param interval The (first) interval value in seconds.
*
* This interval value is @b decreased while the user holds the
* mouse pointer either incrementing or decrementing spinner's value.
*
* This helps the user to get to a given value distant from the
* current one easier/faster, as it will start to change quicker and
* quicker on mouse button holds.
*
* The calculation for the next change interval value, starting from
* the one set with this call, is the previous interval divided by
* @c 1.05, so it decreases a little bit.
*
* The default starting interval value for automatic changes is
* @c 0.85 seconds.
*
* @see elm_spinner_interval_get()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_interval_set(Evas_Object *obj, double interval);
/**
* Get the interval on time updates for an user mouse button hold
* on spinner widgets' arrows.
*
* @param obj The spinner object.
* @return The (first) interval value, in seconds, set on it.
*
* @see elm_spinner_interval_set() for more details.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_interval_get(const Evas_Object *obj);
/**
* Set the base for rounding
*
* @param obj The spinner object
* @param base The base value
*
* Rounding works as follows:
*
* rounded_val = base + (double)(((value - base) / round) * round)
*
* Where rounded_val, value and base are doubles, and round is an integer.
*
* This means that things will be rounded to increments (or decrements) of
* "round" starting from value @p base. The default base for rounding is 0.
*
* Example: round = 3, base = 2
* Values: 3, 6, 9, 12, 15, ...
*
* Example: round = 2, base = 5.5
* Values: 5.5, 7.5, 9.5, 11.5, ...
*
* @see elm_spinner_round_get()
* @see elm_spinner_base_get() too.
*
* @ingroup Spinner
*/
EAPI void elm_spinner_base_set(Evas_Object *obj, double base);
/**
* Get the base for rounding
*
* @param obj The spinner object
* @return The base rounding value
*
* This returns the base for rounding.
*
* @see elm_spinner_round_set() too.
* @see elm_spinner_base_set() too.
*
* @ingroup Spinner
*/
EAPI double elm_spinner_base_get(const Evas_Object *obj);
/**
* Set the round value for rounding
*
* @param obj The spinner object
* @param rnd The rounding value
*
* Sets the rounding value used for value rounding in the spinner.
*
* @see elm_spinner_round_get()
* @see elm_spinner_base_set()
*
* @ingroup Spinner
*/
EAPI void elm_spinner_round_set(Evas_Object *obj, int rnd);
/**
* Get the round value for rounding
*
* @param obj The spinner object
* @return The rounding value
*
* This returns the round value for rounding.
*
* @see elm_spinner_round_set() too.
* @see elm_spinner_base_set() too.
*
* @ingroup Spinner
*/
EAPI int elm_spinner_round_get(const Evas_Object *obj);

View File

@ -1,324 +1,4 @@
#ifndef ELM_SYSTRAY_H
#define ELM_SYSTRAY_H
#include "Eo.h"
#define ELM_OBJ_SYSTRAY_CLASS elm_obj_systray_class_get()
const Eo_Class *elm_obj_systray_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SYSTRAY_BASE_ID;
enum
{
ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_SET,
ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_GET,
ELM_OBJ_SYSTRAY_SUB_ID_STATUS_SET,
ELM_OBJ_SYSTRAY_SUB_ID_STATUS_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ID_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ID_GET,
ELM_OBJ_SYSTRAY_SUB_ID_TITLE_SET,
ELM_OBJ_SYSTRAY_SUB_ID_TITLE_GET,
ELM_OBJ_SYSTRAY_SUB_ID_MENU_SET,
ELM_OBJ_SYSTRAY_SUB_ID_MENU_GET,
ELM_OBJ_SYSTRAY_SUB_ID_REGISTER,
ELM_OBJ_SYSTRAY_SUB_ID_LAST
};
#define ELM_OBJ_SYSTRAY_ID(sub_id) (ELM_OBJ_SYSTRAY_BASE_ID + sub_id)
/**
* @def elm_obj_systray_category_set
*
* Set the category of the Status Notifier Item.
*
* @param[in] cat Category
*
* @see Elm_Systray_Category
*
* @since 1.8
*/
#define elm_obj_systray_category_set(cat) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_SET), \
EO_TYPECHECK(Elm_Systray_Category, cat)
/**
* @def elm_obj_systray_category_get
*
* Retrieve the category of the Status Notifier Item.
*
* @param[out] ret Category
*
* @see elm_obj_systray_category_set
*
* @since 1.8
*/
#define elm_obj_systray_category_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_GET), \
EO_TYPECHECK(Elm_Systray_Category *, ret)
/**
* @def elm_obj_systray_status_set
*
* Set the status of the Status Notifier Item.
*
* @param[in] st Status
*
* @see Elm_Systray_Status
*
* @since 1.8
*/
#define elm_obj_systray_status_set(st) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_STATUS_SET), \
EO_TYPECHECK(Elm_Systray_Status, st)
/**
* @def elm_obj_systray_status_get
*
* Retrieve the status of the Status Notifier Item.
*
* @param[out] ret Status
*
* @see elm_obj_systray_status_set
*
* @since 1.8
*/
#define elm_obj_systray_status_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_STATUS_GET), \
EO_TYPECHECK(Elm_Systray_Status *, ret)
/**
* @def elm_obj_systray_att_icon_name_set
*
* Set the name of the attention icon to be used by the Status Notifier Item.
*
* @param[in] att_icon_name
*
* @see elm_obj_systray_att_icon_name_get
*
* @since 1.8
*/
#define elm_obj_systray_att_icon_name_set(att_icon_name) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_SET), \
EO_TYPECHECK(const char *, att_icon_name)
/**
* @def elm_obj_systray_att_icon_name_get
*
* Retrieve the name of the attention icon used by the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_att_icon_name_set
*
* @since 1.8
*/
#define elm_obj_systray_att_icon_name_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_icon_name_set
*
* Set the name of the icon to be used by the Status Notifier Item.
*
* @param[in] icon_name
*
* @see elm_obj_systray_icon_name_get
*
* @since 1.8
*/
#define elm_obj_systray_icon_name_set(icon_name) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_SET), \
EO_TYPECHECK(const char *, icon_name)
/**
* @def elm_obj_systray_icon_name_get
*
* Retrieve the name of the icon used by the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_icon_name_set
*
* @since 1.8
*/
#define elm_obj_systray_icon_name_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_icon_theme_path_set
*
* Set the path to the theme where the icons can be found.
* Set this value to "" to use the default path.
*
* @param[in] icon_theme_path
*
* @see elm_obj_systray_icon_theme_path_get
*
* @since 1.8
*/
#define elm_obj_systray_icon_theme_path_set(icon_theme_path) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_SET), \
EO_TYPECHECK(const char *, icon_theme_path)
/**
* @def elm_obj_systray_icon_theme_path_get
*
* Retrieve the path to the icon's theme currently in use.
*
* @param[out] ret
*
* @see elm_obj_systray_icon_theme_path_set
*
* @since 1.8
*/
#define elm_obj_systray_icon_theme_path_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_id_set
*
* Set the id of the Status Notifier Item.
*
* @param[in] id
*
* @see elm_obj_systray_id_get
*
* @since 1.8
*/
#define elm_obj_systray_id_set(id) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ID_SET), \
EO_TYPECHECK(const char *, id)
/**
* @def elm_obj_systray_id_get
*
* Retrieve the id of the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_id_set
*
* @since 1.8
*/
#define elm_obj_systray_id_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ID_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_title_set
*
* Set the title of the Status Notifier Item.
*
* @param[in] title
*
* @see elm_obj_systray_title_get
*
* @since 1.8
*/
#define elm_obj_systray_title_set(title) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_TITLE_SET), \
EO_TYPECHECK(const char *, title)
/**
* @def elm_obj_systray_title_get
*
* Retrieve the title of the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_title_set
*
* @since 1.8
*/
#define elm_obj_systray_title_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_TITLE_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_menu_set
*
* Set the object path of the D-Bus Menu that is to be show when the
* Status Notifier Item is activated by the user.
*
* @param[in] menu
*
* @see elm_obj_systray_menu_get
*
* @since 1.8
*/
#define elm_obj_systray_menu_set(menu) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_MENU_SET), \
EO_TYPECHECK(const Eo *, menu)
/**
* @def elm_obj_systray_menu_get
*
* Retrieve the object path of the D-Bus Menu currently in use.
*
* @param[out] ret
*
* @see elm_obj_systray_menu_set
*
* @since 1.8
*/
#define elm_obj_systray_menu_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_MENU_GET), \
EO_TYPECHECK(const Eo **, ret)
/**
* @def elm_obj_systray_register
*
* Register this Status Notifier Item in the System Tray Watcher.
* This function should only be called after the event
* ELM_EVENT_SYSTRAY_READY is emitted.
*
* @param[out] ret
*
* @since 1.8
*/
#define elm_obj_systray_register(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_REGISTER), \
EO_TYPECHECK(Eina_Bool *, ret)
/**
* Emitted when the systray is ready to be used by the application.
*/
EAPI extern int ELM_EVENT_SYSTRAY_READY;
/**
* Category of the Status Notifier Item.
*
* @since 1.8
*/
typedef enum _Elm_Systray_Category
{
ELM_SYSTRAY_CATEGORY_APP_STATUS, /**< Indicators of application status */
ELM_SYSTRAY_CATEGORY_COMMUNICATIONS, /**< Communications apps */
ELM_SYSTRAY_CATEGORY_SYS_SERVICES, /**< System Service apps */
ELM_SYSTRAY_CATEGORY_HARDWARE, /**< Hardware indicators */
ELM_SYSTRAY_CATEGORY_OTHER /**< Undefined category */
} Elm_Systray_Category;
/**
* Application status information.
*
* @since 1.8
*/
typedef enum _Elm_Systray_Status
{
ELM_SYSTRAY_STATUS_PASSIVE, /**< Passive (normal) */
ELM_SYSTRAY_STATUS_ACTIVE, /**< Active */
ELM_SYSTRAY_STATUS_ATTENTION /**< Needs Attention */
} Elm_Systray_Status;
#include "elm_systray_common.h"
#ifdef EFL_EO_API_SUPPORT
#include "elm_systray_eo.h"
#endif

View File

@ -0,0 +1,31 @@
/**
* Emitted when the systray is ready to be used by the application.
*/
EAPI extern int ELM_EVENT_SYSTRAY_READY;
/**
* Category of the Status Notifier Item.
*
* @since 1.8
*/
typedef enum _Elm_Systray_Category
{
ELM_SYSTRAY_CATEGORY_APP_STATUS, /**< Indicators of application status */
ELM_SYSTRAY_CATEGORY_COMMUNICATIONS, /**< Communications apps */
ELM_SYSTRAY_CATEGORY_SYS_SERVICES, /**< System Service apps */
ELM_SYSTRAY_CATEGORY_HARDWARE, /**< Hardware indicators */
ELM_SYSTRAY_CATEGORY_OTHER /**< Undefined category */
} Elm_Systray_Category;
/**
* Application status information.
*
* @since 1.8
*/
typedef enum _Elm_Systray_Status
{
ELM_SYSTRAY_STATUS_PASSIVE, /**< Passive (normal) */
ELM_SYSTRAY_STATUS_ACTIVE, /**< Active */
ELM_SYSTRAY_STATUS_ATTENTION /**< Needs Attention */
} Elm_Systray_Status;

View File

@ -0,0 +1,286 @@
#define ELM_OBJ_SYSTRAY_CLASS elm_obj_systray_class_get()
const Eo_Class *elm_obj_systray_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_SYSTRAY_BASE_ID;
enum
{
ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_SET,
ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_GET,
ELM_OBJ_SYSTRAY_SUB_ID_STATUS_SET,
ELM_OBJ_SYSTRAY_SUB_ID_STATUS_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_GET,
ELM_OBJ_SYSTRAY_SUB_ID_ID_SET,
ELM_OBJ_SYSTRAY_SUB_ID_ID_GET,
ELM_OBJ_SYSTRAY_SUB_ID_TITLE_SET,
ELM_OBJ_SYSTRAY_SUB_ID_TITLE_GET,
ELM_OBJ_SYSTRAY_SUB_ID_MENU_SET,
ELM_OBJ_SYSTRAY_SUB_ID_MENU_GET,
ELM_OBJ_SYSTRAY_SUB_ID_REGISTER,
ELM_OBJ_SYSTRAY_SUB_ID_LAST
};
#define ELM_OBJ_SYSTRAY_ID(sub_id) (ELM_OBJ_SYSTRAY_BASE_ID + sub_id)
/**
* @def elm_obj_systray_category_set
*
* Set the category of the Status Notifier Item.
*
* @param[in] cat Category
*
* @see Elm_Systray_Category
*
* @since 1.8
*/
#define elm_obj_systray_category_set(cat) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_SET), \
EO_TYPECHECK(Elm_Systray_Category, cat)
/**
* @def elm_obj_systray_category_get
*
* Retrieve the category of the Status Notifier Item.
*
* @param[out] ret Category
*
* @see elm_obj_systray_category_set
*
* @since 1.8
*/
#define elm_obj_systray_category_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_CATEGORY_GET), \
EO_TYPECHECK(Elm_Systray_Category *, ret)
/**
* @def elm_obj_systray_status_set
*
* Set the status of the Status Notifier Item.
*
* @param[in] st Status
*
* @see Elm_Systray_Status
*
* @since 1.8
*/
#define elm_obj_systray_status_set(st) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_STATUS_SET), \
EO_TYPECHECK(Elm_Systray_Status, st)
/**
* @def elm_obj_systray_status_get
*
* Retrieve the status of the Status Notifier Item.
*
* @param[out] ret Status
*
* @see elm_obj_systray_status_set
*
* @since 1.8
*/
#define elm_obj_systray_status_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_STATUS_GET), \
EO_TYPECHECK(Elm_Systray_Status *, ret)
/**
* @def elm_obj_systray_att_icon_name_set
*
* Set the name of the attention icon to be used by the Status Notifier Item.
*
* @param[in] att_icon_name
*
* @see elm_obj_systray_att_icon_name_get
*
* @since 1.8
*/
#define elm_obj_systray_att_icon_name_set(att_icon_name) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_SET), \
EO_TYPECHECK(const char *, att_icon_name)
/**
* @def elm_obj_systray_att_icon_name_get
*
* Retrieve the name of the attention icon used by the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_att_icon_name_set
*
* @since 1.8
*/
#define elm_obj_systray_att_icon_name_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ATT_ICON_NAME_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_icon_name_set
*
* Set the name of the icon to be used by the Status Notifier Item.
*
* @param[in] icon_name
*
* @see elm_obj_systray_icon_name_get
*
* @since 1.8
*/
#define elm_obj_systray_icon_name_set(icon_name) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_SET), \
EO_TYPECHECK(const char *, icon_name)
/**
* @def elm_obj_systray_icon_name_get
*
* Retrieve the name of the icon used by the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_icon_name_set
*
* @since 1.8
*/
#define elm_obj_systray_icon_name_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_NAME_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_icon_theme_path_set
*
* Set the path to the theme where the icons can be found.
* Set this value to "" to use the default path.
*
* @param[in] icon_theme_path
*
* @see elm_obj_systray_icon_theme_path_get
*
* @since 1.8
*/
#define elm_obj_systray_icon_theme_path_set(icon_theme_path) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_SET), \
EO_TYPECHECK(const char *, icon_theme_path)
/**
* @def elm_obj_systray_icon_theme_path_get
*
* Retrieve the path to the icon's theme currently in use.
*
* @param[out] ret
*
* @see elm_obj_systray_icon_theme_path_set
*
* @since 1.8
*/
#define elm_obj_systray_icon_theme_path_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ICON_THEME_PATH_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_id_set
*
* Set the id of the Status Notifier Item.
*
* @param[in] id
*
* @see elm_obj_systray_id_get
*
* @since 1.8
*/
#define elm_obj_systray_id_set(id) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ID_SET), \
EO_TYPECHECK(const char *, id)
/**
* @def elm_obj_systray_id_get
*
* Retrieve the id of the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_id_set
*
* @since 1.8
*/
#define elm_obj_systray_id_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_ID_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_title_set
*
* Set the title of the Status Notifier Item.
*
* @param[in] title
*
* @see elm_obj_systray_title_get
*
* @since 1.8
*/
#define elm_obj_systray_title_set(title) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_TITLE_SET), \
EO_TYPECHECK(const char *, title)
/**
* @def elm_obj_systray_title_get
*
* Retrieve the title of the Status Notifier Item.
*
* @param[out] ret
*
* @see elm_obj_systray_title_set
*
* @since 1.8
*/
#define elm_obj_systray_title_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_TITLE_GET), \
EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_systray_menu_set
*
* Set the object path of the D-Bus Menu that is to be show when the
* Status Notifier Item is activated by the user.
*
* @param[in] menu
*
* @see elm_obj_systray_menu_get
*
* @since 1.8
*/
#define elm_obj_systray_menu_set(menu) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_MENU_SET), \
EO_TYPECHECK(const Eo *, menu)
/**
* @def elm_obj_systray_menu_get
*
* Retrieve the object path of the D-Bus Menu currently in use.
*
* @param[out] ret
*
* @see elm_obj_systray_menu_set
*
* @since 1.8
*/
#define elm_obj_systray_menu_get(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_MENU_GET), \
EO_TYPECHECK(const Eo **, ret)
/**
* @def elm_obj_systray_register
*
* Register this Status Notifier Item in the System Tray Watcher.
* This function should only be called after the event
* ELM_EVENT_SYSTRAY_READY is emitted.
*
* @param[out] ret
*
* @since 1.8
*/
#define elm_obj_systray_register(ret) \
ELM_OBJ_SYSTRAY_ID(ELM_OBJ_SYSTRAY_SUB_ID_REGISTER), \
EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -29,280 +29,12 @@
* @{
*/
#define ELM_OBJ_TABLE_CLASS elm_obj_table_class_get()
const Eo_Class *elm_obj_table_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_TABLE_BASE_ID;
enum
{
ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET,
ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET,
ELM_OBJ_TABLE_SUB_ID_PADDING_SET,
ELM_OBJ_TABLE_SUB_ID_PADDING_GET,
ELM_OBJ_TABLE_SUB_ID_PACK,
ELM_OBJ_TABLE_SUB_ID_UNPACK,
ELM_OBJ_TABLE_SUB_ID_PACK_SET,
ELM_OBJ_TABLE_SUB_ID_PACK_GET,
ELM_OBJ_TABLE_SUB_ID_CLEAR,
ELM_OBJ_TABLE_SUB_ID_LAST
};
#define ELM_OBJ_TABLE_ID(sub_id) (ELM_OBJ_TABLE_BASE_ID + sub_id)
/**
* @def elm_obj_table_homogeneous_set
* @since 1.8
*
* @brief Set the homogeneous layout in the table
*
* @param[in] homogeneous
*
* @see elm_table_homogeneous_set
*/
#define elm_obj_table_homogeneous_set(homogeneous) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET), EO_TYPECHECK(Eina_Bool, homogeneous)
/**
* @def elm_obj_table_homogeneous_get
* @since 1.8
*
* @brief Get the current table homogeneous mode.
*
* @param[out] ret
*
* @see elm_table_homogeneous_get
*/
#define elm_obj_table_homogeneous_get(ret) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_table_padding_set
* @since 1.8
*
* @brief Set padding between cells.
*
* @param[in] horizontal
* @param[in] vertical
*
* @see elm_table_padding_set
*/
#define elm_obj_table_padding_set(horizontal, vertical) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PADDING_SET), EO_TYPECHECK(Evas_Coord, horizontal), EO_TYPECHECK(Evas_Coord, vertical)
/**
* @def elm_obj_table_padding_get
* @since 1.8
*
* @brief Get padding between cells.
*
* @param[out] horizontal
* @param[out] vertical
*
* @see elm_table_padding_get
*/
#define elm_obj_table_padding_get(horizontal, vertical) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PADDING_GET), EO_TYPECHECK(Evas_Coord *, horizontal), EO_TYPECHECK(Evas_Coord *, vertical)
/**
* @def elm_obj_table_pack
* @since 1.8
*
* @brief Add a subobject on the table with the coordinates passed
*
* @param[in] subobj
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_table_pack
*/
#define elm_obj_table_pack(subobj, x, y, w, h) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_table_unpack
* @since 1.8
*
* @brief Remove child from table.
*
* @param[in] subobj
*
* @see elm_table_unpack
*/
#define elm_obj_table_unpack(subobj) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_UNPACK), EO_TYPECHECK(Evas_Object *, subobj)
/**
* @def elm_obj_table_pack_set
* @since 1.8
*
* @brief Set the packing location of an existing child of the table
*
* @param[in] subobj
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_table_pack_set
*/
#define elm_obj_table_pack_set(subobj, x, y, w, h) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK_SET), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_table_pack_get
* @since 1.8
*
* @brief Get the packing location of an existing child of the table
*
* @param[in] subobj
* @param[out] x
* @param[out] y
* @param[out] w
* @param[out] h
*
* @see elm_table_pack_get
*/
#define elm_obj_table_pack_get(subobj, x, y, w, h) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK_GET), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(int *, x), EO_TYPECHECK(int *, y), EO_TYPECHECK(int *, w), EO_TYPECHECK(int *, h)
/**
* @def elm_obj_table_clear
* @since 1.8
*
* @brief Faster way to remove all child objects from a table object.
*
* @param[in] clear
*
* @see elm_table_clear
*/
#define elm_obj_table_clear(clear) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_CLEAR), EO_TYPECHECK(Eina_Bool, clear)
/**
* @brief Add a new table to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Table
*/
EAPI Evas_Object *elm_table_add(Evas_Object *parent);
/**
* @brief Set the homogeneous layout in the table
*
* @param obj The layout object
* @param homogeneous A boolean to set if the layout is homogeneous in the
* table (EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous)
*
* @ingroup Table
*/
EAPI void elm_table_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous);
/**
* @brief Get the current table homogeneous mode.
*
* @param obj The table object
* @return A boolean to indicating if the layout is homogeneous in the table
* (EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous)
*
* @ingroup Table
*/
EAPI Eina_Bool elm_table_homogeneous_get(const Evas_Object *obj);
/**
* @brief Set padding between cells.
*
* @param obj The layout object.
* @param horizontal set the horizontal padding.
* @param vertical set the vertical padding.
*
* Default value is 0.
*
* @ingroup Table
*/
EAPI void elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
/**
* @brief Get padding between cells.
*
* @param obj The layout object.
* @param horizontal set the horizontal padding.
* @param vertical set the vertical padding.
*
* @ingroup Table
*/
EAPI void elm_table_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical);
/**
* @brief Add a subobject on the table with the coordinates passed
*
* @param obj The table object
* @param subobj The subobject to be added to the table
* @param x Row number
* @param y Column number
* @param w colspan
* @param h rowspan
*
* @note All positioning inside the table is relative to rows and columns, so
* a value of 0 for x and y, means the top left cell of the table, and a
* value of 1 for w and h means @p subobj only takes that 1 cell.
*
* @ingroup Table
*/
EAPI void elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
/**
* @brief Remove child from table.
*
* @param obj The table object
* @param subobj The subobject
*
* @ingroup Table
*/
EAPI void elm_table_unpack(Evas_Object *obj, Evas_Object *subobj);
/**
* @brief Faster way to remove all child objects from a table object.
*
* @param obj The table object
* @param clear If true, will delete children, else just remove from table.
*
* @ingroup Table
*/
EAPI void elm_table_clear(Evas_Object *obj, Eina_Bool clear);
/**
* @brief Set the packing location of an existing child of the table
*
* @param subobj The subobject to be modified in the table
* @param x Row number
* @param y Column number
* @param w rowspan
* @param h colspan
*
* Modifies the position of an object already in the table.
*
* @note All positioning inside the table is relative to rows and columns, so
* a value of 0 for x and y, means the top left cell of the table, and a
* value of 1 for w and h means @p subobj only takes that 1 cell.
*
* @ingroup Table
*/
EAPI void elm_table_pack_set(Evas_Object *subobj, int x, int y, int w, int h);
/**
* @brief Get the packing location of an existing child of the table
*
* @param subobj The subobject to be modified in the table
* @param x Row number
* @param y Column number
* @param w rowspan
* @param h colspan
*
* @see elm_table_pack_set()
*
* @ingroup Table
*/
EAPI void elm_table_pack_get(Evas_Object *subobj, int *x, int *y, int *w, int *h);
#ifdef EFL_EO_API_SUPPORT
#include "elm_table_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_table_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,162 @@
#define ELM_OBJ_TABLE_CLASS elm_obj_table_class_get()
const Eo_Class *elm_obj_table_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_TABLE_BASE_ID;
enum
{
ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET,
ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET,
ELM_OBJ_TABLE_SUB_ID_PADDING_SET,
ELM_OBJ_TABLE_SUB_ID_PADDING_GET,
ELM_OBJ_TABLE_SUB_ID_PACK,
ELM_OBJ_TABLE_SUB_ID_UNPACK,
ELM_OBJ_TABLE_SUB_ID_PACK_SET,
ELM_OBJ_TABLE_SUB_ID_PACK_GET,
ELM_OBJ_TABLE_SUB_ID_CLEAR,
ELM_OBJ_TABLE_SUB_ID_LAST
};
#define ELM_OBJ_TABLE_ID(sub_id) (ELM_OBJ_TABLE_BASE_ID + sub_id)
/**
* @def elm_obj_table_homogeneous_set
* @since 1.8
*
* @brief Set the homogeneous layout in the table
*
* @param[in] homogeneous
*
* @see elm_table_homogeneous_set
*
* @ingroup Table
*/
#define elm_obj_table_homogeneous_set(homogeneous) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET), EO_TYPECHECK(Eina_Bool, homogeneous)
/**
* @def elm_obj_table_homogeneous_get
* @since 1.8
*
* @brief Get the current table homogeneous mode.
*
* @param[out] ret
*
* @see elm_table_homogeneous_get
*
* @ingroup Table
*/
#define elm_obj_table_homogeneous_get(ret) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_table_padding_set
* @since 1.8
*
* @brief Set padding between cells.
*
* @param[in] horizontal
* @param[in] vertical
*
* @see elm_table_padding_set
*
* @ingroup Table
*/
#define elm_obj_table_padding_set(horizontal, vertical) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PADDING_SET), EO_TYPECHECK(Evas_Coord, horizontal), EO_TYPECHECK(Evas_Coord, vertical)
/**
* @def elm_obj_table_padding_get
* @since 1.8
*
* @brief Get padding between cells.
*
* @param[out] horizontal
* @param[out] vertical
*
* @see elm_table_padding_get
*
* @ingroup Table
*/
#define elm_obj_table_padding_get(horizontal, vertical) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PADDING_GET), EO_TYPECHECK(Evas_Coord *, horizontal), EO_TYPECHECK(Evas_Coord *, vertical)
/**
* @def elm_obj_table_pack
* @since 1.8
*
* @brief Add a subobject on the table with the coordinates passed
*
* @param[in] subobj
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_table_pack
*
* @ingroup Table
*/
#define elm_obj_table_pack(subobj, x, y, w, h) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_table_unpack
* @since 1.8
*
* @brief Remove child from table.
*
* @param[in] subobj
*
* @see elm_table_unpack
*
* @ingroup Table
*/
#define elm_obj_table_unpack(subobj) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_UNPACK), EO_TYPECHECK(Evas_Object *, subobj)
/**
* @def elm_obj_table_pack_set
* @since 1.8
*
* @brief Set the packing location of an existing child of the table
*
* @param[in] subobj
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_table_pack_set
*
* @ingroup Table
*/
#define elm_obj_table_pack_set(subobj, x, y, w, h) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK_SET), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_table_pack_get
* @since 1.8
*
* @brief Get the packing location of an existing child of the table
*
* @param[in] subobj
* @param[out] x
* @param[out] y
* @param[out] w
* @param[out] h
*
* @see elm_table_pack_get
*
* @ingroup Table
*/
#define elm_obj_table_pack_get(subobj, x, y, w, h) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK_GET), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(int *, x), EO_TYPECHECK(int *, y), EO_TYPECHECK(int *, w), EO_TYPECHECK(int *, h)
/**
* @def elm_obj_table_clear
* @since 1.8
*
* @brief Faster way to remove all child objects from a table object.
*
* @param[in] clear
*
* @see elm_table_clear
*
* @ingroup Table
*/
#define elm_obj_table_clear(clear) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_CLEAR), EO_TYPECHECK(Eina_Bool, clear)

View File

@ -0,0 +1,127 @@
/**
* @brief Add a new table to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Table
*/
EAPI Evas_Object *elm_table_add(Evas_Object *parent);
/**
* @brief Set the homogeneous layout in the table
*
* @param obj The layout object
* @param homogeneous A boolean to set if the layout is homogeneous in the
* table (EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous)
*
* @ingroup Table
*/
EAPI void elm_table_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous);
/**
* @brief Get the current table homogeneous mode.
*
* @param obj The table object
* @return A boolean to indicating if the layout is homogeneous in the table
* (EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous)
*
* @ingroup Table
*/
EAPI Eina_Bool elm_table_homogeneous_get(const Evas_Object *obj);
/**
* @brief Set padding between cells.
*
* @param obj The layout object.
* @param horizontal set the horizontal padding.
* @param vertical set the vertical padding.
*
* Default value is 0.
*
* @ingroup Table
*/
EAPI void elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
/**
* @brief Get padding between cells.
*
* @param obj The layout object.
* @param horizontal set the horizontal padding.
* @param vertical set the vertical padding.
*
* @ingroup Table
*/
EAPI void elm_table_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical);
/**
* @brief Add a subobject on the table with the coordinates passed
*
* @param obj The table object
* @param subobj The subobject to be added to the table
* @param x Row number
* @param y Column number
* @param w colspan
* @param h rowspan
*
* @note All positioning inside the table is relative to rows and columns, so
* a value of 0 for x and y, means the top left cell of the table, and a
* value of 1 for w and h means @p subobj only takes that 1 cell.
*
* @ingroup Table
*/
EAPI void elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
/**
* @brief Remove child from table.
*
* @param obj The table object
* @param subobj The subobject
*
* @ingroup Table
*/
EAPI void elm_table_unpack(Evas_Object *obj, Evas_Object *subobj);
/**
* @brief Set the packing location of an existing child of the table
*
* @param subobj The subobject to be modified in the table
* @param x Row number
* @param y Column number
* @param w rowspan
* @param h colspan
*
* Modifies the position of an object already in the table.
*
* @note All positioning inside the table is relative to rows and columns, so
* a value of 0 for x and y, means the top left cell of the table, and a
* value of 1 for w and h means @p subobj only takes that 1 cell.
*
* @ingroup Table
*/
EAPI void elm_table_pack_set(Evas_Object *subobj, int x, int y, int w, int h);
/**
* @brief Get the packing location of an existing child of the table
*
* @param subobj The subobject to be modified in the table
* @param x Row number
* @param y Column number
* @param w rowspan
* @param h colspan
*
* @see elm_table_pack_set()
*
* @ingroup Table
*/
EAPI void elm_table_pack_get(Evas_Object *subobj, int *x, int *y, int *w, int *h);
/**
* @brief Faster way to remove all child objects from a table object.
*
* @param obj The table object
* @param clear If true, will delete children, else just remove from table.
*
* @ingroup Table
*/
EAPI void elm_table_clear(Evas_Object *obj, Eina_Bool clear);

View File

@ -51,339 +51,13 @@
* @{
*/
#define ELM_OBJ_THUMB_CLASS elm_obj_thumb_class_get()
const Eo_Class *elm_obj_thumb_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_THUMB_BASE_ID;
enum
{
ELM_OBJ_THUMB_SUB_ID_RELOAD,
ELM_OBJ_THUMB_SUB_ID_FILE_SET,
ELM_OBJ_THUMB_SUB_ID_FILE_GET,
ELM_OBJ_THUMB_SUB_ID_PATH_GET,
ELM_OBJ_THUMB_SUB_ID_ANIMATE_SET,
ELM_OBJ_THUMB_SUB_ID_ANIMATE_GET,
ELM_OBJ_THUMB_SUB_ID_EDITABLE_SET,
ELM_OBJ_THUMB_SUB_ID_EDITABLE_GET,
ELM_OBJ_THUMB_SUB_ID_LAST
};
#define ELM_OBJ_THUMB_ID(sub_id) (ELM_OBJ_THUMB_BASE_ID + sub_id)
/**
* @def elm_obj_thumb_reload
* @since 1.8
*
* Reload thumbnail if it was generated before.
*
*
* @see elm_thumb_reload
*/
#define elm_obj_thumb_reload() ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_RELOAD)
/**
* @def elm_obj_thumb_file_set
* @since 1.8
*
* Set the file that will be used as thumbnail source.
*
* @param[in] file
* @param[in] key
*
* @see elm_thumb_file_set
*/
#define elm_obj_thumb_file_set(file, key) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, file), EO_TYPECHECK(const char *, key)
/**
* @def elm_obj_thumb_file_get
* @since 1.8
*
* Get the image or video path and key used to generate the thumbnail.
*
* @param[out] file
* @param[out] key
*
* @see elm_thumb_file_get
*/
#define elm_obj_thumb_file_get(file, key) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, key)
/**
* @def elm_obj_thumb_path_get
* @since 1.8
*
* Get the path and key to the image or video thumbnail generated by ethumb.
*
* @param[out] file
* @param[out] key
*
* @see elm_thumb_path_get
*/
#define elm_obj_thumb_path_get(file, key) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, key)
/**
* @def elm_obj_thumb_animate_set
* @since 1.8
*
* Set the animation state for the thumb object. If its content is an animated
*
* @param[in] setting
*
* @see elm_thumb_animate_set
*/
#define elm_obj_thumb_animate_set(setting) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ANIMATE_SET), EO_TYPECHECK(Elm_Thumb_Animation_Setting, setting)
/**
* @def elm_obj_thumb_animate_get
* @since 1.8
*
* Get the animation state for the thumb object.
*
* @param[out] ret
*
* @see elm_thumb_animate_get
*/
#define elm_obj_thumb_animate_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ANIMATE_GET), EO_TYPECHECK(Elm_Thumb_Animation_Setting *, ret)
/**
* @def elm_obj_thumb_editable_set
* @since 1.8
*
* Make the thumbnail 'editable'.
*
* @param[in] edit
* @param[out] ret
*
* @see elm_thumb_editable_set
*/
#define elm_obj_thumb_editable_set(edit, ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, edit), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_thumb_editable_get
* @since 1.8
*
* Make the thumbnail 'editable'.
*
* @param[out] ret
*
* @see elm_thumb_editable_get
*/
#define elm_obj_thumb_editable_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @enum Elm_Thumb_Animation_Setting
* @typedef Elm_Thumb_Animation_Setting
*
* Used to set if a video thumbnail is animating or not.
*
* @ingroup Thumb
*/
typedef enum
{
ELM_THUMB_ANIMATION_START = 0, /**< Play animation once */
ELM_THUMB_ANIMATION_LOOP, /**< Keep playing animation until stop is requested */
ELM_THUMB_ANIMATION_STOP, /**< Stop playing the animation */
ELM_THUMB_ANIMATION_LAST
} Elm_Thumb_Animation_Setting;
/**
* Add a new thumb object to the parent.
*
* @param parent The parent object.
* @return The new object or NULL if it cannot be created.
*
* @see elm_thumb_file_set()
* @see elm_thumb_ethumb_client_get()
*
* @ingroup Thumb
*/
EAPI Evas_Object *elm_thumb_add(Evas_Object *parent);
/**
* Reload thumbnail if it was generated before.
*
* @param obj The thumb object to reload
*
* This is useful if the ethumb client configuration changed, like its
* size, aspect or any other property one set in the handle returned
* by elm_thumb_ethumb_client_get().
*
* If the options didn't change, the thumbnail won't be generated again, but
* the old one will still be used.
*
* @see elm_thumb_file_set()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_reload(Evas_Object *obj);
/**
* Set the file that will be used as thumbnail @b source.
*
* @param obj The thumb object.
* @param file The path to file that will be used as thumbnail source.
* @param key The key used in case of an EET file.
*
* The file can be an image or a video (in that case, acceptable
* extensions are: avi, mp4, ogv, mov, mpg and wmv). To start the
* video animation, use the function elm_thumb_animate().
*
* @see elm_thumb_file_get()
* @see elm_thumb_reload()
* @see elm_thumb_animate()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key);
/**
* Get the image or video path and key used to generate the thumbnail.
*
* @param obj The thumb object.
* @param file Pointer to filename.
* @param key Pointer to key.
*
* @see elm_thumb_file_set()
* @see elm_thumb_path_get()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_file_get(const Evas_Object *obj, const char **file, const char **key);
/**
* Get the path and key to the image or video thumbnail generated by ethumb.
*
* One just needs to make sure that the thumbnail was generated before getting
* its path; otherwise, the path will be NULL. One way to do that is by asking
* for the path when/after the "generate,stop" smart callback is called.
*
* @param obj The thumb object.
* @param file Pointer to thumb path.
* @param key Pointer to thumb key.
*
* @see elm_thumb_file_get()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key);
/**
* Set the animation state for the thumb object. If its content is an animated
* video, you may start/stop the animation or tell it to play continuously and
* looping.
*
* @param obj The thumb object.
* @param s The animation setting.
*
* @see elm_thumb_file_set()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting s);
/**
* Get the animation state for the thumb object.
*
* @param obj The thumb object.
* @return getting The animation setting or @c ELM_THUMB_ANIMATION_LAST,
* on errors.
*
* @see elm_thumb_animate_set()
*
* @ingroup Thumb
*/
EAPI Elm_Thumb_Animation_Setting elm_thumb_animate_get(const Evas_Object *obj);
/**
* Get the ethumb_client handle so custom configuration can be made.
*
* @return Ethumb_Client instance or NULL.
*
* This must be called before the objects are created to be sure no object is
* visible and no generation started.
*
* Example of usage:
*
* @code
* #include <Elementary.h>
* #ifndef ELM_LIB_QUICKLAUNCH
* EAPI_MAIN int
* elm_main(int argc, char **argv)
* {
* Ethumb_Client *client;
*
* elm_need_ethumb();
*
* // ... your code
*
* client = elm_thumb_ethumb_client_get();
* if (!client)
* {
* ERR("could not get ethumb_client");
* return 1;
* }
* ethumb_client_size_set(client, 100, 100);
* ethumb_client_crop_align_set(client, 0.5, 0.5);
* // ... your code
*
* // Create elm_thumb objects here
*
* elm_run();
* elm_shutdown();
* return 0;
* }
* #endif
* ELM_MAIN()
* @endcode
*
* @note There's only one client handle for Ethumb, so once a configuration
* change is done to it, any other request for thumbnails (for any thumbnail
* object) will use that configuration. Thus, this configuration is global.
*
* @ingroup Thumb
*/
EAPI void *elm_thumb_ethumb_client_get(void);
/**
* Get the ethumb_client connection state.
*
* @return EINA_TRUE if the client is connected to the server or EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool elm_thumb_ethumb_client_connected_get(void);
/**
* Make the thumbnail 'editable'.
*
* @param obj Thumb object.
* @param edit Turn on or off editability. Default is @c EINA_FALSE.
*
* This means the thumbnail is a valid drag target for drag and drop, and can be
* cut or pasted too.
*
* @see elm_thumb_editable_get()
*
* @ingroup Thumb
*/
EAPI Eina_Bool elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit);
/**
* Make the thumbnail 'editable'.
*
* @param obj Thumb object.
* @return Editability.
*
* This means the thumbnail is a valid drag target for drag and drop, and can be
* cut or pasted too.
*
* @see elm_thumb_editable_set()
*
* @ingroup Thumb
*/
EAPI Eina_Bool elm_thumb_editable_get(const Evas_Object *obj);
#include "elm_thumb_common.h"
#ifdef EFL_EO_API_SUPPORT
#include "elm_thumb_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_thumb_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,74 @@
/**
* @enum Elm_Thumb_Animation_Setting
* @typedef Elm_Thumb_Animation_Setting
*
* Used to set if a video thumbnail is animating or not.
*
* @ingroup Thumb
*/
typedef enum
{
ELM_THUMB_ANIMATION_START = 0, /**< Play animation once */
ELM_THUMB_ANIMATION_LOOP, /**< Keep playing animation until stop is requested */
ELM_THUMB_ANIMATION_STOP, /**< Stop playing the animation */
ELM_THUMB_ANIMATION_LAST
} Elm_Thumb_Animation_Setting;
/**
* Get the ethumb_client handle so custom configuration can be made.
*
* @return Ethumb_Client instance or NULL.
*
* This must be called before the objects are created to be sure no object is
* visible and no generation started.
*
* Example of usage:
*
* @code
* #include <Elementary.h>
* #ifndef ELM_LIB_QUICKLAUNCH
* EAPI_MAIN int
* elm_main(int argc, char **argv)
* {
* Ethumb_Client *client;
*
* elm_need_ethumb();
*
* // ... your code
*
* client = elm_thumb_ethumb_client_get();
* if (!client)
* {
* ERR("could not get ethumb_client");
* return 1;
* }
* ethumb_client_size_set(client, 100, 100);
* ethumb_client_crop_align_set(client, 0.5, 0.5);
* // ... your code
*
* // Create elm_thumb objects here
*
* elm_run();
* elm_shutdown();
* return 0;
* }
* #endif
* ELM_MAIN()
* @endcode
*
* @note There's only one client handle for Ethumb, so once a configuration
* change is done to it, any other request for thumbnails (for any thumbnail
* object) will use that configuration. Thus, this configuration is global.
*
* @ingroup Thumb
*/
EAPI void *elm_thumb_ethumb_client_get(void);
/**
* Get the ethumb_client connection state.
*
* @return EINA_TRUE if the client is connected to the server or EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool elm_thumb_ethumb_client_connected_get(void);

View File

@ -0,0 +1,136 @@
#define ELM_OBJ_THUMB_CLASS elm_obj_thumb_class_get()
const Eo_Class *elm_obj_thumb_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_THUMB_BASE_ID;
enum
{
ELM_OBJ_THUMB_SUB_ID_RELOAD,
ELM_OBJ_THUMB_SUB_ID_FILE_SET,
ELM_OBJ_THUMB_SUB_ID_FILE_GET,
ELM_OBJ_THUMB_SUB_ID_PATH_GET,
ELM_OBJ_THUMB_SUB_ID_ANIMATE_SET,
ELM_OBJ_THUMB_SUB_ID_ANIMATE_GET,
ELM_OBJ_THUMB_SUB_ID_EDITABLE_SET,
ELM_OBJ_THUMB_SUB_ID_EDITABLE_GET,
ELM_OBJ_THUMB_SUB_ID_LAST
};
#define ELM_OBJ_THUMB_ID(sub_id) (ELM_OBJ_THUMB_BASE_ID + sub_id)
/**
* @def elm_obj_thumb_reload
* @since 1.8
*
* Reload thumbnail if it was generated before.
*
*
* @see elm_thumb_reload
*
* @ingroup Thumb
*/
#define elm_obj_thumb_reload() ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_RELOAD)
/**
* @def elm_obj_thumb_file_set
* @since 1.8
*
* Set the file that will be used as thumbnail source.
*
* @param[in] file
* @param[in] key
*
* @see elm_thumb_file_set
*
* @ingroup Thumb
*/
#define elm_obj_thumb_file_set(file, key) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, file), EO_TYPECHECK(const char *, key)
/**
* @def elm_obj_thumb_file_get
* @since 1.8
*
* Get the image or video path and key used to generate the thumbnail.
*
* @param[out] file
* @param[out] key
*
* @see elm_thumb_file_get
*
* @ingroup Thumb
*/
#define elm_obj_thumb_file_get(file, key) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, key)
/**
* @def elm_obj_thumb_path_get
* @since 1.8
*
* Get the path and key to the image or video thumbnail generated by ethumb.
*
* @param[out] file
* @param[out] key
*
* @see elm_thumb_path_get
*
* @ingroup Thumb
*/
#define elm_obj_thumb_path_get(file, key) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, key)
/**
* @def elm_obj_thumb_animate_set
* @since 1.8
*
* Set the animation state for the thumb object. If its content is an animated
*
* @param[in] setting
*
* @see elm_thumb_animate_set
*
* @ingroup Thumb
*/
#define elm_obj_thumb_animate_set(setting) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ANIMATE_SET), EO_TYPECHECK(Elm_Thumb_Animation_Setting, setting)
/**
* @def elm_obj_thumb_animate_get
* @since 1.8
*
* Get the animation state for the thumb object.
*
* @param[out] ret
*
* @see elm_thumb_animate_get
*
* @ingroup Thumb
*/
#define elm_obj_thumb_animate_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ANIMATE_GET), EO_TYPECHECK(Elm_Thumb_Animation_Setting *, ret)
/**
* @def elm_obj_thumb_editable_set
* @since 1.8
*
* Make the thumbnail 'editable'.
*
* @param[in] edit
* @param[out] ret
*
* @see elm_thumb_editable_set
*
* @ingroup Thumb
*/
#define elm_obj_thumb_editable_set(edit, ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, edit), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_thumb_editable_get
* @since 1.8
*
* Make the thumbnail 'editable'.
*
* @param[out] ret
*
* @see elm_thumb_editable_get
*
* @ingroup Thumb
*/
#define elm_obj_thumb_editable_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,137 @@
/**
* Add a new thumb object to the parent.
*
* @param parent The parent object.
* @return The new object or NULL if it cannot be created.
*
* @see elm_thumb_file_set()
* @see elm_thumb_ethumb_client_get()
*
* @ingroup Thumb
*/
EAPI Evas_Object *elm_thumb_add(Evas_Object *parent);
/**
* Reload thumbnail if it was generated before.
*
* @param obj The thumb object to reload
*
* This is useful if the ethumb client configuration changed, like its
* size, aspect or any other property one set in the handle returned
* by elm_thumb_ethumb_client_get().
*
* If the options didn't change, the thumbnail won't be generated again, but
* the old one will still be used.
*
* @see elm_thumb_file_set()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_reload(Evas_Object *obj);
/**
* Set the file that will be used as thumbnail @b source.
*
* @param obj The thumb object.
* @param file The path to file that will be used as thumbnail source.
* @param key The key used in case of an EET file.
*
* The file can be an image or a video (in that case, acceptable
* extensions are: avi, mp4, ogv, mov, mpg and wmv). To start the
* video animation, use the function elm_thumb_animate().
*
* @see elm_thumb_file_get()
* @see elm_thumb_reload()
* @see elm_thumb_animate()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key);
/**
* Get the image or video path and key used to generate the thumbnail.
*
* @param obj The thumb object.
* @param file Pointer to filename.
* @param key Pointer to key.
*
* @see elm_thumb_file_set()
* @see elm_thumb_path_get()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_file_get(const Evas_Object *obj, const char **file, const char **key);
/**
* Get the path and key to the image or video thumbnail generated by ethumb.
*
* One just needs to make sure that the thumbnail was generated before getting
* its path; otherwise, the path will be NULL. One way to do that is by asking
* for the path when/after the "generate,stop" smart callback is called.
*
* @param obj The thumb object.
* @param file Pointer to thumb path.
* @param key Pointer to thumb key.
*
* @see elm_thumb_file_get()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key);
/**
* Set the animation state for the thumb object. If its content is an animated
* video, you may start/stop the animation or tell it to play continuously and
* looping.
*
* @param obj The thumb object.
* @param s The animation setting.
*
* @see elm_thumb_file_set()
*
* @ingroup Thumb
*/
EAPI void elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting s);
/**
* Get the animation state for the thumb object.
*
* @param obj The thumb object.
* @return getting The animation setting or @c ELM_THUMB_ANIMATION_LAST,
* on errors.
*
* @see elm_thumb_animate_set()
*
* @ingroup Thumb
*/
EAPI Elm_Thumb_Animation_Setting elm_thumb_animate_get(const Evas_Object *obj);
/**
* Make the thumbnail 'editable'.
*
* @param obj Thumb object.
* @param edit Turn on or off editability. Default is @c EINA_FALSE.
*
* This means the thumbnail is a valid drag target for drag and drop, and can be
* cut or pasted too.
*
* @see elm_thumb_editable_get()
*
* @ingroup Thumb
*/
EAPI Eina_Bool elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit);
/**
* Make the thumbnail 'editable'.
*
* @param obj Thumb object.
* @return Editability.
*
* This means the thumbnail is a valid drag target for drag and drop, and can be
* cut or pasted too.
*
* @see elm_thumb_editable_set()
*
* @ingroup Thumb
*/
EAPI Eina_Bool elm_thumb_editable_get(const Evas_Object *obj);

View File

@ -48,484 +48,13 @@
/**
* ELM_OBJ_PLAYER_CLASS
*/
#define ELM_OBJ_PLAYER_CLASS elm_obj_player_class_get()
const Eo_Class *elm_obj_player_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PLAYER_BASE_ID;
enum
{
ELM_OBJ_PLAYER_SUB_ID_LAST
};
#define ELM_OBJ_PLAYER_ID(sub_id) (ELM_OBJ_PLAYER_BASE_ID + sub_id)
/**
* ELM_OBJ_VIDEO_CLASS
*/
#define ELM_OBJ_VIDEO_CLASS elm_obj_video_class_get()
const Eo_Class *elm_obj_video_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_VIDEO_BASE_ID;
enum
{
ELM_OBJ_VIDEO_SUB_ID_FILE_SET,
ELM_OBJ_VIDEO_SUB_ID_EMOTION_GET,
ELM_OBJ_VIDEO_SUB_ID_PLAY,
ELM_OBJ_VIDEO_SUB_ID_PAUSE,
ELM_OBJ_VIDEO_SUB_ID_STOP,
ELM_OBJ_VIDEO_SUB_ID_IS_PLAYING_GET,
ELM_OBJ_VIDEO_SUB_ID_IS_SEEKABLE_GET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_GET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_SET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_GET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_SET,
ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_GET,
ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_SET,
ELM_OBJ_VIDEO_SUB_ID_PLAY_LENGTH_GET,
ELM_OBJ_VIDEO_SUB_ID_TITLE_GET,
ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_SET,
ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_GET,
ELM_OBJ_VIDEO_SUB_ID_LAST
};
#define ELM_OBJ_VIDEO_ID(sub_id) (ELM_OBJ_VIDEO_BASE_ID + sub_id)
/**
* @def elm_obj_video_file_set
* @since 1.8
*
* @brief Define the file or URI that will be the video source.
*
* @param[in] filename
* @param[out] ret
*
* @see elm_video_file_set
*/
#define elm_obj_video_file_set(filename, ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, filename), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_emotion_get
* @since 1.8
*
* @brief Get the underlying Emotion object.
*
* @param[out] ret
*
* @see elm_video_emotion_get
*/
#define elm_obj_video_emotion_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_EMOTION_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_video_play
* @since 1.8
*
* @brief Start to play the video
*
*
* @see elm_video_play
*/
#define elm_obj_video_play() ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY)
/**
* @def elm_obj_video_pause
* @since 1.8
*
* @brief Pause the video
*
*
* @see elm_video_pause
*/
#define elm_obj_video_pause() ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PAUSE)
/**
* @def elm_obj_video_stop
* @since 1.8
*
* @brief Stop the video
*
*
* @see elm_video_stop
*/
#define elm_obj_video_stop() ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_STOP)
/**
* @def elm_obj_video_is_playing_get
* @since 1.8
*
* @brief Is the video actually playing.
*
* @param[out] ret
*
* @see elm_video_is_playing_get
*/
#define elm_obj_video_is_playing_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_IS_PLAYING_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_is_seekable_get
* @since 1.8
*
* @brief Is it possible to seek inside the video.
*
* @param[out] ret
*
* @see elm_video_is_seekable_get
*/
#define elm_obj_video_is_seekable_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_IS_SEEKABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_audio_mute_get
* @since 1.8
*
* @brief Is the audio muted.
*
* @param[out] ret
*
* @see elm_video_audio_mute_get
*/
#define elm_obj_video_audio_mute_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_audio_mute_set
* @since 1.8
*
* @brief Change the mute state of the Elm_Video object.
*
* @param[in] mute
*
* @see elm_video_audio_mute_set
*/
#define elm_obj_video_audio_mute_set(mute) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_SET), EO_TYPECHECK(Eina_Bool, mute)
/**
* @def elm_obj_video_audio_level_get
* @since 1.8
*
* @brief Get the audio level of the current video.
*
* @param[out] ret
*
* @see elm_video_audio_level_get
*/
#define elm_obj_video_audio_level_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_video_audio_level_set
* @since 1.8
*
* @brief Set the audio level of an Elm_Video object.
*
* @param[in] volume
*
* @see elm_video_audio_level_set
*/
#define elm_obj_video_audio_level_set(volume) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_SET), EO_TYPECHECK(double, volume)
/**
* @def elm_obj_video_play_position_get
* @since 1.8
*
* @brief Get the current position (in seconds) being played in the
* Elm_Video object.
*
* @param[out] ret
*
* @see elm_video_play_position_get
*/
#define elm_obj_video_play_position_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_video_play_position_set
* @since 1.8
*
* @brief Set the current position (in seconds) to be played in the
* Elm_Video object.
*
* @param[in] position
*
* @see elm_video_play_position_set
*/
#define elm_obj_video_play_position_set(position) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_SET), EO_TYPECHECK(double, position)
/**
* @def elm_obj_video_play_length_get
* @since 1.8
*
* @brief Get the total playing time (in seconds) of the Elm_Video object.
*
* @param[out] ret
*
* @see elm_video_play_length_get
*/
#define elm_obj_video_play_length_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY_LENGTH_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_video_title_get
* @since 1.8
*
* @brief Get the title (for instance DVD title) from this emotion object.
*
* @param[out] ret
*
* @see elm_video_title_get
*/
#define elm_obj_video_title_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_TITLE_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_video_remember_position_set
* @since 1.8
*
* @brief Set whether the object can remember the last played position.
*
* @param[in] remember
*
* @see elm_video_remember_position_set
*/
#define elm_obj_video_remember_position_set(remember) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_SET), EO_TYPECHECK(Eina_Bool, remember)
/**
* @def elm_obj_video_remember_position_get
* @since 1.8
*
* @brief Set whether the object can remember the last played position.
*
* @param[out] ret
*
* @see elm_video_remember_position_get
*/
#define elm_obj_video_remember_position_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @brief Add a new Elm_Player object to the given parent Elementary (container) object.
*
* @param parent The parent object
* @return a new player widget handle or @c NULL, on errors.
*
* This function inserts a new player widget on the canvas.
*
* @see elm_object_part_content_set()
*
* @ingroup Video
*/
EAPI Evas_Object *elm_player_add(Evas_Object *parent);
/**
* @brief Add a new Elm_Video object to the given parent Elementary (container) object.
*
* @param parent The parent object
* @return a new video widget handle or @c NULL, on errors.
*
* This function inserts a new video widget on the canvas.
*
* @see elm_video_file_set()
*
* @ingroup Video
*/
EAPI Evas_Object *elm_video_add(Evas_Object *parent);
/**
* @brief Define the file or URI that will be the video source.
*
* @param video The video object to define the file or URI for the video
* of the Elm_Video object.
*
* @param filename The file or URI to target.
* Local files can be specified using file:// or by using full file paths.
* URI could be remote source of video, like http:// or local source like
* WebCam (v4l2://). (You can use Emotion API to request and list
* the available Webcam on your system).
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* This function will explicitly define a file or URI as a source
* for the video of the Elm_Video object.
*
* @see elm_video_add()
* @see elm_player_add()
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_file_set(Evas_Object *video, const char *filename);
/**
* @brief Get the underlying Emotion object.
*
* @param video The video object to proceed the request on.
* @return the underlying Emotion object.
*
* @ingroup Video
*/
EAPI Evas_Object *elm_video_emotion_get(const Evas_Object *video);
/**
* @brief Start to play the video
*
* @param video The video object to proceed the request on.
*
* Start to play the video and cancel all suspend state.
*
* @ingroup Video
*/
EAPI void elm_video_play(Evas_Object *video);
/**
* @brief Pause the video
*
* @param video The video object to proceed the request on.
*
* Pause the video and start a timer to trigger suspend mode.
*
* @ingroup Video
*/
EAPI void elm_video_pause(Evas_Object *video);
/**
* @brief Stop the video
*
* @param video The video object to proceed the request on.
*
* Stop the video and put the emotion in deep sleep mode.
*
* @ingroup Video
*/
EAPI void elm_video_stop(Evas_Object *video);
/**
* @brief Is the video actually playing.
*
* @param video The video object to proceed the request on.
* @return @c EINA_TRUE if the video is actually playing.
*
* You should consider watching event on the object instead of polling
* the object state.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_is_playing_get(const Evas_Object *video);
/**
* @brief Is it possible to seek inside the video.
*
* @param video The video object to proceed the request on.
* @return @c EINA_TRUE if is possible to seek inside the video.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_is_seekable_get(const Evas_Object *video);
/**
* @brief Is the audio muted.
*
* @param video The video object to proceed the request on.
* @return @c EINA_TRUE if the audio is muted.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_audio_mute_get(const Evas_Object *video);
/**
* @brief Change the mute state of the Elm_Video object.
*
* @param video The video object to proceed the request on.
* @param mute The new mute state.
*
* @ingroup Video
*/
EAPI void elm_video_audio_mute_set(Evas_Object *video, Eina_Bool mute);
/**
* @brief Get the audio level of the current video.
*
* @param video The video object to proceed the request on.
* @return the current audio level.
*
* @ingroup Video
*/
EAPI double elm_video_audio_level_get(const Evas_Object *video);
/**
* @brief Set the audio level of an Elm_Video object.
*
* @param video The video object to proceed the request on.
* @param volume The new audio volume.
*
* @ingroup Video
*/
EAPI void elm_video_audio_level_set(Evas_Object *video, double volume);
/**
* @brief Get the current position (in seconds) being played in the
* Elm_Video object.
*
* @param video The video object.
* @return The time (in seconds) since the beginning of the media file.
*
* @ingroup Video
*/
EAPI double elm_video_play_position_get(const Evas_Object *video);
/**
* @brief Set the current position (in seconds) to be played in the
* Elm_Video object.
*
* @param video The video object.
* @param position The time (in seconds) since the beginning of the media file.
*
* @ingroup Video
*/
EAPI void elm_video_play_position_set(Evas_Object *video, double position);
/**
* @brief Get the total playing time (in seconds) of the Elm_Video object.
*
* @param video The video object.
* @return The total duration (in seconds) of the media file.
*
* @ingroup Video
*/
EAPI double elm_video_play_length_get(const Evas_Object *video);
/**
* @brief Set whether the object can remember the last played position.
*
* @param video The video object.
* @param remember the last played position of the Elm_Video object.
*
* @note This API only serves as indication. System support is required.
*
* @ingroup Video
*/
EAPI void elm_video_remember_position_set(Evas_Object *video, Eina_Bool remember);
/**
* @brief Set whether the object can remember the last played position.
*
* @param video The video object.
* @return whether the object remembers the last played position (@c EINA_TRUE)
* or not.
*
* @note This API only serves as indication. System support is required.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_remember_position_get(const Evas_Object *video);
/**
* @brief Get the title (for instance DVD title) from this emotion object.
*
* @param video The Elm_Video object.
* @return A string containing the title.
*
* This function is only useful when playing a DVD.
*
* @note Don't change or free the string returned by this function.
*
* @ingroup Video
*/
EAPI const char *elm_video_title_get(const Evas_Object *video);
#ifdef EFL_EO_API_SUPPORT
#include "elm_video_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_video_legacy.h"
#endif
/**
* @}
*/

View File

@ -0,0 +1,284 @@
#define ELM_OBJ_PLAYER_CLASS elm_obj_player_class_get()
const Eo_Class *elm_obj_player_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_PLAYER_BASE_ID;
enum
{
ELM_OBJ_PLAYER_SUB_ID_LAST
};
#define ELM_OBJ_PLAYER_ID(sub_id) (ELM_OBJ_PLAYER_BASE_ID + sub_id)
/**
* ELM_OBJ_VIDEO_CLASS
*/
#define ELM_OBJ_VIDEO_CLASS elm_obj_video_class_get()
const Eo_Class *elm_obj_video_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_VIDEO_BASE_ID;
enum
{
ELM_OBJ_VIDEO_SUB_ID_FILE_SET,
ELM_OBJ_VIDEO_SUB_ID_EMOTION_GET,
ELM_OBJ_VIDEO_SUB_ID_PLAY,
ELM_OBJ_VIDEO_SUB_ID_PAUSE,
ELM_OBJ_VIDEO_SUB_ID_STOP,
ELM_OBJ_VIDEO_SUB_ID_IS_PLAYING_GET,
ELM_OBJ_VIDEO_SUB_ID_IS_SEEKABLE_GET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_GET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_SET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_GET,
ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_SET,
ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_GET,
ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_SET,
ELM_OBJ_VIDEO_SUB_ID_PLAY_LENGTH_GET,
ELM_OBJ_VIDEO_SUB_ID_TITLE_GET,
ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_SET,
ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_GET,
ELM_OBJ_VIDEO_SUB_ID_LAST
};
#define ELM_OBJ_VIDEO_ID(sub_id) (ELM_OBJ_VIDEO_BASE_ID + sub_id)
/**
* @def elm_obj_video_file_set
* @since 1.8
*
* @brief Define the file or URI that will be the video source.
*
* @param[in] filename
* @param[out] ret
*
* @see elm_video_file_set
*
* @ingroup Video
*/
#define elm_obj_video_file_set(filename, ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, filename), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_emotion_get
* @since 1.8
*
* @brief Get the underlying Emotion object.
*
* @param[out] ret
*
* @see elm_video_emotion_get
*
* @ingroup Video
*/
#define elm_obj_video_emotion_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_EMOTION_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_video_play
* @since 1.8
*
* @brief Start to play the video
*
*
* @see elm_video_play
*
* @ingroup Video
*/
#define elm_obj_video_play() ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY)
/**
* @def elm_obj_video_pause
* @since 1.8
*
* @brief Pause the video
*
*
* @see elm_video_pause
*
* @ingroup Video
*/
#define elm_obj_video_pause() ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PAUSE)
/**
* @def elm_obj_video_stop
* @since 1.8
*
* @brief Stop the video
*
*
* @see elm_video_stop
*
* @ingroup Video
*/
#define elm_obj_video_stop() ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_STOP)
/**
* @def elm_obj_video_is_playing_get
* @since 1.8
*
* @brief Is the video actually playing.
*
* @param[out] ret
*
* @see elm_video_is_playing_get
*
* @ingroup Video
*/
#define elm_obj_video_is_playing_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_IS_PLAYING_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_is_seekable_get
* @since 1.8
*
* @brief Is it possible to seek inside the video.
*
* @param[out] ret
*
* @see elm_video_is_seekable_get
*
* @ingroup Video
*/
#define elm_obj_video_is_seekable_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_IS_SEEKABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_audio_mute_get
* @since 1.8
*
* @brief Is the audio muted.
*
* @param[out] ret
*
* @see elm_video_audio_mute_get
*
* @ingroup Video
*/
#define elm_obj_video_audio_mute_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_video_audio_mute_set
* @since 1.8
*
* @brief Change the mute state of the Elm_Video object.
*
* @param[in] mute
*
* @see elm_video_audio_mute_set
*
* @ingroup Video
*/
#define elm_obj_video_audio_mute_set(mute) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_MUTE_SET), EO_TYPECHECK(Eina_Bool, mute)
/**
* @def elm_obj_video_audio_level_get
* @since 1.8
*
* @brief Get the audio level of the current video.
*
* @param[out] ret
*
* @see elm_video_audio_level_get
*
* @ingroup Video
*/
#define elm_obj_video_audio_level_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_video_audio_level_set
* @since 1.8
*
* @brief Set the audio level of an Elm_Video object.
*
* @param[in] volume
*
* @see elm_video_audio_level_set
*
* @ingroup Video
*/
#define elm_obj_video_audio_level_set(volume) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_AUDIO_LEVEL_SET), EO_TYPECHECK(double, volume)
/**
* @def elm_obj_video_play_position_get
* @since 1.8
*
* @brief Get the current position (in seconds) being played in the
* Elm_Video object.
*
* @param[out] ret
*
* @see elm_video_play_position_get
*
* @ingroup Video
*/
#define elm_obj_video_play_position_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_video_play_position_set
* @since 1.8
*
* @brief Set the current position (in seconds) to be played in the
* Elm_Video object.
*
* @param[in] position
*
* @see elm_video_play_position_set
*
* @ingroup Video
*/
#define elm_obj_video_play_position_set(position) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY_POSITION_SET), EO_TYPECHECK(double, position)
/**
* @def elm_obj_video_play_length_get
* @since 1.8
*
* @brief Get the total playing time (in seconds) of the Elm_Video object.
*
* @param[out] ret
*
* @see elm_video_play_length_get
*
* @ingroup Video
*/
#define elm_obj_video_play_length_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_PLAY_LENGTH_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_video_title_get
* @since 1.8
*
* @brief Get the title (for instance DVD title) from this emotion object.
*
* @param[out] ret
*
* @see elm_video_title_get
*
* @ingroup Video
*/
#define elm_obj_video_title_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_TITLE_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_video_remember_position_set
* @since 1.8
*
* @brief Set whether the object can remember the last played position.
*
* @param[in] remember
*
* @see elm_video_remember_position_set
*
* @ingroup Video
*/
#define elm_obj_video_remember_position_set(remember) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_SET), EO_TYPECHECK(Eina_Bool, remember)
/**
* @def elm_obj_video_remember_position_get
* @since 1.8
*
* @brief Set whether the object can remember the last played position.
*
* @param[out] ret
*
* @see elm_video_remember_position_get
*
* @ingroup Video
*/
#define elm_obj_video_remember_position_get(ret) ELM_OBJ_VIDEO_ID(ELM_OBJ_VIDEO_SUB_ID_REMEMBER_POSITION_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,228 @@
/**
* @brief Add a new Elm_Player object to the given parent Elementary (container) object.
*
* @param parent The parent object
* @return a new player widget handle or @c NULL, on errors.
*
* This function inserts a new player widget on the canvas.
*
* @see elm_object_part_content_set()
*
* @ingroup Video
*/
EAPI Evas_Object *elm_player_add(Evas_Object *parent);
/**
* @brief Add a new Elm_Video object to the given parent Elementary (container) object.
*
* @param parent The parent object
* @return a new video widget handle or @c NULL, on errors.
*
* This function inserts a new video widget on the canvas.
*
* @see elm_video_file_set()
*
* @ingroup Video
*/
EAPI Evas_Object *elm_video_add(Evas_Object *parent);
/**
* @brief Define the file or URI that will be the video source.
*
* @param video The video object to define the file or URI for the video
* of the Elm_Video object.
*
* @param filename The file or URI to target.
* Local files can be specified using file:// or by using full file paths.
* URI could be remote source of video, like http:// or local source like
* WebCam (v4l2://). (You can use Emotion API to request and list
* the available Webcam on your system).
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* This function will explicitly define a file or URI as a source
* for the video of the Elm_Video object.
*
* @see elm_video_add()
* @see elm_player_add()
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_file_set(Evas_Object *video, const char *filename);
/**
* @brief Get the underlying Emotion object.
*
* @param video The video object to proceed the request on.
* @return the underlying Emotion object.
*
* @ingroup Video
*/
EAPI Evas_Object *elm_video_emotion_get(const Evas_Object *video);
/**
* @brief Start to play the video
*
* @param video The video object to proceed the request on.
*
* Start to play the video and cancel all suspend state.
*
* @ingroup Video
*/
EAPI void elm_video_play(Evas_Object *video);
/**
* @brief Pause the video
*
* @param video The video object to proceed the request on.
*
* Pause the video and start a timer to trigger suspend mode.
*
* @ingroup Video
*/
EAPI void elm_video_pause(Evas_Object *video);
/**
* @brief Stop the video
*
* @param video The video object to proceed the request on.
*
* Stop the video and put the emotion in deep sleep mode.
*
* @ingroup Video
*/
EAPI void elm_video_stop(Evas_Object *video);
/**
* @brief Is the video actually playing.
*
* @param video The video object to proceed the request on.
* @return @c EINA_TRUE if the video is actually playing.
*
* You should consider watching event on the object instead of polling
* the object state.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_is_playing_get(const Evas_Object *video);
/**
* @brief Is it possible to seek inside the video.
*
* @param video The video object to proceed the request on.
* @return @c EINA_TRUE if is possible to seek inside the video.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_is_seekable_get(const Evas_Object *video);
/**
* @brief Is the audio muted.
*
* @param video The video object to proceed the request on.
* @return @c EINA_TRUE if the audio is muted.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_audio_mute_get(const Evas_Object *video);
/**
* @brief Change the mute state of the Elm_Video object.
*
* @param video The video object to proceed the request on.
* @param mute The new mute state.
*
* @ingroup Video
*/
EAPI void elm_video_audio_mute_set(Evas_Object *video, Eina_Bool mute);
/**
* @brief Get the audio level of the current video.
*
* @param video The video object to proceed the request on.
* @return the current audio level.
*
* @ingroup Video
*/
EAPI double elm_video_audio_level_get(const Evas_Object *video);
/**
* @brief Set the audio level of an Elm_Video object.
*
* @param video The video object to proceed the request on.
* @param volume The new audio volume.
*
* @ingroup Video
*/
EAPI void elm_video_audio_level_set(Evas_Object *video, double volume);
/**
* @brief Get the current position (in seconds) being played in the
* Elm_Video object.
*
* @param video The video object.
* @return The time (in seconds) since the beginning of the media file.
*
* @ingroup Video
*/
EAPI double elm_video_play_position_get(const Evas_Object *video);
/**
* @brief Set the current position (in seconds) to be played in the
* Elm_Video object.
*
* @param video The video object.
* @param position The time (in seconds) since the beginning of the media file.
*
* @ingroup Video
*/
EAPI void elm_video_play_position_set(Evas_Object *video, double position);
/**
* @brief Get the total playing time (in seconds) of the Elm_Video object.
*
* @param video The video object.
* @return The total duration (in seconds) of the media file.
*
* @ingroup Video
*/
EAPI double elm_video_play_length_get(const Evas_Object *video);
/**
* @brief Set whether the object can remember the last played position.
*
* @param video The video object.
* @param remember the last played position of the Elm_Video object.
*
* @note This API only serves as indication. System support is required.
*
* @ingroup Video
*/
EAPI void elm_video_remember_position_set(Evas_Object *video, Eina_Bool remember);
/**
* @brief Set whether the object can remember the last played position.
*
* @param video The video object.
* @return whether the object remembers the last played position (@c EINA_TRUE)
* or not.
*
* @note This API only serves as indication. System support is required.
*
* @ingroup Video
*/
EAPI Eina_Bool elm_video_remember_position_get(const Evas_Object *video);
/**
* @brief Get the title (for instance DVD title) from this emotion object.
*
* @param video The Elm_Video object.
* @return A string containing the title.
*
* This function is only useful when playing a DVD.
*
* @note Don't change or free the string returned by this function.
*
* @ingroup Video
*/
EAPI const char *elm_video_title_get(const Evas_Object *video);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,350 @@
/**
* Structure used to report load errors.
*
* Load errors are reported as signal by elm_web. All the strings are
* temporary references and should @b not be used after the signal
* callback returns. If it's required, make copies with strdup() or
* eina_stringshare_add() (they are not even guaranteed to be
* stringshared, so must use eina_stringshare_add() and not
* eina_stringshare_ref()).
*/
typedef struct _Elm_Web_Frame_Load_Error Elm_Web_Frame_Load_Error;
/**
* Structure used to report load errors.
*
* Load errors are reported as signal by elm_web. All the strings are
* temporary references and should @b not be used after the signal
* callback returns. If it's required, make copies with strdup() or
* eina_stringshare_add() (they are not even guaranteed to be
* stringshared, so must use eina_stringshare_add() and not
* eina_stringshare_ref()).
*/
struct _Elm_Web_Frame_Load_Error
{
int code; /**< Numeric error code */
Eina_Bool is_cancellation; /**< Error produced by canceling a request */
const char *domain; /**< Error domain name */
const char *description; /**< Error description (already localized) */
const char *failing_url; /**< The URL that failed to load */
Evas_Object *frame; /**< Frame object that produced the error */
};
/**
* The possibles types that the items in a menu can be
*/
typedef enum
{
ELM_WEB_MENU_SEPARATOR,
ELM_WEB_MENU_GROUP,
ELM_WEB_MENU_OPTION
} Elm_Web_Menu_Item_Type;
/**
* Structure describing the items in a menu
*/
typedef struct _Elm_Web_Menu_Item Elm_Web_Menu_Item;
/**
* Structure describing the items in a menu
*/
struct _Elm_Web_Menu_Item
{
const char *text; /**< The text for the item */
Elm_Web_Menu_Item_Type type; /**< The type of the item */
};
/**
* Structure describing the menu of a popup
*
* This structure will be passed as the @c event_info for the "popup,create"
* signal, which is emitted when a dropdown menu is opened. Users wanting
* to handle these popups by themselves should listen to this signal and
* set the @c handled property of the struct to @c EINA_TRUE. Leaving this
* property as @c EINA_FALSE means that the user will not handle the popup
* and the default implementation will be used.
*
* When the popup is ready to be dismissed, a "popup,willdelete" signal
* will be emitted to notify the user that it can destroy any objects and
* free all data related to it.
*
* @see elm_web_popup_selected_set()
* @see elm_web_popup_destroy()
*
* @ingroup Web
*/
typedef struct _Elm_Web_Menu Elm_Web_Menu;
/**
* Structure describing the menu of a popup
*
* This structure will be passed as the @c event_info for the "popup,create"
* signal, which is emitted when a dropdown menu is opened. Users wanting
* to handle these popups by themselves should listen to this signal and
* set the @c handled property of the struct to @c EINA_TRUE. Leaving this
* property as @c EINA_FALSE means that the user will not handle the popup
* and the default implementation will be used.
*
* When the popup is ready to be dismissed, a "popup,willdelete" signal
* will be emitted to notify the user that it can destroy any objects and
* free all data related to it.
*
* @see elm_web_popup_selected_set()
* @see elm_web_popup_destroy()
*
* @ingroup Web
*/
struct _Elm_Web_Menu
{
Eina_List *items; /**< List of #Elm_Web_Menu_Item */
int x; /**< The X position of the popup, relative to the elm_web object */
int y; /**< The Y position of the popup, relative to the elm_web object */
int width; /**< Width of the popup menu */
int height; /**< Height of the popup menu */
Eina_Bool handled : 1; /**< Set to @c EINA_TRUE by the user to indicate that the popup has been handled and the default implementation should be ignored. Leave as @c EINA_FALSE otherwise. */
};
typedef struct _Elm_Web_Download Elm_Web_Download;
struct _Elm_Web_Download
{
const char *url;
};
/**
* Types of zoom available.
*/
typedef enum
{
ELM_WEB_ZOOM_MODE_MANUAL = 0, /**< Zoom controlled normally by elm_web_zoom_set */
ELM_WEB_ZOOM_MODE_AUTO_FIT, /**< Zoom until content fits in web object */
ELM_WEB_ZOOM_MODE_AUTO_FILL, /**< Zoom until content fills web object */
ELM_WEB_ZOOM_MODE_LAST /**< Sentinel value to indicate end */
} Elm_Web_Zoom_Mode;
/**
* Opaque handler containing the features (such as statusbar, menubar, etc)
* that are to be set on a newly requested window.
*/
typedef struct _Elm_Web_Window_Features Elm_Web_Window_Features;
/**
* Definitions of web window features.
*
*/
typedef enum
{
ELM_WEB_WINDOW_FEATURE_TOOLBAR,
ELM_WEB_WINDOW_FEATURE_STATUSBAR,
ELM_WEB_WINDOW_FEATURE_SCROLLBARS,
ELM_WEB_WINDOW_FEATURE_MENUBAR,
ELM_WEB_WINDOW_FEATURE_LOCATIONBAR,
ELM_WEB_WINDOW_FEATURE_FULLSCREEN
} Elm_Web_Window_Feature_Flag;
/**
* Callback type for the create_window hook.
*
* @param data User data pointer set when setting the hook function.
* @param obj The elm_web object requesting the new window.
* @param js Set to @c EINA_TRUE if the request was originated from
* JavaScript. @c EINA_FALSE otherwise.
* @param window_features A pointer of #Elm_Web_Window_Features indicating
* the features requested for the new window.
*
* @return The @c elm_web widget where the request will be loaded. That is,
* if a new window or tab is created, the elm_web widget in it should be
* returned, and @b NOT the window object. Returning @c NULL should cancel
* the request.
*
* @see elm_web_window_create_hook_set()
*
* @ingroup Web
*/
typedef Evas_Object *(*Elm_Web_Window_Open)(void *data, Evas_Object *obj, Eina_Bool js, const Elm_Web_Window_Features *window_features);
/**
* Callback type for the JS alert hook.
*
* @param data User data pointer set when setting the hook function.
* @param obj The elm_web object requesting the new window.
* @param message The message to show in the alert dialog.
*
* @return The object representing the alert dialog.
* Elm_Web will run a second main loop to handle the dialog and normal
* flow of the application will be restored when the object is deleted, so
* the user should handle the popup properly in order to delete the object
* when the action is finished.
* If the function returns @c NULL the popup will be ignored.
*
* @see elm_web_dialog_alert_hook_set()
*
* @ingroup Web
*/
typedef Evas_Object *(*Elm_Web_Dialog_Alert)(void *data, Evas_Object *obj, const char *message);
/**
* Callback type for the JS confirm hook.
*
* @param data User data pointer set when setting the hook function.
* @param obj The elm_web object requesting the new window.
* @param message The message to show in the confirm dialog.
* @param ret Pointer to store the user selection. @c EINA_TRUE if
* the user selected @c Ok, @c EINA_FALSE otherwise.
*
* @return The object representing the confirm dialog.
* Elm_Web will run a second main loop to handle the dialog and normal
* flow of the application will be restored when the object is deleted, so
* the user should handle the popup properly in order to delete the object
* when the action is finished.
* If the function returns @c NULL the popup will be ignored.
*
* @see elm_web_dialog_confirm_hook_set()
*
* @ingroup Web
*/
typedef Evas_Object *(*Elm_Web_Dialog_Confirm)(void *data, Evas_Object *obj, const char *message, Eina_Bool *ret);
/**
* Callback type for the JS prompt hook.
*
* @param data User data pointer set when setting the hook function.
* @param obj The elm_web object requesting the new window.
* @param message The message to show in the prompt dialog.
* @param def_value The default value to present the user in the entry
* @param value Pointer to store the value given by the user. Must
* be a malloc'ed string or @c NULL if the user canceled the popup.
* @param ret Pointer to store the user selection. @c EINA_TRUE if
* the user selected @c Ok, @c EINA_FALSE otherwise.
*
* @return The object representing the prompt dialog.
* Elm_Web will run a second main loop to handle the dialog and normal
* flow of the application will be restored when the object is deleted, so
* the user should handle the popup properly in order to delete the object
* when the action is finished.
* If the function returns @c NULL the popup will be ignored.
*
* @see elm_web_dialog_prompt_hook_set()
*
* @ingroup Web
*/
typedef Evas_Object *(*Elm_Web_Dialog_Prompt)(void *data, Evas_Object *obj, const char *message, const char *def_value, const char **value, Eina_Bool *ret);
/**
* Callback type for the JS file selector hook.
*
* @param data User data pointer set when setting the hook function.
* @param obj The elm_web object requesting the new window.
* @param allows_multiple @c EINA_TRUE if multiple files can be selected.
* @param accept_types Mime types accepted.
* @param selected Pointer to store the list of malloc'ed strings
* containing the path to each file selected. Must be @c NULL if the file
* dialog is canceled.
* @param ret Pointer to store the user selection. @c EINA_TRUE if
* the user selected @c Ok, @c EINA_FALSE otherwise.
*
* @return The object representing the file selector dialog.
* Elm_Web will run a second main loop to handle the dialog and normal
* flow of the application will be restored when the object is deleted, so
* the user should handle the popup properly in order to delete the object
* when the action is finished.
* If the function returns @c NULL the popup will be ignored.
*
* @see elm_web_dialog_file selector_hook_set()
*
* @ingroup Web
*/
typedef Evas_Object *(*Elm_Web_Dialog_File_Selector)(void *data, Evas_Object *obj, Eina_Bool allows_multiple, Eina_List *accept_types, Eina_List **selected, Eina_Bool *ret);
/**
* Callback type for the JS console message hook.
*
* When a console message is added from JavaScript, any set function to the
* console message hook will be called for the user to handle. There is no
* default implementation of this hook.
*
* @param data User data pointer set when setting the hook function.
* @param obj The elm_web object that originated the message.
* @param message The message sent.
* @param line_number The line number.
* @param source_id Source id.
*
* @see elm_web_console_message_hook_set()
*
* @ingroup Web
*/
typedef void (*Elm_Web_Console_Message)(void *data, Evas_Object *obj, const char *message, unsigned int line_number, const char *source_id);
/**
* Add a new web object to the parent.
*
* @param parent The parent object.
* @return The new object or @c NULL if it cannot be created.
*
* @see elm_web_uri_set()
* @see elm_web_webkit_view_get()
*
* @ingroup Web
*/
EAPI Evas_Object *elm_web_add(Evas_Object *parent);
/**
* Sets the zoom mode to use
*
* The modes can be any of those defined in ::Elm_Web_Zoom_Mode, except
* ::ELM_WEB_ZOOM_MODE_LAST. The default is ::ELM_WEB_ZOOM_MODE_MANUAL.
*
* ::ELM_WEB_ZOOM_MODE_MANUAL means the zoom level will be controlled
* with the elm_web_zoom_set() function.
* ::ELM_WEB_ZOOM_MODE_AUTO_FIT will calculate the needed zoom level to
* make sure the entirety of the web object's contents are shown.
* ::ELM_WEB_ZOOM_MODE_AUTO_FILL will calculate the needed zoom level to
* fit the contents in the web object's size, without leaving any space
* unused.
*
* @param obj The web object
* @param mode The mode to set
*
* @ingroup Web
*/
EAPI void elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode);
/**
* Gets the currently set zoom mode
*
* @param obj The web object
*
* @return The current zoom mode set for the object,
* or ::ELM_WEB_ZOOM_MODE_LAST on error
*
* @ingroup Web
*/
EAPI Elm_Web_Zoom_Mode elm_web_zoom_mode_get(const Evas_Object *obj);
/**
* Gets boolean properties from Elm_Web_Window_Features
* (such as statusbar, menubar, etc) that are on a window.
*
* @param wf The web window features object
* @param flag The web window feature flag whose value is required.
*
* @return @c EINA_TRUE if the flag is set, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_window_features_property_get(const Elm_Web_Window_Features *wf, Elm_Web_Window_Feature_Flag flag);
/**
*
* TODO : Add documentation.
*
* @param wf The web window features object
* @param x, y, w, h - the co-ordinates of the web view window.
*
* @ingroup Web
*/
EAPI void elm_web_window_features_region_get(const Elm_Web_Window_Features *wf, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
EAPI void elm_web_window_features_ref(Elm_Web_Window_Features *wf);
EAPI void elm_web_window_features_unref(Elm_Web_Window_Features *wf);

View File

@ -0,0 +1,703 @@
#define ELM_OBJ_WEB_CLASS elm_obj_web_class_get()
const Eo_Class *elm_obj_web_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_WEB_BASE_ID;
enum
{
ELM_OBJ_WEB_SUB_ID_WEBKIT_VIEW_GET,
ELM_OBJ_WEB_SUB_ID_WINDOW_CREATE_HOOK_SET,
ELM_OBJ_WEB_SUB_ID_DIALOG_ALERT_HOOK_SET,
ELM_OBJ_WEB_SUB_ID_DIALOG_CONFIRM_HOOK_SET,
ELM_OBJ_WEB_SUB_ID_DIALOG_PROMPT_HOOK_SET,
ELM_OBJ_WEB_SUB_ID_DIALOG_FILE_SELECTOR_HOOK_SET,
ELM_OBJ_WEB_SUB_ID_CONSOLE_MESSAGE_HOOK_SET,
ELM_OBJ_WEB_SUB_ID_USERAGENT_SET,
ELM_OBJ_WEB_SUB_ID_USERAGENT_GET,
ELM_OBJ_WEB_SUB_ID_TAB_PROPAGATE_GET,
ELM_OBJ_WEB_SUB_ID_TAB_PROPAGATE_SET,
ELM_OBJ_WEB_SUB_ID_URI_SET,
ELM_OBJ_WEB_SUB_ID_URI_GET,
ELM_OBJ_WEB_SUB_ID_TITLE_GET,
ELM_OBJ_WEB_SUB_ID_BG_COLOR_SET,
ELM_OBJ_WEB_SUB_ID_BG_COLOR_GET,
ELM_OBJ_WEB_SUB_ID_SELECTION_GET,
ELM_OBJ_WEB_SUB_ID_POPUP_SELECTED_SET,
ELM_OBJ_WEB_SUB_ID_POPUP_DESTROY,
ELM_OBJ_WEB_SUB_ID_TEXT_SEARCH,
ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_MARK,
ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_UNMARK_ALL,
ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_HIGHLIGHT_SET,
ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_HIGHLIGHT_GET,
ELM_OBJ_WEB_SUB_ID_LOAD_PROGRESS_GET,
ELM_OBJ_WEB_SUB_ID_STOP,
ELM_OBJ_WEB_SUB_ID_RELOAD,
ELM_OBJ_WEB_SUB_ID_RELOAD_FULL,
ELM_OBJ_WEB_SUB_ID_BACK,
ELM_OBJ_WEB_SUB_ID_FORWARD,
ELM_OBJ_WEB_SUB_ID_NAVIGATE,
ELM_OBJ_WEB_SUB_ID_BACK_POSSIBLE_GET,
ELM_OBJ_WEB_SUB_ID_FORWARD_POSSIBLE_GET,
ELM_OBJ_WEB_SUB_ID_NAVIGATE_POSSIBLE_GET,
ELM_OBJ_WEB_SUB_ID_HISTORY_ENABLED_GET,
ELM_OBJ_WEB_SUB_ID_HISTORY_ENABLED_SET,
ELM_OBJ_WEB_SUB_ID_ZOOM_SET,
ELM_OBJ_WEB_SUB_ID_ZOOM_GET,
ELM_OBJ_WEB_SUB_ID_ZOOM_MODE_SET,
ELM_OBJ_WEB_SUB_ID_ZOOM_MODE_GET,
ELM_OBJ_WEB_SUB_ID_REGION_SHOW,
ELM_OBJ_WEB_SUB_ID_REGION_BRING_IN,
ELM_OBJ_WEB_SUB_ID_INWIN_MODE_SET,
ELM_OBJ_WEB_SUB_ID_INWIN_MODE_GET,
ELM_OBJ_WEB_SUB_ID_LAST
};
#define ELM_OBJ_WEB_ID(sub_id) (ELM_OBJ_WEB_BASE_ID + sub_id)
/**
* @def elm_obj_web_webkit_view_get
* @since 1.8
*
* Get internal ewk_view object from web object.
*
* @param[out] ret
*
* @see elm_web_webkit_view_get
*
* @ingroup Web
*/
#define elm_obj_web_webkit_view_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_WEBKIT_VIEW_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_web_window_create_hook_set
* @since 1.8
*
* Sets the function to call when a new window is requested
*
* @param[in] func
* @param[in] data
*
* @see elm_web_window_create_hook_set
*
* @ingroup Web
*/
#define elm_obj_web_window_create_hook_set(func, data) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_WINDOW_CREATE_HOOK_SET), EO_TYPECHECK(Elm_Web_Window_Open, func), EO_TYPECHECK(void *, data)
/**
* @def elm_obj_web_dialog_alert_hook_set
* @since 1.8
*
* Sets the function to call when an alert dialog
*
* @param[in] func
* @param[in] data
*
* @see elm_web_dialog_alert_hook_set
*
* @ingroup Web
*/
#define elm_obj_web_dialog_alert_hook_set(func, data) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_DIALOG_ALERT_HOOK_SET), EO_TYPECHECK(Elm_Web_Dialog_Alert, func), EO_TYPECHECK(void *, data)
/**
* @def elm_obj_web_dialog_confirm_hook_set
* @since 1.8
*
* Sets the function to call when an confirm dialog
*
* @param[in] func
* @param[in] data
*
* @see elm_web_dialog_confirm_hook_set
*
* @ingroup Web
*/
#define elm_obj_web_dialog_confirm_hook_set(func, data) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_DIALOG_CONFIRM_HOOK_SET), EO_TYPECHECK(Elm_Web_Dialog_Confirm, func), EO_TYPECHECK(void *, data)
/**
* @def elm_obj_web_dialog_prompt_hook_set
* @since 1.8
*
* Sets the function to call when an prompt dialog
*
* @param[in] func
* @param[in] data
*
* @see elm_web_dialog_prompt_hook_set
*
* @ingroup Web
*/
#define elm_obj_web_dialog_prompt_hook_set(func, data) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_DIALOG_PROMPT_HOOK_SET), EO_TYPECHECK(Elm_Web_Dialog_Prompt, func), EO_TYPECHECK(void *, data)
/**
* @def elm_obj_web_dialog_file_selector_hook_set
* @since 1.8
*
* Sets the function to call when an file selector dialog
*
* @param[in] func
* @param[in] data
*
* @see elm_web_dialog_file_selector_hook_set
*
* @ingroup Web
*/
#define elm_obj_web_dialog_file_selector_hook_set(func, data) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_DIALOG_FILE_SELECTOR_HOOK_SET), EO_TYPECHECK(Elm_Web_Dialog_File_Selector, func), EO_TYPECHECK(void *, data)
/**
* @def elm_obj_web_console_message_hook_set
* @since 1.8
*
* Sets the function to call when a console message is emitted from JS
*
* @param[in] func
* @param[in] data
*
* @see elm_web_console_message_hook_set
*
* @ingroup Web
*/
#define elm_obj_web_console_message_hook_set(func, data) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_CONSOLE_MESSAGE_HOOK_SET), EO_TYPECHECK(Elm_Web_Console_Message, func), EO_TYPECHECK(void *, data)
/**
* @def elm_obj_web_useragent_set
* @since 1.8
*
* Change useragent of a elm_web object
*
* @param[in] user_agent
*
* @see elm_web_useragent_set
*
* @ingroup Web
*/
#define elm_obj_web_useragent_set(user_agent) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_USERAGENT_SET), EO_TYPECHECK(const char *, user_agent)
/**
* @def elm_obj_web_useragent_get
* @since 1.8
*
* Return current useragent of elm_web object
*
* @param[out] ret
*
* @see elm_web_useragent_get
*
* @ingroup Web
*/
#define elm_obj_web_useragent_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_USERAGENT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_web_tab_propagate_get
* @since 1.8
*
* Gets the status of the tab propagation
*
* @param[out] ret
*
* @see elm_web_tab_propagate_get
*
* @ingroup Web
*/
#define elm_obj_web_tab_propagate_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TAB_PROPAGATE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_tab_propagate_set
* @since 1.8
*
* Sets whether to use tab propagation
*
* @param[in] propagate
*
* @see elm_web_tab_propagate_set
*
* @ingroup Web
*/
#define elm_obj_web_tab_propagate_set(propagate) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TAB_PROPAGATE_SET), EO_TYPECHECK(Eina_Bool, propagate)
/**
* @def elm_obj_web_uri_set
* @since 1.8
*
* Sets the URI for the web object
*
* @param[in] uri
* @param[out] ret
*
* @see elm_web_uri_set
*
* @ingroup Web
*/
#define elm_obj_web_uri_set(uri, ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_URI_SET), EO_TYPECHECK(const char *, uri), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_uri_get
* @since 1.8
*
* Gets the current URI for the object
*
* @param[out] ret
*
* @see elm_web_uri_get
*
* @ingroup Web
*/
#define elm_obj_web_uri_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_URI_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_web_title_get
* @since 1.8
*
* Gets the current title
*
* @param[out] ret
*
* @see elm_web_title_get
*
* @ingroup Web
*/
#define elm_obj_web_title_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TITLE_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_web_bg_color_set
* @since 1.8
*
* Sets the background color to be used by the web object
*
* @param[in] r
* @param[in] g
* @param[in] b
* @param[in] a
*
* @see elm_web_bg_color_set
*
* @ingroup Web
*/
#define elm_obj_web_bg_color_set(r, g, b, a) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_BG_COLOR_SET), EO_TYPECHECK(int, r), EO_TYPECHECK(int, g), EO_TYPECHECK(int, b), EO_TYPECHECK(int, a)
/**
* @def elm_obj_web_bg_color_get
* @since 1.8
*
* Gets the background color to be used by the web object
*
* @param[out] r
* @param[out] g
* @param[out] b
* @param[out] a
*
* @see elm_web_bg_color_get
*
* @ingroup Web
*/
#define elm_obj_web_bg_color_get(r, g, b, a) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_BG_COLOR_GET), EO_TYPECHECK(int *, r), EO_TYPECHECK(int *, g), EO_TYPECHECK(int *, b), EO_TYPECHECK(int *, a)
/**
* @def elm_obj_web_selection_get
* @since 1.8
*
* Gets a copy of the currently selected text
*
* @param[out] ret
*
* @see elm_web_selection_get
*
* @ingroup Web
*/
#define elm_obj_web_selection_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_SELECTION_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_web_popup_selected_set
* @since 1.8
*
* Tells the web object which index in the currently open popup was selected
*
* @param[in] idx
*
* @see elm_web_popup_selected_set
*
* @ingroup Web
*/
#define elm_obj_web_popup_selected_set(idx) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_POPUP_SELECTED_SET), EO_TYPECHECK(int, idx)
/**
* @def elm_obj_web_popup_destroy
* @since 1.8
*
* Dismisses an open dropdown popup
*
* @param[out] ret
*
* @see elm_web_popup_destroy
*
* @ingroup Web
*/
#define elm_obj_web_popup_destroy(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_POPUP_DESTROY), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_text_search
* @since 1.8
*
* Searches the given string in a document.
*
* @param[in] string
* @param[in] case_sensitive
* @param[in] forward
* @param[in] wrap
* @param[out] ret
*
* @see elm_web_text_search
*
* @ingroup Web
*/
#define elm_obj_web_text_search(string, case_sensitive, forward, wrap, ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TEXT_SEARCH), EO_TYPECHECK(const char *, string), EO_TYPECHECK(Eina_Bool, case_sensitive), EO_TYPECHECK(Eina_Bool, forward), EO_TYPECHECK(Eina_Bool, wrap), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_text_matches_mark
* @since 1.8
*
* Marks matches of the given string in a document.
*
* @param[in] string
* @param[in] case_sensitive
* @param[in] highlight
* @param[in] limit
* @param[out] ret
*
* @see elm_web_text_matches_mark
*
* @ingroup Web
*/
#define elm_obj_web_text_matches_mark(string, case_sensitive, highlight, limit, ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_MARK), EO_TYPECHECK(const char *, string), EO_TYPECHECK(Eina_Bool, case_sensitive), EO_TYPECHECK(Eina_Bool, highlight), EO_TYPECHECK(unsigned int, limit), EO_TYPECHECK(unsigned int *, ret)
/**
* @def elm_obj_web_text_matches_unmark_all
* @since 1.8
*
* Clears all marked matches in the document
*
* @param[out] ret
*
* @see elm_web_text_matches_unmark_all
*
* @ingroup Web
*/
#define elm_obj_web_text_matches_unmark_all(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_UNMARK_ALL), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_text_matches_highlight_set
* @since 1.8
*
* Sets whether to highlight the matched marks
*
* @param[in] highlight
* @param[out] ret
*
* @see elm_web_text_matches_highlight_set
*
* @ingroup Web
*/
#define elm_obj_web_text_matches_highlight_set(highlight, ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_HIGHLIGHT_SET), EO_TYPECHECK(Eina_Bool, highlight), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_text_matches_highlight_get
* @since 1.8
*
* Gets whether highlighting marks is enabled
*
* @param[out] ret
*
* @see elm_web_text_matches_highlight_get
*
* @ingroup Web
*/
#define elm_obj_web_text_matches_highlight_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_TEXT_MATCHES_HIGHLIGHT_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_load_progress_get
* @since 1.8
*
* Gets the overall loading progress of the page
*
* @param[out] ret
*
* @see elm_web_load_progress_get
*
* @ingroup Web
*/
#define elm_obj_web_load_progress_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_LOAD_PROGRESS_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_web_stop
* @since 1.8
*
* Stops loading the current page
*
* @param[out] ret
*
* @see elm_web_stop
*
* @ingroup Web
*/
#define elm_obj_web_stop(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_STOP), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_reload
* @since 1.8
*
* Requests a reload of the current document in the object
*
* @param[out] ret
*
* @see elm_web_reload
*
* @ingroup Web
*/
#define elm_obj_web_reload(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_RELOAD), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_reload_full
* @since 1.8
*
* Requests a reload of the current document, avoiding any existing caches
*
* @param[out] ret
*
* @see elm_web_reload_full
*
* @ingroup Web
*/
#define elm_obj_web_reload_full(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_RELOAD_FULL), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_back
* @since 1.8
*
* Goes back one step in the browsing history
*
* @param[out] ret
*
* @see elm_web_back
*
* @ingroup Web
*/
#define elm_obj_web_back(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_BACK), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_forward
* @since 1.8
*
* Goes forward one step in the browsing history
*
* @param[out] ret
*
* @see elm_web_forward
*
* @ingroup Web
*/
#define elm_obj_web_forward(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_FORWARD), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_navigate
* @since 1.8
*
* Jumps the given number of steps in the browsing history
*
* @param[in] steps
* @param[out] ret
*
* @see elm_web_navigate
*
* @ingroup Web
*/
#define elm_obj_web_navigate(steps, ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_NAVIGATE), EO_TYPECHECK(int, steps), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_back_possible_get
* @since 1.8
*
* Queries whether it's possible to go back in history
*
* @param[out] ret
*
* @see elm_web_back_possible_get
*
* @ingroup Web
*/
#define elm_obj_web_back_possible_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_BACK_POSSIBLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_forward_possible_get
* @since 1.8
*
* Queries whether it's possible to go forward in history
*
* @param[out] ret
*
* @see elm_web_forward_possible_get
*
* @ingroup Web
*/
#define elm_obj_web_forward_possible_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_FORWARD_POSSIBLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_navigate_possible_get
* @since 1.8
*
* Queries whether it's possible to jump the given number of steps
*
* @param[in] steps
* @param[out] ret
*
* @see elm_web_navigate_possible_get
*
* @ingroup Web
*/
#define elm_obj_web_navigate_possible_get(steps, ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_NAVIGATE_POSSIBLE_GET), EO_TYPECHECK(int, steps), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_history_enabled_get
* @since 1.8
*
* Gets whether browsing history is enabled for the given object
*
* @param[out] ret
*
* @see elm_web_history_enabled_get
*
* @ingroup Web
*/
#define elm_obj_web_history_enabled_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_HISTORY_ENABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_web_history_enabled_set
* @since 1.8
*
* Enables or disables the browsing history
*
* @param[in] enable
*
* @see elm_web_history_enabled_set
*
* @ingroup Web
*/
#define elm_obj_web_history_enabled_set(enable) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_HISTORY_ENABLED_SET), EO_TYPECHECK(Eina_Bool, enable)
/**
* @def elm_obj_web_zoom_set
* @since 1.8
*
* Sets the zoom level of the web object
*
* @param[in] zoom
*
* @see elm_web_zoom_set
*
* @ingroup Web
*/
#define elm_obj_web_zoom_set(zoom) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_ZOOM_SET), EO_TYPECHECK(double, zoom)
/**
* @def elm_obj_web_zoom_get
* @since 1.8
*
* Gets the current zoom level set on the web object
*
* @param[out] ret
*
* @see elm_web_zoom_get
*
* @ingroup Web
*/
#define elm_obj_web_zoom_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_ZOOM_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_web_zoom_mode_set
* @since 1.8
*
* Sets the zoom mode to use
*
* @param[in] mode
*
* @see elm_web_zoom_mode_set
*
* @ingroup Web
*/
#define elm_obj_web_zoom_mode_set(mode) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_ZOOM_MODE_SET), EO_TYPECHECK(Elm_Web_Zoom_Mode, mode)
/**
* @def elm_obj_web_zoom_mode_get
* @since 1.8
*
* Gets the currently set zoom mode
*
* @param[out] ret
*
* @see elm_web_zoom_mode_get
*
* @ingroup Web
*/
#define elm_obj_web_zoom_mode_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_ZOOM_MODE_GET), EO_TYPECHECK(Elm_Web_Zoom_Mode *, ret)
/**
* @def elm_obj_web_region_show
* @since 1.8
*
* Shows the given region in the web object
*
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_web_region_show
*
* @ingroup Web
*/
#define elm_obj_web_region_show(x, y, w, h) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_REGION_SHOW), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_web_region_bring_in
* @since 1.8
*
* Brings in the region to the visible area
*
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_web_region_bring_in
*
* @ingroup Web
*/
#define elm_obj_web_region_bring_in(x, y, w, h) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_REGION_BRING_IN), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(int, w), EO_TYPECHECK(int, h)
/**
* @def elm_obj_web_inwin_mode_set
* @since 1.8
*
* Sets the default dialogs to use an Inwin instead of a normal window
*
* @param[in] value
*
* @see elm_web_inwin_mode_set
*
* @ingroup Web
*/
#define elm_obj_web_inwin_mode_set(value) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_INWIN_MODE_SET), EO_TYPECHECK(Eina_Bool, value)
/**
* @def elm_obj_web_inwin_mode_get
* @since 1.8
*
* Gets whether Inwin mode is set for the current object
*
* @param[out] ret
*
* @see elm_web_inwin_mode_get
*
* @ingroup Web
*/
#define elm_obj_web_inwin_mode_get(ret) ELM_OBJ_WEB_ID(ELM_OBJ_WEB_SUB_ID_INWIN_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,610 @@
/**
* Get internal ewk_view object from web object.
*
* Elementary may not provide some low level features of EWebKit,
* instead of cluttering the API with proxy methods we opted to
* return the internal reference. Be careful using it as it may
* interfere with elm_web behavior.
*
* @param obj The web object.
* @return The internal ewk_view object or @c NULL if it does not
* exist. (Failure to create or Elementary compiled without
* ewebkit)
*
* @see elm_web_add()
*
* @ingroup Web
*/
EAPI Evas_Object *elm_web_webkit_view_get(const Evas_Object *obj);
/**
* Sets the function to call when a new window is requested
*
* This hook will be called when a request to create a new window is
* issued from the web page loaded.
* There is no default implementation for this feature, so leaving this
* unset or passing @c NULL in @p func will prevent new windows from
* opening.
*
* @param obj The web object where to set the hook function
* @param func The hook function to be called when a window is requested
* @param data User data
*
* @ingroup Web
*/
EAPI void elm_web_window_create_hook_set(Evas_Object *obj, Elm_Web_Window_Open func, void *data);
/**
* Sets the function to call when an alert dialog
*
* This hook will be called when a JavaScript alert dialog is requested.
* If no function is set or @c NULL is passed in @p func, the default
* implementation will take place.
*
* @param obj The web object where to set the hook function
* @param func The callback function to be used
* @param data User data
*
* @see elm_web_inwin_mode_set()
*
* @ingroup Web
*/
EAPI void elm_web_dialog_alert_hook_set(Evas_Object *obj, Elm_Web_Dialog_Alert func, void *data);
/**
* Sets the function to call when an confirm dialog
*
* This hook will be called when a JavaScript confirm dialog is requested.
* If no function is set or @c NULL is passed in @p func, the default
* implementation will take place.
*
* @param obj The web object where to set the hook function
* @param func The callback function to be used
* @param data User data
*
* @see elm_web_inwin_mode_set()
*
* @ingroup Web
*/
EAPI void elm_web_dialog_confirm_hook_set(Evas_Object *obj, Elm_Web_Dialog_Confirm func, void *data);
/**
* Sets the function to call when an prompt dialog
*
* This hook will be called when a JavaScript prompt dialog is requested.
* If no function is set or @c NULL is passed in @p func, the default
* implementation will take place.
*
* @param obj The web object where to set the hook function
* @param func The callback function to be used
* @param data User data
*
* @see elm_web_inwin_mode_set()
*
* @ingroup Web
*/
EAPI void elm_web_dialog_prompt_hook_set(Evas_Object *obj, Elm_Web_Dialog_Prompt func, void *data);
/**
* Sets the function to call when an file selector dialog
*
* This hook will be called when a JavaScript file selector dialog is
* requested.
* If no function is set or @c NULL is passed in @p func, the default
* implementation will take place.
*
* @param obj The web object where to set the hook function
* @param func The callback function to be used
* @param data User data
*
* @see elm_web_inwin_mode_set()
*
* @ingroup Web
*/
EAPI void elm_web_dialog_file_selector_hook_set(Evas_Object *obj, Elm_Web_Dialog_File_Selector func, void *data);
/**
* Sets the function to call when a console message is emitted from JS
*
* This hook will be called when a console message is emitted from
* JavaScript. There is no default implementation for this feature.
*
* @param obj The web object where to set the hook function
* @param func The callback function to be used
* @param data User data
*
* @ingroup Web
*/
EAPI void elm_web_console_message_hook_set(Evas_Object *obj, Elm_Web_Console_Message func, void *data);
/**
* Change useragent of a elm_web object
*
* @param obj The object
* @param user_agent String for useragent
*
* @ingroup Web
*/
EAPI void elm_web_useragent_set(Evas_Object *obj, const char *user_agent);
/**
* Return current useragent of elm_web object
*
* @param obj The object
* @return Useragent string
*
* @ingroup Web
*/
EAPI const char* elm_web_useragent_get(const Evas_Object *obj);
/**
* Gets the status of the tab propagation
*
* @param obj The web object to query
* @return @c EINA_TRUE if tab propagation is enabled, @c EINA_FALSE otherwise
*
* @see elm_web_tab_propagate_set()
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_tab_propagate_get(const Evas_Object *obj);
/**
* Sets whether to use tab propagation
*
* If tab propagation is enabled, whenever the user presses the Tab key,
* Elementary will handle it and switch focus to the next widget.
* The default value is disabled, where WebKit will handle the Tab key to
* cycle focus though its internal objects, jumping to the next widget
* only when that cycle ends.
*
* @param obj The web object
* @param propagate Whether to propagate Tab keys to Elementary or not
*
* @ingroup Web
*/
EAPI void elm_web_tab_propagate_set(Evas_Object *obj, Eina_Bool propagate);
/**
* Sets the URI for the web object
*
* It must be a full URI, with resource included, in the form
* http://www.enlightenment.org or file:///tmp/something.html
*
* @param obj The web object
* @param uri The URI to set
* @return @c EINA_TRUE if the URI could be set, @c EINA_FALSE if an error occurred.
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_uri_set(Evas_Object *obj, const char *uri);
/**
* Gets the current URI for the object
*
* The returned string must not be freed and is guaranteed to be
* stringshared.
*
* @param obj The web object
* @return A stringshared internal string with the current URI, or @c NULL on
* failure
*
* @ingroup Web
*/
EAPI const char *elm_web_uri_get(const Evas_Object *obj);
/**
* Gets the current title
*
* The returned string must not be freed and is guaranteed to be
* stringshared.
*
* @param obj The web object
* @return A stringshared internal string with the current title, or @c NULL on
* failure
*
* @ingroup Web
*/
EAPI const char *elm_web_title_get(const Evas_Object *obj);
/**
* Sets the background color to be used by the web object
*
* This is the color that will be used by default when the loaded page
* does not set it's own. Color values are pre-multiplied.
*
* @param obj The web object
* @param r Red component
* @param g Green component
* @param b Blue component
* @param a Alpha component
*
* @ingroup Web
*/
EAPI void elm_web_bg_color_set(Evas_Object *obj, int r, int g, int b, int a);
/**
* Gets the background color to be used by the web object
*
* This is the color that will be used by default when the loaded page
* does not set it's own. Color values are pre-multiplied.
*
* @param obj The web object
* @param r Red component
* @param g Green component
* @param b Blue component
* @param a Alpha component
*
* @ingroup Web
*/
EAPI void elm_web_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a);
/**
* Gets a copy of the currently selected text
*
* The string returned must be freed by the user when it's done with it.
*
* @param obj The web object
* @return A newly allocated string, or @c NULL if nothing is selected or an
* error occurred
*
* @ingroup Web
*/
EAPI const char *elm_web_selection_get(const Evas_Object *obj);
/**
* Tells the web object which index in the currently open popup was selected
*
* When the user handles the popup creation from the "popup,created" signal,
* it needs to tell the web object which item was selected by calling this
* function with the index corresponding to the item.
*
* @param obj The web object
* @param index The index selected
*
* @see elm_web_popup_destroy()
*
* @ingroup Web
*/
EAPI void elm_web_popup_selected_set(Evas_Object *obj, int index);
/**
* Dismisses an open dropdown popup
*
* When the popup from a dropdown widget is to be dismissed, either after
* selecting an option or to cancel it, this function must be called, which
* will later emit an "popup,willdelete" signal to notify the user that
* any memory and objects related to this popup can be freed.
*
* @param obj The web object
* @return @c EINA_TRUE if the menu was successfully destroyed, or @c EINA_FALSE
* if there was no menu to destroy
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_popup_destroy(Evas_Object *obj);
/**
* Searches the given string in a document.
*
* @param obj The web object where to search the text
* @param string String to search
* @param case_sensitive If search should be case sensitive or not
* @param forward If search is from cursor and on or backwards
* @param wrap If search should wrap at the end
*
* @return @c EINA_TRUE if the given string was found, @c EINA_FALSE if not
* or failure
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_text_search(const Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool wrap);
/**
* Marks matches of the given string in a document.
*
* @param obj The web object where to search text
* @param string String to match
* @param case_sensitive If match should be case sensitive or not
* @param highlight If matches should be highlighted
* @param limit Maximum amount of matches, or zero to unlimited
*
* @return number of matched @a string
*
* @ingroup Web
*/
EAPI unsigned int elm_web_text_matches_mark(Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool highlight, unsigned int limit);
/**
* Clears all marked matches in the document
*
* @param obj The web object
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_text_matches_unmark_all(Evas_Object *obj);
/**
* Sets whether to highlight the matched marks
*
* If enabled, marks set with elm_web_text_matches_mark() will be
* highlighted.
*
* @param obj The web object
* @param highlight Whether to highlight the marks or not
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_text_matches_highlight_set(Evas_Object *obj, Eina_Bool highlight);
/**
* Gets whether highlighting marks is enabled
*
* @param obj The web object
*
* @return @c EINA_TRUE is marks are set to be highlighted, @c EINA_FALSE
* otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_text_matches_highlight_get(const Evas_Object *obj);
/**
* Gets the overall loading progress of the page
*
* Returns the estimated loading progress of the page, with a value between
* 0.0 and 1.0. This is an estimated progress accounting for all the frames
* included in the page.
*
* @param obj The web object
*
* @return A value between 0.0 and 1.0 indicating the progress, or -1.0 on
* failure
*
* @ingroup Web
*/
EAPI double elm_web_load_progress_get(const Evas_Object *obj);
/**
* Stops loading the current page
*
* Cancels the loading of the current page in the web object. This will
* cause a "load,error" signal to be emitted, with the is_cancellation
* flag set to @c EINA_TRUE.
*
* @param obj The web object
*
* @return @c EINA_TRUE if the cancel was successful, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_stop(Evas_Object *obj);
/**
* Requests a reload of the current document in the object
*
* @param obj The web object
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_reload(Evas_Object *obj);
/**
* Requests a reload of the current document, avoiding any existing caches
*
* @param obj The web object
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_reload_full(Evas_Object *obj);
/**
* Goes back one step in the browsing history
*
* This is equivalent to calling elm_web_object_navigate(obj, -1);
*
* @param obj The web object
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* @see elm_web_history_enabled_set()
* @see elm_web_back_possible()
* @see elm_web_forward()
* @see elm_web_navigate()
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_back(Evas_Object *obj);
/**
* Goes forward one step in the browsing history
*
* This is equivalent to calling elm_web_object_navigate(obj, 1);
*
* @param obj The web object
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* @see elm_web_history_enabled_set()
* @see elm_web_forward_possible_get()
* @see elm_web_back()
* @see elm_web_navigate()
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_forward(Evas_Object *obj);
/**
* Jumps the given number of steps in the browsing history
*
* The @p steps value can be a negative integer to back in history, or a
* positive to move forward.
*
* @param obj The web object
* @param steps The number of steps to jump
*
* @return @c EINA_TRUE on success, @c EINA_FALSE on error or if not enough
* history exists to jump the given number of steps
*
* @see elm_web_history_enabled_set()
* @see elm_web_back()
* @see elm_web_forward()
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_navigate(Evas_Object *obj, int steps);
/**
* Queries whether it's possible to go back in history
*
* @param obj The web object
*
* @return @c EINA_TRUE if it's possible to back in history, @c EINA_FALSE
* otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_back_possible_get(Evas_Object *obj);
/**
* Queries whether it's possible to go forward in history
*
* @param obj The web object
*
* @return @c EINA_TRUE if it's possible to forward in history, @c EINA_FALSE
* otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_forward_possible_get(Evas_Object *obj);
/**
* Queries whether it's possible to jump the given number of steps
*
* The @p steps value can be a negative integer to back in history, or a
* positive to move forward.
*
* @param obj The web object
* @param steps The number of steps to check for
*
* @return @c EINA_TRUE if enough history exists to perform the given jump,
* @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_navigate_possible_get(Evas_Object *obj, int steps);
/**
* Gets whether browsing history is enabled for the given object
*
* @param obj The web object
*
* @return @c EINA_TRUE if history is enabled, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_history_enabled_get(const Evas_Object *obj);
/**
* Enables or disables the browsing history
*
* @param obj The web object
* @param enabled Whether to enable or disable the browsing history
*
* @ingroup Web
*/
EAPI void elm_web_history_enabled_set(Evas_Object *obj, Eina_Bool enabled);
/**
* Sets the zoom level of the web object
*
* Zoom level matches the Webkit API, so 1.0 means normal zoom, with higher
* values meaning zoom in and lower meaning zoom out. This function will
* only affect the zoom level if the mode set with elm_web_zoom_mode_set()
* is ::ELM_WEB_ZOOM_MODE_MANUAL.
*
* @param obj The web object
* @param zoom The zoom level to set
*
* @ingroup Web
*/
EAPI void elm_web_zoom_set(Evas_Object *obj, double zoom);
/**
* Gets the current zoom level set on the web object
*
* Note that this is the zoom level set on the web object and not that
* of the underlying Webkit one. In the ::ELM_WEB_ZOOM_MODE_MANUAL mode,
* the two zoom levels should match, but for the other two modes the
* Webkit zoom is calculated internally to match the chosen mode without
* changing the zoom level set for the web object.
*
* @param obj The web object
*
* @return The zoom level set on the object
*
* @ingroup Web
*/
EAPI double elm_web_zoom_get(const Evas_Object *obj);
/**
* Shows the given region in the web object
*
* @param obj The web object
* @param x The x coordinate of the region to show
* @param y The y coordinate of the region to show
* @param w The width of the region to show
* @param h The height of the region to show
*
* @ingroup Web
*/
EAPI void elm_web_region_show(Evas_Object *obj, int x, int y, int w, int h);
/**
* Brings in the region to the visible area
*
* Like elm_web_region_show(), but it animates the scrolling of the object
* to show the area
*
* @param obj The web object
* @param x The x coordinate of the region to show
* @param y The y coordinate of the region to show
* @param w The width of the region to show
* @param h The height of the region to show
*
* @ingroup Web
*/
EAPI void elm_web_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
/**
* Sets the default dialogs to use an Inwin instead of a normal window
*
* If set, then the default implementation for the JavaScript dialogs and
* file selector will be opened in an Inwin. Otherwise they will use a
* normal separated window.
*
* @param obj The web object
* @param value @c EINA_TRUE to use Inwin, @c EINA_FALSE to use a normal window
*
* @ingroup Web
*/
EAPI void elm_web_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
/**
* Gets whether Inwin mode is set for the current object
*
* @param obj The web object
*
* @return @c EINA_TRUE if Inwin mode is set, @c EINA_FALSE otherwise
*
* @ingroup Web
*/
EAPI Eina_Bool elm_web_inwin_mode_get(const Evas_Object *obj);