diff options
Diffstat (limited to 'src/gui')
35 files changed, 135 insertions, 2 deletions
diff --git a/src/gui/widgets/basiccontainer2.cpp b/src/gui/widgets/basiccontainer2.cpp index e78584585..4a4184f2c 100644 --- a/src/gui/widgets/basiccontainer2.cpp +++ b/src/gui/widgets/basiccontainer2.cpp @@ -92,6 +92,11 @@ void BasicContainer2::draw(Graphics* graphics) BLOCK_END("BasicContainer2::draw") } +void BasicContainer2::safeDraw(Graphics* graphics) +{ + BasicContainer2::draw(graphics); +} + void BasicContainer2::setOpaque(bool opaque) { mOpaque = opaque; diff --git a/src/gui/widgets/basiccontainer2.h b/src/gui/widgets/basiccontainer2.h index 49371cfa7..435f00c43 100644 --- a/src/gui/widgets/basiccontainer2.h +++ b/src/gui/widgets/basiccontainer2.h @@ -153,6 +153,8 @@ class BasicContainer2: public BasicContainer void draw(Graphics* graphics) override; + void safeDraw(Graphics* graphics) override; + protected: /** * True if the container is opaque, false otherwise. diff --git a/src/gui/widgets/browserbox.cpp b/src/gui/widgets/browserbox.cpp index 47f9821b7..d12a3038c 100644 --- a/src/gui/widgets/browserbox.cpp +++ b/src/gui/widgets/browserbox.cpp @@ -549,6 +549,11 @@ void BrowserBox::draw(Graphics *graphics) BLOCK_END("BrowserBox::draw") } +void BrowserBox::safeDraw(Graphics *graphics) +{ + BrowserBox::draw(graphics); +} + int BrowserBox::calcHeight() { unsigned int y = mPadding; diff --git a/src/gui/widgets/browserbox.h b/src/gui/widgets/browserbox.h index d8e0f0748..7769d6e9c 100644 --- a/src/gui/widgets/browserbox.h +++ b/src/gui/widgets/browserbox.h @@ -123,6 +123,8 @@ class BrowserBox final : public Widget, */ void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + void updateHeight(); /** diff --git a/src/gui/widgets/checkbox.cpp b/src/gui/widgets/checkbox.cpp index e2141058c..27e7d563b 100644 --- a/src/gui/widgets/checkbox.cpp +++ b/src/gui/widgets/checkbox.cpp @@ -184,6 +184,11 @@ void CheckBox::draw(Graphics *const graphics) BLOCK_END("CheckBox::draw") } +void CheckBox::safeDraw(Graphics *const graphics) +{ + CheckBox::draw(graphics); +} + void CheckBox::updateAlpha() { const float alpha = std::max(settings.guiAlpha, diff --git a/src/gui/widgets/checkbox.h b/src/gui/widgets/checkbox.h index 0aa3a6faf..5555046ba 100644 --- a/src/gui/widgets/checkbox.h +++ b/src/gui/widgets/checkbox.h @@ -111,6 +111,8 @@ class CheckBox final : public Widget, */ void draw(Graphics *const graphics) override final; + void safeDraw(Graphics *const graphics) override final; + /** * Update the alpha value to the checkbox components. */ diff --git a/src/gui/widgets/dropdown.cpp b/src/gui/widgets/dropdown.cpp index 81729c58d..ddd409c3a 100644 --- a/src/gui/widgets/dropdown.cpp +++ b/src/gui/widgets/dropdown.cpp @@ -289,6 +289,11 @@ void DropDown::draw(Graphics* graphics) BLOCK_END("DropDown::draw") } +void DropDown::safeDraw(Graphics* graphics) +{ + DropDown::draw(graphics); +} + void DropDown::drawFrame(Graphics *graphics) { BLOCK_START("DropDown::drawFrame") diff --git a/src/gui/widgets/dropdown.h b/src/gui/widgets/dropdown.h index 7f101e3e6..5f12cca31 100644 --- a/src/gui/widgets/dropdown.h +++ b/src/gui/widgets/dropdown.h @@ -81,6 +81,8 @@ class DropDown final : public ActionListener, void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + void drawFrame(Graphics *graphics) override final; // Inherited from KeyListener diff --git a/src/gui/widgets/extendedlistbox.cpp b/src/gui/widgets/extendedlistbox.cpp index 6dabc0584..7f74ab01f 100644 --- a/src/gui/widgets/extendedlistbox.cpp +++ b/src/gui/widgets/extendedlistbox.cpp @@ -215,6 +215,11 @@ void ExtendedListBox::draw(Graphics *graphics) BLOCK_END("ExtendedListBox::draw") } +void ExtendedListBox::safeDraw(Graphics *graphics) +{ + ExtendedListBox::draw(graphics); +} + void ExtendedListBox::adjustSize() { if (mHeight) diff --git a/src/gui/widgets/extendedlistbox.h b/src/gui/widgets/extendedlistbox.h index c7541eed4..aca0ba8a8 100644 --- a/src/gui/widgets/extendedlistbox.h +++ b/src/gui/widgets/extendedlistbox.h @@ -44,6 +44,8 @@ class ExtendedListBox final : public ListBox */ void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + void adjustSize() override; int getSelectionByMouse(const int y) const override final; diff --git a/src/gui/widgets/guitable.cpp b/src/gui/widgets/guitable.cpp index 5314dc95f..4f8b89027 100644 --- a/src/gui/widgets/guitable.cpp +++ b/src/gui/widgets/guitable.cpp @@ -347,6 +347,11 @@ void GuiTable::draw(Graphics* graphics) BLOCK_END("GuiTable::draw") } +void GuiTable::safeDraw(Graphics* graphics) +{ + GuiTable::draw(graphics); +} + void GuiTable::moveToTop(Widget *widget) { Widget::moveToTop(widget); diff --git a/src/gui/widgets/guitable.h b/src/gui/widgets/guitable.h index 2257a8cb0..af94c4ec9 100644 --- a/src/gui/widgets/guitable.h +++ b/src/gui/widgets/guitable.h @@ -112,6 +112,8 @@ class GuiTable final : public Widget, // Inherited from Widget void draw(Graphics* graphics) override final; + void safeDraw(Graphics* graphics) override final; + Widget *getWidgetAt(int x, int y) override final A_WARN_UNUSED; void moveToTop(Widget *child) override final; diff --git a/src/gui/widgets/icon.cpp b/src/gui/widgets/icon.cpp index 1d5de684d..4be9ae127 100644 --- a/src/gui/widgets/icon.cpp +++ b/src/gui/widgets/icon.cpp @@ -82,3 +82,15 @@ void Icon::draw(Graphics *graphics) } BLOCK_END("Icon::draw") } + +void Icon::safeDraw(Graphics *graphics) +{ + BLOCK_START("Icon::draw") + if (mImage) + { + graphics->drawImage(mImage, + (mDimension.width - mImage->mBounds.w) / 2, + (mDimension.height - mImage->mBounds.h) / 2); + } + BLOCK_END("Icon::draw") +} diff --git a/src/gui/widgets/icon.h b/src/gui/widgets/icon.h index 29c17edef..bb2101b01 100644 --- a/src/gui/widgets/icon.h +++ b/src/gui/widgets/icon.h @@ -69,6 +69,8 @@ class Icon final : public Widget */ void draw(Graphics *g) override final; + void safeDraw(Graphics *g) override final; + private: Image *mImage; }; diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 7fbe9970c..ee95f1e61 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -339,6 +339,11 @@ void ItemContainer::draw(Graphics *graphics) BLOCK_END("ItemContainer::draw") } +void ItemContainer::safeDraw(Graphics *graphics) +{ + ItemContainer::draw(graphics); +} + void ItemContainer::selectNone() { dragDrop.clear(); diff --git a/src/gui/widgets/itemcontainer.h b/src/gui/widgets/itemcontainer.h index 302eeaea7..8b30e5f8b 100644 --- a/src/gui/widgets/itemcontainer.h +++ b/src/gui/widgets/itemcontainer.h @@ -76,6 +76,8 @@ class ItemContainer final : public Widget, */ void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + // KeyListener void keyPressed(KeyEvent &event) override final; void keyReleased(KeyEvent &event) override final; diff --git a/src/gui/widgets/label.cpp b/src/gui/widgets/label.cpp index 2addac309..abe7b62b6 100644 --- a/src/gui/widgets/label.cpp +++ b/src/gui/widgets/label.cpp @@ -186,6 +186,11 @@ void Label::draw(Graphics* graphics) BLOCK_END("Label::draw") } +void Label::safeDraw(Graphics* graphics) +{ + Label::draw(graphics); +} + void Label::adjustSize() { const Font *const font = getFont(); diff --git a/src/gui/widgets/label.h b/src/gui/widgets/label.h index 813248da8..29280e17a 100644 --- a/src/gui/widgets/label.h +++ b/src/gui/widgets/label.h @@ -110,6 +110,8 @@ class Label final : public Widget, */ void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + void adjustSize(); void setForegroundColor(const Color &color); diff --git a/src/gui/widgets/listbox.cpp b/src/gui/widgets/listbox.cpp index d4b6f7a76..4d7befa8c 100644 --- a/src/gui/widgets/listbox.cpp +++ b/src/gui/widgets/listbox.cpp @@ -272,6 +272,11 @@ void ListBox::keyPressed(KeyEvent &event) } } +void ListBox::safeDraw(Graphics *graphics) +{ + ListBox::draw(graphics); +} + // Don't do anything on scrollwheel. ScrollArea will deal with that. void ListBox::mouseWheelMovedUp(MouseEvent &event A_UNUSED) diff --git a/src/gui/widgets/listbox.h b/src/gui/widgets/listbox.h index 105f569cf..6e3cd2015 100644 --- a/src/gui/widgets/listbox.h +++ b/src/gui/widgets/listbox.h @@ -110,6 +110,8 @@ class ListBox notfinal : public Widget, */ void draw(Graphics *graphics) override; + void safeDraw(Graphics *graphics) override; + /** * Update the alpha value to the graphic components. */ diff --git a/src/gui/widgets/playerbox.cpp b/src/gui/widgets/playerbox.cpp index 4775e266f..09ebe610d 100644 --- a/src/gui/widgets/playerbox.cpp +++ b/src/gui/widgets/playerbox.cpp @@ -138,6 +138,11 @@ void PlayerBox::draw(Graphics *graphics) BLOCK_END("PlayerBox::draw") } +void PlayerBox::safeDraw(Graphics *graphics) +{ + PlayerBox::draw(graphics); +} + void PlayerBox::drawFrame(Graphics *graphics) { BLOCK_START("PlayerBox::drawFrame") diff --git a/src/gui/widgets/playerbox.h b/src/gui/widgets/playerbox.h index 0eabda203..f428fcbfa 100644 --- a/src/gui/widgets/playerbox.h +++ b/src/gui/widgets/playerbox.h @@ -78,6 +78,8 @@ class PlayerBox final : public Widget, */ void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + /** * Draws the background and border of the scroll area. */ diff --git a/src/gui/widgets/progressindicator.cpp b/src/gui/widgets/progressindicator.cpp index abcb12fda..a3df73b8a 100644 --- a/src/gui/widgets/progressindicator.cpp +++ b/src/gui/widgets/progressindicator.cpp @@ -79,3 +79,8 @@ void ProgressIndicator::draw(Graphics *graphics) } BLOCK_END("ProgressIndicator::draw") } + +void ProgressIndicator::safeDraw(Graphics *graphics) +{ + ProgressIndicator::draw(graphics); +} diff --git a/src/gui/widgets/progressindicator.h b/src/gui/widgets/progressindicator.h index 2bee3ca43..cc278e8a2 100644 --- a/src/gui/widgets/progressindicator.h +++ b/src/gui/widgets/progressindicator.h @@ -45,6 +45,8 @@ class ProgressIndicator final : public Widget void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + private: SimpleAnimation *mIndicator; }; diff --git a/src/gui/widgets/radiobutton.cpp b/src/gui/widgets/radiobutton.cpp index 5b9ce7aca..30749da66 100644 --- a/src/gui/widgets/radiobutton.cpp +++ b/src/gui/widgets/radiobutton.cpp @@ -249,6 +249,11 @@ void RadioButton::draw(Graphics* graphics) BLOCK_END("RadioButton::draw") } +void RadioButton::safeDraw(Graphics* graphics) +{ + RadioButton::draw(graphics); +} + void RadioButton::mouseEntered(MouseEvent& event A_UNUSED) { mHasMouse = true; diff --git a/src/gui/widgets/radiobutton.h b/src/gui/widgets/radiobutton.h index d33634546..ab586b2d4 100644 --- a/src/gui/widgets/radiobutton.h +++ b/src/gui/widgets/radiobutton.h @@ -114,6 +114,8 @@ class RadioButton final : public Widget, */ void draw(Graphics* graphics) override final; + void safeDraw(Graphics* graphics) override final; + /** * Called when the mouse enteres the widget area. */ diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp index 081b61aae..0afa71033 100644 --- a/src/gui/widgets/tabbedarea.cpp +++ b/src/gui/widgets/tabbedarea.cpp @@ -189,6 +189,19 @@ void TabbedArea::draw(Graphics *graphics) BLOCK_END("TabbedArea::draw") } +void TabbedArea::safeDraw(Graphics *graphics) +{ + BLOCK_START("TabbedArea::draw") + if (mTabs.empty()) + { + BLOCK_END("TabbedArea::draw") + return; + } + + drawChildren(graphics); + BLOCK_END("TabbedArea::draw") +} + Widget *TabbedArea::getWidget(const std::string &name) const { TabContainer::const_iterator itr = mTabs.begin(); diff --git a/src/gui/widgets/tabbedarea.h b/src/gui/widgets/tabbedarea.h index 7c192dac9..0950d740b 100644 --- a/src/gui/widgets/tabbedarea.h +++ b/src/gui/widgets/tabbedarea.h @@ -104,6 +104,8 @@ class TabbedArea final : public ActionListener, */ void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + /** * Return how many tabs have been created. * diff --git a/src/gui/widgets/textbox.cpp b/src/gui/widgets/textbox.cpp index 82713ec86..60d8bd13b 100644 --- a/src/gui/widgets/textbox.cpp +++ b/src/gui/widgets/textbox.cpp @@ -470,6 +470,11 @@ void TextBox::draw(Graphics* graphics) BLOCK_END("TextBox::draw") } +void TextBox::safeDraw(Graphics* graphics) +{ + TextBox::draw(graphics); +} + void TextBox::setForegroundColor(const Color &color) { mForegroundColor = color; diff --git a/src/gui/widgets/textbox.h b/src/gui/widgets/textbox.h index 1f085d0c6..611efd4a0 100644 --- a/src/gui/widgets/textbox.h +++ b/src/gui/widgets/textbox.h @@ -109,6 +109,8 @@ class TextBox final : public Widget, void draw(Graphics* graphics) override final; + void safeDraw(Graphics* graphics) override final; + void setForegroundColor(const Color &color); void setForegroundColorAll(const Color &color1, diff --git a/src/gui/widgets/textfield.cpp b/src/gui/widgets/textfield.cpp index 603485f65..49d3fd412 100644 --- a/src/gui/widgets/textfield.cpp +++ b/src/gui/widgets/textfield.cpp @@ -206,6 +206,11 @@ void TextField::draw(Graphics *graphics) BLOCK_END("TextField::draw") } +void TextField::safeDraw(Graphics *graphics) +{ + TextField::draw(graphics); +} + void TextField::drawFrame(Graphics *graphics) { BLOCK_START("TextField::drawFrame") diff --git a/src/gui/widgets/textfield.h b/src/gui/widgets/textfield.h index bb512e281..2b5f4196f 100644 --- a/src/gui/widgets/textfield.h +++ b/src/gui/widgets/textfield.h @@ -105,6 +105,8 @@ class TextField notfinal : public Widget, */ void draw(Graphics *graphics) override; + void safeDraw(Graphics *graphics) override; + /** * Update the alpha value to the graphic components. */ diff --git a/src/gui/widgets/textpreview.cpp b/src/gui/widgets/textpreview.cpp index 5c829ecd7..d07ae4e7f 100644 --- a/src/gui/widgets/textpreview.cpp +++ b/src/gui/widgets/textpreview.cpp @@ -138,6 +138,11 @@ void TextPreview::draw(Graphics* graphics) BLOCK_END("TextPreview::draw") } +void TextPreview::safeDraw(Graphics* graphics) +{ + TextPreview::draw(graphics); +} + void TextPreview::adjustSize() { setHeight(getFont()->getHeight() + 2 * mPadding); diff --git a/src/gui/widgets/textpreview.h b/src/gui/widgets/textpreview.h index e83790e68..62e3d1cd1 100644 --- a/src/gui/widgets/textpreview.h +++ b/src/gui/widgets/textpreview.h @@ -102,6 +102,8 @@ class TextPreview final : public Widget */ void draw(Graphics *graphics) override final; + void safeDraw(Graphics *graphics) override final; + /** * Set opacity for this widget (whether or not to show the background * color) diff --git a/src/gui/widgets/widget.h b/src/gui/widgets/widget.h index 86e54510f..723811e66 100644 --- a/src/gui/widgets/widget.h +++ b/src/gui/widgets/widget.h @@ -122,8 +122,7 @@ class Widget notfinal : public Widget2 */ virtual void draw(Graphics* graphics) = 0; - virtual void safeDraw(Graphics* graphics) - { draw(graphics); } + virtual void safeDraw(Graphics* graphics) = 0; /** * Called when a widget is given a chance to draw a frame around itself. |