diff --git a/src/debugger/gui/DataGridWidget.cxx b/src/debugger/gui/DataGridWidget.cxx index 877d96c6a..63c637ecd 100644 --- a/src/debugger/gui/DataGridWidget.cxx +++ b/src/debugger/gui/DataGridWidget.cxx @@ -240,20 +240,6 @@ void DataGridWidget::setRange(int lower, int upper) _upperBound = std::min(1 << _bits, upper); } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void DataGridWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void DataGridWidget::handleMouseLeft() -{ - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void DataGridWidget::handleMouseDown(int x, int y, MouseButton b, int clickCount) { diff --git a/src/debugger/gui/DataGridWidget.hxx b/src/debugger/gui/DataGridWidget.hxx index 82eca7fbc..9096879f3 100644 --- a/src/debugger/gui/DataGridWidget.hxx +++ b/src/debugger/gui/DataGridWidget.hxx @@ -101,8 +101,6 @@ class DataGridWidget : public EditableWidget void handleMouseDown(int x, int y, MouseButton b, int clickCount) override; void handleMouseUp(int x, int y, MouseButton b, int clickCount) override; void handleMouseWheel(int x, int y, int direction) override; - void handleMouseEntered() override; - void handleMouseLeft() override; bool handleText(char text) override; bool handleKeyDown(StellaKey key, StellaMod mod) override; bool handleKeyUp(StellaKey key, StellaMod mod) override; diff --git a/src/debugger/gui/RomListWidget.cxx b/src/debugger/gui/RomListWidget.cxx index 473df388e..58d392ee9 100644 --- a/src/debugger/gui/RomListWidget.cxx +++ b/src/debugger/gui/RomListWidget.cxx @@ -284,20 +284,6 @@ void RomListWidget::handleMouseWheel(int x, int y, int direction) myScrollBar->handleMouseWheel(x, y, direction); } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void RomListWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void RomListWidget::handleMouseLeft() -{ - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool RomListWidget::handleText(char text) { diff --git a/src/debugger/gui/RomListWidget.hxx b/src/debugger/gui/RomListWidget.hxx index ec557f606..37473d12f 100644 --- a/src/debugger/gui/RomListWidget.hxx +++ b/src/debugger/gui/RomListWidget.hxx @@ -60,8 +60,6 @@ class RomListWidget : public EditableWidget void handleMouseDown(int x, int y, MouseButton b, int clickCount) override; void handleMouseUp(int x, int y, MouseButton b, int clickCount) override; void handleMouseWheel(int x, int y, int direction) override; - void handleMouseEntered() override; - void handleMouseLeft() override; bool handleText(char text) override; bool handleKeyDown(StellaKey key, StellaMod mod) override; bool handleKeyUp(StellaKey key, StellaMod mod) override; diff --git a/src/debugger/gui/TiaZoomWidget.cxx b/src/debugger/gui/TiaZoomWidget.cxx index 759e95516..0895c51a8 100644 --- a/src/debugger/gui/TiaZoomWidget.cxx +++ b/src/debugger/gui/TiaZoomWidget.cxx @@ -178,19 +178,11 @@ void TiaZoomWidget::handleMouseMoved(int x, int y) } } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void TiaZoomWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void TiaZoomWidget::handleMouseLeft() { - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); myMouseMoving = false; + Widget::handleMouseLeft(); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/debugger/gui/TiaZoomWidget.hxx b/src/debugger/gui/TiaZoomWidget.hxx index d4d3a9835..7169645bf 100644 --- a/src/debugger/gui/TiaZoomWidget.hxx +++ b/src/debugger/gui/TiaZoomWidget.hxx @@ -34,9 +34,6 @@ class TiaZoomWidget : public Widget, public CommandSender void loadConfig() override; void setPos(int x, int y); - protected: - void handleMouseEntered() override; - private: void zoom(int level); void recalc(); diff --git a/src/debugger/gui/ToggleWidget.cxx b/src/debugger/gui/ToggleWidget.cxx index ea3253d8a..4f9ddccfa 100644 --- a/src/debugger/gui/ToggleWidget.cxx +++ b/src/debugger/gui/ToggleWidget.cxx @@ -40,20 +40,6 @@ ToggleWidget::ToggleWidget(GuiObject* boss, const GUI::Font& font, Widget::FLAG_WANTS_RAWDATA; } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void ToggleWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void ToggleWidget::handleMouseLeft() -{ - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void ToggleWidget::handleMouseDown(int x, int y, MouseButton b, int clickCount) { diff --git a/src/debugger/gui/ToggleWidget.hxx b/src/debugger/gui/ToggleWidget.hxx index 67777a13a..0d6759467 100644 --- a/src/debugger/gui/ToggleWidget.hxx +++ b/src/debugger/gui/ToggleWidget.hxx @@ -68,8 +68,6 @@ class ToggleWidget : public Widget, public CommandSender void handleMouseDown(int x, int y, MouseButton b, int clickCount) override; void handleMouseUp(int x, int y, MouseButton b, int clickCount) override; - void handleMouseEntered() override; - void handleMouseLeft() override; bool handleKeyDown(StellaKey key, StellaMod mod) override; void handleCommand(CommandSender* sender, int cmd, int data, int id) override; diff --git a/src/gui/CheckListWidget.cxx b/src/gui/CheckListWidget.cxx index 079989376..6d80fcc07 100644 --- a/src/gui/CheckListWidget.cxx +++ b/src/gui/CheckListWidget.cxx @@ -46,20 +46,6 @@ CheckListWidget::CheckListWidget(GuiObject* boss, const GUI::Font& font, } } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void CheckListWidget::handleMouseEntered() -{ - setFlags(Widget::FLAG_HILITED); - setDirty(); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void CheckListWidget::handleMouseLeft() -{ - clearFlags(Widget::FLAG_HILITED); - setDirty(); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void CheckListWidget::setList(const StringList& list, const BoolArray& state) { diff --git a/src/gui/CheckListWidget.hxx b/src/gui/CheckListWidget.hxx index 625875a9d..2ebec0d5d 100644 --- a/src/gui/CheckListWidget.hxx +++ b/src/gui/CheckListWidget.hxx @@ -42,10 +42,6 @@ class CheckListWidget : public ListWidget bool getState(int line); bool getSelectedState() { return getState(_selectedItem); } - protected: - void handleMouseEntered() override; - void handleMouseLeft() override; - private: bool handleEvent(Event::Type e) override; void handleCommand(CommandSender* sender, int cmd, int data, int id) override; diff --git a/src/gui/EditTextWidget.cxx b/src/gui/EditTextWidget.cxx index d3e4587a5..61785bd78 100644 --- a/src/gui/EditTextWidget.cxx +++ b/src/gui/EditTextWidget.cxx @@ -49,20 +49,6 @@ void EditTextWidget::setText(const string& str, bool changed) _changed = changed; } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void EditTextWidget::handleMouseEntered() -{ - if(isEnabled() && isEditable()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void EditTextWidget::handleMouseLeft() -{ - if(isEnabled() && isEditable()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void EditTextWidget::handleMouseDown(int x, int y, MouseButton b, int clickCount) { diff --git a/src/gui/EditTextWidget.hxx b/src/gui/EditTextWidget.hxx index fe063e042..e7c21beff 100644 --- a/src/gui/EditTextWidget.hxx +++ b/src/gui/EditTextWidget.hxx @@ -54,8 +54,6 @@ class EditTextWidget : public EditableWidget Common::Rect getEditRect() const override; void handleMouseDown(int x, int y, MouseButton b, int clickCount) override; - void handleMouseEntered() override; - void handleMouseLeft() override; protected: string _backupString; diff --git a/src/gui/GuiObject.hxx b/src/gui/GuiObject.hxx index c276698f8..490df4344 100644 --- a/src/gui/GuiObject.hxx +++ b/src/gui/GuiObject.hxx @@ -52,7 +52,8 @@ class GuiObject : public CommandReceiver FLAG_RETAIN_FOCUS = 1 << 6, FLAG_WANTS_TAB = 1 << 7, FLAG_WANTS_RAWDATA = 1 << 8, - FLAG_NOBG = 1 << 9 + FLAG_NOBG = 1 << 9, + FLAG_MOUSE_FOCUS = 1 << 10 }; public: diff --git a/src/gui/PopUpWidget.cxx b/src/gui/PopUpWidget.cxx index ccf6af1aa..06c726779 100644 --- a/src/gui/PopUpWidget.cxx +++ b/src/gui/PopUpWidget.cxx @@ -158,20 +158,6 @@ void PopUpWidget::handleMouseWheel(int x, int y, int direction) } } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void PopUpWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void PopUpWidget::handleMouseLeft() -{ - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool PopUpWidget::handleEvent(Event::Type e) { diff --git a/src/gui/PopUpWidget.hxx b/src/gui/PopUpWidget.hxx index deb0af30c..babe28686 100644 --- a/src/gui/PopUpWidget.hxx +++ b/src/gui/PopUpWidget.hxx @@ -70,8 +70,6 @@ class PopUpWidget : public EditableWidget protected: void handleMouseDown(int x, int y, MouseButton b, int clickCount) override; void handleMouseWheel(int x, int y, int direction) override; - void handleMouseEntered() override; - void handleMouseLeft() override; bool handleEvent(Event::Type e) override; void handleCommand(CommandSender* sender, int cmd, int data, int id) override; diff --git a/src/gui/ScrollBarWidget.cxx b/src/gui/ScrollBarWidget.cxx index 04a99c732..73e89bc78 100644 --- a/src/gui/ScrollBarWidget.cxx +++ b/src/gui/ScrollBarWidget.cxx @@ -240,19 +240,11 @@ void ScrollBarWidget::checkBounds(int old_pos) } } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void ScrollBarWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void ScrollBarWidget::handleMouseLeft() { _part = Part::None; - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); + Widget::handleMouseLeft(); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gui/ScrollBarWidget.hxx b/src/gui/ScrollBarWidget.hxx index 1d1b4c34a..0c29fde17 100644 --- a/src/gui/ScrollBarWidget.hxx +++ b/src/gui/ScrollBarWidget.hxx @@ -49,7 +49,6 @@ class ScrollBarWidget : public Widget, public CommandSender void handleMouseUp(int x, int y, MouseButton b, int clickCount) override; void handleMouseMoved(int x, int y) override; bool handleMouseClicks(int x, int y, MouseButton b) override; - void handleMouseEntered() override; void handleMouseLeft() override; void setArrows(); diff --git a/src/gui/StringListWidget.cxx b/src/gui/StringListWidget.cxx index 5032654e6..ad5f1e7ec 100644 --- a/src/gui/StringListWidget.cxx +++ b/src/gui/StringListWidget.cxx @@ -50,20 +50,6 @@ void StringListWidget::setList(const StringList& list) ListWidget::recalc(); } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void StringListWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void StringListWidget::handleMouseLeft() -{ - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void StringListWidget::drawWidget(bool hilite) { diff --git a/src/gui/StringListWidget.hxx b/src/gui/StringListWidget.hxx index ee3b56e97..ed5874b91 100644 --- a/src/gui/StringListWidget.hxx +++ b/src/gui/StringListWidget.hxx @@ -33,8 +33,6 @@ class StringListWidget : public ListWidget bool wantsFocus() const override { return true; } protected: - void handleMouseEntered() override; - void handleMouseLeft() override; // display depends on _hasFocus so we have to redraw when focus changes void receivedFocusWidget() override { setDirty(); } void lostFocusWidget() override { setDirty(); } diff --git a/src/gui/TabWidget.cxx b/src/gui/TabWidget.cxx index 5e96338ab..28b383f6c 100644 --- a/src/gui/TabWidget.cxx +++ b/src/gui/TabWidget.cxx @@ -213,20 +213,6 @@ void TabWidget::handleMouseDown(int x, int y, MouseButton b, int clickCount) } } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void TabWidget::handleMouseEntered() -{ - //if(isEnabled()) - // setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void TabWidget::handleMouseLeft() -{ - //if(isEnabled()) - // clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void TabWidget::handleCommand(CommandSender* sender, int cmd, int data, int id) { diff --git a/src/gui/TabWidget.hxx b/src/gui/TabWidget.hxx index 1f581df5c..141b29497 100644 --- a/src/gui/TabWidget.hxx +++ b/src/gui/TabWidget.hxx @@ -63,8 +63,8 @@ class TabWidget : public Widget, public CommandSender protected: void handleMouseDown(int x, int y, MouseButton b, int clickCount) override; - void handleMouseEntered() override; - void handleMouseLeft() override; + void handleMouseEntered() override {} + void handleMouseLeft() override {} void handleCommand(CommandSender* sender, int cmd, int data, int id) override; bool handleEvent(Event::Type event) override; diff --git a/src/gui/Widget.cxx b/src/gui/Widget.cxx index f37f8840c..991207655 100644 --- a/src/gui/Widget.cxx +++ b/src/gui/Widget.cxx @@ -75,12 +75,8 @@ void Widget::tick() { if(isEnabled()) { - if(isHighlighted() && hasToolTip()) + if(hasMouseFocus() && hasToolTip()) dialog().tooltip().request(this); - //{ - // if(dialog().enableToolTip()) - // dialog().showToolTip(10, 10); - //} // Recursively tick widget and all child dialogs and widgets Widget* w = _firstWidget; @@ -181,6 +177,20 @@ void Widget::drawChain() } } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void Widget::handleMouseEntered() +{ + if(isEnabled()) + setFlags(Widget::FLAG_HILITED | Widget::FLAG_MOUSE_FOCUS); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void Widget::handleMouseLeft() +{ + if(isEnabled()) + clearFlags(Widget::FLAG_HILITED | Widget::FLAG_MOUSE_FOCUS); +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void Widget::receivedFocus() { @@ -465,20 +475,6 @@ ButtonWidget::ButtonWidget(GuiObject* boss, const GUI::Font& font, _bmh = bmh; } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void ButtonWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void ButtonWidget::handleMouseLeft() -{ - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool ButtonWidget::handleEvent(Event::Type e) { @@ -576,20 +572,6 @@ CheckboxWidget::CheckboxWidget(GuiObject* boss, const GUI::Font& font, setFill(CheckboxWidget::FillType::Normal); } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void CheckboxWidget::handleMouseEntered() -{ - if(isEnabled()) - setFlags(Widget::FLAG_HILITED); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void CheckboxWidget::handleMouseLeft() -{ - if(isEnabled()) - clearFlags(Widget::FLAG_HILITED); -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void CheckboxWidget::handleMouseUp(int x, int y, MouseButton b, int clickCount) { diff --git a/src/gui/Widget.hxx b/src/gui/Widget.hxx index 98e36863f..bf831a5eb 100644 --- a/src/gui/Widget.hxx +++ b/src/gui/Widget.hxx @@ -58,8 +58,8 @@ class Widget : public GuiObject virtual bool handleKeyUp(StellaKey key, StellaMod mod) { return false; } virtual void handleMouseDown(int x, int y, MouseButton b, int clickCount) { } virtual void handleMouseUp(int x, int y, MouseButton b, int clickCount) { } - virtual void handleMouseEntered() { } - virtual void handleMouseLeft() { } + virtual void handleMouseEntered(); + virtual void handleMouseLeft(); virtual void handleMouseMoved(int x, int y) { } virtual void handleMouseWheel(int x, int y, int direction) { } virtual bool handleMouseClicks(int x, int y, MouseButton b) { return false; } @@ -88,6 +88,7 @@ class Widget : public GuiObject bool isEnabled() const { return _flags & FLAG_ENABLED; } bool isVisible() const override { return !(_flags & FLAG_INVISIBLE); } bool isHighlighted() const { return _flags & FLAG_HILITED; } + bool hasMouseFocus() const { return _flags & FLAG_MOUSE_FOCUS; } virtual bool wantsFocus() const { return _flags & FLAG_RETAIN_FOCUS; } bool wantsTab() const { return _flags & FLAG_WANTS_TAB; } bool wantsRaw() const { return _flags & FLAG_WANTS_RAWDATA; } @@ -231,8 +232,6 @@ class ButtonWidget : public StaticTextWidget, public CommandSender bool handleMouseClicks(int x, int y, MouseButton b) override; void handleMouseDown(int x, int y, MouseButton b, int clickCount) override; void handleMouseUp(int x, int y, MouseButton b, int clickCount) override; - void handleMouseEntered() override; - void handleMouseLeft() override; bool handleEvent(Event::Type event) override; void drawWidget(bool hilite) override; @@ -273,8 +272,6 @@ class CheckboxWidget : public ButtonWidget bool getState() const { return _state; } void handleMouseUp(int x, int y, MouseButton b, int clickCount) override; - void handleMouseEntered() override; - void handleMouseLeft() override; static int boxSize(const GUI::Font& font) {