You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #pragma once
- #include "widget/Widget.hpp"
-
-
- namespace rack {
- namespace widget {
-
-
- /** A Widget that stops propagation of all recursive PositionEvents but gives a chance for children to consume first.
- Also consumes Hover and Button for left-clicks.
- */
- struct OpaqueWidget : Widget {
- void onHover(const event::Hover &e) override {
- Widget::onHover(e);
- e.stopPropagating();
- // Consume if not consumed by child
- if (!e.isConsumed())
- e.consume(this);
- }
- void onButton(const event::Button &e) override {
- Widget::onButton(e);
- e.stopPropagating();
- if (e.button == GLFW_MOUSE_BUTTON_LEFT) {
- // Consume if not consumed by child
- if (!e.isConsumed())
- e.consume(this);
- }
- }
- void onHoverKey(const event::HoverKey &e) override {
- Widget::onHoverKey(e);
- e.stopPropagating();
- }
- void onHoverText(const event::HoverText &e) override {
- Widget::onHoverText(e);
- e.stopPropagating();
- }
- void onHoverScroll(const event::HoverScroll &e) override {
- Widget::onHoverScroll(e);
- e.stopPropagating();
- }
- void onDragHover(const event::DragHover &e) override {
- Widget::onDragHover(e);
- e.stopPropagating();
- // Consume if not consumed by child
- if (!e.isConsumed())
- e.consume(this);
- }
- void onPathDrop(const event::PathDrop &e) override {
- Widget::onPathDrop(e);
- e.stopPropagating();
- }
- };
-
-
- } // namespace widget
- } // namespace rack
|