Merge remote-tracking branch 'origin/API10' into tizen_7.0
[platform/core/csapi/tizenfx.git] / src / ElmSharp / Interop / Interop.Evas.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 Evas
23     {
24         public enum ObjectCallbackType
25         {
26             MouseIn,
27             MouseOut,
28             MouseDown,
29             MouseUp,
30             MouseMove,
31             MouseWheel,
32             MultiDown,
33             MultiUp,
34             MultiMove,
35             Free,
36             KeyDown,
37             KeyUp,
38             FocusIn,
39             FocusOut,
40             Show,
41             Hide,
42             Move,
43             Resize,
44             Restack,
45             Del,
46             Hold,
47             ChangedSizeHints,
48             ImagePreloaded,
49             CanvasFocusIn,
50             CanvasFocusOut,
51             RenderFlushPre,
52             RenderFlushPost,
53             CanvasObjectFocusIn,
54             CanvasObjectFocusOut,
55             ImageUnloaded,
56             RenderPre,
57             RenderPost,
58             ImageResize,
59             DeviceChanged,
60             AxisUpdate,
61             CanvasViewportResize
62         }
63
64         public enum LoadError
65         {
66             None = 0, /* No error on load */
67             Generic = 1, /* A non-specific error occurred */
68             DoesNotRxist = 2, /* File (or file path) does not exist */
69             PermissionDenied = 3, /* Permission denied to an existing file (or path) */
70             ResourceAllocationFailed = 4, /* Allocation of resources failure prevented load */
71             CorruptFile = 5, /* File corrupt (but was detected as a known format) */
72             UnknownFormat = 6 /* File is not a known format */
73         }
74
75         public enum Colorspace
76         {
77             Argb8888, /* ARGB 32 bits per pixel, high-byte is Alpha, accessed 1 32bit word at a time */
78             Ycbcr422p709pl, /* YCbCr 4:2:2 Planar, ITU.BT-709 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows */
79             Ergb565a5p, /* 16bit rgb565 + Alpha plane at end - 5 bits of the 8 being used per alpha byte */
80             Egry8, /* 8bit grayscale */
81             Eycbcr422601pl, /*  YCbCr 4:2:2, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to line of Y,Cb,Y,Cr bytes */
82             Eycbcr420nv12601pl, /* YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb,Cr rows. */
83             Eycbcr420tm12601pl, /* YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of tiled row pointer, pointing to the Y rows, then the Cb,Cr rows. */
84             Eagry88, /* AY 8bits Alpha and 8bits Grey, accessed 1 16bits at a time */
85             Eetc1, /* OpenGL ETC1 encoding of RGB texture (4 bit per pixel) @since 1.10 */
86             Ergb8etc2, /* OpenGL GL_COMPRESSED_RGB8_ETC2 texture compression format (4 bit per pixel) @since 1.10 */
87             Ergba8etc2eac, /* OpenGL GL_COMPRESSED_RGBA8_ETC2_EAC texture compression format, supports alpha (8 bit per pixel) @since 1.10 */
88             Eetc1alpha,     /* ETC1 with alpha support using two planes: ETC1 RGB and ETC1 grey for alpha @since 1.11 */
89         }
90
91         public enum ImageScaleHint
92         {
93             None = 0, /* No scale hint at all */
94             Dynamic = 1, /* Image is being re-scaled over time, thus turning scaling cache @b off for its data */
95             Static = 2 /* Image is not being re-scaled over time, thus turning scaling cache @b on for its data */
96         }
97
98         public enum RenderOp
99         {
100             Blend = 0, /* default op: d = d*(1-sa) + s */
101             BlendRel = 1, /* d = d*(1 - sa) + s*da */
102             Copy = 2, /* d = s */
103             CopyRel = 3, /* d = s*da */
104             Add = 4, /* d = d + s */
105             AddRel = 5, /* d = d + s*da */
106             Sub = 6, /* d = d - s */
107             SubRel = 7, /* d = d - s*da */
108             Tint = 8, /* d = d*s + d*(1 - sa) + s*(1 - da) */
109             TintRel = 9, /* d = d*(1 - sa + s) */
110             Mask = 10, /* d = d*sa */
111             Mul = 11 /* d = d*s */
112         }
113
114         public enum ObjectCallbackPriority
115         {
116             After = 100,
117             Before = -100,
118             Default = 0
119         }
120
121         public enum TableHomogeneousMode
122         {
123             None = 0,
124             Table = 1,
125             Item = 2
126         }
127
128         public enum TextStyleType
129         {
130             Plain, /* plain, standard text */
131             Shadow, /* text with shadow underneath */
132             Outline, /* text with an outline */
133             SoftOutline, /* text with a soft outline */
134             Glow, /* text with a glow effect */
135             OutlineShadow, /* text with both outline and shadow effects */
136             FarShadow, /* text with (far) shadow underneath */
137             OutlineSoftShadow, /* text with outline and soft shadow effects combined */
138             SoftShadow, /* text with(soft) shadow underneath */
139             FarSoftShadow, /* text with(far soft) shadow underneath */
140             ShadowDirectionBottomRight, /* shadow growing to bottom right */
141             ShadowDirectionBottom, /* shadow growing to the bottom */
142             ShadowDirectionBottomLeft, /* shadow growing to bottom left */
143             ShadowDirectionLeft, /* shadow growing to the left */
144             ShadowDirectionTopLeft, /* shadow growing to top left */
145             ShadowDirectionTop, /* shadow growing to the top */
146             ShadowDirectionTopRight, /* shadow growing to top right */
147             ShadowDirectionRight, /* shadow growing to the right */
148         }
149
150         //public struct TextBlockStyle
151         //{
152         //    string StyleText;
153         //    string DefaultTag;
154
155         //    List objects;
156         //    bool DeleteMe;
157         //}
158
159         //public struct StyleTag
160         //{
161         //}
162
163         internal delegate void EventCallback(IntPtr data, IntPtr evas, IntPtr obj, IntPtr info);
164
165         internal delegate void EvasCallback(IntPtr data, IntPtr evas, IntPtr info);
166
167         [DllImport(Libraries.Evas)]
168         internal static extern void evas_event_callback_add(IntPtr obj, ObjectCallbackType type, EvasCallback func, IntPtr data);
169
170         [DllImport(Libraries.Evas)]
171         internal static extern void evas_event_callback_del(IntPtr obj, ObjectCallbackType type, EvasCallback func);
172
173         [DllImport(Libraries.Evas)]
174         internal static extern void evas_object_event_callback_add(IntPtr obj, ObjectCallbackType type, EventCallback func, IntPtr data);
175
176         [DllImport(Libraries.Evas)]
177         internal static extern void evas_object_event_callback_del(IntPtr obj, ObjectCallbackType type, EventCallback func);
178
179         public delegate void SmartCallback(IntPtr data, IntPtr obj, IntPtr info);
180
181         public static readonly string BackKeyName = "XF86Back";
182         public static readonly string MenuKeyName = "XF86Menu";
183
184         public enum ButtonFlags
185         {
186             None, DoubleClick, TripleClick
187         }
188
189         [DllImport(Libraries.Evas)]
190         internal static extern bool evas_object_key_grab(IntPtr obj, string keyname, ulong modifier, ulong not_modifier, bool exclusive);
191
192         [DllImport(Libraries.Evas)]
193         internal static extern void evas_object_key_ungrab(IntPtr obj, string keyname, ulong modifier, ulong not_modifier);
194
195         [DllImport(Libraries.Evas)]
196         internal static extern IntPtr evas_object_data_get(IntPtr obj, string keyname);
197
198         [DllImport(Libraries.Evas)]
199         internal static extern void evas_object_data_set(IntPtr obj, string keyname, IntPtr data);
200
201         [DllImport(Libraries.Evas, EntryPoint = "evas_object_type_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
202         internal static extern IntPtr _evas_object_type_get(IntPtr obj);
203
204         internal static string evas_object_type_get(IntPtr obj)
205         {
206             var text = _evas_object_type_get(obj);
207             return Marshal.PtrToStringAnsi(text);
208         }
209
210         [DllImport(Libraries.Evas)]
211         internal static extern IntPtr evas_object_evas_get(IntPtr obj);
212
213         [DllImport(Libraries.Evas)]
214         internal static extern void evas_object_del(IntPtr objectPtr);
215
216         [DllImport(Libraries.Evas)]
217         internal static extern void evas_object_show(IntPtr obj);
218
219         [DllImport(Libraries.Evas)]
220         internal static extern void evas_object_hide(IntPtr obj);
221
222         [DllImport(Libraries.Evas)]
223         internal static extern bool evas_object_visible_get(IntPtr obj);
224
225         [DllImport(Libraries.Evas)]
226         internal static extern void evas_object_smart_callback_add(IntPtr obj, string eventName, SmartCallback seh, IntPtr data);
227
228         [DllImport(Libraries.Evas)]
229         internal static extern void evas_object_smart_callback_del(IntPtr obj, string eventName, SmartCallback seh);
230
231         [DllImport(Libraries.Evas)]
232         internal static extern void evas_object_size_hint_min_set(IntPtr obj, int w, int h);
233
234         [DllImport(Libraries.Evas)]
235         internal static extern void evas_object_size_hint_min_get(IntPtr obj, out int w, out int h);
236
237         [DllImport(Libraries.Evas)]
238         internal static extern void evas_object_size_hint_min_get(IntPtr obj, IntPtr w, out int h);
239
240         [DllImport(Libraries.Evas)]
241         internal static extern void evas_object_size_hint_min_get(IntPtr obj, out int w, IntPtr h);
242
243         [DllImport(Libraries.Evas)]
244         internal static extern void evas_object_size_hint_max_set(IntPtr obj, int w, int h);
245
246         [DllImport(Libraries.Evas)]
247         internal static extern void evas_object_size_hint_max_get(IntPtr obj, out int w, out int h);
248
249         [DllImport(Libraries.Evas)]
250         internal static extern void evas_object_size_hint_max_get(IntPtr obj, IntPtr w, out int h);
251
252         [DllImport(Libraries.Evas)]
253         internal static extern void evas_object_size_hint_max_get(IntPtr obj, out int w, IntPtr h);
254
255         [DllImport(Libraries.Evas)]
256         internal static extern void evas_object_size_hint_weight_get(IntPtr obj, out double x, out double y);
257
258         [DllImport(Libraries.Evas)]
259         internal static extern void evas_object_size_hint_weight_get(IntPtr obj, out double x, IntPtr y);
260
261         [DllImport(Libraries.Evas)]
262         internal static extern void evas_object_size_hint_weight_get(IntPtr obj, IntPtr x, out double y);
263
264         [DllImport(Libraries.Evas)]
265         internal static extern void evas_object_size_hint_align_get(IntPtr obj, out double x, out double y);
266
267         [DllImport(Libraries.Evas)]
268         internal static extern void evas_object_size_hint_align_get(IntPtr obj, out double x, IntPtr y);
269
270         [DllImport(Libraries.Evas)]
271         internal static extern void evas_object_size_hint_align_get(IntPtr obj, IntPtr x, out double y);
272
273         [DllImport(Libraries.Evas)]
274         internal static extern void evas_object_size_hint_weight_set(IntPtr obj, double x, double y);
275
276         [DllImport(Libraries.Evas)]
277         internal static extern void evas_object_size_hint_align_set(IntPtr obj, double x, double y);
278
279         [DllImport(Libraries.Evas)]
280         internal static extern void evas_object_move(IntPtr obj, int x, int y);
281
282         [DllImport(Libraries.Evas)]
283         internal static extern void evas_object_resize(IntPtr obj, int w, int h);
284
285         [DllImport(Libraries.Evas)]
286         internal static extern void evas_object_geometry_set(IntPtr obj, int x, int y, int w, int h);
287
288         [DllImport(Libraries.Evas)]
289         internal static extern void evas_object_geometry_get(IntPtr obj, out int x, out int y, out int w, out int h);
290
291         [DllImport(Libraries.Evas)]
292         internal static extern void evas_object_geometry_get(IntPtr obj, out int x, IntPtr y, IntPtr w, IntPtr h);
293
294         [DllImport(Libraries.Evas)]
295         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, out int y, IntPtr w, IntPtr h);
296
297         [DllImport(Libraries.Evas)]
298         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, out int w, IntPtr h);
299
300         [DllImport(Libraries.Evas)]
301         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, IntPtr w, out int h);
302
303         [DllImport(Libraries.Evas)]
304         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, out int w, out int h);
305
306         [DllImport(Libraries.Evas)]
307         internal static extern void evas_object_geometry_get(IntPtr obj, out int x, out int y, IntPtr w, IntPtr h);
308
309         [DllImport(Libraries.Evas)]
310         internal static extern IntPtr evas_object_smart_members_get(IntPtr obj);
311
312         [DllImport(Libraries.Evas)]
313         internal static extern IntPtr evas_map_new(int count);
314
315         [DllImport(Libraries.Evas)]
316         internal static extern void evas_map_util_points_populate_from_object_full(IntPtr map, IntPtr obj, int z);
317
318         [DllImport(Libraries.Evas)]
319         internal static extern void evas_map_util_points_populate_from_geometry(IntPtr map, int x, int y, int w, int h, int z);
320
321         [DllImport(Libraries.Evas)]
322         internal static extern void evas_map_util_rotate(IntPtr map, double degree, int cx, int cy);
323
324         [DllImport(Libraries.Evas)]
325         internal static extern void evas_map_util_3d_rotate(IntPtr map, double dx, double dy, double dz, int cx, int cy, int cz);
326
327         [DllImport(Libraries.Evas)]
328         internal static extern void evas_map_util_zoom(IntPtr map, double x, double y, int cx, int cy);
329
330         [DllImport(Libraries.Evas)]
331         internal static extern void evas_map_point_coord_set(IntPtr map, int idx, int x, int y, int z);
332
333         [DllImport(Libraries.Evas)]
334         internal static extern void evas_map_point_coord_get(IntPtr map, int idx, out int x, out int y, out int z);
335
336         [DllImport(Libraries.Evas)]
337         internal static extern void evas_object_map_enable_set(IntPtr obj, bool enabled);
338
339         [DllImport(Libraries.Evas)]
340         internal static extern bool evas_object_map_enable_get(IntPtr obj);
341
342         [DllImport(Libraries.Evas)]
343         internal static extern void evas_map_util_object_move_sync_set(IntPtr map, bool enabled);
344
345         [DllImport(Libraries.Evas)]
346         internal static extern bool evas_map_util_object_move_sync_get(IntPtr map);
347
348         [DllImport(Libraries.Evas)]
349         internal static extern void evas_object_map_set(IntPtr obj, IntPtr map);
350
351         [DllImport(Libraries.Evas)]
352         internal static extern IntPtr evas_object_map_get(IntPtr obj);
353
354         [DllImport(Libraries.Evas)]
355         internal static extern void evas_map_free(IntPtr map);
356
357         [DllImport(Libraries.Evas)]
358         internal static extern IntPtr evas_object_polygon_add(IntPtr evas);
359
360         [DllImport(Libraries.Evas)]
361         internal static extern IntPtr evas_object_polygon_point_add(IntPtr evas, int x, int y);
362
363         [DllImport(Libraries.Evas)]
364         internal static extern IntPtr evas_object_polygon_points_clear(IntPtr evas);
365
366         [DllImport(Libraries.Evas)]
367         internal static extern IntPtr evas_object_rectangle_add(IntPtr evas);
368
369         [DllImport(Libraries.Evas)]
370         internal static extern void evas_object_color_set(IntPtr obj, int r, int g, int b, int a);
371
372         [DllImport(Libraries.Evas)]
373         internal static extern void evas_object_color_get(IntPtr obj, out int r, out int g, out int b, out int a);
374
375         [DllImport(Libraries.Evas)]
376         internal static extern void evas_object_color_get(IntPtr obj, IntPtr r, IntPtr g, IntPtr b, out int a);
377
378         [DllImport(Libraries.Evas)]
379         internal static extern void evas_object_clip_set(IntPtr obj, IntPtr clip);
380
381         [DllImport(Libraries.Evas)]
382         internal static extern void evas_object_clip_unset(IntPtr obj);
383
384         [DllImport(Libraries.Evas)]
385         internal static extern IntPtr evas_object_clip_get(IntPtr obj);
386
387         [DllImport(Libraries.Evas)]
388         internal static extern void evas_object_lower(IntPtr obj);
389
390         [DllImport(Libraries.Evas)]
391         internal static extern void evas_event_feed_mouse_move(IntPtr obj, int x, int y, int timestamp, IntPtr data);
392
393         [DllImport(Libraries.Evas)]
394         internal static extern void evas_event_feed_mouse_down(IntPtr obj, int b, ButtonFlags flags, int timestamp, IntPtr data);
395
396         [DllImport(Libraries.Evas)]
397         internal static extern void evas_event_feed_mouse_up(IntPtr obj, int b, ButtonFlags flags, int timestamp, IntPtr data);
398
399         [DllImport(Libraries.Evas)]
400         internal static extern void evas_event_feed_key_down(IntPtr obj, string keyname, string key, string str, string compose, int timestamp, IntPtr data);
401
402         [DllImport(Libraries.Evas)]
403         internal static extern void evas_event_feed_key_up(IntPtr obj, string keyname, string key, string str, string compose, int timestamp, IntPtr data);
404
405         [DllImport(Libraries.Evas)]
406         internal static extern void evas_object_ref(IntPtr obj);
407
408         [DllImport(Libraries.Evas)]
409         internal static extern void evas_object_unref(IntPtr obj);
410
411         [DllImport(Libraries.Evas)]
412         internal static extern int evas_object_ref_get(IntPtr obj);
413
414         [DllImport(Libraries.Evas)]
415         internal static extern void evas_object_repeat_events_set(IntPtr obj, bool repeat);
416
417         [DllImport(Libraries.Evas)]
418         [return: MarshalAs(UnmanagedType.U1)]
419         internal static extern bool evas_object_repeat_events_get(IntPtr obj);
420
421         [DllImport(Libraries.Evas)]
422         internal static extern void evas_object_propagate_events_set(IntPtr obj, bool propagate);
423
424         [DllImport(Libraries.Evas)]
425         [return: MarshalAs(UnmanagedType.U1)]
426         internal static extern bool evas_object_propagate_events_get(IntPtr obj);
427
428         [DllImport(Libraries.Evas)]
429         internal static extern void evas_object_pass_events_set(IntPtr obj, bool propagate);
430
431         [DllImport(Libraries.Evas)]
432         [return: MarshalAs(UnmanagedType.U1)]
433         internal static extern bool evas_object_pass_events_get(IntPtr obj);
434
435         [DllImport(Libraries.Evas)]
436         internal static extern void evas_object_textblock_size_native_get(IntPtr obj, out int w, out int h);
437
438         [DllImport(Libraries.Evas)]
439         internal static extern void evas_object_textblock_size_formatted_get(IntPtr obj, out int w, out int h);
440
441         [DllImport(Libraries.Evas)]
442         internal static extern void evas_object_smart_changed(IntPtr obj);
443
444         [DllImport(Libraries.Evas)]
445         internal static extern void evas_object_smart_calculate(IntPtr obj);
446
447         [DllImport(Libraries.Evas)]
448         internal static extern void evas_color_argb_premul(int a, ref int r, ref int g, ref int b);
449
450         [DllImport(Libraries.Evas)]
451         internal static extern void evas_damage_rectangle_add(IntPtr obj, int x, int y, int w, int h);
452
453         [DllImport(Libraries.Evas)]
454         internal static extern void evas_data_argb_premul(uint data, uint length);
455
456         [DllImport(Libraries.Evas)]
457         internal static extern void evas_event_callback_del_full(IntPtr obj, ObjectCallbackType type, EvasCallback func, IntPtr data);
458
459         [DllImport(Libraries.Evas)]
460         internal static extern void evas_font_path_global_append(string path);
461
462         [DllImport(Libraries.Evas)]
463         internal static extern void evas_image_cache_flush(IntPtr obj);
464
465         [DllImport(Libraries.Evas)]
466         internal static extern void evas_image_cache_set(IntPtr obj, int size);
467
468         [DllImport(Libraries.Evas)]
469         internal static extern void evas_pointer_canvas_xy_get(IntPtr obj, out int mx, out int my);
470
471         [DllImport(Libraries.Evas, EntryPoint = "evas_load_error_str")]
472         internal static extern IntPtr _evas_load_error_str(LoadError error);
473
474         internal static string evas_load_error_str(LoadError error)
475         {
476             return Marshal.PtrToStringAnsi(_evas_load_error_str(error));
477         }
478
479         [DllImport(Libraries.Evas)]
480         internal static extern IntPtr evas_object_data_del(IntPtr obj, string key);
481
482         [DllImport(Libraries.Evas)]
483         internal static extern void evas_object_focus_set(IntPtr obj, bool focus);
484
485         [DllImport(Libraries.Evas)]
486         internal static extern void evas_object_freeze_events_set(IntPtr obj, bool freeze);
487
488         [DllImport(Libraries.Evas)]
489         internal static extern void evas_object_layer_set(IntPtr obj, int layer);
490
491         [DllImport(Libraries.Evas)]
492         internal static extern void evas_object_raise(IntPtr obj);
493
494         [DllImport(Libraries.Evas)]
495         internal static extern void evas_object_render_op_set(IntPtr obj, RenderOp op);
496
497         [DllImport(Libraries.Evas)]
498         internal static extern RenderOp evas_object_render_op_get(IntPtr obj);
499
500         [DllImport(Libraries.Evas)]
501         internal static extern void evas_object_size_hint_aspect_set(IntPtr obj, int aspect, int w, int h);
502
503         [DllImport(Libraries.Evas)]
504         internal static extern IntPtr evas_object_smart_add(IntPtr obj, IntPtr smart);
505
506         [DllImport(Libraries.Evas)]
507         internal static extern IntPtr evas_object_smart_data_get(IntPtr obj);
508
509         [DllImport(Libraries.Evas)]
510         internal static extern void evas_object_smart_data_set(IntPtr obj, IntPtr data);
511
512         [DllImport(Libraries.Evas)]
513         internal static extern void evas_object_smart_member_add(IntPtr obj, IntPtr smart);
514
515         [DllImport(Libraries.Evas)]
516         internal static extern void evas_object_smart_member_del(IntPtr obj);
517
518         [DllImport(Libraries.Evas)]
519         internal static extern void evas_object_stack_above(IntPtr obj, IntPtr avobe);
520
521         [DllImport(Libraries.Evas)]
522         internal static extern IntPtr evas_object_text_add(IntPtr obj);
523
524         [DllImport(Libraries.Evas)]
525         internal static extern void evas_object_text_font_set(IntPtr obj, string font, int size);
526
527         [DllImport(Libraries.Evas)]
528         internal static extern void evas_object_text_text_set(IntPtr obj, string text);
529
530         [DllImport(Libraries.Evas)]
531         internal static extern IntPtr evas_object_textblock_add(IntPtr obj);
532
533         [DllImport(Libraries.Evas)]
534         internal static extern IntPtr evas_object_textblock_style_set(IntPtr obj, IntPtr textBlockStyle);
535
536         [DllImport(Libraries.Evas)]
537         internal static extern void evas_object_textblock_text_markup_set(IntPtr obj, string text);
538
539         [DllImport(Libraries.Evas)]
540         internal static extern void evas_obscured_clear(IntPtr obj);
541
542         [DllImport(Libraries.Evas)]
543         internal static extern IntPtr evas_smart_class_new(IntPtr obj);
544
545         [DllImport(Libraries.Evas, EntryPoint = "evas_device_name_get")]
546         internal static extern IntPtr _evas_device_name_get(IntPtr obj);
547
548         internal static string evas_device_name_get(IntPtr obj)
549         {
550             return Marshal.PtrToStringAnsi(_evas_device_name_get(obj));
551         }
552
553         [DllImport(Libraries.Evas)]
554         internal static extern void evas_font_path_global_clear();
555
556         [DllImport(Libraries.Evas)]
557         internal static extern IntPtr evas_object_above_get(IntPtr obj);
558
559         [DllImport(Libraries.Evas)]
560         internal static extern void evas_object_event_callback_priority_add(IntPtr obj, ObjectCallbackType type, ObjectCallbackPriority priority, EventCallback func, IntPtr data);
561
562         [DllImport(Libraries.Evas)]
563         internal static extern bool evas_object_focus_get(IntPtr obj);
564
565         [DllImport(Libraries.Evas)]
566         internal static extern bool evas_object_freeze_events_get(IntPtr obj);
567
568         [DllImport(Libraries.Evas)]
569         internal static extern int evas_object_layer_get(IntPtr obj);
570
571         [DllImport(Libraries.Evas)]
572         internal static extern void evas_object_smart_callback_priority_add(IntPtr obj, string eventName, ObjectCallbackPriority priority, EventCallback func, IntPtr data);
573
574         [DllImport(Libraries.Evas)]
575         internal static extern void evas_object_smart_clipped_smart_set(IntPtr obj);
576
577         [DllImport(Libraries.Evas)]
578         internal static extern void evas_object_table_homogeneous_set(IntPtr obj, TableHomogeneousMode mode);
579
580         [DllImport(Libraries.Evas)]
581         internal static extern bool evas_object_table_pack(IntPtr obj, IntPtr child, uint col, uint row, uint colspan, uint rowspan);
582
583         [DllImport(Libraries.Evas)]
584         internal static extern void evas_object_table_padding_set(IntPtr obj, int horizontal, int vertical);
585
586         [DllImport(Libraries.Evas)]
587         internal static extern void evas_object_text_filter_program_set(IntPtr obj, string program);
588
589         [DllImport(Libraries.Evas)]
590         internal static extern void evas_object_text_glow_color_set(IntPtr obj, int r, int g, int b, int a);
591
592         [DllImport(Libraries.Evas)]
593         internal static extern void evas_object_text_outline_color_set(IntPtr obj, int r, int g, int b, int a);
594
595         [DllImport(Libraries.Evas)]
596         internal static extern void evas_object_text_shadow_color_set(IntPtr obj, int r, int g, int b, int a);
597
598         [DllImport(Libraries.Evas)]
599         internal static extern void evas_object_text_style_set(IntPtr obj, TextStyleType type);
600
601         [DllImport(Libraries.Evas)]
602         internal static extern bool evas_object_textblock_line_number_geometry_get(IntPtr obj, int line, out int x, out int y, out int w, out int h);
603
604         [DllImport(Libraries.Evas)]
605         internal static extern void evas_object_textblock_valign_set(IntPtr obj, double align);
606
607         [DllImport(Libraries.Evas)]
608         internal static extern int evas_string_char_len_get(string str);
609
610         [DllImport(Libraries.Evas)]
611         internal static extern int evas_textblock_style_free(IntPtr obj);
612
613         [DllImport(Libraries.Evas)]
614         internal static extern IntPtr evas_textblock_style_new();
615
616         [DllImport(Libraries.Evas)]
617         internal static extern void evas_textblock_style_set(IntPtr obj, string text);
618
619         [DllImport(Libraries.Evas)]
620         internal static extern string evas_textblock_text_markup_to_utf8(IntPtr obj, string text);
621
622         [DllImport(Libraries.Evas)]
623         internal static extern string evas_textblock_text_utf8_to_markup(IntPtr obj, string text);
624
625         [DllImport(Libraries.Evas)]
626         internal static extern void evas_obscured_rectangle_add(IntPtr obj, int x, int y, int w, int h);
627
628         [DllImport(Libraries.Evas)]
629         internal static extern void evas_render(IntPtr obj);
630
631         [DllImport(Libraries.Evas)]
632         internal static extern void evas_norender(IntPtr obj);
633
634         [DllImport(Libraries.Evas)]
635         internal static extern int evas_image_cache_get(IntPtr obj);
636
637         [DllImport(Libraries.Evas)]
638         internal static extern void evas_font_path_global_prepend(string path);
639
640         [DllImport(Libraries.Evas)]
641         internal static extern void evas_font_reinit();
642
643         [DllImport(Libraries.Evas)]
644         internal static extern void evas_color_argb_unpremul(int a, ref int r, ref int g, ref int b);
645
646         [DllImport(Libraries.Evas)]
647         internal static extern void evas_color_hsv_to_rgb(int r, int g, int b, out float h, out float s, out float v);
648
649         [DllImport(Libraries.Evas)]
650         internal static extern void evas_color_rgb_to_hsv(float h, float s, float v, out int r, out int g, out int b);
651
652         [DllImport(Libraries.Evas)]
653         internal static extern void evas_object_stack_below(IntPtr obj, IntPtr below);
654
655         [DllImport(Libraries.Evas)]
656         internal static extern void evas_object_size_hint_aspect_get(IntPtr obj, out int aspect, out int w, out int h);
657
658         internal static void SetX(IntPtr obj, int x)
659         {
660             int y = GetY(obj);
661             evas_object_move(obj, x, y);
662         }
663
664         internal static void SetY(IntPtr obj, int y)
665         {
666             int x = GetX(obj);
667             evas_object_move(obj, x, y);
668         }
669
670         internal static void SetWidth(IntPtr obj, int w)
671         {
672             int h = GetHeight(obj);
673             evas_object_resize(obj, w, h);
674         }
675
676         internal static void SetHeight(IntPtr obj, int h)
677         {
678             int w = GetWidth(obj);
679             evas_object_resize(obj, w, h);
680         }
681
682         internal static int GetX(IntPtr obj)
683         {
684             int x;
685             evas_object_geometry_get(obj, out x, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
686             return x;
687         }
688
689         internal static int GetY(IntPtr obj)
690         {
691             int y;
692             evas_object_geometry_get(obj, IntPtr.Zero, out y, IntPtr.Zero, IntPtr.Zero);
693             return y;
694         }
695
696         internal static int GetWidth(IntPtr obj)
697         {
698             int w;
699             evas_object_geometry_get(obj, IntPtr.Zero, IntPtr.Zero, out w, IntPtr.Zero);
700             return w;
701         }
702
703         internal static int GetHeight(IntPtr obj)
704         {
705             int h;
706             evas_object_geometry_get(obj, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, out h);
707             return h;
708         }
709
710         internal static double GetAlignX(IntPtr obj)
711         {
712             double x;
713             evas_object_size_hint_align_get(obj, out x, IntPtr.Zero);
714             return x;
715         }
716
717         internal static double GetAlignY(IntPtr obj)
718         {
719             double y;
720             evas_object_size_hint_align_get(obj, IntPtr.Zero, out y);
721             return y;
722         }
723
724         internal static void SetAlignX(IntPtr obj, double x)
725         {
726             double y = GetAlignY(obj);
727             evas_object_size_hint_align_set(obj, x, y);
728         }
729
730         internal static void SetAlignY(IntPtr obj, double y)
731         {
732             double x = GetAlignX(obj);
733             evas_object_size_hint_align_set(obj, x, y);
734         }
735
736         internal static double GetWeightX(IntPtr obj)
737         {
738             double x;
739             evas_object_size_hint_weight_get(obj, out x, IntPtr.Zero);
740             return x;
741         }
742
743         internal static double GetWeightY(IntPtr obj)
744         {
745             double y;
746             evas_object_size_hint_weight_get(obj, IntPtr.Zero, out y);
747             return y;
748         }
749
750         internal static void SetWeightX(IntPtr obj, double x)
751         {
752             double y = GetWeightY(obj);
753             evas_object_size_hint_weight_set(obj, x, y);
754         }
755
756         internal static void SetWeightY(IntPtr obj, double y)
757         {
758             double x = GetWeightX(obj);
759             evas_object_size_hint_weight_set(obj, x, y);
760         }
761
762         internal static int GetAlpha(IntPtr obj)
763         {
764             int a;
765             evas_object_color_get(obj, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, out a);
766             return a;
767         }
768
769         internal static void SetAlpha(IntPtr obj, int a)
770         {
771             evas_object_color_set(obj, a, a, a, a);
772         }
773
774         internal static void SetPremultipliedColor(IntPtr obj, int r, int g, int b, int a)
775         {
776             evas_object_color_set(obj, r * a / 255, g * a / 255, b * a / 255, a);
777         }
778     }
779 }