2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Runtime.InteropServices;
20 internal static partial class Interop
22 internal static partial class Evas
24 public enum ObjectCallbackType
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 */
75 public enum Colorspace
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 */
91 public enum ImageScaleHint
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 */
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 */
114 public enum ObjectCallbackPriority
121 public enum TableHomogeneousMode
128 public enum TextStyleType
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 */
150 //public struct TextBlockStyle
153 // string DefaultTag;
159 //public struct StyleTag
163 internal delegate void EventCallback(IntPtr data, IntPtr evas, IntPtr obj, IntPtr info);
165 internal delegate void EvasCallback(IntPtr data, IntPtr evas, IntPtr info);
167 [DllImport(Libraries.Evas)]
168 internal static extern void evas_event_callback_add(IntPtr obj, ObjectCallbackType type, EvasCallback func, IntPtr data);
170 [DllImport(Libraries.Evas)]
171 internal static extern void evas_event_callback_del(IntPtr obj, ObjectCallbackType type, EvasCallback func);
173 [DllImport(Libraries.Evas)]
174 internal static extern void evas_object_event_callback_add(IntPtr obj, ObjectCallbackType type, EventCallback func, IntPtr data);
176 [DllImport(Libraries.Evas)]
177 internal static extern void evas_object_event_callback_del(IntPtr obj, ObjectCallbackType type, EventCallback func);
179 public delegate void SmartCallback(IntPtr data, IntPtr obj, IntPtr info);
181 public static readonly string BackKeyName = "XF86Back";
182 public static readonly string MenuKeyName = "XF86Menu";
184 public enum ButtonFlags
186 None, DoubleClick, TripleClick
189 [DllImport(Libraries.Evas)]
190 internal static extern bool evas_object_key_grab(IntPtr obj, string keyname, ulong modifier, ulong not_modifier, bool exclusive);
192 [DllImport(Libraries.Evas)]
193 internal static extern void evas_object_key_ungrab(IntPtr obj, string keyname, ulong modifier, ulong not_modifier);
195 [DllImport(Libraries.Evas)]
196 internal static extern IntPtr evas_object_data_get(IntPtr obj, string keyname);
198 [DllImport(Libraries.Evas)]
199 internal static extern void evas_object_data_set(IntPtr obj, string keyname, IntPtr data);
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);
204 internal static string evas_object_type_get(IntPtr obj)
206 var text = _evas_object_type_get(obj);
207 return Marshal.PtrToStringAnsi(text);
210 [DllImport(Libraries.Evas)]
211 internal static extern IntPtr evas_object_evas_get(IntPtr obj);
213 [DllImport(Libraries.Evas)]
214 internal static extern void evas_object_del(IntPtr objectPtr);
216 [DllImport(Libraries.Evas)]
217 internal static extern void evas_object_show(IntPtr obj);
219 [DllImport(Libraries.Evas)]
220 internal static extern void evas_object_hide(IntPtr obj);
222 [DllImport(Libraries.Evas)]
223 internal static extern bool evas_object_visible_get(IntPtr obj);
225 [DllImport(Libraries.Evas)]
226 internal static extern void evas_object_smart_callback_add(IntPtr obj, string eventName, SmartCallback seh, IntPtr data);
228 [DllImport(Libraries.Evas)]
229 internal static extern void evas_object_smart_callback_del(IntPtr obj, string eventName, SmartCallback seh);
231 [DllImport(Libraries.Evas)]
232 internal static extern void evas_object_size_hint_min_set(IntPtr obj, int w, int h);
234 [DllImport(Libraries.Evas)]
235 internal static extern void evas_object_size_hint_min_get(IntPtr obj, out int w, out int h);
237 [DllImport(Libraries.Evas)]
238 internal static extern void evas_object_size_hint_min_get(IntPtr obj, IntPtr w, out int h);
240 [DllImport(Libraries.Evas)]
241 internal static extern void evas_object_size_hint_min_get(IntPtr obj, out int w, IntPtr h);
243 [DllImport(Libraries.Evas)]
244 internal static extern void evas_object_size_hint_max_set(IntPtr obj, int w, int h);
246 [DllImport(Libraries.Evas)]
247 internal static extern void evas_object_size_hint_max_get(IntPtr obj, out int w, out int h);
249 [DllImport(Libraries.Evas)]
250 internal static extern void evas_object_size_hint_max_get(IntPtr obj, IntPtr w, out int h);
252 [DllImport(Libraries.Evas)]
253 internal static extern void evas_object_size_hint_max_get(IntPtr obj, out int w, IntPtr h);
255 [DllImport(Libraries.Evas)]
256 internal static extern void evas_object_size_hint_weight_get(IntPtr obj, out double x, out double y);
258 [DllImport(Libraries.Evas)]
259 internal static extern void evas_object_size_hint_weight_get(IntPtr obj, out double x, IntPtr y);
261 [DllImport(Libraries.Evas)]
262 internal static extern void evas_object_size_hint_weight_get(IntPtr obj, IntPtr x, out double y);
264 [DllImport(Libraries.Evas)]
265 internal static extern void evas_object_size_hint_align_get(IntPtr obj, out double x, out double y);
267 [DllImport(Libraries.Evas)]
268 internal static extern void evas_object_size_hint_align_get(IntPtr obj, out double x, IntPtr y);
270 [DllImport(Libraries.Evas)]
271 internal static extern void evas_object_size_hint_align_get(IntPtr obj, IntPtr x, out double y);
273 [DllImport(Libraries.Evas)]
274 internal static extern void evas_object_size_hint_weight_set(IntPtr obj, double x, double y);
276 [DllImport(Libraries.Evas)]
277 internal static extern void evas_object_size_hint_align_set(IntPtr obj, double x, double y);
279 [DllImport(Libraries.Evas)]
280 internal static extern void evas_object_move(IntPtr obj, int x, int y);
282 [DllImport(Libraries.Evas)]
283 internal static extern void evas_object_resize(IntPtr obj, int w, int h);
285 [DllImport(Libraries.Evas)]
286 internal static extern void evas_object_geometry_set(IntPtr obj, int x, int y, int w, int h);
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);
291 [DllImport(Libraries.Evas)]
292 internal static extern void evas_object_geometry_get(IntPtr obj, out int x, IntPtr y, IntPtr w, IntPtr h);
294 [DllImport(Libraries.Evas)]
295 internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, out int y, IntPtr w, IntPtr h);
297 [DllImport(Libraries.Evas)]
298 internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, out int w, IntPtr h);
300 [DllImport(Libraries.Evas)]
301 internal static extern void evas_object_geometry_get(IntPtr obj, IntPtr x, IntPtr y, IntPtr w, out int h);
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);
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);
309 [DllImport(Libraries.Evas)]
310 internal static extern IntPtr evas_object_smart_members_get(IntPtr obj);
312 [DllImport(Libraries.Evas)]
313 internal static extern IntPtr evas_map_new(int count);
315 [DllImport(Libraries.Evas)]
316 internal static extern void evas_map_util_points_populate_from_object_full(IntPtr map, IntPtr obj, int z);
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);
321 [DllImport(Libraries.Evas)]
322 internal static extern void evas_map_util_rotate(IntPtr map, double degree, int cx, int cy);
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);
327 [DllImport(Libraries.Evas)]
328 internal static extern void evas_map_util_zoom(IntPtr map, double x, double y, int cx, int cy);
330 [DllImport(Libraries.Evas)]
331 internal static extern void evas_map_point_coord_set(IntPtr map, int idx, int x, int y, int z);
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);
336 [DllImport(Libraries.Evas)]
337 internal static extern void evas_object_map_enable_set(IntPtr obj, bool enabled);
339 [DllImport(Libraries.Evas)]
340 internal static extern bool evas_object_map_enable_get(IntPtr obj);
342 [DllImport(Libraries.Evas)]
343 internal static extern void evas_map_util_object_move_sync_set(IntPtr map, bool enabled);
345 [DllImport(Libraries.Evas)]
346 internal static extern bool evas_map_util_object_move_sync_get(IntPtr map);
348 [DllImport(Libraries.Evas)]
349 internal static extern void evas_object_map_set(IntPtr obj, IntPtr map);
351 [DllImport(Libraries.Evas)]
352 internal static extern IntPtr evas_object_map_get(IntPtr obj);
354 [DllImport(Libraries.Evas)]
355 internal static extern void evas_map_free(IntPtr map);
357 [DllImport(Libraries.Evas)]
358 internal static extern IntPtr evas_object_polygon_add(IntPtr evas);
360 [DllImport(Libraries.Evas)]
361 internal static extern IntPtr evas_object_polygon_point_add(IntPtr evas, int x, int y);
363 [DllImport(Libraries.Evas)]
364 internal static extern IntPtr evas_object_polygon_points_clear(IntPtr evas);
366 [DllImport(Libraries.Evas)]
367 internal static extern IntPtr evas_object_rectangle_add(IntPtr evas);
369 [DllImport(Libraries.Evas)]
370 internal static extern void evas_object_color_set(IntPtr obj, int r, int g, int b, int a);
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);
375 [DllImport(Libraries.Evas)]
376 internal static extern void evas_object_color_get(IntPtr obj, IntPtr r, IntPtr g, IntPtr b, out int a);
378 [DllImport(Libraries.Evas)]
379 internal static extern void evas_object_clip_set(IntPtr obj, IntPtr clip);
381 [DllImport(Libraries.Evas)]
382 internal static extern void evas_object_clip_unset(IntPtr obj);
384 [DllImport(Libraries.Evas)]
385 internal static extern IntPtr evas_object_clip_get(IntPtr obj);
387 [DllImport(Libraries.Evas)]
388 internal static extern void evas_object_lower(IntPtr obj);
390 [DllImport(Libraries.Evas)]
391 internal static extern void evas_event_feed_mouse_move(IntPtr obj, int x, int y, int timestamp, IntPtr data);
393 [DllImport(Libraries.Evas)]
394 internal static extern void evas_event_feed_mouse_down(IntPtr obj, int b, ButtonFlags flags, int timestamp, IntPtr data);
396 [DllImport(Libraries.Evas)]
397 internal static extern void evas_event_feed_mouse_up(IntPtr obj, int b, ButtonFlags flags, int timestamp, IntPtr data);
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);
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);
405 [DllImport(Libraries.Evas)]
406 internal static extern void evas_object_ref(IntPtr obj);
408 [DllImport(Libraries.Evas)]
409 internal static extern void evas_object_unref(IntPtr obj);
411 [DllImport(Libraries.Evas)]
412 internal static extern int evas_object_ref_get(IntPtr obj);
414 [DllImport(Libraries.Evas)]
415 internal static extern void evas_object_repeat_events_set(IntPtr obj, bool repeat);
417 [DllImport(Libraries.Evas)]
418 [return: MarshalAs(UnmanagedType.U1)]
419 internal static extern bool evas_object_repeat_events_get(IntPtr obj);
421 [DllImport(Libraries.Evas)]
422 internal static extern void evas_object_propagate_events_set(IntPtr obj, bool propagate);
424 [DllImport(Libraries.Evas)]
425 [return: MarshalAs(UnmanagedType.U1)]
426 internal static extern bool evas_object_propagate_events_get(IntPtr obj);
428 [DllImport(Libraries.Evas)]
429 internal static extern void evas_object_pass_events_set(IntPtr obj, bool propagate);
431 [DllImport(Libraries.Evas)]
432 [return: MarshalAs(UnmanagedType.U1)]
433 internal static extern bool evas_object_pass_events_get(IntPtr obj);
435 [DllImport(Libraries.Evas)]
436 internal static extern void evas_object_textblock_size_native_get(IntPtr obj, out int w, out int h);
438 [DllImport(Libraries.Evas)]
439 internal static extern void evas_object_textblock_size_formatted_get(IntPtr obj, out int w, out int h);
441 [DllImport(Libraries.Evas)]
442 internal static extern void evas_object_smart_changed(IntPtr obj);
444 [DllImport(Libraries.Evas)]
445 internal static extern void evas_object_smart_calculate(IntPtr obj);
447 [DllImport(Libraries.Evas)]
448 internal static extern void evas_color_argb_premul(int a, ref int r, ref int g, ref int b);
450 [DllImport(Libraries.Evas)]
451 internal static extern void evas_damage_rectangle_add(IntPtr obj, int x, int y, int w, int h);
453 [DllImport(Libraries.Evas)]
454 internal static extern void evas_data_argb_premul(uint data, uint length);
456 [DllImport(Libraries.Evas)]
457 internal static extern void evas_event_callback_del_full(IntPtr obj, ObjectCallbackType type, EvasCallback func, IntPtr data);
459 [DllImport(Libraries.Evas)]
460 internal static extern void evas_font_path_global_append(string path);
462 [DllImport(Libraries.Evas)]
463 internal static extern void evas_image_cache_flush(IntPtr obj);
465 [DllImport(Libraries.Evas)]
466 internal static extern void evas_image_cache_set(IntPtr obj, int size);
468 [DllImport(Libraries.Evas)]
469 internal static extern void evas_pointer_canvas_xy_get(IntPtr obj, out int mx, out int my);
471 [DllImport(Libraries.Evas, EntryPoint = "evas_load_error_str")]
472 internal static extern IntPtr _evas_load_error_str(LoadError error);
474 internal static string evas_load_error_str(LoadError error)
476 return Marshal.PtrToStringAnsi(_evas_load_error_str(error));
479 [DllImport(Libraries.Evas)]
480 internal static extern IntPtr evas_object_data_del(IntPtr obj, string key);
482 [DllImport(Libraries.Evas)]
483 internal static extern void evas_object_focus_set(IntPtr obj, bool focus);
485 [DllImport(Libraries.Evas)]
486 internal static extern void evas_object_freeze_events_set(IntPtr obj, bool freeze);
488 [DllImport(Libraries.Evas)]
489 internal static extern void evas_object_layer_set(IntPtr obj, int layer);
491 [DllImport(Libraries.Evas)]
492 internal static extern void evas_object_raise(IntPtr obj);
494 [DllImport(Libraries.Evas)]
495 internal static extern void evas_object_render_op_set(IntPtr obj, RenderOp op);
497 [DllImport(Libraries.Evas)]
498 internal static extern RenderOp evas_object_render_op_get(IntPtr obj);
500 [DllImport(Libraries.Evas)]
501 internal static extern void evas_object_size_hint_aspect_set(IntPtr obj, int aspect, int w, int h);
503 [DllImport(Libraries.Evas)]
504 internal static extern IntPtr evas_object_smart_add(IntPtr obj, IntPtr smart);
506 [DllImport(Libraries.Evas)]
507 internal static extern IntPtr evas_object_smart_data_get(IntPtr obj);
509 [DllImport(Libraries.Evas)]
510 internal static extern void evas_object_smart_data_set(IntPtr obj, IntPtr data);
512 [DllImport(Libraries.Evas)]
513 internal static extern void evas_object_smart_member_add(IntPtr obj, IntPtr smart);
515 [DllImport(Libraries.Evas)]
516 internal static extern void evas_object_smart_member_del(IntPtr obj);
518 [DllImport(Libraries.Evas)]
519 internal static extern void evas_object_stack_above(IntPtr obj, IntPtr avobe);
521 [DllImport(Libraries.Evas)]
522 internal static extern IntPtr evas_object_text_add(IntPtr obj);
524 [DllImport(Libraries.Evas)]
525 internal static extern void evas_object_text_font_set(IntPtr obj, string font, int size);
527 [DllImport(Libraries.Evas)]
528 internal static extern void evas_object_text_text_set(IntPtr obj, string text);
530 [DllImport(Libraries.Evas)]
531 internal static extern IntPtr evas_object_textblock_add(IntPtr obj);
533 [DllImport(Libraries.Evas)]
534 internal static extern IntPtr evas_object_textblock_style_set(IntPtr obj, IntPtr textBlockStyle);
536 [DllImport(Libraries.Evas)]
537 internal static extern void evas_object_textblock_text_markup_set(IntPtr obj, string text);
539 [DllImport(Libraries.Evas)]
540 internal static extern void evas_obscured_clear(IntPtr obj);
542 [DllImport(Libraries.Evas)]
543 internal static extern IntPtr evas_smart_class_new(IntPtr obj);
545 [DllImport(Libraries.Evas, EntryPoint = "evas_device_name_get")]
546 internal static extern IntPtr _evas_device_name_get(IntPtr obj);
548 internal static string evas_device_name_get(IntPtr obj)
550 return Marshal.PtrToStringAnsi(_evas_device_name_get(obj));
553 [DllImport(Libraries.Evas)]
554 internal static extern void evas_font_path_global_clear();
556 [DllImport(Libraries.Evas)]
557 internal static extern IntPtr evas_object_above_get(IntPtr obj);
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);
562 [DllImport(Libraries.Evas)]
563 internal static extern bool evas_object_focus_get(IntPtr obj);
565 [DllImport(Libraries.Evas)]
566 internal static extern bool evas_object_freeze_events_get(IntPtr obj);
568 [DllImport(Libraries.Evas)]
569 internal static extern int evas_object_layer_get(IntPtr obj);
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);
574 [DllImport(Libraries.Evas)]
575 internal static extern void evas_object_smart_clipped_smart_set(IntPtr obj);
577 [DllImport(Libraries.Evas)]
578 internal static extern void evas_object_table_homogeneous_set(IntPtr obj, TableHomogeneousMode mode);
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);
583 [DllImport(Libraries.Evas)]
584 internal static extern void evas_object_table_padding_set(IntPtr obj, int horizontal, int vertical);
586 [DllImport(Libraries.Evas)]
587 internal static extern void evas_object_text_filter_program_set(IntPtr obj, string program);
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);
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);
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);
598 [DllImport(Libraries.Evas)]
599 internal static extern void evas_object_text_style_set(IntPtr obj, TextStyleType type);
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);
604 [DllImport(Libraries.Evas)]
605 internal static extern void evas_object_textblock_valign_set(IntPtr obj, double align);
607 [DllImport(Libraries.Evas)]
608 internal static extern int evas_string_char_len_get(string str);
610 [DllImport(Libraries.Evas)]
611 internal static extern int evas_textblock_style_free(IntPtr obj);
613 [DllImport(Libraries.Evas)]
614 internal static extern IntPtr evas_textblock_style_new();
616 [DllImport(Libraries.Evas)]
617 internal static extern void evas_textblock_style_set(IntPtr obj, string text);
619 [DllImport(Libraries.Evas)]
620 internal static extern string evas_textblock_text_markup_to_utf8(IntPtr obj, string text);
622 [DllImport(Libraries.Evas)]
623 internal static extern string evas_textblock_text_utf8_to_markup(IntPtr obj, string text);
625 [DllImport(Libraries.Evas)]
626 internal static extern void evas_obscured_rectangle_add(IntPtr obj, int x, int y, int w, int h);
628 [DllImport(Libraries.Evas)]
629 internal static extern void evas_render(IntPtr obj);
631 [DllImport(Libraries.Evas)]
632 internal static extern void evas_norender(IntPtr obj);
634 [DllImport(Libraries.Evas)]
635 internal static extern int evas_image_cache_get(IntPtr obj);
637 [DllImport(Libraries.Evas)]
638 internal static extern void evas_font_path_global_prepend(string path);
640 [DllImport(Libraries.Evas)]
641 internal static extern void evas_font_reinit();
643 [DllImport(Libraries.Evas)]
644 internal static extern void evas_color_argb_unpremul(int a, ref int r, ref int g, ref int b);
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);
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);
652 [DllImport(Libraries.Evas)]
653 internal static extern void evas_object_stack_below(IntPtr obj, IntPtr below);
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);
658 internal static void SetX(IntPtr obj, int x)
661 evas_object_move(obj, x, y);
664 internal static void SetY(IntPtr obj, int y)
667 evas_object_move(obj, x, y);
670 internal static void SetWidth(IntPtr obj, int w)
672 int h = GetHeight(obj);
673 evas_object_resize(obj, w, h);
676 internal static void SetHeight(IntPtr obj, int h)
678 int w = GetWidth(obj);
679 evas_object_resize(obj, w, h);
682 internal static int GetX(IntPtr obj)
685 evas_object_geometry_get(obj, out x, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
689 internal static int GetY(IntPtr obj)
692 evas_object_geometry_get(obj, IntPtr.Zero, out y, IntPtr.Zero, IntPtr.Zero);
696 internal static int GetWidth(IntPtr obj)
699 evas_object_geometry_get(obj, IntPtr.Zero, IntPtr.Zero, out w, IntPtr.Zero);
703 internal static int GetHeight(IntPtr obj)
706 evas_object_geometry_get(obj, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, out h);
710 internal static double GetAlignX(IntPtr obj)
713 evas_object_size_hint_align_get(obj, out x, IntPtr.Zero);
717 internal static double GetAlignY(IntPtr obj)
720 evas_object_size_hint_align_get(obj, IntPtr.Zero, out y);
724 internal static void SetAlignX(IntPtr obj, double x)
726 double y = GetAlignY(obj);
727 evas_object_size_hint_align_set(obj, x, y);
730 internal static void SetAlignY(IntPtr obj, double y)
732 double x = GetAlignX(obj);
733 evas_object_size_hint_align_set(obj, x, y);
736 internal static double GetWeightX(IntPtr obj)
739 evas_object_size_hint_weight_get(obj, out x, IntPtr.Zero);
743 internal static double GetWeightY(IntPtr obj)
746 evas_object_size_hint_weight_get(obj, IntPtr.Zero, out y);
750 internal static void SetWeightX(IntPtr obj, double x)
752 double y = GetWeightY(obj);
753 evas_object_size_hint_weight_set(obj, x, y);
756 internal static void SetWeightY(IntPtr obj, double y)
758 double x = GetWeightX(obj);
759 evas_object_size_hint_weight_set(obj, x, y);
762 internal static int GetAlpha(IntPtr obj)
765 evas_object_color_get(obj, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, out a);
769 internal static void SetAlpha(IntPtr obj, int a)
771 evas_object_color_set(obj, a, a, a, a);
774 internal static void SetPremultipliedColor(IntPtr obj, int r, int g, int b, int a)
776 evas_object_color_set(obj, r * a / 255, g * a / 255, b * a / 255, a);