patch from ChunEon Park <chuneon.park@samsung.com> with formatting

fixes, compile fixes etc. etc. as well as a general cleanup of header
and location of typedefs and so on.



SVN revision: 54353
This commit is contained in:
Carsten Haitzler 2010-11-09 04:58:54 +00:00
parent 0f4950bb1d
commit e7b5941a4b
2 changed files with 327 additions and 286 deletions

View File

@ -154,43 +154,10 @@ extern "C" {
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.
*/
@ -221,44 +188,6 @@ extern "C" {
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,
@ -285,9 +214,9 @@ extern "C" {
* @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
@ -391,6 +320,15 @@ extern "C" {
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);
@ -416,6 +354,39 @@ extern "C" {
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);
@ -463,7 +434,6 @@ extern "C" {
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)
@ -494,7 +464,6 @@ extern "C" {
* 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:
@ -503,6 +472,8 @@ extern "C" {
* "focus,out" - window lost focus
* "moved" - window that holds the canvas was moved
*/
/* bg */
typedef enum _Elm_Bg_Option
{
ELM_BG_OPTION_CENTER,
@ -510,7 +481,6 @@ extern "C" {
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);
@ -521,10 +491,18 @@ extern "C" {
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);
@ -546,6 +524,7 @@ extern "C" {
* "clicked" - the user clicked the icon
*/
/* image */
typedef enum _Elm_Image_Orient
{
ELM_IMAGE_ORIENT_NONE,
@ -557,7 +536,6 @@ extern "C" {
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);
@ -580,6 +558,7 @@ extern "C" {
* "clicked" - the user clicked the image
*/
/* box */
typedef struct _Elm_Box_Transition Elm_Box_Transition;
EAPI Evas_Object *elm_box_add(Evas_Object *parent);
@ -607,6 +586,7 @@ extern "C" {
/* 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);
@ -620,6 +600,7 @@ extern "C" {
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);
@ -663,8 +644,6 @@ extern "C" {
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
@ -677,6 +656,7 @@ extern "C" {
* "unpressed" - when the button is unpressed (released)
*/
/* scroller policy */
typedef enum _Elm_Scroller_Policy
{
ELM_SCROLLER_POLICY_AUTO = 0,
@ -714,6 +694,7 @@ extern "C" {
* "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);
@ -733,6 +714,7 @@ extern "C" {
/* 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);
@ -748,6 +730,7 @@ extern "C" {
* "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);
@ -766,6 +749,7 @@ extern "C" {
/* 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);
@ -773,6 +757,7 @@ extern "C" {
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 */
@ -814,7 +799,6 @@ extern "C" {
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);
@ -872,6 +856,19 @@ extern "C" {
* "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);
@ -889,6 +886,7 @@ extern "C" {
* "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);
@ -897,7 +895,6 @@ extern "C" {
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);
@ -907,18 +904,15 @@ extern "C" {
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
@ -998,6 +992,7 @@ extern "C" {
/* smart callbacks called:
*/
/* notify */
typedef enum _Elm_Notify_Orient
{
ELM_NOTIFY_ORIENT_TOP,
@ -1028,6 +1023,7 @@ extern "C" {
* "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,
@ -1056,6 +1052,7 @@ extern "C" {
* policy was replaced to a new slot direction.
*/
/* entry */
typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
struct _Elm_Entry_Anchor_Info
{
@ -1070,6 +1067,7 @@ extern "C" {
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);
@ -1155,6 +1153,7 @@ extern "C" {
/* 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
{
@ -1187,6 +1186,7 @@ extern "C" {
* "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
{
@ -1216,6 +1216,7 @@ extern "C" {
* "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);
@ -1232,6 +1233,7 @@ extern "C" {
/* 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);
@ -1241,6 +1243,15 @@ extern "C" {
* "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);
@ -1252,7 +1263,6 @@ extern "C" {
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
@ -1266,7 +1276,8 @@ extern "C" {
* "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);
@ -1295,8 +1306,18 @@ extern "C" {
* "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);
@ -1349,7 +1370,6 @@ extern "C" {
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);
@ -1365,11 +1385,12 @@ extern "C" {
/* 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);
@ -1377,10 +1398,8 @@ extern "C" {
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);
@ -1391,6 +1410,7 @@ extern "C" {
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);
@ -1416,6 +1436,7 @@ extern "C" {
* "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,
@ -1444,10 +1465,8 @@ extern "C" {
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);
@ -1464,7 +1483,6 @@ extern "C" {
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);
@ -1479,7 +1497,6 @@ extern "C" {
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);
@ -1504,6 +1521,7 @@ extern "C" {
* "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);
@ -1558,6 +1576,7 @@ extern "C" {
* "left", "right" and "center".
*/
/* genlist */
typedef enum _Elm_Genlist_Item_Flags
{
ELM_GENLIST_ITEM_NONE = 0,
@ -1574,13 +1593,12 @@ extern "C" {
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);
@ -1605,8 +1623,6 @@ extern "C" {
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);
@ -1625,7 +1641,6 @@ extern "C" {
* 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);
@ -1653,7 +1668,6 @@ extern "C" {
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);
@ -1667,7 +1681,7 @@ extern "C" {
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);
@ -1678,6 +1692,7 @@ extern "C" {
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);
@ -1690,6 +1705,7 @@ extern "C" {
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);
@ -1739,7 +1755,7 @@ extern "C" {
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);
@ -1753,13 +1769,13 @@ extern "C" {
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);
@ -1786,12 +1802,14 @@ extern "C" {
* 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);
@ -1817,7 +1835,9 @@ extern "C" {
* 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);
@ -1842,6 +1862,7 @@ extern "C" {
* "selected" - when the user releases heir finger and selects an item
*/
/* photocam */
typedef enum _Elm_Photocam_Zoom_Mode
{
ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0,
@ -1849,6 +1870,7 @@ extern "C" {
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);
@ -1865,7 +1887,6 @@ extern "C" {
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
@ -1885,6 +1906,7 @@ extern "C" {
* "scroll,drag,stop" - dragging the contents around has stopped
*/
/* map */
typedef enum _Elm_Map_Zoom_Mode
{
ELM_MAP_ZOOM_MODE_MANUAL,
@ -1909,15 +1931,15 @@ extern "C" {
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);
@ -1941,7 +1963,6 @@ extern "C" {
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);
@ -1949,17 +1970,14 @@ extern "C" {
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);
@ -1980,13 +1998,15 @@ extern "C" {
* "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);
@ -1997,7 +2017,7 @@ extern "C" {
EAPI Eina_Bool elm_panel_hidden_get(const Evas_Object *obj);
EAPI void elm_panel_toggle(Evas_Object *obj);
/* panes */
/**
* TODO
*
@ -2016,16 +2036,17 @@ extern "C" {
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);
@ -2041,7 +2062,8 @@ extern "C" {
/* 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);
@ -2100,12 +2122,13 @@ extern "C" {
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);
@ -2117,7 +2140,7 @@ extern "C" {
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);
@ -2137,8 +2160,6 @@ extern "C" {
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
@ -2146,14 +2167,11 @@ extern "C" {
* "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,
@ -2161,12 +2179,25 @@ extern "C" {
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);
@ -2175,6 +2206,8 @@ extern "C" {
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
@ -2259,7 +2292,7 @@ extern "C" {
* "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);
@ -2281,13 +2314,32 @@ extern "C" {
* "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);
@ -2299,13 +2351,6 @@ extern "C" {
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);
@ -2325,11 +2370,6 @@ extern "C" {
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);
@ -2338,18 +2378,6 @@ extern "C" {
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);

View File

@ -7,9 +7,11 @@
*
* 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;
@ -34,7 +36,7 @@ static unsigned int _animator_compute_reverse_repeat_count(unsigned int cnt);
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)
@ -57,60 +59,50 @@ _animator_curve_linear(double frame)
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)
@ -118,19 +110,20 @@ _animator_animate_cb(void *data)
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);
}
@ -138,7 +131,7 @@ _animator_parent_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSE
/**
* Get the value of reverse mode.
*
* @param animator Animator object
* @param[in] animator Animator object
* @return EINA_TRUE is reverse mode
*
* @ingroup Animator
@ -146,14 +139,14 @@ _animator_parent_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSE
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
@ -161,63 +154,60 @@ elm_animator_auto_reverse_get(const Elm_Animator *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;
}
@ -226,15 +216,15 @@ elm_animator_curve_style_set(Elm_Animator *animator, Elm_Animator_Curve_Style cs
/**
* 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;
}
@ -243,19 +233,18 @@ elm_animator_duration_set(Elm_Animator *animator, double 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;
@ -264,7 +253,7 @@ elm_animator_operation_callback_set(Elm_Animator *animator,
/**
* Add new animator.
*
* @param parent Parent object
* @param[in] parent Parent object
* @return animator object
*
* @ingroup Animator
@ -272,17 +261,15 @@ elm_animator_operation_callback_set(Elm_Animator *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;
}
@ -290,7 +277,7 @@ elm_animator_add(Evas_Object *parent)
/**
* 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
@ -298,59 +285,91 @@ elm_animator_add(Evas_Object *parent)
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);
}
@ -358,41 +377,35 @@ elm_animator_stop(Elm_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;
}