diff options
author | ExMix <rahuba.youri@mapswithme.com> | 2013-06-27 16:15:01 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:57:21 +0300 |
commit | 366c57ac6a0c8ac48e22c8831b641a4afb3a979e (patch) | |
tree | 22920efe23a679cb518a32ab85fe6c96a6e3245d /map | |
parent | 56c2974f149cc38c36bd9768d7097657dbe1b5f1 (diff) |
[fix]
- Sort gui elements by depth before select.
- Correct My position and Bookmark depth.
- Add ballon mode for show with bookmark padding and without.
Diffstat (limited to 'map')
-rw-r--r-- | map/balloon_manager.cpp | 18 | ||||
-rw-r--r-- | map/balloon_manager.hpp | 2 | ||||
-rw-r--r-- | map/bookmark_balloon.cpp | 9 | ||||
-rw-r--r-- | map/bookmark_balloon.hpp | 3 |
4 files changed, 17 insertions, 15 deletions
diff --git a/map/balloon_manager.cpp b/map/balloon_manager.cpp index 3007ae1b9c..93026f4a42 100644 --- a/map/balloon_manager.cpp +++ b/map/balloon_manager.cpp @@ -57,20 +57,20 @@ void BalloonManager::LocationChanged(location::GpsInfo const & info) void BalloonManager::OnPositionClicked(m2::PointD const & pt) { - Show(pt, m_f.GetStringsBundle().GetString("my_position"), ""); + Show(pt, m_f.GetStringsBundle().GetString("my_position"), "", false); m_balloon->setOnClickListener(bind(&BalloonManager::OnActivateMyPosition, this, _1)); m_updateForLocation = true; } -void BalloonManager::Show(m2::PointD const & pt, string const & name, string const & type) +void BalloonManager::Show(m2::PointD const & pt, string const & name, string const & type, bool needPadding) { m_updateForLocation = false; m_balloon->setGlbPivot(pt); m_balloon->setBookmarkCaption(name, type); - m_balloon->showAnimated(); + m_balloon->showAnimated(needPadding); m_f.Invalidate(); } @@ -91,7 +91,7 @@ void BalloonManager::ShowAddress(m2::PointD const & pt, search::AddressInfo cons if (name.empty() && type.empty()) name = m_f.GetStringsBundle().GetString("dropped_pin"); - Show(pt, name, type); + Show(pt, name, type, false); m_balloon->setOnClickListener(bind(&BalloonManager::OnActivatePOI, this, _1, info)); } @@ -100,14 +100,14 @@ void BalloonManager::ShowApiPoint(url_scheme::ApiPoint const & apiPoint) { Show(m2::PointD(MercatorBounds::LonToX(apiPoint.m_lon), MercatorBounds::LatToY(apiPoint.m_lat)), - apiPoint.m_name, ""); + apiPoint.m_name, "", true); m_balloon->setOnClickListener(bind(&BalloonManager::OnActivateAPI, this, _1, apiPoint)); } void BalloonManager::ShowBookmark(BookmarkAndCategory bmAndCat) { Bookmark const * pBM = m_f.GetBmCategory(bmAndCat.first)->GetBookmark(bmAndCat.second); - Show(pBM->GetOrg(), pBM->GetName(), ""); + Show(pBM->GetOrg(), pBM->GetName(), "", true); m_balloon->setOnClickListener(bind(&BalloonManager::OnActivateBookmark, this, _1, bmAndCat)); } @@ -118,7 +118,7 @@ void BalloonManager::OnClick(m2::PointD const & pxPoint, bool isLongTouch) { Show(m2::PointD(MercatorBounds::LonToX(apiPoint.m_lon), MercatorBounds::LatToY(apiPoint.m_lat)), - apiPoint.m_name, ""); + apiPoint.m_name, "", true); m_balloon->setOnClickListener(bind(&BalloonManager::OnActivateAPI, this, _1, apiPoint)); } else @@ -131,9 +131,7 @@ void BalloonManager::OnClick(m2::PointD const & pxPoint, bool isLongTouch) { case Framework::BOOKMARK: { - Bookmark const * pBM = m_f.GetBmCategory(bmAndCat.first)->GetBookmark(bmAndCat.second); - Show(pBM->GetOrg(), pBM->GetName(), ""); - m_balloon->setOnClickListener(bind(&BalloonManager::OnActivateBookmark, this, _1, bmAndCat)); + ShowBookmark(bmAndCat); return; } diff --git a/map/balloon_manager.hpp b/map/balloon_manager.hpp index 59233d96e2..0d985328e3 100644 --- a/map/balloon_manager.hpp +++ b/map/balloon_manager.hpp @@ -30,7 +30,7 @@ class BalloonManager void OnActivateAPI(gui::Element *, url_scheme::ApiPoint const & apiPoint); void OnActivateBookmark(gui::Element *, BookmarkAndCategory const & bmAndCat); - void Show(m2::PointD const & pt, string const & name, string const & type); + void Show(m2::PointD const & pt, string const & name, string const & type, bool needPadding); public: BalloonManager(Framework & f); diff --git a/map/bookmark_balloon.cpp b/map/bookmark_balloon.cpp index 0e02ce6aa3..52c0f420db 100644 --- a/map/bookmark_balloon.cpp +++ b/map/bookmark_balloon.cpp @@ -90,7 +90,8 @@ private: BookmarkBalloon::BookmarkBalloon(Params const & p) : Balloon(p), m_framework(p.m_framework), - m_isPositionChecked(true) + m_isPositionChecked(true), + m_needPadding(false) { } @@ -169,7 +170,8 @@ void BookmarkBalloon::update() if (isVisible()) { m2::PointD newPivot(m_framework->GtoP(m_glbPivot)); - newPivot.y -= PopupPadding * visualScale(); + if (m_needPadding) + newPivot.y -= PopupPadding * visualScale(); setPivot(newPivot); if (checkPosition()) @@ -229,8 +231,9 @@ void BookmarkBalloon::cancelTask() } } -void BookmarkBalloon::showAnimated() +void BookmarkBalloon::showAnimated(bool needPadding) { + m_needPadding = needPadding; setPosition(graphics::EPosCenter); setIsPositionChecked(false); diff --git a/map/bookmark_balloon.hpp b/map/bookmark_balloon.hpp index 51ed374d35..1e6a4375d0 100644 --- a/map/bookmark_balloon.hpp +++ b/map/bookmark_balloon.hpp @@ -18,6 +18,7 @@ private: string m_bmkName; string m_bmkType; bool m_isPositionChecked; + bool m_needPadding; void setIsPositionChecked(bool isChecked); bool isPositionChecked() const; @@ -42,7 +43,7 @@ public: BookmarkBalloon(Params const & p); - void showAnimated(); + void showAnimated(bool needPadding); void hide(); void setGlbPivot(m2::PointD const & pivot); |