summaryrefslogtreecommitdiff
path: root/action.go
blob: e6311f9af995ee6e48e617afbaddc179868f5090 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package widget

type Action struct {
	ActionType ActionType
	WidgetType WidgetType

	WidgetId int
	ParentId int

	State State

	// Text string  // what is visable to the user
	ProgName string // a name useful for programming

	// most primitive widgets just store a single thing
	Value any

	// how to arrange widgets
	Direction Orientation

	// All the strings for things like dropdown menus
	// They must be sent in display order
	// These must be unique
	Strings []string

	Range RangeType

	// RETHINK / REDO EVERYTHING BELOW HERE
	// This is used for things like a slider(0,100)
	X int
	Y int

	// This is for the grid size & widget position
	W   int
	H   int
	AtW int
	AtH int

	// Put space around elements to improve look & feel
	// Margin	bool avoided due to use of action types
	// Pad	bool

	// Make widgets fill up the space available
	Expand bool

	TablePB []byte // a table protobuf
	WidgetPB []byte // a tree of widgets
}

type ActionType int // Add, SetText, Click, Hide, Append, Delete, etc

const (
	Add ActionType = iota + 1
	Delete
	SetText
	AddText
	Checked
	Show
	Hide
	Enable
	Disable
	SetMargin
	Margin
	Unmargin
	SetPad
	Pad
	Unpad
	SetExpand
	Append
	Move
	Dump
	User         // the user did something (mouse, keyboard, etc)
	ToolkitLoad  // attempts to load a new toolkit
	ToolkitInit  // initializes the toolkit
	ToolkitClose // closes the toolkit
	ToolkitPanic
	Heartbeat
	CloseWindow
	UserQuit    // the user closed the GUI
	EnableDebug // open the debugging window
)

func (s ActionType) String() string {
	switch s {
	case Add:
		return "Add"
	case Delete:
		return "Delete"
	case SetText:
		return "SetText"
	case AddText:
		return "AddText"
	case Show:
		return "Show"
	case Hide:
		return "Hide"
	case Enable:
		return "Enable"
	case Disable:
		return "Disable"
	case Margin:
		return "Margin"
	case Unmargin:
		return "Unmargin"
	case Pad:
		return "Pad"
	case Unpad:
		return "Unpad"
	case Append:
		return "Append"
	case Move:
		return "Move"
	case Dump:
		return "Dump"
	}
	return "ActionType.String() Error"
}