Added Builder example
This commit is contained in:
parent
8dbad94581
commit
00a254887d
3 changed files with 192 additions and 1 deletions
31
examples/builder.nim
Normal file
31
examples/builder.nim
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# https://developer.gnome.org/gtk3/stable/ch01s03.html
|
||||
# builder.nim -- application style example using builder/glade xml file for user interface
|
||||
# nim c builder.nim
|
||||
import gintro/[gtk, glib, gobject, gio]
|
||||
|
||||
proc hello(b: Button; msg: string) =
|
||||
echo "Hello", msg
|
||||
|
||||
proc quitApp(b: Button; app: Application) =
|
||||
echo "Bye"
|
||||
quit(app)
|
||||
|
||||
proc appActivate(app: Application) =
|
||||
let builder = newBuilder()
|
||||
discard builder.addFromFile("builder.ui")
|
||||
let window = builder.getApplicationWindow("window")
|
||||
window.setApplication(app)
|
||||
var button = builder.getButton("button1")
|
||||
button.connect("clicked", hello, "")
|
||||
button = builder.getButton("button2")
|
||||
button.connect("clicked", hello, " again...")
|
||||
button = builder.getButton("quit")
|
||||
button.connect("clicked", quitApp, app)
|
||||
#showAll(window)
|
||||
|
||||
proc main =
|
||||
let app = newApplication("org.gtk.example")
|
||||
connect(app, "activate", appActivate)
|
||||
discard run(app)
|
||||
|
||||
main()
|
||||
45
examples/builder.ui
Normal file
45
examples/builder.ui
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<interface>
|
||||
<object id="window" class="GtkApplicationWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="title">Grid</property>
|
||||
<property name="border-width">10</property>
|
||||
<child>
|
||||
<object id="grid" class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object id="button1" class="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="label">Button 1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object id="button2" class="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="label">Button 2</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object id="quit" class="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="label">Quit</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">1</property>
|
||||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
Loading…
Add table
Add a link
Reference in a new issue