/
events.go
150 lines (123 loc) · 2.5 KB
/
events.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
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package event
import (
"image"
)
type Event any
//----------
type WindowClose struct{}
type WindowResize struct{ Rect image.Rectangle }
type WindowExpose struct{ Rect image.Rectangle } // empty = full area
type WindowInput struct {
Point image.Point
Event Event
}
//----------
type MouseEnter struct{}
type MouseLeave struct{}
type MouseDown struct {
Point image.Point
Button MouseButton
Buttons MouseButtons // contains Button
Mods KeyModifiers
}
type MouseUp struct {
Point image.Point
Button MouseButton
Buttons MouseButtons // contains Button
Mods KeyModifiers
}
type MouseMove struct {
Point image.Point
Buttons MouseButtons
Mods KeyModifiers
}
type MouseDragStart struct {
Point image.Point // starting (press) point (older then point2)
Point2 image.Point // current point (move detection) (newest point)
Button MouseButton
Buttons MouseButtons // contains Button
Mods KeyModifiers
}
type MouseDragEnd struct {
Point image.Point
Button MouseButton
Buttons MouseButtons // contains Button
Mods KeyModifiers
}
type MouseDragMove struct {
Point image.Point
Buttons MouseButtons
Mods KeyModifiers
}
type MouseClick struct {
Point image.Point
Button MouseButton
Buttons MouseButtons // contains Button
Mods KeyModifiers
}
type MouseDoubleClick struct {
Point image.Point
Button MouseButton
Buttons MouseButtons // contains Button
Mods KeyModifiers
}
type MouseTripleClick struct {
Point image.Point
Button MouseButton
Buttons MouseButtons // contains Button
Mods KeyModifiers
}
//----------
type KeyDown struct {
Point image.Point
KeySym KeySym
Mods KeyModifiers
Buttons MouseButtons
Rune rune
}
type KeyUp struct {
Point image.Point
KeySym KeySym
Mods KeyModifiers
Buttons MouseButtons
Rune rune
}
//----------
// drag and drop
type DndPosition struct {
Point image.Point
Types []DndType
Reply func(DndAction)
}
type DndDrop struct {
Point image.Point
ReplyAccept func(bool)
RequestData func(DndType) ([]byte, error)
}
type DndAction int
const (
DndADeny DndAction = iota
DndACopy
DndAMove
DndALink
DndAAsk
DndAPrivate
)
type DndType int
const (
TextURLListDndT DndType = iota // a list separated by '\n'
)
//----------
type ClipboardIndex int
const (
CIPrimary ClipboardIndex = iota
CIClipboard
)
// Deprecated: in favor of ClipboardIndex
type CopyPasteIndex int
const (
CPIPrimary = CopyPasteIndex(CIPrimary)
CPIClipboard = CopyPasteIndex(CIClipboard)
)
//----------
type Handled bool