/
render.go
69 lines (50 loc) · 1.15 KB
/
render.go
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package main
import termbox "github.com/nsf/termbox-go"
var renderers map[state]renderer
var currentRenderer renderer
func registerRenderers() {
renderers = make(map[state]renderer)
renderers[drawState] = drawingRenderer
renderers[paletteState] = paletteRenderer
renderers[modeState] = modeRenderer
renderers[brushState] = brushRenderer
//renderers[menuBarState] = menuBarRenderer
//renderers[menuState] = menuRenderer
//renderers[dialogState] = dialogRenderer
}
func drawingRenderer() {
drawing.render()
//statusBarRenderer()
statusBar.Render()
cursorRenderer()
}
func cursorRenderer() {
// render cursor
// only render when inside drawing bounds
if drawing.inBounds(cursorX, cursorY) {
termbox.SetCell(cursorX, cursorY, cursorRune, cursorFg, cursorBg)
}
}
func brushRenderer() {
drawingRenderer()
// render brush dialog
brushDialog.Render()
}
func paletteRenderer() {
drawingRenderer()
// render palette dialog
paletteDialog.Render()
}
func modeRenderer() {
drawingRenderer()
// render mode dialog
modeDialog.Render()
}
func menuBarRenderer() {
// top of screen
renderMenuBar()
}
func menuRenderer() {
}
func dialogRenderer() {
}