From a2d7fc39d0c32a6cb8e0065108025d78fb8383f3 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sat, 5 May 2012 12:19:00 +0400 Subject: [PATCH] gui/widget/menue.cpp: add CMenuDForwarder - forwarder which delete jumpTarget --- src/gui/widget/menue.cpp | 14 ++++++++++++++ src/gui/widget/menue.h | 11 ++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 87c74bae2..ecbb5ea1d 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1611,6 +1611,20 @@ int CMenuForwarder::paint(bool selected) return y+ height; } +CMenuDForwarder::CMenuDForwarder(const neutrino_locale_t Text, const bool Active, const char * const Option, CMenuTarget* Target, const char * const ActionKey, neutrino_msg_t DirectKey, const char * const IconName, const char * const IconName_Info_right) + : CMenuForwarder(Text, Active, Option, Target, ActionKey, DirectKey, IconName, IconName_Info_right) +{ +} + +CMenuDForwarder::CMenuDForwarder(const neutrino_locale_t Text, const bool Active, const std::string &Option, CMenuTarget* Target, const char * const ActionKey, neutrino_msg_t DirectKey, const char * const IconName, const char * const IconName_Info_right) + : CMenuForwarder(Text, Active, Option, Target, ActionKey, DirectKey, IconName, IconName_Info_right) +{ +} + +CMenuDForwarder::~CMenuDForwarder() +{ + delete jumpTarget; +} //------------------------------------------------------------------------------------------------------------------------------- const char * CMenuForwarderNonLocalized::getName(void) diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index f68717a28..f1ea45e33 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -174,10 +174,10 @@ class CMenuForwarder : public CMenuItem { const char * option; const std::string * option_string; - CMenuTarget * jumpTarget; std::string actionKey; protected: + CMenuTarget * jumpTarget; neutrino_locale_t text; virtual const char * getOption(void); @@ -207,6 +207,15 @@ class CMenuForwarder : public CMenuItem } }; +class CMenuDForwarder : public CMenuForwarder +{ + public: + CMenuDForwarder(const neutrino_locale_t Text, const bool Active=true, const char * const Option=NULL, CMenuTarget* Target=NULL, const char * const ActionKey = NULL, const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const char * const IconName = NULL, const char * const IconName_Info_right = NULL); + CMenuDForwarder(const neutrino_locale_t Text, const bool Active, const std::string &Option, CMenuTarget* Target=NULL, const char * const ActionKey = NULL, const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const char * const IconName = NULL, const char * const IconName_Info_right = NULL); + + ~CMenuDForwarder(); +}; + class CMenuForwarderNonLocalized : public CMenuForwarder { protected: