diff --git a/drape_frontend/message.hpp b/drape_frontend/message.hpp index 8cd6b0941d..73092796f1 100644 --- a/drape_frontend/message.hpp +++ b/drape_frontend/message.hpp @@ -17,6 +17,8 @@ public: MapShapeReaded, UpdateModelView, UpdateReadManager, + InvalidateRect, + InvalidateReadManagerRect, Resize, Rotate }; diff --git a/drape_frontend/message_subclasses.hpp b/drape_frontend/message_subclasses.hpp index e8a75ce86b..3a4e6b8071 100644 --- a/drape_frontend/message_subclasses.hpp +++ b/drape_frontend/message_subclasses.hpp @@ -98,6 +98,21 @@ private: ScreenBase m_screen; }; +class InvalidateRectMessage : public Message +{ +public: + InvalidateRectMessage(m2::RectD const & rect) + : m_rect(rect) + { + SetType(InvalidateRect); + } + + m2::RectD const & GetRect() const { return m_rect; } + +private: + m2::RectD m_rect; +}; + class UpdateReadManagerMessage : public UpdateModelViewMessage { public: @@ -114,4 +129,30 @@ private: shared_ptr > m_tiles; }; +class InvalidateReadManagerRectMessage : public Message +{ +public: + InvalidateReadManagerRectMessage(TransferPointer > tiles) + : m_tiles(tiles) + { + SetType(InvalidateReadManagerRect); + } + + ~InvalidateReadManagerRectMessage() + { + m_tiles.Destroy(); + } + + set const & GetTilesForInvalidate() const { return *m_tiles.GetRaw(); } + +private: + MasterPointer > m_tiles; +}; + +template +T * CastMessage(RefPointer msg) +{ + return static_cast(msg.GetRaw()); +} + } // namespace df