X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/4cda31fc14f41746b4f3ced7015f9f15e0168dfc..0f7ec1e61526025bc5441210f6f2f9e6995c8bac:/src/test.gob diff --git a/src/test.gob b/src/test.gob index b900902..9c981eb 100644 --- a/src/test.gob +++ b/src/test.gob @@ -3,12 +3,21 @@ look in here to see a whole array of different syntax options, but don't expect this to be an easy to read file */ -requires 1.99.0 +requires 2.0.18 + +%ct{ + /* very very top of C file useful for "config.h" sort of like alltop + * but only for C file */ +%} %at{ /* ALL TOP */ %} +%ctop{ + /* Just like ct above */ +%} + %headertop{ /* this should go on the very top of the header */ @@ -23,6 +32,11 @@ requires 1.99.0 /* this should go into the private header as well*/ %} +%afterdecls{ + /* between the declarations and the method implementations */ +%} + + %{ #include @@ -92,7 +106,7 @@ enum BUBLE { ALT } Buble:Enum; -class Test:Object from G:Object +class Test:Object from /*G:Object*/ Gtk:Container (interface Gtk:Tree:Model) /* We can add more interfaces by adding more lines like the above */ /* Note that there must exist a GtkTreeModelIface structure */ @@ -154,7 +168,9 @@ class Test:Object from G:Object private char a_property; property CHAR a_property - (nick = _("Nick"), + ( + name="a-property", + nick = _("Nick"), blurb = _("Blurb"), minimum = 'a', maximum = 'Z', @@ -241,9 +257,11 @@ class Test:Object from G:Object public int wagawaga_should_be_after_this_in_the_header; init(object) { - object->i=0; + object->i=0; + } + class_init(klass) { + /*IN CLASS INIT */ } - class_init(klass); /** * new: @@ -278,12 +296,24 @@ class Test:Object from G:Object * * Returns: new object **/ - signal last STRING (POINTER, INT) + signal last STRING "bleh-signal" (POINTER, INT) char * bleh(self, G:Object * wid (check null type), int h (check > 0)) { return self_blah(self,wid,h) > 0 ? g_strdup ("foo") : g_strdup ("bar"); } + constructor(self) { + /* constructor stuff */ + } + + dispose(self) { + /* dispose stuff */ + } + + finalize(self) { + /* finalize stuff */ + } + private char * test_handler (self, GObject *w, int h, gpointer data) @@ -351,10 +381,23 @@ class Test:Object from G:Object return NULL; } virtual int beh(self, int h (check > 0)); - /*override(G:Object) void add(Gtk:Container * self (check null type), - Gtk:Widget * wid (check null type)) { + override(Gtk:Container) + void add(Gtk:Container * self (check null type), + Gtk:Widget * wid (check null type)) { PARENT_HANDLER(self,wid); - }*/ + } + + override(G:Object) + void dispatch_properties_changed (G:Object *object, + guint n_pspecs, + GParamSpec **pspecs) + { + object = NULL; + n_pspecs = 0; + pspecs = NULL; + /* EKI! */ + } + public int consttest(self, const gchar *text, ...) { text = NULL; @@ -405,6 +448,58 @@ class Test:Object from G:Object i = 0; return 25; } + public gchar *funcattrtest(self, const char *format (check null), ...) + attr {G_GNUC_PRINTF (2, 3)} + { + gchar *result; + + va_list ap; + va_start(ap, format); + result = g_strdup_vprintf (format, ap); + va_end(ap); + return result; + } + private gchar *funcattrtest2(self, const char *format, ...) + attr {G_GNUC_SCANF(2,3)} + { + gchar *nonsense = NULL; + format = format; + return nonsense; + } + protected gchar *funcattrtest3(self, const char *format) + attr {G_GNUC_FORMAT (2)} + { + gchar *nonsense = NULL; + format = format; + return nonsense; + } + private char *funcattrtest4(self, const char *format, ...) + attr {G_GNUC_PRINTF(2,3)} + onerror NULL + { + gchar *nonsense = NULL; + format = format; + return nonsense; + } + protected char * funcattrtest5(self, const char *format, ...) + onerror NULL + attr {G_GNUC_PRINTF(2,3)} + { + gchar *nonsense = NULL; + format = format; + return nonsense; + } + public char * funcattrtest6(self, const char *format, ...) + attr {G_GNUC_PRINTF(2,3)} + onerror NULL + { + gchar *nonsense = NULL; + format = format; + return nonsense; + } + // Note that the parser should accept defreturn with function + // attributes as well, but this may not be a good thing since + // it probably doesn't make sense, so we don't test it. signal private first NONE (NONE) void googlegoogle(self) {