import gtk.Button;
import gtk.Window;
import gtkui;
void main()
{
auto ui = new UI;
ui.addOnQuit({ ui.exitLoop(); });
ui.runLoop();
}
class UI : 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.