X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/7231d76fbf4ae0b501af648e1216b88714aa7353..573256d3bc21896c54c511d5c0e6927f09b4209e:/src/test.gob diff --git a/src/test.gob b/src/test.gob index 8c7cf85..a885f4f 100644 --- a/src/test.gob +++ b/src/test.gob @@ -26,6 +26,7 @@ requires 1.99.0 %{ #include +#include /* 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,58 @@ 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; + +enum BUBLE { + KEIN = 0, + STANDARD, + STANDARD_RO, + KOMPLETT, + ALT +} Buble:Enum; + +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 +121,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 +159,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 +191,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 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 int j; public GObject * h; @@ -173,10 +274,13 @@ class Test:Object from G:Object { } private - int + char * test_handler (self, GObject *w, int h, gpointer data) { - return -1; + data = w = NULL; + h = 0; + + return NULL; } /** @@ -191,9 +295,16 @@ 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); + + wid = NULL; + h = 0; /* testing multiple marshaller support */ return 0; @@ -235,14 +346,17 @@ class Test:Object from G:Object { }*/ public int consttest(self, const gchar *text, ...) { + text = NULL; return 25; } public int consttest2(self, gchar const *text, ...) { + text = NULL; return 25; } public int consttest3(self, G:Object const *wid (check null type)) { + wid = NULL; return 25; } public int consttest4(const self) @@ -270,10 +384,14 @@ class Test:Object from G:Object { } public int consttest9(const self, int i, double b) { + b = 0.0; + i = 0; return 25; } public int consttest10(self const, int i, double b) { + b = 0.0; + i = 0; return 25; } signal private first NONE (NONE) @@ -315,26 +433,32 @@ class Test:Object from G:Object { { puts("TEST3"); self_googlegoogle(self); + if (some_array[0]) return; } private virtual void testprivvirtual2(self, const int some_array[5][8][9]) { /* nothing here */ + if (some_array[0]) return; } public virtual void testpublicvirtual(self, int const some_array[5][8][9]) { /* nothing here */ + if (some_array[0]) return; } protected virtual void testprotectedvirtual(self, int some_array[5][8][9]) { /* nothing here */ + if (some_array[0]) return; } - signal first NONE (POINTER) - void testarrsignal(self, long arr[8]) + signal first NONE (POINTER, ENUM) + void testarrsignal(self, long arr[8], Buble:Enum foo) { /* foo */ + arr[0] = 1; + foo = BUBLE_KEIN; } /* testing empty func */ @@ -378,12 +502,16 @@ 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) { + h = i = k = 0; + a = b = c = d = e = f = g = 0; + o = p = (GObject *)NULL; + j = (char *)NULL; /* ugh, testing casting */ } @@ -401,6 +529,15 @@ class Test:Object from G:Object { return FALSE; } + /* some more enum testing */ + public BubleEnum buble; + property ENUM buble + (nick = "Buble", + blurb = "Buble", + enum_type = Buble:Enum, + default_value = BUBLE_STANDARD, + link, export); + /* testing types */ public int t1; public long int t2;