1 #pragma warning disable CS1591
3 using System.Runtime.InteropServices;
4 using System.Collections.Generic;
6 using System.Threading;
7 using System.ComponentModel;
12 /// <summary>Efl font size type</summary>
17 /// <summary>Converts an instance of int to this struct.</summary>
18 /// <param name="value">The value to be converted.</param>
19 /// <returns>A struct with the given value.</returns>
20 public static implicit operator Size(int value)
22 return new Size{payload=value};
25 /// <summary>Converts an instance of this struct to int.</summary>
26 /// <param name="value">The value to be converted packed in this struct.</param>
27 /// <returns>The actual value the alias is wrapping.</returns>
28 public static implicit operator int(Size value)
43 /// <summary>Graphics colorspace type</summary>
44 [Efl.Eo.BindingEntity]
45 public enum Colorspace
47 /// <summary>ARGB 32 bits per pixel, high-byte is Alpha, accessed one 32bit word at a time.</summary>
49 /// <summary>YCbCr 4:2:2 Planar, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows.</summary>
51 /// <summary>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.</summary>
53 /// <summary>16bit rgb565 + Alpha plane at end - 5 bits of the 8 being used per alpha byte.</summary>
55 /// <summary>8-bit gray image, or alpha only.</summary>
57 /// <summary>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.</summary>
59 /// <summary>YCbCr 4:2:0, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb,Cr rows..</summary>
60 Ycbcr420nv12601Pl = 6,
61 /// <summary>YCbCr 4:2:0, ITU.BT-601 specifications. The data pointed to is just an array of tiled row pointer, pointing to the Y rows, then the Cb,Cr rows..</summary>
62 Ycbcr420tm12601Pl = 7,
63 /// <summary>AY 8bits Alpha and 8bits Grey, accessed 1 16bits at a time.</summary>
65 /// <summary>OpenGL ETC1 encoding of RGB texture (4 bit per pixel)
66 /// (Since EFL 1.10.)</summary>
68 /// <summary>OpenGL GL_COMPRESSED_RGB8_ETC2 texture compression format (4 bit per pixel)
69 /// (Since EFL 1.10.)</summary>
71 /// <summary>OpenGL GL_COMPRESSED_RGBA8_ETC2_EAC texture compression format, supports alpha (8 bit per pixel)
72 /// (Since EFL 1.10.)</summary>
74 /// <summary>ETC1 with alpha support using two planes: ETC1 RGB and ETC1 grey for alpha
75 /// (Since EFL 1.11.)</summary>
77 /// <summary>OpenGL COMPRESSED_RGB_S3TC_DXT1_EXT format with RGB only.
78 /// (Since EFL 1.11.)</summary>
80 /// <summary>OpenGL COMPRESSED_RGBA_S3TC_DXT1_EXT format with RGBA punchthrough.
81 /// (Since EFL 1.11.)</summary>
83 /// <summary>DirectDraw DXT2 format with premultiplied RGBA. Not supported by OpenGL itself.
84 /// (Since EFL 1.11.)</summary>
86 /// <summary>OpenGL COMPRESSED_RGBA_S3TC_DXT3_EXT format with RGBA.
87 /// (Since EFL 1.11.)</summary>
89 /// <summary>DirectDraw DXT4 format with premultiplied RGBA. Not supported by OpenGL itself.
90 /// (Since EFL 1.11.)</summary>
92 /// <summary>OpenGL COMPRESSED_RGBA_S3TC_DXT5_EXT format with RGBA.
93 /// (Since EFL 1.11.)</summary>
106 /// <summary>Graphics render operation mode</summary>
107 [Efl.Eo.BindingEntity]
110 /// <summary>Alpha blending onto destination (default); d = d*(1-sa) + s.</summary>
112 /// <summary>Copy source to destination; d = s.</summary>
114 /// <summary>Sentinel value to indicate last enum field during iteration</summary>
126 /// <summary>These values determine how the points are interpreted in a stream of points.
127 /// (Since EFL 1.14)</summary>
128 [Efl.Eo.BindingEntity]
129 public enum PathCommandType
131 /// <summary>The end of stream , no more points to process.</summary>
133 /// <summary>The next point is the start point of a sub path.</summary>
135 /// <summary>The next point is used to draw a line from current point.</summary>
137 /// <summary>The next three point is used to draw a cubic bezier curve from current point.</summary>
139 /// <summary>Close the current subpath by drawing a line between current point and the first point of current subpath.</summary>
141 /// <summary>Sentinel value to indicate last enum field during iteration</summary>
153 /// <summary>These values determine how the end of opened sub-paths are rendered in a stroke. <see cref="Efl.Gfx.IShape.SetStrokeCap"/>
154 /// (Since EFL 1.14)</summary>
155 [Efl.Eo.BindingEntity]
158 /// <summary>The end of lines is rendered as a full stop on the last point itself.</summary>
160 /// <summary>The end of lines is rendered as a half-circle around the last point.</summary>
162 /// <summary>The end of lines is rendered as a square around the last point.</summary>
164 /// <summary>Sentinel value to indicate last enum field during iteration</summary>
176 /// <summary>These values determine how two joining lines are rendered in a stroker. <see cref="Efl.Gfx.IShape.SetStrokeJoin"/>
177 /// (Since EFL 1.14)</summary>
178 [Efl.Eo.BindingEntity]
181 /// <summary>Used to render rounded line joins. Circular arcs are used to join two lines smoothly.</summary>
183 /// <summary>Used to render beveled line joins. The outer corner of the joined lines is filled by enclosing the triangular region of the corner with a straight line between the outer corners of each stroke.</summary>
185 /// <summary>Used to render mitered line joins. The intersection of the strokes is clipped at a line perpendicular to the bisector of the angle between the strokes, at the distance from the intersection of the segments equal to the product of the miter limit value and the border radius. This prevents long spikes being created.</summary>
187 /// <summary>Sentinel value to indicate last enum field during iteration</summary>
199 /// <summary>Specifies how the area outside the gradient area should be filled. <see cref="Efl.Gfx.IGradient.SetSpread"/>
200 /// (Since EFL 1.14)</summary>
201 [Efl.Eo.BindingEntity]
202 public enum GradientSpread
204 /// <summary>The area is filled with the closest stop color. This is the default.</summary>
206 /// <summary>The gradient is reflected outside the gradient area.</summary>
208 /// <summary>The gradient is repeated outside the gradient area.</summary>
210 /// <summary>Sentinel value to indicate last enum field during iteration</summary>
222 /// <summary>Type defining how an image content get filled.
223 /// (Since EFL 1.14)</summary>
224 [Efl.Eo.BindingEntity]
227 /// <summary>Draw a horizontal line from the point to a location outside the shape. Determine whether the direction of the line at each intersection point is up or down. The winding number is determined by summing the direction of each intersection. If the number is non zero, the point is inside the shape. This mode is the default</summary>
229 /// <summary>Draw a horizontal line from the point to a location outside the shape, and count the number of intersections. If the number of intersections is an odd number, the point is inside the shape.</summary>
241 /// <summary>How an image's center region (the complement to the border region) should be rendered by EFL</summary>
242 [Efl.Eo.BindingEntity]
243 public enum BorderFillMode
245 /// <summary>Image's center region is <c>not</c> to be rendered</summary>
247 /// <summary>Image's center region is to be <c>blended</c> with objects underneath it, if it has transparency. This is the default behavior for image objects</summary>
249 /// <summary>Image's center region is to be made solid, even if it has transparency on it</summary>
261 /// <summary>What property got changed for this object
262 /// (Since EFL 1.18)</summary>
263 [Efl.Eo.BindingEntity]
264 public enum ChangeFlag
266 /// <summary>Nothing changed.</summary>
268 /// <summary>Matrix got changed.</summary>
270 /// <summary>Path got changed.</summary>
272 /// <summary>Coloring or fill information changed, not geometry.</summary>
274 /// <summary>All properties got changed.</summary>
286 /// <summary>Aspect types/policies for scaling size hints.
287 /// See also <see cref="Efl.Gfx.IHint.GetHintAspect"/>.</summary>
288 [Efl.Eo.BindingEntity]
289 public enum HintAspect
291 /// <summary>No preference on either direction of the container for aspect ratio control.</summary>
293 /// <summary>Same effect as disabling aspect ratio preference</summary>
295 /// <summary>Use all horizontal container space to place an object, using the given aspect.</summary>
297 /// <summary>Use all vertical container space to place an object, using the given aspect.</summary>
299 /// <summary>Use all horizontal and vertical container spaces to place an object (never growing it out of those bounds), using the given aspect.</summary>
311 /// <summary>Efl Gfx Color Class layer enum</summary>
312 [Efl.Eo.BindingEntity]
313 public enum ColorClassLayer
315 /// <summary>Default color</summary>
317 /// <summary>Outline color</summary>
319 /// <summary>Shadow color</summary>
331 /// <summary>Type describing dash. <see cref="Efl.Gfx.IShape.GetStrokeDash"/>
332 /// (Since EFL 1.14)</summary>
333 [StructLayout(LayoutKind.Sequential)]
334 [Efl.Eo.BindingEntity]
337 /// <summary>Dash drawing length.</summary>
338 public double Length;
339 /// <summary>Distance between two dashes.</summary>
341 /// <summary>Constructor for Dash.</summary>
342 /// <param name="Length">Dash drawing length.</param>;
343 /// <param name="Gap">Distance between two dashes.</param>;
345 double Length = default(double),
346 double Gap = default(double) )
348 this.Length = Length;
352 /// <summary>Implicit conversion to the managed representation from a native pointer.</summary>
353 /// <param name="ptr">Native pointer to be converted.</param>
354 public static implicit operator Dash(IntPtr ptr)
356 var tmp = (Dash.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Dash.NativeStruct));
360 #pragma warning disable CS1591
362 /// <summary>Internal wrapper for struct Dash.</summary>
363 [StructLayout(LayoutKind.Sequential)]
364 public struct NativeStruct
367 public double Length;
370 /// <summary>Implicit conversion to the internal/marshalling representation.</summary>
371 public static implicit operator Dash.NativeStruct(Dash _external_struct)
373 var _internal_struct = new Dash.NativeStruct();
374 _internal_struct.Length = _external_struct.Length;
375 _internal_struct.Gap = _external_struct.Gap;
376 return _internal_struct;
379 /// <summary>Implicit conversion to the managed representation.</summary>
380 public static implicit operator Dash(Dash.NativeStruct _internal_struct)
382 var _external_struct = new Dash();
383 _external_struct.Length = _internal_struct.Length;
384 _external_struct.Gap = _internal_struct.Gap;
385 return _external_struct;
390 #pragma warning restore CS1591
402 /// <summary>Type defining gradient stops. Describes the location and color of a transition point in a gradient.
403 /// (Since EFL 1.14)</summary>
404 [StructLayout(LayoutKind.Sequential)]
405 [Efl.Eo.BindingEntity]
406 public struct GradientStop
408 /// <summary>The location of the gradient stop within the gradient vector</summary>
409 public double Offset;
410 /// <summary>The component R color of the gradient stop</summary>
412 /// <summary>The component G color of the gradient stop</summary>
414 /// <summary>The component B color of the gradient stop</summary>
416 /// <summary>The component A color of the gradient stop</summary>
418 /// <summary>Constructor for GradientStop.</summary>
419 /// <param name="Offset">The location of the gradient stop within the gradient vector</param>;
420 /// <param name="R">The component R color of the gradient stop</param>;
421 /// <param name="G">The component G color of the gradient stop</param>;
422 /// <param name="B">The component B color of the gradient stop</param>;
423 /// <param name="A">The component A color of the gradient stop</param>;
425 double Offset = default(double),
426 int R = default(int),
427 int G = default(int),
428 int B = default(int),
429 int A = default(int) )
431 this.Offset = Offset;
438 /// <summary>Implicit conversion to the managed representation from a native pointer.</summary>
439 /// <param name="ptr">Native pointer to be converted.</param>
440 public static implicit operator GradientStop(IntPtr ptr)
442 var tmp = (GradientStop.NativeStruct)Marshal.PtrToStructure(ptr, typeof(GradientStop.NativeStruct));
446 #pragma warning disable CS1591
448 /// <summary>Internal wrapper for struct GradientStop.</summary>
449 [StructLayout(LayoutKind.Sequential)]
450 public struct NativeStruct
453 public double Offset;
462 /// <summary>Implicit conversion to the internal/marshalling representation.</summary>
463 public static implicit operator GradientStop.NativeStruct(GradientStop _external_struct)
465 var _internal_struct = new GradientStop.NativeStruct();
466 _internal_struct.Offset = _external_struct.Offset;
467 _internal_struct.R = _external_struct.R;
468 _internal_struct.G = _external_struct.G;
469 _internal_struct.B = _external_struct.B;
470 _internal_struct.A = _external_struct.A;
471 return _internal_struct;
474 /// <summary>Implicit conversion to the managed representation.</summary>
475 public static implicit operator GradientStop(GradientStop.NativeStruct _internal_struct)
477 var _external_struct = new GradientStop();
478 _external_struct.Offset = _internal_struct.Offset;
479 _external_struct.R = _internal_struct.R;
480 _external_struct.G = _internal_struct.G;
481 _external_struct.B = _internal_struct.B;
482 _external_struct.A = _internal_struct.A;
483 return _external_struct;
488 #pragma warning restore CS1591
500 /// <summary>Internal structure for <see cref="Efl.Gfx.Stroke"/>.</summary>
501 [StructLayout(LayoutKind.Sequential)]
502 [Efl.Eo.BindingEntity]
503 public struct StrokeColor
505 /// <summary>The component R color of the stroke</summary>
507 /// <summary>The component G color of the stroke</summary>
509 /// <summary>The component B color of the stroke</summary>
511 /// <summary>The component A color of the stroke</summary>
513 /// <summary>Constructor for StrokeColor.</summary>
514 /// <param name="R">The component R color of the stroke</param>;
515 /// <param name="G">The component G color of the stroke</param>;
516 /// <param name="B">The component B color of the stroke</param>;
517 /// <param name="A">The component A color of the stroke</param>;
519 int R = default(int),
520 int G = default(int),
521 int B = default(int),
522 int A = default(int) )
530 /// <summary>Implicit conversion to the managed representation from a native pointer.</summary>
531 /// <param name="ptr">Native pointer to be converted.</param>
532 public static implicit operator StrokeColor(IntPtr ptr)
534 var tmp = (StrokeColor.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StrokeColor.NativeStruct));
538 #pragma warning disable CS1591
540 /// <summary>Internal wrapper for struct StrokeColor.</summary>
541 [StructLayout(LayoutKind.Sequential)]
542 public struct NativeStruct
552 /// <summary>Implicit conversion to the internal/marshalling representation.</summary>
553 public static implicit operator StrokeColor.NativeStruct(StrokeColor _external_struct)
555 var _internal_struct = new StrokeColor.NativeStruct();
556 _internal_struct.R = _external_struct.R;
557 _internal_struct.G = _external_struct.G;
558 _internal_struct.B = _external_struct.B;
559 _internal_struct.A = _external_struct.A;
560 return _internal_struct;
563 /// <summary>Implicit conversion to the managed representation.</summary>
564 public static implicit operator StrokeColor(StrokeColor.NativeStruct _internal_struct)
566 var _external_struct = new StrokeColor();
567 _external_struct.R = _internal_struct.R;
568 _external_struct.G = _internal_struct.G;
569 _external_struct.B = _internal_struct.B;
570 _external_struct.A = _internal_struct.A;
571 return _external_struct;
576 #pragma warning restore CS1591
588 /// <summary>Type defining stroke information. Describes the properties to define the path stroke.
589 /// (Since EFL 1.14)</summary>
590 [StructLayout(LayoutKind.Sequential)]
591 [Efl.Eo.BindingEntity]
594 /// <summary>Stroke scale</summary>
596 /// <summary>Stroke width</summary>
598 /// <summary>Stroke centered</summary>
599 public double Centered;
600 /// <summary>Stroke color</summary>
601 /// <value>Internal structure for @Efl.Gfx.Stroke.</value>
602 public Efl.Gfx.StrokeColor Color;
603 /// <summary>Stroke dash</summary>
604 /// <value>Type describing dash. @Efl.Gfx.Shape.stroke_dash.set</value>
605 public Efl.Gfx.Dash Dash;
606 /// <summary>Stroke dash length</summary>
607 public uint Dash_length;
608 /// <summary>Stroke cap</summary>
609 /// <value>These values determine how the end of opened sub-paths are rendered in a stroke. @Efl.Gfx.Shape.stroke_cap.set</value>
610 public Efl.Gfx.Cap Cap;
611 /// <summary>Stroke join</summary>
612 /// <value>These values determine how two joining lines are rendered in a stroker. @Efl.Gfx.Shape.stroke_join.set</value>
613 public Efl.Gfx.Join Join;
614 /// <summary>Stroke miterlimit</summary>
615 public double Miterlimit;
616 /// <summary>Constructor for Stroke.</summary>
617 /// <param name="Scale">Stroke scale</param>;
618 /// <param name="Width">Stroke width</param>;
619 /// <param name="Centered">Stroke centered</param>;
620 /// <param name="Color">Stroke color</param>;
621 /// <param name="Dash">Stroke dash</param>;
622 /// <param name="Dash_length">Stroke dash length</param>;
623 /// <param name="Cap">Stroke cap</param>;
624 /// <param name="Join">Stroke join</param>;
625 /// <param name="Miterlimit">Stroke miterlimit</param>;
627 double Scale = default(double),
628 double Width = default(double),
629 double Centered = default(double),
630 Efl.Gfx.StrokeColor Color = default(Efl.Gfx.StrokeColor),
631 Efl.Gfx.Dash Dash = default(Efl.Gfx.Dash),
632 uint Dash_length = default(uint),
633 Efl.Gfx.Cap Cap = default(Efl.Gfx.Cap),
634 Efl.Gfx.Join Join = default(Efl.Gfx.Join),
635 double Miterlimit = default(double) )
639 this.Centered = Centered;
642 this.Dash_length = Dash_length;
645 this.Miterlimit = Miterlimit;
648 /// <summary>Implicit conversion to the managed representation from a native pointer.</summary>
649 /// <param name="ptr">Native pointer to be converted.</param>
650 public static implicit operator Stroke(IntPtr ptr)
652 var tmp = (Stroke.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Stroke.NativeStruct));
656 #pragma warning disable CS1591
658 /// <summary>Internal wrapper for struct Stroke.</summary>
659 [StructLayout(LayoutKind.Sequential)]
660 public struct NativeStruct
667 public double Centered;
669 public Efl.Gfx.StrokeColor.NativeStruct Color;
671 public Efl.Gfx.Dash.NativeStruct Dash;
673 public uint Dash_length;
675 public Efl.Gfx.Cap Cap;
677 public Efl.Gfx.Join Join;
679 public double Miterlimit;
680 /// <summary>Implicit conversion to the internal/marshalling representation.</summary>
681 public static implicit operator Stroke.NativeStruct(Stroke _external_struct)
683 var _internal_struct = new Stroke.NativeStruct();
684 _internal_struct.Scale = _external_struct.Scale;
685 _internal_struct.Width = _external_struct.Width;
686 _internal_struct.Centered = _external_struct.Centered;
687 _internal_struct.Color = _external_struct.Color;
688 _internal_struct.Dash = _external_struct.Dash;
689 _internal_struct.Dash_length = _external_struct.Dash_length;
690 _internal_struct.Cap = _external_struct.Cap;
691 _internal_struct.Join = _external_struct.Join;
692 _internal_struct.Miterlimit = _external_struct.Miterlimit;
693 return _internal_struct;
696 /// <summary>Implicit conversion to the managed representation.</summary>
697 public static implicit operator Stroke(Stroke.NativeStruct _internal_struct)
699 var _external_struct = new Stroke();
700 _external_struct.Scale = _internal_struct.Scale;
701 _external_struct.Width = _internal_struct.Width;
702 _external_struct.Centered = _internal_struct.Centered;
703 _external_struct.Color = _internal_struct.Color;
704 _external_struct.Dash = _internal_struct.Dash;
705 _external_struct.Dash_length = _internal_struct.Dash_length;
706 _external_struct.Cap = _internal_struct.Cap;
707 _external_struct.Join = _internal_struct.Join;
708 _external_struct.Miterlimit = _internal_struct.Miterlimit;
709 return _external_struct;
714 #pragma warning restore CS1591
726 /// <summary>Public shape</summary>
727 [StructLayout(LayoutKind.Sequential)]
728 [Efl.Eo.BindingEntity]
729 public struct ShapePublic
731 /// <summary>Internal representation as stroke</summary>
732 /// <value>Type defining stroke information. Describes the properties to define the path stroke.</value>
733 public Efl.Gfx.Stroke Stroke;
734 /// <summary>Constructor for ShapePublic.</summary>
735 /// <param name="Stroke">Internal representation as stroke</param>;
737 Efl.Gfx.Stroke Stroke = default(Efl.Gfx.Stroke) )
739 this.Stroke = Stroke;
742 /// <summary>Implicit conversion to the managed representation from a native pointer.</summary>
743 /// <param name="ptr">Native pointer to be converted.</param>
744 public static implicit operator ShapePublic(IntPtr ptr)
746 var tmp = (ShapePublic.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ShapePublic.NativeStruct));
750 #pragma warning disable CS1591
752 /// <summary>Internal wrapper for struct ShapePublic.</summary>
753 [StructLayout(LayoutKind.Sequential)]
754 public struct NativeStruct
757 public Efl.Gfx.Stroke.NativeStruct Stroke;
758 /// <summary>Implicit conversion to the internal/marshalling representation.</summary>
759 public static implicit operator ShapePublic.NativeStruct(ShapePublic _external_struct)
761 var _internal_struct = new ShapePublic.NativeStruct();
762 _internal_struct.Stroke = _external_struct.Stroke;
763 return _internal_struct;
766 /// <summary>Implicit conversion to the managed representation.</summary>
767 public static implicit operator ShapePublic(ShapePublic.NativeStruct _internal_struct)
769 var _external_struct = new ShapePublic();
770 _external_struct.Stroke = _internal_struct.Stroke;
771 return _external_struct;
776 #pragma warning restore CS1591
790 /// <summary>Data sent along a "render,post" event, after a frame has been rendered.</summary>
791 [StructLayout(LayoutKind.Sequential)]
792 [Efl.Eo.BindingEntity]
793 public struct RenderPost
795 /// <summary>A list of rectangles that were updated in the canvas.</summary>
796 public Eina.List<Eina.Rect> Updated_area;
797 /// <summary>Constructor for RenderPost.</summary>
798 /// <param name="Updated_area">A list of rectangles that were updated in the canvas.</param>;
800 Eina.List<Eina.Rect> Updated_area = default(Eina.List<Eina.Rect>) )
802 this.Updated_area = Updated_area;
805 /// <summary>Implicit conversion to the managed representation from a native pointer.</summary>
806 /// <param name="ptr">Native pointer to be converted.</param>
807 public static implicit operator RenderPost(IntPtr ptr)
809 var tmp = (RenderPost.NativeStruct)Marshal.PtrToStructure(ptr, typeof(RenderPost.NativeStruct));
813 #pragma warning disable CS1591
815 /// <summary>Internal wrapper for struct RenderPost.</summary>
816 [StructLayout(LayoutKind.Sequential)]
817 public struct NativeStruct
820 public System.IntPtr Updated_area;
821 /// <summary>Implicit conversion to the internal/marshalling representation.</summary>
822 public static implicit operator RenderPost.NativeStruct(RenderPost _external_struct)
824 var _internal_struct = new RenderPost.NativeStruct();
825 _internal_struct.Updated_area = _external_struct.Updated_area.Handle;
826 return _internal_struct;
829 /// <summary>Implicit conversion to the managed representation.</summary>
830 public static implicit operator RenderPost(RenderPost.NativeStruct _internal_struct)
832 var _external_struct = new RenderPost();
833 _external_struct.Updated_area = new Eina.List<Eina.Rect>(_internal_struct.Updated_area, false, false);
834 return _external_struct;
839 #pragma warning restore CS1591