src/lib/Edje.h
Go to the documentation of this file.
00001 #ifndef _EDJE_H 00002 #define _EDJE_H 00003 00004 #ifndef _MSC_VER 00005 # include <stdint.h> 00006 #endif 00007 #include <math.h> 00008 #include <float.h> 00009 #include <limits.h> 00010 00011 #include <Evas.h> 00012 00013 #ifdef EAPI 00014 # undef EAPI 00015 #endif 00016 00017 #ifdef _WIN32 00018 # ifdef EFL_EDJE_BUILD 00019 # ifdef DLL_EXPORT 00020 # define EAPI __declspec(dllexport) 00021 # else 00022 # define EAPI 00023 # endif /* ! DLL_EXPORT */ 00024 # else 00025 # define EAPI __declspec(dllimport) 00026 # endif /* ! EFL_EDJE_BUILD */ 00027 #else 00028 # ifdef __GNUC__ 00029 # if __GNUC__ >= 4 00030 # define EAPI __attribute__ ((visibility("default"))) 00031 # else 00032 # define EAPI 00033 # endif 00034 # else 00035 # define EAPI 00036 # endif 00037 #endif 00038 00039 #ifdef __cplusplus 00040 extern "C" { 00041 #endif 00042 00043 #define EDJE_VERSION_MAJOR 1 00044 #define EDJE_VERSION_MINOR 0 00045 00046 typedef struct _Edje_Version 00047 { 00048 int major; 00049 int minor; 00050 int micro; 00051 int revision; 00052 } Edje_Version; 00053 00054 EAPI extern Edje_Version *edje_version; 00055 00063 typedef enum _Edje_Message_Type 00064 { 00065 EDJE_MESSAGE_NONE = 0, 00066 00067 EDJE_MESSAGE_SIGNAL = 1, /* DONT USE THIS */ 00068 00069 EDJE_MESSAGE_STRING = 2, 00070 EDJE_MESSAGE_INT = 3, 00071 EDJE_MESSAGE_FLOAT = 4, 00072 00073 EDJE_MESSAGE_STRING_SET = 5, 00074 EDJE_MESSAGE_INT_SET = 6, 00075 EDJE_MESSAGE_FLOAT_SET = 7, 00076 00077 EDJE_MESSAGE_STRING_INT = 8, 00078 EDJE_MESSAGE_STRING_FLOAT = 9, 00079 00080 EDJE_MESSAGE_STRING_INT_SET = 10, 00081 EDJE_MESSAGE_STRING_FLOAT_SET = 11 00082 } Edje_Message_Type; 00083 00084 typedef enum _Edje_Aspect_Control 00085 { 00086 EDJE_ASPECT_CONTROL_NONE = 0, 00087 EDJE_ASPECT_CONTROL_NEITHER = 1, 00088 EDJE_ASPECT_CONTROL_HORIZONTAL = 2, 00089 EDJE_ASPECT_CONTROL_VERTICAL = 3, 00090 EDJE_ASPECT_CONTROL_BOTH = 4 00091 } Edje_Aspect_Control; 00092 00093 typedef enum _Edje_Object_Table_Homogeneous_Mode 00094 { 00095 EDJE_OBJECT_TABLE_HOMOGENEOUS_NONE = 0, 00096 EDJE_OBJECT_TABLE_HOMOGENEOUS_TABLE = 1, 00097 EDJE_OBJECT_TABLE_HOMOGENEOUS_ITEM = 2 00098 } Edje_Object_Table_Homogeneous_Mode; 00099 00100 typedef enum _Edje_Part_Type 00101 { 00102 EDJE_PART_TYPE_NONE = 0, 00103 EDJE_PART_TYPE_RECTANGLE = 1, 00104 EDJE_PART_TYPE_TEXT = 2, 00105 EDJE_PART_TYPE_IMAGE = 3, 00106 EDJE_PART_TYPE_SWALLOW = 4, 00107 EDJE_PART_TYPE_TEXTBLOCK = 5, 00108 EDJE_PART_TYPE_GRADIENT = 6, 00109 EDJE_PART_TYPE_GROUP = 7, 00110 EDJE_PART_TYPE_BOX = 8, 00111 EDJE_PART_TYPE_TABLE = 9, 00112 EDJE_PART_TYPE_EXTERNAL = 10, 00113 EDJE_PART_TYPE_LAST = 11 00114 } Edje_Part_Type; 00115 00116 typedef enum _Edje_Text_Effect 00117 { 00118 EDJE_TEXT_EFFECT_NONE = 0, 00119 EDJE_TEXT_EFFECT_PLAIN = 1, 00120 EDJE_TEXT_EFFECT_OUTLINE = 2, 00121 EDJE_TEXT_EFFECT_SOFT_OUTLINE = 3, 00122 EDJE_TEXT_EFFECT_SHADOW = 4, 00123 EDJE_TEXT_EFFECT_SOFT_SHADOW = 5, 00124 EDJE_TEXT_EFFECT_OUTLINE_SHADOW = 6, 00125 EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW = 7, 00126 EDJE_TEXT_EFFECT_FAR_SHADOW = 8, 00127 EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW = 9, 00128 EDJE_TEXT_EFFECT_GLOW = 10, 00129 EDJE_TEXT_EFFECT_LAST = 11 00130 } Edje_Text_Effect; 00131 00132 typedef enum _Edje_Action_Type 00133 { 00134 EDJE_ACTION_TYPE_NONE = 0, 00135 EDJE_ACTION_TYPE_STATE_SET = 1, 00136 EDJE_ACTION_TYPE_ACTION_STOP = 2, 00137 EDJE_ACTION_TYPE_SIGNAL_EMIT = 3, 00138 EDJE_ACTION_TYPE_DRAG_VAL_SET = 4, 00139 EDJE_ACTION_TYPE_DRAG_VAL_STEP = 5, 00140 EDJE_ACTION_TYPE_DRAG_VAL_PAGE = 6, 00141 EDJE_ACTION_TYPE_SCRIPT = 7, 00142 EDJE_ACTION_TYPE_FOCUS_SET = 8, 00143 EDJE_ACTION_TYPE_RESERVED00 = 9, 00144 EDJE_ACTION_TYPE_FOCUS_OBJECT = 10, 00145 EDJE_ACTION_TYPE_PARAM_COPY = 11, 00146 EDJE_ACTION_TYPE_PARAM_SET = 12, 00147 EDJE_ACTION_TYPE_LAST = 13 00148 } Edje_Action_Type; 00149 00150 typedef enum _Edje_Tween_Mode 00151 { 00152 EDJE_TWEEN_MODE_NONE = 0, 00153 EDJE_TWEEN_MODE_LINEAR = 1, 00154 EDJE_TWEEN_MODE_SINUSOIDAL = 2, 00155 EDJE_TWEEN_MODE_ACCELERATE = 3, 00156 EDJE_TWEEN_MODE_DECELERATE = 4, 00157 EDJE_TWEEN_MODE_LAST = 5 00158 } Edje_Tween_Mode; 00159 00160 typedef enum _Edje_Cursor 00161 { 00162 EDJE_CURSOR_MAIN, 00163 EDJE_CURSOR_SELECTION_BEGIN, 00164 EDJE_CURSOR_SELECTION_END, 00165 EDJE_CURSOR_PREEDIT_START, 00166 EDJE_CURSOR_PREEDIT_END, 00167 EDJE_CURSOR_USER, 00168 EDJE_CURSOR_USER_EXTRA, 00169 // more later 00170 } Edje_Cursor; 00171 00172 typedef struct _Edje_Message_String Edje_Message_String; 00173 typedef struct _Edje_Message_Int Edje_Message_Int; 00174 typedef struct _Edje_Message_Float Edje_Message_Float; 00175 typedef struct _Edje_Message_String_Set Edje_Message_String_Set; 00176 typedef struct _Edje_Message_Int_Set Edje_Message_Int_Set; 00177 typedef struct _Edje_Message_Float_Set Edje_Message_Float_Set; 00178 typedef struct _Edje_Message_String_Int Edje_Message_String_Int; 00179 typedef struct _Edje_Message_String_Float Edje_Message_String_Float; 00180 typedef struct _Edje_Message_String_Int_Set Edje_Message_String_Int_Set; 00181 typedef struct _Edje_Message_String_Float_Set Edje_Message_String_Float_Set; 00182 00183 struct _Edje_Message_String 00184 { 00185 char *str; 00186 }; 00187 00188 struct _Edje_Message_Int 00189 { 00190 int val; 00191 }; 00192 00193 struct _Edje_Message_Float 00194 { 00195 double val; 00196 }; 00197 00198 struct _Edje_Message_String_Set 00199 { 00200 int count; 00201 char *str[1]; 00202 }; 00203 00204 struct _Edje_Message_Int_Set 00205 { 00206 int count; 00207 int val[1]; 00208 }; 00209 00210 struct _Edje_Message_Float_Set 00211 { 00212 int count; 00213 double val[1]; 00214 }; 00215 00216 struct _Edje_Message_String_Int 00217 { 00218 char *str; 00219 int val; 00220 }; 00221 00222 struct _Edje_Message_String_Float 00223 { 00224 char *str; 00225 double val; 00226 }; 00227 00228 struct _Edje_Message_String_Int_Set 00229 { 00230 char *str; 00231 int count; 00232 int val[1]; 00233 }; 00234 00235 struct _Edje_Message_String_Float_Set 00236 { 00237 char *str; 00238 int count; 00239 double val[1]; 00240 }; 00241 00242 typedef enum _Edje_Drag_Dir 00243 { 00244 EDJE_DRAG_DIR_NONE = 0, 00245 EDJE_DRAG_DIR_X = 1, 00246 EDJE_DRAG_DIR_Y = 2, 00247 EDJE_DRAG_DIR_XY = 3 00248 } Edje_Drag_Dir; 00249 00250 typedef enum _Edje_Load_Error 00251 { 00252 EDJE_LOAD_ERROR_NONE = 0, 00253 EDJE_LOAD_ERROR_GENERIC = 1, 00254 EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2, 00255 EDJE_LOAD_ERROR_PERMISSION_DENIED = 3, 00256 EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, 00257 EDJE_LOAD_ERROR_CORRUPT_FILE = 5, 00258 EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6, 00259 EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7, 00260 EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8, 00261 EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = 9 00262 } Edje_Load_Error; 00263 00264 typedef enum _Edje_Text_Filter_Type 00265 { 00266 EDJE_TEXT_FILTER_TEXT = 0, 00267 EDJE_TEXT_FILTER_FORMAT = 1, 00268 EDJE_TEXT_FILTER_MARKUP = 2 00269 } Edje_Text_Filter_Type; 00270 00271 typedef enum _Edje_External_Param_Type 00272 { 00273 EDJE_EXTERNAL_PARAM_TYPE_INT, 00274 EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, 00275 EDJE_EXTERNAL_PARAM_TYPE_STRING, 00276 EDJE_EXTERNAL_PARAM_TYPE_BOOL, 00277 EDJE_EXTERNAL_PARAM_TYPE_CHOICE, 00278 EDJE_EXTERNAL_PARAM_TYPE_MAX 00279 } Edje_External_Param_Type; 00280 00302 typedef enum _Edje_External_Param_Flags 00303 { 00304 EDJE_EXTERNAL_PARAM_FLAGS_NONE = 0, 00305 EDJE_EXTERNAL_PARAM_FLAGS_GET = (1 << 0), 00306 EDJE_EXTERNAL_PARAM_FLAGS_SET = (1 << 1), 00307 EDJE_EXTERNAL_PARAM_FLAGS_STATE = (1 << 2), 00308 EDJE_EXTERNAL_PARAM_FLAGS_CONSTRUCTOR = (1 << 3), 00309 EDJE_EXTERNAL_PARAM_FLAGS_REGULAR = (EDJE_EXTERNAL_PARAM_FLAGS_GET | 00310 EDJE_EXTERNAL_PARAM_FLAGS_SET | 00311 EDJE_EXTERNAL_PARAM_FLAGS_STATE) 00312 } Edje_External_Param_Flags; 00313 00314 EAPI const char *edje_external_param_type_str(Edje_External_Param_Type type) EINA_PURE; 00315 00316 struct _Edje_External_Param 00317 { 00318 const char *name; 00319 Edje_External_Param_Type type; 00320 // XXX these could be in a union, but eet doesn't support them (or does it?) 00321 int i; 00322 double d; 00323 const char *s; 00324 }; 00325 typedef struct _Edje_External_Param Edje_External_Param; 00326 00327 #define EDJE_EXTERNAL_INT_UNSET INT_MAX 00328 #define EDJE_EXTERNAL_DOUBLE_UNSET DBL_MAX 00329 00330 typedef struct _Edje_External_Param_Info Edje_External_Param_Info; 00331 struct _Edje_External_Param_Info 00332 { 00333 const char *name; 00334 Edje_External_Param_Type type; 00335 Edje_External_Param_Flags flags; 00336 union { 00337 struct { 00338 int def, min, max, step; 00339 } i; 00340 struct { 00341 double def, min, max, step; 00342 } d; 00343 struct { 00344 const char *def; 00345 const char *accept_fmt; 00346 const char *deny_fmt; 00347 } s; 00348 struct { 00349 int def; 00350 const char *false_str; 00351 const char *true_str; 00352 } b; 00353 struct { 00354 const char *def; 00355 const char **choices; /* NULL terminated array */ 00356 char *(*def_get)(void *data, const Edje_External_Param_Info *info); /* return malloc() memory with the default choice, should be used if def is NULL. First parameter is Edje_External_Type::data */ 00357 char **(*query)(void *data, const Edje_External_Param_Info *info); /* NULL terminated array of strings, memory is dynamically allocated and should be freed with free() for array and each element. First parameter is Edje_External_Type::data */ 00358 } c; 00359 } info; 00360 }; 00361 00362 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, flags) \ 00363 {name, EDJE_EXTERNAL_PARAM_TYPE_INT, flags, {.i = {def, min, max, step}}} 00364 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, flags) \ 00365 {name, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, flags, {.d = {def, min, max, step}}} 00366 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, flags) \ 00367 {name, EDJE_EXTERNAL_PARAM_TYPE_STRING, flags, {.s = {def, accept, deny}}} 00368 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, flags) \ 00369 {name, EDJE_EXTERNAL_PARAM_TYPE_BOOL, flags, {.b = {def, false_str, true_str}}} 00370 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, flags) \ 00371 {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {def, choices, NULL, NULL}}} 00372 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, flags) \ 00373 {name, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, flags, {.c = {NULL, NULL, def_get, query}}} 00374 00375 #define EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, min, max, step) \ 00376 EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR) 00377 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, min, max, step) \ 00378 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, min, max, step, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR) 00379 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, accept, deny) \ 00380 EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, accept, deny, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR) 00381 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, false_str, true_str) \ 00382 EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, false_str, true_str, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR) 00383 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL(name, def, choices) \ 00384 EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL_FLAGS(name, def, choices, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR) 00385 #define EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL(name, def_get, query) \ 00386 EDJE_EXTERNAL_PARAM_INFO_CHOICE_DYNAMIC_FULL_FLAGS(name, def_get, query, EDJE_EXTERNAL_PARAM_FLAGS_REGULAR) 00387 00388 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, def) \ 00389 EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET) 00390 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, def) \ 00391 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET) 00392 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, def) \ 00393 EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, NULL, NULL) 00394 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, def) \ 00395 EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, "false", "true") 00396 00397 #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, def, flags) \ 00398 EDJE_EXTERNAL_PARAM_INFO_INT_FULL_FLAGS(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, flags) 00399 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, def, flags) \ 00400 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL_FLAGS(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, flags) 00401 #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, def, flags) \ 00402 EDJE_EXTERNAL_PARAM_INFO_STRING_FULL_FLAGS(name, def, NULL, NULL, flags) 00403 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, def, flags) \ 00404 EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL_FLAGS(name, def, "false", "true", flags) 00405 00406 #define EDJE_EXTERNAL_PARAM_INFO_INT(name) \ 00407 EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, 0) 00408 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE(name) \ 00409 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, 0.0) 00410 #define EDJE_EXTERNAL_PARAM_INFO_STRING(name) \ 00411 EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, NULL) 00412 #define EDJE_EXTERNAL_PARAM_INFO_BOOL(name) \ 00413 EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, 0) 00414 00415 #define EDJE_EXTERNAL_PARAM_INFO_INT_FLAGS(name, flags) \ 00416 EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT_FLAGS(name, 0, flags) 00417 #define EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FLAGS(name, flags) \ 00418 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT_FLAGS(name, 0.0, flags) 00419 #define EDJE_EXTERNAL_PARAM_INFO_STRING_FLAGS(name, flags) \ 00420 EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT_FLAGS(name, NULL, flags) 00421 #define EDJE_EXTERNAL_PARAM_INFO_BOOL_FLAGS(name, flags) \ 00422 EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT_FLAGS(name, 0, flags) 00423 00424 #define EDJE_EXTERNAL_PARAM_INFO_SENTINEL {NULL, 0, 0, {.s = {NULL, NULL, NULL}}} 00425 00444 struct _Edje_External_Type 00445 { 00446 #define EDJE_EXTERNAL_TYPE_ABI_VERSION (3) 00447 unsigned int abi_version; 00451 const char *module; 00452 const char *module_name; 00453 Evas_Object *(*add) (void *data, Evas *evas, Evas_Object *parent, const Eina_List *params, const char *part_name); 00454 void (*state_set) (void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos); 00455 void (*signal_emit) (void *data, Evas_Object *obj, const char *emission, const char *source); 00456 Eina_Bool (*param_set) (void *data, Evas_Object *obj, const Edje_External_Param *param); 00457 Eina_Bool (*param_get) (void *data, const Evas_Object *obj, Edje_External_Param *param); 00458 Evas_Object *(*content_get) (void *data, const Evas_Object *obj, const char *content); 00459 void *(*params_parse) (void *data, Evas_Object *obj, const Eina_List *params); 00460 void (*params_free) (void *params); 00462 /* The following callbacks aren't used by Edje itself, but by UI design 00463 tools instead */ 00464 const char *(*label_get) (void *data); 00465 const char *(*description_get) (void *data); 00466 Evas_Object *(*icon_add) (void *data, Evas *e); 00467 Evas_Object *(*preview_add) (void *data, Evas *e); 00468 const char *(*translate) (void *data, const char *orig); 00470 Edje_External_Param_Info *parameters_info; 00471 void *data; 00472 }; 00473 typedef struct _Edje_External_Type Edje_External_Type; 00474 00475 struct _Edje_External_Type_Info 00476 { 00477 const char *name; 00478 const Edje_External_Type *info; 00479 }; 00480 typedef struct _Edje_External_Type_Info Edje_External_Type_Info; 00481 00482 typedef void (*Edje_Signal_Cb) (void *data, Evas_Object *obj, const char *emission, const char *source); 00483 typedef void (*Edje_Text_Change_Cb) (void *data, Evas_Object *obj, const char *part); 00484 typedef void (*Edje_Message_Handler_Cb) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg); 00485 typedef void (*Edje_Text_Filter_Cb) (void *data, Evas_Object *obj, const char *part, Edje_Text_Filter_Type type, char **text); 00486 typedef Evas_Object *(*Edje_Item_Provider_Cb) (void *data, Evas_Object *obj, const char *part, const char *item); 00487 00488 /* edje_main.c */ 00489 EAPI int edje_init (void); 00490 EAPI int edje_shutdown (void); 00491 00492 /* edje_program.c */ 00493 EAPI void edje_frametime_set (double t); 00494 EAPI double edje_frametime_get (void); 00495 00496 /* edje_util.c */ 00497 EAPI void edje_freeze (void); 00498 EAPI void edje_thaw (void); 00499 EAPI void edje_fontset_append_set (const char *fonts); 00500 EAPI const char *edje_fontset_append_get (void); 00501 EAPI void edje_scale_set (double scale); 00502 EAPI double edje_scale_get (void); 00503 EAPI Eina_Bool edje_object_scale_set (Evas_Object *obj, double scale); 00504 EAPI double edje_object_scale_get (const Evas_Object *obj); 00505 00506 /* edje_load.c */ 00507 EAPI Eina_List *edje_file_collection_list (const char *file); 00508 EAPI void edje_file_collection_list_free (Eina_List *lst); 00509 EAPI Eina_Bool edje_file_group_exists (const char *file, const char *glob); 00510 EAPI char *edje_file_data_get (const char *file, const char *key); 00511 EAPI void edje_file_cache_set (int count); 00512 EAPI int edje_file_cache_get (void); 00513 EAPI void edje_file_cache_flush (void); 00514 EAPI void edje_collection_cache_set (int count); 00515 EAPI int edje_collection_cache_get (void); 00516 EAPI void edje_collection_cache_flush (void); 00517 00518 /* edje_util.c */ 00519 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); 00520 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); 00521 EAPI void edje_color_class_del (const char *color_class); 00522 EAPI Eina_List *edje_color_class_list (void); 00523 EAPI Eina_Bool edje_text_class_set (const char *text_class, const char *font, Evas_Font_Size size); 00524 EAPI void edje_text_class_del (const char *text_class); 00525 EAPI Eina_List *edje_text_class_list (void); 00526 EAPI void edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh); 00527 EAPI void edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh); 00528 EAPI void edje_extern_object_aspect_set (Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah); 00529 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); 00530 00531 /* edje_smart.c */ 00532 EAPI Evas_Object *edje_object_add (Evas *evas); 00533 00534 /* edje_util.c */ 00535 EAPI const char *edje_object_data_get (const Evas_Object *obj, const char *key); 00536 00537 /* edje_load.c */ 00538 EAPI Eina_Bool edje_object_file_set (Evas_Object *obj, const char *file, const char *group); 00539 EAPI void edje_object_file_get (const Evas_Object *obj, const char **file, const char **group); 00540 EAPI Edje_Load_Error edje_object_load_error_get (const Evas_Object *obj); 00541 EAPI const char *edje_load_error_str (Edje_Load_Error error); 00542 00543 /* edje_util.c */ 00544 EAPI Eina_Bool edje_object_preload (Evas_Object *obj, Eina_Bool cancel); 00545 00546 /* edje_program.c */ 00547 EAPI void edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data); 00548 EAPI void *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func); 00549 EAPI void *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data); 00550 EAPI void edje_object_signal_emit (Evas_Object *obj, const char *emission, const char *source); 00551 EAPI void edje_object_play_set (Evas_Object *obj, Eina_Bool play); 00552 EAPI Eina_Bool edje_object_play_get (const Evas_Object *obj); 00553 EAPI void edje_object_animation_set (Evas_Object *obj, Eina_Bool on); 00554 EAPI Eina_Bool edje_object_animation_get (const Evas_Object *obj); 00555 00556 /* edje_util.c */ 00557 EAPI int edje_object_freeze (Evas_Object *obj); 00558 EAPI int edje_object_thaw (Evas_Object *obj); 00559 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); 00560 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); 00561 EAPI void edje_object_color_class_del (Evas_Object *obj, const char *color_class); 00562 EAPI Eina_Bool edje_object_text_class_set (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size); 00563 EAPI void edje_object_size_min_get (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); 00564 EAPI void edje_object_size_max_get (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh); 00565 EAPI void edje_object_calc_force (Evas_Object *obj); 00566 EAPI void edje_object_size_min_calc (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); 00567 EAPI Eina_Bool edje_object_parts_extends_calc (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); 00568 EAPI void edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh); 00569 EAPI Eina_Bool edje_object_part_exists (const Evas_Object *obj, const char *part); 00570 EAPI const Evas_Object *edje_object_part_object_get (const Evas_Object *obj, const char *part); 00571 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); 00572 00573 EAPI void edje_object_item_provider_set (Evas_Object *obj, Edje_Item_Provider_Cb func, void *data); 00574 00575 EAPI void edje_object_text_change_cb_set (Evas_Object *obj, Edje_Text_Change_Cb func, void *data); 00576 00577 EAPI Eina_Bool edje_object_part_text_set (Evas_Object *obj, const char *part, const char *text); 00578 EAPI const char *edje_object_part_text_get (const Evas_Object *obj, const char *part); 00579 EAPI Eina_Bool edje_object_part_text_unescaped_set (Evas_Object *obj, const char *part, const char *text_to_escape); 00580 EAPI char *edje_object_part_text_unescaped_get (const Evas_Object *obj, const char *part); 00581 00582 EAPI const char *edje_object_part_text_selection_get (const Evas_Object *obj, const char *part); 00583 EAPI void edje_object_part_text_select_none (const Evas_Object *obj, const char *part); 00584 EAPI void edje_object_part_text_select_all (const Evas_Object *obj, const char *part); 00585 EAPI void edje_object_part_text_insert (Evas_Object *obj, const char *part, const char *text); 00586 EAPI const Eina_List *edje_object_part_text_anchor_list_get (const Evas_Object *obj, const char *part); 00587 EAPI const Eina_List *edje_object_part_text_anchor_geometry_get (const Evas_Object *obj, const char *part, const char *anchor); 00588 EAPI const Eina_List *edje_object_part_text_item_list_get (const Evas_Object *obj, const char *part); 00589 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); 00590 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); 00591 EAPI void edje_object_part_text_select_allow_set (const Evas_Object *obj, const char *part, Eina_Bool allow); 00592 EAPI void edje_object_part_text_select_abort (const Evas_Object *obj, const char *part); 00593 EAPI void edje_object_part_text_select_begin (const Evas_Object *obj, const char *part); 00594 EAPI void edje_object_part_text_select_extend (const Evas_Object *obj, const char *part); 00595 00596 EAPI Eina_Bool edje_object_part_text_cursor_next (Evas_Object *obj, const char *part, Edje_Cursor cur); 00597 EAPI Eina_Bool edje_object_part_text_cursor_prev (Evas_Object *obj, const char *part, Edje_Cursor cur); 00598 EAPI Eina_Bool edje_object_part_text_cursor_up (Evas_Object *obj, const char *part, Edje_Cursor cur); 00599 EAPI Eina_Bool edje_object_part_text_cursor_down (Evas_Object *obj, const char *part, Edje_Cursor cur); 00600 EAPI void edje_object_part_text_cursor_begin_set (Evas_Object *obj, const char *part, Edje_Cursor cur); 00601 EAPI void edje_object_part_text_cursor_end_set (Evas_Object *obj, const char *part, Edje_Cursor cur); 00602 EAPI void edje_object_part_text_cursor_copy (Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst); 00603 EAPI void edje_object_part_text_cursor_line_begin_set (Evas_Object *obj, const char *part, Edje_Cursor cur); 00604 EAPI void edje_object_part_text_cursor_line_end_set (Evas_Object *obj, const char *part, Edje_Cursor cur); 00605 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); 00606 EAPI Eina_Bool edje_object_part_text_cursor_is_format_get (const Evas_Object *obj, const char *part, Edje_Cursor cur); 00607 EAPI Eina_Bool edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur); 00608 EAPI const char *edje_object_part_text_cursor_content_get (const Evas_Object *obj, const char *part, Edje_Cursor cur); 00609 00610 EAPI void edje_object_text_insert_filter_callback_add (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data); 00611 EAPI void *edje_object_text_insert_filter_callback_del (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func); 00612 EAPI void *edje_object_text_insert_filter_callback_del_full (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data); 00613 00614 EAPI Eina_Bool edje_object_part_swallow (Evas_Object *obj, const char *part, Evas_Object *obj_swallow); 00615 EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow); 00616 EAPI Evas_Object *edje_object_part_swallow_get (const Evas_Object *obj, const char *part); 00617 EAPI const char *edje_object_part_state_get (const Evas_Object *obj, const char *part, double *val_ret); 00618 EAPI Edje_Drag_Dir edje_object_part_drag_dir_get (const Evas_Object *obj, const char *part); 00619 EAPI Eina_Bool edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy); 00620 EAPI Eina_Bool edje_object_part_drag_value_get (const Evas_Object *obj, const char *part, double *dx, double *dy); 00621 EAPI Eina_Bool edje_object_part_drag_size_set (Evas_Object *obj, const char *part, double dw, double dh); 00622 EAPI Eina_Bool edje_object_part_drag_size_get (const Evas_Object *obj, const char *part, double *dw, double *dh); 00623 EAPI Eina_Bool edje_object_part_drag_step_set (Evas_Object *obj, const char *part, double dx, double dy); 00624 EAPI Eina_Bool edje_object_part_drag_step_get (const Evas_Object *obj, const char *part, double *dx, double *dy); 00625 EAPI Eina_Bool edje_object_part_drag_page_set (Evas_Object *obj, const char *part, double dx, double dy); 00626 EAPI Eina_Bool edje_object_part_drag_page_get (const Evas_Object *obj, const char *part, double *dx, double *dy); 00627 EAPI Eina_Bool edje_object_part_drag_step (Evas_Object *obj, const char *part, double dx, double dy); 00628 EAPI Eina_Bool edje_object_part_drag_page (Evas_Object *obj, const char *part, double dx, double dy); 00629 00630 EAPI Evas_Object *edje_object_part_external_object_get (const Evas_Object *obj, const char *part); 00631 EAPI Eina_Bool edje_object_part_external_param_set (Evas_Object *obj, const char *part, const Edje_External_Param *param); 00632 EAPI Eina_Bool edje_object_part_external_param_get (const Evas_Object *obj, const char *part, Edje_External_Param *param); 00633 EAPI Evas_Object *edje_object_part_external_content_get (const Evas_Object *obj, const char *part, const char *content); 00634 EAPI Edje_External_Param_Type edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param); 00635 00636 EAPI Eina_Bool edje_object_part_box_append (Evas_Object *obj, const char *part, Evas_Object *child); 00637 EAPI Eina_Bool edje_object_part_box_prepend (Evas_Object *obj, const char *part, Evas_Object *child); 00638 EAPI Eina_Bool edje_object_part_box_insert_before (Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference); 00639 EAPI Eina_Bool edje_object_part_box_insert_at (Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos); 00640 EAPI Evas_Object *edje_object_part_box_remove (Evas_Object *obj, const char *part, Evas_Object *child); 00641 EAPI Evas_Object *edje_object_part_box_remove_at (Evas_Object *obj, const char *part, unsigned int pos); 00642 EAPI Eina_Bool edje_object_part_box_remove_all (Evas_Object *obj, const char *part, Eina_Bool clear); 00643 EAPI Evas_Object *edje_object_part_table_child_get (Evas_Object *obj, const char *part, unsigned int col, unsigned int row); 00644 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); 00645 EAPI Eina_Bool edje_object_part_table_unpack (Evas_Object *obj, const char *part, Evas_Object *child_obj); 00646 EAPI Eina_Bool edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows); 00647 EAPI Eina_Bool edje_object_part_table_clear (Evas_Object *obj, const char *part, Eina_Bool clear); 00648 00649 /* edje_message_queue.c */ 00650 EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg); 00651 EAPI void edje_object_message_handler_set (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data); 00652 EAPI void edje_object_message_signal_process (Evas_Object *obj); 00653 00654 EAPI void edje_message_signal_process (void); 00655 00656 /* edje_external.c */ 00657 EAPI Eina_Bool edje_external_type_register (const char *type_name, const Edje_External_Type *type_info); 00658 EAPI Eina_Bool edje_external_type_unregister (const char *type_name); 00659 00660 EAPI void edje_external_type_array_register (const Edje_External_Type_Info *array); 00661 EAPI void edje_external_type_array_unregister (const Edje_External_Type_Info *array); 00662 00663 EAPI unsigned int edje_external_type_abi_version_get (void) EINA_CONST; 00664 00665 00666 EAPI Eina_Iterator *edje_external_iterator_get (void); 00667 EAPI Edje_External_Param *edje_external_param_find (const Eina_List *params, const char *key); 00668 EAPI Eina_Bool edje_external_param_int_get (const Eina_List *params, const char *key, int *ret); 00669 EAPI Eina_Bool edje_external_param_double_get (const Eina_List *params, const char *key, double *ret); 00670 EAPI Eina_Bool edje_external_param_string_get (const Eina_List *params, const char *key, const char **ret); 00671 EAPI Eina_Bool edje_external_param_bool_get (const Eina_List *params, const char *key, Eina_Bool *ret); 00672 EAPI Eina_Bool edje_external_param_choice_get (const Eina_List *params, const char *key, const char **ret); 00673 EAPI const Edje_External_Param_Info *edje_external_param_info_get (const char *type_name); 00674 EAPI const Edje_External_Type *edje_external_type_get (const char *type_name); 00675 00676 /* edje_module.c */ 00677 EAPI Eina_Bool edje_module_load (const char *module); 00678 EAPI const Eina_List *edje_available_modules_get (void); 00679 00680 /* perspective info for maps inside edje objects */ 00681 typedef struct _Edje_Perspective Edje_Perspective; 00682 00683 EAPI Edje_Perspective *edje_perspective_new (Evas *e); 00684 EAPI void edje_perspective_free (Edje_Perspective *ps); 00685 EAPI void edje_perspective_set (Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc); 00686 EAPI void edje_perspective_global_set (Edje_Perspective *ps, Eina_Bool global); 00687 EAPI Eina_Bool edje_perspective_global_get (const Edje_Perspective *ps); 00688 EAPI const Edje_Perspective *edje_evas_global_perspective_get(const Evas *e); 00689 EAPI void edje_object_perspective_set (Evas_Object *obj, Edje_Perspective *ps); 00690 EAPI const Edje_Perspective *edje_object_perspective_get (const Evas_Object *obj); 00691 00692 #ifdef __cplusplus 00693 } 00694 #endif 00695 00696 #endif