123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- // Copyright 2019 Beoran
- //
- // Licensed under the MIT LICENSE.
- // Package event is a package that models events that occur during
- // the execution of a program.
- package event
- // Event is an interface that custom events should implement.
- // It is empty for now because there are no general methods
- // required of events yet.
- type Event interface {
- }
- // KeyCharacter is an event that occurs when a character is actually typed on
- // the keyboard. This may be provided by an input method.
- type KeyCharacter struct {
- // Code is the key code of the key typed.
- // TODO: this should change later from an int to an enumeration type.
- Code int
- // Modifiers are the modifiers pressed together with the key.
- // TODO: this should change later from an int to an enumeration type.
- Modifiers int
- // Character is the character that was typed.
- Character rune
- }
- // KeyDown is an event that occurs when a key is pressed on the keyboard.
- type KeyDown struct {
- // Code is the key code of the key pressed or released.
- // TODO: this should change later from an int to an enumeration type.
- Code int
- // Modifiers are the modifiers pressed together with the key.
- // TODO: this should change later from an int to an enumeration type.
- Modifiers int
- }
- // KeyUp is an event that occurs when a key is released on the keyboard.
- // The data is the same as for a KeyDown event.
- type KeyUp KeyDown
- // GamepadAxis is for event where an axis on a gamepad changes.
- type GamepadAxis struct {
- // ID represents which gamepad caused the event.
- ID int
- // Axis is the axis of the game pad that changed position.
- Axis int
- // Position is the psoition of the axis after the change.
- // It varies between -1.0 and 1.0.
- Position float32
- }
- // GamepadButtonDown is a gamepad button press event.
- type GamepadButtonDown struct {
- // ID represents which gamepad caused the event.
- ID int
- // Button is the button that was pressed on the game pad.
- Button int
- // Pressure is the pressure that is applied to the gamepad button.
- // It varies between 0.0 for not pressed, and 1.0 for completely pressed.
- Pressure float32
- }
- // GamepadButtonDown is a gamepad button release event.
- // The data is identical to a GamePadButtonDown event.
- type GamepadButtonUp GamepadButtonDown
- // GamepadAttach happens when a new gamepad is attached.
- type GamepadAttach struct {
- // ID represents which gamepad caused the event.
- ID int
- // Axes represents the amount of axes the gamepad has.
- Axes int
- // Buttons represents the amount of buttons the gamepad has.
- Buttons int
- }
- // GamepadDetach happens when a gamepad is detached.
- type GamepadDetach struct {
- // ID represents which gamepad caused the event.
- ID int
- }
- // MouseMove is a mouse movement event.
- type MouseMove struct {
- // X is the X position of the mouse pointer.
- // This value is expressed in device independent pixels.
- X float32
- // Y is the Y position of the mouse pointer.
- // This value is expressed in device independent pixels.
- Y float32
- // DeltaX is the change in X since the last MouseMove event.
- // This value is expressed in device independent pixels.
- DeltaX float32
- // DeltaY is the change in Y since the last MouseMove event.
- // This value is expressed in device independent pixels.
- DeltaY float32
- }
- // MouseWheel is a mouse wheel event.
- type MouseWheel struct {
- // X is the X position of the mouse wheel.
- // This value is expressed in arbitrary units.
- // It increases when the mouse wheel is scrolled downwards,
- // and decreases when the mouse is scrolled upwards.
- X float32
- // Y is the Y position of the mouse wheel.
- // This value is expressed in arbitrary units.
- // It increases when the mouse wheel is scrolled to the right,
- // and decreases when the mouse is scrolled to the left.
- Y float32
- // DeltaX is the change in X since the last MouseWheel event.
- // This value is expressed in arbitrary units.
- // It is positive when the mouse wheel is scrolled downwards,
- // and negative when the mouse is scrolled upwards.
- DeltaX float32
- // DeltaY is the change in Y since the last MouseWheel event.
- // This value is expressed in arbitrary units.
- // It is positive when the mouse wheel is scrolled to the right,
- // and negative when the mouse is scrolled to the left.
- DeltaY float32
- }
- // MouseButtonDown is a mouse button press event.
- type MouseButtonDown struct {
- // X is the X position of the mouse pointer.
- // This value is expressed in device independent pixels.
- X float32
- // Y is the Y position of the mouse pointer.
- // This value is expressed in device independent pixels.
- Y float32
- // Button is the button on the mouse that was pressed.
- // TODO: this should change later from an int to an enumeration type.
- Button int
- // Pressure is the pressure applied on the mouse button.
- // It varies between 0.0 for not pressed, and 1.0 for completely pressed.
- Pressure float32
- }
- // MouseButtonDown is a mouse button Release event.
- // The data is identical to a MouseButtonDown event.
- type MouseButtonUp MouseButtonDown
- // MouseEnter occurs when the mouse enters the view window.
- type MouseEnter struct {
- // X is the X position of the mouse pointer.
- // This value is expressed in device independent pixels.
- X float32
- // Y is the Y position of the mouse pointer.
- // This value is expressed in device independent pixels.
- Y float32
- }
- // MouseLeave occurs when the mouse leaves the view window.
- // The data is identical to MouseEnter.
- type MouseLeave MouseEnter
- // ViewUpdate occurs when the application is ready to update
- // the next frame on the view port.
- type ViewUpdate struct {
- // No data neccesary, for now.
- }
- // ViewSize occurs when the size of the application's view port changes.
- type ViewSize struct {
- // Width is the width of the view.
- // This value is expressed in device independent pixels.
- Width int
- // Height is the height of the view.
- // This value is expressed in device independent pixels.
- Height int
- }
- // TouchBegin occurs when a touch begins.
- type TouchBegin struct {
- // ID identifies the touch that caused the touch event.
- ID int
- // X is the X position of the touch.
- // This value is expressed in device independent pixels.
- X float32
- // Y is the Y position of the touch.
- // This value is expressed in device independent pixels.
- Y float32
- // Pressure is the pressure applied to the touch.
- // It varies between 0.0 for not pressed, and 1.0 for completely pressed.
- Pressure float32
- // Primary represents whether the touch event is the primary touch or not.
- // If it is true, then it is a primary touch.
- // Otherwise it is false.
- Primary bool
- }
- // TouchMove occurs when a touch moved, or in other words, is dragged.
- type TouchMove struct {
- // ID identifies the touch that caused the touch event.
- ID int
- // X is the X position of the touch.
- // This value is expressed in device independent pixels.
- X float32
- // Y is the Y position of the touch.
- // This value is expressed in device independent pixels.
- Y float32
- // DeltaX is the change in X since last touch event.
- // This value is expressed in device independent pixels.
- DeltaX float32
- // Deltay is the change in Y since last touch event.
- // This value is expressed in device independent pixels.
- DeltaY float32
- // Pressure of applied touch.
- // It varies between 0.0 for not pressed, and 1.0 for completely pressed.
- Pressure float32
- // Primary represents whether the touch event is the primary touch or not.
- // If it is true, then it is a primary touch.
- // If it is false then it is not.
- Primary bool
- }
- // TouchEnd occurs when a touch ends.
- // The data is the same as for a TouchMove event.
- type TouchEnd TouchMove
- // TouchCancel occurs when a touch is canceled.
- // This can happen in various situations, depending on the underlying platform,
- // for example when the aplication loses focus.
- type TouchCancel struct {
- // ID identifies the touch that caused the touch event.
- ID int
- }
|