Release 4.0.0-preview1-00051
[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 IntPtr evas_object_image_add(IntPtr obj);
215
216         [DllImport(Libraries.Evas)]
217         internal static extern void evas_object_del(IntPtr objectPtr);
218
219         [DllImport(Libraries.Evas)]
220         internal static extern void evas_object_show(IntPtr obj);
221
222         [DllImport(Libraries.Evas)]
223         internal static extern void evas_object_hide(IntPtr obj);
224
225         [DllImport(Libraries.Evas)]
226         internal static extern bool evas_object_visible_get(IntPtr obj);
227
228         [DllImport(Libraries.Evas)]
229         internal static extern void evas_object_smart_callback_add(IntPtr obj, string eventName, SmartCallback seh, IntPtr data);
230
231         [DllImport(Libraries.Evas)]
232         internal static extern void evas_object_smart_callback_del(IntPtr obj, string eventName, SmartCallback seh);
233
234         [DllImport(Libraries.Evas)]
235         internal static extern void evas_object_size_hint_min_set(IntPtr obj, int w, int h);
236
237         [DllImport(Libraries.Evas)]
238         internal static extern void evas_object_size_hint_min_get(IntPtr obj, out int w, out int h);
239
240         [DllImport(Libraries.Evas)]
241         internal static extern void evas_object_size_hint_min_get(IntPtr obj, IntPtr w, out int h);
242
243         [DllImport(Libraries.Evas)]
244         internal static extern void evas_object_size_hint_min_get(IntPtr obj, out int w, IntPtr h);
245
246         [DllImport(Libraries.Evas)]
247         internal static extern void evas_object_size_hint_max_set(IntPtr obj, int w, int h);
248
249         [DllImport(Libraries.Evas)]
250         internal static extern void evas_object_size_hint_max_get(IntPtr obj, out int w, out int h);
251
252         [DllImport(Libraries.Evas)]
253         internal static extern void evas_object_size_hint_max_get(IntPtr obj, IntPtr w, out int h);
254
255         [DllImport(Libraries.Evas)]
256         internal static extern void evas_object_size_hint_max_get(IntPtr obj, out int w, IntPtr h);
257
258         [DllImport(Libraries.Evas)]
259         internal static extern void evas_object_size_hint_weight_get(IntPtr obj, out double x, out double y);
260
261         [DllImport(Libraries.Evas)]
262         internal static extern void evas_object_size_hint_weight_get(IntPtr obj, out double x, IntPtr y);
263
264         [DllImport(Libraries.Evas)]
265         internal static extern void evas_object_size_hint_weight_get(IntPtr obj, IntPtr 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, out double y);
269
270         [DllImport(Libraries.Evas)]
271         internal static extern void evas_object_size_hint_align_get(IntPtr obj, out double x, IntPtr y);
272
273         [DllImport(Libraries.Evas)]
274         internal static extern void evas_object_size_hint_align_get(IntPtr obj, IntPtr x, out double y);
275
276         [DllImport(Libraries.Evas)]
277         internal static extern void evas_object_size_hint_weight_set(IntPtr obj, double x, double y);
278
279         [DllImport(Libraries.Evas)]
280         internal static extern void evas_object_size_hint_align_set(IntPtr obj, double x, double y);
281
282         [DllImport(Libraries.Evas)]
283         internal static extern void evas_object_move(IntPtr obj, int x, int y);
284
285         [DllImport(Libraries.Evas)]
286         internal static extern void evas_object_resize(IntPtr obj, int w, int h);
287
288         [DllImport(Libraries.Evas)]
289         internal static extern void evas_object_geometry_set(IntPtr obj, int x, int y, int w, int h);
290
291         [DllImport(Libraries.Evas)]
292         internal static extern void evas_object_geometry_get(IntPtr obj, out int x, out int y, out int w, out int h);
293
294         [DllImport(Libraries.Evas)]
295         internal static extern void evas_object_geometry_get(IntPtr obj, out int x, IntPtr y, IntPtr w, IntPtr h);
296
297         [DllImport(Libraries.Evas)]
298         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, out int y, IntPtr w, IntPtr h);
299
300         [DllImport(Libraries.Evas)]
301         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, out int w, IntPtr h);
302
303         [DllImport(Libraries.Evas)]
304         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, IntPtr w, out int h);
305
306         [DllImport(Libraries.Evas)]
307         internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, out int w, out int h);
308
309         [DllImport(Libraries.Evas)]
310         internal static extern void evas_object_geometry_get(IntPtr obj, out int x, out int y, IntPtr w, IntPtr h);
311
312         [DllImport(Libraries.Evas)]
313         internal static extern IntPtr evas_object_smart_members_get(IntPtr obj);
314
315         [DllImport(Libraries.Evas)]
316         internal static extern IntPtr evas_map_new(int count);
317
318         [DllImport(Libraries.Evas)]
319         internal static extern void evas_map_util_points_populate_from_object_full(IntPtr map, IntPtr obj, int z);
320
321         [DllImport(Libraries.Evas)]
322         internal static extern void evas_map_util_points_populate_from_geometry(IntPtr map, int x, int y, int w, int h, int z);
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, EntryPoint = "evas_load_error_str")]
469         internal static extern IntPtr _evas_load_error_str(LoadError error);
470
471         internal static string evas_load_error_str(LoadError error)
472         {
473             return Marshal.PtrToStringAnsi(_evas_load_error_str(error));
474         }
475
476         [DllImport(Libraries.Evas)]
477         internal static extern IntPtr evas_object_data_del(IntPtr obj, string key);
478
479         [DllImport(Libraries.Evas)]
480         internal static extern void evas_object_focus_set(IntPtr obj, bool focus);
481
482         [DllImport(Libraries.Evas)]
483         internal static extern void evas_object_freeze_events_set(IntPtr obj, bool freeze);
484
485         [DllImport(Libraries.Evas)]
486         internal static extern void evas_object_image_colorspace_set(IntPtr obj, Colorspace colorSpace);
487
488         [DllImport(Libraries.Evas)]
489         internal static extern void evas_object_image_data_copy_set(IntPtr obj, IntPtr data);
490
491         [DllImport(Libraries.Evas)]
492         internal static extern IntPtr evas_object_image_data_get(IntPtr obj, bool forWriting);
493
494         [DllImport(Libraries.Evas)]
495         internal static extern void evas_object_image_data_set(IntPtr obj, IntPtr data);
496
497         [DllImport(Libraries.Evas)]
498         internal static extern void evas_object_image_data_update_add(IntPtr obj, int x, int y, int w, int h);
499
500         [DllImport(Libraries.Evas)]
501         internal static extern void evas_object_image_fill_set(IntPtr obj, int x, int y, int w, int h);
502
503         [DllImport(Libraries.Evas)]
504         internal static extern IntPtr evas_object_image_filled_add(IntPtr obj);
505
506         [DllImport(Libraries.Evas)]
507         internal static extern void evas_object_image_filled_set(IntPtr obj, bool setting);
508
509         [DllImport(Libraries.Evas)]
510         internal static extern void evas_object_image_memfile_set(IntPtr obj, IntPtr data, int size, string format, string key);
511
512         [DllImport(Libraries.Evas)]
513         internal static extern void evas_object_image_pixels_dirty_set(IntPtr obj, bool dirty);
514
515         [DllImport(Libraries.Evas)]
516         internal static extern void evas_object_image_save(IntPtr obj, string file, string key, string flags);
517
518         [DllImport(Libraries.Evas)]
519         internal static extern void evas_object_image_scale_hint_set(IntPtr obj, ImageScaleHint hint);
520
521         [DllImport(Libraries.Evas)]
522         internal static extern void evas_object_image_size_set(IntPtr obj, int w, int h);
523
524         [DllImport(Libraries.Evas)]
525         internal static extern void evas_object_image_smooth_scale_set(IntPtr obj, bool smoothScale);
526
527         [DllImport(Libraries.Evas)]
528         internal static extern void evas_object_image_source_set(IntPtr obj, IntPtr src);
529
530         [DllImport(Libraries.Evas)]
531         internal static extern void evas_object_image_source_visible_set(IntPtr obj, bool visible);
532
533         [DllImport(Libraries.Evas)]
534         internal static extern void evas_object_layer_set(IntPtr obj, int layer);
535
536         [DllImport(Libraries.Evas)]
537         internal static extern void evas_object_raise(IntPtr obj);
538
539         [DllImport(Libraries.Evas)]
540         internal static extern void evas_object_render_op_set(IntPtr obj, RenderOp op);
541
542         [DllImport(Libraries.Evas)]
543         internal static extern void evas_object_size_hint_aspect_set(IntPtr obj, int aspect, int w, int h);
544
545         [DllImport(Libraries.Evas)]
546         internal static extern IntPtr evas_object_smart_add(IntPtr obj, IntPtr smart);
547
548         [DllImport(Libraries.Evas)]
549         internal static extern IntPtr evas_object_smart_data_get(IntPtr obj);
550
551         [DllImport(Libraries.Evas)]
552         internal static extern void evas_object_smart_data_set(IntPtr obj, IntPtr data);
553
554         [DllImport(Libraries.Evas)]
555         internal static extern void evas_object_smart_member_add(IntPtr obj, IntPtr smart);
556
557         [DllImport(Libraries.Evas)]
558         internal static extern void evas_object_smart_member_del(IntPtr obj);
559
560         [DllImport(Libraries.Evas)]
561         internal static extern void evas_object_stack_above(IntPtr obj, IntPtr avobe);
562
563         [DllImport(Libraries.Evas)]
564         internal static extern IntPtr evas_object_text_add(IntPtr obj);
565
566         [DllImport(Libraries.Evas)]
567         internal static extern void evas_object_text_font_set(IntPtr obj, string font, int size);
568
569         [DllImport(Libraries.Evas)]
570         internal static extern void evas_object_text_text_set(IntPtr obj, string text);
571
572         [DllImport(Libraries.Evas)]
573         internal static extern IntPtr evas_object_textblock_add(IntPtr obj);
574
575         [DllImport(Libraries.Evas)]
576         internal static extern IntPtr evas_object_textblock_style_set(IntPtr obj, IntPtr textBlockStyle);
577
578         [DllImport(Libraries.Evas)]
579         internal static extern void evas_object_textblock_text_markup_set(IntPtr obj, string text);
580
581         [DllImport(Libraries.Evas)]
582         internal static extern void evas_obscured_clear(IntPtr obj);
583
584         [DllImport(Libraries.Evas)]
585         internal static extern IntPtr evas_smart_class_new(IntPtr obj);
586
587         [DllImport(Libraries.Evas, EntryPoint = "evas_device_name_get")]
588         internal static extern IntPtr _evas_device_name_get(IntPtr obj);
589
590         internal static string evas_device_name_get(IntPtr obj)
591         {
592             return Marshal.PtrToStringAnsi(_evas_device_name_get(obj));
593         }
594
595         [DllImport(Libraries.Evas)]
596         internal static extern void evas_font_path_global_clear();
597
598         [DllImport(Libraries.Evas)]
599         internal static extern IntPtr evas_object_above_get(IntPtr obj);
600
601         [DllImport(Libraries.Evas)]
602         internal static extern void evas_object_event_callback_priority_add(IntPtr obj, ObjectCallbackType type, ObjectCallbackPriority priority, EventCallback func, IntPtr data);
603
604         [DllImport(Libraries.Evas)]
605         internal static extern bool evas_object_focus_get(IntPtr obj);
606
607         [DllImport(Libraries.Evas)]
608         internal static extern bool evas_object_freeze_events_get(IntPtr obj);
609
610         [DllImport(Libraries.Evas)]
611         internal static extern int evas_object_layer_get(IntPtr obj);
612
613         [DllImport(Libraries.Evas)]
614         internal static extern void evas_object_smart_callback_priority_add(IntPtr obj, string eventName, ObjectCallbackPriority priority, EventCallback func, IntPtr data);
615
616         [DllImport(Libraries.Evas)]
617         internal static extern void evas_object_smart_clipped_smart_set(IntPtr obj);
618
619         [DllImport(Libraries.Evas)]
620         internal static extern void evas_object_table_homogeneous_set(IntPtr obj, TableHomogeneousMode mode);
621
622         [DllImport(Libraries.Evas)]
623         internal static extern bool evas_object_table_pack(IntPtr obj, IntPtr child, uint col, uint row, uint colspan, uint rowspan);
624
625         [DllImport(Libraries.Evas)]
626         internal static extern void evas_object_table_padding_set(IntPtr obj, int horizontal, int vertical);
627
628         [DllImport(Libraries.Evas)]
629         internal static extern void evas_object_text_filter_program_set(IntPtr obj, string program);
630
631         [DllImport(Libraries.Evas)]
632         internal static extern void evas_object_text_glow_color_set(IntPtr obj, int r, int g, int b, int a);
633
634         [DllImport(Libraries.Evas)]
635         internal static extern void evas_object_text_outline_color_set(IntPtr obj, int r, int g, int b, int a);
636
637         [DllImport(Libraries.Evas)]
638         internal static extern void evas_object_text_shadow_color_set(IntPtr obj, int r, int g, int b, int a);
639
640         [DllImport(Libraries.Evas)]
641         internal static extern void evas_object_text_style_set(IntPtr obj, TextStyleType type);
642
643         [DllImport(Libraries.Evas)]
644         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);
645
646         [DllImport(Libraries.Evas)]
647         internal static extern void evas_object_textblock_valign_set(IntPtr obj, double align);
648
649         [DllImport(Libraries.Evas)]
650         internal static extern int evas_string_char_len_get(string str);
651
652         [DllImport(Libraries.Evas)]
653         internal static extern int evas_textblock_style_free(IntPtr obj);
654
655         [DllImport(Libraries.Evas)]
656         internal static extern IntPtr evas_textblock_style_new();
657
658         [DllImport(Libraries.Evas)]
659         internal static extern void evas_textblock_style_set(IntPtr obj, string text);
660
661         [DllImport(Libraries.Evas)]
662         internal static extern string evas_textblock_text_markup_to_utf8(IntPtr obj, string text);
663
664         [DllImport(Libraries.Evas)]
665         internal static extern string evas_textblock_text_utf8_to_markup(IntPtr obj, string text);
666
667         [DllImport(Libraries.Evas)]
668         internal static extern void evas_obscured_rectangle_add(IntPtr obj, int x, int y, int w, int h);
669
670         [DllImport(Libraries.Evas)]
671         internal static extern void evas_render(IntPtr obj);
672
673         [DllImport(Libraries.Evas)]
674         internal static extern void evas_norender(IntPtr obj);
675
676         [DllImport(Libraries.Evas)]
677         internal static extern int evas_image_cache_get(IntPtr obj);
678
679         [DllImport(Libraries.Evas)]
680         internal static extern void evas_font_path_global_prepend(string path);
681
682         [DllImport(Libraries.Evas)]
683         internal static extern void evas_color_argb_unpremul(int a, ref int r, ref int g, ref int b);
684
685         [DllImport(Libraries.Evas)]
686         internal static extern void evas_color_hsv_to_rgb(int r, int g, int b, out float h, out float s, out float v);
687
688         [DllImport(Libraries.Evas)]
689         internal static extern void evas_color_rgb_to_hsv(float h, float s, float v, out int r, out int g, out int b);
690
691         [DllImport(Libraries.Evas)]
692         internal static extern void evas_object_stack_below(IntPtr obj, IntPtr below);
693
694         [DllImport(Libraries.Evas)]
695         internal static extern void evas_object_size_hint_aspect_get(IntPtr obj, out int aspect, out int w, out int h);
696
697         internal static void SetX(IntPtr obj, int x)
698         {
699             int y = GetY(obj);
700             evas_object_move(obj, x, y);
701         }
702
703         internal static void SetY(IntPtr obj, int y)
704         {
705             int x = GetX(obj);
706             evas_object_move(obj, x, y);
707         }
708
709         internal static void SetWidth(IntPtr obj, int w)
710         {
711             int h = GetHeight(obj);
712             evas_object_resize(obj, w, h);
713         }
714
715         internal static void SetHeight(IntPtr obj, int h)
716         {
717             int w = GetWidth(obj);
718             evas_object_resize(obj, w, h);
719         }
720
721         internal static int GetX(IntPtr obj)
722         {
723             int x;
724             evas_object_geometry_get(obj, out x, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
725             return x;
726         }
727
728         internal static int GetY(IntPtr obj)
729         {
730             int y;
731             evas_object_geometry_get(obj, IntPtr.Zero, out y, IntPtr.Zero, IntPtr.Zero);
732             return y;
733         }
734
735         internal static int GetWidth(IntPtr obj)
736         {
737             int w;
738             evas_object_geometry_get(obj, IntPtr.Zero, IntPtr.Zero, out w, IntPtr.Zero);
739             return w;
740         }
741
742         internal static int GetHeight(IntPtr obj)
743         {
744             int h;
745             evas_object_geometry_get(obj, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, out h);
746             return h;
747         }
748
749         internal static double GetAlignX(IntPtr obj)
750         {
751             double x;
752             evas_object_size_hint_align_get(obj, out x, IntPtr.Zero);
753             return x;
754         }
755
756         internal static double GetAlignY(IntPtr obj)
757         {
758             double y;
759             evas_object_size_hint_align_get(obj, IntPtr.Zero, out y);
760             return y;
761         }
762
763         internal static void SetAlignX(IntPtr obj, double x)
764         {
765             double y = GetAlignY(obj);
766             evas_object_size_hint_align_set(obj, x, y);
767         }
768
769         internal static void SetAlignY(IntPtr obj, double y)
770         {
771             double x = GetAlignX(obj);
772             evas_object_size_hint_align_set(obj, x, y);
773         }
774
775         internal static double GetWeightX(IntPtr obj)
776         {
777             double x;
778             evas_object_size_hint_weight_get(obj, out x, IntPtr.Zero);
779             return x;
780         }
781
782         internal static double GetWeightY(IntPtr obj)
783         {
784             double y;
785             evas_object_size_hint_weight_get(obj, IntPtr.Zero, out y);
786             return y;
787         }
788
789         internal static void SetWeightX(IntPtr obj, double x)
790         {
791             double y = GetWeightY(obj);
792             evas_object_size_hint_weight_set(obj, x, y);
793         }
794
795         internal static void SetWeightY(IntPtr obj, double y)
796         {
797             double x = GetWeightX(obj);
798             evas_object_size_hint_weight_set(obj, x, y);
799         }
800
801         internal static int GetAlpha(IntPtr obj)
802         {
803             int a;
804             evas_object_color_get(obj, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, out a);
805             return a;
806         }
807
808         internal static void SetAlpha(IntPtr obj, int a)
809         {
810             evas_object_color_set(obj, a, a, a, a);
811         }
812
813         internal static void SetPremultipliedColor(IntPtr obj, int r, int g, int b, int a)
814         {
815             evas_object_color_set(obj, r * a / 255, g * a / 255, b * a / 255, a);
816         }
817     }
818 }