#pragma warning disable 1591 using System; using System.Runtime.InteropServices; using System.Collections.Generic; ///Eo class description, passed to efl_class_new. [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct ClassDescription { ///Current Eo version. public uint version; ///Name of the class. [MarshalAs(UnmanagedType.LPStr)] public String name; ///Class type. public int class_type; ///Size of data (private + protected + public) per instance. public UIntPtr data_size; ///Initializer for the class. public IntPtr class_initializer; ///Constructor of the class. public IntPtr class_constructor; ///Destructor of the class. public IntPtr class_destructor; } ///Description of an Eo API operation. [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct Efl_Op_Description { ///The EAPI function offering this op. (String with the name of the function on Windows) public IntPtr api_func; ///The static function to be called for this op public IntPtr func; } ///List of operations on a given Object. [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct Efl_Object_Ops { ///The op descriptions array of size count. public IntPtr descs; ///Number of op descriptions. public UIntPtr count; }; [StructLayout(LayoutKind.Sequential)] public struct EolianPD { public IntPtr pointer; } #pragma warning disable 0169 public struct EvasObjectBoxLayout { IntPtr o; IntPtr priv; IntPtr user_data; }; [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct EvasObjectBoxData { } public struct EvasObjectBoxOption { IntPtr obj; [MarshalAsAttribute(UnmanagedType.U1)] bool max_reached; [MarshalAsAttribute(UnmanagedType.U1)] bool min_reached; Evas.Coord alloc_size; }; #pragma warning restore 0169 namespace Efl { [StructLayout(LayoutKind.Sequential)] public struct EventDescription { public IntPtr Name; [MarshalAs(UnmanagedType.U1)] public bool Unfreezable; [MarshalAs(UnmanagedType.U1)] public bool Legacy_is; [MarshalAs(UnmanagedType.U1)] public bool Restart; private static Dictionary descriptions = new Dictionary(); public EventDescription(string name) { this.Name = GetNative(name); this.Unfreezable = false; this.Legacy_is = false; this.Restart = false; } public static IntPtr GetNative(string name) { if (!descriptions.ContainsKey(name)) { IntPtr data = Efl.Eo.Globals.dlsym(Efl.Eo.Globals.RTLD_DEFAULT, name); if (data == IntPtr.Zero) { string error = Eina.StringConversion.NativeUtf8ToManagedString(Efl.Eo.Globals.dlerror()); throw new Exception(error); } descriptions.Add(name, data); } return descriptions[name]; } }; public delegate void EventCb(System.IntPtr data, ref Event_StructInternal evt); [StructLayout(LayoutKind.Sequential)] public struct TextCursorCursor { IntPtr obj; UIntPtr pos; // UIntPtr to automatically change size_t between 32/64 IntPtr node; [MarshalAsAttribute(UnmanagedType.U1)]bool changed; } [StructLayout(LayoutKind.Sequential)] public struct TextAnnotateAnnotation { IntPtr list; IntPtr obj; IntPtr start_node; IntPtr end_node; [MarshalAsAttribute(UnmanagedType.U1)]bool is_item; } public delegate void SignalCb(IntPtr data, IntPtr obj, IntPtr emission, IntPtr source); namespace Access { public struct ActionData { public IntPtr name; public IntPtr action; public IntPtr param; public IntPtr func; } public struct StateSet { private ulong val; public static implicit operator StateSet(ulong x) { return new StateSet{val=x}; } public static implicit operator ulong(StateSet x) { return x.val; } } } // namespace Access } // namespace Efl namespace Evas { public struct Coord { int val; public Coord(int value) { val = value; } static public implicit operator Coord(int val) { return new Coord(val); } static public implicit operator int(Coord coord) { return coord.val; } } /* Copied from Evas_Legacy.h */ public enum TextStyleType { /// plain, standard text. Plain = 0, /// text with shadow underneath. Shadow, /// text with an outline. Outline, /// text with a soft outline. SoftOutline, /// text with a glow effect. Glow, /// text with both outline and shadow effects. OutlineShadow, /// text with (far) shadow underneath. FarShadow, /// text with outline and soft shadow effects combined. OutlineSoftShadow, /// text with (soft) shadow underneath. SoftShadow, /// text with (far soft) shadow underneath. FarSoftShadow, // Shadow direction modifiers /// shadow growing to bottom right. ShadowDirectionBottomRight = 0 /* 0 >> 4 */, /// shadow growing to the bottom. ShadowDirectionBottom= 16 /* 1 >> 4 */, /// shadow growing to bottom left. ShadowDirectionBottomLeft = 32 /* 2 >> 4 */, /// shadow growing to the left. ShadowDirectionLeft = 48 /* 3 >> 4 */, /// shadow growing to top left. ShadowDirectionTopLeft = 64 /* 4 >> 4 */, /// shadow growing to the top. ShadowDirectionTop = 80 /* 5 >> 4 */, /// shadow growing to top right. ShadowDirectionTopRight = 96 /* 6 >> 4 */, /// shadow growing to the right. ShadowDirectionRight = 112 /* 7 >> 4 */ }; } // namespace Evas // Global delegates public delegate int Eina_Compare_Cb(IntPtr a, IntPtr b); public delegate void ElmInterfaceScrollableCb(IntPtr obj, IntPtr data); public delegate void ElmInterfaceScrollableMinLimitCb(IntPtr obj, [MarshalAsAttribute(UnmanagedType.U1)]bool w, [MarshalAsAttribute(UnmanagedType.U1)]bool h); public delegate void ElmInterfaceScrollableResizeCb(IntPtr obj, Evas.Coord w, Evas.Coord h); [return: MarshalAsAttribute(UnmanagedType.U1)] public delegate bool ElmMultibuttonentryItemFilterCb(IntPtr obj, IntPtr item_label, IntPtr item_data, IntPtr data); public delegate IntPtr ElmMultibuttonentryFormatCb(int count, IntPtr data); public delegate void EinaFreeCb(IntPtr data); public delegate void EvasSmartCb(IntPtr data, IntPtr obj, IntPtr event_info); public delegate void ElmObjectItemSignalCb(IntPtr data, IntPtr item, IntPtr emission, IntPtr source); public delegate void ElmTooltipItemContentCb(IntPtr data, IntPtr obj, IntPtr tooltip, IntPtr item);