Imported Upstream version 1.7.1
[platform/upstream/edje.git] / src / lib / edje_convert.h
1 #ifndef EDJE_CONVERT_H__
2 # define EDJE_CONVERT_H__
3
4 typedef struct _Old_Edje_Image_Directory        Old_Edje_Image_Directory;
5 typedef struct _Old_Edje_Font_Directory         Old_Edje_Font_Directory;
6 typedef struct _Old_Edje_External_Directory     Old_Edje_External_Directory;
7 typedef struct _Old_Edje_Part                   Old_Edje_Part;
8 typedef struct _Old_Edje_Part_Collection        Old_Edje_Part_Collection;
9 typedef struct _Old_Edje_Part_Description       Old_Edje_Part_Description;
10 typedef struct _Old_Edje_Part_Description_Spec_Image Old_Edje_Part_Description_Spec_Image;
11 typedef struct _Edje_Data                       Edje_Data;
12
13 struct _Edje_Data
14 {
15    const char *key;
16    char *value;
17 };
18
19 /*----------*/
20
21 struct _Old_Edje_Font_Directory
22 {
23    Eina_List *entries; /* a list of Edje_Font_Directory_Entry */
24 };
25
26 struct _Old_Edje_Image_Directory
27 {
28    Eina_List *entries; /* a list of Edje_Image_Directory_Entry */
29    Eina_List *sets; /* a list of Edje_Image_Directory_Set */
30 };
31
32 struct _Old_Edje_External_Directory
33 {
34    Eina_List *entries; /* a list of Edje_External_Directory_Entry */
35 };
36
37 struct _Old_Edje_File
38 {
39    const char                     *path;
40    time_t                          mtime;
41
42    Old_Edje_External_Directory    *external_dir;
43    Old_Edje_Font_Directory        *font_dir;
44    Old_Edje_Image_Directory       *image_dir;
45    Edje_Part_Collection_Directory *collection_dir;
46    Eina_List                      *data;
47    Eina_List                      *styles;
48    Eina_List                      *color_classes;
49
50    const char                     *compiler;
51    int                             version;
52    int                             feature_ver;
53 };
54
55 struct _Old_Edje_Part_Collection
56 {
57    Eina_List *programs; /* a list of Edje_Program */
58    Eina_List *parts; /* a list of Edje_Part */
59    Eina_List *data;
60
61    int        id; /* the collection id */
62
63    Eina_Hash *alias; /* aliasing part*/
64
65    struct {
66       Edje_Size min, max;
67    } prop;
68
69    int        references;
70 #ifdef EDJE_PROGRAM_CACHE
71    struct {
72       Eina_Hash                   *no_matches;
73       Eina_Hash                   *matches;
74    } prog_cache;
75 #endif
76
77    Embryo_Program   *script; /* all the embryo script code for this group */
78    const char       *part;
79
80    unsigned char    script_only;
81
82    unsigned char    lua_script_only;
83
84    unsigned char    checked : 1;
85 };
86
87 struct _Old_Edje_Part
88 {
89    const char            *name; /* the name if any of the part */
90    Old_Edje_Part_Description *default_desc; /* the part descriptor for default */
91    Eina_List             *other_desc; /* other possible descriptors */
92    const char            *source, *source2, *source3, *source4, *source5, *source6;
93    int                    id; /* its id number */
94    int                    clip_to_id; /* the part id to clip this one to */
95    Edje_Part_Dragable     dragable;
96    Eina_List             *items; /* packed items for box and table */
97    unsigned char          type; /* what type (image, rect, text) */
98    unsigned char          effect; /* 0 = plain... */
99    unsigned char          mouse_events; /* it will affect/respond to mouse events */
100    unsigned char          repeat_events; /* it will repeat events to objects below */
101    Evas_Event_Flags       ignore_flags;
102    unsigned char          scale; /* should certain properties scale with edje scale factor? */
103    unsigned char          precise_is_inside;
104    unsigned char          use_alternate_font_metrics;
105    unsigned char          pointer_mode;
106    unsigned char          entry_mode;
107    unsigned char          select_mode;
108    unsigned char          multiline;
109    Edje_Part_Api          api;
110 };
111
112 struct _Old_Edje_Part_Description_Spec_Image
113 {
114    Eina_List     *tween_list; /* list of Edje_Part_Image_Id */
115    int            id; /* the image id to use */
116    int            scale_hint; /* evas scale hint */
117    Eina_Bool      set; /* if image condition it's content */
118
119    Edje_Part_Description_Spec_Border border;
120    Edje_Part_Description_Spec_Fill   fill;
121 };
122
123 struct _Old_Edje_Part_Description
124 {
125    Edje_Part_Description_Common common;
126    Old_Edje_Part_Description_Spec_Image image;
127    Edje_Part_Description_Spec_Text text;
128    Edje_Part_Description_Spec_Box box;
129    Edje_Part_Description_Spec_Table table;
130
131    Eina_List *external_params; /* parameters for external objects */
132 };
133
134 Edje_File *_edje_file_convert(Eet_File *file, Old_Edje_File *oedf);
135 Edje_Part_Collection *_edje_collection_convert(Edje_File *file,
136                                                Old_Edje_Part_Collection *oedc);
137 Edje_Part_Description_Common *_edje_description_convert(int type,
138                                                         Edje_Part_Collection_Directory_Entry *ce,
139                                                         Old_Edje_Part_Description *oed);
140 const Edje_File *_edje_file_get(void);
141 void _edje_file_set(const Edje_File *edf);
142
143 #endif