aboutsummaryrefslogtreecommitdiff
path: root/internal/model/enums.go
blob: a29cf84a41c78824c406078984a156a7dd150460 (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
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
70
71
72
73
74
75
76
77
78
79
80
81
package model

type Tool int

const (
	ToolBrush Tool = iota
	ToolSelect
	ToolErase
	ToolFill
	ToolLine
	ToolRect
	ToolCircle
	ToolText
)

func (t Tool) String() string {
	switch t {
	case ToolBrush:
		return "Brush"
	case ToolSelect:
		return "Select"
	case ToolErase:
		return "Erase"
	case ToolFill:
		return "Fill"
	case ToolLine:
		return "Line"
	case ToolRect:
		return "Rectangle"
	case ToolCircle:
		return "Circle"
	case ToolText:
		return "Text"
	}
	return ""
}

type Mode int

const (
	ModeNormal Mode = iota
	ModeDialog
	ModeLinePreview
	ModeRectPreview
	ModeCirclePreview
	ModeTextEdit
)

type DialogType int

const (
	DialogNone DialogType = iota
	DialogSaveAs
	DialogOpenMap
	DialogResize
	DialogQuitConfirm
	DialogDeleteSubmapConfirm
	DialogRenameSymbol
	DialogRenameMap
	DialogFileSave
	DialogFileOpen
)

func Clamp(v, lo, hi int) int {
	if v < lo {
		return lo
	}
	if v > hi {
		return hi
	}
	return v
}

func ContainsInt(s []int, v int) bool {
	for _, x := range s {
		if x == v {
			return true
		}
	}
	return false
}