diff --git a/gui/balloon.cpp b/gui/balloon.cpp index 2563e6eb01..a32583257b 100644 --- a/gui/balloon.cpp +++ b/gui/balloon.cpp @@ -97,6 +97,9 @@ namespace gui void Balloon::layout() { + m_textView->setIsDirtyLayout(true); + m_imageView->setIsDirtyLayout(true); + m2::RectD tr = m_textView->roughBoundRect(); m2::RectD ir = m_imageView->roughBoundRect(); diff --git a/gui/button.cpp b/gui/button.cpp index a415bc83cc..db1f647ca5 100644 --- a/gui/button.cpp +++ b/gui/button.cpp @@ -7,6 +7,11 @@ namespace gui { + Button::Params::Params() + : m_minWidth(10), + m_minHeight(10) + {} + Button::Button(Params const & p) : Element(p) { TextView::Params tp; @@ -140,6 +145,11 @@ namespace gui m_textView->purge(); } + void Button::layout() + { + m_textView->setIsDirtyLayout(true); + } + vector const & Button::boundRects() const { if (isDirtyRect()) diff --git a/gui/button.hpp b/gui/button.hpp index 0be6bc233c..77a094f328 100644 --- a/gui/button.hpp +++ b/gui/button.hpp @@ -48,6 +48,7 @@ namespace gui unsigned m_minWidth; unsigned m_minHeight; string m_text; + Params(); }; Button(Params const & p); @@ -81,6 +82,7 @@ namespace gui void draw(graphics::OverlayRenderer * r, math::Matrix const & m) const; void purge(); + void layout(); /// @} }; diff --git a/gui/gui_tests/gui_tests.cpp b/gui/gui_tests/gui_tests.cpp index f98d9d38a0..5457a10709 100644 --- a/gui/gui_tests/gui_tests.cpp +++ b/gui/gui_tests/gui_tests.cpp @@ -74,9 +74,17 @@ struct ButtonTest bp.m_pivot = m2::PointD(200, 200); bp.m_position = graphics::EPosAbove; bp.m_text = "TestButton"; + bp.m_minWidth = 200; + bp.m_minHeight = 40; m_button.reset(new gui::Button(bp)); + m_button->setFont(gui::Element::EActive, graphics::FontDesc(16, graphics::Color(255, 255, 255, 255))); + m_button->setFont(gui::Element::EPressed, graphics::FontDesc(16, graphics::Color(255, 255, 255, 255))); + + m_button->setColor(gui::Element::EActive, graphics::Color(graphics::Color(0, 0, 0, 0.6 * 255))); + m_button->setColor(gui::Element::EPressed, graphics::Color(graphics::Color(0, 0, 0, 0.4 * 255))); + c->AddElement(m_button); } diff --git a/map/country_status_display.cpp b/map/country_status_display.cpp index ea61a524a4..3c80e2995c 100644 --- a/map/country_status_display.cpp +++ b/map/country_status_display.cpp @@ -45,6 +45,12 @@ void CountryStatusDisplay::SetStatusMessage(string const & msgID, T1 const * t1, m_statusMsg->setText(msg); } +void CountryStatusDisplay::layout() +{ + m_downloadButton->setIsDirtyLayout(true); + m_statusMsg->setIsDirtyLayout(true); +} + void CountryStatusDisplay::purge() { m_downloadButton->purge(); diff --git a/map/country_status_display.hpp b/map/country_status_display.hpp index 8122dc4e38..b35dc4211f 100644 --- a/map/country_status_display.hpp +++ b/map/country_status_display.hpp @@ -51,6 +51,7 @@ private: /// caching resources for fast rendering. void cache(); void purge(); + void layout(); string const displayName() const;