|
- #pragma once
- #include <list>
-
- #include "util/math.hpp"
-
-
- namespace rack {
-
-
- struct Widget;
-
-
- struct Event {
- /** Set this to true to signal that no other widgets should receive the event */
- bool consumed = false;
- };
-
- struct EventPosition : Event {
- Vec pos;
- };
-
- ///////////
-
- struct EventMouseDown : EventPosition {
- int button;
- /** The widget which responded to the click. Set it to `this` if consumed. */
- Widget *target = NULL;
- };
-
- struct EventMouseUp : EventPosition {
- /** 0 for left mouse button, 1 for right, 2 for middle */
- int button;
- Widget *target = NULL;
- };
-
- struct EventMouseMove : EventPosition {
- Vec mouseRel;
- Widget *target = NULL;
- };
-
- struct EventHoverKey : EventPosition {
- int key;
- Widget *target = NULL;
- };
-
- struct EventMouseEnter : Event {
- };
-
- struct EventMouseLeave : Event {
- };
-
- struct EventFocus : Event {
- };
-
- struct EventDefocus : Event {
- };
-
- struct EventText : Event {
- int codepoint;
- };
-
- struct EventKey : Event {
- int key;
- };
-
- struct EventScroll : EventPosition {
- Vec scrollRel;
- };
-
- /////////////
-
- struct EventDragStart : Event {
- };
-
- struct EventDragEnd : Event {
- };
-
- struct EventDragMove : Event {
- Vec mouseRel;
- };
-
- struct EventDragEnter : Event {
- Widget *origin = NULL;
- };
-
- struct EventDragLeave : Event {
- Widget *origin = NULL;
- };
-
- struct EventDragDrop : Event {
- Widget *origin = NULL;
- };
-
- struct EventPathDrop : EventPosition {
- std::list<std::string> paths;
- };
-
- struct EventAction : Event {
- };
-
- struct EventChange : Event {
- };
-
- struct EventZoom : Event {
- };
-
-
- } // namespace rack
|