%{
#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
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;
argument POINTER testingstring stringlink;
public Test:Object * testingobj
- destroywith g_object_unref;
+ 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;
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
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); };
+
private int j;
public GObject * h;
}
private
- int
+ char *
test_handler (self, GObject *w, int h, gpointer data)
{
- return -1;
+ data = w = NULL;
+ h = 0;
+
+ return NULL;
}
/**
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;
}*/
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)
}
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)
{
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 */
}
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 */
}
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;