summaryrefslogtreecommitdiff
path: root/examples/example_08_timers.nim
blob: 51c117c2e03ab3842729cc61287f7ee76bf12a26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# This example shows how to use timers.

import nigui

app.init()

var window = newWindow()

var mainContainer = newLayoutContainer(Layout_Vertical)
window.add(mainContainer)
var buttonContainer = newLayoutContainer(Layout_Horizontal)
mainContainer.add(buttonContainer)

var textArea = newTextArea()
mainContainer.add(textArea)

var timer: Timer
var counter = 1

proc timerProc(event: TimerEvent) =
  textArea.addLine($counter)
  counter.inc()

var button1 = newButton("startTimer()")
buttonContainer.add(button1)
button1.onClick = proc(event: ClickEvent) =
  timer = startTimer(500, timerProc)

var button2 = newButton("startRepeatingTimer()")
buttonContainer.add(button2)
button2.onClick = proc(event: ClickEvent) =
  timer = startRepeatingTimer(500, timerProc)

var button3 = newButton("stopTimer()")
buttonContainer.add(button3)
button3.onClick = proc(event: ClickEvent) =
  timer.stop()

window.show()

app.run()