diff options
author | rachytski <siarhei.rachytski@gmail.com> | 2013-02-13 15:36:16 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:50:47 +0300 |
commit | 393cd94d36a0aa97fd5ff96b435b3bdcff941121 (patch) | |
tree | dd4ab0082dafcdcc4ac32c4dff0ee68ecb1991f1 /android | |
parent | e1bb2b713b9f1305b0ddebea0ccc93f1727b04a5 (diff) |
fixed some bugs with gui::Balloon rendering. added "arrow" and "plus" images logic into BookmarkBalloon.
Diffstat (limited to 'android')
-rw-r--r-- | android/jni/com/mapswithme/maps/Framework.cpp | 44 | ||||
-rw-r--r-- | android/jni/com/mapswithme/maps/Framework.hpp | 11 |
2 files changed, 29 insertions, 26 deletions
diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index 3427515121..7fe8a1e8dc 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -576,7 +576,7 @@ namespace android if (ValidateBookmarkAndCategory(bac)) { Bookmark b = *(m_work.GetBmCategory(bac.first)->GetBookmark(bac.second)); - ActivatePopup(b.GetOrg(), b.GetName()); + ActivatePopup(b.GetOrg(), b.GetName(), "right-arrow.png"); return true; } else @@ -647,17 +647,18 @@ namespace android bmkname = cstream.str(); } - ActivatePopup(bmkPosition, bmkname); + ActivatePopup(bmkPosition, bmkname, "plus.png"); m_work.DrawPlacemark(bmkPosition); m_work.Invalidate(); } - void Framework::ActivatePopup(m2::PointD const & bmkPosition, string const & name) + void Framework::ActivatePopup(m2::PointD const & bmkPosition, string const & name, string const & imageName) { - gui::BookmarkBalloon * b = GetBookmarkBalloon(); + BookmarkBalloon * b = GetBookmarkBalloon(); m_work.DisablePlacemark(); - b->setBookmarkPivot(bmkPosition); + b->setImage(graphics::Image::Info(imageName.c_str(), m_work.GetRenderPolicy()->Density())); + b->setGlbPivot(bmkPosition); b->setBookmarkName(name); b->setIsVisible(true); m_work.Invalidate(); @@ -665,7 +666,7 @@ namespace android void Framework::DeactivatePopup() { - gui::BookmarkBalloon * b = GetBookmarkBalloon(); + BookmarkBalloon * b = GetBookmarkBalloon(); b->setIsVisible(false); m_work.DisablePlacemark(); m_work.Invalidate(); @@ -673,9 +674,9 @@ namespace android void Framework::OnBalloonClick(gui::Element * e) { - gui::BookmarkBalloon * balloon = GetBookmarkBalloon(); + BookmarkBalloon * balloon = GetBookmarkBalloon(); - BookmarkAndCategory bac = m_work.GetBookmark(m_work.GtoP(balloon->getBookmarkPivot())); + BookmarkAndCategory bac = m_work.GetBookmark(m_work.GtoP(balloon->glbPivot())); if (ValidateBookmarkAndCategory(bac)) { m_balloonClickListener(bac); @@ -685,14 +686,14 @@ namespace android BookmarkCategory * cat; if (m_work.GetBmCategoriesCount() == 0) { - m_work.AddBookmark(m_work.GetStringsBundle().GetString("my_places"), Bookmark(balloon->getBookmarkPivot(), balloon->getBookmarkName(), "placemark-red")); + m_work.AddBookmark(m_work.GetStringsBundle().GetString("my_places"), Bookmark(balloon->glbPivot(), balloon->bookmarkName(), "placemark-red")); cat = m_work.GetBmCategory(m_work.GetBmCategoriesCount()-1); } else { cat = m_work.GetBmCategory(m_work.GetBmCategoriesCount()-1); - LOG(LDEBUG,("Paladin", (balloon->getBookmarkPivot(), balloon->getBookmarkName(), "placemark-red"))); - m_work.AddBookmark(cat->GetName(), Bookmark(balloon->getBookmarkPivot(), balloon->getBookmarkName(), "placemark-red")); + Bookmark bm(balloon->glbPivot(), balloon->bookmarkName(), "placemark-red"); + m_work.AddBookmark(cat->GetName(), bm); } cat->SaveToKMLFile(); int catSize = cat->GetBookmarksCount() - 1; @@ -714,28 +715,35 @@ namespace android m_balloonClickListener.clear(); } + BookmarkBalloon * Framework::GetBookmarkBalloon() + { + if (!m_bmBaloon) + CreateBookmarkBalloon(); + return m_bmBaloon.get(); + } + void Framework::CreateBookmarkBalloon() { CHECK(m_work.GetGuiController(), ()); CHECK(m_work.GetRenderPolicy(), ()); - gui::Balloon::Params bp; + BookmarkBalloon::Params bp; bp.m_position = graphics::EPosAbove; - bp.m_depth = graphics::maxDepth; + bp.m_depth = graphics::maxDepth - 3; bp.m_pivot = m2::PointD(0, 0); bp.m_imageMarginBottom = 10; - bp.m_imageMarginLeft = 10; + bp.m_imageMarginLeft = 0; bp.m_imageMarginRight = 10; - bp.m_imageMarginTop = 10; + bp.m_imageMarginTop = 7; bp.m_textMarginBottom = 10; bp.m_textMarginLeft = 10; bp.m_textMarginRight = 10; - bp.m_textMarginTop = 10; - bp.m_image = graphics::Image::Info("arrow.png", m_work.GetRenderPolicy()->Density()); + bp.m_textMarginTop = 7; bp.m_text = "Bookmark"; + bp.m_framework = &m_work; - m_bmBaloon.reset(new gui::BookmarkBalloon(bp, &m_work)); + m_bmBaloon.reset(new BookmarkBalloon(bp)); m_bmBaloon->setIsVisible(false); m_bmBaloon->setOnClickListener(bind(&Framework::OnBalloonClick, this, _1)); m_work.GetGuiController()->AddElement(m_bmBaloon); diff --git a/android/jni/com/mapswithme/maps/Framework.hpp b/android/jni/com/mapswithme/maps/Framework.hpp index 34e328588c..2272488230 100644 --- a/android/jni/com/mapswithme/maps/Framework.hpp +++ b/android/jni/com/mapswithme/maps/Framework.hpp @@ -65,7 +65,7 @@ namespace android bool HandleOnSmthClick(double x, double y); bool AdditionalHandlingForLongClick(double x, double y); - void ActivatePopup(m2::PointD const & bmkPosition, string const & name); + void ActivatePopup(m2::PointD const & bmkPosition, string const & name, string const & imageName); void ActivatePopupWithAddressInfo(m2::PointD const & bmkPosition, ::Framework::AddressInfo const & adInfo); void ToCamelCase(string & c); @@ -75,16 +75,11 @@ namespace android return (bac.first > -1 && bac.second > -1); } - shared_ptr<gui::BookmarkBalloon> m_bmBaloon; + shared_ptr<BookmarkBalloon> m_bmBaloon; void OnBalloonClick(gui::Element * e); void CreateBookmarkBalloon(); - inline gui::BookmarkBalloon * GetBookmarkBalloon() - { - if (!m_bmBaloon) - CreateBookmarkBalloon(); - return m_bmBaloon.get(); - } + BookmarkBalloon * GetBookmarkBalloon(); public: Framework(); |