GtkD Code Examples
Here are some example code snippets you can compile and run.
Hello World
import gtk.MainWindow;
import gtk.Label;
import gtk.Main;
void main(string[] args)
{
Main.init(args);
MainWindow win = new MainWindow("Hello World");
win.setDefaultSize(200, 100);
win.add(new Label("Hello World"));
win.showAll();
Main.run();
}
Exit Button
import gtk.MainWindow;
import gtk.Button;
import gtk.Main;
private import stdlib = core.stdc.stdlib : exit;
class ExitButton : MainWindow
{
this()
{
super("Exit Button");
setDefaultSize(50, 30);
Button exitbtn = new Button();
exitbtn.setLabel("Exit");
exitbtn.addOnClicked(&exitProg);
add(exitbtn);
showAll();
}
void exitProg(Button button)
{
stdlib.exit(0);
}
}
void main(string[] args)
{
Main.init(args);
new ExitButton();
Main.run();
}
Popup Message
import gtk.MainWindow;
import gtk.Button;
import gtk.MessageDialog;
import gtk.Main;
class PopupMessage : MainWindow
{
this()
{
super("Popup Message");
setDefaultSize(50, 30);
add(new Button("Message", &popupMsg));
showAll();
}
void popupMsg(Button button)
{
MessageDialog d = new MessageDialog(this, GtkDialogFlags.MODAL, MessageType.INFO, ButtonsType.OK, "This is a popup message!");
d.run();
d.destroy();
}
}
void main(string[] args)
{
Main.init(args);
new PopupMessage();
Main.run();
}
Button Usage
import gtk.MainWindow;
import gtk.AboutDialog;
import gtk.Label;
import gtk.Button;
import gtk.VBox;
import gtk.Main;
private import stdlib = core.stdc.stdlib : exit;
class ButtonUsage : MainWindow
{
Label StatusLbl;
this()
{
super("Button Usage");
setDefaultSize(200, 100);
VBox box = new VBox(false, 2);
StatusLbl = new Label("Click a Button");
box.add(StatusLbl);
box.add(new Button("Button 1", &onBtn1));
box.add(new Button("Exit", &onBtn2));
box.add(new Button("About", &onBtn3));
add(box);
showAll();
}
void onBtn1(Button button)
{
StatusLbl.setText("You Clicked Button 1");
}
void onBtn2(Button button)
{
stdlib.exit(0);
}
void onBtn3(Button button)
{
with (new AboutDialog())
{
string[] names;
names ~= "Jake Day (Okibi)";
setAuthors(names);
setWebsite("http://ddev.ratedo.com");
showAll();
}
}
}
void main(string[] args)
{
Main.init(args);
new ButtonUsage();
Main.run();
}
