class Gtk:Button:Count from Gtk:Button { public int count; argument INT count get { ARG = self->count; } set { self->count = ARG; }; init(button) { button->count = 0; } public GtkWidget * new(void) { return GTK_WIDGET(GET_NEW); } /* new button but with a label inside it already, the 'label' argument must not be NULL or we will return NULL */ public GtkWidget * new_with_label(char *label (check null)) onerror NULL { return GTK_WIDGET(GET_NEW); } override (Gtk:Button) void clicked(Gtk:Button *self (check null type)) { GtkButtonCount *bc = GTK_BUTTON_COUNT(self); bc->count++; PARENT_HANDLER(self); } }