-
Notifications
You must be signed in to change notification settings - Fork 35
Events
virtual void mouseDownEvent (Tempest::MouseEvent& event);Called, when a mouse clicks on this widget or finger touches it. Traverse mode: leafs-to-root.
virtual void mouseUpEvent (Tempest::MouseEvent& event);Symmetrical to mouseDownEvent, will be called on same widget which receives mouseDownEvent previously.
Traverse mode: direct.
virtual void mouseMoveEvent (Tempest::MouseEvent& event);Called, when a mouse moves over the widget, if mouseDragEvent is not processed.
Traverse mode: leafs-to-root.
virtual void mouseDragEvent (Tempest::MouseEvent& event);Called, when a mouse moves over the widget, if mouseDownEvent was received by this widget previously.
Traverse mode: direct.
virtual void mouseWheelEvent (Tempest::MouseEvent& event);Called, when a mouse wheel state changed. The receiver-widget going to be determinate using same traverse mode as mouseDownEvent.
Traverse mode: leafs-to-root.
virtual void keyDownEvent (Tempest::MouseEvent& event);Called, when a key pressed on keyboard. Key-repeat event, from OS, will be ignored. Traverse mode: focus.
virtual void keyUpEvent (Tempest::MouseEvent& event);Symmetrical to keyDownEvent, will be called on same widget which receives keyDownEvent with same scan-code previously.
Traverse mode: direct.
virtual void paintEvent (Tempest::MouseEvent& event);Called, when widget has to be redrawn. Traverse mode: root-to-leafs.
virtual void resizeEvent (Tempest::MouseEvent& event);Called, when widget size has changed. Traverse mode: direct.
virtual void focusEvent (Tempest::MouseEvent& event);Called, when widget focus has changed. Traverse mode: direct.
- direct: target widget is known upfront.
- focus: target widget is widget with keyboard focus
- leafs-to-root: child widget is checked first; parent after
- root-to-leafs: parent widget is checked first; child's after
class Example:public Widget {
void mouseDownEvent(MouseEvent& event) override {
Log::i("mouse pressed at: x = ",event.x,", y = ",event.y);
}
};class Example:public Widget {
void mouseUpEvent(MouseEvent& event) override {
// error: mouseUpEvent will never be called because mouseDownEvent is not handled
Log::i("mouse clicked at: x = ",event.x,", y = ",event.y);
}
};class Example:public Widget {
void mouseDownEvent(MouseEvent& event) override {
event.accept();
}
void mouseDragEvent(MouseEvent& event) override {
// will be called only while mouse button is holded
Log::i("mouse at: x = ",event.x,", y = ",event.y);
}
};