/* * This is an example button widget which counts the number of clicks * * It is also showing how you can use inline gtk-doc like documentation * which will be correctly translated and put into the resulting source * file */ class Gtk:Button:Count from Gtk:Button { public int count; argument INT count get { ARG = self->count; } set { self->count = ARG; }; init(self) { self->count = 0; } /** * new: * * Makes a new #GtkButtonCount widget * * Returns: a new widget **/ public GtkWidget * new(void) { /* It's ok to use a normal cast here, as we are sure that we * have gotten the right type */ return (GtkWidget *)GET_NEW; } /** * new_with_label: * @label: the label text * * Makes a new #GtkButtonCount widget with a label * * Returns: a new widget **/ public GtkWidget * new_with_label(char *label (check null)) onerror NULL { /* It's ok to use a normal cast here, as we are sure that we * have gotten the right type */ GtkWidget *widget = (GtkWidget *)GET_NEW; GtkWidget *label_widget = gtk_label_new(label); gtk_container_add(GTK_CONTAINER(widget), label_widget); gtk_widget_show(label_widget); return widget; } override (Gtk:Button) void clicked(Gtk:Button *self (check null type)) { GtkButtonCount *bc = GTK_BUTTON_COUNT(self); bc->count++; PARENT_HANDLER(self); } }