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 		args = args[0..1];
24 	} else {
25 		writeln("No glade file specified, using default \"builderTest.glade\"");
26 		gladefile = "builderTest.glade";
27 	}
28 	auto application = new Application("org.gtkd.demo.builder.builderTest", GApplicationFlags.FLAGS_NONE);
29 
30 	void buildAndDisplay(GioApplication a) {
31 		auto builder = new Builder();
32 		if( ! builder.addFromFile(gladefile) ) {
33 			writeln("Oops, could not create Glade object, check your glade file ;)");
34 			exit(1);
35 		}
36 		auto window = cast(ApplicationWindow)builder.getObject("window");
37 		if (window !is null) {
38 			window.setApplication(application);
39 			window.setTitle("This is a glade application window");
40 			auto button = cast(Button)builder.getObject("button");
41 			if(button !is null) {
42 				button.addOnClicked( delegate void(Button aux){ a.quit(); } );
43 				window.showAll();
44 			} else {
45 				writeln("No button in the window?");
46 				exit(1);
47 			}
48 		} else {
49 			writeln("No window?");
50 			exit(1);
51 		}
52 	}
53 
54 	application.addOnActivate(&buildAndDisplay);
55 	return application.run(args);
56 }