]> git.draconx.ca Git - gob-dx.git/blobdiff - src/test.gob
Release 2.0.8
[gob-dx.git] / src / test.gob
index 8c7cf8516cb106e08d90a16628721316b8e49529..8146a72538f234665c65ea4bdb5712add599876c 100644 (file)
@@ -26,6 +26,7 @@ requires 1.99.0
 
 %{
 #include <stdio.h>
+#include <gtk/gtk.h>
 /* the next line is not mandatory, but if gob finds an include in one of
    the %{ %} sections above the class definitions, it will not put it in
    the file itself.  So you can this way select where the include file is
@@ -55,13 +56,50 @@ union _gob__union_t {
        int i, x, y, z;
 };
 void bubu(void);
+
+/* Fake boxed */
+#define PACKAGE_TYPE_BOXED 1
+typedef void * PackageBoxed;
+
 %}
 %header{
 /* this should be in the header, just under bubu prototype */
 #define TEST_ARRAY 5
 %}
 
-class Test:Object from G:Object {
+enum LAME_CLIENT {
+       IS_CONNECTED,
+       NONE = 9,
+       LAST
+} Test:Enum;
+
+flags BUGA_BUGA {
+       ONE,
+       TWO,
+       MANY,
+} Some:Flags;
+
+error TEST_OBJECT_ERROR {
+       BAD_THIS,
+       BAD_THAT
+} Test:Object:Error;
+
+class Test:Object from G:Object
+       (interface Gtk:Tree:Model)
+       /* We can add more interfaces by adding more lines like the above */
+       /* Note that there must exist a GtkTreeModelIface structure */
+{
+
+       /* function implemented for the Gtk:Tree:Model interface */
+       interface Gtk:Tree:Model
+       private GtkTreeModelFlags
+       get_flags (Gtk:Tree:Model *self (check null type))
+       {
+               /* FOO */
+               return (GtkTreeModelFlags)0;
+       }
+
+
 
        public int test_array[TEST_ARRAY];
        public int i;
@@ -75,9 +113,13 @@ class Test:Object from G:Object {
        argument POINTER testingstring stringlink;
 
        public Test:Object * testingobj
-               destroywith g_object_unref;
+               unrefwith g_object_unref;
        argument POINTER testingobj objectlink;
 
+       public Test:Object * testingobjfoo
+               unref { if (VAR) g_object_unref (VAR); };
+       argument POINTER testingobjfoo objectlink;
+
        classwide int foo = 20;
        argument INT foo link;
 
@@ -109,6 +151,27 @@ class Test:Object from G:Object {
                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
@@ -120,6 +183,36 @@ class Test:Object from G:Object {
                 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 ENUM 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 int j;
        public GObject * h;
@@ -173,10 +266,10 @@ class Test:Object from G:Object {
        }
 
        private
-       int
+       char *
        test_handler (self, GObject *w, int h, gpointer data)
        {
-               return -1;
+               return NULL;
        }
 
        /**
@@ -191,9 +284,13 @@ class Test:Object from G:Object {
        signal last INT (POINTER, INT)
        int bleh2(self, const G:Object * wid (check null type),
                        int h (check > 0)) {
-               /*gtk_signal_connect (GTK_OBJECT (self),
-                                   GTK_WEIRD_BUTTON_SIGNAL_BLEH (test_handler),
-                                   NULL);*/
+
+               test_object_connect__bleh (self, self_test_handler, NULL);
+               self_connect__bleh (self, self_test_handler, NULL);
+               test_object_connect_after__bleh (self, self_test_handler, NULL);
+               self_connect_after__bleh (self, self_test_handler, NULL);
+               test_object_connect_data__bleh (self, self_test_handler, NULL, NULL, 0);
+               self_connect_data__bleh (self, self_test_handler, NULL, NULL, 0);
 
                /* testing multiple marshaller support */
                return 0;
@@ -378,11 +475,11 @@ class Test:Object from G:Object {
        }
 
        signal last NONE(CHAR,UCHAR,BOOLEAN,INT,UINT,LONG,ULONG,FLOAT,DOUBLE,
-                        STRING,ENUM,FLAGS,BOXED,POINTER,OBJECT)
+                        STRING,ENUM,POINTER,OBJECT)
        void
        testargs(self, gchar a, guchar b, gboolean c, gint d, guint e, glong f,
                 gulong g, gfloat h, gdouble i, gchar * j, gint k,
-                guint l, gpointer m, gpointer o, GObject *p)
+                gpointer o, GObject *p)
        {
                /* ugh, testing casting */
        }