|
|
@@ -95,8 +95,7 @@ struct TextBase { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs every frame when the mouse is hovering over a Widget. |
|
|
|
Recurses until consumed. |
|
|
|
If `target` is set, other events may occur on that Widget. |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct Hover : Base, PositionBase { |
|
|
|
/** Change in mouse position since the last frame. Can be zero. */ |
|
|
@@ -105,8 +104,7 @@ struct Hover : Base, PositionBase { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs each mouse button press or release. |
|
|
|
Recurses until consumed. |
|
|
|
If `target` is set, other events may occur on that Widget. |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct Button : Base, PositionBase { |
|
|
|
/** GLFW_MOUSE_BUTTON_LEFT, GLFW_MOUSE_BUTTON_RIGHT, GLFW_MOUSE_BUTTON_MIDDLE, etc. */ |
|
|
@@ -118,28 +116,29 @@ struct Button : Base, PositionBase { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when the left mouse button is pressed the second time within a time and position window. |
|
|
|
/** Occurs when the left mouse button is pressed a second time on the same Widget within a time duration. |
|
|
|
Must set the Button target to receive this event. |
|
|
|
*/ |
|
|
|
struct DoubleClick : Base { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when a key is pressed, released, or repeated while the mouse is hovering a Widget. |
|
|
|
Recurses until consumed. |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct HoverKey : Base, PositionBase, KeyBase { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when a character is typed while the mouse is hovering a Widget. |
|
|
|
Recurses until consumed. |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct HoverText : Base, PositionBase, TextBase { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when the mouse scroll wheel is moved while the mouse is hovering a Widget. |
|
|
|
Recurses until consumed. |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct HoverScroll : Base, PositionBase { |
|
|
|
/** Change of scroll wheel position. */ |
|
|
@@ -149,25 +148,28 @@ struct HoverScroll : Base, PositionBase { |
|
|
|
|
|
|
|
/** Occurs when a Widget begins consuming the Hover event. |
|
|
|
Must consume to set the widget as hovered. |
|
|
|
Must set the Hover target to receive this event. |
|
|
|
*/ |
|
|
|
struct Enter : Base { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when a different Widget is entered. |
|
|
|
Must set the Enter target to receive this event. |
|
|
|
*/ |
|
|
|
struct Leave : Base { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when a Widget begins consuming the Button press event for the left mouse button. |
|
|
|
Must consume to set the widget as selected. |
|
|
|
Must set the Button target to receive this event. |
|
|
|
*/ |
|
|
|
struct Select : Base { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when a different Widget is selected. |
|
|
|
Must set the Select target to receive this event. |
|
|
|
*/ |
|
|
|
struct Deselect : Base { |
|
|
|
}; |
|
|
@@ -175,6 +177,7 @@ struct Deselect : Base { |
|
|
|
|
|
|
|
/** Occurs when a key is pressed, released, or repeated while a Widget is selected. |
|
|
|
If consumed, a HoverKey event will not be triggered. |
|
|
|
Must set the Select target to receive this event. |
|
|
|
*/ |
|
|
|
struct SelectKey : Base, KeyBase { |
|
|
|
}; |
|
|
@@ -182,30 +185,34 @@ struct SelectKey : Base, KeyBase { |
|
|
|
|
|
|
|
/** Occurs when text is typed while a Widget is selected. |
|
|
|
If consumed, a HoverText event will not be triggered. |
|
|
|
Must set the Select target to receive this event. |
|
|
|
*/ |
|
|
|
struct SelectText : Base, TextBase { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
struct DragBase : Base { |
|
|
|
/** The mouse button held during the drag. */ |
|
|
|
/** The mouse button held while dragging. */ |
|
|
|
int button; |
|
|
|
}; |
|
|
|
|
|
|
|
/** Occurs when a Widget begins being dragged. |
|
|
|
Must consume to set the widget as dragged. |
|
|
|
Must set the Button target to receive this event. |
|
|
|
*/ |
|
|
|
struct DragStart : DragBase { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when a Widget stops being dragged by releasing the mouse button. |
|
|
|
Must set the DragStart target to receive this event. |
|
|
|
*/ |
|
|
|
struct DragEnd : DragBase { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs every frame on the dragged Widget. |
|
|
|
Must set the DragStart target to receive this event. |
|
|
|
*/ |
|
|
|
struct DragMove : DragBase { |
|
|
|
/** Change in mouse position since the last frame. Can be zero. */ |
|
|
@@ -214,7 +221,8 @@ struct DragMove : DragBase { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs every frame when the mouse is hovering over a Widget while another Widget (possibly the same one) is being dragged. |
|
|
|
Recurses until consumed. |
|
|
|
Recurses. |
|
|
|
Must set the DragStart target to receive this event. |
|
|
|
*/ |
|
|
|
struct DragHover : DragBase, PositionBase { |
|
|
|
/** The dragged widget */ |
|
|
@@ -225,6 +233,7 @@ struct DragHover : DragBase, PositionBase { |
|
|
|
|
|
|
|
/** Occurs when the mouse enters a Widget while dragging. |
|
|
|
Must consume to set the widget as drag-hovered. |
|
|
|
Must set the DragStart target to receive this event. |
|
|
|
*/ |
|
|
|
struct DragEnter : DragBase { |
|
|
|
/** The dragged widget */ |
|
|
@@ -233,6 +242,7 @@ struct DragEnter : DragBase { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when the mouse leaves a Widget while dragging. |
|
|
|
Must set the DragStart target to receive this event. |
|
|
|
*/ |
|
|
|
struct DragLeave : DragBase { |
|
|
|
/** The dragged widget */ |
|
|
@@ -241,6 +251,7 @@ struct DragLeave : DragBase { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when the mouse button is released over a Widget while dragging. |
|
|
|
Must set the DragStart target to receive this event. |
|
|
|
*/ |
|
|
|
struct DragDrop : DragBase { |
|
|
|
/** The dragged widget */ |
|
|
@@ -249,7 +260,7 @@ struct DragDrop : DragBase { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs when a selection of files from the operating system is dropped onto a Widget. |
|
|
|
Recurses until consumed. |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct PathDrop : Base, PositionBase { |
|
|
|
PathDrop(const std::vector<std::string> &paths) : paths(paths) {} |
|
|
@@ -260,21 +271,21 @@ struct PathDrop : Base, PositionBase { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs after a certain action is triggered on a Widget. |
|
|
|
The concept of an "action" is dependent on the type of Widget. |
|
|
|
The concept of an "action" is defined by the type of Widget. |
|
|
|
*/ |
|
|
|
struct Action : Base { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs after the value of a Widget changes. |
|
|
|
The concept of a "value" is dependent on the type of Widget. |
|
|
|
The concept of a "value" is defined by the type of Widget. |
|
|
|
*/ |
|
|
|
struct Change : Base { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs after the zoom level of a Widget is changed. |
|
|
|
Recurses until consumed. |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct Zoom : Base { |
|
|
|
}; |
|
|
@@ -305,12 +316,14 @@ struct Remove : Base { |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs after a Widget is shown with Widget::show(). |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct Show : Base { |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** Occurs after a Widget is hidden with Widget::hide(). |
|
|
|
Recurses. |
|
|
|
*/ |
|
|
|
struct Hide : Base { |
|
|
|
}; |
|
|
|