diff --git a/ChangeLog b/ChangeLog index 1dc8bd7ac..89925fb89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-06-01 Mike Kestner + + * glib/Value.cs : handle enum/flags types in Val. + [Fixes #75112] + 2005-06-01 Dan Winship * glib/Value.cs: Add a constructor and an explicit cast for diff --git a/glib/Value.cs b/glib/Value.cs index 9d7a332a9..51ef27c2d 100755 --- a/glib/Value.cs +++ b/glib/Value.cs @@ -316,6 +316,10 @@ namespace GLib { return (string) this; else if (type == ManagedValue.GType) return ManagedValue.ObjectForWrapper (g_value_get_boxed (ref this)); + else if (g_type_is_a (type.Val, GLib.GType.Enum.Val)) + return (EnumWrapper) this; + else if (g_type_is_a (type.Val, GLib.GType.Flags.Val)) + return (EnumWrapper) this; else if (g_type_is_a (type.Val, GType.Object.Val)) return (GLib.Object) this; else @@ -354,6 +358,10 @@ namespace GLib { g_value_set_pointer (ref this, buf); } else if (type == ManagedValue.GType) { g_value_set_boxed (ref this, ManagedValue.WrapObject (value)); + } else if (g_type_is_a (type.Val, GLib.GType.Enum.Val)) { + g_value_set_enum (ref this, (int) value); + } else if (g_type_is_a (type.Val, GLib.GType.Flags.Val)) { + g_value_set_flags (ref this, (uint) value); } else if (g_type_is_a (type.Val, GLib.GType.Boxed.Val)) { if (value is IWrapper) { g_value_set_boxed (ref this, ((IWrapper)value).Handle);