first try
This commit is contained in:
parent
045ec51e97
commit
0ea089d432
21 changed files with 108883 additions and 2 deletions
18
examples/app0.nim
Normal file
18
examples/app0.nim
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# app0.nim -- minimal application style example
|
||||
# nim c app0.nim
|
||||
import gintro/gtk
|
||||
import gintro/gio except Application, newApplication # we want to use GTK application
|
||||
#from gintro/gio import ApplicationFlags, scActivate, run
|
||||
|
||||
proc activate(app: Application) =
|
||||
let window = newApplicationWindow(app)
|
||||
window.title = "GTK3 & Nim"
|
||||
window.defaultSize = (200, 200)
|
||||
showAll(window)
|
||||
|
||||
proc main =
|
||||
let app = newApplication("org.gtk.example")
|
||||
connect(app, "activate", activate)
|
||||
discard run(app)
|
||||
|
||||
main()
|
||||
23
examples/button.nim
Normal file
23
examples/button.nim
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# nim c button.nim
|
||||
import gintro/[gtk, glib]
|
||||
import gintro/gio except Application, newApplication
|
||||
|
||||
proc buttonClicked (button: Button) =
|
||||
button.label = utf8Strreverse(button.label, -1)
|
||||
|
||||
proc activate (app: Application) =
|
||||
let window = newApplicationWindow(app)
|
||||
window.title = "GNOME Button"
|
||||
window.defaultSize = (250, 50)
|
||||
let button = newButton("Click Me")
|
||||
window.add(button)
|
||||
button.connect("clicked", buttonClicked)
|
||||
window.showAll
|
||||
|
||||
proc main =
|
||||
let app = newApplication("org.gtk.example")
|
||||
connect(app, "activate", activate)
|
||||
discard app.run
|
||||
|
||||
main()
|
||||
|
||||
54
examples/connect_args.nim
Normal file
54
examples/connect_args.nim
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# nim c connect_args.nim
|
||||
import gintro/[gtk, glib]
|
||||
import gintro/gio except Application, newApplication
|
||||
|
||||
type
|
||||
O = object
|
||||
i: int
|
||||
|
||||
proc b1Callback(button: Button; str: string) =
|
||||
echo str
|
||||
|
||||
proc b2Callback(button: Button; o: O) =
|
||||
echo "Value of field i in object o = ", o.i
|
||||
|
||||
proc b3Callback(button: Button; r: ref O) =
|
||||
echo "Value of field i in ref to object O = ", r.i
|
||||
|
||||
proc b4Callback(button: Button; w: ApplicationWindow) =
|
||||
if w.title == "Nim with GTK3":
|
||||
w.title = "GTK3 with Nim"
|
||||
else:
|
||||
w.title = "Nim with GTK3"
|
||||
|
||||
proc activate (app: Application) =
|
||||
var o: O
|
||||
var r: ref O
|
||||
new r
|
||||
o.i = 1234567
|
||||
r.i = 7654321
|
||||
let window = newApplicationWindow(app)
|
||||
let box = newBox(Orientation.vertical, 0)
|
||||
window.title = "Parameters for callbacks"
|
||||
let b1 = newButton("Nim with GTK3")
|
||||
let b2 = newButton("Passing an object from stack")
|
||||
let b3 = newButton("Passing an object from heap")
|
||||
let b4 = newButton("Passing a Widget")
|
||||
b1.connect("clicked", b1Callback, "is much fun.")
|
||||
b2.connect("clicked", b2Callback, o)
|
||||
b3.connect("clicked", b3Callback, r)
|
||||
b4.connect("clicked", b4Callback, window)
|
||||
box.add(b1)
|
||||
box.add(b2)
|
||||
box.add(b3)
|
||||
box.add(b4)
|
||||
window.add(box)
|
||||
window.showAll
|
||||
|
||||
proc main =
|
||||
let app = newApplication("org.gtk.example")
|
||||
connect(app, "activate", activate)
|
||||
discard app.run
|
||||
|
||||
main()
|
||||
|
||||
16
examples/t0.nim
Normal file
16
examples/t0.nim
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# nim c t0.nim
|
||||
import gintro/gtk
|
||||
|
||||
proc bye(w: Window) =
|
||||
mainQuit()
|
||||
echo "Bye..."
|
||||
|
||||
proc main =
|
||||
gtk.init()
|
||||
let window = newWindow()
|
||||
window.title = "First Test"
|
||||
window.connect("destroy", bye)
|
||||
window.showAll
|
||||
gtk.main()
|
||||
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue