src/lib/Edje.h

Go to the documentation of this file.
00001 
00439 #ifndef _EDJE_H
00440 #define _EDJE_H
00441 
00442 #ifndef _MSC_VER
00443 # include <stdint.h>
00444 #endif
00445 #include <math.h>
00446 #include <float.h>
00447 #include <limits.h>
00448 
00449 #include <Evas.h>
00450 
00451 #ifdef EAPI
00452 # undef EAPI
00453 #endif
00454 
00455 #ifdef HAVE_ECORE_IMF
00456 #include <Ecore_IMF.h>
00457 #endif
00458 
00459 #ifdef _WIN32
00460 # ifdef EFL_EDJE_BUILD
00461 #  ifdef DLL_EXPORT
00462 #   define EAPI __declspec(dllexport)
00463 #  else
00464 #   define EAPI
00465 #  endif /* ! DLL_EXPORT */
00466 # else
00467 #  define EAPI __declspec(dllimport)
00468 # endif /* ! EFL_EDJE_BUILD */
00469 #else
00470 # ifdef __GNUC__
00471 #  if __GNUC__ >= 4
00472 #   define EAPI __attribute__ ((visibility("default")))
00473 #  else
00474 #   define EAPI
00475 #  endif
00476 # else
00477 #  define EAPI
00478 # endif
00479 #endif
00480 
00481 #ifdef __cplusplus
00482 extern "C" {
00483 #endif
00484 
00485 #define EDJE_VERSION_MAJOR 1
00486 #define EDJE_VERSION_MINOR 2
00487 
00488    typedef struct _Edje_Version
00489      {
00490         int major;
00491         int minor;
00492         int micro;
00493         int revision;
00494      } Edje_Version;
00495 
00496    EAPI extern Edje_Version *edje_version;
00497 
00512 typedef enum _Edje_Message_Type
00513 {
00514    EDJE_MESSAGE_NONE = 0,
00515 
00516    EDJE_MESSAGE_SIGNAL = 1, /* DONT USE THIS */
00517 
00518    EDJE_MESSAGE_STRING = 2, 
00519    EDJE_MESSAGE_INT = 3, 
00520    EDJE_MESSAGE_FLOAT = 4, 
00522    EDJE_MESSAGE_STRING_SET = 5, 
00523    EDJE_MESSAGE_INT_SET = 6, 
00524    EDJE_MESSAGE_FLOAT_SET = 7, 
00526    EDJE_MESSAGE_STRING_INT = 8, 
00527    EDJE_MESSAGE_STRING_FLOAT = 9, 
00529    EDJE_MESSAGE_STRING_INT_SET = 10, 
00530    EDJE_MESSAGE_STRING_FLOAT_SET = 11 
00531 } Edje_Message_Type;
00532 
00533 typedef enum _Edje_Aspect_Control
00534 {
00535    EDJE_ASPECT_CONTROL_NONE = 0,
00536    EDJE_ASPECT_CONTROL_NEITHER = 1,
00537    EDJE_ASPECT_CONTROL_HORIZONTAL = 2,
00538    EDJE_ASPECT_CONTROL_VERTICAL = 3,
00539    EDJE_ASPECT_CONTROL_BOTH = 4
00540 } Edje_Aspect_Control;
00541 
00542 typedef enum _Edje_Object_Table_Homogeneous_Mode
00543 {
00544    EDJE_OBJECT_TABLE_HOMOGENEOUS_NONE = 0,
00545    EDJE_OBJECT_TABLE_HOMOGENEOUS_TABLE = 1,
00546    EDJE_OBJECT_TABLE_HOMOGENEOUS_ITEM = 2
00547 } Edje_Object_Table_Homogeneous_Mode;
00548 
00549 typedef enum _Edje_Part_Type
00550 {
00551    EDJE_PART_TYPE_NONE      = 0,
00552    EDJE_PART_TYPE_RECTANGLE = 1,
00553    EDJE_PART_TYPE_TEXT      = 2,
00554    EDJE_PART_TYPE_IMAGE     = 3,
00555    EDJE_PART_TYPE_SWALLOW   = 4,
00556    EDJE_PART_TYPE_TEXTBLOCK = 5,
00557    EDJE_PART_TYPE_GRADIENT  = 6,
00558    EDJE_PART_TYPE_GROUP     = 7,
00559    EDJE_PART_TYPE_BOX       = 8,
00560    EDJE_PART_TYPE_TABLE     = 9,
00561    EDJE_PART_TYPE_EXTERNAL  = 10,
00562    EDJE_PART_TYPE_PROXY     = 11,
00563    EDJE_PART_TYPE_LAST      = 12
00564 } Edje_Part_Type;
00565 
00566 typedef enum _Edje_Text_Effect
00567 {
00568 #define EDJE_TEXT_EFFECT_MASK_BASIC 0xf
00569 #define EDJE_TEXT_EFFECT_BASIC_SET(x, s) \
00570    do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_BASIC) | (s); } while (0)
00571    EDJE_TEXT_EFFECT_NONE                = 0,
00572    EDJE_TEXT_EFFECT_PLAIN               = 1,
00573    EDJE_TEXT_EFFECT_OUTLINE             = 2,
00574    EDJE_TEXT_EFFECT_SOFT_OUTLINE        = 3,
00575    EDJE_TEXT_EFFECT_SHADOW              = 4,
00576    EDJE_TEXT_EFFECT_SOFT_SHADOW         = 5,
00577    EDJE_TEXT_EFFECT_OUTLINE_SHADOW      = 6,
00578    EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW = 7,
00579    EDJE_TEXT_EFFECT_FAR_SHADOW          = 8,
00580    EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW     = 9,
00581    EDJE_TEXT_EFFECT_GLOW                = 10,
00582 
00583    EDJE_TEXT_EFFECT_LAST                = 11,
00584 
00585 #define EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION (0x7 << 4)
00586 #define EDJE_TEXT_EFFECT_SHADOW_DIRECTION_SET(x, s) \
00587    do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION) | (s); } while (0)
00588    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT = (0x0 << 4),
00589    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM       = (0x1 << 4),
00590    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT  = (0x2 << 4),
00591    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT         = (0x3 << 4),
00592    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT     = (0x4 << 4),
00593    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP          = (0x5 << 4),
00594    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT    = (0x6 << 4),
00595    EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT        = (0x7 << 4)
00596 } Edje_Text_Effect;
00597 
00598 typedef enum _Edje_Action_Type
00599 {
00600    EDJE_ACTION_TYPE_NONE                = 0,
00601    EDJE_ACTION_TYPE_STATE_SET           = 1,
00602    EDJE_ACTION_TYPE_ACTION_STOP         = 2,
00603    EDJE_ACTION_TYPE_SIGNAL_EMIT         = 3,
00604    EDJE_ACTION_TYPE_DRAG_VAL_SET        = 4,
00605    EDJE_ACTION_TYPE_DRAG_VAL_STEP       = 5,
00606    EDJE_ACTION_TYPE_DRAG_VAL_PAGE       = 6,
00607    EDJE_ACTION_TYPE_SCRIPT              = 7,
00608    EDJE_ACTION_TYPE_FOCUS_SET           = 8,
00609    EDJE_ACTION_TYPE_RESERVED00          = 9,
00610    EDJE_ACTION_TYPE_FOCUS_OBJECT        = 10,
00611    EDJE_ACTION_TYPE_PARAM_COPY          = 11,
00612    EDJE_ACTION_TYPE_PARAM_SET           = 12,
00613    EDJE_ACTION_TYPE_SOUND_SAMPLE        = 13, 
00614    EDJE_ACTION_TYPE_SOUND_TONE          = 14, 
00615    EDJE_ACTION_TYPE_LAST                = 15
00616 } Edje_Action_Type;
00617 
00618 typedef enum _Edje_Tween_Mode
00619 {
00620    EDJE_TWEEN_MODE_NONE              = 0,
00621    EDJE_TWEEN_MODE_LINEAR            = 1,
00622    EDJE_TWEEN_MODE_SINUSOIDAL        = 2,
00623    EDJE_TWEEN_MODE_ACCELERATE        = 3,
00624    EDJE_TWEEN_MODE_DECELERATE        = 4,
00625    EDJE_TWEEN_MODE_ACCELERATE_FACTOR = 5,
00626    EDJE_TWEEN_MODE_DECELERATE_FACTOR = 6,
00627    EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR = 7,
00628    EDJE_TWEEN_MODE_DIVISOR_INTERP    = 8,
00629    EDJE_TWEEN_MODE_BOUNCE            = 9,
00630    EDJE_TWEEN_MODE_SPRING            = 10,
00631    EDJE_TWEEN_MODE_LAST              = 11,
00632    EDJE_TWEEN_MODE_MASK              = 0xff,
00633    EDJE_TWEEN_MODE_OPT_FROM_CURRENT  = (1 << 31)
00634 } Edje_Tween_Mode;
00635 
00636 typedef enum _Edje_Cursor
00637 {
00638    EDJE_CURSOR_MAIN,
00639    EDJE_CURSOR_SELECTION_BEGIN,
00640    EDJE_CURSOR_SELECTION_END,
00641    EDJE_CURSOR_PREEDIT_START,
00642    EDJE_CURSOR_PREEDIT_END,
00643    EDJE_CURSOR_USER,
00644    EDJE_CURSOR_USER_EXTRA,
00645    // more later
00646 } Edje_Cursor;
00647 
00648 struct _Edje_Entry_Change_Info
00649 {
00650    union {
00651         struct {
00652              const char *content;
00653              size_t pos;
00654              size_t plain_length; /* Number of cursor positions represented
00655                                      in content. */
00656         } insert;
00657         struct {
00658              const char *content;
00659              size_t start, end;
00660         } del;
00661    } change;
00662    Eina_Bool insert : 1; 
00663    Eina_Bool merge : 1; 
00664 };
00665 
00669 typedef struct _Edje_Entry_Change_Info        Edje_Entry_Change_Info;
00670 
00671 typedef struct _Edje_Message_String           Edje_Message_String;
00672 typedef struct _Edje_Message_Int              Edje_Message_Int;
00673 typedef struct _Edje_Message_Float            Edje_Message_Float;
00674 typedef struct _Edje_Message_String_Set       Edje_Message_String_Set;
00675 typedef struct _Edje_Message_Int_Set          Edje_Message_Int_Set;
00676 typedef struct _Edje_Message_Float_Set        Edje_Message_Float_Set;
00677 typedef struct _Edje_Message_String_Int       Edje_Message_String_Int;
00678 typedef struct _Edje_Message_String_Float     Edje_Message_String_Float;
00679 typedef struct _Edje_Message_String_Int_Set   Edje_Message_String_Int_Set;
00680 typedef struct _Edje_Message_String_Float_Set Edje_Message_String_Float_Set;
00681 
00682 struct _Edje_Message_String
00683 {
00684    char *str; 
00685 }; 
00687 struct _Edje_Message_Int
00688 {
00689    int val; 
00690 }; 
00692 struct _Edje_Message_Float
00693 {
00694    double val; 
00695 }; 
00697 struct _Edje_Message_String_Set
00698 {
00699    int count; 
00700    char *str[1]; 
00701 }; 
00703 struct _Edje_Message_Int_Set
00704 {
00705    int count; 
00706    int val[1]; 
00707 }; 
00709 struct _Edje_Message_Float_Set
00710 {
00711    int count; 
00712    double val[1]; 
00713 }; 
00715 struct _Edje_Message_String_Int
00716 {
00717    char *str; 
00718    int val; 
00719 }; 
00721 struct _Edje_Message_String_Float
00722 {
00723    char *str; 
00724    double val; 
00725 }; 
00727 struct _Edje_Message_String_Int_Set
00728 {
00729    char *str; 
00730    int count; 
00731    int val[1]; 
00732 }; 
00734 struct _Edje_Message_String_Float_Set
00735 {
00736    char *str; 
00737    int count; 
00738    double val[1]; 
00739 }; 
00741 typedef enum _Edje_Drag_Dir
00742 {
00743    EDJE_DRAG_DIR_NONE = 0,
00744    EDJE_DRAG_DIR_X = 1,
00745    EDJE_DRAG_DIR_Y = 2,
00746    EDJE_DRAG_DIR_XY = 3
00747 } Edje_Drag_Dir;
00748 
00749 typedef enum _Edje_Load_Error
00750 {
00751    EDJE_LOAD_ERROR_NONE = 0, 
00752    EDJE_LOAD_ERROR_GENERIC = 1, 
00753    EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2, 
00754    EDJE_LOAD_ERROR_PERMISSION_DENIED = 3, 
00755    EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, 
00756    EDJE_LOAD_ERROR_CORRUPT_FILE = 5, 
00757    EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6, 
00758    EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7, 
00759    EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8, 
00760    EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = 9 
00761 } Edje_Load_Error; 
00763 typedef enum _Edje_Text_Filter_Type
00764 {
00765    EDJE_TEXT_FILTER_TEXT = 0,
00766    EDJE_TEXT_FILTER_FORMAT = 1,
00767    EDJE_TEXT_FILTER_MARKUP = 2
00768 } Edje_Text_Filter_Type;
00769 
00770 typedef enum _Edje_Text_Autocapital_Type
00771 {
00772    EDJE_TEXT_AUTOCAPITAL_TYPE_NONE,
00773    EDJE_TEXT_AUTOCAPITAL_TYPE_WORD,
00774    EDJE_TEXT_AUTOCAPITAL_TYPE_SENTENCE,
00775    EDJE_TEXT_AUTOCAPITAL_TYPE_ALLCHARACTER
00776 } Edje_Text_Autocapital_Type;
00777 
00781 typedef enum _Edje_External_Param_Type
00782 {
00783    EDJE_EXTERNAL_PARAM_TYPE_INT, 
00784    EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, 
00785    EDJE_EXTERNAL_PARAM_TYPE_STRING, 
00786    EDJE_EXTERNAL_PARAM_TYPE_BOOL, 
00787    EDJE_EXTERNAL_PARAM_TYPE_CHOICE, 
00789    EDJE_EXTERNAL_PARAM_TYPE_MAX 
00790 } Edje_External_Param_Type;
00791 
00796 typedef enum _Edje_External_Param_Flags
00797 {
00798    EDJE_EXTERNAL_PARAM_FLAGS_NONE        = 0, 
00799    EDJE_EXTERNAL_PARAM_FLAGS_GET         = (1 << 0), 
00800    EDJE_EXTERNAL_PARAM_FLAGS_SET         = (1 << 1), 
00801    EDJE_EXTERNAL_PARAM_FLAGS_STATE       = (1 << 2), 
00802    EDJE_EXTERNAL_PARAM_FLAGS_CONSTRUCTOR = (1 << 3), 
00803    EDJE_EXTERNAL_PARAM_FLAGS_REGULAR     = (EDJE_EXTERNAL_PARAM_FLAGS_GET |
00804                                             EDJE_EXTERNAL_PARAM_FLAGS_SET |
00805                                             EDJE_EXTERNAL_PARAM_FLAGS_STATE) 
00806 } Edje_External_Param_Flags;
00807 
00808 typedef enum _Edje_Input_Panel_Layout
00809 {
00810    EDJE_INPUT_PANEL_LAYOUT_NORMAL,          
00811    EDJE_INPUT_PANEL_LAYOUT_NUMBER,          
00812    EDJE_INPUT_PANEL_LAYOUT_EMAIL,           
00813    EDJE_INPUT_PANEL_LAYOUT_URL,             
00814    EDJE_INPUT_PANEL_LAYOUT_PHONENUMBER,     
00815    EDJE_INPUT_PANEL_LAYOUT_IP,              
00816    EDJE_INPUT_PANEL_LAYOUT_MONTH,           
00817    EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY,      
00818    EDJE_INPUT_PANEL_LAYOUT_INVALID,         
00819    EDJE_INPUT_PANEL_LAYOUT_HEX,             
00820    EDJE_INPUT_PANEL_LAYOUT_TERMINAL,        
00821    EDJE_INPUT_PANEL_LAYOUT_PASSWORD         
00822 } Edje_Input_Panel_Layout;
00823 
00824 typedef enum _Edje_Input_Panel_Lang
00825 {
00826    EDJE_INPUT_PANEL_LANG_AUTOMATIC,    
00827    EDJE_INPUT_PANEL_LANG_ALPHABET      
00828 } Edje_Input_Panel_Lang;
00829 
00830 typedef enum _Edje_Input_Panel_Return_Key_Type
00831 {
00832    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT, 
00833    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DONE,    
00834    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_GO,      
00835    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_JOIN,    
00836    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN,   
00837    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_NEXT,    
00838    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH,  
00839    EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEND     
00840 } Edje_Input_Panel_Return_Key_Type;
00841 
00850 EAPI const char *edje_external_param_type_str(Edje_External_Param_Type type) EINA_PURE;
00851 
00855 struct _Edje_External_Param
00856 {
00857    const char               *name; 
00858    Edje_External_Param_Type  type; 
00861    // XXX these could be in a union, but eet doesn't support them (or does it?)
00862    int                       i; 
00863    double                    d; 
00864    const char               *s; 
00865 };
00869 typedef struct _Edje_External_Param Edje_External_Param;
00870 
00874 #define EDJE_EXTERNAL_INT_UNSET INT_MAX
00875 
00878 #define EDJE_EXTERNAL_DOUBLE_UNSET DBL_MAX
00879 
00891 typedef struct _Edje_External_Param_Info Edje_External_Param_Info;
00903 struct _Edje_External_Param_Info
00904 {
00905    const char               *name; 
00906    Edje_External_Param_Type  type; 
00907    Edje_External_Param_Flags flags; 
00909    union {
00910       struct {
00911          int                 def, 
00912                              min, 
00913                              max, 
00914                              step; 
00915       } i; 
00917       struct {
00918          double              def, 
00919                              min, 
00920                              max, 
00921                              step; 
00922       } d; 
00924       struct {
00925          const char         *def; 
00926          const char         *accept_fmt; 
00927          const char         *deny_fmt; 
00928       } s; 
00929       struct {
00930          int                 def; 
00931          const char         *false_str; 
00932          const char         *true_str; 
00933       } b; 
00934       struct {
00935          const char         *def; 
00936          const char        **choices; /* Array of strings, each represents a
00937                                          valid value for this parameter. The
00938                                          last element of the array must be
00939                                          NULL. */
00940          char               *(*def_get)(void *data, const Edje_External_Param_Info *info); 
00941          char              **(*query)(void *data, const Edje_External_Param_Info *info); 
00942       } c; 
00943    } info;
00944 };
00945 
00946 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, flags) \
00947   {name, EDJE_EXTERNAL_PARAM_TYPE_INT, flags, {.i = {def, min, max, step}}}
00948 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, flags) \
00949   {name, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, flags, {.d = {def, min, max, step}}}
00950 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, flags) \
00951   {name, EDJE_EXTERNAL_PARAM_TYPE_STRING, flags, {.s = {def, accept, deny}}}
00952 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, flags) \
00953   {name, EDJE_EXTERNAL_PARAM_TYPE_BOOL, flags, {.b = {def, false_str, true_str}}}
00954 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, flags) \
00955   {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {def, choices, NULL, NULL}}}
00956 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, flags) \
00957   {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {NULL, NULL, def_get, query}}}
00958 
00959 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, min, max, step) \
00960   EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00961 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, min, max, step) \
00962   EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00963 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, accept, deny) \
00964   EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00965 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, false_str, true_str) \
00966   EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00967 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL(name, def, choices) \
00968   EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00969 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL(name, def_get, query) \
00970   EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00971 
00972 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, def) \
00973    EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET)
00974 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, def) \
00975    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET)
00976 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, def) \
00977    EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, NULL, NULL)
00978 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, def) \
00979    EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, "false", "true")
00980 
00981 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, def, flags)    \
00982   EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, flags)
00983 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, def, flags) \
00984   EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, flags)
00985 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, def, flags) \
00986   EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, NULL, NULL, flags)
00987 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, def, flags)   \
00988   EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, "false", "true", flags)
00989 
00990 #define EDJE_EXTERNAL_PARAM_INFO_INT(name) \
00991    EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, 0)
00992 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE(name) \
00993    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, 0.0)
00994 #define EDJE_EXTERNAL_PARAM_INFO_STRING(name) \
00995    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, NULL)
00996 #define EDJE_EXTERNAL_PARAM_INFO_BOOL(name) \
00997    EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, 0)
00998 
00999 #define EDJE_EXTERNAL_PARAM_INFO_INT_FLAGS(name, flags) \
01000    EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, 0, flags)
01001 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FLAGS(name, flags) \
01002    EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, 0.0, flags)
01003 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FLAGS(name, flags) \
01004    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, NULL, flags)
01005 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FLAGS(name, flags) \
01006    EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, 0, flags)
01007 
01008 #define EDJE_EXTERNAL_PARAM_INFO_SENTINEL {NULL, 0, 0, {.s = {NULL, NULL, NULL}}}
01009 
01028 struct _Edje_External_Type
01029 {
01030 #define EDJE_EXTERNAL_TYPE_ABI_VERSION (3)
01031   unsigned int  abi_version; 
01035   const char    *module; 
01038   const char    *module_name; 
01040   Evas_Object *(*add) (void *data, Evas *evas, Evas_Object *parent, const Eina_List *params, const char *part_name); 
01042   void         (*state_set) (void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos); 
01043   void         (*signal_emit) (void *data, Evas_Object *obj, const char *emission, const char *source); 
01044   Eina_Bool    (*param_set) (void *data, Evas_Object *obj, const Edje_External_Param *param); 
01045   Eina_Bool    (*param_get) (void *data, const Evas_Object *obj, Edje_External_Param *param); 
01046   Evas_Object *(*content_get) (void *data, const Evas_Object *obj, const char *content); 
01047   void        *(*params_parse) (void *data, Evas_Object *obj, const Eina_List *params); 
01048   void         (*params_free) (void *params); 
01050   /* The following callbacks aren't used by Edje itself, but by UI design
01051      tools instead */
01052   const char  *(*label_get) (void *data); 
01053   const char  *(*description_get) (void *data); 
01054   Evas_Object *(*icon_add) (void *data, Evas *e); 
01055   Evas_Object *(*preview_add) (void *data, Evas *e); 
01056   const char  *(*translate) (void *data, const char *orig); 
01058   Edje_External_Param_Info *parameters_info; 
01059   void                     *data; 
01060 };
01061 typedef struct _Edje_External_Type Edje_External_Type;
01062 
01068 struct _Edje_External_Type_Info
01069 {
01070    const char               *name; 
01071    const Edje_External_Type *info; 
01072 };
01073 typedef struct _Edje_External_Type_Info Edje_External_Type_Info;
01074 
01075 typedef void         (*Edje_Signal_Cb)          (void *data, Evas_Object *obj, const char *emission, const char *source); 
01076 typedef void         (*Edje_Text_Change_Cb)     (void *data, Evas_Object *obj, const char *part);
01077 typedef void         (*Edje_Message_Handler_Cb) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg); 
01078 typedef void         (*Edje_Text_Filter_Cb)     (void *data, Evas_Object *obj, const char *part, Edje_Text_Filter_Type type, char **text);
01079 typedef void         (*Edje_Markup_Filter_Cb)   (void *data, Evas_Object *obj, const char *part, char **text);
01080 typedef Evas_Object *(*Edje_Item_Provider_Cb)   (void *data, Evas_Object *obj, const char *part, const char *item);
01081 
01101 EAPI int          edje_init                       (void);
01102 
01122 EAPI int          edje_shutdown                   (void);
01123 
01137 EAPI void         edje_frametime_set              (double t);
01138 
01150 EAPI double       edje_frametime_get              (void);
01151 
01162 EAPI void         edje_freeze                     (void);
01163 
01174 EAPI void         edje_thaw                       (void);
01175 
01184 EAPI void         edje_fontset_append_set         (const char *fonts);
01185 
01197 EAPI const char  *edje_fontset_append_get         (void);
01198 
01222 EAPI void         edje_scale_set                  (double scale);
01223 
01234 EAPI double       edje_scale_get                  (void);
01235 
01248 EAPI void edje_password_show_last_set(Eina_Bool password_show_last);
01249 
01263 EAPI void edje_password_show_last_timeout_set(double password_show_last_timeout);
01264 
01286 EAPI Eina_Bool    edje_object_scale_set           (Evas_Object *obj, double scale);
01287 
01299 EAPI double       edje_object_scale_get           (const Evas_Object *obj);
01300 
01308 EAPI void         edje_object_mirrored_set        (Evas_Object *obj, Eina_Bool rtl);
01309 
01319 EAPI Eina_Bool    edje_object_mirrored_get        (const Evas_Object *obj);
01320 
01330 EAPI Eina_List   *edje_file_collection_list       (const char *file);
01331 
01338 EAPI void         edje_file_collection_list_free  (Eina_List *lst);
01339 
01347 EAPI Eina_Bool    edje_file_group_exists          (const char *file, const char *glob);
01348 
01366 EAPI char        *edje_file_data_get              (const char *file, const char *key);
01367 
01381 EAPI void         edje_file_cache_set             (int count);
01382 
01395 EAPI int          edje_file_cache_get             (void);
01396 
01407 EAPI void         edje_file_cache_flush           (void);
01408 
01423 EAPI void         edje_collection_cache_set       (int count);
01424 
01437 EAPI int          edje_collection_cache_get       (void);
01438 
01449 EAPI void         edje_collection_cache_flush     (void);
01450 
01487 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);
01488 
01523 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);
01524 
01538 EAPI void         edje_color_class_del            (const char *color_class);
01539 
01550 EAPI Eina_List   *edje_color_class_list           (void);
01551 
01567 EAPI Eina_Bool    edje_text_class_set             (const char *text_class, const char *font, Evas_Font_Size size);
01568 
01578 EAPI void         edje_text_class_del             (const char *text_class);
01579 
01590 EAPI Eina_List   *edje_text_class_list            (void);
01591 
01601 EAPI void         edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
01602 
01612 EAPI void         edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh);
01613 
01627 EAPI void         edje_extern_object_aspect_set   (Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah);
01628 
01651 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);
01652 
01704 EAPI Evas_Object *edje_object_add                 (Evas *evas);
01705 
01742 EAPI const char  *edje_object_data_get            (const Evas_Object *obj, const char *key);
01743 
01774 EAPI Eina_Bool        edje_object_file_set        (Evas_Object *obj, const char *file, const char *group);
01775 
01796 EAPI void             edje_object_file_get        (const Evas_Object *obj, const char **file, const char **group);
01797 
01822 EAPI Edje_Load_Error  edje_object_load_error_get  (const Evas_Object *obj);
01823 
01838 EAPI const char      *edje_load_error_str         (Edje_Load_Error error);
01839 
01857 EAPI Eina_Bool        edje_object_preload         (Evas_Object *obj, Eina_Bool cancel);
01858 
01919 EAPI void         edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01920 
01940 EAPI void        *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);
01941 
01965 EAPI void        *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01966 
01995 EAPI void         edje_object_signal_emit         (Evas_Object *obj, const char *emission, const char *source);
01996 
02008 EAPI void *       edje_object_signal_callback_extra_data_get(void);
02009 
02024 EAPI void         edje_object_play_set            (Evas_Object *obj, Eina_Bool play);
02025 
02040 EAPI Eina_Bool    edje_object_play_get            (const Evas_Object *obj);
02041 
02056 EAPI void         edje_object_animation_set       (Evas_Object *obj, Eina_Bool on);
02057 
02071 EAPI Eina_Bool    edje_object_animation_get       (const Evas_Object *obj);
02072 
02084 EAPI int          edje_object_freeze                  (Evas_Object *obj);
02085 
02099 EAPI int          edje_object_thaw                    (Evas_Object *obj);
02100 
02134 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);
02135 
02168 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);
02169 
02185  EAPI void         edje_object_color_class_del         (Evas_Object *obj, const char *color_class);
02186 
02200 EAPI Eina_Bool    edje_object_text_class_set          (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size);
02201 
02237 EAPI void         edje_object_size_min_get            (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02238 
02275 EAPI void         edje_object_size_max_get            (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
02276 
02285 EAPI void         edje_object_calc_force              (Evas_Object *obj);
02286 
02300 EAPI void         edje_object_size_min_calc           (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02301 
02330 EAPI Eina_Bool    edje_object_parts_extends_calc      (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
02331 
02359 EAPI void         edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh);
02360 
02377 EAPI Eina_Bool    edje_object_part_exists             (const Evas_Object *obj, const char *part);
02378 
02398 EAPI const Evas_Object *edje_object_part_object_get   (const Evas_Object *obj, const char *part);
02399 
02423 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);
02424 
02425 
02436 EAPI void         edje_object_item_provider_set       (Evas_Object *obj, Edje_Item_Provider_Cb func, void *data);
02437 
02438 
02448 EAPI void         edje_object_text_change_cb_set      (Evas_Object *obj, Edje_Text_Change_Cb func, void *data);
02449 
02457 EAPI Eina_Bool    edje_object_part_text_set           (Evas_Object *obj, const char *part, const char *text);
02458 
02471 EAPI const char  *edje_object_part_text_get           (const Evas_Object *obj, const char *part);
02472 
02484 EAPI void edje_object_part_text_style_user_set(Evas_Object *obj, const char *part, const char *style);
02485 
02498 EAPI const char *edje_object_part_text_style_user_get(Evas_Object *obj, const char *part);
02499 
02512 EAPI Eina_Bool    edje_object_part_text_unescaped_set (Evas_Object *obj, const char *part, const char *text_to_escape);
02513 
02529 EAPI char        *edje_object_part_text_unescaped_get (const Evas_Object *obj, const char *part);
02530 
02543 EAPI const char      *edje_object_part_text_selection_get           (const Evas_Object *obj, const char *part);
02544 
02553 EAPI void             edje_object_part_text_select_none             (const Evas_Object *obj, const char *part);
02554 
02563 EAPI void             edje_object_part_text_select_all              (const Evas_Object *obj, const char *part);
02564 
02576 EAPI void             edje_object_part_text_insert                  (Evas_Object *obj, const char *part, const char *text);
02577 
02590 EAPI void             edje_object_part_text_append(Evas_Object *obj, const char *part, const char *text);
02591 
02603 EAPI const Eina_List *edje_object_part_text_anchor_list_get         (const Evas_Object *obj, const char *part);
02604 
02619 EAPI const Eina_List *edje_object_part_text_anchor_geometry_get     (const Evas_Object *obj, const char *part, const char *anchor);
02620 
02632 EAPI const Eina_List *edje_object_part_text_item_list_get           (const Evas_Object *obj, const char *part);
02633 
02651 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);
02652 
02665 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);
02666 
02674 EAPI void             edje_object_part_text_user_insert        (const Evas_Object *obj, const char *part, const char *text);
02675 
02688 EAPI void             edje_object_part_text_select_allow_set        (const Evas_Object *obj, const char *part, Eina_Bool allow);
02689 
02696 EAPI void             edje_object_part_text_select_abort            (const Evas_Object *obj, const char *part);
02697 
02704 EAPI void             edje_object_part_text_select_begin            (const Evas_Object *obj, const char *part);
02705 
02712 EAPI void             edje_object_part_text_select_extend           (const Evas_Object *obj, const char *part);
02713 
02714 
02723 EAPI Eina_Bool        edje_object_part_text_cursor_next                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02724 
02733 EAPI Eina_Bool        edje_object_part_text_cursor_prev                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02734 
02742 EAPI Eina_Bool        edje_object_part_text_cursor_up                   (Evas_Object *obj, const char *part, Edje_Cursor cur);
02743 
02751 EAPI Eina_Bool        edje_object_part_text_cursor_down                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
02752 
02761 EAPI void             edje_object_part_text_cursor_begin_set            (Evas_Object *obj, const char *part, Edje_Cursor cur);
02762 
02771 EAPI void             edje_object_part_text_cursor_end_set              (Evas_Object *obj, const char *part, Edje_Cursor cur);
02772 
02781 EAPI void             edje_object_part_text_cursor_copy                 (Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst);
02782 
02791 EAPI void             edje_object_part_text_cursor_line_begin_set       (Evas_Object *obj, const char *part, Edje_Cursor cur);
02792 
02801 EAPI void             edje_object_part_text_cursor_line_end_set         (Evas_Object *obj, const char *part, Edje_Cursor cur);
02802 
02815 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);
02816 
02826 EAPI Eina_Bool        edje_object_part_text_cursor_is_format_get        (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02827 
02837 EAPI Eina_Bool        edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur);
02838 
02850 EAPI char            *edje_object_part_text_cursor_content_get          (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02851 
02861 EAPI void             edje_object_part_text_cursor_pos_set              (Evas_Object *obj, const char *part, Edje_Cursor cur, int pos);
02862 
02872 EAPI int              edje_object_part_text_cursor_pos_get              (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02873 
02883 EAPI void             edje_object_part_text_imf_context_reset           (const Evas_Object *obj, const char *part);
02884 
02897 EAPI void              *edje_object_part_text_imf_context_get           (const Evas_Object *obj, const char *part);
02898 
02912 EAPI void             edje_object_part_text_input_panel_layout_set      (Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout);
02913 
02925 EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get (const Evas_Object *obj, const char *part);
02926 
02935 EAPI void         edje_object_part_text_autocapital_type_set            (Evas_Object *obj, const char *part, Edje_Text_Autocapital_Type autocapital_type);
02936 
02945 EAPI Edje_Text_Autocapital_Type edje_object_part_text_autocapital_type_get (const Evas_Object *obj, const char *part);
02946 
02955 EAPI void             edje_object_part_text_prediction_allow_set        (Evas_Object *obj, const char *part, Eina_Bool prediction);
02956 
02965 EAPI Eina_Bool        edje_object_part_text_prediction_allow_get        (const Evas_Object *obj, const char *part);
02966 
02975 EAPI void             edje_object_part_text_input_panel_enabled_set     (Evas_Object *obj, const char *part, Eina_Bool enabled);
02976 
02986 EAPI Eina_Bool        edje_object_part_text_input_panel_enabled_get (const Evas_Object *obj, const char *part);
02987 
02998 EAPI void             edje_object_part_text_input_panel_show(const Evas_Object *obj, const char *part);
02999 
03011 EAPI void             edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part);
03012 
03023 EAPI void             edje_object_part_text_input_panel_language_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Lang lang);
03024 
03035 EAPI Edje_Input_Panel_Lang edje_object_part_text_input_panel_language_get(const Evas_Object *obj, const char *part);
03036 
03050 EAPI void             edje_object_part_text_input_panel_imdata_set(Evas_Object *obj, const char *part, const void *data, int len);
03051 
03061 EAPI void             edje_object_part_text_input_panel_imdata_get(const Evas_Object *obj, const char *part, void *data, int *len);
03062 
03073 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);
03074 
03085 EAPI Edje_Input_Panel_Return_Key_Type edje_object_part_text_input_panel_return_key_type_get(const Evas_Object *obj, const char *part);
03086 
03095 EAPI void             edje_object_part_text_input_panel_return_key_disabled_set(Evas_Object *obj, const char *part, Eina_Bool disabled);
03096 
03105 EAPI Eina_Bool        edje_object_part_text_input_panel_return_key_disabled_get(const Evas_Object *obj, const char *part);
03106 
03143 EAPI void             edje_object_text_insert_filter_callback_add       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
03144 
03160 EAPI void            *edje_object_text_insert_filter_callback_del       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func);
03161 
03179 EAPI void            *edje_object_text_insert_filter_callback_del_full  (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
03180 
03212 EAPI void edje_object_text_markup_filter_callback_add(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data);
03213 
03230 EAPI void *edje_object_text_markup_filter_callback_del(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func);
03231 
03250 EAPI void *edje_object_text_markup_filter_callback_del_full(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data);
03251 
03266 EAPI Eina_Bool        edje_object_part_swallow        (Evas_Object *obj, const char *part, Evas_Object *obj_swallow);
03267 
03280 EAPI void             edje_object_part_unswallow      (Evas_Object *obj, Evas_Object *obj_swallow);
03281 
03289 EAPI Evas_Object     *edje_object_part_swallow_get    (const Evas_Object *obj, const char *part);
03290 
03302 EAPI const char      *edje_object_part_state_get      (const Evas_Object *obj, const char *part, double *val_ret);
03303 
03319 EAPI Edje_Drag_Dir    edje_object_part_drag_dir_get   (const Evas_Object *obj, const char *part);
03320 
03343 EAPI Eina_Bool        edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
03344 
03360 EAPI Eina_Bool        edje_object_part_drag_value_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
03361 
03377 EAPI Eina_Bool        edje_object_part_drag_size_set  (Evas_Object *obj, const char *part, double dw, double dh);
03378 
03391 EAPI Eina_Bool        edje_object_part_drag_size_get  (const Evas_Object *obj, const char *part, double *dw, double *dh);
03392 
03409 EAPI Eina_Bool        edje_object_part_drag_step_set  (Evas_Object *obj, const char *part, double dx, double dy);
03410 
03424 EAPI Eina_Bool        edje_object_part_drag_step_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
03425 
03442 EAPI Eina_Bool        edje_object_part_drag_page_set  (Evas_Object *obj, const char *part, double dx, double dy);
03443 
03456 EAPI Eina_Bool        edje_object_part_drag_page_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
03457 
03473 EAPI Eina_Bool        edje_object_part_drag_step      (Evas_Object *obj, const char *part, double dx, double dy);
03474 
03492 EAPI Eina_Bool        edje_object_part_drag_page      (Evas_Object *obj, const char *part, double dx, double dy);
03493 
03494 
03514 EAPI Evas_Object              *edje_object_part_external_object_get     (const Evas_Object *obj, const char *part);
03515 
03546 EAPI Eina_Bool                 edje_object_part_external_param_set      (Evas_Object *obj, const char *part, const Edje_External_Param *param);
03547 
03576 EAPI Eina_Bool                 edje_object_part_external_param_get      (const Evas_Object *obj, const char *part, Edje_External_Param *param);
03577 
03588 EAPI Evas_Object              *edje_object_part_external_content_get    (const Evas_Object *obj, const char *part, const char *content);
03589 
03600 EAPI Edje_External_Param_Type  edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param);
03601 
03602 
03619 EAPI Eina_Bool    edje_object_part_box_append             (Evas_Object *obj, const char *part, Evas_Object *child);
03620 
03637 EAPI Eina_Bool    edje_object_part_box_prepend            (Evas_Object *obj, const char *part, Evas_Object *child);
03638 
03657 EAPI Eina_Bool    edje_object_part_box_insert_before      (Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
03658 
03677 EAPI Eina_Bool    edje_object_part_box_insert_at          (Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos);
03678 
03693 EAPI Evas_Object *edje_object_part_box_remove             (Evas_Object *obj, const char *part, Evas_Object *child);
03694 
03710 EAPI Evas_Object *edje_object_part_box_remove_at          (Evas_Object *obj, const char *part, unsigned int pos);
03711 
03728 EAPI Eina_Bool    edje_object_part_box_remove_all         (Evas_Object *obj, const char *part, Eina_Bool clear);
03729 
03739 EAPI Evas_Object *edje_object_part_table_child_get        (Evas_Object *obj, const char *part, unsigned int col, unsigned int row);
03740 
03756 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);
03757 
03769 EAPI Eina_Bool    edje_object_part_table_unpack           (Evas_Object *obj, const char *part, Evas_Object *child_obj);
03770 
03783 EAPI Eina_Bool    edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows);
03784 
03797 EAPI Eina_Bool    edje_object_part_table_clear            (Evas_Object *obj, const char *part, Eina_Bool clear);
03798 
03821 EAPI void         edje_object_message_send                (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
03822 
03847 EAPI void         edje_object_message_handler_set         (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data);
03848 
03859 EAPI void         edje_object_message_signal_process      (Evas_Object *obj);
03860 
03861 
03869 EAPI void         edje_message_signal_process             (void);
03870 
03888 EAPI Eina_Bool    edje_external_type_register             (const char *type_name, const Edje_External_Type *type_info);
03889 
03901 EAPI Eina_Bool    edje_external_type_unregister           (const char *type_name);
03902 
03926 EAPI void         edje_external_type_array_register       (const Edje_External_Type_Info *array);
03927 
03936 EAPI void         edje_external_type_array_unregister     (const Edje_External_Type_Info *array);
03937 
03957 EAPI unsigned int edje_external_type_abi_version_get      (void) EINA_CONST;
03958 
04001 EAPI Eina_Iterator                  *edje_external_iterator_get     (void);
04002 
04011    EAPI Edje_External_Param            *edje_external_param_find       (const Eina_List *params, const char *key);
04028    EAPI Eina_Bool                       edje_external_param_int_get    (const Eina_List *params, const char *key, int *ret);
04045    EAPI Eina_Bool                       edje_external_param_double_get (const Eina_List *params, const char *key, double *ret);
04064    EAPI Eina_Bool                       edje_external_param_string_get (const Eina_List *params, const char *key, const char **ret);
04081    EAPI Eina_Bool                       edje_external_param_bool_get   (const Eina_List *params, const char *key, Eina_Bool *ret);
04100    EAPI Eina_Bool                       edje_external_param_choice_get (const Eina_List *params, const char *key, const char **ret);
04101 
04114 EAPI const Edje_External_Param_Info *edje_external_param_info_get   (const char *type_name);
04115 
04120    EAPI const Edje_External_Type       *edje_external_type_get         (const char *type_name);
04121 
04122    EAPI Eina_Bool               edje_module_load                (const char *module);
04123    EAPI const Eina_List        *edje_available_modules_get      (void);
04124 
04125    /* perspective info for maps inside edje objects */
04126    typedef struct _Edje_Perspective Edje_Perspective;
04127 
04140    EAPI Edje_Perspective       *edje_perspective_new            (Evas *e);
04152    EAPI void                    edje_perspective_free           (Edje_Perspective *ps);
04175    EAPI void                    edje_perspective_set            (Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc);
04199    EAPI void                    edje_perspective_global_set     (Edje_Perspective *ps, Eina_Bool global);
04209    EAPI Eina_Bool               edje_perspective_global_get     (const Edje_Perspective *ps);
04223    EAPI const Edje_Perspective *edje_evas_global_perspective_get(const Evas *e);
04244    EAPI void                    edje_object_perspective_set     (Evas_Object *obj, Edje_Perspective *ps);
04254    EAPI const Edje_Perspective *edje_object_perspective_get     (const Evas_Object *obj);
04255 
04256 #ifdef __cplusplus
04257 }
04258 #endif
04259 
04260 #endif