summaryrefslogtreecommitdiff
path: root/data/edje/include/edje.inc
blob: 5fc9ec2b3f91f711e6b4a8065da68a53612cac3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
/* Edje exported calls */

/************************************************/
/* Basic data storage/retrieval (it's explicit) */
/************************************************/
/* Example:
 * 
 * In the "global" script section of a group:
 * 
 * script {
 *   public global_value1;
 *   public global_value2;
 *   public global_value3;
 * }
 * 
 * In the program script sections, OR in any global functions/routines:
 * ( several examples of setting/getting values)
 * 
 * set_int(global_value1, 7);
 * set_float(global_value2, 42.0);
 * set_str(global_value3, "I am a smelly fish!");
 * new value1 = get_int(global_value1);
 * new Float:value2 = get_float(global_value2);
 * new value3[100]; get_str(global_value3, value3, 100);
 * set_int(global_value1, value1);
 * set_float(global_value2, value2);
 * set_str(global_value3, value3);
 */
native       get_int   (id);
native       set_int   (id, val);
native Float:get_float (id);
native       set_float (id, Float:val);
native       get_strlen(id);
native       get_str   (id, dst[], maxlen);
native       set_str   (id, str[]);

/********************/
/* Edje list calls */
/********************/
native       count      (id);
native       remove     (id, n);
native       append_int (id, v);
native       prepend_int(id, v);
native       insert_int (id, pos, v);
native       replace_int (id, pos, v);
native       fetch_int  (id, pos);
native       append_str (id, str[]);
native       prepend_str(id, str[]);
native       insert_str (id, pos, str[]);
native       replace_str(id, pos, str[]);
native       fetch_str  (id, pos, dst[], maxlen);
native       append_float (id, Float:v);
native       prepend_float(id, Float:v);
native       insert_float (id, pos, Float:v);
native       replace_float(id, pos, Float:v);
native Float:fetch_float  (id, pos);

/********************/
/* Edje timer calls */
/********************/
native       timer       (Float:in, fname[], val);
native       cancel_timer(id);

/*******************/
/* Edje anim calls */
/*******************/
native       anim       (Float:len, fname[], val);
native       cancel_anim(id);

/***********************************************************/
/* Edje utility calls for dealing with edjes/programs etc. */
/***********************************************************/
/* Example:
 * 
 * emit("this_thing", "clicked");
 * emit("state", "playing");
 * 
 * set_state(PART:"logo", "glowing", 0.0);
 * set_state(PART:"button", "default", 0.0);
 * 
 * set_tween_state(PART:"button", 0.5, "default", 0.0, "clicked", 0.0);
 * 
 * run_program(PROGRAM:"program_name");
 */
native       emit             (sig[], src[]);
native       get_part_id      (part[]);
native       get_image_id      (image[]);
native       get_program_id   (program[]);
native       set_state        (part_id, state[], Float:state_val);
native       get_state        (part_id, dst[], maxlen, &Float:val);
native       set_tween_state  (part_id, Float:tween, state1[], Float:state1_val, state2[], Float:state2_val);
native       run_program      (program_id);
native       get_drag_dir     (part_id);
native       get_drag         (part_id, &Float:dx, &Float:dy);
native       set_drag         (part_id, Float:dx, Float:dy);
native       get_drag_size    (part_id, &Float:dx, &Float:dy);
native       set_drag_size    (part_id, Float:dx, Float:dy);
native       get_drag_step    (part_id, &Float:dx, &Float:dy);
native       set_drag_step    (part_id, Float:dx, Float:dy);
native       get_drag_page    (part_id, &Float:dx, &Float:dy);
native       set_drag_page    (part_id, Float:dx, Float:dy);
native       set_text         (part_id, str[]);
native       get_text         (part_id, dst[], maxlen);
native       get_min_size     (&w, &h);
native       get_max_size     (&w, &h);
native       get_color_class  (class[], &r, &g, &b, &a);
native       set_color_class  (class[], r, g, b, a);
native       set_text_class   (class[], font[], Float:size);
native       get_text_class   (class[], font[], &Float:size);
native       get_geometry     (part_id, &x, &y, &w, &h);
native       get_mouse        (&x, &y);
native       get_mouse_buttons();
native       stop_program     (program_id);
native       stop_programs_on (part_id);
native       set_min_size     (Float:w, Float:h);
native       set_max_size     (Float:w, Float:h);
native       part_swallow     (part_id, GROUP:str[]);

native       external_param_get_int(id, param_name[]);
native       external_param_set_int(id, param_name[], value);
native Float:external_param_get_float(id, param_name[]);
native       external_param_set_float(id, param_name[], Float:value);
native       external_param_get_strlen(id, param_name[]);
native       external_param_get_str(id, param_name[], value[], value_maxlen);
native       external_param_set_str(id, param_name[], value[]);
native       external_param_get_choice_len(id, param_name[]);
native       external_param_get_choice(id, param_name[], value[], value_maxlen);
native       external_param_set_choice(id, param_name[], value[]);
native       external_param_get_bool(id, param_name[]);
native       external_param_set_bool(id, param_name[], value);

enum Msg_Type
{
   MSG_NONE = 0,
     MSG_STRING = 2,
     MSG_INT = 3,
     MSG_FLOAT = 4,
     MSG_STRING_SET = 5,
     MSG_INT_SET = 6,
     MSG_FLOAT_SET = 7,
     MSG_STRING_INT = 8,
     MSG_STRING_FLOAT = 9,
     MSG_STRING_INT_SET = 10,
     MSG_STRING_FLOAT_SET = 11
};

native send_message(Msg_Type:type, id, ...);

/**********************/
/* Custom state calls */
/**********************/

/* Example:
 *
 * Create the custom state for "my_part", based on the
 * default description of the same part:
 *
 * custom_state(PART:"my_part", "default", 0.0);
 *
 * Later, use set_state_val() to change the properties of the custom
 * state:
 *
 * set_state_val(PART:"my_part", STATE_ALIGNMENT, 0.5, 0.5);
 *
 * get_state_val() works the same way.
 */

native custom_state(part_id, state[], Float:state_val = 0.0);

enum State_Param
{
	STATE_ALIGNMENT = 1,
	STATE_MIN = 2,
	STATE_MAX = 3,
	STATE_STEP = 4,
	STATE_ASPECT = 5,
	STATE_ASPECT_PREF = 6,
	STATE_COLOR = 7,
	STATE_COLOR2 = 8,
	STATE_COLOR3 = 9,
	STATE_COLOR_CLASS = 10,
	STATE_REL1 = 11,
	STATE_REL1_TO = 12,
	STATE_REL1_OFFSET = 13,
	STATE_REL2 = 14,
	STATE_REL2_TO = 15,
	STATE_REL2_OFFSET = 16,
	STATE_IMAGE = 17,
	STATE_BORDER = 18,
	STATE_FILL_SMOOTH = 19,
	STATE_FILL_POS = 20,
	STATE_FILL_SIZE = 21,
	STATE_TEXT = 22,
	STATE_TEXT_CLASS = 23,
	STATE_TEXT_FONT = 24,
	STATE_TEXT_STYLE = 25,
	STATE_TEXT_SIZE = 26,
	STATE_TEXT_FIT = 27,
	STATE_TEXT_MIN = 28,
	STATE_TEXT_MAX = 29,
	STATE_TEXT_ALIGN = 30,
	STATE_VISIBLE = 31,
	STATE_MAP_ON = 32,
	STATE_MAP_PERSP = 33,
	STATE_MAP_LIGHT = 34,
	STATE_MAP_ROT_CENTER = 35,
	STATE_MAP_ROT_X = 36,
	STATE_MAP_ROT_Y = 37,
	STATE_MAP_ROT_Z = 38,
	STATE_MAP_BACK_CULL = 39,
	STATE_MAP_PERSP_ON = 40,
	STATE_PERSP_ZPLANE = 41,
	STATE_PERSP_FOCAL = 42,
	STATE_PHYSICS_MASS = 43,
	STATE_PHYSICS_FRICTION = 44,
	STATE_PHYSICS_RESTITUTION = 45,
	STATE_PHYSICS_DAMPING = 46,
	STATE_PHYSICS_SLEEP = 47,
	STATE_PHYSICS_MATERIAL = 48,
	STATE_PHYSICS_DENSITY = 49,
	STATE_PHYSICS_IGNORE_PART_POS = 50,
	STATE_PHYSICS_LIGHT_ON = 51,
	STATE_PHYSICS_HARDNESS = 52,
	STATE_PHYSICS_MOV_FREEDOM_LIN = 53,
	STATE_PHYSICS_MOV_FREEDOM_ANG = 54,
	STATE_PHYSICS_BACK_CULL = 55,
	STATE_PHYSICS_Z = 56,
	STATE_PHYSICS_DEPTH = 57
};

native set_state_val(part_id, State_Param:p, ...);
native get_state_val(part_id, State_Param:p, ...);

/* Multisense */
native       play_sample      (sample_name[], Float:speed);
native       play_tone        (tone_name[], Float:duration);

/***********************************************************/
/* Edje physics calls.                                     */
/***********************************************************/
/* Example:
 *
 * physics_impulse(PART:"logo", 0, 50.8, 0);
 * physics_torque_impulse(PART:"logo", 0, 0, 3.4);
 *
 * physics_force(PART:"logo", 0, 240, 0);
 * physics_torque(PART:"logo", 0, 0, 2.2);
 * physics_clear_forces(PART:"logo");
 *
 * physics_set_velocity(PART:"logo", 40.5, 0, 0);
 * physics_set_ang_velocity(PART:"logo", 0, 0, -3);
 * physics_stop(PART:"logo");
 *
 * physics_set_rotation(PART:"logo", 0.707, 0, 0, 0.707);
 */
native       physics_impulse          (part_id, Float:x, Float:y, Float:z);
native       physics_torque_impulse   (part_id, Float:x, Float:y, Float:z);

native       physics_torque           (part_id, Float:x, Float:y, Float:z);
native       physics_get_torques      (part_id, &Float:x, &Float:y, &Float:z);
native       physics_force            (part_id, Float:x, Float:y, Float:z);
native       physics_get_forces       (part_id, &Float:x, &Float:y, &Float:z);
native       physics_clear_forces     (part_id);

native       physics_set_velocity     (part_id, Float:x, Float:y, Float:z);
native       physics_get_velocity     (part_id, &Float:x, &Float:y, &Float:z);
native       physics_set_ang_velocity (part_id, Float:x, Float:y, Float:z);
native       physics_get_ang_velocity (part_id, &Float:x, &Float:y, &Float:z);
native       physics_stop             (part_id);

native       physics_set_rotation     (part_id, Float:w, Float:x, Float:y, Float:z);
native       physics_get_rotation     (part_id, &Float:w, &Float:x, &Float:y, &Float:z);