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