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 */
/* this should go into the private header as well*/
%}
+%afterdecls{
+ /* between the declarations and the method implementations */
+%}
+
+
%{
#include <stdio.h>
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 */
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;
private char a_property;
property CHAR a_property
- (nick = _("Nick"),
+ (
+ name="a-property",
+ nick = _("Nick"),
blurb = _("Blurb"),
minimum = 'a',
maximum = 'Z',
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); };
+
private int j;
public GObject * h;
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:
*
* 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)
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;
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)
{