diff options
author | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2019-03-10 13:54:26 -0300 |
---|---|---|
committer | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2019-03-10 17:39:37 -0300 |
commit | bbb208abb30c24b490dfe5e3d69cd81934a6ae11 (patch) | |
tree | d708dd008d8bc541370d1768b04edaf5e75d975f | |
parent | 230cc00eeb2e38421a27b2badb6422c29f767f91 (diff) | |
download | efl-bbb208abb30c24b490dfe5e3d69cd81934a6ae11.tar.gz |
efl-mono: Add object type support for Eina.Value
-rw-r--r-- | src/bindings/mono/eina_mono/eina_value.cs | 15 | ||||
-rw-r--r-- | src/lib/efl_mono/efl_custom_exports_mono.c | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/bindings/mono/eina_mono/eina_value.cs b/src/bindings/mono/eina_mono/eina_value.cs index 6fae14b022..ce92140c37 100644 --- a/src/bindings/mono/eina_mono/eina_value.cs +++ b/src/bindings/mono/eina_mono/eina_value.cs @@ -389,6 +389,10 @@ static internal class UnsafeNativeMethods { // Error [DllImport(efl.Libs.CustomExports)] internal static extern IntPtr type_error(); + + // Error + [DllImport(efl.Libs.CustomExports)] + internal static extern IntPtr type_object(); } } @@ -472,6 +476,7 @@ public enum ValueType { Optional, /// <summary>Error values.</summary> Error, + Object, /// <summary>Empty values.</summary> Empty, } @@ -530,6 +535,11 @@ static class ValueTypeMethods { return val == ValueType.Error; } + public static bool IsObject(this ValueType val) + { + return val == ValueType.Object; + } + /// <summary>Returns the Marshal.SizeOf for the given ValueType native structure.</summary> public static int MarshalSizeOf(this ValueType val) { @@ -620,6 +630,9 @@ static class ValueTypeBridge ManagedToNative.Add(ValueType.Error, type_error()); NativeToManaged.Add(type_error(), ValueType.Error); + ManagedToNative.Add(ValueType.Object, type_object()); + NativeToManaged.Add(type_object(), ValueType.Object); + ManagedToNative.Add(ValueType.Empty, IntPtr.Zero); NativeToManaged.Add(IntPtr.Zero, ValueType.Empty); @@ -1869,6 +1882,8 @@ public class Value : IDisposable, IComparable<Value>, IEquatable<Value> return Convert.ToUInt32(data.ToInt32()); case ValueType.String: return StringConversion.NativeUtf8ToManagedString(data); + case ValueType.Object: + return new Efl.Object (data); default: return null; } diff --git a/src/lib/efl_mono/efl_custom_exports_mono.c b/src/lib/efl_mono/efl_custom_exports_mono.c index 246a7bcf71..03022a7426 100644 --- a/src/lib/efl_mono/efl_custom_exports_mono.c +++ b/src/lib/efl_mono/efl_custom_exports_mono.c @@ -321,6 +321,9 @@ EAPI const Eina_Value_Type *type_list() { EAPI const Eina_Value_Type *type_error() { return EINA_VALUE_TYPE_ERROR; } +EAPI const Eina_Value_Type *type_object() { + return EINA_VALUE_TYPE_OBJECT; +} EAPI const Eina_Value_Type *type_optional() { return EINA_VALUE_TYPE_OPTIONAL; |