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 2
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_LAST      = 12
00386 } Edje_Part_Type;
00387 
00388 typedef enum _Edje_Text_Effect
00389 {
00390 #define EDJE_TEXT_EFFECT_MASK_BASIC 0xf
00391 #define EDJE_TEXT_EFFECT_BASIC_SET(x, s) \
00392    do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_BASIC) | (s); } while (0)
00393    EDJE_TEXT_EFFECT_NONE                = 0,
00394    EDJE_TEXT_EFFECT_PLAIN               = 1,
00395    EDJE_TEXT_EFFECT_OUTLINE             = 2,
00396    EDJE_TEXT_EFFECT_SOFT_OUTLINE        = 3,
00397    EDJE_TEXT_EFFECT_SHADOW              = 4,
00398    EDJE_TEXT_EFFECT_SOFT_SHADOW         = 5,
00399    EDJE_TEXT_EFFECT_OUTLINE_SHADOW      = 6,
00400    EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW = 7,
00401    EDJE_TEXT_EFFECT_FAR_SHADOW          = 8,
00402    EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW     = 9,
00403    EDJE_TEXT_EFFECT_GLOW                = 10,
00404 
00405    EDJE_TEXT_EFFECT_LAST                = 11,
00406 
00407 #define EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION (0x7 << 4)
00408 #define EDJE_TEXT_EFFECT_SHADOW_DIRECTION_SET(x, s) \
00409    do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION) | (s); } while (0)
00410    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT = (0x0 << 4),
00411    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM       = (0x1 << 4),
00412    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT  = (0x2 << 4),
00413    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT         = (0x3 << 4),
00414    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT     = (0x4 << 4),
00415    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP          = (0x5 << 4),
00416    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT    = (0x6 << 4),
00417    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT        = (0x7 << 4)
00418 } Edje_Text_Effect;
00419 
00420 typedef enum _Edje_Action_Type
00421 {
00422    EDJE_ACTION_TYPE_NONE                = 0,
00423    EDJE_ACTION_TYPE_STATE_SET           = 1,
00424    EDJE_ACTION_TYPE_ACTION_STOP         = 2,
00425    EDJE_ACTION_TYPE_SIGNAL_EMIT         = 3,
00426    EDJE_ACTION_TYPE_DRAG_VAL_SET        = 4,
00427    EDJE_ACTION_TYPE_DRAG_VAL_STEP       = 5,
00428    EDJE_ACTION_TYPE_DRAG_VAL_PAGE       = 6,
00429    EDJE_ACTION_TYPE_SCRIPT              = 7,
00430    EDJE_ACTION_TYPE_FOCUS_SET           = 8,
00431    EDJE_ACTION_TYPE_RESERVED00          = 9,
00432    EDJE_ACTION_TYPE_FOCUS_OBJECT        = 10,
00433    EDJE_ACTION_TYPE_PARAM_COPY          = 11,
00434    EDJE_ACTION_TYPE_PARAM_SET           = 12,
00435    EDJE_ACTION_TYPE_SOUND_SAMPLE        = 13, 
00436    EDJE_ACTION_TYPE_SOUND_TONE          = 14, 
00437    EDJE_ACTION_TYPE_LAST                = 15
00438 } Edje_Action_Type;
00439 
00440 typedef enum _Edje_Tween_Mode
00441 {
00442    EDJE_TWEEN_MODE_NONE              = 0,
00443    EDJE_TWEEN_MODE_LINEAR            = 1,
00444    EDJE_TWEEN_MODE_SINUSOIDAL        = 2,
00445    EDJE_TWEEN_MODE_ACCELERATE        = 3,
00446    EDJE_TWEEN_MODE_DECELERATE        = 4,
00447    EDJE_TWEEN_MODE_ACCELERATE_FACTOR = 5,
00448    EDJE_TWEEN_MODE_DECELERATE_FACTOR = 6,
00449    EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR = 7,
00450    EDJE_TWEEN_MODE_DIVISOR_INTERP    = 8,
00451    EDJE_TWEEN_MODE_BOUNCE            = 9,
00452    EDJE_TWEEN_MODE_SPRING            = 10,
00453    EDJE_TWEEN_MODE_LAST              = 11,
00454    EDJE_TWEEN_MODE_MASK              = 0xff,
00455    EDJE_TWEEN_MODE_OPT_FROM_CURRENT  = (1 << 31)
00456 } Edje_Tween_Mode;
00457 
00458 typedef enum _Edje_Cursor
00459 {
00460    EDJE_CURSOR_MAIN,
00461    EDJE_CURSOR_SELECTION_BEGIN,
00462    EDJE_CURSOR_SELECTION_END,
00463    EDJE_CURSOR_PREEDIT_START,
00464    EDJE_CURSOR_PREEDIT_END,
00465    EDJE_CURSOR_USER,
00466    EDJE_CURSOR_USER_EXTRA,
00467    // more later
00468 } Edje_Cursor;
00469 
00470 struct _Edje_Entry_Change_Info
00471 {
00472    union {
00473         struct {
00474              const char *content;
00475              size_t pos;
00476              size_t plain_length; /* Number of cursor positions represented
00477                                      in content. */
00478         } insert;
00479         struct {
00480              const char *content;
00481              size_t start, end;
00482         } del;
00483    } change;
00484    Eina_Bool insert : 1; 
00485    Eina_Bool merge : 1; 
00486 };
00487 
00491 typedef struct _Edje_Entry_Change_Info        Edje_Entry_Change_Info;
00492 
00493 typedef struct _Edje_Message_String           Edje_Message_String;
00494 typedef struct _Edje_Message_Int              Edje_Message_Int;
00495 typedef struct _Edje_Message_Float            Edje_Message_Float;
00496 typedef struct _Edje_Message_String_Set       Edje_Message_String_Set;
00497 typedef struct _Edje_Message_Int_Set          Edje_Message_Int_Set;
00498 typedef struct _Edje_Message_Float_Set        Edje_Message_Float_Set;
00499 typedef struct _Edje_Message_String_Int       Edje_Message_String_Int;
00500 typedef struct _Edje_Message_String_Float     Edje_Message_String_Float;
00501 typedef struct _Edje_Message_String_Int_Set   Edje_Message_String_Int_Set;
00502 typedef struct _Edje_Message_String_Float_Set Edje_Message_String_Float_Set;
00503 
00504 struct _Edje_Message_String
00505 {
00506    char *str; 
00507 }; 
00509 struct _Edje_Message_Int
00510 {
00511    int val; 
00512 }; 
00514 struct _Edje_Message_Float
00515 {
00516    double val; 
00517 }; 
00519 struct _Edje_Message_String_Set
00520 {
00521    int count; 
00522    char *str[1]; 
00523 }; 
00525 struct _Edje_Message_Int_Set
00526 {
00527    int count; 
00528    int val[1]; 
00529 }; 
00531 struct _Edje_Message_Float_Set
00532 {
00533    int count; 
00534    double val[1]; 
00535 }; 
00537 struct _Edje_Message_String_Int
00538 {
00539    char *str; 
00540    int val; 
00541 }; 
00543 struct _Edje_Message_String_Float
00544 {
00545    char *str; 
00546    double val; 
00547 }; 
00549 struct _Edje_Message_String_Int_Set
00550 {
00551    char *str; 
00552    int count; 
00553    int val[1]; 
00554 }; 
00556 struct _Edje_Message_String_Float_Set
00557 {
00558    char *str; 
00559    int count; 
00560    double val[1]; 
00561 }; 
00563 typedef enum _Edje_Drag_Dir
00564 {
00565    EDJE_DRAG_DIR_NONE = 0,
00566    EDJE_DRAG_DIR_X = 1,
00567    EDJE_DRAG_DIR_Y = 2,
00568    EDJE_DRAG_DIR_XY = 3
00569 } Edje_Drag_Dir;
00570 
00571 typedef enum _Edje_Load_Error
00572 {
00573    EDJE_LOAD_ERROR_NONE = 0, 
00574    EDJE_LOAD_ERROR_GENERIC = 1, 
00575    EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2, 
00576    EDJE_LOAD_ERROR_PERMISSION_DENIED = 3, 
00577    EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, 
00578    EDJE_LOAD_ERROR_CORRUPT_FILE = 5, 
00579    EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6, 
00580    EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7, 
00581    EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8, 
00582    EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = 9 
00583 } Edje_Load_Error; 
00585 typedef enum _Edje_Text_Filter_Type
00586 {
00587    EDJE_TEXT_FILTER_TEXT = 0,
00588    EDJE_TEXT_FILTER_FORMAT = 1,
00589    EDJE_TEXT_FILTER_MARKUP = 2
00590 } Edje_Text_Filter_Type;
00591 
00592 typedef enum _Edje_Text_Autocapital_Type
00593 {
00594    EDJE_TEXT_AUTOCAPITAL_TYPE_NONE,
00595    EDJE_TEXT_AUTOCAPITAL_TYPE_WORD,
00596    EDJE_TEXT_AUTOCAPITAL_TYPE_SENTENCE,
00597    EDJE_TEXT_AUTOCAPITAL_TYPE_ALLCHARACTER
00598 } Edje_Text_Autocapital_Type;
00599 
00603 typedef enum _Edje_External_Param_Type
00604 {
00605    EDJE_EXTERNAL_PARAM_TYPE_INT, 
00606    EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, 
00607    EDJE_EXTERNAL_PARAM_TYPE_STRING, 
00608    EDJE_EXTERNAL_PARAM_TYPE_BOOL, 
00609    EDJE_EXTERNAL_PARAM_TYPE_CHOICE, 
00611    EDJE_EXTERNAL_PARAM_TYPE_MAX 
00612 } Edje_External_Param_Type;
00613 
00618 typedef enum _Edje_External_Param_Flags
00619 {
00620    EDJE_EXTERNAL_PARAM_FLAGS_NONE        = 0, 
00621    EDJE_EXTERNAL_PARAM_FLAGS_GET         = (1 << 0), 
00622    EDJE_EXTERNAL_PARAM_FLAGS_SET         = (1 << 1), 
00623    EDJE_EXTERNAL_PARAM_FLAGS_STATE       = (1 << 2), 
00624    EDJE_EXTERNAL_PARAM_FLAGS_CONSTRUCTOR = (1 << 3), 
00625    EDJE_EXTERNAL_PARAM_FLAGS_REGULAR     = (EDJE_EXTERNAL_PARAM_FLAGS_GET |
00626                                             EDJE_EXTERNAL_PARAM_FLAGS_SET |
00627                                             EDJE_EXTERNAL_PARAM_FLAGS_STATE) 
00628 } Edje_External_Param_Flags;
00629 
00630 typedef enum _Edje_Input_Panel_Layout
00631 {
00632    EDJE_INPUT_PANEL_LAYOUT_NORMAL,          
00633    EDJE_INPUT_PANEL_LAYOUT_NUMBER,          
00634    EDJE_INPUT_PANEL_LAYOUT_EMAIL,           
00635    EDJE_INPUT_PANEL_LAYOUT_URL,             
00636    EDJE_INPUT_PANEL_LAYOUT_PHONENUMBER,     
00637    EDJE_INPUT_PANEL_LAYOUT_IP,              
00638    EDJE_INPUT_PANEL_LAYOUT_MONTH,           
00639    EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY,      
00640    EDJE_INPUT_PANEL_LAYOUT_INVALID,         
00641    EDJE_INPUT_PANEL_LAYOUT_HEX,             
00642    EDJE_INPUT_PANEL_LAYOUT_TERMINAL,        
00643    EDJE_INPUT_PANEL_LAYOUT_PASSWORD         
00644 } Edje_Input_Panel_Layout;
00645 
00646 typedef enum _Edje_Input_Panel_Lang
00647 {
00648    EDJE_INPUT_PANEL_LANG_AUTOMATIC,    
00649    EDJE_INPUT_PANEL_LANG_ALPHABET      
00650 } Edje_Input_Panel_Lang;
00651 
00652 typedef enum _Edje_Input_Panel_Return_Key_Type
00653 {
00654    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT, 
00655    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DONE,    
00656    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_GO,      
00657    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_JOIN,    
00658    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN,   
00659    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_NEXT,    
00660    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH,  
00661    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEND     
00662 } Edje_Input_Panel_Return_Key_Type;
00663 
00672 EAPI const char *edje_external_param_type_str(Edje_External_Param_Type type) EINA_PURE;
00673 
00677 struct _Edje_External_Param
00678 {
00679    const char               *name; 
00680    Edje_External_Param_Type  type; 
00683    // XXX these could be in a union, but eet doesn't support them (or does it?)
00684    int                       i; 
00685    double                    d; 
00686    const char               *s; 
00687 };
00691 typedef struct _Edje_External_Param Edje_External_Param;
00692 
00696 #define EDJE_EXTERNAL_INT_UNSET INT_MAX
00697 
00700 #define EDJE_EXTERNAL_DOUBLE_UNSET DBL_MAX
00701 
00713 typedef struct _Edje_External_Param_Info Edje_External_Param_Info;
00725 struct _Edje_External_Param_Info
00726 {
00727    const char               *name; 
00728    Edje_External_Param_Type  type; 
00729    Edje_External_Param_Flags flags; 
00731    union {
00732       struct {
00733          int                 def, 
00734                              min, 
00735                              max, 
00736                              step; 
00737       } i; 
00739       struct {
00740          double              def, 
00741                              min, 
00742                              max, 
00743                              step; 
00744       } d; 
00746       struct {
00747          const char         *def; 
00748          const char         *accept_fmt; 
00749          const char         *deny_fmt; 
00750       } s; 
00751       struct {
00752          int                 def; 
00753          const char         *false_str; 
00754          const char         *true_str; 
00755       } b; 
00756       struct {
00757          const char         *def; 
00758          const char        **choices; /* Array of strings, each represents a
00759                                          valid value for this parameter. The
00760                                          last element of the array must be
00761                                          NULL. */
00762          char               *(*def_get)(void *data, const Edje_External_Param_Info *info); 
00763          char              **(*query)(void *data, const Edje_External_Param_Info *info); 
00764       } c; 
00765    } info;
00766 };
00767 
00768 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, flags) \
00769   {name, EDJE_EXTERNAL_PARAM_TYPE_INT, flags, {.i = {def, min, max, step}}}
00770 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, flags) \
00771   {name, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, flags, {.d = {def, min, max, step}}}
00772 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, flags) \
00773   {name, EDJE_EXTERNAL_PARAM_TYPE_STRING, flags, {.s = {def, accept, deny}}}
00774 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, flags) \
00775   {name, EDJE_EXTERNAL_PARAM_TYPE_BOOL, flags, {.b = {def, false_str, true_str}}}
00776 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, flags) \
00777   {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {def, choices, NULL, NULL}}}
00778 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, flags) \
00779   {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {NULL, NULL, def_get, query}}}
00780 
00781 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, min, max, step) \
00782   EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00783 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, min, max, step) \
00784   EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00785 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, accept, deny) \
00786   EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00787 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, false_str, true_str) \
00788   EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00789 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL(name, def, choices) \
00790   EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00791 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL(name, def_get, query) \
00792   EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00793 
00794 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, def) \
00795    EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET)
00796 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, def) \
00797    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET)
00798 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, def) \
00799    EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, NULL, NULL)
00800 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, def) \
00801    EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, "false", "true")
00802 
00803 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, def, flags)    \
00804   EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, flags)
00805 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, def, flags) \
00806   EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, flags)
00807 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, def, flags) \
00808   EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, NULL, NULL, flags)
00809 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, def, flags)   \
00810   EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, "false", "true", flags)
00811 
00812 #define EDJE_EXTERNAL_PARAM_INFO_INT(name) \
00813    EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, 0)
00814 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE(name) \
00815    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, 0.0)
00816 #define EDJE_EXTERNAL_PARAM_INFO_STRING(name) \
00817    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, NULL)
00818 #define EDJE_EXTERNAL_PARAM_INFO_BOOL(name) \
00819    EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, 0)
00820 
00821 #define EDJE_EXTERNAL_PARAM_INFO_INT_FLAGS(name, flags) \
00822    EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, 0, flags)
00823 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FLAGS(name, flags) \
00824    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, 0.0, flags)
00825 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FLAGS(name, flags) \
00826    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, NULL, flags)
00827 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FLAGS(name, flags) \
00828    EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, 0, flags)
00829 
00830 #define EDJE_EXTERNAL_PARAM_INFO_SENTINEL {NULL, 0, 0, {.s = {NULL, NULL, NULL}}}
00831 
00850 struct _Edje_External_Type
00851 {
00852 #define EDJE_EXTERNAL_TYPE_ABI_VERSION (3)
00853   unsigned int  abi_version; 
00857   const char    *module; 
00860   const char    *module_name; 
00862   Evas_Object *(*add) (void *data, Evas *evas, Evas_Object *parent, const Eina_List *params, const char *part_name); 
00864   void         (*state_set) (void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos); 
00865   void         (*signal_emit) (void *data, Evas_Object *obj, const char *emission, const char *source); 
00866   Eina_Bool    (*param_set) (void *data, Evas_Object *obj, const Edje_External_Param *param); 
00867   Eina_Bool    (*param_get) (void *data, const Evas_Object *obj, Edje_External_Param *param); 
00868   Evas_Object *(*content_get) (void *data, const Evas_Object *obj, const char *content); 
00869   void        *(*params_parse) (void *data, Evas_Object *obj, const Eina_List *params); 
00870   void         (*params_free) (void *params); 
00872   /* The following callbacks aren't used by Edje itself, but by UI design
00873      tools instead */
00874   const char  *(*label_get) (void *data); 
00875   const char  *(*description_get) (void *data); 
00876   Evas_Object *(*icon_add) (void *data, Evas *e); 
00877   Evas_Object *(*preview_add) (void *data, Evas *e); 
00878   const char  *(*translate) (void *data, const char *orig); 
00880   Edje_External_Param_Info *parameters_info; 
00881   void                     *data; 
00882 };
00883 typedef struct _Edje_External_Type Edje_External_Type;
00884 
00890 struct _Edje_External_Type_Info
00891 {
00892    const char               *name; 
00893    const Edje_External_Type *info; 
00894 };
00895 typedef struct _Edje_External_Type_Info Edje_External_Type_Info;
00896 
00897 typedef void         (*Edje_Signal_Cb)          (void *data, Evas_Object *obj, const char *emission, const char *source); 
00898 typedef void         (*Edje_Text_Change_Cb)     (void *data, Evas_Object *obj, const char *part);
00899 typedef void         (*Edje_Message_Handler_Cb) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg); 
00900 typedef void         (*Edje_Text_Filter_Cb)     (void *data, Evas_Object *obj, const char *part, Edje_Text_Filter_Type type, char **text);
00901 typedef void         (*Edje_Markup_Filter_Cb)   (void *data, Evas_Object *obj, const char *part, char **text);
00902 typedef Evas_Object *(*Edje_Item_Provider_Cb)   (void *data, Evas_Object *obj, const char *part, const char *item);
00903 
00923 EAPI int          edje_init                       (void);
00924 
00944 EAPI int          edje_shutdown                   (void);
00945 
00959 EAPI void         edje_frametime_set              (double t);
00960 
00972 EAPI double       edje_frametime_get              (void);
00973 
00984 EAPI void         edje_freeze                     (void);
00985 
00996 EAPI void         edje_thaw                       (void);
00997 
01006 EAPI void         edje_fontset_append_set         (const char *fonts);
01007 
01019 EAPI const char  *edje_fontset_append_get         (void);
01020 
01044 EAPI void         edje_scale_set                  (double scale);
01045 
01056 EAPI double       edje_scale_get                  (void);
01057 
01070 EAPI void edje_password_show_last_set(Eina_Bool password_show_last);
01071 
01085 EAPI void edje_password_show_last_timeout_set(double password_show_last_timeout);
01086 
01108 EAPI Eina_Bool    edje_object_scale_set           (Evas_Object *obj, double scale);
01109 
01121 EAPI double       edje_object_scale_get           (const Evas_Object *obj);
01122 
01130 EAPI void         edje_object_mirrored_set        (Evas_Object *obj, Eina_Bool rtl);
01131 
01141 EAPI Eina_Bool    edje_object_mirrored_get        (const Evas_Object *obj);
01142 
01152 EAPI Eina_List   *edje_file_collection_list       (const char *file);
01153 
01160 EAPI void         edje_file_collection_list_free  (Eina_List *lst);
01161 
01169 EAPI Eina_Bool    edje_file_group_exists          (const char *file, const char *glob);
01170 
01188 EAPI char        *edje_file_data_get              (const char *file, const char *key);
01189 
01203 EAPI void         edje_file_cache_set             (int count);
01204 
01217 EAPI int          edje_file_cache_get             (void);
01218 
01229 EAPI void         edje_file_cache_flush           (void);
01230 
01245 EAPI void         edje_collection_cache_set       (int count);
01246 
01259 EAPI int          edje_collection_cache_get       (void);
01260 
01271 EAPI void         edje_collection_cache_flush     (void);
01272 
01309 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);
01310 
01345 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);
01346 
01360 EAPI void         edje_color_class_del            (const char *color_class);
01361 
01372 EAPI Eina_List   *edje_color_class_list           (void);
01373 
01389 EAPI Eina_Bool    edje_text_class_set             (const char *text_class, const char *font, Evas_Font_Size size);
01390 
01400 EAPI void         edje_text_class_del             (const char *text_class);
01401 
01412 EAPI Eina_List   *edje_text_class_list            (void);
01413 
01423 EAPI void         edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
01424 
01434 EAPI void         edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh);
01435 
01449 EAPI void         edje_extern_object_aspect_set   (Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah);
01450 
01473 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);
01474 
01526 EAPI Evas_Object *edje_object_add                 (Evas *evas);
01527 
01564 EAPI const char  *edje_object_data_get            (const Evas_Object *obj, const char *key);
01565 
01596 EAPI Eina_Bool        edje_object_file_set        (Evas_Object *obj, const char *file, const char *group);
01597 
01618 EAPI void             edje_object_file_get        (const Evas_Object *obj, const char **file, const char **group);
01619 
01644 EAPI Edje_Load_Error  edje_object_load_error_get  (const Evas_Object *obj);
01645 
01660 EAPI const char      *edje_load_error_str         (Edje_Load_Error error);
01661 
01679 EAPI Eina_Bool        edje_object_preload         (Evas_Object *obj, Eina_Bool cancel);
01680 
01741 EAPI void         edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01742 
01762 EAPI void        *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);
01763 
01787 EAPI void        *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01788 
01817 EAPI void         edje_object_signal_emit         (Evas_Object *obj, const char *emission, const char *source);
01818 
01830 EAPI void *       edje_object_signal_callback_extra_data_get(void);
01831 
01846 EAPI void         edje_object_play_set            (Evas_Object *obj, Eina_Bool play);
01847 
01862 EAPI Eina_Bool    edje_object_play_get            (const Evas_Object *obj);
01863 
01878 EAPI void         edje_object_animation_set       (Evas_Object *obj, Eina_Bool on);
01879 
01893 EAPI Eina_Bool    edje_object_animation_get       (const Evas_Object *obj);
01894 
01906 EAPI int          edje_object_freeze                  (Evas_Object *obj);
01907 
01921 EAPI int          edje_object_thaw                    (Evas_Object *obj);
01922 
01956 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);
01957 
01990 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);
01991 
02007  EAPI void         edje_object_color_class_del         (Evas_Object *obj, const char *color_class);
02008 
02022 EAPI Eina_Bool    edje_object_text_class_set          (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size);
02023 
02059 EAPI void         edje_object_size_min_get            (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02060 
02072 EAPI void edje_object_update_hints_set(Evas_Object *obj, Eina_Bool update);
02073 
02080 EAPI Eina_Bool edje_object_update_hints_get(Evas_Object *obj);
02081 
02118 EAPI void         edje_object_size_max_get            (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
02119 
02128 EAPI void         edje_object_calc_force              (Evas_Object *obj);
02129 
02143 EAPI void         edje_object_size_min_calc           (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02144 
02172 EAPI Eina_Bool    edje_object_parts_extends_calc      (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
02173 
02201 EAPI void         edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh);
02202 
02219 EAPI Eina_Bool    edje_object_part_exists             (const Evas_Object *obj, const char *part);
02220 
02240 EAPI const Evas_Object *edje_object_part_object_get   (const Evas_Object *obj, const char *part);
02241 
02265 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);
02266 
02267 
02278 EAPI void         edje_object_item_provider_set       (Evas_Object *obj, Edje_Item_Provider_Cb func, void *data);
02279 
02280 
02290 EAPI void         edje_object_text_change_cb_set      (Evas_Object *obj, Edje_Text_Change_Cb func, void *data);
02291 
02299 EAPI Eina_Bool    edje_object_part_text_set           (Evas_Object *obj, const char *part, const char *text);
02300 
02313 EAPI Eina_Bool    edje_object_part_text_escaped_set   (Evas_Object *obj, const char *part, const char *text);
02314        
02327 EAPI const char  *edje_object_part_text_get           (const Evas_Object *obj, const char *part);
02328 
02340 EAPI void edje_object_part_text_style_user_push(Evas_Object *obj, const char *part, const char *style);
02341 
02354 EAPI const char *edje_object_part_text_style_user_peek(const Evas_Object *obj, const char *part);
02355 
02364 EAPI void edje_object_part_text_style_user_pop(Evas_Object *obj, const char *part);
02365 
02378 EAPI Eina_Bool    edje_object_part_text_unescaped_set (Evas_Object *obj, const char *part, const char *text_to_escape);
02379 
02395 EAPI char        *edje_object_part_text_unescaped_get (const Evas_Object *obj, const char *part);
02396 
02409 EAPI const char      *edje_object_part_text_selection_get           (const Evas_Object *obj, const char *part);
02410 
02419 EAPI void             edje_object_part_text_select_none             (const Evas_Object *obj, const char *part);
02420 
02429 EAPI void             edje_object_part_text_select_all              (const Evas_Object *obj, const char *part);
02430 
02442 EAPI void             edje_object_part_text_insert                  (Evas_Object *obj, const char *part, const char *text);
02443 
02456 EAPI void             edje_object_part_text_append(Evas_Object *obj, const char *part, const char *text);
02457 
02469 EAPI const Eina_List *edje_object_part_text_anchor_list_get         (const Evas_Object *obj, const char *part);
02470 
02485 EAPI const Eina_List *edje_object_part_text_anchor_geometry_get     (const Evas_Object *obj, const char *part, const char *anchor);
02486 
02498 EAPI const Eina_List *edje_object_part_text_item_list_get           (const Evas_Object *obj, const char *part);
02499 
02517 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);
02518 
02531 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);
02532 
02541 EAPI void             edje_object_part_text_user_insert        (const Evas_Object *obj, const char *part, const char *text);
02542 
02555 EAPI void             edje_object_part_text_select_allow_set        (const Evas_Object *obj, const char *part, Eina_Bool allow);
02556 
02563 EAPI void             edje_object_part_text_select_abort            (const Evas_Object *obj, const char *part);
02564 
02571 EAPI void             edje_object_part_text_select_begin            (const Evas_Object *obj, const char *part);
02572 
02579 EAPI void             edje_object_part_text_select_extend           (const Evas_Object *obj, const char *part);
02580 
02581 
02590 EAPI Eina_Bool        edje_object_part_text_cursor_next                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02591 
02600 EAPI Eina_Bool        edje_object_part_text_cursor_prev                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02601 
02609 EAPI Eina_Bool        edje_object_part_text_cursor_up                   (Evas_Object *obj, const char *part, Edje_Cursor cur);
02610 
02618 EAPI Eina_Bool        edje_object_part_text_cursor_down                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02619 
02628 EAPI void             edje_object_part_text_cursor_begin_set            (Evas_Object *obj, const char *part, Edje_Cursor cur);
02629 
02638 EAPI void             edje_object_part_text_cursor_end_set              (Evas_Object *obj, const char *part, Edje_Cursor cur);
02639 
02648 EAPI void             edje_object_part_text_cursor_copy                 (Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst);
02649 
02658 EAPI void             edje_object_part_text_cursor_line_begin_set       (Evas_Object *obj, const char *part, Edje_Cursor cur);
02659 
02668 EAPI void             edje_object_part_text_cursor_line_end_set         (Evas_Object *obj, const char *part, Edje_Cursor cur);
02669 
02682 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);
02683 
02693 EAPI Eina_Bool        edje_object_part_text_cursor_is_format_get        (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02694 
02704 EAPI Eina_Bool        edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur);
02705 
02717 EAPI char            *edje_object_part_text_cursor_content_get          (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02718 
02728 EAPI void             edje_object_part_text_cursor_pos_set              (Evas_Object *obj, const char *part, Edje_Cursor cur, int pos);
02729 
02739 EAPI int              edje_object_part_text_cursor_pos_get              (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02740 
02750 EAPI void             edje_object_part_text_imf_context_reset           (const Evas_Object *obj, const char *part);
02751 
02764 EAPI void              *edje_object_part_text_imf_context_get           (const Evas_Object *obj, const char *part);
02765 
02779 EAPI void             edje_object_part_text_input_panel_layout_set      (Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout);
02780 
02792 EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get (const Evas_Object *obj, const char *part);
02793 
02802 EAPI void         edje_object_part_text_autocapital_type_set            (Evas_Object *obj, const char *part, Edje_Text_Autocapital_Type autocapital_type);
02803 
02812 EAPI Edje_Text_Autocapital_Type edje_object_part_text_autocapital_type_get (const Evas_Object *obj, const char *part);
02813 
02822 EAPI void             edje_object_part_text_prediction_allow_set        (Evas_Object *obj, const char *part, Eina_Bool prediction);
02823 
02832 EAPI Eina_Bool        edje_object_part_text_prediction_allow_get        (const Evas_Object *obj, const char *part);
02833 
02842 EAPI void             edje_object_part_text_input_panel_enabled_set     (Evas_Object *obj, const char *part, Eina_Bool enabled);
02843 
02853 EAPI Eina_Bool        edje_object_part_text_input_panel_enabled_get (const Evas_Object *obj, const char *part);
02854 
02865 EAPI void             edje_object_part_text_input_panel_show(const Evas_Object *obj, const char *part);
02866 
02878 EAPI void             edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part);
02879 
02890 EAPI void             edje_object_part_text_input_panel_language_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Lang lang);
02891 
02902 EAPI Edje_Input_Panel_Lang edje_object_part_text_input_panel_language_get(const Evas_Object *obj, const char *part);
02903 
02917 EAPI void             edje_object_part_text_input_panel_imdata_set(Evas_Object *obj, const char *part, const void *data, int len);
02918 
02928 EAPI void             edje_object_part_text_input_panel_imdata_get(const Evas_Object *obj, const char *part, void *data, int *len);
02929 
02940 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);
02941 
02952 EAPI Edje_Input_Panel_Return_Key_Type edje_object_part_text_input_panel_return_key_type_get(const Evas_Object *obj, const char *part);
02953 
02962 EAPI void             edje_object_part_text_input_panel_return_key_disabled_set(Evas_Object *obj, const char *part, Eina_Bool disabled);
02963 
02972 EAPI Eina_Bool        edje_object_part_text_input_panel_return_key_disabled_get(const Evas_Object *obj, const char *part);
02973 
03010 EAPI void             edje_object_text_insert_filter_callback_add       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
03011 
03027 EAPI void            *edje_object_text_insert_filter_callback_del       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func);
03028 
03046 EAPI void            *edje_object_text_insert_filter_callback_del_full  (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
03047 
03079 EAPI void edje_object_text_markup_filter_callback_add(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data);
03080 
03097 EAPI void *edje_object_text_markup_filter_callback_del(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func);
03098 
03117 EAPI void *edje_object_text_markup_filter_callback_del_full(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data);
03118 
03133 EAPI Eina_Bool        edje_object_part_swallow        (Evas_Object *obj, const char *part, Evas_Object *obj_swallow);
03134 
03147 EAPI void             edje_object_part_unswallow      (Evas_Object *obj, Evas_Object *obj_swallow);
03148 
03156 EAPI Evas_Object     *edje_object_part_swallow_get    (const Evas_Object *obj, const char *part);
03157 
03169 EAPI const char      *edje_object_part_state_get      (const Evas_Object *obj, const char *part, double *val_ret);
03170 
03186 EAPI Edje_Drag_Dir    edje_object_part_drag_dir_get   (const Evas_Object *obj, const char *part);
03187 
03210 EAPI Eina_Bool        edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
03211 
03227 EAPI Eina_Bool        edje_object_part_drag_value_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
03228 
03244 EAPI Eina_Bool        edje_object_part_drag_size_set  (Evas_Object *obj, const char *part, double dw, double dh);
03245 
03258 EAPI Eina_Bool        edje_object_part_drag_size_get  (const Evas_Object *obj, const char *part, double *dw, double *dh);
03259 
03276 EAPI Eina_Bool        edje_object_part_drag_step_set  (Evas_Object *obj, const char *part, double dx, double dy);
03277 
03291 EAPI Eina_Bool        edje_object_part_drag_step_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
03292 
03309 EAPI Eina_Bool        edje_object_part_drag_page_set  (Evas_Object *obj, const char *part, double dx, double dy);
03310 
03323 EAPI Eina_Bool        edje_object_part_drag_page_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
03324 
03340 EAPI Eina_Bool        edje_object_part_drag_step      (Evas_Object *obj, const char *part, double dx, double dy);
03341 
03359 EAPI Eina_Bool        edje_object_part_drag_page      (Evas_Object *obj, const char *part, double dx, double dy);
03360 
03361 
03381 EAPI Evas_Object              *edje_object_part_external_object_get     (const Evas_Object *obj, const char *part);
03382 
03413 EAPI Eina_Bool                 edje_object_part_external_param_set      (Evas_Object *obj, const char *part, const Edje_External_Param *param);
03414 
03443 EAPI Eina_Bool                 edje_object_part_external_param_get      (const Evas_Object *obj, const char *part, Edje_External_Param *param);
03444 
03455 EAPI Evas_Object              *edje_object_part_external_content_get    (const Evas_Object *obj, const char *part, const char *content);
03456 
03467 EAPI Edje_External_Param_Type  edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param);
03468 
03469 
03486 EAPI Eina_Bool    edje_object_part_box_append             (Evas_Object *obj, const char *part, Evas_Object *child);
03487 
03504 EAPI Eina_Bool    edje_object_part_box_prepend            (Evas_Object *obj, const char *part, Evas_Object *child);
03505 
03524 EAPI Eina_Bool    edje_object_part_box_insert_before      (Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
03525 
03544 EAPI Eina_Bool    edje_object_part_box_insert_at          (Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos);
03545 
03560 EAPI Evas_Object *edje_object_part_box_remove             (Evas_Object *obj, const char *part, Evas_Object *child);
03561 
03577 EAPI Evas_Object *edje_object_part_box_remove_at          (Evas_Object *obj, const char *part, unsigned int pos);
03578 
03595 EAPI Eina_Bool    edje_object_part_box_remove_all         (Evas_Object *obj, const char *part, Eina_Bool clear);
03596 
03606 EAPI Evas_Object *edje_object_part_table_child_get        (Evas_Object *obj, const char *part, unsigned int col, unsigned int row);
03607 
03623 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);
03624 
03636 EAPI Eina_Bool    edje_object_part_table_unpack           (Evas_Object *obj, const char *part, Evas_Object *child_obj);
03637 
03650 EAPI Eina_Bool    edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows);
03651 
03664 EAPI Eina_Bool    edje_object_part_table_clear            (Evas_Object *obj, const char *part, Eina_Bool clear);
03665 
03688 EAPI void         edje_object_message_send                (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
03689 
03714 EAPI void         edje_object_message_handler_set         (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data);
03715 
03726 EAPI void         edje_object_message_signal_process      (Evas_Object *obj);
03727 
03728 
03736 EAPI void         edje_message_signal_process             (void);
03737 
03755 EAPI Eina_Bool    edje_external_type_register             (const char *type_name, const Edje_External_Type *type_info);
03756 
03768 EAPI Eina_Bool    edje_external_type_unregister           (const char *type_name);
03769 
03793 EAPI void         edje_external_type_array_register       (const Edje_External_Type_Info *array);
03794 
03803 EAPI void         edje_external_type_array_unregister     (const Edje_External_Type_Info *array);
03804 
03824 EAPI unsigned int edje_external_type_abi_version_get      (void) EINA_CONST;
03825 
03868 EAPI Eina_Iterator                  *edje_external_iterator_get     (void);
03869 
03878    EAPI Edje_External_Param            *edje_external_param_find       (const Eina_List *params, const char *key);
03895    EAPI Eina_Bool                       edje_external_param_int_get    (const Eina_List *params, const char *key, int *ret);
03912    EAPI Eina_Bool                       edje_external_param_double_get (const Eina_List *params, const char *key, double *ret);
03931    EAPI Eina_Bool                       edje_external_param_string_get (const Eina_List *params, const char *key, const char **ret);
03948    EAPI Eina_Bool                       edje_external_param_bool_get   (const Eina_List *params, const char *key, Eina_Bool *ret);
03967    EAPI Eina_Bool                       edje_external_param_choice_get (const Eina_List *params, const char *key, const char **ret);
03968 
03981 EAPI const Edje_External_Param_Info *edje_external_param_info_get   (const char *type_name);
03982 
03987    EAPI const Edje_External_Type       *edje_external_type_get         (const char *type_name);
03988 
03989    EAPI Eina_Bool               edje_module_load                (const char *module);
03990    EAPI const Eina_List        *edje_available_modules_get      (void);
03991 
03992    /* perspective info for maps inside edje objects */
03993    typedef struct _Edje_Perspective Edje_Perspective;
03994 
04007    EAPI Edje_Perspective       *edje_perspective_new            (Evas *e);
04019    EAPI void                    edje_perspective_free           (Edje_Perspective *ps);
04042    EAPI void                    edje_perspective_set            (Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc);
04066    EAPI void                    edje_perspective_global_set     (Edje_Perspective *ps, Eina_Bool global);
04076    EAPI Eina_Bool               edje_perspective_global_get     (const Edje_Perspective *ps);
04090    EAPI const Edje_Perspective *edje_evas_global_perspective_get(const Evas *e);
04111    EAPI void                    edje_object_perspective_set     (Evas_Object *obj, Edje_Perspective *ps);
04121    EAPI const Edje_Perspective *edje_object_perspective_get     (const Evas_Object *obj);
04122 
04123 #ifdef __cplusplus
04124 }
04125 #endif
04126 
04127 #endif