1 module builder.builderTest;
2 
3 import gio.Application: GioApplication = Application;
4 
5 import gtk.Application;
6 import gtk.ApplicationWindow;
7 import gtk.Builder;
8 import gtk.Button;
9 
10 import std.stdio;
11 import core.stdc.stdlib;
12 
13 /**
14  * Usage ./gladeText /path/to/your/glade/file.glade
15  *
16  */
17 
18 int main(string[] args) {
19 	string gladefile;
20 	if(args.length > 1) {
21 		writefln("Loading %s", args[1]);
22 		gladefile = args[1];
23 	} else {
24 		writeln("No glade file specified, using default \"builderTest.glade\"");
25 		gladefile = "builderTest.glade";
26 	}
27 	auto application = new Application("org.gtkd.demo.builder.builderTest", GApplicationFlags.FLAGS_NONE);
28 
29 	void buildAndDisplay(GioApplication a) {
30 		auto builder = new Builder();
31 		if( ! builder.addFromFile(gladefile) ) {
32 			writeln("Oops, could not create Glade object, check your glade file ;)");
33 			exit(1);
34 		}
35 		auto window = cast(ApplicationWindow)builder.getObject("window");
36 		window.setApplication(application);
37 		if (window !is null) {
38 			window.setTitle("This is a glade application window");
39 			auto button = cast(Button)builder.getObject("button");
40 			if(button !is null) {
41 				button.addOnClicked( delegate void(Button aux){ a.quit(); } );
42 				window.showAll();
43 			} else {
44 				writeln("No button in the window?");
45 				exit(1);
46 			}
47 		} else {
48 			writeln("No window?");
49 			exit(1);
50 		}
51 	}
52 
53 	application.addOnActivate(&buildAndDisplay);
54 	return application.run(args);
55 }