+
+ public int testing = 1;
+ argument INT testing link;
+
+ public char * testingstring = {g_strdup("test")}
+ destroywith g_free;
+ argument POINTER testingstring stringlink;
+
+ public Test:Object * testingobj
+ unrefwith g_object_unref;
+ argument POINTER testingobj objectlink;
+
+ public Test:Object * testingobjllll
+ unrefwith gtk_widget_destroy;
+ argument POINTER testingobjllll objectlink;
+
+ public Test:Object * testingobjfoo
+ unref { if (VAR) g_object_unref (VAR); };
+ argument POINTER testingobjfoo objectlink;
+
+ classwide int foo = 20;
+ argument INT foo link;
+
+ public G:Object * testingobj2
+ destroy {
+ if(VAR)
+ g_object_unref(G_OBJECT(VAR));
+ };
+ argument POINTER (type G:Object *) testingobj2 objectlink;
+
+ argument POINTER (type GObject *) some_object
+ set { /* set some_object */ }
+ get { /* get some_object */
+ ARG=NULL; };
+ argument (CONSTRUCT) LONG (type long) write_only_long
+ set { /* set write_only_long */ };
+ argument POINTER (type char *) read_only_string
+ get { /* get readonly_long */
+ ARG = g_strdup("BLAH"); };
+
+ private char a_property;
+ property CHAR a_property
+ (nick = _("Nick"),
+ blurb = _("Blurb"),
+ minimum = 'a',
+ maximum = 'Z',
+ default_value = 'C',
+ export)
+ set { self->_priv->a_property = g_value_get_char (VAL); }
+ get { g_value_set_char (VAL, self->_priv->a_property); };
+
+ property OBJECT foobarblahllll1
+ (nick = "xxxxxxx1",
+ blurb = "yyyyyy",
+ object_type = Gtk:Button)
+ get { /* FOO1 */ };
+ property OBJECT foobarblahllll2
+ (nick = "xxxxxxx2",
+ blurb = "yyyyyy",
+ object_type = G:Object)
+ set { /* FOO2 */ };
+
+ private double dblnum;
+ property DOUBLE dblnum
+ (nick = _("dblnum"),
+ blurb = _("dblnum"),
+ minimum = 0.1,
+ maximum = 99.1,
+ default_value = 0.3,
+ flags = CONSTRUCT|CONSTRUCT_ONLY,
+ export,
+ link);
+
+ private char *b_property;
+ property STRING b_property
+ (nick = _("Nick b"),
+ blurb = _("Blurb b"),
+ default_value = "default",
+ type = char *,
+ flags = CONSTRUCT,
+ export,
+ link);
+
+ private Test:Object *objectproperty;
+ property OBJECT objectproperty (nick = "object",
+ blurb = "obj property",
+ object_type = Test:Object,
+ link);
+
+ private Test:Enum enum_property;
+ property ENUM enum_property (nick = "enumprop",
+ blurb = "enumprop",
+ enum_type = Test:Enum,
+ link);
+
+ private Some:Flags flags_property;
+ property FLAGS flags_property (nick = "flagsprop",
+ blurb = "flagsprop",
+ flags_type = Some:Flags,
+ link);
+
+ private PackageBoxed prop;
+ property BOXED prop (nick="prop",
+ blurb="prop",
+ boxed_type=Package:Boxed,
+ link);
+ /* testing old semantics */
+ private PackageBoxed prop2;
+ property BOXED prop2 (nick="prop2",
+ blurb="prop2",
+ boxed_type=PACKAGE_TYPE_BOXED,
+ link);
+
+ private char ov_prop;
+ property CHAR ov_prop
+ (export,
+ override)
+ set { self->_priv->ov_prop = g_value_get_char (VAL); }
+ get { g_value_set_char (VAL, self->_priv->ov_prop); };
+
+