summaryrefslogtreecommitdiff
path: root/ElmSharp/Interop/Interop.Elementary.cs
blob: e592713d5844fab91a0960d4e838159813b0af5d (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
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
/*
 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
 *
 * Licensed under the Apache License, Version 2.0 (the License);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

using System;
using System.Runtime.InteropServices;

internal static partial class Interop
{
    internal static partial class Elementary
    {
        internal enum Edje_Message_Type
        {
            EDJE_MESSAGE_NONE = 0,

            // A message with a string as value. Use #Edje_Message_String structs as message body, for this type.
            EDJE_MESSAGE_STRING = 2,

            // A message with an integer number as value. Use #Edje_Message_Int structs as message body, for this type.
            EDJE_MESSAGE_INT = 3,

            // A message with a floating pointer number as value. Use #Edje_Message_Float structs as message body, for this type.
            EDJE_MESSAGE_FLOAT = 4,

            // A message with a list of strings as value. Use #Edje_Message_String_Set structs as message body, for this type.
            EDJE_MESSAGE_STRING_SET = 5,

            // A message with a list of integer numbers as value. Use #Edje_Message_Int_Set structs as message body, for this type.
            EDJE_MESSAGE_INT_SET = 6,

            // A message with a list of floating point numbers as value. Use #Edje_Message_Float_Set structs as message body, for this type.
            EDJE_MESSAGE_FLOAT_SET = 7,

            // 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.
            EDJE_MESSAGE_STRING_INT = 8,

            // 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.
            EDJE_MESSAGE_STRING_FLOAT = 9,

            // 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.
            EDJE_MESSAGE_STRING_INT_SET = 10,

            // 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.
            EDJE_MESSAGE_STRING_FLOAT_SET = 11
        }

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_scroll_bring_in_scroll_friction_set(double time);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_config_scroll_bring_in_scroll_friction_get();

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_config_accel_preference_set(string preference);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_scale_set(double scale);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_config_scale_get();

        [DllImport(Libraries.Elementary)]
        internal static extern string elm_config_profile_get();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_preferred_engine_set(string name);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_config_longpress_timeout_get();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_reload();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_all_flush();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_finger_size_set(int size);

        [DllImport(Libraries.Elementary)]
        internal static extern int elm_config_finger_size_get();

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_config_mirrored_get();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_mirrored_set(bool mirrored);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_mirrored_automatic_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_mirrored_automatic_set(IntPtr obj, bool automatic);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_mirrored_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_mirrored_set(IntPtr obj, bool mirrored);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_grid_add(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_grid_pack(IntPtr obj, IntPtr subObj, int x, int y, int w, int h);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_grid_pack_get(IntPtr subObj, out int x, out int y, out int w, out int h);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_grid_pack_set(IntPtr subObj, int x, int y, int w, int h);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_grid_size_set(IntPtr obj, int w, int h);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tree_dump(IntPtr top);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_disabled_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_disabled_set(IntPtr obj, bool disabled);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_init(int argc, string[] argv);

        [DllImport(Libraries.Elementary)]
        internal static extern bool ecore_main_loop_glib_integrate();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_run();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_exit();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_shutdown();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_app_base_scale_set(double base_scale);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_app_base_scale_set();

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_conformant_add(IntPtr obj);

        [DllImport(Libraries.Elementary, EntryPoint = "elm_object_part_text_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
        internal static extern IntPtr _elm_object_part_text_get(IntPtr obj, IntPtr part);

        [DllImport(Libraries.Elementary, EntryPoint = "elm_object_part_text_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
        internal static extern IntPtr _elm_object_part_text_get(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_text_set(IntPtr obj, string text);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_unset(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern string elm_object_tooltip_style_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_style_set(IntPtr obj, string style);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_tooltip_window_mode_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_tooltip_window_mode_set(IntPtr obj, bool disable);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_move_freeze_push(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_move_freeze_pop(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern int elm_object_tooltip_move_freeze_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_show(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_hide(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_orient_set(IntPtr obj, int orient);

        [DllImport(Libraries.Elementary)]
        internal static extern int elm_object_tooltip_orient_get(IntPtr obj);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate IntPtr Elm_Tooltip_Content_Cb(IntPtr data, IntPtr obj, IntPtr tooltip);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tooltip_content_cb_set(IntPtr obj, Elm_Tooltip_Content_Cb func, IntPtr data, Interop.Evas.SmartCallback del);

        internal static string elm_object_part_text_get(IntPtr obj, string part)
        {
            var text = _elm_object_part_text_get(obj, part);
            return Marshal.PtrToStringAnsi(text);
        }

        internal static string elm_object_part_text_get(IntPtr obj)
        {
            var text = _elm_object_part_text_get(obj, IntPtr.Zero);
            return Marshal.PtrToStringAnsi(text);
        }

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_object_part_content_get(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_part_content_set(IntPtr obj, string part, IntPtr content);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_part_content_set(IntPtr obj, IntPtr part, IntPtr content);

        internal static void elm_object_content_set(IntPtr obj, IntPtr content)
        {
            elm_object_part_content_set(obj, IntPtr.Zero, content);
        }

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_object_part_content_unset(IntPtr obj, string part);

        internal static void elm_object_content_unset(IntPtr obj)
        {
            elm_object_part_content_unset(obj, null);
        }

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_layout_add(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_layout_content_get(IntPtr obj, string swallow);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_content_set(IntPtr obj, string swallow, IntPtr content);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_layout_content_unset(IntPtr obj, string swallow);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_text_set(IntPtr obj, string part, string text);

        [DllImport(Libraries.Elementary, EntryPoint = "elm_layout_text_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
        internal static extern IntPtr _elm_layout_text_get(IntPtr obj, string part);

        internal static string elm_layout_text_get(IntPtr obj, string part)
        {
            var text = _elm_layout_text_get(obj, part);
            return Marshal.PtrToStringAnsi(text);
        }

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_theme_set(IntPtr obj, string klass, string group, string style);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_layout_file_get(IntPtr obj, IntPtr file, IntPtr group);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_file_set(IntPtr obj, string file, string group);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_layout_signal_emit(IntPtr obj, string emission, string source);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_layout_signal_callback_add(IntPtr obj, string emission, string source, Edje_Signal_Cb func, IntPtr data);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_layout_signal_callback_del(IntPtr obj, string emission, string source, Edje_Signal_Cb func);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void Edje_Signal_Cb(IntPtr data, IntPtr obj, string emission, string source);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_box_append(IntPtr obj, string part, IntPtr child);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_box_prepend(IntPtr obj, string part, IntPtr child);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_layout_box_remove(IntPtr obj, string part, IntPtr child);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_box_remove_all(IntPtr obj, string part, bool clear);

        [DllImport(Libraries.Elementary)]
        internal static extern string elm_layout_data_get(IntPtr obj, string key);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_layout_text_valign_set(IntPtr obj, string part, double valign);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_layout_text_valign_get(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_notify_add(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_notify_align_set(IntPtr obj, double horizontal, double vertical);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_notify_timeout_set(IntPtr obj, double timeout);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_object_scale_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_scale_set(IntPtr obj, double scale);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_signal_emit(IntPtr obj, string emission, string source);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_object_signal_callback_del(IntPtr obj, string emission, string source, Edje_Signal_Cb func);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_signal_callback_add(IntPtr obj, string emission, string source, Edje_Signal_Cb func, IntPtr data);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_style_set(IntPtr obj, string style);

        [DllImport(Libraries.Elementary, EntryPoint = "elm_object_style_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
        internal static extern IntPtr _elm_object_style_get(IntPtr obj);

        internal static string elm_object_style_get(IntPtr obj)
        {
            var text = _elm_object_style_get(obj);
            return Marshal.PtrToStringAnsi(text);
        }

        [DllImport(Libraries.Elementary)]
        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);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_color_class_color_set(IntPtr obj, string colorClass, int r, int g, int b, int a);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_part_text_set(IntPtr obj, string part, string text);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_part_text_set(IntPtr obj, IntPtr part, string text);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_focus_highlight_animate_set(bool animate);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_config_focus_highlight_animate_get();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_config_focus_highlight_enabled_set(bool enable);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_config_focus_highlight_enabled_get();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_tree_focus_allow_set(IntPtr obj, bool focusable);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_tree_focus_allow_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_object_focus_next_object_get(IntPtr obj, int dir);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_object_focused_object_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_focus_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_focus_set(IntPtr obj, bool focus);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_object_focus_allow_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_focus_allow_set(IntPtr obj, bool enable);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_focus_next(IntPtr obj, int direction);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_focus_next_object_set(IntPtr obj, IntPtr next, int direction);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_focus_next_item_set(IntPtr obj, IntPtr nextItem, int direction);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_extension_add(IntPtr theme, string path);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_overlay_add(IntPtr theme, string path);

        [DllImport(Libraries.Elementary)]
        internal static extern string elm_language_set(string lang);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_policy_set(uint policy, int value);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_theme_new();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_free(IntPtr theme);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_ref_set(IntPtr theme, IntPtr themeRef);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_extension_del(IntPtr theme, string item);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_overlay_del(IntPtr theme, string item);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_set(IntPtr obj, string theme);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_flush(IntPtr theme);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_theme_full_flush();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_theme_set(IntPtr obj, IntPtr theme);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_layout_edje_get(IntPtr obj);

        internal static void SetObjectText(IntPtr obj, string text)
        {
            elm_object_part_text_set(obj, IntPtr.Zero, text);
        }

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_cache_all_flush();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_object_domain_translatable_part_text_set(IntPtr obj, string part, string domain, string text);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_color_class_del(IntPtr obj, string colorClass);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_object_part_exists(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr edje_object_part_object_get(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        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);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_object_part_text_set(IntPtr obj, string part, string text);

        [DllImport(Libraries.Elementary, EntryPoint = "edje_object_part_text_get", CharSet = CharSet.Ansi)]
        internal static extern IntPtr _edje_object_part_text_get(IntPtr obj, string part);

        internal static string edje_object_part_text_get(IntPtr obj, string part)
        {
            var text = _edje_object_part_text_get(obj, part);
            return Marshal.PtrToStringAnsi(text);
        }

        [DllImport(Libraries.Elementary, EntryPoint = "edje_object_part_text_style_user_peek", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
        internal static extern IntPtr _edje_object_part_text_style_user_peek(IntPtr obj, string part);

        internal static string edje_object_part_text_style_user_peek(IntPtr obj, string part)
        {
            var text = _edje_object_part_text_style_user_peek(obj, part);
            return Marshal.PtrToStringAnsi(text);
        }

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_part_text_style_user_push(IntPtr obj, string part, string style);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_part_text_style_user_pop(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_signal_emit(IntPtr obj, string emission, string source);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_mirrored_set(IntPtr obj, bool rtl);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr edje_object_add(IntPtr evas);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_object_file_set(IntPtr obj, string file, string group);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_object_part_box_append(IntPtr obj, string part, IntPtr child);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_object_part_box_prepend(IntPtr obj, string part, IntPtr child);

        [DllImport(Libraries.Elementary)]
        internal static extern string edje_object_part_state_get(IntPtr obj, string part, out double value);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_signal_callback_add(IntPtr obj, string emission, Edje_Signal_Cb func, string source, IntPtr data);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr edje_object_signal_callback_del(IntPtr obj, string emission, string source, Edje_Signal_Cb func);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_signal_callback_del_full(IntPtr obj, string emission, string source, Edje_Signal_Cb func, IntPtr data);

        [DllImport(Libraries.Elementary)]
        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);

        [DllImport(Libraries.Elementary)]
        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,
            out int r3, out int g3, out int b3, out int a3);

        [DllImport(Libraries.Elementary)]
        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);

        [DllImport(Libraries.Elementary)]
        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,
            out int r3, out int g3, out int b3, out int a3);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_message_signal_process();

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_message_handler_set(IntPtr obj, Edje_Message_Handler_Cb func, IntPtr data);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void Edje_Message_Handler_Cb(IntPtr data, IntPtr obj, Edje_Message_Type type, int id, IntPtr msg);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_message_send(IntPtr obj, Edje_Message_Type type, int id, IntPtr msg);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_object_message_signal_process(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_object_text_class_set(IntPtr obj, string textClass, string font, int size);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_object_text_class_get(IntPtr obj, string textClass, out string font, out int size);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_text_class_set(string textClass, string font, int size);

        [DllImport(Libraries.Elementary)]
        internal static extern bool edje_text_class_get(string textClass, out string font, out int size);

        [DllImport(Libraries.Elementary)]
        internal static extern void edje_text_class_del(string textClass);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_add();

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_del(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_object_add(IntPtr transit, IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_translation_add(IntPtr transit, int fromDx, int fromDy, int toDx, int toDy);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_objects_final_state_keep_set(IntPtr transit, bool stateKeep);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_tween_mode_set(IntPtr transit, int tweenMode);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_repeat_times_set(IntPtr transit, int repeat);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_duration_set(IntPtr transit, double duration);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_go(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_zoom_add(IntPtr transit, float fromRate, float toRate);

        [DllImport(Libraries.Elementary)]
        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);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_auto_reverse_set(IntPtr transit, bool reverse);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_effect_add(IntPtr transit, Elm_Transit_Effect_Transition_Cb transitionCb, IntPtr effect, Elm_Transit_Effect_End_Cb endCb);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_fade_add(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_resizing_add(IntPtr transit, int fromW, int fromH, int toW, int toH);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_event_enabled_set(IntPtr transit, bool enabled);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_smooth_set(IntPtr transit, bool enabled);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_effect_del(IntPtr transit, Elm_Transit_Effect_Transition_Cb transitionCb, IntPtr effect);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_object_remove(IntPtr transit, IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_transit_objects_final_state_keep_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_transit_event_enabled_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_del_cb_set(IntPtr transit, Elm_Transit_Del_Cb cb, IntPtr data);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_transit_auto_reverse_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern int elm_transit_repeat_times_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern int elm_transit_tween_mode_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_tween_mode_factor_set(IntPtr transit, double v1, double v2);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_tween_mode_factor_get(IntPtr transit, out double v1, out double v2);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_tween_mode_factor_n_set(IntPtr transit, int vSize, out double v);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_transit_duration_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_go_in(IntPtr transit, double interval);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_paused_set(IntPtr transit, bool paused);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_transit_paused_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern double elm_transit_progress_value_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_chain_transit_add(IntPtr transit, IntPtr chainTransit);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_transit_chain_transit_del(IntPtr transit, IntPtr chainTransit);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_chain_transits_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_transit_smooth_get(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_flip_add(IntPtr transit, int axis, bool cw);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_resizable_flip_add(IntPtr transit, int axis, bool cw);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_wipe_add(IntPtr transit, int type, int dir);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_blend_add(IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_rotation_add(IntPtr transit, float fromDegree, float toDegree);

        [DllImport(Libraries.Elementary)]
        internal static extern IntPtr elm_transit_effect_image_animation_add(IntPtr transit, IntPtr images);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate int Eina_Compare_Cb(IntPtr data1, IntPtr data2);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void Elm_Transit_Effect_Transition_Cb(IntPtr effect, IntPtr transit, double progress);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void Elm_Transit_Effect_End_Cb(IntPtr effect, IntPtr transit);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void Elm_Transit_Del_Cb(IntPtr data, IntPtr transit);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_box_insert_at(IntPtr obj, string part, IntPtr child, uint pos);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_box_insert_before(IntPtr obj, string part, IntPtr child, IntPtr reference);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_edje_object_can_access_get(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_edje_object_can_access_set(IntPtr obj, bool canAccess);

        [DllImport(Libraries.Elementary)]
        internal static extern int elm_layout_freeze(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_part_cursor_engine_only_get(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_part_cursor_engine_only_set(IntPtr obj, string part, bool engineOnly);

        [DllImport(Libraries.Elementary)]
        internal static extern string elm_layout_part_cursor_get(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_part_cursor_set(IntPtr obj, string part, string cursor);

        [DllImport(Libraries.Elementary)]
        internal static extern string elm_layout_part_cursor_style_get(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_part_cursor_style_set(IntPtr obj, string part, string style);

        [DllImport(Libraries.Elementary)]
        internal static extern bool elm_layout_part_cursor_unset(IntPtr obj, string part);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_layout_sizing_eval(IntPtr obj);

        [DllImport(Libraries.Elementary)]
        internal static extern void elm_layout_sizing_restricted_eval(IntPtr obj, bool width, bool height);

        [DllImport(Libraries.Elementary)]
        internal static extern int elm_layout_thaw(IntPtr obj);
    }
}