import gtk; const String CLICK_ME = "Click Me"; uint counter = 0; fn void clickedme(GtkButton *o, void *d) { (GtkLabel*)(d).set_text(string.format("You clicked me %d times", ++counter)); } fn void main(int argc, char** argv) { gtk::init(argc, argv); GtkWindow *win = gtk::windowCreate(GtkWindow.TOPLEVEL); win.set_title(CLICK_ME); GtkButton *button = gtk::buttonCreateWithLabel(CLICK_ME); GtkLabel *label = GtkLabel.new("There have been no clicks yet"); label.setSingleLineMode(true); GtkVBox vbox = gtk::vBoxCreate(true, 1); vbox.add(label); vbox.add(button); win.add(vbox); win.connectSignal("delete-event", gtk::mainQuit, NULL); button.connectSignal("clicked", &clickedme, label); win.showAll(); gtk::main(); }