ELM_OBJECT_LAYER_LAST /**< last layer known by Elementary */
} Elm_Object_Layer;
-
/**************************************************************************/
EAPI extern int ELM_ECORE_EVENT_ETHUMB_CONNECT;
- /* Objects */
- typedef enum _Elm_Win_Type
- {
- ELM_WIN_BASIC,
- ELM_WIN_DIALOG_BASIC,
- ELM_WIN_DESKTOP,
- ELM_WIN_DOCK,
- ELM_WIN_TOOLBAR,
- ELM_WIN_MENU,
- ELM_WIN_UTILITY,
- ELM_WIN_SPLASH
- } Elm_Win_Type;
-
- typedef enum _Elm_Win_Keyboard_Mode
- {
- ELM_WIN_KEYBOARD_UNKNOWN,
- ELM_WIN_KEYBOARD_OFF,
- ELM_WIN_KEYBOARD_ON,
- ELM_WIN_KEYBOARD_ALPHA,
- ELM_WIN_KEYBOARD_NUMERIC,
- ELM_WIN_KEYBOARD_PIN,
- ELM_WIN_KEYBOARD_PHONE_NUMBER,
- ELM_WIN_KEYBOARD_HEX,
- ELM_WIN_KEYBOARD_TERMINAL,
- ELM_WIN_KEYBOARD_PASSWORD,
- ELM_WIN_KEYBOARD_IP,
- ELM_WIN_KEYBOARD_HOST,
- ELM_WIN_KEYBOARD_FILE,
- ELM_WIN_KEYBOARD_URL,
- ELM_WIN_KEYBOARD_KEYPAD,
- ELM_WIN_KEYBOARD_J2ME
- } Elm_Win_Keyboard_Mode;
-
+ /* Objects */
/**
* Emitted when policy value changed.
*/
ELM_POLICY_QUIT_LAST_WINDOW_CLOSED /**< quit when last window is closed */
} Elm_Policy_Quit;
- typedef enum _Elm_Thumb_Animation_Setting
- {
- ELM_THUMB_ANIMATION_START = 0, /* Play animation once */
- ELM_THUMB_ANIMATION_LOOP, /* Keep playing animation until stop is requested */
- ELM_THUMB_ANIMATION_STOP,
- ELM_THUMB_ANIMATION_LAST
- } Elm_Thumb_Animation_Setting;
-
- typedef struct _Elm_Theme Elm_Theme;
-
- typedef enum _Elm_Clock_Digedit
- {
- ELM_CLOCK_NONE = 0,
- ELM_CLOCK_HOUR_DECIMAL = 1 << 0,
- ELM_CLOCK_HOUR_UNIT = 1 << 1,
- ELM_CLOCK_MIN_DECIMAL = 1 << 2,
- ELM_CLOCK_MIN_UNIT = 1 << 3,
- ELM_CLOCK_SEC_DECIMAL = 1 << 4,
- ELM_CLOCK_SEC_UNIT = 1 << 5,
- ELM_CLOCK_ALL = (1 << 6) - 1
- } Elm_Clock_Digedit;
-
- typedef enum _Elm_Toolbar_Shrink_Mode
- {
- ELM_TOOLBAR_SHRINK_NONE, /**< set toolbar minimun size to fit all the items */
- ELM_TOOLBAR_SHRINK_HIDE, /**< hide excess items */
- ELM_TOOLBAR_SHRINK_SCROLL, /**< allow accessing excess items through a scroller */
- ELM_TOOLBAR_SHRINK_MENU /**< inserts a button to pop up a menu with excess items */
- } Elm_Toolbar_Shrink_Mode;
-
- typedef enum _Elm_Icon_Lookup_Order
- {
- ELM_ICON_LOOKUP_FDO_THEME, /**< icon look up order: freedesktop, theme */
- ELM_ICON_LOOKUP_THEME_FDO, /**< icon look up order: theme, freedesktop */
- ELM_ICON_LOOKUP_FDO, /**< icon look up order: freedesktop */
- ELM_ICON_LOOKUP_THEME /**< icon look up order: theme */
- } Elm_Icon_Lookup_Order;
-
typedef enum _Elm_Focus_Direction
{
ELM_FOCUS_PREVIOUS,
* @param item context dependent item. As an example, if tooltip was
* set on Elm_List_Item, then it is of this type.
*/
- typedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data, Evas_Object *obj, void *item);
-
-
+ typedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data, Evas_Object *obj, void *item);
+
+
#ifndef ELM_LIB_QUICKLAUNCH
#define ELM_MAIN() int main(int argc, char **argv) {elm_init(argc, argv); return elm_main(argc, argv);}
#else
EAPI void elm_coords_finger_size_adjust(int times_w, Evas_Coord *w, int times_h, Evas_Coord *h);
+ /* debug
+ * don't use it unless you are sure
+ */
+ EAPI void elm_object_tree_dump(const Evas_Object *top);
+ EAPI void elm_object_tree_dot_dump(const Evas_Object *top, const char *file);
+
+ /* theme */
+ typedef struct _Elm_Theme Elm_Theme;
+
EAPI Elm_Theme *elm_theme_new(void);
EAPI void elm_theme_free(Elm_Theme *th);
EAPI void elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst);
EAPI void elm_object_theme_set(Evas_Object *obj, Elm_Theme *th);
EAPI Elm_Theme *elm_object_theme_get(const Evas_Object *obj);
+ /* win */
+ typedef enum _Elm_Win_Type
+ {
+ ELM_WIN_BASIC,
+ ELM_WIN_DIALOG_BASIC,
+ ELM_WIN_DESKTOP,
+ ELM_WIN_DOCK,
+ ELM_WIN_TOOLBAR,
+ ELM_WIN_MENU,
+ ELM_WIN_UTILITY,
+ ELM_WIN_SPLASH
+ } Elm_Win_Type;
+
+ typedef enum _Elm_Win_Keyboard_Mode
+ {
+ ELM_WIN_KEYBOARD_UNKNOWN,
+ ELM_WIN_KEYBOARD_OFF,
+ ELM_WIN_KEYBOARD_ON,
+ ELM_WIN_KEYBOARD_ALPHA,
+ ELM_WIN_KEYBOARD_NUMERIC,
+ ELM_WIN_KEYBOARD_PIN,
+ ELM_WIN_KEYBOARD_PHONE_NUMBER,
+ ELM_WIN_KEYBOARD_HEX,
+ ELM_WIN_KEYBOARD_TERMINAL,
+ ELM_WIN_KEYBOARD_PASSWORD,
+ ELM_WIN_KEYBOARD_IP,
+ ELM_WIN_KEYBOARD_HOST,
+ ELM_WIN_KEYBOARD_FILE,
+ ELM_WIN_KEYBOARD_URL,
+ ELM_WIN_KEYBOARD_KEYPAD,
+ ELM_WIN_KEYBOARD_J2ME
+ } Elm_Win_Keyboard_Mode;
+
EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
EAPI void elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj);
EAPI void elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj);
EAPI Eina_Bool elm_win_focus_highlight_enabled_get(const Evas_Object *obj);
EAPI void elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style);
EAPI const char *elm_win_focus_highlight_style_get(const Evas_Object *obj);
-
/*...
* ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
* ecore_x_icccm_hints_set -> window_group (add to ecore_evas)
* minimal
* minimal_vertical
*/
-
/* X specific calls - won't work on non-x engines (return 0) */
EAPI Ecore_X_Window elm_win_xwindow_get(const Evas_Object *obj);
/* smart callbacks called:
* "focus,out" - window lost focus
* "moved" - window that holds the canvas was moved
*/
+
+ /* bg */
typedef enum _Elm_Bg_Option
{
ELM_BG_OPTION_CENTER,
ELM_BG_OPTION_STRETCH,
ELM_BG_OPTION_TILE
} Elm_Bg_Option;
-
EAPI Evas_Object *elm_bg_add(Evas_Object *parent);
EAPI void elm_bg_file_set(Evas_Object *obj, const char *file, const char *group);
EAPI void elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group);
EAPI void elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay);
EAPI Evas_Object *elm_bg_overlay_get(const Evas_Object *obj);
EAPI Evas_Object *elm_bg_overlay_unset(Evas_Object *obj);
-
/* smart callbacks called:
*/
+ /* icon */
+ typedef enum _Elm_Icon_Lookup_Order
+ {
+ ELM_ICON_LOOKUP_FDO_THEME, /**< icon look up order: freedesktop, theme */
+ ELM_ICON_LOOKUP_THEME_FDO, /**< icon look up order: theme, freedesktop */
+ ELM_ICON_LOOKUP_FDO, /**< icon look up order: freedesktop */
+ ELM_ICON_LOOKUP_THEME /**< icon look up order: theme */
+ } Elm_Icon_Lookup_Order;
+
EAPI Evas_Object *elm_icon_add(Evas_Object *parent);
EAPI Eina_Bool elm_icon_file_set(Evas_Object *obj, const char *file, const char *group);
EAPI void elm_icon_file_get(const Evas_Object *obj, const char **file, const char **group);
* "clicked" - the user clicked the icon
*/
+ /* image */
typedef enum _Elm_Image_Orient
{
ELM_IMAGE_ORIENT_NONE,
ELM_IMAGE_FLIP_TRANSPOSE,
ELM_IMAGE_FLIP_TRANSVERSE
} Elm_Image_Orient;
-
EAPI Evas_Object *elm_image_add(Evas_Object *parent);
EAPI Eina_Bool elm_image_file_set(Evas_Object *obj, const char *file, const char *group);
EAPI void elm_image_file_get(const Evas_Object *obj, const char **file, const char **group);
* "clicked" - the user clicked the image
*/
+ /* box */
typedef struct _Elm_Box_Transition Elm_Box_Transition;
EAPI Evas_Object *elm_box_add(Evas_Object *parent);
/* smart callbacks called:
*/
+ /* button */
EAPI Evas_Object *elm_button_add(Evas_Object *parent);
EAPI void elm_button_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_button_label_get(const Evas_Object *obj);
EAPI void elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t);
EAPI double elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj);
+ /* fileselector */
EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
EAPI void elm_fileselector_button_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_fileselector_button_label_get(const Evas_Object *obj);
EAPI Eina_Bool elm_fileselector_entry_inwin_mode_get(const Evas_Object *obj);
EAPI void elm_fileselector_entry_selected_set(Evas_Object *obj, const char *path);
EAPI const char *elm_fileselector_entry_selected_get(const Evas_Object *obj);
-
-
/* available styles:
* default
* anchor
* "unpressed" - when the button is unpressed (released)
*/
+ /* scroller policy */
typedef enum _Elm_Scroller_Policy
{
ELM_SCROLLER_POLICY_AUTO = 0,
* "scroll,drag,stop"
*/
+ /* label */
EAPI Evas_Object *elm_label_add(Evas_Object *parent);
EAPI void elm_label_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_label_label_get(const Evas_Object *obj);
/* smart callbacks called:
*/
+ /* toggle */
EAPI Evas_Object *elm_toggle_add(Evas_Object *parent);
EAPI void elm_toggle_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_toggle_label_get(const Evas_Object *obj);
* "changed" - the user toggled the state
*/
+ /* frame */
EAPI Evas_Object *elm_frame_add(Evas_Object *parent);
EAPI void elm_frame_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_frame_label_get(const Evas_Object *obj);
/* smart callbacks called:
*/
+ /* table */
EAPI Evas_Object *elm_table_add(Evas_Object *parent);
EAPI void elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
EAPI void elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
EAPI void elm_table_unpack(Evas_Object *obj, Evas_Object *subobj);
EAPI void elm_table_clear(Evas_Object *obj, Eina_Bool clear);
+ /* gengrid */
typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class;
typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func;
typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item; /**< Item of Elm_Gengrid. Sub-type of Elm_Widget_Item */
EAPI Elm_Gengrid_Item *elm_gengrid_first_item_get(const Evas_Object *obj);
EAPI Elm_Gengrid_Item *elm_gengrid_last_item_get(const Evas_Object *obj);
-
EAPI Elm_Gengrid_Item *elm_gengrid_item_next_get(const Elm_Gengrid_Item *item);
EAPI Elm_Gengrid_Item *elm_gengrid_item_prev_get(const Elm_Gengrid_Item *item);
EAPI Evas_Object *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item);
* "drag,stop" - Gengrid is not being dragged.
*/
+ /* clock */
+ typedef enum _Elm_Clock_Digedit
+ {
+ ELM_CLOCK_NONE = 0,
+ ELM_CLOCK_HOUR_DECIMAL = 1 << 0,
+ ELM_CLOCK_HOUR_UNIT = 1 << 1,
+ ELM_CLOCK_MIN_DECIMAL = 1 << 2,
+ ELM_CLOCK_MIN_UNIT = 1 << 3,
+ ELM_CLOCK_SEC_DECIMAL = 1 << 4,
+ ELM_CLOCK_SEC_UNIT = 1 << 5,
+ ELM_CLOCK_ALL = (1 << 6) - 1
+ } Elm_Clock_Digedit;
+
EAPI Evas_Object *elm_clock_add(Evas_Object *parent);
EAPI void elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec);
EAPI void elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec);
* "changed" - the user changed the time
*/
+ /* layout */
EAPI Evas_Object *elm_layout_add(Evas_Object *parent);
EAPI Eina_Bool elm_layout_file_set(Evas_Object *obj, const char *file, const char *group);
EAPI Eina_Bool elm_layout_theme_set(Evas_Object *obj, const char *clas, const char *group, const char *style);
EAPI Evas_Object *elm_layout_content_unset(Evas_Object *obj, const char *swallow);
EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text);
EAPI const char *elm_layout_text_get(const Evas_Object *obj, const char *part);
-
EAPI void elm_layout_box_append(Evas_Object *obj, const char *part, Evas_Object *child);
EAPI void elm_layout_box_prepend(Evas_Object *obj, const char *part, Evas_Object *child);
EAPI void elm_layout_box_insert_before(Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
EAPI void elm_layout_table_pack(Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
EAPI Evas_Object *elm_layout_table_unpack(Evas_Object *obj, const char *part, Evas_Object *child_obj);
EAPI void elm_layout_table_clear(Evas_Object *obj, const char *part, Eina_Bool clear);
-
EAPI Evas_Object *elm_layout_edje_get(const Evas_Object *obj);
EAPI void elm_layout_sizing_eval(Evas_Object *obj);
-
- EAPI Eina_Bool elm_layout_part_cursor_set(Evas_Object *obj, const char *part_name, const char *cursor);
- EAPI const char *elm_layout_part_cursor_get(const Evas_Object *obj, const char *part_name);
- EAPI void elm_layout_part_cursor_unset(Evas_Object *obj, const char *part_name);
- EAPI Eina_Bool elm_layout_part_cursor_style_set(Evas_Object *obj, const char *part_name, const char *style);
- EAPI const char *elm_layout_part_cursor_style_get(const Evas_Object *obj, const char *part_name);
- EAPI Eina_Bool elm_layout_part_cursor_engine_only_set(Evas_Object *obj, const char *part_name, Eina_Bool engine_only);
- EAPI Eina_Bool elm_layout_part_cursor_engine_only_get(const Evas_Object *obj, const char *part_name);
-
+ EAPI Eina_Bool elm_layout_part_cursor_set(Evas_Object *obj, const char *part_name, const char *cursor);
+ EAPI const char *elm_layout_part_cursor_get(const Evas_Object *obj, const char *part_name);
+ EAPI void elm_layout_part_cursor_unset(Evas_Object *obj, const char *part_name);
+ EAPI Eina_Bool elm_layout_part_cursor_style_set(Evas_Object *obj, const char *part_name, const char *style);
+ EAPI const char *elm_layout_part_cursor_style_get(const Evas_Object *obj, const char *part_name);
+ EAPI Eina_Bool elm_layout_part_cursor_engine_only_set(Evas_Object *obj, const char *part_name, Eina_Bool engine_only);
+ EAPI Eina_Bool elm_layout_part_cursor_engine_only_get(const Evas_Object *obj, const char *part_name);
/**
* @def elm_layout_icon_set
* Convienience macro to set the icon object in a layout that follows the
/* smart callbacks called:
*/
+ /* notify */
typedef enum _Elm_Notify_Orient
{
ELM_NOTIFY_ORIENT_TOP,
* "block,clicked" - when it's hidden by a click outside of the notify's view
*/
+ /* hover */
typedef enum _Elm_Hover_Axis
{
ELM_HOVER_AXIS_NONE,
* policy was replaced to a new slot direction.
*/
+ /* entry */
typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
struct _Elm_Entry_Anchor_Info
{
ELM_ICON_STANDARD
} Elm_Icon_Type;
typedef struct _Elm_Hoversel_Item Elm_Hoversel_Item; /**< Item of Elm_Hoversel. Sub-type of Elm_Widget_Item */
+
EAPI Evas_Object *elm_entry_add(Evas_Object *parent);
EAPI void elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
EAPI Eina_Bool elm_entry_single_line_get(const Evas_Object *obj);
/* composite widgets - these basically put together basic widgets above
* in convenient packages that do more than basic stuff */
+ /* anchorview */
typedef struct _Elm_Entry_Anchorview_Info Elm_Entry_Anchorview_Info;
struct _Elm_Entry_Anchorview_Info
{
* "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorview_Info
*/
+ /* anchorblock */
typedef struct _Elm_Entry_Anchorblock_Info Elm_Entry_Anchorblock_Info;
struct _Elm_Entry_Anchorblock_Info
{
* "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorblock_Info
*/
+ /* bubble */
EAPI Evas_Object *elm_bubble_add(Evas_Object *parent);
EAPI void elm_bubble_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_bubble_label_get(const Evas_Object *obj);
/* smart callbacks called:
*/
+ /* photo */
EAPI Evas_Object *elm_photo_add(Evas_Object *parent);
EAPI Eina_Bool elm_photo_file_set(Evas_Object *obj, const char *file);
EAPI void elm_photo_size_set(Evas_Object *obj, int size);
* "clicked" - the user clicked the icon
*/
+ /* thumb */
+ typedef enum _Elm_Thumb_Animation_Setting
+ {
+ ELM_THUMB_ANIMATION_START = 0, /* Play animation once */
+ ELM_THUMB_ANIMATION_LOOP, /* Keep playing animation until stop is requested */
+ ELM_THUMB_ANIMATION_STOP,
+ ELM_THUMB_ANIMATION_LAST
+ } Elm_Thumb_Animation_Setting;
+
EAPI Evas_Object *elm_thumb_add(Evas_Object *parent);
EAPI void elm_thumb_reload(Evas_Object *obj);
EAPI void elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key);
EAPI Eina_Bool elm_thumb_ethumb_client_connected(void);
EAPI Eina_Bool elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit);
EAPI Eina_Bool elm_thumb_editable_get(const Evas_Object *obj);
-
/* available styles:
* default
* noframe
* "generate,error" - the thumbnail generation failed
* "load,error" - the thumbnail image loading failed
*/
-
+
+ /* hoversel */
EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent);
EAPI void elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
EAPI Eina_Bool elm_hoversel_horizontal_get(const Evas_Object *obj);
* "dismissed" - the hover is dismissed
*/
+ /* toolbar */
+ typedef enum _Elm_Toolbar_Shrink_Mode
+ {
+ ELM_TOOLBAR_SHRINK_NONE, /**< set toolbar minimun size to fit all the items */
+ ELM_TOOLBAR_SHRINK_HIDE, /**< hide excess items */
+ ELM_TOOLBAR_SHRINK_SCROLL, /**< allow accessing excess items through a scroller */
+ ELM_TOOLBAR_SHRINK_MENU /**< inserts a button to pop up a menu with excess items */
+ } Elm_Toolbar_Shrink_Mode;
+
typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item; /**< Item of Elm_Toolbar. Sub-type of Elm_Widget_Item */
typedef struct _Elm_Toolbar_Item_State Elm_Toolbar_Item_State; /** State of a Elm_Toolbar_Item */
+
EAPI Evas_Object *elm_toolbar_add(Evas_Object *parent);
EAPI void elm_toolbar_icon_size_set(Evas_Object *obj, int icon_size);
EAPI int elm_toolbar_icon_size_get(const Evas_Object *obj);
EAPI Elm_Toolbar_Item_State *elm_toolbar_item_state_get(const Elm_Toolbar_Item *it);
EAPI Elm_Toolbar_Item_State *elm_toolbar_item_state_next(Elm_Toolbar_Item *it);
EAPI Elm_Toolbar_Item_State *elm_toolbar_item_state_prev(Elm_Toolbar_Item *it);
-
EAPI void elm_toolbar_item_tooltip_text_set(Elm_Toolbar_Item *item, const char *text);
EAPI void elm_toolbar_item_tooltip_content_cb_set(Elm_Toolbar_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
EAPI void elm_toolbar_item_tooltip_unset(Elm_Toolbar_Item *item);
/* smart callbacks called:
* "clicked" - when the user clicks on a toolbar item and becomes selected
*/
-
/* available styles:
* default
* transparent (no background or shadow, just show the provided content)
*/
+
+ /* tooltip */
EAPI double elm_tooltip_delay_get(void);
EAPI Eina_Bool elm_tooltip_delay_set(double delay);
EAPI void elm_object_tooltip_show(Evas_Object *obj);
EAPI void elm_object_tooltip_text_set(Evas_Object *obj, const char *text);
EAPI void elm_object_tooltip_content_cb_set(Evas_Object *obj, Elm_Tooltip_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
EAPI void elm_object_tooltip_unset(Evas_Object *obj);
-
EAPI void elm_object_tooltip_style_set(Evas_Object *obj, const char *style);
EAPI const char *elm_object_tooltip_style_get(const Evas_Object *obj);
-
EAPI void elm_object_cursor_set(Evas_Object *obj, const char *cursor);
EAPI const char *elm_object_cursor_get(const Evas_Object *obj);
EAPI void elm_object_cursor_unset(Evas_Object *obj);
EAPI int elm_cursor_engine_only_get(void);
EAPI Eina_Bool elm_cursor_engine_only_set(int engine_only);
+ /* menu */
typedef struct _Elm_Menu_Item Elm_Menu_Item; /**< Item of Elm_Menu. Sub-type of Elm_Widget_Item */
EAPI Evas_Object *elm_menu_add(Evas_Object *parent);
EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent);
* "clicked" - the user clicked the empty space in the menu to dismiss. event_info is NULL.
*/
+ /* list */
typedef enum _Elm_List_Mode
{
ELM_LIST_COMPRESS = 0,
EAPI const Eina_List *elm_list_items_get(const Evas_Object *obj);
EAPI Elm_List_Item *elm_list_selected_item_get(const Evas_Object *obj);
EAPI const Eina_List *elm_list_selected_items_get(const Evas_Object *obj);
-
EAPI void elm_list_item_separator_set(Elm_List_Item *it, Eina_Bool setting);
EAPI Eina_Bool elm_list_item_separator_get(const Elm_List_Item *it);
-
EAPI void elm_list_item_selected_set(Elm_List_Item *item, Eina_Bool selected);
EAPI Eina_Bool elm_list_item_selected_get(const Elm_List_Item *item);
EAPI void elm_list_item_show(Elm_List_Item *item);
EAPI void elm_list_item_label_set(Elm_List_Item *item, const char *text);
EAPI Elm_List_Item *elm_list_item_prev(const Elm_List_Item *it);
EAPI Elm_List_Item *elm_list_item_next(const Elm_List_Item *it);
-
EAPI void elm_list_item_tooltip_text_set(Elm_List_Item *item, const char *text);
EAPI void elm_list_item_tooltip_content_cb_set(Elm_List_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
EAPI void elm_list_item_tooltip_unset(Elm_List_Item *item);
EAPI Eina_Bool elm_list_item_cursor_engine_only_get(const Elm_List_Item *item);
EAPI void elm_list_item_disabled_set(Elm_List_Item *it, Eina_Bool disabled);
EAPI Eina_Bool elm_list_item_disabled_get(const Elm_List_Item *it);
-
EAPI void elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EAPI void elm_list_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
EAPI void elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
* "clicked" - when the user clicks on a carousel item and becomes selected
*/
+ /* slider */
EAPI Evas_Object *elm_slider_add(Evas_Object *parent);
EAPI void elm_slider_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_slider_label_get(const Evas_Object *obj);
* "left", "right" and "center".
*/
+ /* genlist */
typedef enum _Elm_Genlist_Item_Flags
{
ELM_GENLIST_ITEM_NONE = 0,
struct _Elm_Genlist_Item_Class
{
const char *item_style;
- struct _Elm_Genlist_Item_Class_Func
- {
- GenlistItemLabelGetFunc label_get;
- GenlistItemIconGetFunc icon_get;
- GenlistItemStateGetFunc state_get;
- GenlistItemDelFunc del;
- } func;
+ struct {
+ GenlistItemLabelGetFunc label_get;
+ GenlistItemIconGetFunc icon_get;
+ GenlistItemStateGetFunc state_get;
+ GenlistItemDelFunc del;
+ } func;
};
EAPI Evas_Object *elm_genlist_add(Evas_Object *parent);
EAPI int elm_genlist_block_count_get(const Evas_Object *obj);
EAPI void elm_genlist_longpress_timeout_set(Evas_Object *obj, double timeout);
EAPI double elm_genlist_longpress_timeout_get(const Evas_Object *obj);
-
-
/* operations to add items */
EAPI Elm_Genlist_Item *elm_genlist_item_append(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data);
EAPI Elm_Genlist_Item *elm_genlist_item_prepend(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data);
* double_label
* icon_top_text_bottom
*/
-
/* Genlist Item operation */
EAPI Elm_Genlist_Item *elm_genlist_item_next_get(const Elm_Genlist_Item *item);
EAPI Elm_Genlist_Item *elm_genlist_item_prev_get(const Elm_Genlist_Item *item);
EAPI void elm_genlist_item_icons_orphan(Elm_Genlist_Item *it);
EAPI const Evas_Object *elm_genlist_item_object_get(const Elm_Genlist_Item *it);
EAPI void elm_genlist_item_update(Elm_Genlist_Item *item);
-
EAPI void elm_genlist_item_tooltip_text_set(Elm_Genlist_Item *item, const char *text);
EAPI void elm_genlist_item_tooltip_content_cb_set(Elm_Genlist_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
EAPI void elm_genlist_item_tooltip_unset(Elm_Genlist_Item *item);
EAPI void elm_genlist_item_cursor_engine_only_set(Elm_Genlist_Item *item, Eina_Bool engine_only);
EAPI Eina_Bool elm_genlist_item_cursor_engine_only_get(const Elm_Genlist_Item *item);
-
+ /* check */
EAPI Evas_Object *elm_check_add(Evas_Object *parent);
EAPI void elm_check_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_check_label_get(const Evas_Object *obj);
EAPI Eina_Bool elm_check_state_get(const Evas_Object *obj);
EAPI void elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep);
+ /* radio */
EAPI Evas_Object *elm_radio_add(Evas_Object *parent);
EAPI void elm_radio_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_radio_label_get(const Evas_Object *obj);
EAPI int elm_radio_value_get(const Evas_Object *obj);
EAPI void elm_radio_value_pointer_set(Evas_Object *obj, int *valuep);
+ /* pager */
EAPI Evas_Object *elm_pager_add(Evas_Object *parent);
EAPI void elm_pager_content_push(Evas_Object *obj, Evas_Object *content);
EAPI void elm_pager_content_pop(Evas_Object *obj);
EAPI void elm_slideshow_layout_set(Evas_Object *obj, const char *layout);
EAPI const Eina_List *elm_slideshow_layouts_get(const Evas_Object *obj);
-
+ /* file selector */
EAPI Evas_Object *elm_fileselector_add(Evas_Object *parent);
EAPI void elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save);
EAPI Eina_Bool elm_fileselector_is_save_get(const Evas_Object *obj);
EAPI const char *elm_fileselector_path_get(const Evas_Object *obj);
EAPI const char *elm_fileselector_selected_get(const Evas_Object *obj);
EAPI Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const char *path);
-
/* smart callbacks called:
* "selected" - the user click on a file
* "directory,open" - the list is populate with a new content. event_info is a directory.
* "done" - the user click on the ok or cancel buttons
*/
+ /* progressbar */
EAPI Evas_Object *elm_progressbar_add(Evas_Object *parent);
EAPI void elm_progressbar_pulse_set(Evas_Object *obj, Eina_Bool pulse);
EAPI Eina_Bool elm_progressbar_pulse_get(const Evas_Object *obj);
* wheel (simple style, no text, no progression, only pulse is available)
*/
+ /* separator */
EAPI Evas_Object *elm_separator_add(Evas_Object *parent);
EAPI void elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
EAPI Eina_Bool elm_separator_horizontal_get(const Evas_Object *obj);
/* smart callbacks called:
*/
+ /* spinner */
EAPI Evas_Object *elm_spinner_add(Evas_Object *parent);
EAPI void elm_spinner_label_format_set(Evas_Object *obj, const char *fmt);
EAPI const char *elm_spinner_label_format_get(const Evas_Object *obj);
* vertical (two up/down buttons at the right side and text left aligned)
*/
+ /* index */
typedef struct _Elm_Index_Item Elm_Index_Item; /**< Item of Elm_Index. Sub-type of Elm_Widget_Item */
+
EAPI Evas_Object *elm_index_add(Evas_Object *parent);
EAPI void elm_index_active_set(Evas_Object *obj, Eina_Bool active);
EAPI void elm_index_item_level_set(Evas_Object *obj, int level);
* "selected" - when the user releases heir finger and selects an item
*/
+ /* photocam */
typedef enum _Elm_Photocam_Zoom_Mode
{
ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0,
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL,
ELM_PHOTOCAM_ZOOM_MODE_LAST
} Elm_Photocam_Zoom_Mode;
+
EAPI Evas_Object *elm_photocam_add(Evas_Object *parent);
EAPI Evas_Load_Error elm_photocam_file_set(Evas_Object *obj, const char *file);
EAPI const char * elm_photocam_file_get(const Evas_Object *obj);
EAPI Evas_Object *elm_photocam_internal_image_get(const Evas_Object *obj);
EAPI void elm_photocam_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EAPI void elm_photocam_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
-
/* smart callbacks called:
* "clicked" - when image clicked
* "press" - when mouse/finger held down initially on image
* "scroll,drag,stop" - dragging the contents around has stopped
*/
+ /* map */
typedef enum _Elm_Map_Zoom_Mode
{
ELM_MAP_ZOOM_MODE_MANUAL,
ELM_MAP_SOURCE_LAST
} Elm_Map_Sources;
- typedef struct _Elm_Map_Marker Elm_Map_Marker;
+ typedef struct _Elm_Map_Marker Elm_Map_Marker;
typedef struct _Elm_Map_Marker_Class Elm_Map_Marker_Class;
- typedef struct _Elm_Map_Group_Class Elm_Map_Group_Class;
+ typedef struct _Elm_Map_Group_Class Elm_Map_Group_Class;
typedef Evas_Object *(*ElmMapMarkerGetFunc) (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
typedef void (*ElmMapMarkerDelFunc) (Evas_Object *obj, Elm_Map_Marker *marker, void *data, Evas_Object *o);
typedef Evas_Object *(*ElmMapMarkerIconGetFunc) (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
- typedef Evas_Object *(*ElmMapGroupIconGetFunc) (Evas_Object *obj, void *data);
- typedef char *(*ElmMapSourceURLFunc) (int x, int y, int zoom);
-
+ typedef Evas_Object *(*ElmMapGroupIconGetFunc) (Evas_Object *obj, void *data);
+ typedef char *(*ElmMapSourceURLFunc) (int x, int y, int zoom);
+
EAPI Evas_Object *elm_map_add(Evas_Object *parent);
EAPI void elm_map_zoom_set(Evas_Object *obj, int zoom);
EAPI double elm_map_zoom_get(const Evas_Object *obj);
EAPI Evas_Object *elm_map_marker_object_get(const Elm_Map_Marker *marker);
EAPI void elm_map_marker_update(Elm_Map_Marker *marker);
EAPI void elm_map_bubbles_close(Evas_Object *obj);
-
EAPI Elm_Map_Group_Class * elm_map_group_class_new(Evas_Object *obj);
EAPI void elm_map_group_class_style_set(Elm_Map_Group_Class *clas, const char *style);
EAPI void elm_map_group_class_icon_cb_set(Elm_Map_Group_Class *clas, ElmMapGroupIconGetFunc icon_get);
EAPI void elm_map_group_class_zoom_displayed_set(Elm_Map_Group_Class *clas, int zoom);
EAPI void elm_map_group_class_zoom_grouped_set(Elm_Map_Group_Class *clas, int zoom);
EAPI void elm_map_group_class_hide_set(Evas_Object *obj, Elm_Map_Group_Class *clas, Eina_Bool hide);
-
EAPI Elm_Map_Marker_Class * elm_map_marker_class_new(Evas_Object *obj);
EAPI void elm_map_marker_class_style_set(Elm_Map_Marker_Class *clas, const char *style);
EAPI void elm_map_marker_class_icon_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerIconGetFunc icon_get);
EAPI void elm_map_marker_class_get_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerGetFunc get);
EAPI void elm_map_marker_class_del_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerDelFunc del);
-
EAPI void elm_map_source_set(Evas_Object *obj, Elm_Map_Sources source);
EAPI Elm_Map_Sources elm_map_source_get(const Evas_Object *obj);
- EAPI void elm_map_source_custom_api_set(Elm_Map_Sources source, const char *label,
- int zoom_min, int zoom_max, ElmMapSourceURLFunc url_cb);
+ EAPI void elm_map_source_custom_api_set(Elm_Map_Sources source, const char *label, int zoom_min, int zoom_max, ElmMapSourceURLFunc url_cb);
EAPI int elm_map_source_zoom_min_get(Elm_Map_Sources source);
EAPI int elm_map_source_zoom_max_get(Elm_Map_Sources source);
EAPI const char *elm_map_source_name_get(Elm_Map_Sources source);
* "scroll,drag,stop" - dragging the contents around has stopped
*/
+ /* panel */
typedef enum _Elm_Panel_Orient
{
ELM_PANEL_ORIENT_TOP,
- ELM_PANEL_ORIENT_BOTTOM,
- ELM_PANEL_ORIENT_LEFT,
- ELM_PANEL_ORIENT_RIGHT,
+ ELM_PANEL_ORIENT_BOTTOM,
+ ELM_PANEL_ORIENT_LEFT,
+ ELM_PANEL_ORIENT_RIGHT,
} Elm_Panel_Orient;
+
EAPI Evas_Object *elm_panel_add(Evas_Object *parent);
EAPI void elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient);
EAPI Elm_Panel_Orient elm_panel_orient_get(const Evas_Object *obj);
EAPI Eina_Bool elm_panel_hidden_get(const Evas_Object *obj);
EAPI void elm_panel_toggle(Evas_Object *obj);
-
+ /* panes */
/**
* TODO
*
EAPI void elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
EAPI Eina_Bool elm_panes_horizontal_get(const Evas_Object *obj);
+ /* flip */
typedef enum _Elm_Flip_Mode
{
ELM_FLIP_ROTATE_Y_CENTER_AXIS,
- ELM_FLIP_ROTATE_X_CENTER_AXIS,
- ELM_FLIP_ROTATE_XZ_CENTER_AXIS,
- ELM_FLIP_ROTATE_YZ_CENTER_AXIS,
- ELM_FLIP_CUBE_LEFT,
- ELM_FLIP_CUBE_RIGHT,
- ELM_FLIP_CUBE_UP,
- ELM_FLIP_CUBE_DOWN
+ ELM_FLIP_ROTATE_X_CENTER_AXIS,
+ ELM_FLIP_ROTATE_XZ_CENTER_AXIS,
+ ELM_FLIP_ROTATE_YZ_CENTER_AXIS,
+ ELM_FLIP_CUBE_LEFT,
+ ELM_FLIP_CUBE_RIGHT,
+ ELM_FLIP_CUBE_UP,
+ ELM_FLIP_CUBE_DOWN
} Elm_Flip_Mode;
EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
/* smart callbacks called:
* "animate,done" - when a flip animation is finished
*/
-
+
+ /* scrolledentry */
EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent);
EAPI void elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
EAPI Eina_Bool elm_scrolled_entry_single_line_get(const Evas_Object *obj);
EAPI void elm_scrolled_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave);
EAPI Eina_Bool elm_scrolled_entry_autosave_get(const Evas_Object *obj);
+ /* conformant */
EAPI Evas_Object *elm_conformant_add(Evas_Object *parent);
EAPI void elm_conformant_content_set(Evas_Object *obj, Evas_Object *content);
EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj);
EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj);
-
+ /* mapbuf */
EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent);
EAPI void elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content);
EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj);
EAPI void elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha);
EAPI Eina_Bool elm_mapbuf_alpha_get(const Evas_Object *obj);
-
+ /* flippicker */
typedef struct _Elm_Flippicker_Item Elm_Flippicker_Item;
EAPI Evas_Object *elm_flippicker_add(Evas_Object *parent);
EAPI Elm_Flippicker_Item *elm_flippicker_item_next(Elm_Flippicker_Item *item);
EAPI void elm_flippicker_interval_set(Evas_Object *obj, double interval);
EAPI double elm_flippicker_interval_get(const Evas_Object *obj);
-
-
/* smart callbacks called:
* "selected" - when flippicker selected item is changed
* "overflowed" - when flippicker item is changed to first item
* "underflowed" - when flippicker item is changed to last item
* from first item.
*/
-
/* available styles:
* default
*/
/* animator */
- typedef struct _Animator Elm_Animator;
-
typedef enum
{
ELM_ANIMATOR_CURVE_LINEAR,
ELM_ANIMATOR_CURVE_IN,
ELM_ANIMATOR_CURVE_OUT
} Elm_Animator_Curve_Style;
+ typedef struct _Elm_Animator Elm_Animator;
+ /**
+ * Called back per loop of an elementary animators cycle
+ * @param data user-data given to elm_animator_operation_callback_set()
+ * @param animator the animator being run
+ * @param double the position in the animation
+ */
+ typedef void (*Elm_Animator_Operation_Cb) (void *data, Elm_Animator *animator, double frame);
+ /**
+ * Called back when an elementary animator finishes
+ * @param data user-data given to elm_animator_completion_callback_set()
+ */
+ typedef void (*Elm_Animator_Completion_Cb) (void *data);
EAPI Elm_Animator* elm_animator_add(Evas_Object *parent);
EAPI void elm_animator_del(Elm_Animator *animator);
EAPI void elm_animator_duration_set(Elm_Animator *animator, double duration);
- EAPI void elm_animator_operation_callback_set(Elm_Animator *animator, void (*func)(void *data, Elm_Animator *animator, double frame), void *data);
- EAPI void elm_animator_completion_callback_set(Elm_Animator *animator, void (*func)(void *data), void *data);
+ EAPI void elm_animator_operation_callback_set(Elm_Animator *animator, Elm_Animator_Operation_Cb func, void *data);
+ EAPI void elm_animator_completion_callback_set(Elm_Animator *animator, Elm_Animator_Completion_Cb func, void *data);
EAPI void elm_animator_stop(Elm_Animator *animator);
EAPI void elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt);
EAPI void elm_animator_animate(Elm_Animator *animator);
EAPI Eina_Bool elm_animator_auto_reverse_get(const Elm_Animator *animator);
EAPI Eina_Bool elm_animator_operating_get(const Elm_Animator *animator);
EAPI unsigned int elm_animator_repeat_get(const Elm_Animator *animator);
+ EAPI void elm_animator_pause(Elm_Animator *animator);
+ EAPI void elm_animator_resume(Elm_Animator *animator);
/* calendar */
typedef enum
* "changed" - when the color value changes
*/
- /* Hoverlist */
+ /* hoverlist */
typedef struct _Elm_Hoverlist_Item Elm_Hoverlist_Item;
EAPI Evas_Object *elm_hoverlist_add(Evas_Object* parent);
* "dismissed" - the hoverlist was dismissed
*/
- /* debug
- * don't use it unless you are sure
- */
- EAPI void elm_object_tree_dump(const Evas_Object *top);
- EAPI void elm_object_tree_dot_dump(const Evas_Object *top, const char *file);
-
/* transit */
+ typedef enum
+ {
+ ELM_TRANSIT_CURVE_LINEAR,
+ ELM_TRANSIT_CURVE_IN_OUT,
+ ELM_TRANSIT_CURVE_IN,
+ ELM_TRANSIT_CURVE_OUT
+ } Elm_Transit_Curve_Style;
+ typedef enum
+ {
+ ELM_FX_FLIP_AXIS_X,
+ ELM_FX_FLIP_AXIS_Y
+ } Elm_Fx_Flip_Axis;
+ typedef enum
+ {
+ ELM_FX_WIPE_DIR_LEFT,
+ ELM_FX_WIPE_DIR_RIGHT,
+ ELM_FX_WIPE_DIR_UP,
+ ELM_FX_WIPE_DIR_DOWN
+ } Elm_Fx_Wipe_Dir;
+ typedef enum
+ {
+ ELM_FX_WIPE_TYPE_HIDE,
+ ELM_FX_WIPE_TYPE_SHOW
+ } Elm_Fx_Wipe_Type;
+
typedef struct _Elm_Transit Elm_Transit;
EAPI Elm_Transit *elm_transit_add(double duration);
EAPI void elm_transit_repeat_times_set(Elm_Transit *transit, unsigned int repeat);
EAPI void elm_transit_auto_reverse_set(Elm_Transit *transit, Eina_Bool reverse);
- typedef enum
- {
- ELM_TRANSIT_CURVE_LINEAR,
- ELM_TRANSIT_CURVE_IN_OUT,
- ELM_TRANSIT_CURVE_IN,
- ELM_TRANSIT_CURVE_OUT
- } Elm_Transit_Curve_Style;
EAPI void elm_transit_curve_style_set(Elm_Transit *transit, Elm_Transit_Curve_Style cs);
EAPI void elm_transit_event_block_set(Elm_Transit *transit, Eina_Bool disabled);
EAPI Eina_Bool elm_transit_event_block_get(const Elm_Transit *transit);
EAPI void elm_transit_effect_zoom_op(void *data, Elm_Transit *transit, double progress);
EAPI void elm_transit_effect_zoom_context_free(void *data, Elm_Transit *transit);
- typedef enum
- {
- ELM_FX_FLIP_AXIS_X,
- ELM_FX_FLIP_AXIS_Y
- } Elm_Fx_Flip_Axis;
EAPI void *elm_transit_effect_flip_context_new(Elm_Fx_Flip_Axis axis, Eina_Bool cw);
EAPI void elm_transit_effect_flip_op(void *data, Elm_Transit *transit, double progress);
EAPI void elm_transit_effect_flip_context_free(void *data, Elm_Transit *transit);
EAPI void elm_transit_effect_resizable_flip_op(void *data, Elm_Transit *transit, double progress);
EAPI void elm_transit_effect_resizable_flip_context_free(void *data, Elm_Transit *transit);
- typedef enum
- {
- ELM_FX_WIPE_DIR_LEFT,
- ELM_FX_WIPE_DIR_RIGHT,
- ELM_FX_WIPE_DIR_UP,
- ELM_FX_WIPE_DIR_DOWN
- } Elm_Fx_Wipe_Dir;
- typedef enum
- {
- ELM_FX_WIPE_TYPE_HIDE,
- ELM_FX_WIPE_TYPE_SHOW
- } Elm_Fx_Wipe_Type;
EAPI void *elm_transit_effect_wipe_context_new(Elm_Fx_Wipe_Type type, Elm_Fx_Wipe_Dir dir);
EAPI void elm_transit_effect_wipe_op(void *data, Elm_Transit *transit, double progress);
EAPI void elm_transit_effect_wipe_context_free(void *data, Elm_Transit *transit);
*
* Support normalized frame value for animation.
*/
+#define MAGIC_OBJ_ANIMATOR 0x40777770
-struct _Animator
+struct _Elm_Animator
{
+ int magic;
Evas_Object *parent;
Ecore_Animator *animator;
double begin_time;
static unsigned int _animator_compute_no_reverse_repeat_count(unsigned int cnt);
static Eina_Bool _animator_animate_cb(void *data);
static void _delete_animator(Elm_Animator *animator);
-static void _animator_parent_del(void *data, Evas *evas, Evas_Object *obj, void *event);
+static void _animator_parent_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__);
static unsigned int
_animator_compute_reverse_repeat_count(unsigned int cnt)
static double
_animator_curve_in_out(double frame)
{
- if (frame < 0.5)
- return _animator_curve_out(frame * 2) * 0.5;
- else
- return (_animator_curve_in(frame * 2 - 1) * 0.5) + 0.5;
+ if (frame < 0.5) return _animator_curve_in(frame * 2) * 0.5;
+ else return (_animator_curve_out(frame * 2 - 1) * 0.5) + 0.5;
}
static double
_animator_curve_in(double frame)
{
- return sqrt(1 - pow(frame - 1, 2));
+ return 1 - sqrt(1 - pow(frame, 2));
}
static double
_animator_curve_out(double frame)
{
- return 1 - sqrt(1 - pow(frame, 2));
+ return sqrt(1 - pow(frame - 1, 2));
}
static void
_delete_animator(Elm_Animator *animator)
{
- if (animator->animator)
- {
- ecore_animator_del(animator->animator);
- animator->animator = NULL;
- }
+ if (!animator->animator) return;
+ ecore_animator_del(animator->animator);
+ animator->animator = NULL;
}
static Eina_Bool
_animator_animate_cb(void *data)
{
+ double elapsed_time, frame;
Elm_Animator *animator = (Elm_Animator *) data;
animator->cur_time = ecore_loop_time_get();
- double elapsed_time = animator->cur_time - animator->begin_time;
-
- if (elapsed_time > animator->duration)
- elapsed_time = animator->duration;
-
- double frame = animator->curve_op(elapsed_time / animator->duration);
-
+ elapsed_time = animator->cur_time - animator->begin_time;
+ if (elapsed_time > animator->duration) elapsed_time = animator->duration;
+ frame = animator->curve_op(elapsed_time / animator->duration);
//Reverse?
if (animator->auto_reverse)
{
- if (!(animator->cur_repeat_cnt % 2))
- frame = 1 - frame;
+ if (!(animator->cur_repeat_cnt % 2)) frame = 1 - frame;
}
if (animator->duration > 0)
- animator->animator_op(animator->animator_arg, animator, frame);
-
+ animator->animator_op(animator->animator_arg, animator, frame);
//Not end. Keep going.
- if (elapsed_time < animator->duration)
- return ECORE_CALLBACK_RENEW;
+ if (elapsed_time < animator->duration) return ECORE_CALLBACK_RENEW;
//Repeat and reverse and time done!
if (!animator->cur_repeat_cnt)
animator->on_animating = EINA_FALSE;
_delete_animator(animator);
if (animator->completion_op)
- animator->completion_op(animator->completion_arg);
+ animator->completion_op(animator->completion_arg);
return ECORE_CALLBACK_CANCEL;
}
//Repeat Case
- --animator->cur_repeat_cnt;
+ animator->cur_repeat_cnt--;
animator->begin_time = ecore_loop_time_get();
return ECORE_CALLBACK_RENEW;
}
-static void
-_animator_parent_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
+static void
+_animator_parent_del(void *data, Evas *evas __UNUSED__,
+ Evas_Object *obj __UNUSED__, void *event __UNUSED__)
{
elm_animator_del(data);
}
/**
* Get the value of reverse mode.
*
- * @param animator Animator object
+ * @param[in] animator Animator object
* @return EINA_TRUE is reverse mode
*
* @ingroup Animator
EAPI Eina_Bool
elm_animator_auto_reverse_get(const Elm_Animator *animator)
{
- if (!animator) return EINA_FALSE;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return EINA_FALSE;
return animator->auto_reverse;
}
/**
* Get the value of repeat count.
*
- * @param animator Animator object
+ * @param[in] animator Animator object
* @return Repeat count
*
* @ingroup Animator
EAPI unsigned int
elm_animator_repeat_get(const Elm_Animator *animator)
{
- if (!animator) return EINA_FALSE;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return 0;
return animator->repeat_cnt;
}
/**
* Set auto reverse function.
*
- * @param animator Animator object
- * @param reverse Reverse or not
+ * @param[in] animator Animator object
+ * @param[in] reverse Reverse or not
*
* @ingroup Animator
*/
EAPI void
elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse)
{
- if (!animator) return;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
if (animator->auto_reverse == reverse) return;
animator->auto_reverse = reverse;
- if (reverse)
- {
- animator->repeat_cnt =
- _animator_compute_reverse_repeat_count(animator->repeat_cnt);
- }
- else
- {
- animator->repeat_cnt =
- _animator_compute_no_reverse_repeat_count(animator->repeat_cnt);
- }
+ if (reverse)
+ animator->repeat_cnt =
+ _animator_compute_reverse_repeat_count(animator->repeat_cnt);
+ else
+ animator->repeat_cnt =
+ _animator_compute_no_reverse_repeat_count(animator->repeat_cnt);
}
/**
* Set the animation acceleration style.
*
- * @param animator Animator object
- * @param cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
+ * @param[in] animator Animator object
+ * @param[in] cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
*
* @ingroup Animator
*/
EAPI void
-elm_animator_curve_style_set(Elm_Animator *animator, Elm_Animator_Curve_Style cs)
+elm_animator_curve_style_set(Elm_Animator *animator,
+ Elm_Animator_Curve_Style cs)
{
- if (!animator) return;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
switch (cs)
{
- case ELM_ANIMATOR_CURVE_LINEAR:
+ case ELM_ANIMATOR_CURVE_LINEAR:
animator->curve_op = _animator_curve_linear;
break;
- case ELM_ANIMATOR_CURVE_IN_OUT:
+ case ELM_ANIMATOR_CURVE_IN_OUT:
animator->curve_op = _animator_curve_in_out;
break;
- case ELM_ANIMATOR_CURVE_IN:
+ case ELM_ANIMATOR_CURVE_IN:
animator->curve_op = _animator_curve_in;
break;
- case ELM_ANIMATOR_CURVE_OUT:
+ case ELM_ANIMATOR_CURVE_OUT:
animator->curve_op = _animator_curve_out;
break;
- default:
+ default:
animator->curve_op = _animator_curve_linear;
break;
}
/**
* Set the operation duration.
*
- * @param animator Animator object
- * @param duration Duration in second
+ * @param[in] animator Animator object
+ * @param[in] duration Duration in second
*
* @ingroup Animator
*/
EAPI void
elm_animator_duration_set(Elm_Animator *animator, double duration)
{
- if (!animator) return;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
if (animator->on_animating) return;
animator->duration = duration;
}
* Set the callback function for animator operation.
* The range of callback function frame data is to 0 ~ 1
* User can refer this frame value for one's animation frame data.
- * @param animator Animator object
- * @param op Callback function pointer
- * @param data Callback function user argument
+ * @param[in] animator Animator object
+ * @param[in] func Callback function pointer
+ * @param[in] data Callback function user argument
*
* @ingroup Animator
*/
EAPI void
elm_animator_operation_callback_set(Elm_Animator *animator,
- void (*func) (void *data,
- Elm_Animator *animator,
- double frame), void *data)
+ Elm_Animator_Operation_Cb func,
+ void *data)
{
- if (!animator) return;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
if (animator->on_animating) return;
animator->animator_op = func;
animator->animator_arg = data;
/**
* Add new animator.
*
- * @param parent Parent object
+ * @param[in] parent Parent object
* @return animator object
*
* @ingroup Animator
EAPI Elm_Animator *
elm_animator_add(Evas_Object *parent)
{
- Elm_Animator *animator = calloc(1, sizeof(Elm_Animator));
-
+ Elm_Animator *animator = ELM_NEW(Elm_Animator);
if (!animator) return NULL;
+ animator->parent = parent;
+ animator->magic = MAGIC_OBJ_ANIMATOR;
elm_animator_auto_reverse_set(animator, EINA_FALSE);
elm_animator_curve_style_set(animator, ELM_ANIMATOR_CURVE_LINEAR);
-
if (parent)
- evas_object_event_callback_add(parent, EVAS_CALLBACK_DEL,
- _animator_parent_del, animator);
-
- animator->parent = parent;
+ evas_object_event_callback_add(parent, EVAS_CALLBACK_DEL,
+ _animator_parent_del, animator);
return animator;
}
/**
* Get the status for the animator operation.
*
- * @param animator Animator object
+ * @param[in] animator Animator object
* @return EINA_TRUE is animator is operating.
*
* @ingroup Animator
EAPI Eina_Bool
elm_animator_operating_get(const Elm_Animator *animator)
{
- if (!animator) return EINA_FALSE;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return EINA_FALSE;
return animator->on_animating;
}
/**
* Delete animator.
*
- * @param animator Animator object
+ * @param[in] animator Animator object
*
* @ingroup Animator
*/
EAPI void
elm_animator_del(Elm_Animator *animator)
{
- if (!animator) return;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
_delete_animator(animator);
+ if (animator->parent)
+ evas_object_event_callback_del(animator->parent, EVAS_CALLBACK_DEL,
+ _animator_parent_del);
- if(animator->parent)
- evas_object_event_callback_del(animator->parent, EVAS_CALLBACK_DEL,
- _animator_parent_del);
+ memset(animator, 0x0, sizeof(Elm_Animator));
free(animator);
}
/**
* Set the callback function for the animator end.
*
- * @param animator Animator object
- * @param op Callback function pointer
- * @param data Callback function user argument
+ * @param[in] animator Animator object
+ * @param[in] func Callback function pointer
+ * @param[in] data Callback function user argument
*
* @ingroup Animator
*/
EAPI void
-elm_animator_completion_callback_set(Elm_Animator *animator,
- void (*func) (void *data), void *data)
+elm_animator_completion_callback_set(Elm_Animator *animator,
+ Elm_Animator_Completion_Cb func,
+ void *data)
{
- if (!animator) return;
+ if (!animator || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
if (animator->on_animating) return;
animator->completion_op = func;
animator->completion_arg = data;
}
/**
+ * Pause the animator.
+ *
+ * @param[in] animator Animator object
+ *
+ * @ingroup Animator
+ */
+EAPI void
+elm_animator_pause(Elm_Animator *animator)
+{
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+ if (!animator->on_animating) return;
+ ecore_animator_freeze(animator->animator);
+}
+
+/**
+ * Resume the animator.
+ *
+ * @param[in] animator Animator object
+ *
+ * @ingroup Animator
+ */
+EAPI void
+elm_animator_resume(Elm_Animator *animator)
+{
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+ if (!animator->on_animating) return;
+ ecore_animator_thaw(animator->animator);
+}
+
+/**
* Stop animator.
*
- * @param animator Animator object
+ * @param[in] animator Animator object
*
* @ingroup Animator
*/
EAPI void
elm_animator_stop(Elm_Animator *animator)
{
- if (!animator) return;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
animator->on_animating = EINA_FALSE;
_delete_animator(animator);
}
/**
* Set the animator repeat count.
*
- * @param animator Animator object
- * @param repeat_cnt Repeat count
+ * @param[in] animator Animator object
+ * @param[in] repeat_cnt Repeat count
*
* @ingroup Animator
*/
EAPI void
elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt)
{
- if (!animator) return;
- if (!animator->auto_reverse)
- animator->repeat_cnt = repeat_cnt;
- else
- {
- animator->repeat_cnt =
- _animator_compute_reverse_repeat_count(repeat_cnt);
- }
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+ if (!animator->auto_reverse) animator->repeat_cnt = repeat_cnt;
+ else
+ animator->repeat_cnt = _animator_compute_reverse_repeat_count(repeat_cnt);
}
/**
* Animate now.
*
- * @param animator Animator object
+ * @param[in] animator Animator object
*
* @ingroup Animator
*/
EAPI void
elm_animator_animate(Elm_Animator *animator)
{
- if (!animator) return;
+ if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
if (!animator->animator_op) return;
animator->begin_time = ecore_loop_time_get();
- animator->on_animating = EINA_TRUE;
animator->cur_repeat_cnt = animator->repeat_cnt;
- if (!animator->animator)
- animator->animator = ecore_animator_add(_animator_animate_cb, animator);
if (!animator->animator)
- animator->on_animating = EINA_FALSE;
+ animator->animator = ecore_animator_add(_animator_animate_cb, animator);
+ if (animator->animator) animator->on_animating = EINA_TRUE;
}