[ElmSharp] Fixed the crash issue because of Interop wrong usage
[platform/core/csapi/tizenfx.git] / src / ElmSharp / Interop / Interop.Elementary.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18 using System.Runtime.InteropServices;
19
20 internal static partial class Interop
21 {
22     internal static partial class Elementary
23     {
24         internal enum Edje_Message_Type
25         {
26             EDJE_MESSAGE_NONE = 0,
27
28             // A message with a string as value. Use #Edje_Message_String structs as message body, for this type.
29             EDJE_MESSAGE_STRING = 2,
30
31             // A message with an integer number as value. Use #Edje_Message_Int structs as message body, for this type.
32             EDJE_MESSAGE_INT = 3,
33
34             // A message with a floating pointer number as value. Use #Edje_Message_Float structs as message body, for this type.
35             EDJE_MESSAGE_FLOAT = 4,
36
37             // A message with a list of strings as value. Use #Edje_Message_String_Set structs as message body, for this type.
38             EDJE_MESSAGE_STRING_SET = 5,
39
40             // A message with a list of integer numbers as value. Use #Edje_Message_Int_Set structs as message body, for this type.
41             EDJE_MESSAGE_INT_SET = 6,
42
43             // A message with a list of floating point numbers as value. Use #Edje_Message_Float_Set structs as message body, for this type.
44             EDJE_MESSAGE_FLOAT_SET = 7,
45
46             // A message with a struct containing a string and an integer number as value. Use #Edje_Message_String_Int structs as message body, for this type.
47             EDJE_MESSAGE_STRING_INT = 8,
48
49             // A message with a struct containing a string and a floating point number as value. Use #Edje_Message_String_Float structs as message body, for this type.
50             EDJE_MESSAGE_STRING_FLOAT = 9,
51
52             // A message with a struct containing a string and list of integer numbers as value. Use #Edje_Message_String_Int_Set structs as message body, for this type.
53             EDJE_MESSAGE_STRING_INT_SET = 10,
54
55             // A message with a struct containing a string and list of floating point numbers as value. Use #Edje_Message_String_Float_Set structs as message body, for this type.
56             EDJE_MESSAGE_STRING_FLOAT_SET = 11
57         }
58         internal enum Elm_Focus_Autoscroll_Mode
59         {
60             ELM_FOCUS_AUTOSCROLL_MODE_SHOW,
61             ELM_FOCUS_AUTOSCROLL_MODE_NONE,
62             ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN
63         }
64
65         [DllImport(Libraries.Elementary)]
66         internal static extern void elm_config_scroll_bring_in_scroll_friction_set(double time);
67
68         [DllImport(Libraries.Elementary)]
69         internal static extern double elm_config_scroll_bring_in_scroll_friction_get();
70
71         [DllImport(Libraries.Elementary)]
72         internal static extern void elm_config_focus_autoscroll_mode_set(Elm_Focus_Autoscroll_Mode mode);
73
74         [DllImport(Libraries.Elementary)]
75         internal static extern Elm_Focus_Autoscroll_Mode elm_config_focus_autoscroll_mode_get();
76
77         [DllImport(Libraries.Elementary)]
78         internal static extern IntPtr elm_config_accel_preference_set(string preference);
79
80         [DllImport(Libraries.Elementary)]
81         internal static extern void elm_config_scale_set(double scale);
82
83         [DllImport(Libraries.Elementary)]
84         internal static extern double elm_config_scale_get();
85
86         [DllImport(Libraries.Elementary, EntryPoint = "elm_config_profile_get")]
87         internal static extern IntPtr _elm_config_profile_get();
88
89         internal static string elm_config_profile_get()
90         {
91             return Marshal.PtrToStringAnsi(_elm_config_profile_get());
92         }
93
94         [DllImport(Libraries.Elementary)]
95         internal static extern void elm_config_preferred_engine_set(string name);
96
97         [DllImport(Libraries.Elementary)]
98         internal static extern double elm_config_longpress_timeout_get();
99
100         [DllImport(Libraries.Elementary)]
101         internal static extern void elm_config_reload();
102
103         [DllImport(Libraries.Elementary)]
104         internal static extern void elm_config_all_flush();
105
106         [DllImport(Libraries.Elementary)]
107         internal static extern void elm_config_finger_size_set(int size);
108
109         [DllImport(Libraries.Elementary)]
110         internal static extern int elm_config_finger_size_get();
111
112         [DllImport(Libraries.Elementary)]
113         internal static extern bool elm_config_mirrored_get();
114
115         [DllImport(Libraries.Elementary)]
116         internal static extern void elm_config_mirrored_set(bool mirrored);
117
118         [DllImport(Libraries.Elementary)]
119         internal static extern bool elm_object_mirrored_automatic_get(IntPtr obj);
120
121         [DllImport(Libraries.Elementary)]
122         internal static extern void elm_object_mirrored_automatic_set(IntPtr obj, bool automatic);
123
124         [DllImport(Libraries.Elementary)]
125         internal static extern bool elm_object_mirrored_get(IntPtr obj);
126
127         [DllImport(Libraries.Elementary)]
128         internal static extern void elm_object_mirrored_set(IntPtr obj, bool mirrored);
129
130         [DllImport(Libraries.Elementary)]
131         internal static extern IntPtr elm_grid_add(IntPtr obj);
132
133         [DllImport(Libraries.Elementary)]
134         internal static extern void elm_grid_pack(IntPtr obj, IntPtr subObj, int x, int y, int w, int h);
135
136         [DllImport(Libraries.Elementary)]
137         internal static extern void elm_grid_pack_get(IntPtr subObj, out int x, out int y, out int w, out int h);
138
139         [DllImport(Libraries.Elementary)]
140         internal static extern void elm_grid_pack_set(IntPtr subObj, int x, int y, int w, int h);
141
142         [DllImport(Libraries.Elementary)]
143         internal static extern void elm_grid_size_set(IntPtr obj, int w, int h);
144
145         [DllImport(Libraries.Elementary)]
146         internal static extern void elm_object_tree_dump(IntPtr top);
147
148         [DllImport(Libraries.Elementary)]
149         internal static extern bool elm_object_disabled_get(IntPtr obj);
150
151         [DllImport(Libraries.Elementary)]
152         internal static extern void elm_object_disabled_set(IntPtr obj, bool disabled);
153
154         [DllImport(Libraries.Elementary)]
155         internal static extern void elm_init(int argc, string[] argv);
156
157         [DllImport(Libraries.Elementary)]
158         internal static extern bool ecore_main_loop_glib_integrate();
159
160         [DllImport(Libraries.Elementary)]
161         internal static extern void elm_run();
162
163         [DllImport(Libraries.Elementary)]
164         internal static extern void elm_exit();
165
166         [DllImport(Libraries.Elementary)]
167         internal static extern void elm_shutdown();
168
169         [DllImport(Libraries.Elementary)]
170         internal static extern void elm_app_base_scale_set(double base_scale);
171
172         [DllImport(Libraries.Elementary)]
173         internal static extern double elm_app_base_scale_get();
174
175         [DllImport(Libraries.Elementary)]
176         internal static extern IntPtr elm_conformant_add(IntPtr obj);
177
178         [DllImport(Libraries.Elementary, EntryPoint = "elm_object_part_text_get")]
179         internal static extern IntPtr _elm_object_part_text_get(IntPtr obj, IntPtr part);
180
181         [DllImport(Libraries.Elementary, EntryPoint = "elm_object_part_text_get")]
182         internal static extern IntPtr _elm_object_part_text_get(IntPtr obj, string part);
183
184         [DllImport(Libraries.Elementary)]
185         internal static extern void elm_object_tooltip_text_set(IntPtr obj, string text);
186
187         [DllImport(Libraries.Elementary)]
188         internal static extern void elm_object_tooltip_unset(IntPtr obj);
189
190         [DllImport(Libraries.Elementary, EntryPoint = "elm_object_tooltip_style_get")]
191         internal static extern IntPtr _elm_object_tooltip_style_get(IntPtr obj);
192
193         internal static string elm_object_tooltip_style_get(IntPtr obj)
194         {
195             return Marshal.PtrToStringAnsi(_elm_object_tooltip_style_get(obj));
196         }
197
198         [DllImport(Libraries.Elementary)]
199         internal static extern void elm_object_tooltip_style_set(IntPtr obj, string style);
200
201         [DllImport(Libraries.Elementary)]
202         internal static extern bool elm_object_tooltip_window_mode_get(IntPtr obj);
203
204         [DllImport(Libraries.Elementary)]
205         internal static extern bool elm_object_tooltip_window_mode_set(IntPtr obj, bool disable);
206
207         [DllImport(Libraries.Elementary)]
208         internal static extern void elm_object_tooltip_move_freeze_push(IntPtr obj);
209
210         [DllImport(Libraries.Elementary)]
211         internal static extern void elm_object_tooltip_move_freeze_pop(IntPtr obj);
212
213         [DllImport(Libraries.Elementary)]
214         internal static extern int elm_object_tooltip_move_freeze_get(IntPtr obj);
215
216         [DllImport(Libraries.Elementary)]
217         internal static extern void elm_object_tooltip_show(IntPtr obj);
218
219         [DllImport(Libraries.Elementary)]
220         internal static extern void elm_object_tooltip_hide(IntPtr obj);
221
222         [DllImport(Libraries.Elementary)]
223         internal static extern void elm_object_tooltip_orient_set(IntPtr obj, int orient);
224
225         [DllImport(Libraries.Elementary)]
226         internal static extern int elm_object_tooltip_orient_get(IntPtr obj);
227
228         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
229         internal delegate IntPtr Elm_Tooltip_Content_Cb(IntPtr data, IntPtr obj, IntPtr tooltip);
230
231         [DllImport(Libraries.Elementary)]
232         internal static extern void elm_object_tooltip_content_cb_set(IntPtr obj, Elm_Tooltip_Content_Cb func, IntPtr data, Interop.Evas.SmartCallback del);
233
234         internal static string elm_object_part_text_get(IntPtr obj, string part)
235         {
236             return Marshal.PtrToStringAnsi(_elm_object_part_text_get(obj, part));
237         }
238
239         internal static string elm_object_part_text_get(IntPtr obj)
240         {
241             return Marshal.PtrToStringAnsi(_elm_object_part_text_get(obj, IntPtr.Zero));
242         }
243
244         [DllImport(Libraries.Elementary)]
245         internal static extern IntPtr elm_object_part_content_get(IntPtr obj, string part);
246
247         [DllImport(Libraries.Elementary)]
248         internal static extern void elm_object_part_content_set(IntPtr obj, string part, IntPtr content);
249
250         [DllImport(Libraries.Elementary)]
251         internal static extern void elm_object_part_content_set(IntPtr obj, IntPtr part, IntPtr content);
252
253         internal static void elm_object_content_set(IntPtr obj, IntPtr content)
254         {
255             elm_object_part_content_set(obj, IntPtr.Zero, content);
256         }
257
258         [DllImport(Libraries.Elementary)]
259         internal static extern IntPtr elm_object_part_content_unset(IntPtr obj, string part);
260
261         internal static void elm_object_content_unset(IntPtr obj)
262         {
263             elm_object_part_content_unset(obj, null);
264         }
265
266         [DllImport(Libraries.Elementary)]
267         internal static extern IntPtr elm_layout_add(IntPtr obj);
268
269         [DllImport(Libraries.Elementary)]
270         internal static extern IntPtr elm_layout_content_get(IntPtr obj, string swallow);
271
272         [DllImport(Libraries.Elementary)]
273         internal static extern bool elm_layout_content_set(IntPtr obj, string swallow, IntPtr content);
274
275         [DllImport(Libraries.Elementary)]
276         internal static extern IntPtr elm_layout_content_unset(IntPtr obj, string swallow);
277
278         [DllImport(Libraries.Elementary)]
279         internal static extern bool elm_layout_text_set(IntPtr obj, string part, string text);
280
281         [DllImport(Libraries.Elementary, EntryPoint = "elm_layout_text_get")]
282         internal static extern IntPtr _elm_layout_text_get(IntPtr obj, string part);
283
284         internal static string elm_layout_text_get(IntPtr obj, string part)
285         {
286             return Marshal.PtrToStringAnsi(_elm_layout_text_get(obj, part));
287         }
288
289         [DllImport(Libraries.Elementary)]
290         internal static extern bool elm_layout_theme_set(IntPtr obj, string klass, string group, string style);
291
292         [DllImport(Libraries.Elementary)]
293         internal static extern void elm_layout_file_get(IntPtr obj, IntPtr file, IntPtr group);
294
295         [DllImport(Libraries.Elementary)]
296         internal static extern bool elm_layout_file_set(IntPtr obj, string file, string group);
297
298         [DllImport(Libraries.Elementary)]
299         internal static extern void elm_layout_signal_emit(IntPtr obj, string emission, string source);
300
301         [DllImport(Libraries.Elementary)]
302         internal static extern void elm_layout_signal_callback_add(IntPtr obj, string emission, string source, Edje_Signal_Cb func, IntPtr data);
303
304         [DllImport(Libraries.Elementary)]
305         internal static extern IntPtr elm_layout_signal_callback_del(IntPtr obj, string emission, string source, Edje_Signal_Cb func);
306
307         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
308         internal delegate void Edje_Signal_Cb(IntPtr data, IntPtr obj, string emission, string source);
309
310         [DllImport(Libraries.Elementary)]
311         internal static extern bool elm_layout_box_append(IntPtr obj, string part, IntPtr child);
312
313         [DllImport(Libraries.Elementary)]
314         internal static extern bool elm_layout_box_prepend(IntPtr obj, string part, IntPtr child);
315
316         [DllImport(Libraries.Elementary)]
317         internal static extern IntPtr elm_layout_box_remove(IntPtr obj, string part, IntPtr child);
318
319         [DllImport(Libraries.Elementary)]
320         internal static extern bool elm_layout_box_remove_all(IntPtr obj, string part, bool clear);
321
322         [DllImport(Libraries.Elementary, EntryPoint = "elm_layout_data_get")]
323         internal static extern IntPtr _elm_layout_data_get(IntPtr obj, string key);
324
325         internal static string elm_layout_data_get(IntPtr obj, string key)
326         {
327             return Marshal.PtrToStringAnsi(_elm_layout_data_get(obj, key));
328         }
329
330         [DllImport(Libraries.Elementary)]
331         internal static extern void elm_layout_text_valign_set(IntPtr obj, string part, double valign);
332
333         [DllImport(Libraries.Elementary)]
334         internal static extern double elm_layout_text_valign_get(IntPtr obj, string part);
335
336         [DllImport(Libraries.Elementary)]
337         internal static extern IntPtr elm_notify_add(IntPtr obj);
338
339         [DllImport(Libraries.Elementary)]
340         internal static extern void elm_notify_align_set(IntPtr obj, double horizontal, double vertical);
341
342         [DllImport(Libraries.Elementary)]
343         internal static extern void elm_notify_timeout_set(IntPtr obj, double timeout);
344
345         [DllImport(Libraries.Elementary)]
346         internal static extern double elm_object_scale_get(IntPtr obj);
347
348         [DllImport(Libraries.Elementary)]
349         internal static extern void elm_object_scale_set(IntPtr obj, double scale);
350
351         [DllImport(Libraries.Elementary)]
352         internal static extern void elm_object_signal_emit(IntPtr obj, string emission, string source);
353
354         [DllImport(Libraries.Elementary)]
355         internal static extern IntPtr elm_object_signal_callback_del(IntPtr obj, string emission, string source, Edje_Signal_Cb func);
356
357         [DllImport(Libraries.Elementary)]
358         internal static extern void elm_object_signal_callback_add(IntPtr obj, string emission, string source, Edje_Signal_Cb func, IntPtr data);
359
360         [DllImport(Libraries.Elementary)]
361         internal static extern bool elm_object_style_set(IntPtr obj, string style);
362
363         [DllImport(Libraries.Elementary, EntryPoint = "elm_object_style_get")]
364         internal static extern IntPtr _elm_object_style_get(IntPtr obj);
365
366         internal static string elm_object_style_get(IntPtr obj)
367         {
368             return Marshal.PtrToStringAnsi(_elm_object_style_get(obj));
369         }
370
371         [DllImport(Libraries.Elementary)]
372         internal static extern void elm_object_color_class_color_get(IntPtr obj, string colorClass, out int r, out int g, out int b, out int a);
373
374         [DllImport(Libraries.Elementary)]
375         internal static extern void elm_object_color_class_color_set(IntPtr obj, string colorClass, int r, int g, int b, int a);
376
377         [DllImport(Libraries.Elementary)]
378         internal static extern void elm_object_part_text_set(IntPtr obj, string part, string text);
379
380         [DllImport(Libraries.Elementary)]
381         internal static extern void elm_object_part_text_set(IntPtr obj, IntPtr part, string text);
382
383         [DllImport(Libraries.Elementary)]
384         internal static extern void elm_config_focus_highlight_animate_set(bool animate);
385
386         [DllImport(Libraries.Elementary)]
387         internal static extern bool elm_config_focus_highlight_animate_get();
388
389         [DllImport(Libraries.Elementary)]
390         internal static extern void elm_config_focus_highlight_enabled_set(bool enable);
391
392         [DllImport(Libraries.Elementary)]
393         internal static extern bool elm_config_focus_highlight_enabled_get();
394
395         [DllImport(Libraries.Elementary)]
396         internal static extern void elm_object_tree_focus_allow_set(IntPtr obj, bool focusable);
397
398         [DllImport(Libraries.Elementary)]
399         internal static extern bool elm_object_tree_focus_allow_get(IntPtr obj);
400
401         [DllImport(Libraries.Elementary)]
402         internal static extern IntPtr elm_object_focus_next_object_get(IntPtr obj, int dir);
403
404         [DllImport(Libraries.Elementary)]
405         internal static extern IntPtr elm_object_focused_object_get(IntPtr obj);
406
407         [DllImport(Libraries.Elementary)]
408         internal static extern bool elm_object_focus_get(IntPtr obj);
409
410         [DllImport(Libraries.Elementary)]
411         internal static extern void elm_object_focus_set(IntPtr obj, bool focus);
412
413         [DllImport(Libraries.Elementary)]
414         internal static extern bool elm_object_focus_allow_get(IntPtr obj);
415
416         [DllImport(Libraries.Elementary)]
417         internal static extern void elm_object_focus_allow_set(IntPtr obj, bool enable);
418
419         [DllImport(Libraries.Elementary)]
420         internal static extern void elm_object_focus_next(IntPtr obj, int direction);
421
422         [DllImport(Libraries.Elementary)]
423         internal static extern void elm_object_focus_next_object_set(IntPtr obj, IntPtr next, int direction);
424
425         [DllImport(Libraries.Elementary)]
426         internal static extern void elm_object_focus_next_item_set(IntPtr obj, IntPtr nextItem, int direction);
427
428         [DllImport(Libraries.Elementary)]
429         internal static extern void elm_theme_extension_add(IntPtr theme, string path);
430
431         [DllImport(Libraries.Elementary)]
432         internal static extern void elm_theme_overlay_add(IntPtr theme, string path);
433
434         [DllImport(Libraries.Elementary)]
435         internal static extern void elm_language_set(string lang);
436
437         [DllImport(Libraries.Elementary)]
438         internal static extern bool elm_policy_set(uint policy, int value);
439
440         [DllImport(Libraries.Elementary)]
441         internal static extern IntPtr elm_theme_new();
442
443         [DllImport(Libraries.Elementary)]
444         internal static extern void elm_theme_free(IntPtr theme);
445
446         [DllImport(Libraries.Elementary)]
447         internal static extern void elm_theme_ref_set(IntPtr theme, IntPtr themeRef);
448
449         [DllImport(Libraries.Elementary)]
450         internal static extern void elm_theme_extension_del(IntPtr theme, string item);
451
452         [DllImport(Libraries.Elementary)]
453         internal static extern void elm_theme_overlay_del(IntPtr theme, string item);
454
455         [DllImport(Libraries.Elementary)]
456         internal static extern void elm_theme_set(IntPtr obj, string theme);
457
458         [DllImport(Libraries.Elementary)]
459         internal static extern void elm_theme_flush(IntPtr theme);
460
461         [DllImport(Libraries.Elementary)]
462         internal static extern void elm_theme_full_flush();
463
464         [DllImport(Libraries.Elementary)]
465         internal static extern void elm_object_theme_set(IntPtr obj, IntPtr theme);
466
467         [DllImport(Libraries.Elementary)]
468         internal static extern IntPtr elm_layout_edje_get(IntPtr obj);
469
470         internal static void SetObjectText(IntPtr obj, string text)
471         {
472             elm_object_part_text_set(obj, IntPtr.Zero, text);
473         }
474
475         [DllImport(Libraries.Elementary)]
476         internal static extern void elm_cache_all_flush();
477
478         [DllImport(Libraries.Elementary)]
479         internal static extern void elm_object_domain_translatable_part_text_set(IntPtr obj, string part, string domain, string text);
480
481         [DllImport(Libraries.Elementary)]
482         internal static extern void edje_object_color_class_del(IntPtr obj, string colorClass);
483
484         [DllImport(Libraries.Elementary)]
485         internal static extern bool edje_object_part_exists(IntPtr obj, string part);
486
487         [DllImport(Libraries.Elementary)]
488         internal static extern IntPtr edje_object_part_object_get(IntPtr obj, string part);
489
490         [DllImport(Libraries.Elementary)]
491         internal static extern bool edje_object_part_geometry_get(IntPtr obj, string part, out int x, out int y, out int w, out int h);
492
493         [DllImport(Libraries.Elementary)]
494         internal static extern bool edje_object_part_text_set(IntPtr obj, string part, string text);
495
496         [DllImport(Libraries.Elementary, EntryPoint = "edje_object_part_text_get", CharSet = CharSet.Ansi)]
497         internal static extern IntPtr _edje_object_part_text_get(IntPtr obj, string part);
498
499         internal static string edje_object_part_text_get(IntPtr obj, string part)
500         {
501             var text = _edje_object_part_text_get(obj, part);
502             return Marshal.PtrToStringAnsi(text);
503         }
504
505         [DllImport(Libraries.Elementary, EntryPoint = "edje_object_part_text_style_user_peek", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
506         internal static extern IntPtr _edje_object_part_text_style_user_peek(IntPtr obj, string part);
507
508         internal static string edje_object_part_text_style_user_peek(IntPtr obj, string part)
509         {
510             var text = _edje_object_part_text_style_user_peek(obj, part);
511             return Marshal.PtrToStringAnsi(text);
512         }
513
514         [DllImport(Libraries.Elementary)]
515         internal static extern void edje_object_part_text_style_user_push(IntPtr obj, string part, string style);
516
517         [DllImport(Libraries.Elementary)]
518         internal static extern void edje_object_part_text_style_user_pop(IntPtr obj, string part);
519
520         [DllImport(Libraries.Elementary)]
521         internal static extern void edje_object_signal_emit(IntPtr obj, string emission, string source);
522
523         [DllImport(Libraries.Elementary)]
524         internal static extern void edje_object_mirrored_set(IntPtr obj, bool rtl);
525
526         [DllImport(Libraries.Elementary)]
527         internal static extern IntPtr edje_object_add(IntPtr evas);
528
529         [DllImport(Libraries.Elementary)]
530         internal static extern bool edje_object_file_set(IntPtr obj, string file, string group);
531
532         [DllImport(Libraries.Elementary)]
533         internal static extern bool edje_object_part_box_append(IntPtr obj, string part, IntPtr child);
534
535         [DllImport(Libraries.Elementary)]
536         internal static extern bool edje_object_part_box_prepend(IntPtr obj, string part, IntPtr child);
537
538         [DllImport(Libraries.Elementary, EntryPoint = "edje_object_part_state_get")]
539         internal static extern IntPtr _edje_object_part_state_get(IntPtr obj, string part, out double value);
540
541         internal static string edje_object_part_state_get(IntPtr obj, string part, out double value)
542         {
543             return Marshal.PtrToStringAnsi(_edje_object_part_state_get(obj, part, out value));
544         }
545
546         [DllImport(Libraries.Elementary)]
547         internal static extern void edje_object_signal_callback_add(IntPtr obj, string emission, string source, Edje_Signal_Cb func, IntPtr data);
548
549         [DllImport(Libraries.Elementary)]
550         internal static extern IntPtr edje_object_signal_callback_del(IntPtr obj, string emission, string source, Edje_Signal_Cb func);
551
552         [DllImport(Libraries.Elementary)]
553         internal static extern void edje_object_signal_callback_del_full(IntPtr obj, string emission, string source, Edje_Signal_Cb func, IntPtr data);
554
555         [DllImport(Libraries.Elementary)]
556         internal static extern bool edje_color_class_set(string colorClass, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
557
558         [DllImport(Libraries.Elementary)]
559         internal static extern bool edje_color_class_get(string colorClass, out int r, out int g, out int b, out int a, out int r2, out int g2, out int b2, out int a2,
560             out int r3, out int g3, out int b3, out int a3);
561
562         [DllImport(Libraries.Elementary)]
563         internal static extern bool edje_object_color_class_set(IntPtr obj, string colorClass, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
564
565         [DllImport(Libraries.Elementary)]
566         internal static extern bool edje_object_color_class_get(IntPtr obj, string colorClass, out int r, out int g, out int b, out int a, out int r2, out int g2, out int b2, out int a2,
567             out int r3, out int g3, out int b3, out int a3);
568
569         [DllImport(Libraries.Elementary)]
570         internal static extern void edje_message_signal_process();
571
572         [DllImport(Libraries.Elementary)]
573         internal static extern void edje_object_message_handler_set(IntPtr obj, Edje_Message_Handler_Cb func, IntPtr data);
574
575         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
576         internal delegate void Edje_Message_Handler_Cb(IntPtr data, IntPtr obj, Edje_Message_Type type, int id, IntPtr msg);
577
578         [DllImport(Libraries.Elementary)]
579         internal static extern void edje_object_message_send(IntPtr obj, Edje_Message_Type type, int id, IntPtr msg);
580
581         [DllImport(Libraries.Elementary)]
582         internal static extern void edje_object_message_signal_process(IntPtr obj);
583
584         [DllImport(Libraries.Elementary)]
585         internal static extern bool edje_object_text_class_set(IntPtr obj, string textClass, string font, int size);
586
587         [DllImport(Libraries.Elementary, EntryPoint = "edje_object_text_class_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
588         internal static extern bool _edje_object_text_class_get(IntPtr obj, string textClass, out IntPtr font, out int size);
589         internal static bool edje_object_text_class_get(IntPtr obj, string textClass, out string font, out int size)
590         {
591             IntPtr _font;
592             var ret = _edje_object_text_class_get(obj, textClass, out _font, out size);
593             font = Marshal.PtrToStringAnsi(_font);
594             return ret;
595         }
596
597         [DllImport(Libraries.Elementary)]
598         internal static extern bool edje_text_class_set(string textClass, string font, int size);
599
600         [DllImport(Libraries.Elementary, EntryPoint = "edje_text_class_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
601         internal static extern bool _edje_text_class_get(string textClass, out IntPtr font, out int size);
602         internal static bool edje_text_class_get(string textClass, out string font, out int size)
603         {
604             IntPtr _font;
605             var ret = _edje_text_class_get(textClass, out _font, out size);
606             font = Marshal.PtrToStringAnsi(_font);
607             return ret;
608         }
609
610         [DllImport(Libraries.Elementary)]
611         internal static extern void edje_text_class_del(string textClass);
612
613         [DllImport(Libraries.Elementary)]
614         internal static extern IntPtr elm_transit_add();
615
616         [DllImport(Libraries.Elementary)]
617         internal static extern void elm_transit_del(IntPtr transit);
618
619         [DllImport(Libraries.Elementary)]
620         internal static extern void elm_transit_object_add(IntPtr transit, IntPtr obj);
621
622         [DllImport(Libraries.Elementary)]
623         internal static extern IntPtr elm_transit_effect_translation_add(IntPtr transit, int fromDx, int fromDy, int toDx, int toDy);
624
625         [DllImport(Libraries.Elementary)]
626         internal static extern void elm_transit_objects_final_state_keep_set(IntPtr transit, bool stateKeep);
627
628         [DllImport(Libraries.Elementary)]
629         internal static extern void elm_transit_tween_mode_set(IntPtr transit, int tweenMode);
630
631         [DllImport(Libraries.Elementary)]
632         internal static extern void elm_transit_repeat_times_set(IntPtr transit, int repeat);
633
634         [DllImport(Libraries.Elementary)]
635         internal static extern void elm_transit_duration_set(IntPtr transit, double duration);
636
637         [DllImport(Libraries.Elementary)]
638         internal static extern void elm_transit_go(IntPtr transit);
639
640         [DllImport(Libraries.Elementary)]
641         internal static extern IntPtr elm_transit_effect_zoom_add(IntPtr transit, float fromRate, float toRate);
642
643         [DllImport(Libraries.Elementary)]
644         internal static extern IntPtr elm_transit_effect_color_add(IntPtr transit, int fromR, int fromG, int fromB, int fromA, int toR, int toG, int toB, int toA);
645
646         [DllImport(Libraries.Elementary)]
647         internal static extern void elm_transit_auto_reverse_set(IntPtr transit, bool reverse);
648
649         [DllImport(Libraries.Elementary)]
650         internal static extern void elm_transit_effect_add(IntPtr transit, Elm_Transit_Effect_Transition_Cb transitionCb, IntPtr effect, Elm_Transit_Effect_End_Cb endCb);
651
652         [DllImport(Libraries.Elementary)]
653         internal static extern IntPtr elm_transit_effect_fade_add(IntPtr transit);
654
655         [DllImport(Libraries.Elementary)]
656         internal static extern IntPtr elm_transit_effect_resizing_add(IntPtr transit, int fromW, int fromH, int toW, int toH);
657
658         [DllImport(Libraries.Elementary)]
659         internal static extern void elm_transit_event_enabled_set(IntPtr transit, bool enabled);
660
661         [DllImport(Libraries.Elementary)]
662         internal static extern void elm_transit_smooth_set(IntPtr transit, bool enabled);
663
664         [DllImport(Libraries.Elementary)]
665         internal static extern void elm_transit_effect_del(IntPtr transit, Elm_Transit_Effect_Transition_Cb transitionCb, IntPtr effect);
666
667         [DllImport(Libraries.Elementary)]
668         internal static extern void elm_transit_object_remove(IntPtr transit, IntPtr obj);
669
670         [DllImport(Libraries.Elementary)]
671         internal static extern bool elm_transit_objects_final_state_keep_get(IntPtr transit);
672
673         [DllImport(Libraries.Elementary)]
674         internal static extern bool elm_transit_event_enabled_get(IntPtr transit);
675
676         [DllImport(Libraries.Elementary)]
677         internal static extern void elm_transit_del_cb_set(IntPtr transit, Elm_Transit_Del_Cb cb, IntPtr data);
678
679         [DllImport(Libraries.Elementary)]
680         internal static extern bool elm_transit_auto_reverse_get(IntPtr transit);
681
682         [DllImport(Libraries.Elementary)]
683         internal static extern int elm_transit_repeat_times_get(IntPtr transit);
684
685         [DllImport(Libraries.Elementary)]
686         internal static extern int elm_transit_tween_mode_get(IntPtr transit);
687
688         [DllImport(Libraries.Elementary)]
689         internal static extern void elm_transit_tween_mode_factor_set(IntPtr transit, double v1, double v2);
690
691         [DllImport(Libraries.Elementary)]
692         internal static extern void elm_transit_tween_mode_factor_get(IntPtr transit, out double v1, out double v2);
693
694         [DllImport(Libraries.Elementary)]
695         internal static extern void elm_transit_tween_mode_factor_n_set(IntPtr transit, int vSize, out double v);
696
697         [DllImport(Libraries.Elementary)]
698         internal static extern double elm_transit_duration_get(IntPtr transit);
699
700         [DllImport(Libraries.Elementary)]
701         internal static extern void elm_transit_go_in(IntPtr transit, double interval);
702
703         [DllImport(Libraries.Elementary)]
704         internal static extern void elm_transit_paused_set(IntPtr transit, bool paused);
705
706         [DllImport(Libraries.Elementary)]
707         internal static extern bool elm_transit_paused_get(IntPtr transit);
708
709         [DllImport(Libraries.Elementary)]
710         internal static extern double elm_transit_progress_value_get(IntPtr transit);
711
712         [DllImport(Libraries.Elementary)]
713         internal static extern void elm_transit_chain_transit_add(IntPtr transit, IntPtr chainTransit);
714
715         [DllImport(Libraries.Elementary)]
716         internal static extern void elm_transit_chain_transit_del(IntPtr transit, IntPtr chainTransit);
717
718         [DllImport(Libraries.Elementary)]
719         internal static extern IntPtr elm_transit_chain_transits_get(IntPtr transit);
720
721         [DllImport(Libraries.Elementary)]
722         internal static extern bool elm_transit_smooth_get(IntPtr transit);
723
724         [DllImport(Libraries.Elementary)]
725         internal static extern IntPtr elm_transit_effect_flip_add(IntPtr transit, int axis, bool cw);
726
727         [DllImport(Libraries.Elementary)]
728         internal static extern IntPtr elm_transit_effect_resizable_flip_add(IntPtr transit, int axis, bool cw);
729
730         [DllImport(Libraries.Elementary)]
731         internal static extern IntPtr elm_transit_effect_wipe_add(IntPtr transit, int type, int dir);
732
733         [DllImport(Libraries.Elementary)]
734         internal static extern IntPtr elm_transit_effect_blend_add(IntPtr transit);
735
736         [DllImport(Libraries.Elementary)]
737         internal static extern IntPtr elm_transit_effect_rotation_add(IntPtr transit, float fromDegree, float toDegree);
738
739         [DllImport(Libraries.Elementary)]
740         internal static extern IntPtr elm_transit_effect_image_animation_add(IntPtr transit, IntPtr images);
741
742         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
743         internal delegate int Eina_Compare_Cb(IntPtr data1, IntPtr data2);
744
745         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
746         internal delegate void Elm_Transit_Effect_Transition_Cb(IntPtr effect, IntPtr transit, double progress);
747
748         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
749         internal delegate void Elm_Transit_Effect_End_Cb(IntPtr effect, IntPtr transit);
750
751         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
752         internal delegate void Elm_Transit_Del_Cb(IntPtr data, IntPtr transit);
753
754         [DllImport(Libraries.Elementary)]
755         internal static extern bool elm_layout_box_insert_at(IntPtr obj, string part, IntPtr child, uint pos);
756
757         [DllImport(Libraries.Elementary)]
758         internal static extern bool elm_layout_box_insert_before(IntPtr obj, string part, IntPtr child, IntPtr reference);
759
760         [DllImport(Libraries.Elementary)]
761         internal static extern bool elm_layout_edje_object_can_access_get(IntPtr obj);
762
763         [DllImport(Libraries.Elementary)]
764         internal static extern bool elm_layout_edje_object_can_access_set(IntPtr obj, bool canAccess);
765
766         [DllImport(Libraries.Elementary)]
767         internal static extern int elm_layout_freeze(IntPtr obj);
768
769         [DllImport(Libraries.Elementary)]
770         internal static extern bool elm_layout_part_cursor_engine_only_get(IntPtr obj, string part);
771
772         [DllImport(Libraries.Elementary)]
773         internal static extern bool elm_layout_part_cursor_engine_only_set(IntPtr obj, string part, bool engineOnly);
774
775         [DllImport(Libraries.Elementary, EntryPoint = "elm_layout_part_cursor_get")]
776         internal static extern IntPtr _elm_layout_part_cursor_get(IntPtr obj, string part);
777
778         internal static string elm_layout_part_cursor_get(IntPtr obj, string part)
779         {
780             return Marshal.PtrToStringAnsi(_elm_layout_part_cursor_get(obj, part));
781         }
782
783         [DllImport(Libraries.Elementary)]
784         internal static extern bool elm_layout_part_cursor_set(IntPtr obj, string part, string cursor);
785
786         [DllImport(Libraries.Elementary, EntryPoint = "elm_layout_part_cursor_style_get")]
787         internal static extern IntPtr _elm_layout_part_cursor_style_get(IntPtr obj, string part);
788
789         internal static string elm_layout_part_cursor_style_get(IntPtr obj, string part)
790         {
791             return Marshal.PtrToStringAnsi(_elm_layout_part_cursor_style_get(obj, part));
792         }
793
794         [DllImport(Libraries.Elementary)]
795         internal static extern bool elm_layout_part_cursor_style_set(IntPtr obj, string part, string style);
796
797         [DllImport(Libraries.Elementary)]
798         internal static extern bool elm_layout_part_cursor_unset(IntPtr obj, string part);
799
800         [DllImport(Libraries.Elementary)]
801         internal static extern void elm_layout_sizing_eval(IntPtr obj);
802
803         [DllImport(Libraries.Elementary)]
804         internal static extern void elm_layout_sizing_restricted_eval(IntPtr obj, bool width, bool height);
805
806         [DllImport(Libraries.Elementary)]
807         internal static extern int elm_layout_thaw(IntPtr obj);
808     }
809 }