1 #pragma warning disable CS1591
3 using System.Runtime.InteropServices;
4 using System.Collections.Generic;
6 using System.ComponentModel;
7 namespace Efl { namespace Ui {
8 /// <summary>Efl Ui Theme class</summary>
10 public class Theme : Efl.Object, Efl.Eo.IWrapper
12 ///<summary>Pointer to the native class description.</summary>
13 public override System.IntPtr NativeClass {
15 if (((object)this).GetType() == typeof (Theme))
16 return Efl.Ui.ThemeNativeInherit.GetEflClassStatic();
18 return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
21 [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
22 efl_ui_theme_class_get();
23 ///<summary>Creates a new instance.</summary>
24 ///<param name="parent">Parent instance.</param>
25 public Theme(Efl.Object parent= null
27 base(efl_ui_theme_class_get(), typeof(Theme), parent)
29 FinishInstantiation();
31 ///<summary>Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
32 protected Theme(System.IntPtr raw) : base(raw)
34 RegisterEventProxies();
36 ///<summary>Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
37 protected Theme(IntPtr base_klass, System.Type managed_type, Efl.Object parent) : base(base_klass, managed_type, parent) {}
38 ///<summary>Verifies if the given object is equal to this one.</summary>
39 public override bool Equals(object obj)
41 var other = obj as Efl.Object;
44 return this.NativeHandle == other.NativeHandle;
46 ///<summary>Gets the hash code for this object based on the native pointer it points to.</summary>
47 public override int GetHashCode()
49 return this.NativeHandle.ToInt32();
51 ///<summary>Turns the native pointer into a string representation.</summary>
52 public override String ToString()
54 return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
56 ///<summary>Register the Eo event wrappers making the bridge to C# events. Internal usage only.</summary>
57 protected override void RegisterEventProxies()
59 base.RegisterEventProxies();
61 /// <summary>Gets the default theme handle.</summary>
62 /// <returns>The default theme handle</returns>
63 public static Efl.Ui.Theme GetDefault() {
64 var _ret_var = Efl.Ui.ThemeNativeInherit.efl_ui_theme_default_get_ptr.Value.Delegate();
65 Eina.Error.RaiseIfUnhandledException();
68 /// <summary>Appends a theme extension to the list of extensions. This is intended when an application needs more styles of widgets or new widget themes that the default does not provide (or may not provide). The application has "extended" usage by coming up with new custom style names for widgets for specific uses, but as these are not "standard", they are not guaranteed to be provided by a default theme. This means the application is required to provide these extra elements itself in specific Edje files. This call adds one of those Edje files to the theme search path to be searched after the default theme. The use of this call is encouraged when default styles do not meet the needs of the application. Use this call instead of <see cref="Efl.Ui.Theme.AddOverlay"/> for almost all cases.</summary>
69 /// <param name="item">The Edje file path to be used</param>
70 /// <returns></returns>
71 virtual public void AddExtension( System.String item) {
72 Efl.Ui.ThemeNativeInherit.efl_ui_theme_extension_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle), item);
73 Eina.Error.RaiseIfUnhandledException();
75 /// <summary>Deletes a theme extension from the list of extensions.</summary>
76 /// <param name="item">The Edje file path not to be used</param>
77 /// <returns></returns>
78 virtual public void DelExtension( System.String item) {
79 Efl.Ui.ThemeNativeInherit.efl_ui_theme_extension_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle), item);
80 Eina.Error.RaiseIfUnhandledException();
82 /// <summary>Prepends a theme overlay to the list of overlays. Use this if your application needs to provide some custom overlay theme (An Edje file that replaces some default styles of widgets) where adding new styles, or changing system theme configuration is not possible. Do NOT use this instead of a proper system theme configuration. Use proper configuration files, profiles, environment variables etc. to set a theme so that the theme can be altered by simple configuration by a user. Using this call to achieve that effect is abusing the API and will create lots of trouble.</summary>
83 /// <param name="item">The Edje file path to be used</param>
84 /// <returns></returns>
85 virtual public void AddOverlay( System.String item) {
86 Efl.Ui.ThemeNativeInherit.efl_ui_theme_overlay_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle), item);
87 Eina.Error.RaiseIfUnhandledException();
89 /// <summary>Delete a theme overlay from the list of overlays.</summary>
90 /// <param name="item">The Edje file path not to be used</param>
91 /// <returns></returns>
92 virtual public void DelOverlay( System.String item) {
93 Efl.Ui.ThemeNativeInherit.efl_ui_theme_overlay_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle), item);
94 Eina.Error.RaiseIfUnhandledException();
96 /// <summary>This is the default theme.
97 /// All widgets use the default theme implicitly unless a specific theme is set.</summary>
98 /// <value>The default theme handle</value>
99 public static Efl.Ui.Theme Default {
100 get { return GetDefault(); }
102 private static IntPtr GetEflClassStatic()
104 return Efl.Ui.Theme.efl_ui_theme_class_get();
107 public class ThemeNativeInherit : Efl.ObjectNativeInherit{
108 public new static Efl.Eo.NativeModule _Module = new Efl.Eo.NativeModule(efl.Libs.Elementary);
109 public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
111 var descs = new System.Collections.Generic.List<Efl_Op_Description>();
112 var methods = Efl.Eo.Globals.GetUserMethods(type);
113 if (efl_ui_theme_extension_add_static_delegate == null)
114 efl_ui_theme_extension_add_static_delegate = new efl_ui_theme_extension_add_delegate(extension_add);
115 if (methods.FirstOrDefault(m => m.Name == "AddExtension") != null)
116 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(_Module.Module, "efl_ui_theme_extension_add"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_theme_extension_add_static_delegate)});
117 if (efl_ui_theme_extension_del_static_delegate == null)
118 efl_ui_theme_extension_del_static_delegate = new efl_ui_theme_extension_del_delegate(extension_del);
119 if (methods.FirstOrDefault(m => m.Name == "DelExtension") != null)
120 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(_Module.Module, "efl_ui_theme_extension_del"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_theme_extension_del_static_delegate)});
121 if (efl_ui_theme_overlay_add_static_delegate == null)
122 efl_ui_theme_overlay_add_static_delegate = new efl_ui_theme_overlay_add_delegate(overlay_add);
123 if (methods.FirstOrDefault(m => m.Name == "AddOverlay") != null)
124 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(_Module.Module, "efl_ui_theme_overlay_add"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_theme_overlay_add_static_delegate)});
125 if (efl_ui_theme_overlay_del_static_delegate == null)
126 efl_ui_theme_overlay_del_static_delegate = new efl_ui_theme_overlay_del_delegate(overlay_del);
127 if (methods.FirstOrDefault(m => m.Name == "DelOverlay") != null)
128 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(_Module.Module, "efl_ui_theme_overlay_del"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_theme_overlay_del_static_delegate)});
129 descs.AddRange(base.GetEoOps(type));
132 public override IntPtr GetEflClass()
134 return Efl.Ui.Theme.efl_ui_theme_class_get();
136 public static new IntPtr GetEflClassStatic()
138 return Efl.Ui.Theme.efl_ui_theme_class_get();
142 [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalTest<Efl.Ui.Theme, Efl.Eo.NonOwnTag>))] private delegate Efl.Ui.Theme efl_ui_theme_default_get_delegate();
145 [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalTest<Efl.Ui.Theme, Efl.Eo.NonOwnTag>))] public delegate Efl.Ui.Theme efl_ui_theme_default_get_api_delegate();
146 public static Efl.Eo.FunctionWrapper<efl_ui_theme_default_get_api_delegate> efl_ui_theme_default_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_theme_default_get_api_delegate>(_Module, "efl_ui_theme_default_get");
147 private static Efl.Ui.Theme default_get(System.IntPtr obj, System.IntPtr pd)
149 Eina.Log.Debug("function efl_ui_theme_default_get was called");
150 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
151 if(wrapper != null) {
152 Efl.Ui.Theme _ret_var = default(Efl.Ui.Theme);
154 _ret_var = Theme.GetDefault();
155 } catch (Exception e) {
156 Eina.Log.Warning($"Callback error: {e.ToString()}");
157 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
161 return efl_ui_theme_default_get_ptr.Value.Delegate();
166 private delegate void efl_ui_theme_extension_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
169 public delegate void efl_ui_theme_extension_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
170 public static Efl.Eo.FunctionWrapper<efl_ui_theme_extension_add_api_delegate> efl_ui_theme_extension_add_ptr = new Efl.Eo.FunctionWrapper<efl_ui_theme_extension_add_api_delegate>(_Module, "efl_ui_theme_extension_add");
171 private static void extension_add(System.IntPtr obj, System.IntPtr pd, System.String item)
173 Eina.Log.Debug("function efl_ui_theme_extension_add was called");
174 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
175 if(wrapper != null) {
178 ((Theme)wrapper).AddExtension( item);
179 } catch (Exception e) {
180 Eina.Log.Warning($"Callback error: {e.ToString()}");
181 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
184 efl_ui_theme_extension_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), item);
187 private static efl_ui_theme_extension_add_delegate efl_ui_theme_extension_add_static_delegate;
190 private delegate void efl_ui_theme_extension_del_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
193 public delegate void efl_ui_theme_extension_del_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
194 public static Efl.Eo.FunctionWrapper<efl_ui_theme_extension_del_api_delegate> efl_ui_theme_extension_del_ptr = new Efl.Eo.FunctionWrapper<efl_ui_theme_extension_del_api_delegate>(_Module, "efl_ui_theme_extension_del");
195 private static void extension_del(System.IntPtr obj, System.IntPtr pd, System.String item)
197 Eina.Log.Debug("function efl_ui_theme_extension_del was called");
198 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
199 if(wrapper != null) {
202 ((Theme)wrapper).DelExtension( item);
203 } catch (Exception e) {
204 Eina.Log.Warning($"Callback error: {e.ToString()}");
205 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
208 efl_ui_theme_extension_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), item);
211 private static efl_ui_theme_extension_del_delegate efl_ui_theme_extension_del_static_delegate;
214 private delegate void efl_ui_theme_overlay_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
217 public delegate void efl_ui_theme_overlay_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
218 public static Efl.Eo.FunctionWrapper<efl_ui_theme_overlay_add_api_delegate> efl_ui_theme_overlay_add_ptr = new Efl.Eo.FunctionWrapper<efl_ui_theme_overlay_add_api_delegate>(_Module, "efl_ui_theme_overlay_add");
219 private static void overlay_add(System.IntPtr obj, System.IntPtr pd, System.String item)
221 Eina.Log.Debug("function efl_ui_theme_overlay_add was called");
222 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
223 if(wrapper != null) {
226 ((Theme)wrapper).AddOverlay( item);
227 } catch (Exception e) {
228 Eina.Log.Warning($"Callback error: {e.ToString()}");
229 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
232 efl_ui_theme_overlay_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), item);
235 private static efl_ui_theme_overlay_add_delegate efl_ui_theme_overlay_add_static_delegate;
238 private delegate void efl_ui_theme_overlay_del_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
241 public delegate void efl_ui_theme_overlay_del_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item);
242 public static Efl.Eo.FunctionWrapper<efl_ui_theme_overlay_del_api_delegate> efl_ui_theme_overlay_del_ptr = new Efl.Eo.FunctionWrapper<efl_ui_theme_overlay_del_api_delegate>(_Module, "efl_ui_theme_overlay_del");
243 private static void overlay_del(System.IntPtr obj, System.IntPtr pd, System.String item)
245 Eina.Log.Debug("function efl_ui_theme_overlay_del was called");
246 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
247 if(wrapper != null) {
250 ((Theme)wrapper).DelOverlay( item);
251 } catch (Exception e) {
252 Eina.Log.Warning($"Callback error: {e.ToString()}");
253 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
256 efl_ui_theme_overlay_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), item);
259 private static efl_ui_theme_overlay_del_delegate efl_ui_theme_overlay_del_static_delegate;