#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 module, string name)
{
this.Name = GetNative(module, name);
this.Unfreezable = false;
this.Legacy_is = false;
this.Restart = false;
}
public static IntPtr GetNative(string module, string name)
{
if (!descriptions.ContainsKey(name))
{
IntPtr data = Efl.Eo.FunctionInterop.LoadFunctionPointer(module, 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 delegate IntPtr ReadingInfoCb(System.IntPtr data, ref Efl.Canvas.Object obj);
public delegate bool GestureCb(System.IntPtr data, ref Efl.Access.GestureInfo info, ref Efl.Canvas.Object obj);
public struct ReadingInfoTypeMask {
private uint mask;
public static implicit operator ReadingInfoTypeMask(uint x)
{
return new ReadingInfoTypeMask{mask=x};
}
public static implicit operator uint(ReadingInfoTypeMask x)
{
return x.mask;
}
}
public struct ActionData {
public IntPtr name;
public IntPtr action;
public IntPtr param;
public IntPtr func;
}
} // 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);