00001
00432 #ifndef _EDJE_H
00433 #define _EDJE_H
00434
00435 #ifndef _MSC_VER
00436 # include <stdint.h>
00437 #endif
00438 #include <math.h>
00439 #include <float.h>
00440 #include <limits.h>
00441
00442 #include <Evas.h>
00443
00444 #ifdef EAPI
00445 # undef EAPI
00446 #endif
00447
00448 #ifdef _WIN32
00449 # ifdef EFL_EDJE_BUILD
00450 # ifdef DLL_EXPORT
00451 # define EAPI __declspec(dllexport)
00452 # else
00453 # define EAPI
00454 # endif
00455 # else
00456 # define EAPI __declspec(dllimport)
00457 # endif
00458 #else
00459 # ifdef __GNUC__
00460 # if __GNUC__ >= 4
00461 # define EAPI __attribute__ ((visibility("default")))
00462 # else
00463 # define EAPI
00464 # endif
00465 # else
00466 # define EAPI
00467 # endif
00468 #endif
00469
00470 #ifdef __cplusplus
00471 extern "C" {
00472 #endif
00473
00474 #define EDJE_VERSION_MAJOR 1
00475 #define EDJE_VERSION_MINOR 0
00476
00477 typedef struct _Edje_Version
00478 {
00479 int major;
00480 int minor;
00481 int micro;
00482 int revision;
00483 } Edje_Version;
00484
00485 EAPI extern Edje_Version *edje_version;
00486
00501 typedef enum _Edje_Message_Type
00502 {
00503 EDJE_MESSAGE_NONE = 0,
00504
00505 EDJE_MESSAGE_SIGNAL = 1,
00506
00507 EDJE_MESSAGE_STRING = 2,
00508 EDJE_MESSAGE_INT = 3,
00509 EDJE_MESSAGE_FLOAT = 4,
00511 EDJE_MESSAGE_STRING_SET = 5,
00512 EDJE_MESSAGE_INT_SET = 6,
00513 EDJE_MESSAGE_FLOAT_SET = 7,
00515 EDJE_MESSAGE_STRING_INT = 8,
00516 EDJE_MESSAGE_STRING_FLOAT = 9,
00518 EDJE_MESSAGE_STRING_INT_SET = 10,
00519 EDJE_MESSAGE_STRING_FLOAT_SET = 11
00520 } Edje_Message_Type;
00521
00522 typedef enum _Edje_Aspect_Control
00523 {
00524 EDJE_ASPECT_CONTROL_NONE = 0,
00525 EDJE_ASPECT_CONTROL_NEITHER = 1,
00526 EDJE_ASPECT_CONTROL_HORIZONTAL = 2,
00527 EDJE_ASPECT_CONTROL_VERTICAL = 3,
00528 EDJE_ASPECT_CONTROL_BOTH = 4
00529 } Edje_Aspect_Control;
00530
00531 typedef enum _Edje_Object_Table_Homogeneous_Mode
00532 {
00533 EDJE_OBJECT_TABLE_HOMOGENEOUS_NONE = 0,
00534 EDJE_OBJECT_TABLE_HOMOGENEOUS_TABLE = 1,
00535 EDJE_OBJECT_TABLE_HOMOGENEOUS_ITEM = 2
00536 } Edje_Object_Table_Homogeneous_Mode;
00537
00538 typedef enum _Edje_Part_Type
00539 {
00540 EDJE_PART_TYPE_NONE = 0,
00541 EDJE_PART_TYPE_RECTANGLE = 1,
00542 EDJE_PART_TYPE_TEXT = 2,
00543 EDJE_PART_TYPE_IMAGE = 3,
00544 EDJE_PART_TYPE_SWALLOW = 4,
00545 EDJE_PART_TYPE_TEXTBLOCK = 5,
00546 EDJE_PART_TYPE_GRADIENT = 6,
00547 EDJE_PART_TYPE_GROUP = 7,
00548 EDJE_PART_TYPE_BOX = 8,
00549 EDJE_PART_TYPE_TABLE = 9,
00550 EDJE_PART_TYPE_EXTERNAL = 10,
00551 EDJE_PART_TYPE_PROXY = 11,
00552 EDJE_PART_TYPE_LAST = 12
00553 } Edje_Part_Type;
00554
00555 typedef enum _Edje_Text_Effect
00556 {
00557 #define EDJE_TEXT_EFFECT_MASK_BASIC 0xf
00558 #define EDJE_TEXT_EFFECT_BASIC_SET(x, s) \
00559 do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_BASIC) | (s); } while (0)
00560 EDJE_TEXT_EFFECT_NONE = 0,
00561 EDJE_TEXT_EFFECT_PLAIN = 1,
00562 EDJE_TEXT_EFFECT_OUTLINE = 2,
00563 EDJE_TEXT_EFFECT_SOFT_OUTLINE = 3,
00564 EDJE_TEXT_EFFECT_SHADOW = 4,
00565 EDJE_TEXT_EFFECT_SOFT_SHADOW = 5,
00566 EDJE_TEXT_EFFECT_OUTLINE_SHADOW = 6,
00567 EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW = 7,
00568 EDJE_TEXT_EFFECT_FAR_SHADOW = 8,
00569 EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW = 9,
00570 EDJE_TEXT_EFFECT_GLOW = 10,
00571
00572 EDJE_TEXT_EFFECT_LAST = 11,
00573
00574 #define EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION (0x7 << 4)
00575 #define EDJE_TEXT_EFFECT_SHADOW_DIRECTION_SET(x, s) \
00576 do { x = ((x) & ~EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION) | (s); } while (0)
00577 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT = (0x0 << 4),
00578 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM = (0x1 << 4),
00579 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT = (0x2 << 4),
00580 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT = (0x3 << 4),
00581 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT = (0x4 << 4),
00582 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP = (0x5 << 4),
00583 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT = (0x6 << 4),
00584 EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT = (0x7 << 4)
00585 } Edje_Text_Effect;
00586
00587 typedef enum _Edje_Action_Type
00588 {
00589 EDJE_ACTION_TYPE_NONE = 0,
00590 EDJE_ACTION_TYPE_STATE_SET = 1,
00591 EDJE_ACTION_TYPE_ACTION_STOP = 2,
00592 EDJE_ACTION_TYPE_SIGNAL_EMIT = 3,
00593 EDJE_ACTION_TYPE_DRAG_VAL_SET = 4,
00594 EDJE_ACTION_TYPE_DRAG_VAL_STEP = 5,
00595 EDJE_ACTION_TYPE_DRAG_VAL_PAGE = 6,
00596 EDJE_ACTION_TYPE_SCRIPT = 7,
00597 EDJE_ACTION_TYPE_FOCUS_SET = 8,
00598 EDJE_ACTION_TYPE_RESERVED00 = 9,
00599 EDJE_ACTION_TYPE_FOCUS_OBJECT = 10,
00600 EDJE_ACTION_TYPE_PARAM_COPY = 11,
00601 EDJE_ACTION_TYPE_PARAM_SET = 12,
00602 EDJE_ACTION_TYPE_SOUND_SAMPLE = 13,
00603 EDJE_ACTION_TYPE_SOUND_TONE = 14,
00604 EDJE_ACTION_TYPE_LAST = 15
00605 } Edje_Action_Type;
00606
00607 typedef enum _Edje_Tween_Mode
00608 {
00609 EDJE_TWEEN_MODE_NONE = 0,
00610 EDJE_TWEEN_MODE_LINEAR = 1,
00611 EDJE_TWEEN_MODE_SINUSOIDAL = 2,
00612 EDJE_TWEEN_MODE_ACCELERATE = 3,
00613 EDJE_TWEEN_MODE_DECELERATE = 4,
00614 EDJE_TWEEN_MODE_ACCELERATE_FACTOR = 5,
00615 EDJE_TWEEN_MODE_DECELERATE_FACTOR = 6,
00616 EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR = 7,
00617 EDJE_TWEEN_MODE_DIVISOR_INTERP = 8,
00618 EDJE_TWEEN_MODE_BOUNCE = 9,
00619 EDJE_TWEEN_MODE_SPRING = 10,
00620 EDJE_TWEEN_MODE_LAST = 11,
00621 EDJE_TWEEN_MODE_MASK = 0xff,
00622 EDJE_TWEEN_MODE_OPT_FROM_CURRENT = (1 << 31)
00623 } Edje_Tween_Mode;
00624
00625 typedef enum _Edje_Cursor
00626 {
00627 EDJE_CURSOR_MAIN,
00628 EDJE_CURSOR_SELECTION_BEGIN,
00629 EDJE_CURSOR_SELECTION_END,
00630 EDJE_CURSOR_PREEDIT_START,
00631 EDJE_CURSOR_PREEDIT_END,
00632 EDJE_CURSOR_USER,
00633 EDJE_CURSOR_USER_EXTRA,
00634
00635 } Edje_Cursor;
00636
00637 struct _Edje_Entry_Change_Info
00638 {
00639 union {
00640 struct {
00641 const char *content;
00642 size_t pos;
00643 size_t plain_length;
00644
00645 } insert;
00646 struct {
00647 const char *content;
00648 size_t start, end;
00649 } del;
00650 } change;
00651 Eina_Bool insert : 1;
00652 Eina_Bool merge : 1;
00653 };
00654
00658 typedef struct _Edje_Entry_Change_Info Edje_Entry_Change_Info;
00659
00660 typedef struct _Edje_Message_String Edje_Message_String;
00661 typedef struct _Edje_Message_Int Edje_Message_Int;
00662 typedef struct _Edje_Message_Float Edje_Message_Float;
00663 typedef struct _Edje_Message_String_Set Edje_Message_String_Set;
00664 typedef struct _Edje_Message_Int_Set Edje_Message_Int_Set;
00665 typedef struct _Edje_Message_Float_Set Edje_Message_Float_Set;
00666 typedef struct _Edje_Message_String_Int Edje_Message_String_Int;
00667 typedef struct _Edje_Message_String_Float Edje_Message_String_Float;
00668 typedef struct _Edje_Message_String_Int_Set Edje_Message_String_Int_Set;
00669 typedef struct _Edje_Message_String_Float_Set Edje_Message_String_Float_Set;
00670
00671 struct _Edje_Message_String
00672 {
00673 char *str;
00674 };
00676 struct _Edje_Message_Int
00677 {
00678 int val;
00679 };
00681 struct _Edje_Message_Float
00682 {
00683 double val;
00684 };
00686 struct _Edje_Message_String_Set
00687 {
00688 int count;
00689 char *str[1];
00690 };
00692 struct _Edje_Message_Int_Set
00693 {
00694 int count;
00695 int val[1];
00696 };
00698 struct _Edje_Message_Float_Set
00699 {
00700 int count;
00701 double val[1];
00702 };
00704 struct _Edje_Message_String_Int
00705 {
00706 char *str;
00707 int val;
00708 };
00710 struct _Edje_Message_String_Float
00711 {
00712 char *str;
00713 double val;
00714 };
00716 struct _Edje_Message_String_Int_Set
00717 {
00718 char *str;
00719 int count;
00720 int val[1];
00721 };
00723 struct _Edje_Message_String_Float_Set
00724 {
00725 char *str;
00726 int count;
00727 double val[1];
00728 };
00730 typedef enum _Edje_Drag_Dir
00731 {
00732 EDJE_DRAG_DIR_NONE = 0,
00733 EDJE_DRAG_DIR_X = 1,
00734 EDJE_DRAG_DIR_Y = 2,
00735 EDJE_DRAG_DIR_XY = 3
00736 } Edje_Drag_Dir;
00737
00738 typedef enum _Edje_Load_Error
00739 {
00740 EDJE_LOAD_ERROR_NONE = 0,
00741 EDJE_LOAD_ERROR_GENERIC = 1,
00742 EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2,
00743 EDJE_LOAD_ERROR_PERMISSION_DENIED = 3,
00744 EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4,
00745 EDJE_LOAD_ERROR_CORRUPT_FILE = 5,
00746 EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6,
00747 EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7,
00748 EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8,
00749 EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = 9
00750 } Edje_Load_Error;
00752 typedef enum _Edje_Text_Filter_Type
00753 {
00754 EDJE_TEXT_FILTER_TEXT = 0,
00755 EDJE_TEXT_FILTER_FORMAT = 1,
00756 EDJE_TEXT_FILTER_MARKUP = 2
00757 } Edje_Text_Filter_Type;
00758
00759 typedef enum _Edje_Text_Autocapital_Type
00760 {
00761 EDJE_TEXT_AUTOCAPITAL_TYPE_NONE,
00762 EDJE_TEXT_AUTOCAPITAL_TYPE_WORD,
00763 EDJE_TEXT_AUTOCAPITAL_TYPE_SENTENCE,
00764 EDJE_TEXT_AUTOCAPITAL_TYPE_ALLCHARACTER
00765 } Edje_Text_Autocapital_Type;
00766
00770 typedef enum _Edje_External_Param_Type
00771 {
00772 EDJE_EXTERNAL_PARAM_TYPE_INT,
00773 EDJE_EXTERNAL_PARAM_TYPE_DOUBLE,
00774 EDJE_EXTERNAL_PARAM_TYPE_STRING,
00775 EDJE_EXTERNAL_PARAM_TYPE_BOOL,
00776 EDJE_EXTERNAL_PARAM_TYPE_CHOICE,
00778 EDJE_EXTERNAL_PARAM_TYPE_MAX
00779 } Edje_External_Param_Type;
00780
00785 typedef enum _Edje_External_Param_Flags
00786 {
00787 EDJE_EXTERNAL_PARAM_FLAGS_NONE = 0,
00788 EDJE_EXTERNAL_PARAM_FLAGS_GET = (1 << 0),
00789 EDJE_EXTERNAL_PARAM_FLAGS_SET = (1 << 1),
00790 EDJE_EXTERNAL_PARAM_FLAGS_STATE = (1 << 2),
00791 EDJE_EXTERNAL_PARAM_FLAGS_CONSTRUCTOR = (1 << 3),
00792 EDJE_EXTERNAL_PARAM_FLAGS_REGULAR = (EDJE_EXTERNAL_PARAM_FLAGS_GET |
00793 EDJE_EXTERNAL_PARAM_FLAGS_SET |
00794 EDJE_EXTERNAL_PARAM_FLAGS_STATE)
00795 } Edje_External_Param_Flags;
00796
00797 typedef enum
00798 {
00799 EDJE_INPUT_PANEL_LAYOUT_NORMAL,
00800 EDJE_INPUT_PANEL_LAYOUT_NUMBER,
00801 EDJE_INPUT_PANEL_LAYOUT_EMAIL,
00802 EDJE_INPUT_PANEL_LAYOUT_URL,
00803 EDJE_INPUT_PANEL_LAYOUT_PHONENUMBER,
00804 EDJE_INPUT_PANEL_LAYOUT_IP,
00805 EDJE_INPUT_PANEL_LAYOUT_MONTH,
00806 EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY,
00807 EDJE_INPUT_PANEL_LAYOUT_INVALID
00808 } Edje_Input_Panel_Layout;
00809
00818 EAPI const char *edje_external_param_type_str(Edje_External_Param_Type type) EINA_PURE;
00819
00823 struct _Edje_External_Param
00824 {
00825 const char *name;
00826 Edje_External_Param_Type type;
00829
00830 int i;
00831 double d;
00832 const char *s;
00833 };
00837 typedef struct _Edje_External_Param Edje_External_Param;
00838
00842 #define EDJE_EXTERNAL_INT_UNSET INT_MAX
00843
00846 #define EDJE_EXTERNAL_DOUBLE_UNSET DBL_MAX
00847
00859 typedef struct _Edje_External_Param_Info Edje_External_Param_Info;
00871 struct _Edje_External_Param_Info
00872 {
00873 const char *name;
00874 Edje_External_Param_Type type;
00875 Edje_External_Param_Flags flags;
00877 union {
00878 struct {
00879 int def,
00880 min,
00881 max,
00882 step;
00883 } i;
00885 struct {
00886 double def,
00887 min,
00888 max,
00889 step;
00890 } d;
00892 struct {
00893 const char *def;
00894 const char *accept_fmt;
00895 const char *deny_fmt;
00896 } s;
00897 struct {
00898 int def;
00899 const char *false_str;
00900 const char *true_str;
00901 } b;
00902 struct {
00903 const char *def;
00904 const char **choices;
00905
00906
00907
00908 char *(*def_get)(void *data, const Edje_External_Param_Info *info);
00909 char **(*query)(void *data, const Edje_External_Param_Info *info);
00910 } c;
00911 } info;
00912 };
00913
00914 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, flags) \
00915 {name, EDJE_EXTERNAL_PARAM_TYPE_INT, flags, {.i = {def, min, max, step}}}
00916 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, flags) \
00917 {name, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, flags, {.d = {def, min, max, step}}}
00918 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, flags) \
00919 {name, EDJE_EXTERNAL_PARAM_TYPE_STRING, flags, {.s = {def, accept, deny}}}
00920 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, flags) \
00921 {name, EDJE_EXTERNAL_PARAM_TYPE_BOOL, flags, {.b = {def, false_str, true_str}}}
00922 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, flags) \
00923 {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {def, choices, NULL, NULL}}}
00924 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, flags) \
00925 {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {NULL, NULL, def_get, query}}}
00926
00927 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, min, max, step) \
00928 EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00929 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, min, max, step) \
00930 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00931 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, accept, deny) \
00932 EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00933 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, false_str, true_str) \
00934 EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00935 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL(name, def, choices) \
00936 EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00937 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL(name, def_get, query) \
00938 EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR)
00939
00940 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, def) \
00941 EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET)
00942 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, def) \
00943 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET)
00944 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, def) \
00945 EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, NULL, NULL)
00946 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, def) \
00947 EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, "false", "true")
00948
00949 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, def, flags) \
00950 EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, flags)
00951 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, def, flags) \
00952 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, flags)
00953 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, def, flags) \
00954 EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, NULL, NULL, flags)
00955 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, def, flags) \
00956 EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, "false", "true", flags)
00957
00958 #define EDJE_EXTERNAL_PARAM_INFO_INT(name) \
00959 EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, 0)
00960 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE(name) \
00961 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, 0.0)
00962 #define EDJE_EXTERNAL_PARAM_INFO_STRING(name) \
00963 EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, NULL)
00964 #define EDJE_EXTERNAL_PARAM_INFO_BOOL(name) \
00965 EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, 0)
00966
00967 #define EDJE_EXTERNAL_PARAM_INFO_INT_FLAGS(name, flags) \
00968 EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, 0, flags)
00969 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FLAGS(name, flags) \
00970 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, 0.0, flags)
00971 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FLAGS(name, flags) \
00972 EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, NULL, flags)
00973 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FLAGS(name, flags) \
00974 EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, 0, flags)
00975
00976 #define EDJE_EXTERNAL_PARAM_INFO_SENTINEL {NULL, 0, 0, {.s = {NULL, NULL, NULL}}}
00977
00996 struct _Edje_External_Type
00997 {
00998 #define EDJE_EXTERNAL_TYPE_ABI_VERSION (3)
00999 unsigned int abi_version;
01003 const char *module;
01006 const char *module_name;
01008 Evas_Object *(*add) (void *data, Evas *evas, Evas_Object *parent, const Eina_List *params, const char *part_name);
01010 void (*state_set) (void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos);
01011 void (*signal_emit) (void *data, Evas_Object *obj, const char *emission, const char *source);
01012 Eina_Bool (*param_set) (void *data, Evas_Object *obj, const Edje_External_Param *param);
01013 Eina_Bool (*param_get) (void *data, const Evas_Object *obj, Edje_External_Param *param);
01014 Evas_Object *(*content_get) (void *data, const Evas_Object *obj, const char *content);
01015 void *(*params_parse) (void *data, Evas_Object *obj, const Eina_List *params);
01016 void (*params_free) (void *params);
01018
01019
01020 const char *(*label_get) (void *data);
01021 const char *(*description_get) (void *data);
01022 Evas_Object *(*icon_add) (void *data, Evas *e);
01023 Evas_Object *(*preview_add) (void *data, Evas *e);
01024 const char *(*translate) (void *data, const char *orig);
01026 Edje_External_Param_Info *parameters_info;
01027 void *data;
01028 };
01029 typedef struct _Edje_External_Type Edje_External_Type;
01030
01036 struct _Edje_External_Type_Info
01037 {
01038 const char *name;
01039 const Edje_External_Type *info;
01040 };
01041 typedef struct _Edje_External_Type_Info Edje_External_Type_Info;
01042
01043 typedef void (*Edje_Signal_Cb) (void *data, Evas_Object *obj, const char *emission, const char *source);
01044 typedef void (*Edje_Text_Change_Cb) (void *data, Evas_Object *obj, const char *part);
01045 typedef void (*Edje_Message_Handler_Cb) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
01046 typedef void (*Edje_Text_Filter_Cb) (void *data, Evas_Object *obj, const char *part, Edje_Text_Filter_Type type, char **text);
01047 typedef Evas_Object *(*Edje_Item_Provider_Cb) (void *data, Evas_Object *obj, const char *part, const char *item);
01048
01068 EAPI int edje_init (void);
01069
01089 EAPI int edje_shutdown (void);
01090
01104 EAPI void edje_frametime_set (double t);
01105
01117 EAPI double edje_frametime_get (void);
01118
01129 EAPI void edje_freeze (void);
01130
01141 EAPI void edje_thaw (void);
01142
01151 EAPI void edje_fontset_append_set (const char *fonts);
01152
01164 EAPI const char *edje_fontset_append_get (void);
01165
01189 EAPI void edje_scale_set (double scale);
01190
01201 EAPI double edje_scale_get (void);
01202
01215 EAPI void edje_password_show_last_set(Eina_Bool password_show_last);
01216
01230 EAPI void edje_password_show_last_timeout_set(double password_show_last_timeout);
01231
01253 EAPI Eina_Bool edje_object_scale_set (Evas_Object *obj, double scale);
01254
01266 EAPI double edje_object_scale_get (const Evas_Object *obj);
01267
01275 EAPI void edje_object_mirrored_set (Evas_Object *obj, Eina_Bool rtl);
01276
01286 EAPI Eina_Bool edje_object_mirrored_get (const Evas_Object *obj);
01287
01297 EAPI Eina_List *edje_file_collection_list (const char *file);
01298
01305 EAPI void edje_file_collection_list_free (Eina_List *lst);
01306
01314 EAPI Eina_Bool edje_file_group_exists (const char *file, const char *glob);
01315
01333 EAPI char *edje_file_data_get (const char *file, const char *key);
01334
01348 EAPI void edje_file_cache_set (int count);
01349
01362 EAPI int edje_file_cache_get (void);
01363
01374 EAPI void edje_file_cache_flush (void);
01375
01390 EAPI void edje_collection_cache_set (int count);
01391
01404 EAPI int edje_collection_cache_get (void);
01405
01416 EAPI void edje_collection_cache_flush (void);
01417
01454 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);
01455
01490 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);
01491
01505 EAPI void edje_color_class_del (const char *color_class);
01506
01517 EAPI Eina_List *edje_color_class_list (void);
01518
01534 EAPI Eina_Bool edje_text_class_set (const char *text_class, const char *font, Evas_Font_Size size);
01535
01545 EAPI void edje_text_class_del (const char *text_class);
01546
01557 EAPI Eina_List *edje_text_class_list (void);
01558
01568 EAPI void edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
01569
01579 EAPI void edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh);
01580
01594 EAPI void edje_extern_object_aspect_set (Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah);
01595
01618 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);
01619
01658 EAPI Evas_Object *edje_object_add (Evas *evas);
01659
01696 EAPI const char *edje_object_data_get (const Evas_Object *obj, const char *key);
01697
01728 EAPI Eina_Bool edje_object_file_set (Evas_Object *obj, const char *file, const char *group);
01729
01750 EAPI void edje_object_file_get (const Evas_Object *obj, const char **file, const char **group);
01751
01776 EAPI Edje_Load_Error edje_object_load_error_get (const Evas_Object *obj);
01777
01792 EAPI const char *edje_load_error_str (Edje_Load_Error error);
01793
01811 EAPI Eina_Bool edje_object_preload (Evas_Object *obj, Eina_Bool cancel);
01812
01873 EAPI void edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01874
01894 EAPI void *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);
01895
01919 EAPI void *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
01920
01949 EAPI void edje_object_signal_emit (Evas_Object *obj, const char *emission, const char *source);
01950
01962 EAPI void * edje_object_signal_callback_extra_data_get(void);
01963
01978 EAPI void edje_object_play_set (Evas_Object *obj, Eina_Bool play);
01979
01994 EAPI Eina_Bool edje_object_play_get (const Evas_Object *obj);
01995
02010 EAPI void edje_object_animation_set (Evas_Object *obj, Eina_Bool on);
02011
02025 EAPI Eina_Bool edje_object_animation_get (const Evas_Object *obj);
02026
02038 EAPI int edje_object_freeze (Evas_Object *obj);
02039
02053 EAPI int edje_object_thaw (Evas_Object *obj);
02054
02088 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);
02089
02122 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);
02123
02139 EAPI void edje_object_color_class_del (Evas_Object *obj, const char *color_class);
02140
02154 EAPI Eina_Bool edje_object_text_class_set (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size);
02155
02191 EAPI void edje_object_size_min_get (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02192
02229 EAPI void edje_object_size_max_get (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
02230
02239 EAPI void edje_object_calc_force (Evas_Object *obj);
02240
02254 EAPI void edje_object_size_min_calc (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
02255
02284 EAPI Eina_Bool edje_object_parts_extends_calc (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
02285
02313 EAPI void edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh);
02314
02331 EAPI Eina_Bool edje_object_part_exists (const Evas_Object *obj, const char *part);
02332
02352 EAPI const Evas_Object *edje_object_part_object_get (const Evas_Object *obj, const char *part);
02353
02377 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);
02378
02379
02390 EAPI void edje_object_item_provider_set (Evas_Object *obj, Edje_Item_Provider_Cb func, void *data);
02391
02392
02402 EAPI void edje_object_text_change_cb_set (Evas_Object *obj, Edje_Text_Change_Cb func, void *data);
02403
02411 EAPI Eina_Bool edje_object_part_text_set (Evas_Object *obj, const char *part, const char *text);
02412
02425 EAPI const char *edje_object_part_text_get (const Evas_Object *obj, const char *part);
02426
02439 EAPI Eina_Bool edje_object_part_text_unescaped_set (Evas_Object *obj, const char *part, const char *text_to_escape);
02440
02456 EAPI char *edje_object_part_text_unescaped_get (const Evas_Object *obj, const char *part);
02457
02470 EAPI const char *edje_object_part_text_selection_get (const Evas_Object *obj, const char *part);
02471
02480 EAPI void edje_object_part_text_select_none (const Evas_Object *obj, const char *part);
02481
02490 EAPI void edje_object_part_text_select_all (const Evas_Object *obj, const char *part);
02491
02503 EAPI void edje_object_part_text_insert (Evas_Object *obj, const char *part, const char *text);
02504
02517 EAPI void edje_object_part_text_append(Evas_Object *obj, const char *part, const char *text);
02518
02530 EAPI const Eina_List *edje_object_part_text_anchor_list_get (const Evas_Object *obj, const char *part);
02531
02546 EAPI const Eina_List *edje_object_part_text_anchor_geometry_get (const Evas_Object *obj, const char *part, const char *anchor);
02547
02559 EAPI const Eina_List *edje_object_part_text_item_list_get (const Evas_Object *obj, const char *part);
02560
02578 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);
02579
02592 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);
02593
02606 EAPI void edje_object_part_text_select_allow_set (const Evas_Object *obj, const char *part, Eina_Bool allow);
02607
02614 EAPI void edje_object_part_text_select_abort (const Evas_Object *obj, const char *part);
02615
02622 EAPI void edje_object_part_text_select_begin (const Evas_Object *obj, const char *part);
02623
02630 EAPI void edje_object_part_text_select_extend (const Evas_Object *obj, const char *part);
02631
02632
02641 EAPI Eina_Bool edje_object_part_text_cursor_next (Evas_Object *obj, const char *part, Edje_Cursor cur);
02642
02651 EAPI Eina_Bool edje_object_part_text_cursor_prev (Evas_Object *obj, const char *part, Edje_Cursor cur);
02652
02660 EAPI Eina_Bool edje_object_part_text_cursor_up (Evas_Object *obj, const char *part, Edje_Cursor cur);
02661
02669 EAPI Eina_Bool edje_object_part_text_cursor_down (Evas_Object *obj, const char *part, Edje_Cursor cur);
02670
02679 EAPI void edje_object_part_text_cursor_begin_set (Evas_Object *obj, const char *part, Edje_Cursor cur);
02680
02689 EAPI void edje_object_part_text_cursor_end_set (Evas_Object *obj, const char *part, Edje_Cursor cur);
02690
02699 EAPI void edje_object_part_text_cursor_copy (Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst);
02700
02709 EAPI void edje_object_part_text_cursor_line_begin_set (Evas_Object *obj, const char *part, Edje_Cursor cur);
02710
02719 EAPI void edje_object_part_text_cursor_line_end_set (Evas_Object *obj, const char *part, Edje_Cursor cur);
02720
02733 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);
02734
02744 EAPI Eina_Bool edje_object_part_text_cursor_is_format_get (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02745
02755 EAPI Eina_Bool edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur);
02756
02765 EAPI const char *edje_object_part_text_cursor_content_get (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02766
02776 EAPI void edje_object_part_text_cursor_pos_set (Evas_Object *obj, const char *part, Edje_Cursor cur, int pos);
02777
02787 EAPI int edje_object_part_text_cursor_pos_get (const Evas_Object *obj, const char *part, Edje_Cursor cur);
02788
02802 EAPI void edje_object_part_text_input_panel_layout_set (const Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout);
02803
02815 EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get (const Evas_Object *obj, const char *part);
02816
02825 EAPI void edje_object_part_text_autocapital_type_set (const Evas_Object *obj, const char *part, Edje_Text_Autocapital_Type autocapital_type);
02826
02835 EAPI Edje_Text_Autocapital_Type edje_object_part_text_autocapital_type_get (const Evas_Object *obj, const char *part);
02836
02845 EAPI void edje_object_part_text_input_panel_enabled_set (const Evas_Object *obj, const char *part, Eina_Bool enabled);
02846
02856 EAPI Eina_Bool edje_object_part_text_input_panel_enabled_get (const Evas_Object *obj, const char *part);
02857
02882 EAPI void edje_object_text_insert_filter_callback_add (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
02883
02899 EAPI void *edje_object_text_insert_filter_callback_del (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func);
02900
02918 EAPI void *edje_object_text_insert_filter_callback_del_full (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
02919
02934 EAPI Eina_Bool edje_object_part_swallow (Evas_Object *obj, const char *part, Evas_Object *obj_swallow);
02935
02946 EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow);
02947
02955 EAPI Evas_Object *edje_object_part_swallow_get (const Evas_Object *obj, const char *part);
02956
02968 EAPI const char *edje_object_part_state_get (const Evas_Object *obj, const char *part, double *val_ret);
02969
02985 EAPI Edje_Drag_Dir edje_object_part_drag_dir_get (const Evas_Object *obj, const char *part);
02986
03009 EAPI Eina_Bool edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
03010
03026 EAPI Eina_Bool edje_object_part_drag_value_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
03027
03043 EAPI Eina_Bool edje_object_part_drag_size_set (Evas_Object *obj, const char *part, double dw, double dh);
03044
03057 EAPI Eina_Bool edje_object_part_drag_size_get (const Evas_Object *obj, const char *part, double *dw, double *dh);
03058
03075 EAPI Eina_Bool edje_object_part_drag_step_set (Evas_Object *obj, const char *part, double dx, double dy);
03076
03090 EAPI Eina_Bool edje_object_part_drag_step_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
03091
03108 EAPI Eina_Bool edje_object_part_drag_page_set (Evas_Object *obj, const char *part, double dx, double dy);
03109
03122 EAPI Eina_Bool edje_object_part_drag_page_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
03123
03139 EAPI Eina_Bool edje_object_part_drag_step (Evas_Object *obj, const char *part, double dx, double dy);
03140
03158 EAPI Eina_Bool edje_object_part_drag_page (Evas_Object *obj, const char *part, double dx, double dy);
03159
03160
03180 EAPI Evas_Object *edje_object_part_external_object_get (const Evas_Object *obj, const char *part);
03181
03212 EAPI Eina_Bool edje_object_part_external_param_set (Evas_Object *obj, const char *part, const Edje_External_Param *param);
03213
03242 EAPI Eina_Bool edje_object_part_external_param_get (const Evas_Object *obj, const char *part, Edje_External_Param *param);
03243
03254 EAPI Evas_Object *edje_object_part_external_content_get (const Evas_Object *obj, const char *part, const char *content);
03255
03266 EAPI Edje_External_Param_Type edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param);
03267
03268
03285 EAPI Eina_Bool edje_object_part_box_append (Evas_Object *obj, const char *part, Evas_Object *child);
03286
03303 EAPI Eina_Bool edje_object_part_box_prepend (Evas_Object *obj, const char *part, Evas_Object *child);
03304
03323 EAPI Eina_Bool edje_object_part_box_insert_before (Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
03324
03343 EAPI Eina_Bool edje_object_part_box_insert_at (Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos);
03344
03359 EAPI Evas_Object *edje_object_part_box_remove (Evas_Object *obj, const char *part, Evas_Object *child);
03360
03376 EAPI Evas_Object *edje_object_part_box_remove_at (Evas_Object *obj, const char *part, unsigned int pos);
03377
03394 EAPI Eina_Bool edje_object_part_box_remove_all (Evas_Object *obj, const char *part, Eina_Bool clear);
03395
03405 EAPI Evas_Object *edje_object_part_table_child_get (Evas_Object *obj, const char *part, unsigned int col, unsigned int row);
03406
03422 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);
03423
03435 EAPI Eina_Bool edje_object_part_table_unpack (Evas_Object *obj, const char *part, Evas_Object *child_obj);
03436
03449 EAPI Eina_Bool edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows);
03450
03463 EAPI Eina_Bool edje_object_part_table_clear (Evas_Object *obj, const char *part, Eina_Bool clear);
03464
03487 EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
03488
03513 EAPI void edje_object_message_handler_set (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data);
03514
03525 EAPI void edje_object_message_signal_process (Evas_Object *obj);
03526
03527
03535 EAPI void edje_message_signal_process (void);
03536
03554 EAPI Eina_Bool edje_external_type_register (const char *type_name, const Edje_External_Type *type_info);
03555
03567 EAPI Eina_Bool edje_external_type_unregister (const char *type_name);
03568
03592 EAPI void edje_external_type_array_register (const Edje_External_Type_Info *array);
03593
03602 EAPI void edje_external_type_array_unregister (const Edje_External_Type_Info *array);
03603
03623 EAPI unsigned int edje_external_type_abi_version_get (void) EINA_CONST;
03624
03667 EAPI Eina_Iterator *edje_external_iterator_get (void);
03668
03677 EAPI Edje_External_Param *edje_external_param_find (const Eina_List *params, const char *key);
03694 EAPI Eina_Bool edje_external_param_int_get (const Eina_List *params, const char *key, int *ret);
03711 EAPI Eina_Bool edje_external_param_double_get (const Eina_List *params, const char *key, double *ret);
03730 EAPI Eina_Bool edje_external_param_string_get (const Eina_List *params, const char *key, const char **ret);
03747 EAPI Eina_Bool edje_external_param_bool_get (const Eina_List *params, const char *key, Eina_Bool *ret);
03766 EAPI Eina_Bool edje_external_param_choice_get (const Eina_List *params, const char *key, const char **ret);
03767
03780 EAPI const Edje_External_Param_Info *edje_external_param_info_get (const char *type_name);
03781
03786 EAPI const Edje_External_Type *edje_external_type_get (const char *type_name);
03787
03788 EAPI Eina_Bool edje_module_load (const char *module);
03789 EAPI const Eina_List *edje_available_modules_get (void);
03790
03791
03792 typedef struct _Edje_Perspective Edje_Perspective;
03793
03806 EAPI Edje_Perspective *edje_perspective_new (Evas *e);
03818 EAPI void edje_perspective_free (Edje_Perspective *ps);
03841 EAPI void edje_perspective_set (Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc);
03865 EAPI void edje_perspective_global_set (Edje_Perspective *ps, Eina_Bool global);
03875 EAPI Eina_Bool edje_perspective_global_get (const Edje_Perspective *ps);
03889 EAPI const Edje_Perspective *edje_evas_global_perspective_get(const Evas *e);
03910 EAPI void edje_object_perspective_set (Evas_Object *obj, Edje_Perspective *ps);
03920 EAPI const Edje_Perspective *edje_object_perspective_get (const Evas_Object *obj);
03921
03922 #ifdef __cplusplus
03923 }
03924 #endif
03925
03926 #endif