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 }