diff --git a/map/api_mark_container.cpp b/map/api_mark_container.cpp new file mode 100644 index 0000000000..952aa0d13a --- /dev/null +++ b/map/api_mark_container.cpp @@ -0,0 +1,29 @@ +#include "api_mark_container.hpp" +#include "api_mark_point.hpp" + +#include "framework.hpp" + +//////////////////////////////////////////////////////////////////////// + + +ApiUserMarkContainer::ApiUserMarkContainer(double layerDepth, Framework & framework) + : UserMarkContainer(layerDepth, framework) +{ +} + +string ApiUserMarkContainer::GetTypeName() const +{ + return "api-result"; +} + +string ApiUserMarkContainer::GetActiveTypeName() const +{ + return "search-result-active"; +} + +UserMark * ApiUserMarkContainer::AllocateUserMark(const m2::PointD & ptOrg) +{ + return new ApiMarkPoint(ptOrg, this); +} + + diff --git a/map/api_mark_container.hpp b/map/api_mark_container.hpp new file mode 100644 index 0000000000..62dfd4ee33 --- /dev/null +++ b/map/api_mark_container.hpp @@ -0,0 +1,18 @@ +#pragma once + +#include "user_mark_container.hpp" +#include "api_mark_point.hpp" + +class ApiUserMarkContainer : public UserMarkContainer +{ +public: + ApiUserMarkContainer(double layerDepth, Framework & framework); + + virtual Type GetType() const { return API_MARK; } + + virtual string GetActiveTypeName() const; +protected: + virtual string GetTypeName() const; + virtual UserMark * AllocateUserMark(m2::PointD const & ptOrg); +}; + diff --git a/map/api_mark_point.hpp b/map/api_mark_point.hpp new file mode 100644 index 0000000000..491c0ac7cb --- /dev/null +++ b/map/api_mark_point.hpp @@ -0,0 +1,48 @@ +#pragma once + +#include "map/user_mark.hpp" + +class ApiMarkPoint : public UserMark +{ +public: + ApiMarkPoint(m2::PointD const & ptOrg, UserMarkContainer * container) + : UserMark(ptOrg, container) + { + } + + ApiMarkPoint(string const & name, + string const & id, + m2::PointD const & ptOrg, + UserMarkContainer * container) + : UserMark(ptOrg, container) + , m_name(name) + , m_id(id) + { + } + + UserMark::Type GetMarkType() const override { return UserMark::Type::API; } + + string const & GetName() const { return m_name; } + void SetName(string const & name) { m_name = name; } + + string const & GetID() const { return m_id; } + void SetID(string const & id) { m_id = id; } + + unique_ptr Copy() const override + { + return unique_ptr( + new UserMarkCopy(new ApiMarkPoint(m_name, m_id, m_ptOrg, m_container))); + } + + virtual void FillLogEvent(TEventContainer & details) const override + { + UserMark::FillLogEvent(details); + details["markType"] = "API"; + details["name"] = GetName(); + } + +private: + string m_name; + string m_id; +}; + diff --git a/map/framework.hpp b/map/framework.hpp index 0a5a7414c4..a7eada2e7c 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -8,6 +8,8 @@ #include "map/bookmark.hpp" #include "map/bookmark_manager.hpp" +#include "map/api_mark_point.hpp" +#include "map/api_mark_container.hpp" #include "map/pin_click_manager.hpp" #include "map/mwm_url.hpp" diff --git a/map/map.pro b/map/map.pro index 175f9ca338..641b3c74e5 100644 --- a/map/map.pro +++ b/map/map.pro @@ -36,6 +36,8 @@ HEADERS += \ user_mark_container.hpp \ user_mark.hpp \ user_mark_dl_cache.hpp \ + api_mark_container.hpp \ + api_mark_point.hpp \ anim_phase_chain.hpp \ pin_click_manager.hpp \ country_tree.hpp \ @@ -69,6 +71,7 @@ SOURCES += \ alfa_animation_task.cpp \ user_mark_container.cpp \ user_mark_dl_cache.cpp \ + api_mark_container.cpp \ anim_phase_chain.cpp \ pin_click_manager.cpp \ country_tree.cpp \ diff --git a/map/mwm_url.hpp b/map/mwm_url.hpp index 53b9f085c3..a15b43ca23 100644 --- a/map/mwm_url.hpp +++ b/map/mwm_url.hpp @@ -1,6 +1,6 @@ #pragma once -#include "user_mark_container.hpp" +#include "api_mark_container.hpp" #include "geometry/rect2d.hpp" diff --git a/map/user_mark.hpp b/map/user_mark.hpp index d3e667fb64..73420bc00d 100644 --- a/map/user_mark.hpp +++ b/map/user_mark.hpp @@ -92,50 +92,6 @@ private: bool m_needDestroy; }; -class ApiMarkPoint : public UserMark -{ -public: - ApiMarkPoint(m2::PointD const & ptOrg, UserMarkContainer * container) - : UserMark(ptOrg, container) - { - } - - ApiMarkPoint(string const & name, - string const & id, - m2::PointD const & ptOrg, - UserMarkContainer * container) - : UserMark(ptOrg, container) - , m_name(name) - , m_id(id) - { - } - - UserMark::Type GetMarkType() const override { return UserMark::Type::API; } - - string const & GetName() const { return m_name; } - void SetName(string const & name) { m_name = name; } - - string const & GetID() const { return m_id; } - void SetID(string const & id) { m_id = id; } - - unique_ptr Copy() const override - { - return unique_ptr( - new UserMarkCopy(new ApiMarkPoint(m_name, m_id, m_ptOrg, m_container))); - } - - virtual void FillLogEvent(TEventContainer & details) const override - { - UserMark::FillLogEvent(details); - details["markType"] = "API"; - details["name"] = GetName(); - } - -private: - string m_name; - string m_id; -}; - class DebugMarkPoint : public UserMark { public: diff --git a/map/user_mark_container.cpp b/map/user_mark_container.cpp index df240531bf..4b53eaff8f 100644 --- a/map/user_mark_container.cpp +++ b/map/user_mark_container.cpp @@ -267,27 +267,6 @@ UserMark * SearchUserMarkContainer::AllocateUserMark(const m2::PointD & ptOrg) return new SearchMarkPoint(ptOrg, this); } -ApiUserMarkContainer::ApiUserMarkContainer(double layerDepth, Framework & framework) - : UserMarkContainer(layerDepth, framework) -{ -} - -string ApiUserMarkContainer::GetTypeName() const -{ - return "api-result"; -} - -string ApiUserMarkContainer::GetActiveTypeName() const -{ - return "search-result-active"; -} - -UserMark * ApiUserMarkContainer::AllocateUserMark(const m2::PointD & ptOrg) -{ - return new ApiMarkPoint(ptOrg, this); -} - - DebugUserMarkContainer::DebugUserMarkContainer(double layerDepth, Framework & framework) : UserMarkContainer(layerDepth, framework) { diff --git a/map/user_mark_container.hpp b/map/user_mark_container.hpp index 4ca9549e4e..8d442828f4 100644 --- a/map/user_mark_container.hpp +++ b/map/user_mark_container.hpp @@ -133,19 +133,6 @@ protected: virtual UserMark * AllocateUserMark(m2::PointD const & ptOrg); }; -class ApiUserMarkContainer : public UserMarkContainer -{ -public: - ApiUserMarkContainer(double layerDepth, Framework & framework); - - virtual Type GetType() const { return API_MARK; } - - virtual string GetActiveTypeName() const; -protected: - virtual string GetTypeName() const; - virtual UserMark * AllocateUserMark(m2::PointD const & ptOrg); -}; - class DebugUserMarkContainer : public UserMarkContainer { public: