Mouse events
Several kinds of mouse events can be generated for the View
Event | Constant | Description |
---|---|---|
"mouse-down" | MouseDown | The mouse button was pressed. |
"mouse-up" | MouseUp | The mouse button has been released. |
"mouse-move" | MouseMove | Mouse cursor moved |
"mouse-out" | MouseOut | The mouse cursor has moved outside the View, or entered the child View |
"mouse-over" | MouseOver | The mouse cursor has moved within the area of View |
"click-event" | ClickEvent | There was a mouse click |
"double-click-event" | DoubleClickEvent | There was a double mouse click |
"context-menu-event" | ContextMenuEvent | The key for calling the context menu (right mouse button) is pressed |
The main event data listener has the following format:
func(View, MouseEvent) where the second argument describes the parameters of the mouse event. The MouseEvent structure has the following fields:
Field | Type | Description |
---|---|---|
TimeStamp | uint64 | The time the event was created (in milliseconds). The starting point depends on the browser implementation (EPOCH, browser launch, etc.). |
Button | int | The number of the mouse button clicked on which triggered the event |
Buttons | int | Bitmask showing which mouse buttons were pressed when the event occurred |
X | float64 | The horizontal position of the mouse relative to the origin View |
Y | float64 | The vertical position of the mouse relative to the origin View |
ClientX | float64 | Horizontal position of the mouse relative to the upper left corner of the application |
ClientY | float64 | The vertical position of the mouse relative to the upper left corner of the application |
ScreenX | float64 | Horizontal position of the mouse relative to the upper left corner of the screen |
ScreenY | float64 | Vertical position of the mouse relative to the upper left corner of the screen |
CtrlKey | bool | The Ctrl key was active when the event occurred. |
ShiftKey | bool | The Shift key was active when the event occurred. |
AltKey | bool | The Alt (Option or ⌥ in OS X) key was active when the event occurred. |
MetaKey | bool | The Meta key (for Mac this is the ⌘ Command key, for Windows is the Windows key ⊞) was active when the event occurred. |
Button field can take the following values
Value | Constant | Description |
---|---|---|
<0 | No buttons pressed | |
0 | PrimaryMouseButton | Main button. Usually the left mouse button (can be changed in the OS settings) |
1 | AuxiliaryMouseButton | Auxiliary button (wheel or middle mouse button) |
2 | SecondaryMouseButton | Secondary button. Usually the right mouse button (can be changed in the OS settings) |
3 | MouseButton4 | Fourth mouse button. Usually the browser's Back button |
4 | MouseButton5 | Fifth mouse button. Usually the browser button Forward |
The Button field is a bit mask combining (using OR) the following values
Value | Constant | Description |
---|---|---|
1 | PrimaryMouseMask | Main button |
2 | SecondaryMouseMask | Secondary button |
4 | AuxiliaryMouseMask | Auxiliary button |
8 | MouseMask4 | Fourth button |
16 | MouseMask5 | Fifth button |
You can also use listeners in the following formats:
- func(MouseEvent)
- func(View)
- func()
You can get lists of listeners for mouse events using the functions:
func GetMouseDownListeners(view View, subviewID ...string) []func(View, MouseEvent) func GetMouseUpListeners(view View, subviewID ...string) []func(View, MouseEvent) func GetMouseMoveListeners(view View, subviewID ...string) []func(View, MouseEvent) func GetMouseOverListeners(view View, subviewID ...string) []func(View, MouseEvent) func GetMouseOutListeners(view View, subviewID ...string) []func(View, MouseEvent) func GetClickListeners(view View, subviewID ...string) []func(View, MouseEvent) func GetDoubleClickListeners(view View, subviewID ...string) []func(View, MouseEvent) func GetContextMenuListeners(view View, subviewID ...string) []func(View, MouseEvent)