Author: danw
Date: 2005-03-21 09:29:24 -0500 (Mon, 21 Mar 2005)
New Revision: 42049

Removed:
   trunk/stetic/libstetic/ParamFlags.cs
Modified:
   trunk/stetic/ChangeLog
   trunk/stetic/glue/paramspec.c
   trunk/stetic/libstetic/Makefile.am
   trunk/stetic/libstetic/ParamSpec.cs
   trunk/stetic/libstetic/libstetic.dll.config
   trunk/stetic/libstetic/wrapper/Container.cs
Log:
        * glue/paramspec.c: 
        * libstetic/ParamSpec.cs: Simplify based on the latest version of
        the patch in #70061.

        * libstetic/ParamFlags.cs: gone; we never used this
        
        * libstetic/libstetic.dll.config: add libgtk to the map


Modified: trunk/stetic/ChangeLog
===================================================================
--- trunk/stetic/ChangeLog      2005-03-21 14:22:52 UTC (rev 42048)
+++ trunk/stetic/ChangeLog      2005-03-21 14:29:24 UTC (rev 42049)
@@ -1,3 +1,13 @@
+2005-03-21  Dan Winship  <[EMAIL PROTECTED]>
+
+       * glue/paramspec.c: 
+       * libstetic/ParamSpec.cs: Simplify based on the latest version of
+       the patch in #70061.
+
+       * libstetic/ParamFlags.cs: gone; we never used this
+       
+       * libstetic/libstetic.dll.config: add libgtk to the map
+
 2005-03-18  Dan Winship  <[EMAIL PROTECTED]>
 
        * libstetic/editor/Image.cs: editor that allows selecting a stock

Modified: trunk/stetic/glue/paramspec.c
===================================================================
--- trunk/stetic/glue/paramspec.c       2005-03-21 14:22:52 UTC (rev 42048)
+++ trunk/stetic/glue/paramspec.c       2005-03-21 14:29:24 UTC (rev 42049)
@@ -1,164 +1,110 @@
-/* Copyright (c) 2004 Novell, Inc. */
+/* Copyright (c) 2004-2005 Novell, Inc. */
 
 #include <glib-object.h>
-#include <gtk/gtkcontainer.h>
 
-GParamSpec *stetic_param_spec_for_property (GType type, const char 
*property_name);
-GParamSpec *stetic_param_spec_for_child_property (GType type, const char 
*property_name);
-
-GParamSpec *
-stetic_param_spec_for_property (GType type, const char *property_name)
-{
-       GObjectClass *klass = g_type_class_ref (type);
-       GParamSpec *pspec;
-
-       pspec = g_object_class_find_property (klass, property_name);
-       g_type_class_unref (klass);
-       return pspec;
-}
-
-GParamSpec *
-stetic_param_spec_for_child_property (GType type, const char *property_name)
-{
-       GtkContainerClass *klass = g_type_class_ref (type);
-       GParamSpec *pspec;
-
-       pspec = gtk_container_class_find_child_property (g_type_class_peek 
(type), property_name);
-       g_type_class_unref (klass);
-       return pspec;
-}
-
-GParamFlags stetic_param_spec_get_flags (GParamSpec *pspec);
 GType stetic_param_spec_get_value_type (GParamSpec *pspec);
-GType stetic_param_spec_get_owner_type (GParamSpec *pspec);
+gboolean stetic_param_spec_get_minimum (GParamSpec *pspec, GValue *value);
+gboolean stetic_param_spec_get_maximum (GParamSpec *pspec, GValue *value);
+gboolean stetic_param_spec_get_default (GParamSpec *pspec, GValue *value);
 
-GParamFlags
-stetic_param_spec_get_flags (GParamSpec *pspec)
-{
-       return pspec->flags;
-}
-
 GType
 stetic_param_spec_get_value_type (GParamSpec *pspec)
 {
        return pspec->value_type;
 }
 
-GType
-stetic_param_spec_get_owner_type (GParamSpec *pspec)
+gboolean
+stetic_param_spec_get_minimum (GParamSpec *pspec, GValue *value)
 {
-       return pspec->owner_type;
-}
+       g_value_init (value, pspec->value_type);
 
-#define STETIC_PARAM_SPEC_RANGE_TYPE(name, typename, type)                     
\
-type stetic_param_spec_##name##_get_minimum (GParamSpec##typename *pspec);     
\
-type stetic_param_spec_##name##_get_maximum (GParamSpec##typename *pspec);     
\
-type stetic_param_spec_##name##_get_default (GParamSpec##typename *pspec);     
\
-                                                                               
\
-type                                                                           
\
-stetic_param_spec_##name##_get_minimum (GParamSpec##typename *pspec)           
\
-{                                                                              
\
-       return pspec->minimum;                                                  
\
-}                                                                              
\
-                                                                               
\
-type                                                                           
\
-stetic_param_spec_##name##_get_maximum (GParamSpec##typename *pspec)           
\
-{                                                                              
\
-       return pspec->maximum;                                                  
\
-}                                                                              
\
-                                                                               
\
-type                                                                           
\
-stetic_param_spec_##name##_get_default (GParamSpec##typename *pspec)           
\
-{                                                                              
\
-       return pspec->default_value;                                            
\
+       if (G_IS_PARAM_SPEC_CHAR (pspec))
+               g_value_set_char (value, G_PARAM_SPEC_CHAR (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_UCHAR (pspec))
+               g_value_set_uchar (value, G_PARAM_SPEC_UCHAR (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_INT (pspec))
+               g_value_set_int (value, G_PARAM_SPEC_INT (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_UINT (pspec))
+               g_value_set_uint (value, G_PARAM_SPEC_UINT (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_LONG (pspec))
+               g_value_set_long (value, G_PARAM_SPEC_LONG (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_ULONG (pspec))
+               g_value_set_ulong (value, G_PARAM_SPEC_ULONG (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_INT64 (pspec))
+               g_value_set_int64 (value, G_PARAM_SPEC_INT64 (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_UINT64 (pspec))
+               g_value_set_uint64 (value, G_PARAM_SPEC_UINT64 
(pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_FLOAT (pspec))
+               g_value_set_float (value, G_PARAM_SPEC_FLOAT (pspec)->minimum);
+       else if (G_IS_PARAM_SPEC_DOUBLE (pspec))
+               g_value_set_double (value, G_PARAM_SPEC_DOUBLE 
(pspec)->minimum);
+       else
+               return FALSE;
+       return TRUE;
 }
 
-#define STETIC_PARAM_SPEC_DEFAULTABLE_TYPE(name, typename, type)               
\
-type stetic_param_spec_##name##_get_default (GParamSpec##typename *pspec);     
\
-                                                                               
\
-type                                                                           
\
-stetic_param_spec_##name##_get_default (GParamSpec##typename *pspec)           
\
-{                                                                              
\
-       return pspec->default_value;                                            
\
-}
-
-#define STETIC_PARAM_SPEC_ACCESSOR(name, typename, type, field)                
\
-type stetic_param_spec_##name##_get_##field (GParamSpec##typename *pspec);     
\
-                                                                               
\
-type                                                                           
\
-stetic_param_spec_##name##_get_##field (GParamSpec##typename *pspec)           
\
-{                                                                              
\
-       return pspec->field;                                                    
\
-}
-
-STETIC_PARAM_SPEC_RANGE_TYPE (char, Char, char)
-STETIC_PARAM_SPEC_RANGE_TYPE (uchar, UChar, guchar)
-STETIC_PARAM_SPEC_DEFAULTABLE_TYPE (boolean, Boolean, gboolean)
-STETIC_PARAM_SPEC_RANGE_TYPE (int, Int, int)
-STETIC_PARAM_SPEC_RANGE_TYPE (uint, UInt, guint)
-STETIC_PARAM_SPEC_RANGE_TYPE (long, Long, long)
-STETIC_PARAM_SPEC_RANGE_TYPE (ulong, ULong, gulong)
-STETIC_PARAM_SPEC_RANGE_TYPE (int64, Int64, gint64)
-STETIC_PARAM_SPEC_RANGE_TYPE (uint64, UInt64, guint64)
-STETIC_PARAM_SPEC_DEFAULTABLE_TYPE (unichar, Unichar, gunichar)
-STETIC_PARAM_SPEC_DEFAULTABLE_TYPE (enum, Enum, int)
-STETIC_PARAM_SPEC_DEFAULTABLE_TYPE (flags, Flags, guint)
-STETIC_PARAM_SPEC_RANGE_TYPE (float, Float, float)
-STETIC_PARAM_SPEC_ACCESSOR (float, Float, float, epsilon)
-STETIC_PARAM_SPEC_RANGE_TYPE (double, Double, double)
-STETIC_PARAM_SPEC_ACCESSOR (double, Double, double, epsilon)
-STETIC_PARAM_SPEC_DEFAULTABLE_TYPE (string, String, const char *)
-STETIC_PARAM_SPEC_ACCESSOR (value_array, ValueArray, guint, fixed_n_elements)
-STETIC_PARAM_SPEC_ACCESSOR (value_array, ValueArray, GParamSpec *, 
element_spec)
-STETIC_PARAM_SPEC_ACCESSOR (override, Override, GParamSpec *, overridden)
-
-int stetic_param_spec_enum_get_minimum (GParamSpecEnum *pspec);
-int stetic_param_spec_enum_get_maximum (GParamSpecEnum *pspec);
-
-int
-stetic_param_spec_enum_get_minimum (GParamSpecEnum *pspec)
+gboolean
+stetic_param_spec_get_maximum (GParamSpec *pspec, GValue *value)
 {
-       return pspec->enum_class->minimum;
-}
+       g_value_init (value, pspec->value_type);
 
-int
-stetic_param_spec_enum_get_maximum (GParamSpecEnum *pspec)
-{
-       return pspec->enum_class->maximum;
-}
-
-const char *stetic_param_spec_enum_get_value_name (GParamSpecEnum *pspec, int 
value);
-
-const char *
-stetic_param_spec_enum_get_value_name (GParamSpecEnum *pspec, int value)
-{
-       GEnumValue *ev;
-
-       ev = g_enum_get_value (pspec->enum_class, value);
-       if (ev)
-               return ev->value_nick;
+       if (G_IS_PARAM_SPEC_CHAR (pspec))
+               g_value_set_char (value, G_PARAM_SPEC_CHAR (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_UCHAR (pspec))
+               g_value_set_uchar (value, G_PARAM_SPEC_UCHAR (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_INT (pspec))
+               g_value_set_int (value, G_PARAM_SPEC_INT (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_UINT (pspec))
+               g_value_set_uint (value, G_PARAM_SPEC_UINT (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_LONG (pspec))
+               g_value_set_long (value, G_PARAM_SPEC_LONG (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_ULONG (pspec))
+               g_value_set_ulong (value, G_PARAM_SPEC_ULONG (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_INT64 (pspec))
+               g_value_set_int64 (value, G_PARAM_SPEC_INT64 (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_UINT64 (pspec))
+               g_value_set_uint64 (value, G_PARAM_SPEC_UINT64 
(pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_FLOAT (pspec))
+               g_value_set_float (value, G_PARAM_SPEC_FLOAT (pspec)->maximum);
+       else if (G_IS_PARAM_SPEC_DOUBLE (pspec))
+               g_value_set_double (value, G_PARAM_SPEC_DOUBLE 
(pspec)->maximum);
        else
-               return NULL;
+               return FALSE;
+       return TRUE;
 }
 
-guint stetic_param_spec_flags_get_mask (GParamSpecFlags *pspec);
-
-guint
-stetic_param_spec_flags_get_mask (GParamSpecFlags *pspec)
+gboolean
+stetic_param_spec_get_default (GParamSpec *pspec, GValue *value)
 {
-       return pspec->flags_class->mask;
-}
+       g_value_init (value, pspec->value_type);
 
-const char *stetic_param_spec_flags_get_value_name (GParamSpecFlags *pspec, 
guint value);
-
-const char *
-stetic_param_spec_flags_get_value_name (GParamSpecFlags *pspec, guint value)
-{
-       GFlagsValue *fv;
-
-       fv = g_flags_get_first_value (pspec->flags_class, value);
-       if (fv)
-               return fv->value_nick;
+       if (G_IS_PARAM_SPEC_CHAR (pspec))
+               g_value_set_char (value, G_PARAM_SPEC_CHAR 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_UCHAR (pspec))
+               g_value_set_uchar (value, G_PARAM_SPEC_UCHAR 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_INT (pspec))
+               g_value_set_int (value, G_PARAM_SPEC_INT 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_UINT (pspec))
+               g_value_set_uint (value, G_PARAM_SPEC_UINT 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_LONG (pspec))
+               g_value_set_long (value, G_PARAM_SPEC_LONG 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_ULONG (pspec))
+               g_value_set_ulong (value, G_PARAM_SPEC_ULONG 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_INT64 (pspec))
+               g_value_set_int64 (value, G_PARAM_SPEC_INT64 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_UINT64 (pspec))
+               g_value_set_uint64 (value, G_PARAM_SPEC_UINT64 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_FLOAT (pspec))
+               g_value_set_float (value, G_PARAM_SPEC_FLOAT 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_DOUBLE (pspec))
+               g_value_set_double (value, G_PARAM_SPEC_DOUBLE 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_BOOLEAN (pspec))
+               g_value_set_boolean (value, G_PARAM_SPEC_BOOLEAN 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_UNICHAR (pspec))
+               g_value_set_uint (value, G_PARAM_SPEC_UNICHAR 
(pspec)->default_value);
+       else if (G_IS_PARAM_SPEC_STRING (pspec))
+               g_value_set_static_string (value, G_PARAM_SPEC_STRING 
(pspec)->default_value);
        else
-               return NULL;
+               return FALSE;
+       return TRUE;
 }

Modified: trunk/stetic/libstetic/Makefile.am
===================================================================
--- trunk/stetic/libstetic/Makefile.am  2005-03-21 14:22:52 UTC (rev 42048)
+++ trunk/stetic/libstetic/Makefile.am  2005-03-21 14:29:24 UTC (rev 42049)
@@ -15,7 +15,6 @@
        IWidgetSite.cs                  \
        ObjectWrapper.cs                \
        ObjectWrapperAttribute.cs       \
-       ParamFlags.cs                   \
        ParamSpec.cs                    \
        PropertyDescriptor.cs           \
        PropertyEditorAttribute.cs      \

Deleted: trunk/stetic/libstetic/ParamFlags.cs
===================================================================
--- trunk/stetic/libstetic/ParamFlags.cs        2005-03-21 14:22:52 UTC (rev 
42048)
+++ trunk/stetic/libstetic/ParamFlags.cs        2005-03-21 14:29:24 UTC (rev 
42049)
@@ -1,32 +0,0 @@
-// GLib.ParamFlags.cs : GParamFlags
-//
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the Lesser GNU General 
-// Public License as published by the Free Software Foundation.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this program; if not, write to the
-// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA.
-
-
-namespace GLib {
-
-       using System;
-
-       [Flags]
-       public enum ParamFlags {
-               Readable      = 1 << 0,
-               Writable      = 1 << 1,
-               Construct     = 1 << 2,
-               ConstructOnly = 1 << 3,
-               LaxValidation = 1 << 4
-       }
-}

Modified: trunk/stetic/libstetic/ParamSpec.cs
===================================================================
--- trunk/stetic/libstetic/ParamSpec.cs 2005-03-21 14:22:52 UTC (rev 42048)
+++ trunk/stetic/libstetic/ParamSpec.cs 2005-03-21 14:29:24 UTC (rev 42049)
@@ -1,35 +1,15 @@
-// GLib.ParamSpec.cs - ParamSpec implementation
-//
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the Lesser GNU General 
-// Public License as published by the Free Software Foundation.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this program; if not, write to the
-// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA.
-
-
 using GLib;
 using Gtk;
+using System;
+using System.Collections;
+using System.Runtime.InteropServices;
 
 namespace Stetic {
 
-       using System;
-       using System.Collections;
-       using System.Runtime.InteropServices;
-
-       public class ParamSpec : IWrapper, IDisposable {
+       public class ParamSpec : IDisposable {
                IntPtr _obj;
 
-               protected ParamSpec (IntPtr raw)
+               public ParamSpec (IntPtr raw)
                {
                        Raw = raw;
                }
@@ -45,16 +25,7 @@
                        GC.SuppressFinalize (this);
                }
 
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern void g_param_spec_ref (IntPtr obj);
-
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern void g_param_spec_unref (IntPtr obj);
-
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern void g_param_spec_sink (IntPtr obj);
-
-               protected IntPtr Raw {
+               IntPtr Raw {
                        get {
                                return _obj;
                        }
@@ -69,63 +40,62 @@
                        }
                }
 
-               public IntPtr Handle {
-                       get {
-                               return _obj;
-                       }
-               }
-
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern IntPtr g_param_spec_get_name (IntPtr obj);
-
                public string Name {
                        get {
-                               return Marshal.PtrToStringAnsi 
(g_param_spec_get_name (_obj));
+                               return GLib.Marshaller.Utf8PtrToString 
(g_param_spec_get_name (_obj));
                        }
                }
 
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern IntPtr g_param_spec_get_nick (IntPtr obj);
-
                public string Nick {
                        get {
-                               return Marshal.PtrToStringAnsi 
(g_param_spec_get_nick (_obj));
+                               return GLib.Marshaller.Utf8PtrToString 
(g_param_spec_get_nick (_obj));
                        }
                }
 
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern IntPtr g_param_spec_get_blurb (IntPtr obj);
-
                public string Blurb {
                        get {
-                               return Marshal.PtrToStringAnsi 
(g_param_spec_get_blurb (_obj));
+                               return GLib.Marshaller.Utf8PtrToString 
(g_param_spec_get_blurb (_obj));
                        }
                }
 
-               public virtual object Minimum {
-                       get {
-                               return null;
-                       }
-               }
+               [DllImport("libsteticglue")]
+               static extern bool stetic_param_spec_get_minimum (IntPtr pspec, 
ref GLib.Value value);
 
-               public virtual object Maximum {
+               public object Minimum {
                        get {
-                               return null;
+                               GLib.Value value = new GLib.Value ();
+
+                               if (stetic_param_spec_get_minimum (Raw, ref 
value))
+                                       return value.Val;
+                               else
+                                       return null;
                        }
                }
 
-               public virtual object Default {
+               [DllImport("libsteticglue")]
+               static extern bool stetic_param_spec_get_maximum (IntPtr pspec, 
ref GLib.Value value);
+
+               public object Maximum {
                        get {
-                               return null;
+                               GLib.Value value = new GLib.Value ();
+
+                               if (stetic_param_spec_get_maximum (Raw, ref 
value))
+                                       return value.Val;
+                               else
+                                       return null;
                        }
                }
 
                [DllImport("libsteticglue")]
-               static extern ParamFlags stetic_param_spec_get_flags (IntPtr 
obj);
-
-               public ParamFlags Flags {
+               static extern bool stetic_param_spec_get_default (IntPtr pspec, 
ref GLib.Value value);
+               public object Default {
                        get {
-                               return stetic_param_spec_get_flags (_obj);
+                               GLib.Value value = new GLib.Value ();
+
+                               if (stetic_param_spec_get_default (Raw, ref 
value))
+                                       return value.Val;
+                               else
+                                       return null;
                        }
                }
 
@@ -138,588 +108,87 @@
                        }
                }
 
-               [DllImport("libsteticglue")]
-               static extern IntPtr stetic_param_spec_get_owner_type (IntPtr 
obj);
+               static Hashtable props = new Hashtable (), childProps = new 
Hashtable ();
 
-               public IntPtr OwnerType {
-                       get {
-                               return stetic_param_spec_get_owner_type (_obj);
-                       }
-               }
-
-               static Hashtable typemap;
-
-               [DllImport("libglibsharpglue-2.dll")]
-               static extern int gtksharp_get_type_id (IntPtr raw);
-
-               static public ParamSpec Wrap (IntPtr raw)
-               {
-                       Type type = typemap[gtksharp_get_type_id (raw)] as Type;
-
-                       if (type != null) {
-                               object[] args = { raw };
-                               return (ParamSpec) 
System.Activator.CreateInstance (type, args);
-                       } else
-                               return new ParamSpec (raw);
-               }
-
                private class ParamSpecTypeHack : GLib.Object {
                        private ParamSpecTypeHack () : base (IntPtr.Zero) {}
 
-                       public static new GType LookupGType (System.Type t)
+                       static Hashtable classes = new Hashtable ();
+
+                       public static IntPtr LookupGTypeClass (System.Type t)
                        {
-                               return GLib.Object.LookupGType (t);
+                               if (classes[t] == null) {
+                                       GType gtype = GLib.Object.LookupGType 
(t);
+                                       classes[t] = g_type_class_ref 
(gtype.Val);
+                               }
+
+                               return (IntPtr)classes[t];
                        }
                }
 
-               [DllImport("libsteticglue")]
-               static extern IntPtr stetic_param_spec_for_property (GLib.GType 
type, string property_name);
-
-               static public ParamSpec LookupObjectProperty (Type type, string 
property)
+               public static ParamSpec LookupObjectProperty (Type type, string 
name)
                {
-                       IntPtr raw_ret = stetic_param_spec_for_property 
(ParamSpecTypeHack.LookupGType (type), property);
-                       if (raw_ret == IntPtr.Zero)
+                       string key = type.FullName + ":" + name;
+                       if (props[key] != null)
+                               return (ParamSpec)props[key];
+
+                       IntPtr klass = ParamSpecTypeHack.LookupGTypeClass 
(type);
+                       if (klass == IntPtr.Zero)
                                return null;
-                       else
-                               return ParamSpec.Wrap (raw_ret);
-               }
 
-               [DllImport("libsteticglue")]
-               static extern IntPtr stetic_param_spec_for_child_property 
(GLib.GType type, string property_name);
-
-               static public ParamSpec LookupChildProperty (Type type, string 
property)
-               {
-                       IntPtr raw_ret = stetic_param_spec_for_child_property 
(ParamSpecTypeHack.LookupGType (type), property);
-                       if (raw_ret == IntPtr.Zero)
+                       IntPtr pspec_raw = g_object_class_find_property (klass, 
name);
+                       if (pspec_raw == IntPtr.Zero)
                                return null;
-                       else
-                               return ParamSpec.Wrap (raw_ret);
+
+                       ParamSpec pspec = new ParamSpec (pspec_raw);
+                       props[key] = pspec;
+                       return pspec;
                }
 
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern int g_type_from_name (string name);
-
-               static ParamSpec ()
+               public static ParamSpec LookupChildProperty (Type type, string 
name)
                {
-                       typemap = new Hashtable ();
+                       string key = type.FullName + ":" + name;
+                       if (childProps[key] != null)
+                               return (ParamSpec)childProps[key];
 
-                       typemap[g_type_from_name ("GParamChar")] = typeof 
(ParamSpecChar);
-                       typemap[g_type_from_name ("GParamUChar")] = typeof 
(ParamSpecUChar);
-                       typemap[g_type_from_name ("GParamInt")] = typeof 
(ParamSpecInt);
-                       typemap[g_type_from_name ("GParamUInt")] = typeof 
(ParamSpecUInt);
-                       typemap[g_type_from_name ("GParamLong")] = typeof 
(ParamSpecLong);
-                       typemap[g_type_from_name ("GParamULong")] = typeof 
(ParamSpecULong);
-                       typemap[g_type_from_name ("GParamInt64")] = typeof 
(ParamSpecInt64);
-                       typemap[g_type_from_name ("GParamUInt64")] = typeof 
(ParamSpecUInt64);
-                       typemap[g_type_from_name ("GParamFloat")] = typeof 
(ParamSpecFloat);
-                       typemap[g_type_from_name ("GParamDouble")] = typeof 
(ParamSpecDouble);
-                       typemap[g_type_from_name ("GParamBoolean")] = typeof 
(ParamSpecBoolean);
-                       typemap[g_type_from_name ("GParamEnum")] = typeof 
(ParamSpecEnum);
-                       typemap[g_type_from_name ("GParamFlags")] = typeof 
(ParamSpecFlags);
-                       typemap[g_type_from_name ("GParamUnichar")] = typeof 
(ParamSpecUnichar);
-                       typemap[g_type_from_name ("GParamString")] = typeof 
(ParamSpecString);
-                       typemap[g_type_from_name ("GParamParam")] = typeof 
(ParamSpecParam);
-                       typemap[g_type_from_name ("GParamBoxed")] = typeof 
(ParamSpecBoxed);
-                       typemap[g_type_from_name ("GParamPointer")] = typeof 
(ParamSpecPointer);
-                       typemap[g_type_from_name ("GParamValueArray")] = typeof 
(ParamSpecValueArray);
-                       typemap[g_type_from_name ("GParamObject")] = typeof 
(ParamSpecObject);
-                       typemap[g_type_from_name ("GParamOverride")] = typeof 
(ParamSpecOverride);
-               }
-       }
-
-       public class ParamSpecChar : ParamSpec {
-               public ParamSpecChar (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern sbyte stetic_param_spec_char_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_char_get_minimum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern sbyte stetic_param_spec_char_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_char_get_maximum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern sbyte stetic_param_spec_char_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_char_get_default (Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecUChar : ParamSpec {
-               public ParamSpecUChar (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern byte stetic_param_spec_uchar_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_uchar_get_minimum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern byte stetic_param_spec_uchar_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_uchar_get_maximum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern byte stetic_param_spec_uchar_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_uchar_get_default 
(Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecBoolean : ParamSpec {
-               public ParamSpecBoolean (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern bool stetic_param_spec_boolean_get_default 
(IntPtr obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_boolean_get_default 
(Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecInt : ParamSpec {
-               public ParamSpecInt (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_int_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_int_get_minimum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_int_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_int_get_maximum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_int_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_int_get_default (Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecUInt : ParamSpec {
-               public ParamSpecUInt (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_uint_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_uint_get_minimum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_uint_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_uint_get_maximum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_uint_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_uint_get_default (Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecLong : ParamSpec {
-               public ParamSpecLong (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_long_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_long_get_minimum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_long_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_long_get_maximum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_long_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_long_get_default (Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecULong : ParamSpec {
-               public ParamSpecULong (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_ulong_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_ulong_get_minimum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_ulong_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_ulong_get_maximum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_ulong_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_ulong_get_default 
(Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecInt64 : ParamSpec {
-               public ParamSpecInt64 (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern long stetic_param_spec_int64_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_int64_get_minimum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern long stetic_param_spec_int64_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_int64_get_maximum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern long stetic_param_spec_int64_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_int64_get_default 
(Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecUInt64 : ParamSpec {
-               public ParamSpecUInt64 (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern ulong stetic_param_spec_uint64_get_minimum 
(IntPtr obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_uint64_get_minimum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern ulong stetic_param_spec_uint64_get_maximum 
(IntPtr obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_uint64_get_maximum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern ulong stetic_param_spec_uint64_get_default 
(IntPtr obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_uint64_get_default 
(Raw);
-                       }
-               }
-       }
-
-       public class ParamSpecUnichar : ParamSpec {
-               public ParamSpecUnichar (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_unichar_get_default 
(IntPtr obj);
-
-               public override object Default {
-                       get {
-                               return Marshaller.GUnicharToChar 
(stetic_param_spec_unichar_get_default (Raw));
-                       }
-               }
-       }
-
-       public class ParamSpecEnum : ParamSpec {
-               public ParamSpecEnum (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_enum_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_enum_get_minimum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_enum_get_maximum (IntPtr 
obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_enum_get_maximum (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern int stetic_param_spec_enum_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_enum_get_default (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern IntPtr stetic_param_spec_enum_get_value_name 
(IntPtr obj, int value);
-
-               public string ValueName (int value) {
-                       IntPtr raw_ret = stetic_param_spec_enum_get_value_name 
(Raw, value);
-                       if (raw_ret == IntPtr.Zero)
+                       IntPtr klass = ParamSpecTypeHack.LookupGTypeClass 
(type);
+                       if (klass == IntPtr.Zero)
                                return null;
-                       else
-                               return Marshal.PtrToStringAnsi (raw_ret);
-               }
-       }
 
-       public class ParamSpecFlags : ParamSpec {
-               public ParamSpecFlags (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_flags_get_mask (IntPtr 
obj);
-
-               public uint Mask {
-                       get {
-                               return stetic_param_spec_flags_get_mask (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern uint stetic_param_spec_flags_get_default (IntPtr 
obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_flags_get_default 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern IntPtr stetic_param_spec_flags_get_value_name 
(IntPtr obj, uint value);
-
-               public string ValueName (uint value) {
-                       IntPtr raw_ret = stetic_param_spec_flags_get_value_name 
(Raw, value);
-                       if (raw_ret == IntPtr.Zero)
+                       IntPtr pspec_raw = 
gtk_container_class_find_child_property (klass, name);
+                       if (pspec_raw == IntPtr.Zero)
                                return null;
-                       else
-                               return Marshal.PtrToStringAnsi (raw_ret);
-               }
-       }
 
-       public class ParamSpecFloat : ParamSpec {
-               public ParamSpecFloat (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern float stetic_param_spec_float_get_minimum (IntPtr 
obj);
-
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_float_get_minimum 
(Raw);
-                       }
+                       ParamSpec pspec = new ParamSpec (pspec_raw);
+                       childProps[key] = pspec;
+                       return pspec;
                }
 
-               [DllImport("libsteticglue")]
-               static extern float stetic_param_spec_float_get_maximum (IntPtr 
obj);
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern void g_param_spec_ref (IntPtr obj);
 
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_float_get_maximum 
(Raw);
-                       }
-               }
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern void g_param_spec_unref (IntPtr obj);
 
-               [DllImport("libsteticglue")]
-               static extern float stetic_param_spec_float_get_default (IntPtr 
obj);
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern void g_param_spec_sink (IntPtr obj);
 
-               public override object Default {
-                       get {
-                               return stetic_param_spec_float_get_default 
(Raw);
-                       }
-               }
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern IntPtr g_param_spec_get_name (IntPtr obj);
 
-               [DllImport("libsteticglue")]
-               static extern float stetic_param_spec_float_get_epsilon (IntPtr 
obj);
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern IntPtr g_param_spec_get_nick (IntPtr obj);
 
-               public float Epsilon {
-                       get {
-                               return stetic_param_spec_float_get_epsilon 
(Raw);
-                       }
-               }
-       }
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern IntPtr g_param_spec_get_blurb (IntPtr obj);
 
-       public class ParamSpecDouble : ParamSpec {
-               public ParamSpecDouble (IntPtr raw) : base (raw) {}
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern IntPtr g_type_class_ref (IntPtr gtype);
 
-               [DllImport("libsteticglue")]
-               static extern double stetic_param_spec_double_get_minimum 
(IntPtr obj);
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern IntPtr g_object_class_find_property (IntPtr 
klass, string name);
 
-               public override object Minimum {
-                       get {
-                               return stetic_param_spec_double_get_minimum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern double stetic_param_spec_double_get_maximum 
(IntPtr obj);
-
-               public override object Maximum {
-                       get {
-                               return stetic_param_spec_double_get_maximum 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern double stetic_param_spec_double_get_default 
(IntPtr obj);
-
-               public override object Default {
-                       get {
-                               return stetic_param_spec_double_get_default 
(Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern double stetic_param_spec_double_get_epsilon 
(IntPtr obj);
-
-               public double Epsilon {
-                       get {
-                               return stetic_param_spec_double_get_epsilon 
(Raw);
-                       }
-               }
+               [DllImport("libgtk-win32-2.0-0.dll")]
+               static extern IntPtr gtk_container_class_find_child_property 
(IntPtr klass, string name);
        }
-
-       public class ParamSpecString : ParamSpec {
-               public ParamSpecString (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern IntPtr stetic_param_spec_string_get_default 
(IntPtr obj);
-
-               public override object Default {
-                       get {
-                               return Marshal.PtrToStringAnsi 
(stetic_param_spec_string_get_default (Raw));
-                       }
-               }
-       }
-
-       public class ParamSpecParam : ParamSpec {
-               public ParamSpecParam (IntPtr raw) : base (raw) {}
-       }
-
-       public class ParamSpecBoxed : ParamSpec {
-               public ParamSpecBoxed (IntPtr raw) : base (raw) {}
-       }
-
-       public class ParamSpecPointer : ParamSpec {
-               public ParamSpecPointer (IntPtr raw) : base (raw) {}
-       }
-
-       public class ParamSpecValueArray : ParamSpec {
-               public ParamSpecValueArray (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern uint 
stetic_param_spec_value_array_get_fixed_n_elements (IntPtr obj);
-
-               public uint FixedNElements {
-                       get {
-                               return 
stetic_param_spec_value_array_get_fixed_n_elements (Raw);
-                       }
-               }
-
-               [DllImport("libsteticglue")]
-               static extern IntPtr 
stetic_param_spec_value_array_get_element_spec (IntPtr obj);
-
-               public ParamSpec ElementSpec {
-                       get {
-                               IntPtr ret_raw = 
stetic_param_spec_value_array_get_element_spec (Raw);
-                               return ParamSpec.Wrap (ret_raw);
-                       }
-               }
-       }
-
-       public class ParamSpecObject : ParamSpec {
-               public ParamSpecObject (IntPtr raw) : base (raw) {}
-       }
-
-       public class ParamSpecOverride : ParamSpec {
-               public ParamSpecOverride (IntPtr raw) : base (raw) {}
-
-               [DllImport("libsteticglue")]
-               static extern IntPtr stetic_param_spec_override_get_overridden 
(IntPtr obj);
-
-               public ParamSpec Overridden {
-                       get {
-                               IntPtr ret_raw = 
stetic_param_spec_override_get_overridden (Raw);
-                               return ParamSpec.Wrap (ret_raw);
-                       }
-               }
-       }
-
 }

Modified: trunk/stetic/libstetic/libstetic.dll.config
===================================================================
--- trunk/stetic/libstetic/libstetic.dll.config 2005-03-21 14:22:52 UTC (rev 
42048)
+++ trunk/stetic/libstetic/libstetic.dll.config 2005-03-21 14:29:24 UTC (rev 
42049)
@@ -1,4 +1,5 @@
 <configuration>
   <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0.so.0"/>
   <dllmap dll="libglibsharpglue-2.0.dll" target="libglibsharpglue-2.0.so"/>
+  <dllmap dll="libgtk-win32-2.0-0.dll" target="libgtk-x11-2.0.so.0"/>
 </configuration>

Modified: trunk/stetic/libstetic/wrapper/Container.cs
===================================================================
--- trunk/stetic/libstetic/wrapper/Container.cs 2005-03-21 14:22:52 UTC (rev 
42048)
+++ trunk/stetic/libstetic/wrapper/Container.cs 2005-03-21 14:29:24 UTC (rev 
42049)
@@ -240,7 +240,7 @@
 
                        protected virtual void ChildNotifyHandler (object obj, 
Gtk.ChildNotifiedArgs args)
                        {
-                               ParamSpec pspec = ParamSpec.Wrap (args.Pspec);
+                               ParamSpec pspec = new ParamSpec (args.Pspec);
                                EmitNotify (pspec.Name);
                        }
 

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to