[Gd-chatter] r11359 - in branches/opendylan-melange: gtk gtk-c-ffi gtk-hello-world melange registry/generic

hannes at gwydiondylan.org hannes at gwydiondylan.org
Sat May 19 21:43:21 CEST 2007


Author: hannes
Date: Sat May 19 21:43:18 2007
New Revision: 11359

Added:
   branches/opendylan-melange/gtk/
   branches/opendylan-melange/gtk/gtk-module.dylan   (contents, props changed)
   branches/opendylan-melange/gtk/gtk.dylan   (contents, props changed)
   branches/opendylan-melange/gtk/gtk.hdp   (contents, props changed)
   branches/opendylan-melange/gtk/library.dylan   (contents, props changed)
   branches/opendylan-melange/gtk/module.dylan   (contents, props changed)
   branches/opendylan-melange/gtk/properties-module.dylan   (contents, props changed)
   branches/opendylan-melange/gtk/properties.dylan   (contents, props changed)
   branches/opendylan-melange/gtk/support.c   (contents, props changed)
      - copied, changed from r11354, branches/opendylan-melange/gtk-hello-world/support.c
   branches/opendylan-melange/registry/generic/gtk   (contents, props changed)
Removed:
   branches/opendylan-melange/gtk-hello-world/support.c
Modified:
   branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan
   branches/opendylan-melange/gtk-hello-world/gtk-hello-world-win32.hdp
   branches/opendylan-melange/gtk-hello-world/gtk-hello-world.dylan
   branches/opendylan-melange/gtk-hello-world/library.dylan
   branches/opendylan-melange/gtk-hello-world/module.dylan
   branches/opendylan-melange/melange/c-decl-write-c-ffi.dylan
Log:
job: fd

 * Refactoring of GTK support code from hello-world to library gtk
 * Add property support.

Modified: branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan
==============================================================================
--- branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan	(original)
+++ branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan	Sat May 19 21:43:18 2007
@@ -239,7 +239,7 @@
 define constant <anonymous-1507<@2>> = <anonymous-1507>;
 define C-struct <_GValue>
   slot GValue-g-type :: <C-unsigned-long>;
-  slot GValue-data :: <anonymous-1507<@2>>;
+  array slot GValue-data :: <anonymous-1507>, length: 2;
 end;
 
 define C-pointer-type <GValue> => <_GValue>;
@@ -271,7 +271,7 @@
   slot GObjectClass-finalize :: <anonymous-1657>;
   slot GObjectClass-dispatch-properties-changed :: <anonymous-1658>;
   slot GObjectClass-notify :: <anonymous-1659>;
-  slot GObjectClass-pdummy :: <gpointer<@8>>;
+  array slot GObjectClass-pdummy :: <gpointer>, length: 8;
 end;
 
 define C-pointer-type <GInitiallyUnownedClass> => <_GObjectClass>;
@@ -4130,9 +4130,7 @@
 
 define constant $G-MAXUINT16 = 65535;
 
-//define constant $G-MAXUINT32 = #ex00000000FFFFFFFF;
 
-//define constant $G-MAXINT64 = #ex7FFFFFFFFFFFFFFF;
 
 define constant $G-LITTLE-ENDIAN = 1234;
 
@@ -4165,17 +4163,11 @@
 
 define constant $G-MAXUSHORT = 65535;
 
-//define constant $G-MININT = #exFFFFFFFF80000000;
 
-//define constant $G-MAXINT = #ex000000007FFFFFFF;
 
-//define constant $G-MAXUINT = #ex00000000FFFFFFFF;
 
-//define constant $G-MINLONG = #exFFFFFFFF80000000;
 
-//define constant $G-MAXLONG = #ex000000007FFFFFFF;
 
-//define constant $G-MAXULONG = #ex00000000FFFFFFFF;
 
 define constant $G-GINT16-MODIFIER = "h";
 
@@ -4209,7 +4201,6 @@
 
 define constant $G-GSIZE-FORMAT = "u";
 
-//define constant $G-MAXSIZE = #ex00000000FFFFFFFF;
 
 define constant $GLIB-MAJOR-VERSION = 2;
 
@@ -4404,11 +4395,8 @@
 
 define constant $USHRT-MAX = 65535;
 
-//define constant $INT-MIN = #exFFFFFFFF80000000;
 
-//define constant $INT-MAX = #ex000000007FFFFFFF;
 
-//define constant $UINT-MAX = #ex00000000FFFFFFFF;
 
 
 
@@ -9947,7 +9935,7 @@
   slot GIOChannel-read-buf :: <GString>;
   slot GIOChannel-encoded-read-buf :: <GString>;
   slot GIOChannel-write-buf :: <GString>;
-  slot GIOChannel-partial-write-buf :: <gchar<@6>>;
+  array slot GIOChannel-partial-write-buf :: <gchar>, length: 6;
   bitfield slot GIOChannel-use-buffer :: <C-int>, width: 1;
   bitfield slot GIOChannel-do-encode :: <C-int>, width: 1;
   bitfield slot GIOChannel-close-on-unref :: <C-int>, width: 1;
@@ -10485,7 +10473,7 @@
   slot GHookList-hooks :: <GHook>;
   slot GHookList-dummy3 :: <C-void*>;
   slot GHookList-finalize-hook :: <anonymous-664>;
-  slot GHookList-dummy :: <gpointer<@2>>;
+  array slot GHookList-dummy :: <gpointer>, length: 2;
 end;
 
 define constant <anonymous-658> = <C-function-pointer>;
@@ -13438,7 +13426,7 @@
   slot GParamSpecClass-value-set-default :: <anonymous-1521>;
   slot GParamSpecClass-value-validate :: <anonymous-1522>;
   slot GParamSpecClass-values-cmp :: <anonymous-1523>;
-  slot GParamSpecClass-dummy :: <gpointer<@4>>;
+  array slot GParamSpecClass-dummy :: <gpointer>, length: 4;
 end;
 
 define C-pointer-type <GParamSpecClass> => <_GParamSpecClass>;
@@ -20295,7 +20283,7 @@
 define constant <gdouble<@128>> = <gdouble*>;
 define C-struct <_GdkTimeCoord>
   slot GdkTimeCoord-time :: <C-unsigned-int>;
-  slot GdkTimeCoord-axes :: <gdouble<@128>>;
+  array slot GdkTimeCoord-axes :: <gdouble>, length: 128;
 end;
 
 define C-pointer-type <GdkTimeCoord> => <_GdkTimeCoord>;
@@ -23312,7 +23300,7 @@
 
 define constant <guint32<@256>> = <guint32*>;
 define C-struct <_GdkRgbCmap>
-  slot GdkRgbCmap-colors :: <guint32<@256>>;
+  array slot GdkRgbCmap-colors :: <guint32>, length: 256;
   slot GdkRgbCmap-n-colors :: <C-signed-int>;
   slot GdkRgbCmap-info-list :: <GSList>;
 end;
@@ -27536,8 +27524,8 @@
   slot GtkRulerMetric-metric-name :: <gchar*>;
   slot GtkRulerMetric-abbrev :: <gchar*>;
   slot GtkRulerMetric-pixels-per-unit :: <C-double>;
-  slot GtkRulerMetric-ruler-scale :: <gdouble<@10>>;
-  slot GtkRulerMetric-subdivide :: <gint<@5>>;
+  array slot GtkRulerMetric-ruler-scale :: <gdouble>, length: 10;
+  array slot GtkRulerMetric-subdivide :: <gint>, length: 5;
 end;
 
 define C-pointer-type <GtkRulerMetric> => <_GtkRulerMetric>;

Modified: branches/opendylan-melange/gtk-hello-world/gtk-hello-world-win32.hdp
==============================================================================
--- branches/opendylan-melange/gtk-hello-world/gtk-hello-world-win32.hdp	(original)
+++ branches/opendylan-melange/gtk-hello-world/gtk-hello-world-win32.hdp	Sat May 19 21:43:18 2007
@@ -6,7 +6,6 @@
 	gtk-hello-world
 base-address:	0x63FE0000
 start-function:	main
-c-source-files:	support.c
 major-version:	1
 minor-version:	0
 library-pack:	0

Modified: branches/opendylan-melange/gtk-hello-world/gtk-hello-world.dylan
==============================================================================
--- branches/opendylan-melange/gtk-hello-world/gtk-hello-world.dylan	(original)
+++ branches/opendylan-melange/gtk-hello-world/gtk-hello-world.dylan	Sat May 19 21:43:18 2007
@@ -3,250 +3,6 @@
 Author:    Andreas Bogk, Hannes Mehnert
 Copyright: (c) 2007 Dylan Hackers
 
-define C-function g-type-from-instance
-  input parameter instance :: <GTypeInstance>;
-  result type :: <GType>;
-  c-name: "g_type_from_instance";
-end;
-
-define C-function g-value-type
-  input parameter instance :: <GValue>;
-  result type :: <GType>;
-  c-name: "g_value_type";
-end;
-
-define method make(type :: subclass(<GTypeInstance>), #rest args, 
-                   #key address, #all-keys)
- => (result :: <GTypeInstance>)
-  if(address & (as(<integer>, address) ~= 0))
-    let instance = next-method(<GTypeInstance>, address: address);
-    let g-type = g-type-from-instance(instance);
-    let dylan-type = find-gtype(g-type);
-    unless (dylan-type)
-      error("Unknown GType encountered. Re-run melange or implement dynamic class generation.");
-    end;
-    next-method(dylan-type, address: address);
-  else
-    next-method();
-  end if;
-end method make;
-
-define function all-subclasses(x :: <class>)
-  => (subclasses :: <collection>)
-  apply(concatenate, x.direct-subclasses, 
-        map(all-subclasses, x.direct-subclasses))
-end;
-
-define function find-gtype-by-name(name :: <string>)
-  block(return)
-    for(i in $all-gtype-instances)
-      if(as-uppercase(i.debug-name) = as-uppercase(concatenate("<_", name, ">")))
-        return(i)
-      end if;
-//    finally
-//      error("Unknown GType %= encountered.", as(<byte-string>, name))
-    end for;
-  end block;
-end function find-gtype-by-name;
-
-define method find-gtype(g-type :: <integer>)
- => (type :: false-or(<class>));
-  let dylan-type = element($gtype-table, g-type, default: #f);
-  unless(dylan-type)
-    let type-name = g-type-name(g-type);
-    dylan-type := find-gtype-by-name(type-name);
-    $gtype-table[g-type] := dylan-type;
-  end unless;
-  dylan-type
-end method find-gtype;
-
-define constant $all-gtype-instances = all-subclasses(<_GTypeInstance>);
-
-define function dylan-meta-marshaller (closure :: <GClosure>,
-                                       return-value :: <GValue>,
-                                       n-param-values :: <integer>,
-                                       param-values :: <GValue>,
-                                       invocation-hint :: <gpointer>,
-                                       marshal-data :: <gpointer>)
-  let values = #();
-  for(i from 0 below n-param-values)
-
-//    let address = integer-as-raw(param-values.raw-pointer-address.raw-as-integer + i * sizeof-gvalue());
-//    let value* = make(<GValue>, address: address);
-
-    let value = make-c-pointer(<GValue>,
-                               primitive-machine-word-add
-                                 (primitive-cast-pointer-as-raw
-                                   (primitive-unwrap-c-pointer(param-values)),
-                                  integer-as-raw
-                                    (i * sizeof-gvalue())),
-                               #[]);
-    values := pair(g-value-to-dylan(value), values);
-//    value*;
-  end for;
-  values := reverse!(values);
-  let res = apply(import-c-dylan-object(c-type-cast(<C-dylan-object>, marshal-data)), values);
-  if(return-value ~= null-pointer(<gvalue>))
-    select(g-value-type(return-value))
-      $G-TYPE-BOOLEAN => g-value-set-boolean(return-value, 
-                                             if(res) 1 else 0 end);
-      otherwise error("Unsupported GType in return from signal handler.");
-    end select;
-  end if;
-end;
-
-
-define C-callable-wrapper _dylan-meta-marshaller of dylan-meta-marshaller
-  parameter closure         :: <GClosure>;
-  parameter return-value    :: <GValue>;
-  parameter n-param-values  :: <guint>;
-  parameter param-values    :: <GValue>;
-  parameter invocation-hint :: <gpointer>;
-  parameter marshal-data    :: <gpointer>;
-  c-name: "foo";
-end;
-
-define C-function sizeof-gvalue
-  result size :: <C-int>;
-  c-name: "sizeof_gvalue";
-end;
-
-define C-function sizeof-gclosure
-  result size :: <C-int>;
-  c-name: "sizeof_gclosure";
-end;
-
-
-
-define function g-signal-connect(instance :: <GObject>, 
-                                 signal :: <string>,
-                                 function :: <function>,
-                                 #key run-after? :: <boolean>)
-  register-c-dylan-object(function);
-  let closure = g-closure-new-simple(sizeof-gclosure(),
-                                     null-pointer(<gpointer>));
-  g-closure-set-meta-marshal
-    (closure, export-c-dylan-object(function), _dylan-meta-marshaller);
-  g-signal-connect-closure(instance, 
-                           signal, 
-                           closure,
-                           if(run-after?) 1 else 0 end)
-end function g-signal-connect;
-
-define function initialize-gtk
-    () => ()
-  let name = application-name();
-  with-c-string (string = name)
-    let string* = make(<C-string*>, element-count: 1);
-    string*[0] := string;
-    let string** = make(<char***>);
-    string**[0] := string*;
-    let int* = make(<C-int*>);
-    int*[0] := 1;
-    %gtk-init(int*, string**);
-    destroy(string*);
-    destroy(string**);
-    destroy(int*)
-  end
-end function initialize-gtk;
-
-
-// map GTK type IDs to Dylan classes
-define table $gtype-table = {
-                             $G-TYPE-CHAR         => <gchar>,
-                             $G-TYPE-UCHAR        => <guchar>,
-                             $G-TYPE-INT          => <gint>,
-                             $G-TYPE-UINT         => <guint>,
-                             $G-TYPE-LONG         => <glong>,
-                             $G-TYPE-ULONG        => <gulong>,
-                             $G-TYPE-INT64        => <gint64>,
-                             $G-TYPE-UINT64       => <guint64>,
-                             $G-TYPE-FLOAT        => <gfloat>,
-                             $G-TYPE-DOUBLE       => <gdouble>,
-                             $G-TYPE-STRING       => <gstring>,
-                             $G-TYPE-POINTER      => <gpointer>
-                             };
-
-define function make-gdk-event(address)
- => (instance :: <C-void*>)
-  let event = make(<GdkEventAny>, address: address);
-  make(select(event.GdkEventAny-type)
-         $GDK-NOTHING           => <GdkEventAny>;
-         $GDK-DELETE            => <GdkEventAny>;
-         $GDK-DESTROY           => <GdkEventAny>;
-         $GDK-EXPOSE            => <GdkEventExpose>;
-         $GDK-MOTION-NOTIFY     => <GdkEventMotion>;
-         $GDK-BUTTON-PRESS      => <GdkEventButton>;
-         $GDK-2BUTTON-PRESS     => <GdkEventButton>;
-         $GDK-3BUTTON-PRESS     => <GdkEventButton>;
-         $GDK-BUTTON-RELEASE    => <GdkEventButton>;
-         $GDK-KEY-PRESS         => <GdkEventKey>;
-         $GDK-KEY-RELEASE       => <GdkEventKey>;
-         $GDK-ENTER-NOTIFY      => <GdkEventCrossing>;
-         $GDK-LEAVE-NOTIFY      => <GdkEventCrossing>;
-         $GDK-FOCUS-CHANGE      => <GdkEventFocus>;
-         $GDK-CONFIGURE         => <GdkEventConfigure>;
-         $GDK-MAP               => <GdkEventAny>;
-         $GDK-UNMAP             => <GdkEventAny>;
-         $GDK-PROPERTY-NOTIFY   => <GdkEventProperty>;
-         $GDK-SELECTION-CLEAR   => <GdkEventSelection>;
-         $GDK-SELECTION-REQUEST => <GdkEventSelection>;
-         $GDK-SELECTION-NOTIFY  => <GdkEventSelection>;
-         $GDK-PROXIMITY-IN      => <GdkEventProximity>;
-         $GDK-PROXIMITY-OUT     => <GdkEventProximity>;
-         $GDK-DRAG-ENTER        => <GdkEventDND>;
-         $GDK-DRAG-LEAVE        => <GdkEventDND>;
-         $GDK-DRAG-MOTION       => <GdkEventDND>;
-         $GDK-DRAG-STATUS       => <GdkEventDND>;
-         $GDK-DROP-START        => <GdkEventDND>;
-         $GDK-DROP-FINISHED     => <GdkEventDND>;
-         $GDK-CLIENT-EVENT      => <GdkEventClient>;
-         $GDK-VISIBILITY-NOTIFY => <GdkEventAny>;
-         $GDK-NO-EXPOSE         => <GdkEventNoExpose>;
-         $GDK-SCROLL            => <GdkEventScroll>;
-         $GDK-WINDOW-STATE      => <GdkEventWindowState>;
-         $GDK-SETTING           => <GdkEventSetting>;
-         $GDK-OWNER-CHANGE      => <GdkEventOwnerChange>;
-         $GDK-GRAB-BROKEN       => <GdkEventGrabBroken>;
-         otherwise              => <GdkEventAny>;
-       end, address: address);
-end;
-
-define function g-value-to-dylan(instance :: <GValue>)
- => (dylan-instance);
-  let g-type = g-value-type(instance);
-  if(g-type ~= $G-TYPE-INVALID)
-    let dylan-type = find-gtype(g-type);
-    if(dylan-type & subtype?(dylan-type, <GTypeInstance>))
-      make(dylan-type, address: instance.g-value-peek-pointer.pointer-address)
-    else
-      select(g-type)
-        $G-TYPE-NONE    => #f;
-        $G-TYPE-CHAR    => g-value-get-char(instance);
-        $G-TYPE-UCHAR   => g-value-get-uchar(instance);
-        $G-TYPE-BOOLEAN => (g-value-get-boolean(instance) = 1);
-        $G-TYPE-INT     => g-value-get-int(instance);
-        $G-TYPE-UINT    => g-value-get-uint(instance);
-        $G-TYPE-LONG    => g-value-get-long(instance);
-        $G-TYPE-ULONG   => g-value-get-ulong(instance);
-        $G-TYPE-INT64   => g-value-get-int64(instance);
-        $G-TYPE-UINT64  => g-value-get-uint64(instance);
-        $G-TYPE-ENUM    => signal("Can't handle $G-TYPE-ENUM yet.");
-        $G-TYPE-FLAGS   => signal("Can't handle $G-TYPE-FLAGS yet.");
-        $G-TYPE-FLOAT   => g-value-get-float(instance);
-        $G-TYPE-DOUBLE  => g-value-get-double(instance);
-        $G-TYPE-STRING  => g-value-get-string(instance);
-        $G-TYPE-POINTER => g-value-get-pointer(instance);
-        $G-TYPE-BOXED   => #f;
-        $G-TYPE-PARAM   => #f;
-        $G-TYPE-OBJECT  => #f;
-        gdk-event-get-type() => make-gdk-event(instance.g-value-peek-pointer.pointer-address);
-      end select;
-    end if;
-  end if;
-end function g-value-to-dylan;
-
-
 define method main () => ()
   format-out("Hello, world!\n");
 
@@ -254,7 +10,7 @@
   let window = gtk-window-new($GTK-WINDOW-TOPLEVEL);
   let button = gtk-button-new-with-label("Hello, world!");
   gtk-container-add(window, button);
-  g-signal-connect(button, "key-press-event", method(#rest args) format-out("Hello world! %=\n", args) end);
+  g-signal-connect(button, "clicked", method(#rest args) button. at label := format-to-string("Hello world! %=\n", args) end);
   gtk-widget-show(button);
   gtk-widget-show(window);
   gtk-main();

Modified: branches/opendylan-melange/gtk-hello-world/library.dylan
==============================================================================
--- branches/opendylan-melange/gtk-hello-world/library.dylan	(original)
+++ branches/opendylan-melange/gtk-hello-world/library.dylan	Sat May 19 21:43:18 2007
@@ -8,6 +8,5 @@
   use dylan;
   use io;
   use system;
-  use c-ffi;
-  use gtk-c-ffi;
+  use gtk;
 end library gtk-hello-world;

Modified: branches/opendylan-melange/gtk-hello-world/module.dylan
==============================================================================
--- branches/opendylan-melange/gtk-hello-world/module.dylan	(original)
+++ branches/opendylan-melange/gtk-hello-world/module.dylan	Sat May 19 21:43:18 2007
@@ -5,11 +5,7 @@
 
 define module gtk-hello-world
   use common-dylan;
-  use threads;
   use format-out;
   use streams;
-  use c-ffi;
-  use dylan-primitives;
-  use dylan-extensions, import: { debug-name, integer-as-raw, raw-as-integer };
-  use gtk-internal;
+  use gtk;
 end module gtk-hello-world;

Added: branches/opendylan-melange/gtk/gtk-module.dylan
==============================================================================
--- (empty file)
+++ branches/opendylan-melange/gtk/gtk-module.dylan	Sat May 19 21:43:18 2007
@@ -0,0 +1,11 @@
+Module:    dylan-user
+Author:    Hannes Mehnert, Andreas Bogk
+Copyright: (C) 2007,.  All rights reserved.
+
+
+define module gtk
+  use common-dylan;
+  use gtk-internal, export: all;
+  use gtk-support, export: all;
+  use gtk-properties, export: all;
+end module gtk;

Added: branches/opendylan-melange/gtk/gtk.dylan
==============================================================================
--- (empty file)
+++ branches/opendylan-melange/gtk/gtk.dylan	Sat May 19 21:43:18 2007
@@ -0,0 +1,325 @@
+Module:    gtk-support
+Author:    Hannes Mehnert, Andreas Bogk
+Copyright: (C) 2007,.  All rights reserved.
+
+define C-function g-type-from-instance
+  input parameter instance :: <GTypeInstance>;
+  result type :: <GType>;
+  c-name: "g_type_from_instance";
+end;
+
+define C-function g-value-type
+  input parameter instance :: <GValue>;
+  result type :: <GType>;
+  c-name: "g_value_type";
+end;
+
+define C-function g-is-value
+  input parameter instance :: <GValue>;
+  result type :: <C-int>;
+  c-name: "g_is_value";
+end;
+
+define C-function gtk-widget-get-window
+  input parameter widget :: <GtkWidget>;
+  result window :: <GdkWindow>;
+  c-name: "gtk_widget_get_window";
+end;
+
+define C-function gtk-widget-get-state
+  input parameter widget :: <GtkWidget>;
+  result state :: <C-int>;
+  c-name: "gtk_widget_get_state";
+end;
+
+
+define method make(type :: subclass(<GTypeInstance>), #rest args, 
+                   #key address, #all-keys)
+ => (result :: <GTypeInstance>)
+  if(address & (as(<integer>, address) ~= 0))
+    let instance = next-method(<GTypeInstance>, address: address);
+    let g-type = g-type-from-instance(instance);
+    let dylan-type = find-gtype(g-type);
+    unless (dylan-type)
+      error("Unknown GType encountered. Re-run melange or implement dynamic class generation.");
+    end;
+    let result = next-method(dylan-type, address: address);
+    g-object-ref-sink(result);
+    finalize-when-unreachable(result);
+    result;
+  else
+    // possible route: convert #rest args into GParamSpec, call g_object_newv()
+    error("Can't create GTypeInstance on my own.");
+  end if;
+end method make;
+
+define method finalize (instance :: <GTypeInstance>)
+ => ();
+  g-object-unref(instance)
+end;
+
+define function all-subclasses(x :: <class>)
+  => (subclasses :: <collection>)
+  apply(concatenate, x.direct-subclasses, 
+        map(all-subclasses, x.direct-subclasses))
+end;
+
+define function find-gtype-by-name(name :: <string>)
+  block(return)
+    for(i in $all-gtype-instances)
+      if(as-uppercase(i.debug-name) = as-uppercase(concatenate("<_", name, ">")))
+        return(i)
+      end if;
+//    finally
+//      error("Unknown GType %= encountered.", as(<byte-string>, name))
+    end for;
+  end block;
+end function find-gtype-by-name;
+
+define method find-gtype(g-type :: <integer>)
+ => (type :: false-or(<class>));
+  let dylan-type = element($gtype-table, g-type, default: #f);
+  unless(dylan-type)
+    let type-name = g-type-name(g-type);
+    dylan-type := find-gtype-by-name(type-name);
+    $gtype-table[g-type] := dylan-type;
+  end unless;
+  dylan-type
+end method find-gtype;
+
+define constant $all-gtype-instances = all-subclasses(<_GTypeInstance>);
+
+define function dylan-meta-marshaller (closure :: <GClosure>,
+                                       return-value :: <GValue>,
+                                       n-param-values :: <integer>,
+                                       param-values :: <GValue>,
+                                       invocation-hint :: <gpointer>,
+                                       marshal-data :: <gpointer>)
+  let values = #();
+  for(i from 0 below n-param-values)
+
+//    let address = integer-as-raw(param-values.raw-pointer-address.raw-as-integer + i * sizeof-gvalue());
+//    let value* = make(<GValue>, address: address);
+
+    let value = make-c-pointer(<GValue>,
+                               primitive-machine-word-add
+                                 (primitive-cast-pointer-as-raw
+                                   (primitive-unwrap-c-pointer(param-values)),
+                                  integer-as-raw
+                                    (i * sizeof-gvalue())),
+                               #[]);
+    values := pair(g-value-to-dylan(value), values);
+//    value*;
+  end for;
+  values := reverse!(values);
+  let res = apply(import-c-dylan-object(c-type-cast(<C-dylan-object>, marshal-data)), values);
+  if(return-value ~= null-pointer(<gvalue>))
+    select(g-value-type(return-value))
+      $G-TYPE-BOOLEAN => g-value-set-boolean(return-value, 
+                                             if(res) 1 else 0 end);
+      otherwise error("Unsupported GType in return from signal handler.");
+    end select;
+  end if;
+end;
+
+
+define C-callable-wrapper _dylan-meta-marshaller of dylan-meta-marshaller
+  parameter closure         :: <GClosure>;
+  parameter return-value    :: <GValue>;
+  parameter n-param-values  :: <guint>;
+  parameter param-values    :: <GValue>;
+  parameter invocation-hint :: <gpointer>;
+  parameter marshal-data    :: <gpointer>;
+  c-name: "foo";
+end;
+
+define C-function sizeof-gvalue
+  result size :: <C-int>;
+  c-name: "sizeof_gvalue";
+end;
+
+define C-function sizeof-gclosure
+  result size :: <C-int>;
+  c-name: "sizeof_gclosure";
+end;
+
+
+
+define function g-signal-connect(instance :: <GObject>, 
+                                 signal :: <string>,
+                                 function :: <function>,
+                                 #key run-after? :: <boolean>)
+  register-c-dylan-object(function);
+  let closure = g-closure-new-simple(sizeof-gclosure(),
+                                     null-pointer(<gpointer>));
+  g-closure-set-meta-marshal
+    (closure, export-c-dylan-object(function), _dylan-meta-marshaller);
+  g-signal-connect-closure(instance, 
+                           signal, 
+                           closure,
+                           if(run-after?) 1 else 0 end)
+end function g-signal-connect;
+
+define function initialize-gtk
+    () => ()
+  let name = application-name();
+  with-c-string (string = name)
+    let string* = make(<C-string*>, element-count: 1);
+    string*[0] := string;
+    let string** = make(<char***>);
+    string**[0] := string*;
+    let int* = make(<C-int*>);
+    int*[0] := 1;
+    %gtk-init(int*, string**);
+    destroy(string*);
+    destroy(string**);
+    destroy(int*)
+  end;
+  automatic-finalization-enabled?() := #t;
+end function initialize-gtk;
+
+
+// map GTK type IDs to Dylan classes
+define table $gtype-table = {
+                             $G-TYPE-CHAR         => <gchar>,
+                             $G-TYPE-UCHAR        => <guchar>,
+                             $G-TYPE-INT          => <gint>,
+                             $G-TYPE-UINT         => <guint>,
+                             $G-TYPE-LONG         => <glong>,
+                             $G-TYPE-ULONG        => <gulong>,
+                             $G-TYPE-INT64        => <gint64>,
+                             $G-TYPE-UINT64       => <guint64>,
+                             $G-TYPE-FLOAT        => <gfloat>,
+                             $G-TYPE-DOUBLE       => <gdouble>,
+                             $G-TYPE-STRING       => <gstring>,
+                             $G-TYPE-POINTER      => <gpointer>
+                             };
+
+define function make-gdk-event(address)
+ => (instance :: <C-void*>)
+  let event = make(<GdkEventAny>, address: address);
+  make(select(event.GdkEventAny-type)
+         $GDK-NOTHING           => <GdkEventAny>;
+         $GDK-DELETE            => <GdkEventAny>;
+         $GDK-DESTROY           => <GdkEventAny>;
+         $GDK-EXPOSE            => <GdkEventExpose>;
+         $GDK-MOTION-NOTIFY     => <GdkEventMotion>;
+         $GDK-BUTTON-PRESS      => <GdkEventButton>;
+         $GDK-2BUTTON-PRESS     => <GdkEventButton>;
+         $GDK-3BUTTON-PRESS     => <GdkEventButton>;
+         $GDK-BUTTON-RELEASE    => <GdkEventButton>;
+         $GDK-KEY-PRESS         => <GdkEventKey>;
+         $GDK-KEY-RELEASE       => <GdkEventKey>;
+         $GDK-ENTER-NOTIFY      => <GdkEventCrossing>;
+         $GDK-LEAVE-NOTIFY      => <GdkEventCrossing>;
+         $GDK-FOCUS-CHANGE      => <GdkEventFocus>;
+         $GDK-CONFIGURE         => <GdkEventConfigure>;
+         $GDK-MAP               => <GdkEventAny>;
+         $GDK-UNMAP             => <GdkEventAny>;
+         $GDK-PROPERTY-NOTIFY   => <GdkEventProperty>;
+         $GDK-SELECTION-CLEAR   => <GdkEventSelection>;
+         $GDK-SELECTION-REQUEST => <GdkEventSelection>;
+         $GDK-SELECTION-NOTIFY  => <GdkEventSelection>;
+         $GDK-PROXIMITY-IN      => <GdkEventProximity>;
+         $GDK-PROXIMITY-OUT     => <GdkEventProximity>;
+         $GDK-DRAG-ENTER        => <GdkEventDND>;
+         $GDK-DRAG-LEAVE        => <GdkEventDND>;
+         $GDK-DRAG-MOTION       => <GdkEventDND>;
+         $GDK-DRAG-STATUS       => <GdkEventDND>;
+         $GDK-DROP-START        => <GdkEventDND>;
+         $GDK-DROP-FINISHED     => <GdkEventDND>;
+         $GDK-CLIENT-EVENT      => <GdkEventClient>;
+         $GDK-VISIBILITY-NOTIFY => <GdkEventAny>;
+         $GDK-NO-EXPOSE         => <GdkEventNoExpose>;
+         $GDK-SCROLL            => <GdkEventScroll>;
+         $GDK-WINDOW-STATE      => <GdkEventWindowState>;
+         $GDK-SETTING           => <GdkEventSetting>;
+         $GDK-OWNER-CHANGE      => <GdkEventOwnerChange>;
+         $GDK-GRAB-BROKEN       => <GdkEventGrabBroken>;
+         otherwise              => <GdkEventAny>;
+       end, address: address);
+end;
+
+define function g-value-to-dylan(instance :: <GValue>)
+ => (dylan-instance);
+  let g-type = g-value-type(instance);
+  if(g-type ~= $G-TYPE-INVALID)
+    let dylan-type = find-gtype(g-type);
+    if(dylan-type & subtype?(dylan-type, <GTypeInstance>))
+      make(dylan-type, address: instance.g-value-peek-pointer.pointer-address)
+    else
+      select(g-type)
+        $G-TYPE-NONE    => #f;
+        $G-TYPE-CHAR    => g-value-get-char(instance);
+        $G-TYPE-UCHAR   => g-value-get-uchar(instance);
+        $G-TYPE-BOOLEAN => (g-value-get-boolean(instance) = 1);
+        $G-TYPE-INT     => g-value-get-int(instance);
+        $G-TYPE-UINT    => g-value-get-uint(instance);
+        $G-TYPE-LONG    => g-value-get-long(instance);
+        $G-TYPE-ULONG   => g-value-get-ulong(instance);
+        $G-TYPE-INT64   => g-value-get-int64(instance);
+        $G-TYPE-UINT64  => g-value-get-uint64(instance);
+        $G-TYPE-ENUM    => signal("Can't handle $G-TYPE-ENUM yet.");
+        $G-TYPE-FLAGS   => signal("Can't handle $G-TYPE-FLAGS yet.");
+        $G-TYPE-FLOAT   => g-value-get-float(instance);
+        $G-TYPE-DOUBLE  => g-value-get-double(instance);
+        $G-TYPE-STRING  => g-value-get-string(instance);
+        $G-TYPE-POINTER => g-value-get-pointer(instance);
+        $G-TYPE-BOXED   => #f;
+        $G-TYPE-PARAM   => #f;
+        $G-TYPE-OBJECT  => #f;
+        gdk-event-get-type() => make-gdk-event(instance.g-value-peek-pointer.pointer-address);
+      end select;
+    end if;
+  end if;
+end function g-value-to-dylan;
+
+define method g-value-set-value (gvalue :: <GValue>, value :: <double-float>)
+  g-value-init(gvalue, $G-TYPE-DOUBLE);
+  g-value-set-double(gvalue, value);
+end;
+define method g-value-set-value (gvalue :: <GValue>, value :: <single-float>)
+  g-value-init(gvalue, $G-TYPE-FLOAT);
+  g-value-set-float(gvalue, value);
+end;
+define method g-value-set-value (gvalue :: <GValue>, value :: <integer>)
+  g-value-init(gvalue, $G-TYPE-BOOLEAN);
+  g-value-set-boolean(gvalue, value);
+end;
+define method g-value-set-value (gvalue :: <GValue>, value :: <GTypeInstance>)
+  g-value-init(gvalue, $G-TYPE-OBJECT);
+  g-value-set-object(gvalue, value);
+end;
+
+define method g-value-set-value (gvalue :: <GValue>, string :: <string>)
+  g-value-init(gvalue, $G-TYPE-STRING);
+  g-value-set-string(gvalue, string);
+end;
+
+define macro property-getter-definer
+  { define property-getter ?:name :: ?type:name on ?class:name end }
+  => { define method "@" ## ?name (object :: ?class) => (res)
+         with-stack-structure (foo :: <GValue>)
+           g-object-get-property(object, ?"name", foo);
+           g-value-to-dylan(foo);
+         end;
+       end; 
+  }
+end;
+
+define macro property-setter-definer
+  { define property-setter ?:name :: ?type:name on ?class:name end }
+  => { define method "@" ## ?name ## "-setter" (res, object :: ?class) => (res)
+         with-stack-structure (gvalue :: <GValue>)
+           // FIXME: hack, because we cannot request initialization with zero
+           // from with-stack-structure
+           if (g-is-value(gvalue) ~= 0) 
+             g-value-unset(gvalue)
+           end;
+           g-value-set-value(gvalue, res);
+           g-object-set-property(object, ?"name", gvalue);
+         end;
+         res;
+       end; 
+  }
+end;

Added: branches/opendylan-melange/gtk/gtk.hdp
==============================================================================
--- (empty file)
+++ branches/opendylan-melange/gtk/gtk.hdp	Sat May 19 21:43:18 2007
@@ -0,0 +1,17 @@
+Format-Version:   2
+Library:          gtk
+Author:           Hannes Mehnert, Andreas Bogk
+Copyright:        (C) 2007,.  All rights reserved.
+Major-Version:    1
+Minor-Version:    0
+Files:            library
+	module
+	properties-module
+	gtk-module
+	gtk
+	properties
+c-source-files:	support.c
+Linker-Options:   $(guilflags)
+Compilation-Mode: tight
+Target-Type:      dll
+

Added: branches/opendylan-melange/gtk/library.dylan
==============================================================================
--- (empty file)
+++ branches/opendylan-melange/gtk/library.dylan	Sat May 19 21:43:18 2007
@@ -0,0 +1,12 @@
+Module:    dylan-user
+Author:    Hannes Mehnert, Andreas Bogk
+Copyright: (C) 2007,.  All rights reserved.
+
+define library gtk
+  use common-dylan;
+  use dylan;
+  use c-ffi;
+  use gtk-c-ffi;
+  // Add any more module exports here.
+  export gtk;
+end library gtk;

Added: branches/opendylan-melange/gtk/module.dylan
==============================================================================
--- (empty file)
+++ branches/opendylan-melange/gtk/module.dylan	Sat May 19 21:43:18 2007
@@ -0,0 +1,18 @@
+Module:    dylan-user
+Author:    Hannes Mehnert, Andreas Bogk
+Copyright: (C) 2007,.  All rights reserved.
+
+define module gtk-support
+  use common-dylan;
+  use c-ffi;
+  use gtk-internal, export: all;
+  use finalization;
+  use dylan-primitives;
+  use dylan-extensions, import: { debug-name, integer-as-raw, raw-as-integer };
+
+  export g-signal-connect, initialize-gtk,
+    gtk-widget-get-window,
+    gtk-widget-get-state,
+    property-getter-definer,
+    property-setter-definer;
+end;  

Added: branches/opendylan-melange/gtk/properties-module.dylan
==============================================================================
--- (empty file)
+++ branches/opendylan-melange/gtk/properties-module.dylan	Sat May 19 21:43:18 2007
@@ -0,0 +1,1223 @@
+module: dylan-user
+
+define module gtk-properties
+
+  use common-dylan;
+  use gtk-internal;
+  use gtk-support;
+
+  export
+    @selected-link,
+    @number-of-anchors,
+    @start-index,
+    @end-index,
+    @accessible-name,
+    @accessible-name-setter,
+    @accessible-description,
+    @accessible-description-setter,
+    @accessible-parent,
+    @accessible-parent-setter,
+    @accessible-value,
+    @accessible-value-setter,
+    @accessible-role,
+    @accessible-role-setter,
+    @accessible-component-layer,
+    @accessible-component-mdi-zorder,
+    @accessible-table-caption,
+    @accessible-table-caption-setter,
+    @accessible-table-column-description,
+    @accessible-table-column-description-setter,
+    @accessible-table-column-header,
+    @accessible-table-column-header-setter,
+    @accessible-table-row-description,
+    @accessible-table-row-description-setter,
+    @accessible-table-row-header,
+    @accessible-table-row-header-setter,
+    @accessible-table-summary,
+    @accessible-table-summary-setter,
+    @accessible-table-caption-object,
+    @accessible-table-caption-object-setter,
+    @accessible-hypertext-nlinks,
+    @relation-type,
+    @relation-type-setter,
+    @target,
+    @target-setter,
+    @colorspace,
+    @colorspace-setter,
+    @n-channels,
+    @n-channels-setter,
+    @has-alpha,
+    @has-alpha-setter,
+    @bits-per-sample,
+    @bits-per-sample-setter,
+    @width,
+    @width-setter,
+    @height,
+    @height-setter,
+    @rowstride,
+    @rowstride-setter,
+    @pixels,
+    @pixels-setter,
+    @default-display,
+    @default-display-setter,
+    @screen,
+    @screen-setter,
+    @name,
+    @name-setter,
+    @version,
+    @version-setter,
+    @copyright,
+    @copyright-setter,
+    @comments,
+    @comments-setter,
+    @website,
+    @website-setter,
+    @website-label,
+    @website-label-setter,
+    @license,
+    @license-setter,
+    @authors,
+    @authors-setter,
+    @documenters,
+    @documenters-setter,
+    @translator-credits,
+    @translator-credits-setter,
+    @artists,
+    @artists-setter,
+    @logo,
+    @logo-setter,
+    @logo-icon-name,
+    @logo-icon-name-setter,
+    @wrap-license,
+    @wrap-license-setter,
+    @name,
+    @name-setter,
+    @sensitive,
+    @sensitive-setter,
+    @visible,
+    @visible-setter,
+    @accel-closure,
+    @accel-closure-setter,
+    @accel-widget,
+    @accel-widget-setter,
+    @name,
+    @name-setter,
+    @label,
+    @label-setter,
+    @short-label,
+    @short-label-setter,
+    @tooltip,
+    @tooltip-setter,
+    @stock-id,
+    @stock-id-setter,
+    @visible-horizontal,
+    @visible-horizontal-setter,
+    @visible-vertical,
+    @visible-vertical-setter,
+    @visible-overflown,
+    @visible-overflown-setter,
+    @is-important,
+    @is-important-setter,
+    @hide-if-empty,
+    @hide-if-empty-setter,
+    @sensitive,
+    @sensitive-setter,
+    @visible,
+    @visible-setter,
+    @action-group,
+    @action-group-setter,
+    @xalign,
+    @xalign-setter,
+    @yalign,
+    @yalign-setter,
+    @ratio,
+    @ratio-setter,
+    @obey-child,
+    @obey-child-setter,
+    @value,
+    @value-setter,
+    @lower,
+    @lower-setter,
+    @upper,
+    @upper-setter,
+    @step-increment,
+    @step-increment-setter,
+    @page-increment,
+    @page-increment-setter,
+    @page-size,
+    @page-size-setter,
+    @xalign,
+    @xalign-setter,
+    @yalign,
+    @yalign-setter,
+    @xscale,
+    @xscale-setter,
+    @yscale,
+    @yscale-setter,
+    @top-padding,
+    @top-padding-setter,
+    @bottom-padding,
+    @bottom-padding-setter,
+    @left-padding,
+    @left-padding-setter,
+    @right-padding,
+    @right-padding-setter,
+    @arrow-type,
+    @arrow-type-setter,
+    @shadow-type,
+    @shadow-type-setter,
+    @xalign,
+    @xalign-setter,
+    @yalign,
+    @yalign-setter,
+    @ratio,
+    @ratio-setter,
+    @obey-child,
+    @obey-child-setter,
+    @layout-style,
+    @layout-style-setter,
+    @year,
+    @year-setter,
+    @month,
+    @month-setter,
+    @day,
+    @day-setter,
+    @show-heading,
+    @show-heading-setter,
+    @show-day-names,
+    @show-day-names-setter,
+    @no-month-change,
+    @no-month-change-setter,
+    @show-week-numbers,
+    @show-week-numbers-setter,
+    @spacing,
+    @spacing-setter,
+    @homogeneous,
+    @homogeneous-setter,
+    @layout-style,
+    @layout-style-setter,
+    @label,
+    @label-setter,
+    @image,
+    @image-setter,
+    @relief,
+    @relief-setter,
+    @use-underline,
+    @use-underline-setter,
+    @use-stock,
+    @use-stock-setter,
+    @focus-on-click,
+    @focus-on-click-setter,
+    @xalign,
+    @xalign-setter,
+    @yalign,
+    @yalign-setter,
+    @model,
+    @model-setter,
+    @text-column,
+    @text-column-setter,
+    @has-entry,
+    @has-entry-setter,
+    @mode,
+    @mode-setter,
+    @visible,
+    @visible-setter,
+    @sensitive,
+    @sensitive-setter,
+    @xalign,
+    @xalign-setter,
+    @yalign,
+    @yalign-setter,
+    @xpad,
+    @xpad-setter,
+    @ypad,
+    @ypad-setter,
+    @width,
+    @width-setter,
+    @height,
+    @height-setter,
+    @is-expander,
+    @is-expander-setter,
+    @is-expanded,
+    @is-expanded-setter,
+    @cell-background-setter,
+    @cell-background-gdk,
+    @cell-background-gdk-setter,
+    @cell-background-set,
+    @cell-background-set-setter,
+    @value,
+    @value-setter,
+    @text,
+    @text-setter,
+    @pixbuf,
+    @pixbuf-setter,
+    @pixbuf-expander-open,
+    @pixbuf-expander-open-setter,
+    @pixbuf-expander-closed,
+    @pixbuf-expander-closed-setter,
+    @stock-id,
+    @stock-id-setter,
+    @stock-size,
+    @stock-size-setter,
+    @stock-detail,
+    @stock-detail-setter,
+    @follow-state,
+    @follow-state-setter,
+    @icon-name,
+    @icon-name-setter,
+    @shadow,
+    @shadow-setter,
+    @shadow-type,
+    @shadow-type-setter,
+    @handle-position,
+    @handle-position-setter,
+    @snap-edge,
+    @snap-edge-setter,
+    @snap-edge-set,
+    @snap-edge-set-setter,
+    @text,
+    @text-setter,
+    @markup-setter,
+    @attributes,
+    @attributes-setter,
+    @single-paragraph-mode,
+    @single-paragraph-mode-setter,
+    @width-chars,
+    @width-chars-setter,
+    @wrap-width,
+    @wrap-width-setter,
+    @background-setter,
+    @foreground-setter,
+    @background-gdk,
+    @background-gdk-setter,
+    @foreground-gdk,
+    @foreground-gdk-setter,
+    @font,
+    @font-setter,
+    @font-desc,
+    @font-desc-setter,
+    @family,
+    @family-setter,
+    @style,
+    @style-setter,
+    @variant,
+    @variant-setter,
+    @weight,
+    @weight-setter,
+    @stretch,
+    @stretch-setter,
+    @size,
+    @size-setter,
+    @size-points,
+    @size-points-setter,
+    @scale,
+    @scale-setter,
+    @editable,
+    @editable-setter,
+    @strikethrough,
+    @strikethrough-setter,
+    @underline,
+    @underline-setter,
+    @rise,
+    @rise-setter,
+    @language,
+    @language-setter,
+    @ellipsize,
+    @ellipsize-setter,
+    @wrap-mode,
+    @wrap-mode-setter,
+    @background-set,
+    @background-set-setter,
+    @foreground-set,
+    @foreground-set-setter,
+    @family-set,
+    @family-set-setter,
+    @style-set,
+    @style-set-setter,
+    @variant-set,
+    @variant-set-setter,
+    @weight-set,
+    @weight-set-setter,
+    @stretch-set,
+    @stretch-set-setter,
+    @size-set,
+    @size-set-setter,
+    @scale-set,
+    @scale-set-setter,
+    @editable-set,
+    @editable-set-setter,
+    @strikethrough-set,
+    @strikethrough-set-setter,
+    @underline-set,
+    @underline-set-setter,
+    @rise-set,
+    @rise-set-setter,
+    @language-set,
+    @language-set-setter,
+    @ellipsize-set,
+    @ellipsize-set-setter,
+    @activatable,
+    @activatable-setter,
+    @active,
+    @active-setter,
+    @radio,
+    @radio-setter,
+    @inconsistent,
+    @inconsistent-setter,
+    @background-setter,
+    @background-gdk,
+    @background-gdk-setter,
+    @background-set,
+    @background-set-setter,
+    @active,
+    @active-setter,
+    @inconsistent,
+    @inconsistent-setter,
+    @draw-as-radio,
+    @draw-as-radio-setter,
+    @n-columns,
+    @n-columns-setter,
+    @shadow-type,
+    @shadow-type-setter,
+    @selection-mode,
+    @selection-mode-setter,
+    @row-height,
+    @row-height-setter,
+    @titles-active,
+    @titles-active-setter,
+    @reorderable,
+    @reorderable-setter,
+    @use-drag-icons,
+    @use-drag-icons-setter,
+    @sort-type,
+    @sort-type-setter,
+    @use-alpha,
+    @use-alpha-setter,
+    @title,
+    @title-setter,
+    @color,
+    @color-setter,
+    @alpha,
+    @alpha-setter,
+    @has-palette,
+    @has-palette-setter,
+    @has-opacity-control,
+    @has-opacity-control-setter,
+    @current-color,
+    @current-color-setter,
+    @current-alpha,
+    @current-alpha-setter,
+    @enable-arrow-keys,
+    @enable-arrow-keys-setter,
+    @enable-arrows-always,
+    @enable-arrows-always-setter,
+    @case-sensitive,
+    @case-sensitive-setter,
+    @allow-empty,
+    @allow-empty-setter,
+    @value-in-list,
+    @value-in-list-setter,
+    @model,
+    @model-setter,
+    @wrap-width,
+    @wrap-width-setter,
+    @row-span-column,
+    @row-span-column-setter,
+    @column-span-column,
+    @column-span-column-setter,
+    @active,
+    @active-setter,
+    @add-tearoffs,
+    @add-tearoffs-setter,
+    @has-frame,
+    @has-frame-setter,
+    @focus-on-click,
+    @focus-on-click-setter,
+    @text-column,
+    @text-column-setter,
+    @border-width,
+    @border-width-setter,
+    @resize-mode,
+    @resize-mode-setter,
+    @child-setter,
+    @n-columns,
+    @n-columns-setter,
+    @tree-column,
+    @tree-column-setter,
+    @indent,
+    @indent-setter,
+    @spacing,
+    @spacing-setter,
+    @show-stub,
+    @show-stub-setter,
+    @line-style,
+    @line-style-setter,
+    @expander-style,
+    @expander-style-setter,
+    @curve-type,
+    @curve-type-setter,
+    @min-x,
+    @min-x-setter,
+    @max-x,
+    @max-x-setter,
+    @min-y,
+    @min-y-setter,
+    @max-y,
+    @max-y-setter,
+    @has-separator,
+    @has-separator-setter,
+    @cursor-position,
+    @selection-bound,
+    @editable,
+    @editable-setter,
+    @max-length,
+    @max-length-setter,
+    @visibility,
+    @visibility-setter,
+    @has-frame,
+    @has-frame-setter,
+    @invisible-char,
+    @invisible-char-setter,
+    @activates-default,
+    @activates-default-setter,
+    @width-chars,
+    @width-chars-setter,
+    @scroll-offset,
+    @text,
+    @text-setter,
+    @xalign,
+    @xalign-setter,
+    @model,
+    @model-setter,
+    @minimum-key-length,
+    @minimum-key-length-setter,
+    @text-column,
+    @text-column-setter,
+    @inline-completion,
+    @inline-completion-setter,
+    @popup-completion,
+    @popup-completion-setter,
+    @popup-set-width,
+    @popup-set-width-setter,
+    @popup-single-match,
+    @popup-single-match-setter,
+    @visible-window,
+    @visible-window-setter,
+    @above-child,
+    @above-child-setter,
+    @expanded,
+    @expanded-setter,
+    @label,
+    @label-setter,
+    @use-underline,
+    @use-underline-setter,
+    @use-markup,
+    @use-markup-setter,
+    @spacing,
+    @spacing-setter,
+    @label-widget,
+    @label-widget-setter,
+    @dialog-setter,
+    @title,
+    @title-setter,
+    @width-chars,
+    @width-chars-setter,
+    @show-fileops,
+    @show-fileops-setter,
+    @filename,
+    @filename-setter,
+    @select-multiple,
+    @select-multiple-setter,
+    @title,
+    @title-setter,
+    @font-name,
+    @font-name-setter,
+    @use-font,
+    @use-font-setter,
+    @use-size,
+    @use-size-setter,
+    @show-style,
+    @show-style-setter,
+    @show-size,
+    @show-size-setter,
+    @font-name,
+    @font-name-setter,
+    @font,
+    @preview-text,
+    @preview-text-setter,
+    @label,
+    @label-setter,
+    @label-xalign,
+    @label-xalign-setter,
+    @label-yalign,
+    @label-yalign-setter,
+    @shadow,
+    @shadow-setter,
+    @shadow-type,
+    @shadow-type-setter,
+    @label-widget,
+    @label-widget-setter,
+    @image,
+    @image-setter,
+    @pixbuf-column,
+    @pixbuf-column-setter,
+    @text-column,
+    @text-column-setter,
+    @markup-column,
+    @markup-column-setter,
+    @selection-mode,
+    @selection-mode-setter,
+    @orientation,
+    @orientation-setter,
+    @model,
+    @model-setter,
+    @columns,
+    @columns-setter,
+    @item-width,
+    @item-width-setter,
+    @spacing,
+    @spacing-setter,
+    @row-spacing,
+    @row-spacing-setter,
+    @column-spacing,
+    @column-spacing-setter,
+    @margin,
+    @margin-setter,
+    @reorderable,
+    @reorderable-setter,
+    @pixbuf,
+    @pixbuf-setter,
+    @pixmap,
+    @pixmap-setter,
+    @image,
+    @image-setter,
+    @mask,
+    @mask-setter,
+    @file,
+    @file-setter,
+    @stock,
+    @stock-setter,
+    @icon-set,
+    @icon-set-setter,
+    @icon-size,
+    @icon-size-setter,
+    @pixel-size,
+    @pixel-size-setter,
+    @pixbuf-animation,
+    @pixbuf-animation-setter,
+    @icon-name,
+    @icon-name-setter,
+    @storage-type,
+    @group-setter,
+    @screen,
+    @screen-setter,
+    @label,
+    @label-setter,
+    @attributes,
+    @attributes-setter,
+    @use-markup,
+    @use-markup-setter,
+    @use-underline,
+    @use-underline-setter,
+    @justify,
+    @justify-setter,
+    @pattern-setter,
+    @wrap,
+    @wrap-setter,
+    @selectable,
+    @selectable-setter,
+    @mnemonic-keyval,
+    @mnemonic-widget,
+    @mnemonic-widget-setter,
+    @cursor-position,
+    @selection-bound,
+    @ellipsize,
+    @ellipsize-setter,
+    @width-chars,
+    @width-chars-setter,
+    @single-line-mode,
+    @single-line-mode-setter,
+    @angle,
+    @angle-setter,
+    @max-width-chars,
+    @max-width-chars-setter,
+    @hadjustment,
+    @hadjustment-setter,
+    @vadjustment,
+    @vadjustment-setter,
+    @width,
+    @width-setter,
+    @height,
+    @height-setter,
+    @selection-mode,
+    @selection-mode-setter,
+    @tearoff-state,
+    @tearoff-state-setter,
+    @tearoff-title,
+    @tearoff-title-setter,
+    @pack-direction,
+    @pack-direction-setter,
+    @child-pack-direction,
+    @child-pack-direction-setter,
+    @take-focus,
+    @take-focus-setter,
+    @menu,
+    @menu-setter,
+    @message-type,
+    @message-type-setter,
+    @buttons-setter,
+    @xalign,
+    @xalign-setter,
+    @yalign,
+    @yalign-setter,
+    @xpad,
+    @xpad-setter,
+    @ypad,
+    @ypad-setter,
+    @tab-pos,
+    @tab-pos-setter,
+    @show-tabs,
+    @show-tabs-setter,
+    @show-border,
+    @show-border-setter,
+    @scrollable,
+    @scrollable-setter,
+    @tab-border-setter,
+    @tab-hborder,
+    @tab-hborder-setter,
+    @tab-vborder,
+    @tab-vborder-setter,
+    @page,
+    @page-setter,
+    @enable-popup,
+    @enable-popup-setter,
+    @homogeneous,
+    @homogeneous-setter,
+    @user-data,
+    @user-data-setter,
+    @menu,
+    @menu-setter,
+    @position,
+    @position-setter,
+    @position-set,
+    @position-set-setter,
+    @min-position,
+    @max-position,
+    @expand,
+    @expand-setter,
+    @activity-mode,
+    @activity-mode-setter,
+    @show-text,
+    @show-text-setter,
+    @text-xalign,
+    @text-xalign-setter,
+    @text-yalign,
+    @text-yalign-setter,
+    @fraction,
+    @fraction-setter,
+    @pulse-step,
+    @pulse-step-setter,
+    @orientation,
+    @orientation-setter,
+    @text,
+    @text-setter,
+    @ellipsize,
+    @ellipsize-setter,
+    @adjustment,
+    @adjustment-setter,
+    @bar-style,
+    @bar-style-setter,
+    @activity-step,
+    @activity-step-setter,
+    @activity-blocks,
+    @activity-blocks-setter,
+    @discrete-blocks,
+    @discrete-blocks-setter,
+    @value,
+    @value-setter,
+    @group-setter,
+    @group-setter,
+    @group-setter,
+    @update-policy,
+    @update-policy-setter,
+    @adjustment,
+    @adjustment-setter,
+    @inverted,
+    @inverted-setter,
+    @lower,
+    @lower-setter,
+    @upper,
+    @upper-setter,
+    @position,
+    @position-setter,
+    @max-size,
+    @max-size-setter,
+    @metric,
+    @metric-setter,
+    @digits,
+    @digits-setter,
+    @draw-value,
+    @draw-value-setter,
+    @value-pos,
+    @value-pos-setter,
+    @hadjustment,
+    @hadjustment-setter,
+    @vadjustment,
+    @vadjustment-setter,
+    @hscrollbar-policy,
+    @hscrollbar-policy-setter,
+    @vscrollbar-policy,
+    @vscrollbar-policy-setter,
+    @window-placement,
+    @window-placement-setter,
+    @shadow-type,
+    @shadow-type-setter,
+    @draw,
+    @draw-setter,
+    @gtk-double-click-time,
+    @gtk-double-click-time-setter,
+    @gtk-double-click-distance,
+    @gtk-double-click-distance-setter,
+    @gtk-cursor-blink,
+    @gtk-cursor-blink-setter,
+    @gtk-cursor-blink-time,
+    @gtk-cursor-blink-time-setter,
+    @gtk-split-cursor,
+    @gtk-split-cursor-setter,
+    @gtk-theme-name,
+    @gtk-theme-name-setter,
+    @gtk-icon-theme-name,
+    @gtk-icon-theme-name-setter,
+    @gtk-fallback-icon-theme,
+    @gtk-fallback-icon-theme-setter,
+    @gtk-key-theme-name,
+    @gtk-key-theme-name-setter,
+    @gtk-menu-bar-accel,
+    @gtk-menu-bar-accel-setter,
+    @gtk-dnd-drag-threshold,
+    @gtk-dnd-drag-threshold-setter,
+    @gtk-font-name,
+    @gtk-font-name-setter,
+    @gtk-icon-sizes,
+    @gtk-icon-sizes-setter,
+    @gtk-modules,
+    @gtk-modules-setter,
+    @gtk-xft-antialias,
+    @gtk-xft-antialias-setter,
+    @gtk-xft-hinting,
+    @gtk-xft-hinting-setter,
+    @gtk-xft-hintstyle,
+    @gtk-xft-hintstyle-setter,
+    @gtk-xft-rgba,
+    @gtk-xft-rgba-setter,
+    @gtk-xft-dpi,
+    @gtk-xft-dpi-setter,
+    @gtk-cursor-theme-name,
+    @gtk-cursor-theme-name-setter,
+    @gtk-cursor-theme-size,
+    @gtk-cursor-theme-size-setter,
+    @gtk-alternative-button-order,
+    @gtk-alternative-button-order-setter,
+    @gtk-button-images,
+    @gtk-button-images-setter,
+    @gtk-color-palette,
+    @gtk-color-palette-setter,
+    @gtk-entry-select-on-focus,
+    @gtk-entry-select-on-focus-setter,
+    @gtk-menu-images,
+    @gtk-menu-images-setter,
+    @gtk-can-change-accels,
+    @gtk-can-change-accels-setter,
+    @gtk-menu-popup-delay,
+    @gtk-menu-popup-delay-setter,
+    @gtk-menu-popdown-delay,
+    @gtk-menu-popdown-delay-setter,
+    @gtk-menu-bar-popup-delay,
+    @gtk-menu-bar-popup-delay-setter,
+    @mode,
+    @mode-setter,
+    @ignore-hidden,
+    @ignore-hidden-setter,
+    @adjustment,
+    @adjustment-setter,
+    @climb-rate,
+    @climb-rate-setter,
+    @digits,
+    @digits-setter,
+    @snap-to-ticks,
+    @snap-to-ticks-setter,
+    @numeric,
+    @numeric-setter,
+    @wrap,
+    @wrap-setter,
+    @update-policy,
+    @update-policy-setter,
+    @value,
+    @value-setter,
+    @has-resize-grip,
+    @has-resize-grip-setter,
+    @n-rows,
+    @n-rows-setter,
+    @n-columns,
+    @n-columns-setter,
+    @column-spacing,
+    @column-spacing-setter,
+    @row-spacing,
+    @row-spacing-setter,
+    @homogeneous,
+    @homogeneous-setter,
+    @tag-table,
+    @tag-table-setter,
+    @text,
+    @text-setter,
+    @name,
+    @name-setter,
+    @background-setter,
+    @foreground-setter,
+    @background-gdk,
+    @background-gdk-setter,
+    @foreground-gdk,
+    @foreground-gdk-setter,
+    @background-stipple,
+    @background-stipple-setter,
+    @foreground-stipple,
+    @foreground-stipple-setter,
+    @font,
+    @font-setter,
+    @font-desc,
+    @font-desc-setter,
+    @family,
+    @family-setter,
+    @style,
+    @style-setter,
+    @variant,
+    @variant-setter,
+    @weight,
+    @weight-setter,
+    @stretch,
+    @stretch-setter,
+    @size,
+    @size-setter,
+    @size-points,
+    @size-points-setter,
+    @scale,
+    @scale-setter,
+    @pixels-above-lines,
+    @pixels-above-lines-setter,
+    @pixels-below-lines,
+    @pixels-below-lines-setter,
+    @pixels-inside-wrap,
+    @pixels-inside-wrap-setter,
+    @editable,
+    @editable-setter,
+    @wrap-mode,
+    @wrap-mode-setter,
+    @justification,
+    @justification-setter,
+    @direction,
+    @direction-setter,
+    @left-margin,
+    @left-margin-setter,
+    @indent,
+    @indent-setter,
+    @strikethrough,
+    @strikethrough-setter,
+    @right-margin,
+    @right-margin-setter,
+    @underline,
+    @underline-setter,
+    @rise,
+    @rise-setter,
+    @background-full-height,
+    @background-full-height-setter,
+    @language,
+    @language-setter,
+    @tabs,
+    @tabs-setter,
+    @invisible,
+    @invisible-setter,
+    @paragraph-background-setter,
+    @paragraph-background-gdk,
+    @paragraph-background-gdk-setter,
+    @background-set,
+    @background-set-setter,
+    @foreground-set,
+    @foreground-set-setter,
+    @background-stipple-set,
+    @background-stipple-set-setter,
+    @foreground-stipple-set,
+    @foreground-stipple-set-setter,
+    @family-set,
+    @family-set-setter,
+    @style-set,
+    @style-set-setter,
+    @variant-set,
+    @variant-set-setter,
+    @weight-set,
+    @weight-set-setter,
+    @stretch-set,
+    @stretch-set-setter,
+    @size-set,
+    @size-set-setter,
+    @scale-set,
+    @scale-set-setter,
+    @pixels-above-lines-set,
+    @pixels-above-lines-set-setter,
+    @pixels-below-lines-set,
+    @pixels-below-lines-set-setter,
+    @pixels-inside-wrap-set,
+    @pixels-inside-wrap-set-setter,
+    @editable-set,
+    @editable-set-setter,
+    @wrap-mode-set,
+    @wrap-mode-set-setter,
+    @justification-set,
+    @justification-set-setter,
+    @left-margin-set,
+    @left-margin-set-setter,
+    @indent-set,
+    @indent-set-setter,
+    @strikethrough-set,
+    @strikethrough-set-setter,
+    @right-margin-set,
+    @right-margin-set-setter,
+    @underline-set,
+    @underline-set-setter,
+    @rise-set,
+    @rise-set-setter,
+    @background-full-height-set,
+    @background-full-height-set-setter,
+    @language-set,
+    @language-set-setter,
+    @tabs-set,
+    @tabs-set-setter,
+    @invisible-set,
+    @invisible-set-setter,
+    @paragraph-background-set,
+    @paragraph-background-set-setter,
+    @pixels-above-lines,
+    @pixels-above-lines-setter,
+    @pixels-below-lines,
+    @pixels-below-lines-setter,
+    @pixels-inside-wrap,
+    @pixels-inside-wrap-setter,
+    @editable,
+    @editable-setter,
+    @wrap-mode,
+    @wrap-mode-setter,
+    @justification,
+    @justification-setter,
+    @left-margin,
+    @left-margin-setter,
+    @right-margin,
+    @right-margin-setter,
+    @indent,
+    @indent-setter,
+    @tabs,
+    @tabs-setter,
+    @cursor-visible,
+    @cursor-visible-setter,
+    @buffer,
+    @buffer-setter,
+    @overwrite,
+    @overwrite-setter,
+    @accepts-tab,
+    @accepts-tab-setter,
+    @emit-always,
+    @emit-always-setter,
+    @caller,
+    @caller-setter,
+    @label-inactive,
+    @label-inactive-setter,
+    @label-no-tip,
+    @label-no-tip-setter,
+    @draw-as-radio,
+    @draw-as-radio-setter,
+    @active,
+    @active-setter,
+    @inconsistent,
+    @inconsistent-setter,
+    @draw-indicator,
+    @draw-indicator-setter,
+    @active,
+    @active-setter,
+    @orientation,
+    @orientation-setter,
+    @toolbar-style,
+    @toolbar-style-setter,
+    @show-arrow,
+    @show-arrow-setter,
+    @tooltips,
+    @tooltips-setter,
+    @label,
+    @label-setter,
+    @use-underline,
+    @use-underline-setter,
+    @label-widget,
+    @label-widget-setter,
+    @stock-id,
+    @stock-id-setter,
+    @icon-name,
+    @icon-name-setter,
+    @icon-widget,
+    @icon-widget-setter,
+    @visible-horizontal,
+    @visible-horizontal-setter,
+    @visible-vertical,
+    @visible-vertical-setter,
+    @is-important,
+    @is-important-setter,
+    @child-model,
+    @child-model-setter,
+    @virtual-root,
+    @virtual-root-setter,
+    @model,
+    @model-setter,
+    @model,
+    @model-setter,
+    @hadjustment,
+    @hadjustment-setter,
+    @vadjustment,
+    @vadjustment-setter,
+    @headers-visible,
+    @headers-visible-setter,
+    @headers-clickable,
+    @headers-clickable-setter,
+    @expander-column,
+    @expander-column-setter,
+    @reorderable,
+    @reorderable-setter,
+    @rules-hint,
+    @rules-hint-setter,
+    @enable-search,
+    @enable-search-setter,
+    @search-column,
+    @search-column-setter,
+    @fixed-height-mode,
+    @fixed-height-mode-setter,
+    @hover-selection,
+    @hover-selection-setter,
+    @hover-expand,
+    @hover-expand-setter,
+    @visible,
+    @visible-setter,
+    @resizable,
+    @resizable-setter,
+    @width,
+    @spacing,
+    @spacing-setter,
+    @sizing,
+    @sizing-setter,
+    @fixed-width,
+    @fixed-width-setter,
+    @min-width,
+    @min-width-setter,
+    @max-width,
+    @max-width-setter,
+    @title,
+    @title-setter,
+    @expand,
+    @expand-setter,
+    @clickable,
+    @clickable-setter,
+    @widget,
+    @widget-setter,
+    @alignment,
+    @alignment-setter,
+    @reorderable,
+    @reorderable-setter,
+    @sort-indicator,
+    @sort-indicator-setter,
+    @sort-order,
+    @sort-order-setter,
+    @add-tearoffs,
+    @add-tearoffs-setter,
+    @ui,
+    @hadjustment,
+    @hadjustment-setter,
+    @vadjustment,
+    @vadjustment-setter,
+    @shadow-type,
+    @shadow-type-setter,
+    @name,
+    @name-setter,
+    @parent,
+    @parent-setter,
+    @width-request,
+    @width-request-setter,
+    @height-request,
+    @height-request-setter,
+    @visible,
+    @visible-setter,
+    @sensitive,
+    @sensitive-setter,
+    @app-paintable,
+    @app-paintable-setter,
+    @can-focus,
+    @can-focus-setter,
+    @has-focus,
+    @has-focus-setter,
+    @is-focus,
+    @is-focus-setter,
+    @can-default,
+    @can-default-setter,
+    @has-default,
+    @has-default-setter,
+    @receives-default,
+    @receives-default-setter,
+    @composite-child,
+    @style,
+    @style-setter,
+    @events,
+    @events-setter,
+    @extension-events,
+    @extension-events-setter,
+    @no-show-all,
+    @no-show-all-setter,
+    @type,
+    @type-setter,
+    @title,
+    @title-setter,
+    @role,
+    @role-setter,
+    @allow-shrink,
+    @allow-shrink-setter,
+    @allow-grow,
+    @allow-grow-setter,
+    @resizable,
+    @resizable-setter,
+    @modal,
+    @modal-setter,
+    @window-position,
+    @window-position-setter,
+    @default-width,
+    @default-width-setter,
+    @default-height,
+    @default-height-setter,
+    @destroy-with-parent,
+    @destroy-with-parent-setter,
+    @icon,
+    @icon-setter,
+    @icon-name,
+    @icon-name-setter,
+    @screen,
+    @screen-setter,
+    @type-hint,
+    @type-hint-setter,
+    @skip-taskbar-hint,
+    @skip-taskbar-hint-setter,
+    @skip-pager-hint,
+    @skip-pager-hint-setter,
+    @urgency-hint,
+    @urgency-hint-setter,
+    @accept-focus,
+    @accept-focus-setter,
+    @focus-on-map,
+    @focus-on-map-setter,
+    @decorated,
+    @decorated-setter,
+    @gravity,
+    @gravity-setter,
+    @is-active,
+    @has-toplevel-focus  ;
+end

Added: branches/opendylan-melange/gtk/properties.dylan
==============================================================================
--- (empty file)
+++ branches/opendylan-melange/gtk/properties.dylan	Sat May 19 21:43:18 2007
@@ -0,0 +1,1205 @@
+module: gtk-properties
+
+define property-getter selected-link :: <gboolean> on <AtkHyperlink> end;
+define property-getter number-of-anchors :: <gint> on <AtkHyperlink> end;
+define property-getter start-index :: <gint> on <AtkHyperlink> end;
+define property-getter end-index :: <gint> on <AtkHyperlink> end;
+define property-getter accessible-name :: <gchararray> on <AtkObject> end;
+define property-setter accessible-name :: <gchararray> on <AtkObject> end;
+define property-getter accessible-description :: <gchararray> on <AtkObject> end;
+define property-setter accessible-description :: <gchararray> on <AtkObject> end;
+define property-getter accessible-parent :: <AtkObject> on <AtkObject> end;
+define property-setter accessible-parent :: <AtkObject> on <AtkObject> end;
+define property-getter accessible-value :: <gdouble> on <AtkObject> end;
+define property-setter accessible-value :: <gdouble> on <AtkObject> end;
+define property-getter accessible-role :: <gint> on <AtkObject> end;
+define property-setter accessible-role :: <gint> on <AtkObject> end;
+define property-getter accessible-component-layer :: <gint> on <AtkObject> end;
+define property-getter accessible-component-mdi-zorder :: <gint> on <AtkObject> end;
+define property-getter accessible-table-caption :: <gchararray> on <AtkObject> end;
+define property-setter accessible-table-caption :: <gchararray> on <AtkObject> end;
+define property-getter accessible-table-column-description :: <gchararray> on <AtkObject> end;
+define property-setter accessible-table-column-description :: <gchararray> on <AtkObject> end;
+define property-getter accessible-table-column-header :: <AtkObject> on <AtkObject> end;
+define property-setter accessible-table-column-header :: <AtkObject> on <AtkObject> end;
+define property-getter accessible-table-row-description :: <gchararray> on <AtkObject> end;
+define property-setter accessible-table-row-description :: <gchararray> on <AtkObject> end;
+define property-getter accessible-table-row-header :: <AtkObject> on <AtkObject> end;
+define property-setter accessible-table-row-header :: <AtkObject> on <AtkObject> end;
+define property-getter accessible-table-summary :: <AtkObject> on <AtkObject> end;
+define property-setter accessible-table-summary :: <AtkObject> on <AtkObject> end;
+define property-getter accessible-table-caption-object :: <AtkObject> on <AtkObject> end;
+define property-setter accessible-table-caption-object :: <AtkObject> on <AtkObject> end;
+define property-getter accessible-hypertext-nlinks :: <gint> on <AtkObject> end;
+define property-getter relation-type :: <AtkRelationType> on <AtkRelation> end;
+define property-setter relation-type :: <AtkRelationType> on <AtkRelation> end;
+define property-getter target :: <GValueArray> on <AtkRelation> end;
+define property-setter target :: <GValueArray> on <AtkRelation> end;
+define property-getter colorspace :: <GdkColorspace> on <GdkPixbuf> end;
+define property-setter colorspace :: <GdkColorspace> on <GdkPixbuf> end;
+define property-getter n-channels :: <gint> on <GdkPixbuf> end;
+define property-setter n-channels :: <gint> on <GdkPixbuf> end;
+define property-getter has-alpha :: <gboolean> on <GdkPixbuf> end;
+define property-setter has-alpha :: <gboolean> on <GdkPixbuf> end;
+define property-getter bits-per-sample :: <gint> on <GdkPixbuf> end;
+define property-setter bits-per-sample :: <gint> on <GdkPixbuf> end;
+define property-getter width :: <gint> on <GdkPixbuf> end;
+define property-setter width :: <gint> on <GdkPixbuf> end;
+define property-getter height :: <gint> on <GdkPixbuf> end;
+define property-setter height :: <gint> on <GdkPixbuf> end;
+define property-getter rowstride :: <gint> on <GdkPixbuf> end;
+define property-setter rowstride :: <gint> on <GdkPixbuf> end;
+define property-getter pixels :: <gpointer> on <GdkPixbuf> end;
+define property-setter pixels :: <gpointer> on <GdkPixbuf> end;
+define property-getter default-display :: <GdkDisplay> on <GdkDisplayManager> end;
+define property-setter default-display :: <GdkDisplay> on <GdkDisplayManager> end;
+define property-getter screen :: <GdkScreen> on <GdkPangoRenderer> end;
+define property-setter screen :: <GdkScreen> on <GdkPangoRenderer> end;
+define property-getter name :: <gchararray> on <GtkAboutDialog> end;
+define property-setter name :: <gchararray> on <GtkAboutDialog> end;
+define property-getter version :: <gchararray> on <GtkAboutDialog> end;
+define property-setter version :: <gchararray> on <GtkAboutDialog> end;
+define property-getter copyright :: <gchararray> on <GtkAboutDialog> end;
+define property-setter copyright :: <gchararray> on <GtkAboutDialog> end;
+define property-getter comments :: <gchararray> on <GtkAboutDialog> end;
+define property-setter comments :: <gchararray> on <GtkAboutDialog> end;
+define property-getter website :: <gchararray> on <GtkAboutDialog> end;
+define property-setter website :: <gchararray> on <GtkAboutDialog> end;
+define property-getter website-label :: <gchararray> on <GtkAboutDialog> end;
+define property-setter website-label :: <gchararray> on <GtkAboutDialog> end;
+define property-getter license :: <gchararray> on <GtkAboutDialog> end;
+define property-setter license :: <gchararray> on <GtkAboutDialog> end;
+define property-getter authors :: <GStrv> on <GtkAboutDialog> end;
+define property-setter authors :: <GStrv> on <GtkAboutDialog> end;
+define property-getter documenters :: <GStrv> on <GtkAboutDialog> end;
+define property-setter documenters :: <GStrv> on <GtkAboutDialog> end;
+define property-getter translator-credits :: <gchararray> on <GtkAboutDialog> end;
+define property-setter translator-credits :: <gchararray> on <GtkAboutDialog> end;
+define property-getter artists :: <GStrv> on <GtkAboutDialog> end;
+define property-setter artists :: <GStrv> on <GtkAboutDialog> end;
+define property-getter logo :: <GdkPixbuf> on <GtkAboutDialog> end;
+define property-setter logo :: <GdkPixbuf> on <GtkAboutDialog> end;
+define property-getter logo-icon-name :: <gchararray> on <GtkAboutDialog> end;
+define property-setter logo-icon-name :: <gchararray> on <GtkAboutDialog> end;
+define property-getter wrap-license :: <gboolean> on <GtkAboutDialog> end;
+define property-setter wrap-license :: <gboolean> on <GtkAboutDialog> end;
+define property-getter name :: <gchararray> on <GtkActionGroup> end;
+define property-setter name :: <gchararray> on <GtkActionGroup> end;
+define property-getter sensitive :: <gboolean> on <GtkActionGroup> end;
+define property-setter sensitive :: <gboolean> on <GtkActionGroup> end;
+define property-getter visible :: <gboolean> on <GtkActionGroup> end;
+define property-setter visible :: <gboolean> on <GtkActionGroup> end;
+define property-getter accel-closure :: <GClosure> on <GtkAccelLabel> end;
+define property-setter accel-closure :: <GClosure> on <GtkAccelLabel> end;
+define property-getter accel-widget :: <GtkWidget> on <GtkAccelLabel> end;
+define property-setter accel-widget :: <GtkWidget> on <GtkAccelLabel> end;
+define property-getter name :: <gchararray> on <GtkAction> end;
+define property-setter name :: <gchararray> on <GtkAction> end;
+define property-getter label :: <gchararray> on <GtkAction> end;
+define property-setter label :: <gchararray> on <GtkAction> end;
+define property-getter short-label :: <gchararray> on <GtkAction> end;
+define property-setter short-label :: <gchararray> on <GtkAction> end;
+define property-getter tooltip :: <gchararray> on <GtkAction> end;
+define property-setter tooltip :: <gchararray> on <GtkAction> end;
+define property-getter stock-id :: <gchararray> on <GtkAction> end;
+define property-setter stock-id :: <gchararray> on <GtkAction> end;
+define property-getter visible-horizontal :: <gboolean> on <GtkAction> end;
+define property-setter visible-horizontal :: <gboolean> on <GtkAction> end;
+define property-getter visible-vertical :: <gboolean> on <GtkAction> end;
+define property-setter visible-vertical :: <gboolean> on <GtkAction> end;
+define property-getter visible-overflown :: <gboolean> on <GtkAction> end;
+define property-setter visible-overflown :: <gboolean> on <GtkAction> end;
+define property-getter is-important :: <gboolean> on <GtkAction> end;
+define property-setter is-important :: <gboolean> on <GtkAction> end;
+define property-getter hide-if-empty :: <gboolean> on <GtkAction> end;
+define property-setter hide-if-empty :: <gboolean> on <GtkAction> end;
+define property-getter sensitive :: <gboolean> on <GtkAction> end;
+define property-setter sensitive :: <gboolean> on <GtkAction> end;
+define property-getter visible :: <gboolean> on <GtkAction> end;
+define property-setter visible :: <gboolean> on <GtkAction> end;
+define property-getter action-group :: <GtkActionGroup> on <GtkAction> end;
+define property-setter action-group :: <GtkActionGroup> on <GtkAction> end;
+define property-getter xalign :: <gfloat> on <GtkAspectFrame> end;
+define property-setter xalign :: <gfloat> on <GtkAspectFrame> end;
+define property-getter yalign :: <gfloat> on <GtkAspectFrame> end;
+define property-setter yalign :: <gfloat> on <GtkAspectFrame> end;
+define property-getter ratio :: <gfloat> on <GtkAspectFrame> end;
+define property-setter ratio :: <gfloat> on <GtkAspectFrame> end;
+define property-getter obey-child :: <gboolean> on <GtkAspectFrame> end;
+define property-setter obey-child :: <gboolean> on <GtkAspectFrame> end;
+define property-getter value :: <gdouble> on <GtkAdjustment> end;
+define property-setter value :: <gdouble> on <GtkAdjustment> end;
+define property-getter lower :: <gdouble> on <GtkAdjustment> end;
+define property-setter lower :: <gdouble> on <GtkAdjustment> end;
+define property-getter upper :: <gdouble> on <GtkAdjustment> end;
+define property-setter upper :: <gdouble> on <GtkAdjustment> end;
+define property-getter step-increment :: <gdouble> on <GtkAdjustment> end;
+define property-setter step-increment :: <gdouble> on <GtkAdjustment> end;
+define property-getter page-increment :: <gdouble> on <GtkAdjustment> end;
+define property-setter page-increment :: <gdouble> on <GtkAdjustment> end;
+define property-getter page-size :: <gdouble> on <GtkAdjustment> end;
+define property-setter page-size :: <gdouble> on <GtkAdjustment> end;
+define property-getter xalign :: <gfloat> on <GtkAlignment> end;
+define property-setter xalign :: <gfloat> on <GtkAlignment> end;
+define property-getter yalign :: <gfloat> on <GtkAlignment> end;
+define property-setter yalign :: <gfloat> on <GtkAlignment> end;
+define property-getter xscale :: <gfloat> on <GtkAlignment> end;
+define property-setter xscale :: <gfloat> on <GtkAlignment> end;
+define property-getter yscale :: <gfloat> on <GtkAlignment> end;
+define property-setter yscale :: <gfloat> on <GtkAlignment> end;
+define property-getter top-padding :: <guint> on <GtkAlignment> end;
+define property-setter top-padding :: <guint> on <GtkAlignment> end;
+define property-getter bottom-padding :: <guint> on <GtkAlignment> end;
+define property-setter bottom-padding :: <guint> on <GtkAlignment> end;
+define property-getter left-padding :: <guint> on <GtkAlignment> end;
+define property-setter left-padding :: <guint> on <GtkAlignment> end;
+define property-getter right-padding :: <guint> on <GtkAlignment> end;
+define property-setter right-padding :: <guint> on <GtkAlignment> end;
+define property-getter arrow-type :: <GtkArrowType> on <GtkArrow> end;
+define property-setter arrow-type :: <GtkArrowType> on <GtkArrow> end;
+define property-getter shadow-type :: <GtkShadowType> on <GtkArrow> end;
+define property-setter shadow-type :: <GtkShadowType> on <GtkArrow> end;
+define property-getter year :: <gint> on <GtkCalendar> end;
+define property-setter year :: <gint> on <GtkCalendar> end;
+define property-getter month :: <gint> on <GtkCalendar> end;
+define property-setter month :: <gint> on <GtkCalendar> end;
+define property-getter day :: <gint> on <GtkCalendar> end;
+define property-setter day :: <gint> on <GtkCalendar> end;
+define property-getter show-heading :: <gboolean> on <GtkCalendar> end;
+define property-setter show-heading :: <gboolean> on <GtkCalendar> end;
+define property-getter show-day-names :: <gboolean> on <GtkCalendar> end;
+define property-setter show-day-names :: <gboolean> on <GtkCalendar> end;
+define property-getter no-month-change :: <gboolean> on <GtkCalendar> end;
+define property-setter no-month-change :: <gboolean> on <GtkCalendar> end;
+define property-getter show-week-numbers :: <gboolean> on <GtkCalendar> end;
+define property-setter show-week-numbers :: <gboolean> on <GtkCalendar> end;
+define property-getter spacing :: <gint> on <GtkBox> end;
+define property-setter spacing :: <gint> on <GtkBox> end;
+define property-getter homogeneous :: <gboolean> on <GtkBox> end;
+define property-setter homogeneous :: <gboolean> on <GtkBox> end;
+define property-getter layout-style :: <GtkButtonBoxStyle> on <GtkButtonBox> end;
+define property-setter layout-style :: <GtkButtonBoxStyle> on <GtkButtonBox> end;
+define property-getter label :: <gchararray> on <GtkButton> end;
+define property-setter label :: <gchararray> on <GtkButton> end;
+define property-getter image :: <GtkWidget> on <GtkButton> end;
+define property-setter image :: <GtkWidget> on <GtkButton> end;
+define property-getter relief :: <GtkReliefStyle> on <GtkButton> end;
+define property-setter relief :: <GtkReliefStyle> on <GtkButton> end;
+define property-getter use-underline :: <gboolean> on <GtkButton> end;
+define property-setter use-underline :: <gboolean> on <GtkButton> end;
+define property-getter use-stock :: <gboolean> on <GtkButton> end;
+define property-setter use-stock :: <gboolean> on <GtkButton> end;
+define property-getter focus-on-click :: <gboolean> on <GtkButton> end;
+define property-setter focus-on-click :: <gboolean> on <GtkButton> end;
+define property-getter xalign :: <gfloat> on <GtkButton> end;
+define property-setter xalign :: <gfloat> on <GtkButton> end;
+define property-getter yalign :: <gfloat> on <GtkButton> end;
+define property-setter yalign :: <gfloat> on <GtkButton> end;
+define property-getter model :: <GtkTreeModel> on <GtkCellRendererCombo> end;
+define property-setter model :: <GtkTreeModel> on <GtkCellRendererCombo> end;
+define property-getter text-column :: <gint> on <GtkCellRendererCombo> end;
+define property-setter text-column :: <gint> on <GtkCellRendererCombo> end;
+define property-getter has-entry :: <gboolean> on <GtkCellRendererCombo> end;
+define property-setter has-entry :: <gboolean> on <GtkCellRendererCombo> end;
+define property-getter mode :: <GtkCellRendererMode> on <GtkCellRenderer> end;
+define property-setter mode :: <GtkCellRendererMode> on <GtkCellRenderer> end;
+define property-getter visible :: <gboolean> on <GtkCellRenderer> end;
+define property-setter visible :: <gboolean> on <GtkCellRenderer> end;
+define property-getter sensitive :: <gboolean> on <GtkCellRenderer> end;
+define property-setter sensitive :: <gboolean> on <GtkCellRenderer> end;
+define property-getter xalign :: <gfloat> on <GtkCellRenderer> end;
+define property-setter xalign :: <gfloat> on <GtkCellRenderer> end;
+define property-getter yalign :: <gfloat> on <GtkCellRenderer> end;
+define property-setter yalign :: <gfloat> on <GtkCellRenderer> end;
+define property-getter xpad :: <guint> on <GtkCellRenderer> end;
+define property-setter xpad :: <guint> on <GtkCellRenderer> end;
+define property-getter ypad :: <guint> on <GtkCellRenderer> end;
+define property-setter ypad :: <guint> on <GtkCellRenderer> end;
+define property-getter width :: <gint> on <GtkCellRenderer> end;
+define property-setter width :: <gint> on <GtkCellRenderer> end;
+define property-getter height :: <gint> on <GtkCellRenderer> end;
+define property-setter height :: <gint> on <GtkCellRenderer> end;
+define property-getter is-expander :: <gboolean> on <GtkCellRenderer> end;
+define property-setter is-expander :: <gboolean> on <GtkCellRenderer> end;
+define property-getter is-expanded :: <gboolean> on <GtkCellRenderer> end;
+define property-setter is-expanded :: <gboolean> on <GtkCellRenderer> end;
+define property-setter cell-background :: <gchararray> on <GtkCellRenderer> end;
+define property-getter cell-background-gdk :: <GdkColor> on <GtkCellRenderer> end;
+define property-setter cell-background-gdk :: <GdkColor> on <GtkCellRenderer> end;
+define property-getter cell-background-set :: <gboolean> on <GtkCellRenderer> end;
+define property-setter cell-background-set :: <gboolean> on <GtkCellRenderer> end;
+define property-getter value :: <gint> on <GtkCellRendererProgress> end;
+define property-setter value :: <gint> on <GtkCellRendererProgress> end;
+define property-getter text :: <gchararray> on <GtkCellRendererProgress> end;
+define property-setter text :: <gchararray> on <GtkCellRendererProgress> end;
+define property-getter pixbuf :: <GdkPixbuf> on <GtkCellRendererPixbuf> end;
+define property-setter pixbuf :: <GdkPixbuf> on <GtkCellRendererPixbuf> end;
+define property-getter pixbuf-expander-open :: <GdkPixbuf> on <GtkCellRendererPixbuf> end;
+define property-setter pixbuf-expander-open :: <GdkPixbuf> on <GtkCellRendererPixbuf> end;
+define property-getter pixbuf-expander-closed :: <GdkPixbuf> on <GtkCellRendererPixbuf> end;
+define property-setter pixbuf-expander-closed :: <GdkPixbuf> on <GtkCellRendererPixbuf> end;
+define property-getter stock-id :: <gchararray> on <GtkCellRendererPixbuf> end;
+define property-setter stock-id :: <gchararray> on <GtkCellRendererPixbuf> end;
+define property-getter stock-size :: <guint> on <GtkCellRendererPixbuf> end;
+define property-setter stock-size :: <guint> on <GtkCellRendererPixbuf> end;
+define property-getter stock-detail :: <gchararray> on <GtkCellRendererPixbuf> end;
+define property-setter stock-detail :: <gchararray> on <GtkCellRendererPixbuf> end;
+define property-getter follow-state :: <gboolean> on <GtkCellRendererPixbuf> end;
+define property-setter follow-state :: <gboolean> on <GtkCellRendererPixbuf> end;
+define property-getter icon-name :: <gchararray> on <GtkCellRendererPixbuf> end;
+define property-setter icon-name :: <gchararray> on <GtkCellRendererPixbuf> end;
+define property-getter shadow :: <GtkShadowType> on <GtkHandleBox> end;
+define property-setter shadow :: <GtkShadowType> on <GtkHandleBox> end;
+define property-getter shadow-type :: <GtkShadowType> on <GtkHandleBox> end;
+define property-setter shadow-type :: <GtkShadowType> on <GtkHandleBox> end;
+define property-getter handle-position :: <GtkPositionType> on <GtkHandleBox> end;
+define property-setter handle-position :: <GtkPositionType> on <GtkHandleBox> end;
+define property-getter snap-edge :: <GtkPositionType> on <GtkHandleBox> end;
+define property-setter snap-edge :: <GtkPositionType> on <GtkHandleBox> end;
+define property-getter snap-edge-set :: <gboolean> on <GtkHandleBox> end;
+define property-setter snap-edge-set :: <gboolean> on <GtkHandleBox> end;
+define property-getter text :: <gchararray> on <GtkCellRendererText> end;
+define property-setter text :: <gchararray> on <GtkCellRendererText> end;
+define property-setter markup :: <gchararray> on <GtkCellRendererText> end;
+define property-getter attributes :: <PangoAttrList> on <GtkCellRendererText> end;
+define property-setter attributes :: <PangoAttrList> on <GtkCellRendererText> end;
+define property-getter single-paragraph-mode :: <gboolean> on <GtkCellRendererText> end;
+define property-setter single-paragraph-mode :: <gboolean> on <GtkCellRendererText> end;
+define property-getter width-chars :: <gint> on <GtkCellRendererText> end;
+define property-setter width-chars :: <gint> on <GtkCellRendererText> end;
+define property-getter wrap-width :: <gint> on <GtkCellRendererText> end;
+define property-setter wrap-width :: <gint> on <GtkCellRendererText> end;
+define property-setter background :: <gchararray> on <GtkCellRendererText> end;
+define property-setter foreground :: <gchararray> on <GtkCellRendererText> end;
+define property-getter background-gdk :: <GdkColor> on <GtkCellRendererText> end;
+define property-setter background-gdk :: <GdkColor> on <GtkCellRendererText> end;
+define property-getter foreground-gdk :: <GdkColor> on <GtkCellRendererText> end;
+define property-setter foreground-gdk :: <GdkColor> on <GtkCellRendererText> end;
+define property-getter font :: <gchararray> on <GtkCellRendererText> end;
+define property-setter font :: <gchararray> on <GtkCellRendererText> end;
+define property-getter font-desc :: <PangoFontDescription> on <GtkCellRendererText> end;
+define property-setter font-desc :: <PangoFontDescription> on <GtkCellRendererText> end;
+define property-getter family :: <gchararray> on <GtkCellRendererText> end;
+define property-setter family :: <gchararray> on <GtkCellRendererText> end;
+define property-getter style :: <PangoStyle> on <GtkCellRendererText> end;
+define property-setter style :: <PangoStyle> on <GtkCellRendererText> end;
+define property-getter variant :: <PangoVariant> on <GtkCellRendererText> end;
+define property-setter variant :: <PangoVariant> on <GtkCellRendererText> end;
+define property-getter weight :: <gint> on <GtkCellRendererText> end;
+define property-setter weight :: <gint> on <GtkCellRendererText> end;
+define property-getter stretch :: <PangoStretch> on <GtkCellRendererText> end;
+define property-setter stretch :: <PangoStretch> on <GtkCellRendererText> end;
+define property-getter size :: <gint> on <GtkCellRendererText> end;
+define property-setter size :: <gint> on <GtkCellRendererText> end;
+define property-getter size-points :: <gdouble> on <GtkCellRendererText> end;
+define property-setter size-points :: <gdouble> on <GtkCellRendererText> end;
+define property-getter scale :: <gdouble> on <GtkCellRendererText> end;
+define property-setter scale :: <gdouble> on <GtkCellRendererText> end;
+define property-getter editable :: <gboolean> on <GtkCellRendererText> end;
+define property-setter editable :: <gboolean> on <GtkCellRendererText> end;
+define property-getter strikethrough :: <gboolean> on <GtkCellRendererText> end;
+define property-setter strikethrough :: <gboolean> on <GtkCellRendererText> end;
+define property-getter underline :: <PangoUnderline> on <GtkCellRendererText> end;
+define property-setter underline :: <PangoUnderline> on <GtkCellRendererText> end;
+define property-getter rise :: <gint> on <GtkCellRendererText> end;
+define property-setter rise :: <gint> on <GtkCellRendererText> end;
+define property-getter language :: <gchararray> on <GtkCellRendererText> end;
+define property-setter language :: <gchararray> on <GtkCellRendererText> end;
+define property-getter ellipsize :: <PangoEllipsizeMode> on <GtkCellRendererText> end;
+define property-setter ellipsize :: <PangoEllipsizeMode> on <GtkCellRendererText> end;
+define property-getter wrap-mode :: <PangoWrapMode> on <GtkCellRendererText> end;
+define property-setter wrap-mode :: <PangoWrapMode> on <GtkCellRendererText> end;
+define property-getter background-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter background-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter foreground-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter foreground-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter family-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter family-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter style-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter style-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter variant-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter variant-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter weight-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter weight-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter stretch-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter stretch-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter size-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter size-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter scale-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter scale-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter editable-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter editable-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter strikethrough-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter strikethrough-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter underline-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter underline-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter rise-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter rise-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter language-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter language-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter ellipsize-set :: <gboolean> on <GtkCellRendererText> end;
+define property-setter ellipsize-set :: <gboolean> on <GtkCellRendererText> end;
+define property-getter activatable :: <gboolean> on <GtkCellRendererToggle> end;
+define property-setter activatable :: <gboolean> on <GtkCellRendererToggle> end;
+define property-getter active :: <gboolean> on <GtkCellRendererToggle> end;
+define property-setter active :: <gboolean> on <GtkCellRendererToggle> end;
+define property-getter radio :: <gboolean> on <GtkCellRendererToggle> end;
+define property-setter radio :: <gboolean> on <GtkCellRendererToggle> end;
+define property-getter inconsistent :: <gboolean> on <GtkCellRendererToggle> end;
+define property-setter inconsistent :: <gboolean> on <GtkCellRendererToggle> end;
+define property-setter background :: <gchararray> on <GtkCellView> end;
+define property-getter background-gdk :: <GdkColor> on <GtkCellView> end;
+define property-setter background-gdk :: <GdkColor> on <GtkCellView> end;
+define property-getter background-set :: <gboolean> on <GtkCellView> end;
+define property-setter background-set :: <gboolean> on <GtkCellView> end;
+define property-getter active :: <gboolean> on <GtkCheckMenuItem> end;
+define property-setter active :: <gboolean> on <GtkCheckMenuItem> end;
+define property-getter inconsistent :: <gboolean> on <GtkCheckMenuItem> end;
+define property-setter inconsistent :: <gboolean> on <GtkCheckMenuItem> end;
+define property-getter draw-as-radio :: <gboolean> on <GtkCheckMenuItem> end;
+define property-setter draw-as-radio :: <gboolean> on <GtkCheckMenuItem> end;
+define property-getter n-columns :: <guint> on <GtkCList> end;
+define property-setter n-columns :: <guint> on <GtkCList> end;
+define property-getter shadow-type :: <GtkShadowType> on <GtkCList> end;
+define property-setter shadow-type :: <GtkShadowType> on <GtkCList> end;
+define property-getter selection-mode :: <GtkSelectionMode> on <GtkCList> end;
+define property-setter selection-mode :: <GtkSelectionMode> on <GtkCList> end;
+define property-getter row-height :: <guint> on <GtkCList> end;
+define property-setter row-height :: <guint> on <GtkCList> end;
+define property-getter titles-active :: <gboolean> on <GtkCList> end;
+define property-setter titles-active :: <gboolean> on <GtkCList> end;
+define property-getter reorderable :: <gboolean> on <GtkCList> end;
+define property-setter reorderable :: <gboolean> on <GtkCList> end;
+define property-getter use-drag-icons :: <gboolean> on <GtkCList> end;
+define property-setter use-drag-icons :: <gboolean> on <GtkCList> end;
+define property-getter sort-type :: <GtkSortType> on <GtkCList> end;
+define property-setter sort-type :: <GtkSortType> on <GtkCList> end;
+define property-getter use-alpha :: <gboolean> on <GtkColorButton> end;
+define property-setter use-alpha :: <gboolean> on <GtkColorButton> end;
+define property-getter title :: <gchararray> on <GtkColorButton> end;
+define property-setter title :: <gchararray> on <GtkColorButton> end;
+define property-getter color :: <GdkColor> on <GtkColorButton> end;
+define property-setter color :: <GdkColor> on <GtkColorButton> end;
+define property-getter alpha :: <guint> on <GtkColorButton> end;
+define property-setter alpha :: <guint> on <GtkColorButton> end;
+define property-getter has-palette :: <gboolean> on <GtkColorSelection> end;
+define property-setter has-palette :: <gboolean> on <GtkColorSelection> end;
+define property-getter has-opacity-control :: <gboolean> on <GtkColorSelection> end;
+define property-setter has-opacity-control :: <gboolean> on <GtkColorSelection> end;
+define property-getter current-color :: <GdkColor> on <GtkColorSelection> end;
+define property-setter current-color :: <GdkColor> on <GtkColorSelection> end;
+define property-getter current-alpha :: <guint> on <GtkColorSelection> end;
+define property-setter current-alpha :: <guint> on <GtkColorSelection> end;
+define property-getter enable-arrow-keys :: <gboolean> on <GtkCombo> end;
+define property-setter enable-arrow-keys :: <gboolean> on <GtkCombo> end;
+define property-getter enable-arrows-always :: <gboolean> on <GtkCombo> end;
+define property-setter enable-arrows-always :: <gboolean> on <GtkCombo> end;
+define property-getter case-sensitive :: <gboolean> on <GtkCombo> end;
+define property-setter case-sensitive :: <gboolean> on <GtkCombo> end;
+define property-getter allow-empty :: <gboolean> on <GtkCombo> end;
+define property-setter allow-empty :: <gboolean> on <GtkCombo> end;
+define property-getter value-in-list :: <gboolean> on <GtkCombo> end;
+define property-setter value-in-list :: <gboolean> on <GtkCombo> end;
+define property-getter model :: <GtkTreeModel> on <GtkComboBox> end;
+define property-setter model :: <GtkTreeModel> on <GtkComboBox> end;
+define property-getter wrap-width :: <gint> on <GtkComboBox> end;
+define property-setter wrap-width :: <gint> on <GtkComboBox> end;
+define property-getter row-span-column :: <gint> on <GtkComboBox> end;
+define property-setter row-span-column :: <gint> on <GtkComboBox> end;
+define property-getter column-span-column :: <gint> on <GtkComboBox> end;
+define property-setter column-span-column :: <gint> on <GtkComboBox> end;
+define property-getter active :: <gint> on <GtkComboBox> end;
+define property-setter active :: <gint> on <GtkComboBox> end;
+define property-getter add-tearoffs :: <gboolean> on <GtkComboBox> end;
+define property-setter add-tearoffs :: <gboolean> on <GtkComboBox> end;
+define property-getter has-frame :: <gboolean> on <GtkComboBox> end;
+define property-setter has-frame :: <gboolean> on <GtkComboBox> end;
+define property-getter focus-on-click :: <gboolean> on <GtkComboBox> end;
+define property-setter focus-on-click :: <gboolean> on <GtkComboBox> end;
+define property-getter text-column :: <gint> on <GtkComboBoxEntry> end;
+define property-setter text-column :: <gint> on <GtkComboBoxEntry> end;
+define property-getter border-width :: <guint> on <GtkContainer> end;
+define property-setter border-width :: <guint> on <GtkContainer> end;
+define property-getter resize-mode :: <GtkResizeMode> on <GtkContainer> end;
+define property-setter resize-mode :: <GtkResizeMode> on <GtkContainer> end;
+define property-setter child :: <GtkWidget> on <GtkContainer> end;
+define property-getter n-columns :: <guint> on <GtkCTree> end;
+define property-setter n-columns :: <guint> on <GtkCTree> end;
+define property-getter tree-column :: <guint> on <GtkCTree> end;
+define property-setter tree-column :: <guint> on <GtkCTree> end;
+define property-getter indent :: <guint> on <GtkCTree> end;
+define property-setter indent :: <guint> on <GtkCTree> end;
+define property-getter spacing :: <guint> on <GtkCTree> end;
+define property-setter spacing :: <guint> on <GtkCTree> end;
+define property-getter show-stub :: <gboolean> on <GtkCTree> end;
+define property-setter show-stub :: <gboolean> on <GtkCTree> end;
+define property-getter line-style :: <GtkCTreeLineStyle> on <GtkCTree> end;
+define property-setter line-style :: <GtkCTreeLineStyle> on <GtkCTree> end;
+define property-getter expander-style :: <GtkCTreeExpanderStyle> on <GtkCTree> end;
+define property-setter expander-style :: <GtkCTreeExpanderStyle> on <GtkCTree> end;
+define property-getter curve-type :: <GtkCurveType> on <GtkCurve> end;
+define property-setter curve-type :: <GtkCurveType> on <GtkCurve> end;
+define property-getter min-x :: <gfloat> on <GtkCurve> end;
+define property-setter min-x :: <gfloat> on <GtkCurve> end;
+define property-getter max-x :: <gfloat> on <GtkCurve> end;
+define property-setter max-x :: <gfloat> on <GtkCurve> end;
+define property-getter min-y :: <gfloat> on <GtkCurve> end;
+define property-setter min-y :: <gfloat> on <GtkCurve> end;
+define property-getter max-y :: <gfloat> on <GtkCurve> end;
+define property-setter max-y :: <gfloat> on <GtkCurve> end;
+define property-getter has-separator :: <gboolean> on <GtkDialog> end;
+define property-setter has-separator :: <gboolean> on <GtkDialog> end;
+define property-getter cursor-position :: <gint> on <GtkEntry> end;
+define property-getter selection-bound :: <gint> on <GtkEntry> end;
+define property-getter editable :: <gboolean> on <GtkEntry> end;
+define property-setter editable :: <gboolean> on <GtkEntry> end;
+define property-getter max-length :: <gint> on <GtkEntry> end;
+define property-setter max-length :: <gint> on <GtkEntry> end;
+define property-getter visibility :: <gboolean> on <GtkEntry> end;
+define property-setter visibility :: <gboolean> on <GtkEntry> end;
+define property-getter has-frame :: <gboolean> on <GtkEntry> end;
+define property-setter has-frame :: <gboolean> on <GtkEntry> end;
+define property-getter invisible-char :: <guint> on <GtkEntry> end;
+define property-setter invisible-char :: <guint> on <GtkEntry> end;
+define property-getter activates-default :: <gboolean> on <GtkEntry> end;
+define property-setter activates-default :: <gboolean> on <GtkEntry> end;
+define property-getter width-chars :: <gint> on <GtkEntry> end;
+define property-setter width-chars :: <gint> on <GtkEntry> end;
+define property-getter scroll-offset :: <gint> on <GtkEntry> end;
+define property-getter text :: <gchararray> on <GtkEntry> end;
+define property-setter text :: <gchararray> on <GtkEntry> end;
+define property-getter xalign :: <gfloat> on <GtkEntry> end;
+define property-setter xalign :: <gfloat> on <GtkEntry> end;
+define property-getter model :: <GtkTreeModel> on <GtkEntryCompletion> end;
+define property-setter model :: <GtkTreeModel> on <GtkEntryCompletion> end;
+define property-getter minimum-key-length :: <gint> on <GtkEntryCompletion> end;
+define property-setter minimum-key-length :: <gint> on <GtkEntryCompletion> end;
+define property-getter text-column :: <gint> on <GtkEntryCompletion> end;
+define property-setter text-column :: <gint> on <GtkEntryCompletion> end;
+define property-getter inline-completion :: <gboolean> on <GtkEntryCompletion> end;
+define property-setter inline-completion :: <gboolean> on <GtkEntryCompletion> end;
+define property-getter popup-completion :: <gboolean> on <GtkEntryCompletion> end;
+define property-setter popup-completion :: <gboolean> on <GtkEntryCompletion> end;
+define property-getter popup-set-width :: <gboolean> on <GtkEntryCompletion> end;
+define property-setter popup-set-width :: <gboolean> on <GtkEntryCompletion> end;
+define property-getter popup-single-match :: <gboolean> on <GtkEntryCompletion> end;
+define property-setter popup-single-match :: <gboolean> on <GtkEntryCompletion> end;
+define property-getter visible-window :: <gboolean> on <GtkEventBox> end;
+define property-setter visible-window :: <gboolean> on <GtkEventBox> end;
+define property-getter above-child :: <gboolean> on <GtkEventBox> end;
+define property-setter above-child :: <gboolean> on <GtkEventBox> end;
+define property-getter expanded :: <gboolean> on <GtkExpander> end;
+define property-setter expanded :: <gboolean> on <GtkExpander> end;
+define property-getter label :: <gchararray> on <GtkExpander> end;
+define property-setter label :: <gchararray> on <GtkExpander> end;
+define property-getter use-underline :: <gboolean> on <GtkExpander> end;
+define property-setter use-underline :: <gboolean> on <GtkExpander> end;
+define property-getter use-markup :: <gboolean> on <GtkExpander> end;
+define property-setter use-markup :: <gboolean> on <GtkExpander> end;
+define property-getter spacing :: <gint> on <GtkExpander> end;
+define property-setter spacing :: <gint> on <GtkExpander> end;
+define property-getter label-widget :: <GtkWidget> on <GtkExpander> end;
+define property-setter label-widget :: <GtkWidget> on <GtkExpander> end;
+define property-setter dialog :: <GtkFileChooserDialog> on <GtkFileChooserButton> end;
+define property-getter title :: <gchararray> on <GtkFileChooserButton> end;
+define property-setter title :: <gchararray> on <GtkFileChooserButton> end;
+define property-getter width-chars :: <gint> on <GtkFileChooserButton> end;
+define property-setter width-chars :: <gint> on <GtkFileChooserButton> end;
+define property-getter show-fileops :: <gboolean> on <GtkFileSelection> end;
+define property-setter show-fileops :: <gboolean> on <GtkFileSelection> end;
+define property-getter filename :: <gchararray> on <GtkFileSelection> end;
+define property-setter filename :: <gchararray> on <GtkFileSelection> end;
+define property-getter select-multiple :: <gboolean> on <GtkFileSelection> end;
+define property-setter select-multiple :: <gboolean> on <GtkFileSelection> end;
+define property-getter title :: <gchararray> on <GtkFontButton> end;
+define property-setter title :: <gchararray> on <GtkFontButton> end;
+define property-getter font-name :: <gchararray> on <GtkFontButton> end;
+define property-setter font-name :: <gchararray> on <GtkFontButton> end;
+define property-getter use-font :: <gboolean> on <GtkFontButton> end;
+define property-setter use-font :: <gboolean> on <GtkFontButton> end;
+define property-getter use-size :: <gboolean> on <GtkFontButton> end;
+define property-setter use-size :: <gboolean> on <GtkFontButton> end;
+define property-getter show-style :: <gboolean> on <GtkFontButton> end;
+define property-setter show-style :: <gboolean> on <GtkFontButton> end;
+define property-getter show-size :: <gboolean> on <GtkFontButton> end;
+define property-setter show-size :: <gboolean> on <GtkFontButton> end;
+define property-getter font-name :: <gchararray> on <GtkFontSelection> end;
+define property-setter font-name :: <gchararray> on <GtkFontSelection> end;
+define property-getter font :: <GdkFont> on <GtkFontSelection> end;
+define property-getter preview-text :: <gchararray> on <GtkFontSelection> end;
+define property-setter preview-text :: <gchararray> on <GtkFontSelection> end;
+define property-getter label :: <gchararray> on <GtkFrame> end;
+define property-setter label :: <gchararray> on <GtkFrame> end;
+define property-getter label-xalign :: <gfloat> on <GtkFrame> end;
+define property-setter label-xalign :: <gfloat> on <GtkFrame> end;
+define property-getter label-yalign :: <gfloat> on <GtkFrame> end;
+define property-setter label-yalign :: <gfloat> on <GtkFrame> end;
+define property-getter shadow :: <GtkShadowType> on <GtkFrame> end;
+define property-setter shadow :: <GtkShadowType> on <GtkFrame> end;
+define property-getter shadow-type :: <GtkShadowType> on <GtkFrame> end;
+define property-setter shadow-type :: <GtkShadowType> on <GtkFrame> end;
+define property-getter label-widget :: <GtkWidget> on <GtkFrame> end;
+define property-setter label-widget :: <GtkWidget> on <GtkFrame> end;
+define property-getter image :: <GtkWidget> on <GtkImageMenuItem> end;
+define property-setter image :: <GtkWidget> on <GtkImageMenuItem> end;
+define property-getter pixbuf-column :: <gint> on <GtkIconView> end;
+define property-setter pixbuf-column :: <gint> on <GtkIconView> end;
+define property-getter text-column :: <gint> on <GtkIconView> end;
+define property-setter text-column :: <gint> on <GtkIconView> end;
+define property-getter markup-column :: <gint> on <GtkIconView> end;
+define property-setter markup-column :: <gint> on <GtkIconView> end;
+define property-getter selection-mode :: <GtkSelectionMode> on <GtkIconView> end;
+define property-setter selection-mode :: <GtkSelectionMode> on <GtkIconView> end;
+define property-getter orientation :: <GtkOrientation> on <GtkIconView> end;
+define property-setter orientation :: <GtkOrientation> on <GtkIconView> end;
+define property-getter model :: <GtkTreeModel> on <GtkIconView> end;
+define property-setter model :: <GtkTreeModel> on <GtkIconView> end;
+define property-getter columns :: <gint> on <GtkIconView> end;
+define property-setter columns :: <gint> on <GtkIconView> end;
+define property-getter item-width :: <gint> on <GtkIconView> end;
+define property-setter item-width :: <gint> on <GtkIconView> end;
+define property-getter spacing :: <gint> on <GtkIconView> end;
+define property-setter spacing :: <gint> on <GtkIconView> end;
+define property-getter row-spacing :: <gint> on <GtkIconView> end;
+define property-setter row-spacing :: <gint> on <GtkIconView> end;
+define property-getter column-spacing :: <gint> on <GtkIconView> end;
+define property-setter column-spacing :: <gint> on <GtkIconView> end;
+define property-getter margin :: <gint> on <GtkIconView> end;
+define property-setter margin :: <gint> on <GtkIconView> end;
+define property-getter reorderable :: <gboolean> on <GtkIconView> end;
+define property-setter reorderable :: <gboolean> on <GtkIconView> end;
+define property-getter pixbuf :: <GdkPixbuf> on <GtkImage> end;
+define property-setter pixbuf :: <GdkPixbuf> on <GtkImage> end;
+define property-getter pixmap :: <GdkPixmap> on <GtkImage> end;
+define property-setter pixmap :: <GdkPixmap> on <GtkImage> end;
+define property-getter image :: <GdkImage> on <GtkImage> end;
+define property-setter image :: <GdkImage> on <GtkImage> end;
+define property-getter mask :: <GdkPixmap> on <GtkImage> end;
+define property-setter mask :: <GdkPixmap> on <GtkImage> end;
+define property-getter file :: <gchararray> on <GtkImage> end;
+define property-setter file :: <gchararray> on <GtkImage> end;
+define property-getter stock :: <gchararray> on <GtkImage> end;
+define property-setter stock :: <gchararray> on <GtkImage> end;
+define property-getter icon-set :: <GtkIconSet> on <GtkImage> end;
+define property-setter icon-set :: <GtkIconSet> on <GtkImage> end;
+define property-getter icon-size :: <gint> on <GtkImage> end;
+define property-setter icon-size :: <gint> on <GtkImage> end;
+define property-getter pixel-size :: <gint> on <GtkImage> end;
+define property-setter pixel-size :: <gint> on <GtkImage> end;
+define property-getter pixbuf-animation :: <GdkPixbufAnimation> on <GtkImage> end;
+define property-setter pixbuf-animation :: <GdkPixbufAnimation> on <GtkImage> end;
+define property-getter icon-name :: <gchararray> on <GtkImage> end;
+define property-setter icon-name :: <gchararray> on <GtkImage> end;
+define property-getter storage-type :: <GtkImageType> on <GtkImage> end;
+define property-setter group :: <GtkRadioToolButton> on <GtkRadioToolButton> end;
+define property-getter screen :: <GdkScreen> on <GtkInvisible> end;
+define property-setter screen :: <GdkScreen> on <GtkInvisible> end;
+define property-getter label :: <gchararray> on <GtkLabel> end;
+define property-setter label :: <gchararray> on <GtkLabel> end;
+define property-getter attributes :: <PangoAttrList> on <GtkLabel> end;
+define property-setter attributes :: <PangoAttrList> on <GtkLabel> end;
+define property-getter use-markup :: <gboolean> on <GtkLabel> end;
+define property-setter use-markup :: <gboolean> on <GtkLabel> end;
+define property-getter use-underline :: <gboolean> on <GtkLabel> end;
+define property-setter use-underline :: <gboolean> on <GtkLabel> end;
+define property-getter justify :: <GtkJustification> on <GtkLabel> end;
+define property-setter justify :: <GtkJustification> on <GtkLabel> end;
+define property-setter pattern :: <gchararray> on <GtkLabel> end;
+define property-getter wrap :: <gboolean> on <GtkLabel> end;
+define property-setter wrap :: <gboolean> on <GtkLabel> end;
+define property-getter selectable :: <gboolean> on <GtkLabel> end;
+define property-setter selectable :: <gboolean> on <GtkLabel> end;
+define property-getter mnemonic-keyval :: <guint> on <GtkLabel> end;
+define property-getter mnemonic-widget :: <GtkWidget> on <GtkLabel> end;
+define property-setter mnemonic-widget :: <GtkWidget> on <GtkLabel> end;
+define property-getter cursor-position :: <gint> on <GtkLabel> end;
+define property-getter selection-bound :: <gint> on <GtkLabel> end;
+define property-getter ellipsize :: <PangoEllipsizeMode> on <GtkLabel> end;
+define property-setter ellipsize :: <PangoEllipsizeMode> on <GtkLabel> end;
+define property-getter width-chars :: <gint> on <GtkLabel> end;
+define property-setter width-chars :: <gint> on <GtkLabel> end;
+define property-getter single-line-mode :: <gboolean> on <GtkLabel> end;
+define property-setter single-line-mode :: <gboolean> on <GtkLabel> end;
+define property-getter angle :: <gdouble> on <GtkLabel> end;
+define property-setter angle :: <gdouble> on <GtkLabel> end;
+define property-getter max-width-chars :: <gint> on <GtkLabel> end;
+define property-setter max-width-chars :: <gint> on <GtkLabel> end;
+define property-getter hadjustment :: <GtkAdjustment> on <GtkLayout> end;
+define property-setter hadjustment :: <GtkAdjustment> on <GtkLayout> end;
+define property-getter vadjustment :: <GtkAdjustment> on <GtkLayout> end;
+define property-setter vadjustment :: <GtkAdjustment> on <GtkLayout> end;
+define property-getter width :: <guint> on <GtkLayout> end;
+define property-setter width :: <guint> on <GtkLayout> end;
+define property-getter height :: <guint> on <GtkLayout> end;
+define property-setter height :: <guint> on <GtkLayout> end;
+define property-getter selection-mode :: <GtkSelectionMode> on <GtkList> end;
+define property-setter selection-mode :: <GtkSelectionMode> on <GtkList> end;
+define property-getter tearoff-state :: <gboolean> on <GtkMenu> end;
+define property-setter tearoff-state :: <gboolean> on <GtkMenu> end;
+define property-getter tearoff-title :: <gchararray> on <GtkMenu> end;
+define property-setter tearoff-title :: <gchararray> on <GtkMenu> end;
+define property-getter pack-direction :: <GtkPackDirection> on <GtkMenuBar> end;
+define property-setter pack-direction :: <GtkPackDirection> on <GtkMenuBar> end;
+define property-getter child-pack-direction :: <GtkPackDirection> on <GtkMenuBar> end;
+define property-setter child-pack-direction :: <GtkPackDirection> on <GtkMenuBar> end;
+define property-getter take-focus :: <gboolean> on <GtkMenuShell> end;
+define property-setter take-focus :: <gboolean> on <GtkMenuShell> end;
+define property-getter menu :: <GtkMenu> on <GtkMenuToolButton> end;
+define property-setter menu :: <GtkMenu> on <GtkMenuToolButton> end;
+define property-getter message-type :: <GtkMessageType> on <GtkMessageDialog> end;
+define property-setter message-type :: <GtkMessageType> on <GtkMessageDialog> end;
+define property-setter buttons :: <GtkButtonsType> on <GtkMessageDialog> end;
+define property-getter xalign :: <gfloat> on <GtkMisc> end;
+define property-setter xalign :: <gfloat> on <GtkMisc> end;
+define property-getter yalign :: <gfloat> on <GtkMisc> end;
+define property-setter yalign :: <gfloat> on <GtkMisc> end;
+define property-getter xpad :: <gint> on <GtkMisc> end;
+define property-setter xpad :: <gint> on <GtkMisc> end;
+define property-getter ypad :: <gint> on <GtkMisc> end;
+define property-setter ypad :: <gint> on <GtkMisc> end;
+define property-getter tab-pos :: <GtkPositionType> on <GtkNotebook> end;
+define property-setter tab-pos :: <GtkPositionType> on <GtkNotebook> end;
+define property-getter show-tabs :: <gboolean> on <GtkNotebook> end;
+define property-setter show-tabs :: <gboolean> on <GtkNotebook> end;
+define property-getter show-border :: <gboolean> on <GtkNotebook> end;
+define property-setter show-border :: <gboolean> on <GtkNotebook> end;
+define property-getter scrollable :: <gboolean> on <GtkNotebook> end;
+define property-setter scrollable :: <gboolean> on <GtkNotebook> end;
+define property-setter tab-border :: <guint> on <GtkNotebook> end;
+define property-getter tab-hborder :: <guint> on <GtkNotebook> end;
+define property-setter tab-hborder :: <guint> on <GtkNotebook> end;
+define property-getter tab-vborder :: <guint> on <GtkNotebook> end;
+define property-setter tab-vborder :: <guint> on <GtkNotebook> end;
+define property-getter page :: <gint> on <GtkNotebook> end;
+define property-setter page :: <gint> on <GtkNotebook> end;
+define property-getter enable-popup :: <gboolean> on <GtkNotebook> end;
+define property-setter enable-popup :: <gboolean> on <GtkNotebook> end;
+define property-getter homogeneous :: <gboolean> on <GtkNotebook> end;
+define property-setter homogeneous :: <gboolean> on <GtkNotebook> end;
+define property-getter user-data :: <gpointer> on <GtkObject> end;
+define property-setter user-data :: <gpointer> on <GtkObject> end;
+define property-getter menu :: <GtkMenu> on <GtkOptionMenu> end;
+define property-setter menu :: <GtkMenu> on <GtkOptionMenu> end;
+define property-getter position :: <gint> on <GtkPaned> end;
+define property-setter position :: <gint> on <GtkPaned> end;
+define property-getter position-set :: <gboolean> on <GtkPaned> end;
+define property-setter position-set :: <gboolean> on <GtkPaned> end;
+define property-getter min-position :: <gint> on <GtkPaned> end;
+define property-getter max-position :: <gint> on <GtkPaned> end;
+define property-getter expand :: <gboolean> on <GtkPreview> end;
+define property-setter expand :: <gboolean> on <GtkPreview> end;
+define property-getter activity-mode :: <gboolean> on <GtkProgress> end;
+define property-setter activity-mode :: <gboolean> on <GtkProgress> end;
+define property-getter show-text :: <gboolean> on <GtkProgress> end;
+define property-setter show-text :: <gboolean> on <GtkProgress> end;
+define property-getter text-xalign :: <gfloat> on <GtkProgress> end;
+define property-setter text-xalign :: <gfloat> on <GtkProgress> end;
+define property-getter text-yalign :: <gfloat> on <GtkProgress> end;
+define property-setter text-yalign :: <gfloat> on <GtkProgress> end;
+define property-getter fraction :: <gdouble> on <GtkProgressBar> end;
+define property-setter fraction :: <gdouble> on <GtkProgressBar> end;
+define property-getter pulse-step :: <gdouble> on <GtkProgressBar> end;
+define property-setter pulse-step :: <gdouble> on <GtkProgressBar> end;
+define property-getter orientation :: <GtkProgressBarOrientation> on <GtkProgressBar> end;
+define property-setter orientation :: <GtkProgressBarOrientation> on <GtkProgressBar> end;
+define property-getter text :: <gchararray> on <GtkProgressBar> end;
+define property-setter text :: <gchararray> on <GtkProgressBar> end;
+define property-getter ellipsize :: <PangoEllipsizeMode> on <GtkProgressBar> end;
+define property-setter ellipsize :: <PangoEllipsizeMode> on <GtkProgressBar> end;
+define property-getter adjustment :: <GtkAdjustment> on <GtkProgressBar> end;
+define property-setter adjustment :: <GtkAdjustment> on <GtkProgressBar> end;
+define property-getter bar-style :: <GtkProgressBarStyle> on <GtkProgressBar> end;
+define property-setter bar-style :: <GtkProgressBarStyle> on <GtkProgressBar> end;
+define property-getter activity-step :: <guint> on <GtkProgressBar> end;
+define property-setter activity-step :: <guint> on <GtkProgressBar> end;
+define property-getter activity-blocks :: <guint> on <GtkProgressBar> end;
+define property-setter activity-blocks :: <guint> on <GtkProgressBar> end;
+define property-getter discrete-blocks :: <guint> on <GtkProgressBar> end;
+define property-setter discrete-blocks :: <guint> on <GtkProgressBar> end;
+define property-getter value :: <gint> on <GtkRadioAction> end;
+define property-setter value :: <gint> on <GtkRadioAction> end;
+define property-setter group :: <GtkRadioAction> on <GtkRadioAction> end;
+define property-setter group :: <GtkRadioButton> on <GtkRadioButton> end;
+define property-setter group :: <GtkRadioMenuItem> on <GtkRadioMenuItem> end;
+define property-getter update-policy :: <GtkUpdateType> on <GtkRange> end;
+define property-setter update-policy :: <GtkUpdateType> on <GtkRange> end;
+define property-getter adjustment :: <GtkAdjustment> on <GtkRange> end;
+define property-setter adjustment :: <GtkAdjustment> on <GtkRange> end;
+define property-getter inverted :: <gboolean> on <GtkRange> end;
+define property-setter inverted :: <gboolean> on <GtkRange> end;
+define property-getter lower :: <gdouble> on <GtkRuler> end;
+define property-setter lower :: <gdouble> on <GtkRuler> end;
+define property-getter upper :: <gdouble> on <GtkRuler> end;
+define property-setter upper :: <gdouble> on <GtkRuler> end;
+define property-getter position :: <gdouble> on <GtkRuler> end;
+define property-setter position :: <gdouble> on <GtkRuler> end;
+define property-getter max-size :: <gdouble> on <GtkRuler> end;
+define property-setter max-size :: <gdouble> on <GtkRuler> end;
+define property-getter metric :: <GtkMetricType> on <GtkRuler> end;
+define property-setter metric :: <GtkMetricType> on <GtkRuler> end;
+define property-getter digits :: <gint> on <GtkScale> end;
+define property-setter digits :: <gint> on <GtkScale> end;
+define property-getter draw-value :: <gboolean> on <GtkScale> end;
+define property-setter draw-value :: <gboolean> on <GtkScale> end;
+define property-getter value-pos :: <GtkPositionType> on <GtkScale> end;
+define property-setter value-pos :: <GtkPositionType> on <GtkScale> end;
+define property-getter hadjustment :: <GtkAdjustment> on <GtkScrolledWindow> end;
+define property-setter hadjustment :: <GtkAdjustment> on <GtkScrolledWindow> end;
+define property-getter vadjustment :: <GtkAdjustment> on <GtkScrolledWindow> end;
+define property-setter vadjustment :: <GtkAdjustment> on <GtkScrolledWindow> end;
+define property-getter hscrollbar-policy :: <GtkPolicyType> on <GtkScrolledWindow> end;
+define property-setter hscrollbar-policy :: <GtkPolicyType> on <GtkScrolledWindow> end;
+define property-getter vscrollbar-policy :: <GtkPolicyType> on <GtkScrolledWindow> end;
+define property-setter vscrollbar-policy :: <GtkPolicyType> on <GtkScrolledWindow> end;
+define property-getter window-placement :: <GtkCornerType> on <GtkScrolledWindow> end;
+define property-setter window-placement :: <GtkCornerType> on <GtkScrolledWindow> end;
+define property-getter shadow-type :: <GtkShadowType> on <GtkScrolledWindow> end;
+define property-setter shadow-type :: <GtkShadowType> on <GtkScrolledWindow> end;
+define property-getter draw :: <gboolean> on <GtkSeparatorToolItem> end;
+define property-setter draw :: <gboolean> on <GtkSeparatorToolItem> end;
+define property-getter gtk-double-click-time :: <gint> on <GtkSettings> end;
+define property-setter gtk-double-click-time :: <gint> on <GtkSettings> end;
+define property-getter gtk-double-click-distance :: <gint> on <GtkSettings> end;
+define property-setter gtk-double-click-distance :: <gint> on <GtkSettings> end;
+define property-getter gtk-cursor-blink :: <gboolean> on <GtkSettings> end;
+define property-setter gtk-cursor-blink :: <gboolean> on <GtkSettings> end;
+define property-getter gtk-cursor-blink-time :: <gint> on <GtkSettings> end;
+define property-set