src/lib/Edje.h
Go to the documentation of this file.
00001 
00261 #ifndef _EDJE_H
00262 #define _EDJE_H
00263 
00264 #ifndef _MSC_VER
00265 # include <stdint.h>
00266 #endif
00267 #include <math.h>
00268 #include <float.h>
00269 #include <limits.h>
00270 
00271 #include <Evas.h>
00272 
00273 #ifdef EAPI
00274 # undef EAPI
00275 #endif
00276 
00277 #ifdef HAVE_ECORE_IMF
00278 #include <Ecore_IMF.h>
00279 #endif
00280 
00281 #ifdef _WIN32
00282 # ifdef EFL_EDJE_BUILD
00283 #  ifdef DLL_EXPORT
00284 #   define EAPI __declspec(dllexport)
00285 #  else
00286 #   define EAPI
00287 #  endif /* ! DLL_EXPORT */
00288 # else
00289 #  define EAPI __declspec(dllimport)
00290 # endif /* ! EFL_EDJE_BUILD */
00291 #else
00292 # ifdef __GNUC__
00293 #  if __GNUC__ >= 4
00294 #   define EAPI __attribute__ ((visibility("default")))
00295 #  else
00296 #   define EAPI
00297 #  endif
00298 # else
00299 #  define EAPI
00300 # endif
00301 #endif
00302 
00303 #ifdef __cplusplus
00304 extern "C" {
00305 #endif
00306 
00307 #define EDJE_VERSION_MAJOR 1
00308 #define EDJE_VERSION_MINOR 7
00309 
00310    typedef struct _Edje_Version
00311      {
00312         int major;
00313         int minor;
00314         int micro;
00315         int revision;
00316      } Edje_Version;
00317 
00318    EAPI extern Edje_Version *edje_version;
00319 
00334 typedef enum _Edje_Message_Type
00335 {
00336    EDJE_MESSAGE_NONE = 0,
00337 
00338    EDJE_MESSAGE_SIGNAL = 1, /* DONT USE THIS */
00339 
00340    EDJE_MESSAGE_STRING = 2, 
00341    EDJE_MESSAGE_INT = 3, 
00342    EDJE_MESSAGE_FLOAT = 4, 
00344    EDJE_MESSAGE_STRING_SET = 5, 
00345    EDJE_MESSAGE_INT_SET = 6, 
00346    EDJE_MESSAGE_FLOAT_SET = 7, 
00348    EDJE_MESSAGE_STRING_INT = 8, 
00349    EDJE_MESSAGE_STRING_FLOAT = 9, 
00351    EDJE_MESSAGE_STRING_INT_SET = 10, 
00352    EDJE_MESSAGE_STRING_FLOAT_SET = 11 
00353 } Edje_Message_Type;
00354 
00355 typedef enum _Edje_Aspect_Control
00356 {
00357    EDJE_ASPECT_CONTROL_NONE = 0,
00358    EDJE_ASPECT_CONTROL_NEITHER = 1,
00359    EDJE_ASPECT_CONTROL_HORIZONTAL = 2,
00360    EDJE_ASPECT_CONTROL_VERTICAL = 3,
00361    EDJE_ASPECT_CONTROL_BOTH = 4
00362 } Edje_Aspect_Control;
00363 
00364 typedef enum _Edje_Object_Table_Homogeneous_Mode
00365 {
00366    EDJE_OBJECT_TABLE_HOMOGENEOUS_NONE = 0,
00367    EDJE_OBJECT_TABLE_HOMOGENEOUS_TABLE = 1,
00368    EDJE_OBJECT_TABLE_HOMOGENEOUS_ITEM = 2
00369 } Edje_Object_Table_Homogeneous_Mode;
00370 
00371 typedef enum _Edje_Part_Type
00372 {
00373    EDJE_PART_TYPE_NONE      = 0,
00374    EDJE_PART_TYPE_RECTANGLE = 1,
00375    EDJE_PART_TYPE_TEXT      = 2,
00376    EDJE_PART_TYPE_IMAGE     = 3,
00377    EDJE_PART_TYPE_SWALLOW   = 4,
00378    EDJE_PART_TYPE_TEXTBLOCK = 5,
00379    EDJE_PART_TYPE_GRADIENT  = 6,
00380    EDJE_PART_TYPE_GROUP     = 7,
00381    EDJE_PART_TYPE_BOX       = 8,
00382    EDJE_PART_TYPE_TABLE     = 9,
00383    EDJE_PART_TYPE_EXTERNAL  = 10,
00384    EDJE_PART_TYPE_PROXY     = 11,
00385    EDJE_PART_TYPE_SPACER    = 12, 
00386    EDJE_PART_TYPE_LAST      = 13
00387 } Edje_Part_Type;
00388 
00389 typedef enum _Edje_Text_Effect
00390 {
00391 #define EDJE_TEXT_EFFECT_MASK_BASIC 0xf
00392 #define EDJE_TEXT_EFFECT_BASIC_SET(x, s) \
00393    do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_BASIC) | (s); } while (0)
00394    EDJE_TEXT_EFFECT_NONE                = 0,
00395    EDJE_TEXT_EFFECT_PLAIN               = 1,
00396    EDJE_TEXT_EFFECT_OUTLINE             = 2,
00397    EDJE_TEXT_EFFECT_SOFT_OUTLINE        = 3,
00398    EDJE_TEXT_EFFECT_SHADOW              = 4,
00399    EDJE_TEXT_EFFECT_SOFT_SHADOW         = 5,
00400    EDJE_TEXT_EFFECT_OUTLINE_SHADOW      = 6,
00401    EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW = 7,
00402    EDJE_TEXT_EFFECT_FAR_SHADOW          = 8,
00403    EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW     = 9,
00404    EDJE_TEXT_EFFECT_GLOW                = 10,
00405 
00406    EDJE_TEXT_EFFECT_LAST                = 11,
00407 
00408 #define EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION (0x7 << 4)
00409 #define EDJE_TEXT_EFFECT_SHADOW_DIRECTION_SET(x, s) \
00410    do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION) | (s); } while (0)
00411    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT = (0x0 << 4),
00412    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM       = (0x1 << 4),
00413    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT  = (0x2 << 4),
00414    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT         = (0x3 << 4),
00415    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT     = (0x4 << 4),
00416    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP          = (0x5 << 4),
00417    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT    = (0x6 << 4),
00418    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT        = (0x7 << 4)
00419 } Edje_Text_Effect;
00420 
00421 typedef enum _Edje_Action_Type
00422 {
00423    EDJE_ACTION_TYPE_NONE                = 0,
00424    EDJE_ACTION_TYPE_STATE_SET           = 1,
00425    EDJE_ACTION_TYPE_ACTION_STOP         = 2,
00426    EDJE_ACTION_TYPE_SIGNAL_EMIT         = 3,
00427    EDJE_ACTION_TYPE_DRAG_VAL_SET        = 4,
00428    EDJE_ACTION_TYPE_DRAG_VAL_STEP       = 5,
00429    EDJE_ACTION_TYPE_DRAG_VAL_PAGE       = 6,
00430    EDJE_ACTION_TYPE_SCRIPT              = 7,
00431    EDJE_ACTION_TYPE_FOCUS_SET           = 8,
00432    EDJE_ACTION_TYPE_RESERVED00          = 9,
00433    EDJE_ACTION_TYPE_FOCUS_OBJECT        = 10,
00434    EDJE_ACTION_TYPE_PARAM_COPY          = 11,
00435    EDJE_ACTION_TYPE_PARAM_SET           = 12,
00436    EDJE_ACTION_TYPE_SOUND_SAMPLE        = 13, 
00437    EDJE_ACTION_TYPE_SOUND_TONE          = 14, 
00438    EDJE_ACTION_TYPE_LAST                = 15
00439 } Edje_Action_Type;
00440 
00441 typedef enum _Edje_Tween_Mode
00442 {
00443    EDJE_TWEEN_MODE_NONE              = 0,
00444    EDJE_TWEEN_MODE_LINEAR            = 1,
00445    EDJE_TWEEN_MODE_SINUSOIDAL        = 2,
00446    EDJE_TWEEN_MODE_ACCELERATE        = 3,
00447    EDJE_TWEEN_MODE_DECELERATE        = 4,
00448    EDJE_TWEEN_MODE_ACCELERATE_FACTOR = 5,
00449    EDJE_TWEEN_MODE_DECELERATE_FACTOR = 6,
00450    EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR = 7,
00451    EDJE_TWEEN_MODE_DIVISOR_INTERP    = 8,
00452    EDJE_TWEEN_MODE_BOUNCE            = 9,
00453    EDJE_TWEEN_MODE_SPRING            = 10,
00454    EDJE_TWEEN_MODE_LAST              = 11,
00455    EDJE_TWEEN_MODE_MASK              = 0xff,
00456    EDJE_TWEEN_MODE_OPT_FROM_CURRENT  = (1 << 31)
00457 } Edje_Tween_Mode;
00458 
00459 typedef enum _Edje_Cursor
00460 {
00461    EDJE_CURSOR_MAIN,
00462    EDJE_CURSOR_SELECTION_BEGIN,
00463    EDJE_CURSOR_SELECTION_END,
00464    EDJE_CURSOR_PREEDIT_START,
00465    EDJE_CURSOR_PREEDIT_END,
00466    EDJE_CURSOR_USER,
00467    EDJE_CURSOR_USER_EXTRA,
00468    // more later
00469 } Edje_Cursor;
00470 
00471 struct _Edje_Entry_Change_Info
00472 {
00473    union {
00474         struct {
00475              const char *content;
00476              size_t pos;
00477              size_t plain_length; /* Number of cursor positions represented
00478                                      in content. */
00479         } insert;
00480         struct {
00481              const char *content;
00482              size_t start, end;
00483         } del;
00484    } change;
00485    Eina_Bool insert : 1; 
00486    Eina_Bool merge : 1; 
00487 };
00488 
00492 typedef struct _Edje_Entry_Change_Info        Edje_Entry_Change_Info;
00493 
00494 typedef struct _Edje_Message_String           Edje_Message_String;
00495 typedef struct _Edje_Message_Int              Edje_Message_Int;
00496 typedef struct _Edje_Message_Float            Edje_Message_Float;
00497 typedef struct _Edje_Message_String_Set       Edje_Message_String_Set;
00498 typedef struct _Edje_Message_Int_Set          Edje_Message_Int_Set;
00499 typedef struct _Edje_Message_Float_Set        Edje_Message_Float_Set;
00500 typedef struct _Edje_Message_String_Int       Edje_Message_String_Int;
00501 typedef struct _Edje_Message_String_Float     Edje_Message_String_Float;
00502 typedef struct _Edje_Message_String_Int_Set   Edje_Message_String_Int_Set;
00503 typedef struct _Edje_Message_String_Float_Set Edje_Message_String_Float_Set;
00504 
00505 struct _Edje_Message_String
00506 {
00507    char *str; 
00508 }; 
00510 struct _Edje_Message_Int
00511 {
00512    int val; 
00513 }; 
00515 struct _Edje_Message_Float
00516 {
00517    double val; 
00518 }; 
00520 struct _Edje_Message_String_Set
00521 {
00522    int count; 
00523    char *str[1]; 
00524 }; 
00526 struct _Edje_Message_Int_Set
00527 {
00528    int count; 
00529    int val[1]; 
00530 }; 
00532 struct _Edje_Message_Float_Set
00533 {
00534    int count; 
00535    double val[1]; 
00536 }; 
00538 struct _Edje_Message_String_Int
00539 {
00540    char *str; 
00541    int val; 
00542 }; 
00544 struct _Edje_Message_String_Float
00545 {
00546    char *str; 
00547    double val; 
00548 }; 
00550 struct _Edje_Message_String_Int_Set
00551 {
00552    char *str; 
00553    int count; 
00554    int val[1]; 
00555 }; 
00557 struct _Edje_Message_String_Float_Set
00558 {
00559    char *str; 
00560    int count; 
00561    double val[1]; 
00562 }; 
00564 typedef enum _Edje_Drag_Dir
00565 {
00566    EDJE_DRAG_DIR_NONE = 0,
00567    EDJE_DRAG_DIR_X = 1,
00568    EDJE_DRAG_DIR_Y = 2,
00569    EDJE_DRAG_DIR_XY = 3
00570 } Edje_Drag_Dir;
00571 
00572 typedef enum _Edje_Load_Error
00573 {
00574    EDJE_LOAD_ERROR_NONE = 0, 
00575    EDJE_LOAD_ERROR_GENERIC = 1, 
00576    EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2, 
00577    EDJE_LOAD_ERROR_PERMISSION_DENIED = 3, 
00578    EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, 
00579    EDJE_LOAD_ERROR_CORRUPT_FILE = 5, 
00580    EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6, 
00581    EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7, 
00582    EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8, 
00583    EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = 9 
00584 } Edje_Load_Error; 
00586 typedef enum _Edje_Text_Filter_Type
00587 {
00588    EDJE_TEXT_FILTER_TEXT = 0,
00589    EDJE_TEXT_FILTER_FORMAT = 1,
00590    EDJE_TEXT_FILTER_MARKUP = 2
00591 } Edje_Text_Filter_Type;
00592 
00593 typedef enum _Edje_Text_Autocapital_Type
00594 {
00595    EDJE_TEXT_AUTOCAPITAL_TYPE_NONE,
00596    EDJE_TEXT_AUTOCAPITAL_TYPE_WORD,
00597    EDJE_TEXT_AUTOCAPITAL_TYPE_SENTENCE,
00598    EDJE_TEXT_AUTOCAPITAL_TYPE_ALLCHARACTER
00599 } Edje_Text_Autocapital_Type;
00600 
00604 typedef enum _Edje_External_Param_Type
00605 {
00606    EDJE_EXTERNAL_PARAM_TYPE_INT, 
00607    EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, 
00608    EDJE_EXTERNAL_PARAM_TYPE_STRING, 
00609    EDJE_EXTERNAL_PARAM_TYPE_BOOL, 
00610    EDJE_EXTERNAL_PARAM_TYPE_CHOICE, 
00612    EDJE_EXTERNAL_PARAM_TYPE_MAX 
00613 } Edje_External_Param_Type;
00614 
00619 typedef enum _Edje_External_Param_Flags
00620 {
00621    EDJE_EXTERNAL_PARAM_FLAGS_NONE        = 0, 
00622    EDJE_EXTERNAL_PARAM_FLAGS_GET         = (1 << 0), 
00623    EDJE_EXTERNAL_PARAM_FLAGS_SET         = (1 << 1), 
00624    EDJE_EXTERNAL_PARAM_FLAGS_STATE       = (1 << 2), 
00625    EDJE_EXTERNAL_PARAM_FLAGS_CONSTRUCTOR = (1 << 3), 
00626    EDJE_EXTERNAL_PARAM_FLAGS_REGULAR     = (EDJE_EXTERNAL_PARAM_FLAGS_GET |
00627                                             EDJE_EXTERNAL_PARAM_FLAGS_SET |
00628                                             EDJE_EXTERNAL_PARAM_FLAGS_STATE) 
00629 } Edje_External_Param_Flags;
00630 
00631 typedef enum _Edje_Input_Panel_Layout
00632 {
00633    EDJE_INPUT_PANEL_LAYOUT_NORMAL,          
00634    EDJE_INPUT_PANEL_LAYOUT_NUMBER,          
00635    EDJE_INPUT_PANEL_LAYOUT_EMAIL,           
00636    EDJE_INPUT_PANEL_LAYOUT_URL,             
00637    EDJE_INPUT_PANEL_LAYOUT_PHONENUMBER,     
00638    EDJE_INPUT_PANEL_LAYOUT_IP,              
00639    EDJE_INPUT_PANEL_LAYOUT_MONTH,           
00640    EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY,      
00641    EDJE_INPUT_PANEL_LAYOUT_INVALID,         
00642    EDJE_INPUT_PANEL_LAYOUT_HEX,             
00643    EDJE_INPUT_PANEL_LAYOUT_TERMINAL,        
00644    EDJE_INPUT_PANEL_LAYOUT_PASSWORD         
00645 } Edje_Input_Panel_Layout;
00646 
00647 typedef enum _Edje_Input_Panel_Lang
00648 {
00649    EDJE_INPUT_PANEL_LANG_AUTOMATIC,    
00650    EDJE_INPUT_PANEL_LANG_ALPHABET      
00651 } Edje_Input_Panel_Lang;
00652 
00653 typedef enum _Edje_Input_Panel_Return_Key_Type
00654 {
00655    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT, 
00656    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DONE,    
00657    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_GO,      
00658    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_JOIN,    
00659    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN,   
00660    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_NEXT,    
00661    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH,  
00662    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEND     
00663 } Edje_Input_Panel_Return_Key_Type;
00664 
00673 EAPI const char *edje_external_param_type_str(Edje_External_Param_Type type) EINA_PURE;
00674 
00678 struct _Edje_External_Param
00679 {
00680    const char               *name; 
00681    Edje_External_Param_Type  type; 
00684    // XXX these could be in a union, but eet doesn't support them (or does it?)
00685    int                       i; 
00686    double                    d; 
00687    const char               *s; 
00688 };
00692 typedef struct _Edje_External_Param Edje_External_Param;
00693 
00697 #define EDJE_EXTERNAL_INT_UNSET INT_MAX
00698 
00701 #define EDJE_EXTERNAL_DOUBLE_UNSET DBL_MAX
00702 
00714 typedef struct _Edje_External_Param_Info Edje_External_Param_Info;
00726 struct _Edje_External_Param_Info
00727 {
00728    const char               *name; 
00729    Edje_External_Param_Type  type; 
00730    Edje_External_Param_Flags flags; 
00732    union {
00733       struct {
00734          int                 def, 
00735                              min, 
00736                              max, 
00737                              step; 
00738       } i; 
00740       struct {
00741          double              def, 
00742                              min, 
00743                              max, 
00744                              step; 
00745       } d; 
00747       struct {
00748          const char         *def; 
00749          const char         *accept_fmt; 
00750          const char         *deny_fmt; 
00751       } s; 
00752       struct {
00753          int                 def; 
00754          const char         *false_str; 
00755          const char         *true_str; 
00756       } b; 
00757       struct {
00758          const char         *def; 
00759          const char        **choices; /* Array of strings, each represents a
00760                                          valid value for this parameter. The
00761                                          last element of the array must be
00762                                          NULL. */
00763          char               *(*def_get)(void *data, const Edje_External_Param_Info *info); 
00764          char              **(*query)(void *data, const Edje_External_Param_Info *info); 
00765       } c; 
00766    } info;
00767 };
00768 
00769 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, flags) \
00770   {name, EDJE_EXTERNAL_PARAM_TYPE_INT, flags, {.i = {def, min, max, step}}}
00771 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, flags) \
00772   {name, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, flags, {.d = {def, min, max, step}}}
00773 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, flags) \
00774   {name, EDJE_EXTERNAL_PARAM_TYPE_STRING, flags, {.s = {def, accept, deny}}}
00775 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, flags) \
00776   {name, EDJE_EXTERNAL_PARAM_TYPE_BOOL, flags, {.b = {def, false_str, true_str}}}
00777 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, flags) \
00778   {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {def, choices, NULL, NULL}}}
00779 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, flags) \
00780   {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {NULL, NULL, def_get, query}}}
00781 
00782 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, min, max, step) \
00783   EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00784 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, min, max, step) \
00785   EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00786 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, accept, deny) \
00787   EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00788 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, false_str, true_str) \
00789   EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00790 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL(name, def, choices) \
00791   EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00792 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL(name, def_get, query) \
00793   EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00794 
00795 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, def) \
00796    EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET)
00797 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, def) \
00798    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET)
00799 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, def) \
00800    EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, NULL, NULL)
00801 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, def) \
00802    EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, "false", "true")
00803 
00804 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, def, flags)    \
00805   EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, flags)
00806 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, def, flags) \
00807   EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, flags)
00808 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, def, flags) \
00809   EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, NULL, NULL, flags)
00810 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, def, flags)   \
00811   EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, "false", "true", flags)
00812 
00813 #define EDJE_EXTERNAL_PARAM_INFO_INT(name) \
00814    EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, 0)
00815 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE(name) \
00816    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, 0.0)
00817 #define EDJE_EXTERNAL_PARAM_INFO_STRING(name) \
00818    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, NULL)
00819 #define EDJE_EXTERNAL_PARAM_INFO_BOOL(name) \
00820    EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, 0)
00821 
00822 #define EDJE_EXTERNAL_PARAM_INFO_INT_FLAGS(name, flags) \
00823    EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, 0, flags)
00824 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FLAGS(name, flags) \
00825    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, 0.0, flags)
00826 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FLAGS(name, flags) \
00827    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, NULL, flags)
00828 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FLAGS(name, flags) \
00829    EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, 0, flags)
00830 
00831 #define EDJE_EXTERNAL_PARAM_INFO_SENTINEL {NULL, 0, 0, {.s = {NULL, NULL, NULL}}}
00832 
00851 struct _Edje_External_Type
00852 {
00853 #define EDJE_EXTERNAL_TYPE_ABI_VERSION (3)
00854   unsigned int  abi_version; 
00858   const char    *module; 
00861   const char    *module_name; 
00863   Evas_Object *(*add) (void *data, Evas *evas, Evas_Object *parent, const Eina_List *params, const char *part_name); 
00865   void         (*state_set) (void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos); 
00866   void         (*signal_emit) (void *data, Evas_Object *obj, const char *emission, const char *source); 
00867   Eina_Bool    (*param_set) (void *data, Evas_Object *obj, const Edje_External_Param *param); 
00868   Eina_Bool    (*param_get) (void *data, const Evas_Object *obj, Edje_External_Param *param); 
00869   Evas_Object *(*content_get) (void *data, const Evas_Object *obj, const char *content); 
00870   void        *(*params_parse) (void *data, Evas_Object *obj, const Eina_List *params); 
00871   void         (*params_free) (void *params); 
00873   /* The following callbacks aren't used by Edje itself, but by UI design
00874      tools instead */
00875   const char  *(*label_get) (void *data); 
00876   const char  *(*description_get) (void *data); 
00877   Evas_Object *(*icon_add) (void *data, Evas *e); 
00878   Evas_Object *(*preview_add) (void *data, Evas *e); 
00879   const char  *(*translate) (void *data, const char *orig); 
00881   Edje_External_Param_Info *parameters_info; 
00882   void                     *data; 
00883 };
00884 typedef struct _Edje_External_Type Edje_External_Type;
00885 
00891 struct _Edje_External_Type_Info
00892 {
00893    const char               *name; 
00894    const Edje_External_Type *info; 
00895 };
00896 typedef struct _Edje_External_Type_Info Edje_External_Type_Info;
00897 
00898 typedef void         (*Edje_Signal_Cb)          (void *data, Evas_Object *obj, const char *emission, const char *source); 
00899 typedef void         (*Edje_Text_Change_Cb)     (void *data, Evas_Object *obj, const char *part);
00900 typedef void         (*Edje_Message_Handler_Cb) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg); 
00901 typedef void         (*Edje_Text_Filter_Cb)     (void *data, Evas_Object *obj, const char *part, Edje_Text_Filter_Type type, char **text);
00902 typedef void         (*Edje_Markup_Filter_Cb)   (void *data, Evas_Object *obj, const char *part, char **text);
00903 typedef Evas_Object *(*Edje_Item_Provider_Cb)   (void *data, Evas_Object *obj, const char *part, const char *item);
00904 
00924 EAPI int          edje_init                       (void);
00925 
00945 EAPI int          edje_shutdown                   (void);
00946 
00960 EAPI void         edje_frametime_set              (double t);
00961 
00973 EAPI double       edje_frametime_get              (void);
00974 
00985 EAPI void         edje_freeze                     (void);
00986 
00997 EAPI void         edje_thaw                       (void);
00998 
01007 EAPI void         edje_fontset_append_set         (const char *fonts);
01008 
01020 EAPI const char  *edje_fontset_append_get         (void);
01021 
01045 EAPI void         edje_scale_set                  (double scale);
01046 
01057 EAPI double       edje_scale_get                  (void);
01058 
01071 EAPI void edje_password_show_last_set(Eina_Bool password_show_last);
01072 
01086 EAPI void edje_password_show_last_timeout_set(double password_show_last_timeout);
01087 
01109 EAPI Eina_Bool    edje_object_scale_set           (Evas_Object *obj, double scale);
01110 
01122 EAPI double       edje_object_scale_get           (const Evas_Object *obj);
01123 
01131 EAPI void         edje_object_mirrored_set        (Evas_Object *obj, Eina_Bool rtl);
01132 
01142 EAPI Eina_Bool    edje_object_mirrored_get        (const Evas_Object *obj);
01143 
01153 EAPI Eina_List   *edje_file_collection_list       (const char *file);
01154 
01161 EAPI void         edje_file_collection_list_free  (Eina_List *lst);
01162 
01170 EAPI Eina_Bool    edje_file_group_exists          (const char *file, const char *glob);
01171 
01189 EAPI char        *edje_file_data_get              (const char *file, const char *key);
01190 
01204 EAPI void         edje_file_cache_set             (int count);
01205 
01218 EAPI int          edje_file_cache_get             (void);
01219 
01230 EAPI void         edje_file_cache_flush           (void);
01231 
01246 EAPI void         edje_collection_cache_set       (int count);
01247 
01260 EAPI int          edje_collection_cache_get       (void);
01261 
01272 EAPI void         edje_collection_cache_flush     (void);
01273 
01310 EAPI Eina_Bool    edje_color_class_set            (const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
01311 
01346 EAPI Eina_Bool    edje_color_class_get            (const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3);
01347 
01361 EAPI void         edje_color_class_del            (const char *color_class);
01362 
01373 EAPI Eina_List   *edje_color_class_list           (void);
01374 
01395 EAPI Eina_Bool    edje_text_class_set             (const char *text_class, const char *font, Evas_Font_Size size);
01396 
01406 EAPI void         edje_text_class_del             (const char *text_class);
01407 
01418 EAPI Eina_List   *edje_text_class_list            (void);
01419 
01429 EAPI void         edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
01430 
01440 EAPI void         edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh);
01441 
01455 EAPI void         edje_extern_object_aspect_set   (Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah);
01456 
01479 EAPI void         edje_box_layout_register        (const char *name, Evas_Object_Box_Layout func, void *(*layout_data_get)(void *), void (*layout_data_free)(void *), void (*free_data)(void *), void *data);
01480 
01532 EAPI Evas_Object *edje_object_add                 (Evas *evas);
01533 
01570 EAPI const char  *edje_object_data_get            (const Evas_Object *obj, const char *key);
01571 
01602 EAPI Eina_Bool        edje_object_file_set        (Evas_Object *obj, const char *file, const char *group);
01603 
01624 EAPI void             edje_object_file_get        (const Evas_Object *obj, const char **file, const char **group);
01625 
01650 EAPI Edje_Load_Error  edje_object_load_error_get  (const Evas_Object *obj);
01651 
01666 EAPI const char      *edje_load_error_str         (Edje_Load_Error error);
01667 
01685 EAPI Eina_Bool        edje_object_preload         (Evas_Object *obj, Eina_Bool cancel);
01686 
01747 EAPI void         edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01748 
01768 EAPI void        *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);
01769 
01793 EAPI void        *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01794 
01823 EAPI void         edje_object_signal_emit         (Evas_Object *obj, const char *emission, const char *source);
01824 
01836 EAPI void *       edje_object_signal_callback_extra_data_get(void);
01837 
01852 EAPI void         edje_object_play_set            (Evas_Object *obj, Eina_Bool play);
01853 
01868 EAPI Eina_Bool    edje_object_play_get            (const Evas_Object *obj);
01869 
01884 EAPI void         edje_object_animation_set       (Evas_Object *obj, Eina_Bool on);
01885 
01899 EAPI Eina_Bool    edje_object_animation_get       (const Evas_Object *obj);
01900 
01912 EAPI int          edje_object_freeze                  (Evas_Object *obj);
01913 
01927 EAPI int          edje_object_thaw                    (Evas_Object *obj);
01928 
01962 EAPI Eina_Bool    edje_object_color_class_set         (Evas_Object *obj, const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
01963 
01996 EAPI Eina_Bool    edje_object_color_class_get         (const Evas_Object *o, const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3);
01997 
02013  EAPI void         edje_object_color_class_del         (Evas_Object *obj, const char *color_class);
02014 
02028 EAPI Eina_Bool    edje_object_text_class_set          (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size);
02029 
02065 EAPI void         edje_object_size_min_get            (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02066 
02078 EAPI void edje_object_update_hints_set(Evas_Object *obj, Eina_Bool update);
02079 
02086 EAPI Eina_Bool edje_object_update_hints_get(Evas_Object *obj);
02087 
02124 EAPI void         edje_object_size_max_get            (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
02125 
02134 EAPI void         edje_object_calc_force              (Evas_Object *obj);
02135 
02149 EAPI void         edje_object_size_min_calc           (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02150 
02178 EAPI Eina_Bool    edje_object_parts_extends_calc      (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
02179 
02207 EAPI void         edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh);
02208 
02225 EAPI Eina_Bool    edje_object_part_exists             (const Evas_Object *obj, const char *part);
02226 
02246 EAPI const Evas_Object *edje_object_part_object_get   (const Evas_Object *obj, const char *part);
02247 
02271 EAPI Eina_Bool    edje_object_part_geometry_get       (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
02272 
02273 
02284 EAPI void         edje_object_item_provider_set       (Evas_Object *obj, Edje_Item_Provider_Cb func, void *data);
02285 
02286 
02296 EAPI void         edje_object_text_change_cb_set      (Evas_Object *obj, Edje_Text_Change_Cb func, void *data);
02297 
02307 EAPI Eina_Bool    edje_object_part_text_set           (Evas_Object *obj, const char *part, const char *text);
02308 
02324 EAPI Eina_Bool    edje_object_part_text_escaped_set   (Evas_Object *obj, const char *part, const char *text);
02325        
02338 EAPI const char  *edje_object_part_text_get           (const Evas_Object *obj, const char *part);
02339 
02351 EAPI void edje_object_part_text_style_user_push(Evas_Object *obj, const char *part, const char *style);
02352 
02365 EAPI const char *edje_object_part_text_style_user_peek(const Evas_Object *obj, const char *part);
02366 
02375 EAPI void edje_object_part_text_style_user_pop(Evas_Object *obj, const char *part);
02376 
02389 EAPI Eina_Bool    edje_object_part_text_unescaped_set (Evas_Object *obj, const char *part, const char *text_to_escape);
02390 
02406 EAPI char        *edje_object_part_text_unescaped_get (const Evas_Object *obj, const char *part);
02407 
02420 EAPI const char      *edje_object_part_text_selection_get           (const Evas_Object *obj, const char *part);
02421 
02430 EAPI void             edje_object_part_text_select_none             (const Evas_Object *obj, const char *part);
02431 
02440 EAPI void             edje_object_part_text_select_all              (const Evas_Object *obj, const char *part);
02441 
02453 EAPI void             edje_object_part_text_insert                  (Evas_Object *obj, const char *part, const char *text);
02454 
02467 EAPI void             edje_object_part_text_append(Evas_Object *obj, const char *part, const char *text);
02468 
02480 EAPI const Eina_List *edje_object_part_text_anchor_list_get         (const Evas_Object *obj, const char *part);
02481 
02496 EAPI const Eina_List *edje_object_part_text_anchor_geometry_get     (const Evas_Object *obj, const char *part, const char *anchor);
02497 
02509 EAPI const Eina_List *edje_object_part_text_item_list_get           (const Evas_Object *obj, const char *part);
02510 
02528 EAPI Eina_Bool        edje_object_part_text_item_geometry_get       (const Evas_Object *obj, const char *part, const char *item, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
02529 
02542 EAPI void             edje_object_part_text_cursor_geometry_get     (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
02543 
02552 EAPI void             edje_object_part_text_user_insert        (const Evas_Object *obj, const char *part, const char *text);
02553 
02566 EAPI void             edje_object_part_text_select_allow_set        (const Evas_Object *obj, const char *part, Eina_Bool allow);
02567 
02574 EAPI void             edje_object_part_text_select_abort            (const Evas_Object *obj, const char *part);
02575 
02582 EAPI void             edje_object_part_text_select_begin            (const Evas_Object *obj, const char *part);
02583 
02590 EAPI void             edje_object_part_text_select_extend           (const Evas_Object *obj, const char *part);
02591 
02592 
02601 EAPI Eina_Bool        edje_object_part_text_cursor_next                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02602 
02611 EAPI Eina_Bool        edje_object_part_text_cursor_prev                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02612 
02620 EAPI Eina_Bool        edje_object_part_text_cursor_up                   (Evas_Object *obj, const char *part, Edje_Cursor cur);
02621 
02629 EAPI Eina_Bool        edje_object_part_text_cursor_down                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02630 
02639 EAPI void             edje_object_part_text_cursor_begin_set            (Evas_Object *obj, const char *part, Edje_Cursor cur);
02640 
02649 EAPI void             edje_object_part_text_cursor_end_set              (Evas_Object *obj, const char *part, Edje_Cursor cur);
02650 
02659 EAPI void             edje_object_part_text_cursor_copy                 (Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst);
02660 
02669 EAPI void             edje_object_part_text_cursor_line_begin_set       (Evas_Object *obj, const char *part, Edje_Cursor cur);
02670 
02679 EAPI void             edje_object_part_text_cursor_line_end_set         (Evas_Object *obj, const char *part, Edje_Cursor cur);
02680 
02693 EAPI Eina_Bool        edje_object_part_text_cursor_coord_set            (Evas_Object *obj, const char *part, Edje_Cursor cur, Evas_Coord x, Evas_Coord y);
02694 
02704 EAPI Eina_Bool        edje_object_part_text_cursor_is_format_get        (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02705 
02715 EAPI Eina_Bool        edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur);
02716 
02728 EAPI char            *edje_object_part_text_cursor_content_get          (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02729 
02739 EAPI void             edje_object_part_text_cursor_pos_set              (Evas_Object *obj, const char *part, Edje_Cursor cur, int pos);
02740 
02750 EAPI int              edje_object_part_text_cursor_pos_get              (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02751 
02761 EAPI void             edje_object_part_text_imf_context_reset           (const Evas_Object *obj, const char *part);
02762 
02775 EAPI void              *edje_object_part_text_imf_context_get           (const Evas_Object *obj, const char *part);
02776 
02790 EAPI void             edje_object_part_text_input_panel_layout_set      (Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout);
02791 
02803 EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get (const Evas_Object *obj, const char *part);
02804 
02813 EAPI void         edje_object_part_text_autocapital_type_set            (Evas_Object *obj, const char *part, Edje_Text_Autocapital_Type autocapital_type);
02814 
02823 EAPI Edje_Text_Autocapital_Type edje_object_part_text_autocapital_type_get (const Evas_Object *obj, const char *part);
02824 
02833 EAPI void             edje_object_part_text_prediction_allow_set        (Evas_Object *obj, const char *part, Eina_Bool prediction);
02834 
02843 EAPI Eina_Bool        edje_object_part_text_prediction_allow_get        (const Evas_Object *obj, const char *part);
02844 
02853 EAPI void             edje_object_part_text_input_panel_enabled_set     (Evas_Object *obj, const char *part, Eina_Bool enabled);
02854 
02864 EAPI Eina_Bool        edje_object_part_text_input_panel_enabled_get (const Evas_Object *obj, const char *part);
02865 
02876 EAPI void             edje_object_part_text_input_panel_show(const Evas_Object *obj, const char *part);
02877 
02889 EAPI void             edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part);
02890 
02901 EAPI void             edje_object_part_text_input_panel_language_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Lang lang);
02902 
02913 EAPI Edje_Input_Panel_Lang edje_object_part_text_input_panel_language_get(const Evas_Object *obj, const char *part);
02914 
02928 EAPI void             edje_object_part_text_input_panel_imdata_set(Evas_Object *obj, const char *part, const void *data, int len);
02929 
02939 EAPI void             edje_object_part_text_input_panel_imdata_get(const Evas_Object *obj, const char *part, void *data, int *len);
02940 
02951 EAPI void             edje_object_part_text_input_panel_return_key_type_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Return_Key_Type return_key_type);
02952 
02963 EAPI Edje_Input_Panel_Return_Key_Type edje_object_part_text_input_panel_return_key_type_get(const Evas_Object *obj, const char *part);
02964 
02973 EAPI void             edje_object_part_text_input_panel_return_key_disabled_set(Evas_Object *obj, const char *part, Eina_Bool disabled);
02974 
02983 EAPI Eina_Bool        edje_object_part_text_input_panel_return_key_disabled_get(const Evas_Object *obj, const char *part);
02984 
03021 EAPI void             edje_object_text_insert_filter_callback_add       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
03022 
03038 EAPI void            *edje_object_text_insert_filter_callback_del       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func);
03039 
03057 EAPI void            *edje_object_text_insert_filter_callback_del_full  (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
03058 
03090 EAPI void edje_object_text_markup_filter_callback_add(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data);
03091 
03108 EAPI void *edje_object_text_markup_filter_callback_del(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func);
03109 
03128 EAPI void *edje_object_text_markup_filter_callback_del_full(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data);
03129 
03166 EAPI Eina_Bool        edje_object_part_swallow        (Evas_Object *obj, const char *part, Evas_Object *obj_swallow);
03167 
03180 EAPI void             edje_object_part_unswallow      (Evas_Object *obj, Evas_Object *obj_swallow);
03181 
03189 EAPI Evas_Object     *edje_object_part_swallow_get    (const Evas_Object *obj, const char *part);
03190 
03202 EAPI const char      *edje_object_part_state_get      (const Evas_Object *obj, const char *part, double *val_ret);
03203 
03219 EAPI Edje_Drag_Dir    edje_object_part_drag_dir_get   (const Evas_Object *obj, const char *part);
03220 
03243 EAPI Eina_Bool        edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
03244 
03260 EAPI Eina_Bool        edje_object_part_drag_value_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
03261 
03277 EAPI Eina_Bool        edje_object_part_drag_size_set  (Evas_Object *obj, const char *part, double dw, double dh);
03278 
03291 EAPI Eina_Bool        edje_object_part_drag_size_get  (const Evas_Object *obj, const char *part, double *dw, double *dh);
03292 
03309 EAPI Eina_Bool        edje_object_part_drag_step_set  (Evas_Object *obj, const char *part, double dx, double dy);
03310 
03324 EAPI Eina_Bool        edje_object_part_drag_step_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
03325 
03342 EAPI Eina_Bool        edje_object_part_drag_page_set  (Evas_Object *obj, const char *part, double dx, double dy);
03343 
03356 EAPI Eina_Bool        edje_object_part_drag_page_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
03357 
03373 EAPI Eina_Bool        edje_object_part_drag_step      (Evas_Object *obj, const char *part, double dx, double dy);
03374 
03392 EAPI Eina_Bool        edje_object_part_drag_page      (Evas_Object *obj, const char *part, double dx, double dy);
03393 
03394 
03414 EAPI Evas_Object              *edje_object_part_external_object_get     (const Evas_Object *obj, const char *part);
03415 
03446 EAPI Eina_Bool                 edje_object_part_external_param_set      (Evas_Object *obj, const char *part, const Edje_External_Param *param);
03447 
03476 EAPI Eina_Bool                 edje_object_part_external_param_get      (const Evas_Object *obj, const char *part, Edje_External_Param *param);
03477 
03488 EAPI Evas_Object              *edje_object_part_external_content_get    (const Evas_Object *obj, const char *part, const char *content);
03489 
03500 EAPI Edje_External_Param_Type  edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param);
03501 
03502 
03519 EAPI Eina_Bool    edje_object_part_box_append             (Evas_Object *obj, const char *part, Evas_Object *child);
03520 
03537 EAPI Eina_Bool    edje_object_part_box_prepend            (Evas_Object *obj, const char *part, Evas_Object *child);
03538 
03557 EAPI Eina_Bool    edje_object_part_box_insert_before      (Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
03558 
03577 EAPI Eina_Bool    edje_object_part_box_insert_at          (Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos);
03578 
03593 EAPI Evas_Object *edje_object_part_box_remove             (Evas_Object *obj, const char *part, Evas_Object *child);
03594 
03610 EAPI Evas_Object *edje_object_part_box_remove_at          (Evas_Object *obj, const char *part, unsigned int pos);
03611 
03628 EAPI Eina_Bool    edje_object_part_box_remove_all         (Evas_Object *obj, const char *part, Eina_Bool clear);
03629 
03637 EAPI Eina_List * edje_object_access_part_list_get         (const Evas_Object *obj);
03638 
03648 EAPI Evas_Object *edje_object_part_table_child_get        (const Evas_Object *obj, const char *part, unsigned int col, unsigned int row);
03649 
03665 EAPI Eina_Bool    edje_object_part_table_pack             (Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
03666 
03678 EAPI Eina_Bool    edje_object_part_table_unpack           (Evas_Object *obj, const char *part, Evas_Object *child_obj);
03679 
03692 EAPI Eina_Bool    edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows);
03693 
03706 EAPI Eina_Bool    edje_object_part_table_clear            (Evas_Object *obj, const char *part, Eina_Bool clear);
03707 
03730 EAPI void         edje_object_message_send                (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
03731 
03756 EAPI void         edje_object_message_handler_set         (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data);
03757 
03768 EAPI void         edje_object_message_signal_process      (Evas_Object *obj);
03769 
03770 
03778 EAPI void         edje_message_signal_process             (void);
03779 
03797 EAPI Eina_Bool    edje_external_type_register             (const char *type_name, const Edje_External_Type *type_info);
03798 
03810 EAPI Eina_Bool    edje_external_type_unregister           (const char *type_name);
03811 
03835 EAPI void         edje_external_type_array_register       (const Edje_External_Type_Info *array);
03836 
03845 EAPI void         edje_external_type_array_unregister     (const Edje_External_Type_Info *array);
03846 
03866 EAPI unsigned int edje_external_type_abi_version_get      (void) EINA_CONST;
03867 
03910 EAPI Eina_Iterator                  *edje_external_iterator_get     (void);
03911 
03920    EAPI Edje_External_Param            *edje_external_param_find       (const Eina_List *params, const char *key);
03937    EAPI Eina_Bool                       edje_external_param_int_get    (const Eina_List *params, const char *key, int *ret);
03954    EAPI Eina_Bool                       edje_external_param_double_get (const Eina_List *params, const char *key, double *ret);
03973    EAPI Eina_Bool                       edje_external_param_string_get (const Eina_List *params, const char *key, const char **ret);
03990    EAPI Eina_Bool                       edje_external_param_bool_get   (const Eina_List *params, const char *key, Eina_Bool *ret);
04009    EAPI Eina_Bool                       edje_external_param_choice_get (const Eina_List *params, const char *key, const char **ret);
04010 
04023 EAPI const Edje_External_Param_Info *edje_external_param_info_get   (const char *type_name);
04024 
04029    EAPI const Edje_External_Type       *edje_external_type_get         (const char *type_name);
04030 
04031    EAPI Eina_Bool               edje_module_load                (const char *module);
04032    EAPI const Eina_List        *edje_available_modules_get      (void);
04033 
04034    /* perspective info for maps inside edje objects */
04035    typedef struct _Edje_Perspective Edje_Perspective;
04036 
04049    EAPI Edje_Perspective       *edje_perspective_new            (Evas *e);
04061    EAPI void                    edje_perspective_free           (Edje_Perspective *ps);
04084    EAPI void                    edje_perspective_set            (Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc);
04108    EAPI void                    edje_perspective_global_set     (Edje_Perspective *ps, Eina_Bool global);
04118    EAPI Eina_Bool               edje_perspective_global_get     (const Edje_Perspective *ps);
04132    EAPI const Edje_Perspective *edje_evas_global_perspective_get(const Evas *e);
04153    EAPI void                    edje_object_perspective_set     (Evas_Object *obj, Edje_Perspective *ps);
04163    EAPI const Edje_Perspective *edje_object_perspective_get     (const Evas_Object *obj);
04164 
04165 #ifdef __cplusplus
04166 }
04167 #endif
04168 
04169 #endif