import gtk.Button;
import gtk.Window;
import gtkui;
voidmain()
{
auto ui = newUI;
ui.addOnQuit({ ui.exitLoop(); });
ui.runLoop();
}
classUI : MainBuilderUI
{
mixin GtkBuilderHelper;
@gtkwidget Window mwindow;
@gtkwidget Button addbtn;
@gtksignal void someAction()
{
/+ do something +/
}
this()
{
super(import("main.glade"));
addbtn.addOnClicked((b) { /+ do something +/ });
setupMainWindow(mwindow);
}
}For more information see small (~130 lines with comments) example
Signals in glade file should not contain
User data, otherwise this will crash program.If you want to use parameters from signal method you must be sure of their count and order, otherwise wrong count or order of parameters will crash program.
Parameter of signal method must be gtk pointers (not wraps from gtkD).
If you want don't use parameters for signal method be sure what this signal receive only two parameters (gtk widget and user data), otherwise you should specify parameters.