From 9503f2aaae7f3faf39e7e801b77fabe9405010df Mon Sep 17 00:00:00 2001 From: dfighter1985 Date: Thu, 21 Jun 2012 10:32:46 +0200 Subject: [PATCH] CHANGED: #1471 CViewTextFormated is now part of NELGUI library, and is under the NLGUI namespace. --- code/nel/include/nel/gui/view_text_formated.h | 67 +++++++++++++++++ code/nel/src/gui/view_text_formated.cpp | 74 +++++++++++++++++++ .../src/interface_v3/group_container.cpp | 2 +- .../src/interface_v3/interface_manager.cpp | 2 +- .../src/interface_v3/interface_parser.cpp | 2 +- .../src/interface_v3/view_text_formated.cpp | 68 ----------------- .../src/interface_v3/view_text_formated.h | 64 ---------------- .../interface_v3/view_text_id_formated.cpp | 2 +- 8 files changed, 145 insertions(+), 136 deletions(-) create mode 100644 code/nel/include/nel/gui/view_text_formated.h create mode 100644 code/nel/src/gui/view_text_formated.cpp delete mode 100644 code/ryzom/client/src/interface_v3/view_text_formated.cpp delete mode 100644 code/ryzom/client/src/interface_v3/view_text_formated.h diff --git a/code/nel/include/nel/gui/view_text_formated.h b/code/nel/include/nel/gui/view_text_formated.h new file mode 100644 index 000000000..dd9d1149a --- /dev/null +++ b/code/nel/include/nel/gui/view_text_formated.h @@ -0,0 +1,67 @@ +// Ryzom - MMORPG Framework +// Copyright (C) 2010 Winch Gate Property Limited +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + + + +#ifndef VIEW_TEXT_FORMATED_H +#define VIEW_TEXT_FORMATED_H + +#include "nel/gui/view_text.h" + +namespace NLGUI +{ + + /** The same as a view text id, but with some display option + * The input is a formated string, every character is copied, but subsitution is done for each character preceded by $ + * $p -> expand the player name + * $P -> expand the player name in uppercase + * $b -> expand the current bot name ( bot with which the player is talking) + * $s -> expand the current short bot name (with no specification/title in it) + * if "ui..." replace the format with CI18N + */ + class CViewTextFormated : public CViewText + { + public: + + class IViewTextFormatter + { + public: + virtual ~IViewTextFormatter(){} + virtual ucstring formatString( const ucstring &inputString, const ucstring ¶mString ) = 0; + }; + + CViewTextFormated (const TCtorParam ¶m) : CViewText(param) + {} + virtual bool parse(xmlNodePtr cur, CInterfaceGroup * parentGroup); + virtual void checkCoords(); + const ucstring &getFormatString() const { return _FormatString; } + void setFormatString(const ucstring &format); + + static ucstring formatString(const ucstring &inputString, const ucstring ¶mString); + + static void setFormatter( IViewTextFormatter *formatter ){ textFormatter = formatter; } + + private: + ucstring _FormatString; + static IViewTextFormatter *textFormatter; + }; + + +} + + + +#endif diff --git a/code/nel/src/gui/view_text_formated.cpp b/code/nel/src/gui/view_text_formated.cpp new file mode 100644 index 000000000..2de8f440f --- /dev/null +++ b/code/nel/src/gui/view_text_formated.cpp @@ -0,0 +1,74 @@ +// Ryzom - MMORPG Framework +// Copyright (C) 2010 Winch Gate Property Limited +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +#include "nel/gui/view_text_formated.h" +#include "nel/misc/xml_auto_ptr.h" +#include "nel/misc/i18n.h" + +NLMISC_REGISTER_OBJECT(CViewBase, CViewTextFormated, std::string, "text_formated"); + +namespace NLGUI +{ + + CViewTextFormated::IViewTextFormatter *CViewTextFormated::textFormatter = NULL; + + // **************************************************************************** + bool CViewTextFormated::parse(xmlNodePtr cur,CInterfaceGroup * parentGroup) + { + if (!CViewText::parse(cur, parentGroup)) return false; + CXMLAutoPtr prop((const char*) xmlGetProp( cur, (xmlChar*)"format" )); + if (prop) + setFormatString(ucstring((const char *) prop)); + else + setFormatString(ucstring("$t")); + return true; + } + + // **************************************************************************** + void CViewTextFormated::checkCoords() + { + if (!getActive()) return; + ucstring formatedResult; + formatedResult = formatString(_FormatString, ucstring("")); + + // + setText (formatedResult); + CViewText::checkCoords(); + } + + // **************************************************************************** + void CViewTextFormated::setFormatString(const ucstring &format) + { + _FormatString = format; + if ( (_FormatString.size()>2) && (_FormatString[0] == 'u') && (_FormatString[1] == 'i')) + _FormatString = NLMISC::CI18N::get (format.toString()); + } + + // **************************************************************************** + ucstring CViewTextFormated::formatString(const ucstring &inputString, const ucstring ¶mString) + { + ucstring formatedResult; + + if( textFormatter == NULL ) + formatedResult = inputString; + else + formatedResult = CViewTextFormated::textFormatter->formatString( inputString, paramString ); + + return formatedResult; + } + +} + diff --git a/code/ryzom/client/src/interface_v3/group_container.cpp b/code/ryzom/client/src/interface_v3/group_container.cpp index afd611854..6876c66a8 100644 --- a/code/ryzom/client/src/interface_v3/group_container.cpp +++ b/code/ryzom/client/src/interface_v3/group_container.cpp @@ -27,7 +27,7 @@ #include "nel/gui/action_handler.h" #include "../time_client.h" #include "group_editbox.h" -#include "view_text_formated.h" +#include "nel/gui/view_text_formated.h" #include "nel/gui/view_text_id.h" #include "nel/gui/lua_ihm.h" diff --git a/code/ryzom/client/src/interface_v3/interface_manager.cpp b/code/ryzom/client/src/interface_v3/interface_manager.cpp index 5f7676853..b9c9a6df0 100644 --- a/code/ryzom/client/src/interface_v3/interface_manager.cpp +++ b/code/ryzom/client/src/interface_v3/interface_manager.cpp @@ -52,7 +52,7 @@ #include "view_bitmap_combo.h" #include "nel/gui/view_text.h" #include "nel/gui/view_text_id.h" -#include "view_text_formated.h" +#include "nel/gui/view_text_formated.h" // Ctrl #include "nel/gui/ctrl_scroll.h" #include "nel/gui/ctrl_button.h" diff --git a/code/ryzom/client/src/interface_v3/interface_parser.cpp b/code/ryzom/client/src/interface_v3/interface_parser.cpp index 7188c9671..c53c1b322 100644 --- a/code/ryzom/client/src/interface_v3/interface_parser.cpp +++ b/code/ryzom/client/src/interface_v3/interface_parser.cpp @@ -40,7 +40,7 @@ #include "view_bitmap_faber_mp.h" #include "view_bitmap_combo.h" #include "nel/gui/view_text.h" -#include "view_text_formated.h" +#include "nel/gui/view_text_formated.h" #include "nel/gui/view_text_id.h" #include "view_text_id_formated.h" #include "view_radar.h" diff --git a/code/ryzom/client/src/interface_v3/view_text_formated.cpp b/code/ryzom/client/src/interface_v3/view_text_formated.cpp deleted file mode 100644 index cf8e8264b..000000000 --- a/code/ryzom/client/src/interface_v3/view_text_formated.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// Ryzom - MMORPG Framework -// Copyright (C) 2010 Winch Gate Property Limited -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -#include "view_text_formated.h" -#include "nel/misc/xml_auto_ptr.h" -#include "nel/misc/i18n.h" - -NLMISC_REGISTER_OBJECT(CViewBase, CViewTextFormated, std::string, "text_formated"); - -CViewTextFormated::IViewTextFormatter *CViewTextFormated::textFormatter = NULL; - -// **************************************************************************** -bool CViewTextFormated::parse(xmlNodePtr cur,CInterfaceGroup * parentGroup) -{ - if (!CViewText::parse(cur, parentGroup)) return false; - CXMLAutoPtr prop((const char*) xmlGetProp( cur, (xmlChar*)"format" )); - if (prop) - setFormatString(ucstring((const char *) prop)); - else - setFormatString(ucstring("$t")); - return true; -} - -// **************************************************************************** -void CViewTextFormated::checkCoords() -{ - if (!getActive()) return; - ucstring formatedResult; - formatedResult = formatString(_FormatString, ucstring("")); - - // - setText (formatedResult); - CViewText::checkCoords(); -} - -// **************************************************************************** -void CViewTextFormated::setFormatString(const ucstring &format) -{ - _FormatString = format; - if ( (_FormatString.size()>2) && (_FormatString[0] == 'u') && (_FormatString[1] == 'i')) - _FormatString = NLMISC::CI18N::get (format.toString()); -} - -// **************************************************************************** -ucstring CViewTextFormated::formatString(const ucstring &inputString, const ucstring ¶mString) -{ - ucstring formatedResult; - - if( textFormatter == NULL ) - formatedResult = inputString; - else - formatedResult = CViewTextFormated::textFormatter->formatString( inputString, paramString ); - - return formatedResult; -} diff --git a/code/ryzom/client/src/interface_v3/view_text_formated.h b/code/ryzom/client/src/interface_v3/view_text_formated.h deleted file mode 100644 index 604d16dbc..000000000 --- a/code/ryzom/client/src/interface_v3/view_text_formated.h +++ /dev/null @@ -1,64 +0,0 @@ -// Ryzom - MMORPG Framework -// Copyright (C) 2010 Winch Gate Property Limited -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - - - -#ifndef VIEW_TEXT_FORMATED_H -#define VIEW_TEXT_FORMATED_H - -#include "nel/gui/view_text.h" - -/** The same as a view text id, but with some display option - * The input is a formated string, every character is copied, but subsitution is done for each character preceded by $ - * $p -> expand the player name - * $P -> expand the player name in uppercase - * $b -> expand the current bot name ( bot with which the player is talking) - * $s -> expand the current short bot name (with no specification/title in it) - * if "ui..." replace the format with CI18N - */ -class CViewTextFormated : public CViewText -{ -public: - - class IViewTextFormatter - { - public: - virtual ~IViewTextFormatter(){} - virtual ucstring formatString( const ucstring &inputString, const ucstring ¶mString ) = 0; - }; - - CViewTextFormated (const TCtorParam ¶m) : CViewText(param) - {} - virtual bool parse(xmlNodePtr cur, CInterfaceGroup * parentGroup); - virtual void checkCoords(); - const ucstring &getFormatString() const { return _FormatString; } - void setFormatString(const ucstring &format); - - static ucstring formatString(const ucstring &inputString, const ucstring ¶mString); - - static void setFormatter( IViewTextFormatter *formatter ){ textFormatter = formatter; } - -private: - ucstring _FormatString; - static IViewTextFormatter *textFormatter; -}; - - - - - - -#endif diff --git a/code/ryzom/client/src/interface_v3/view_text_id_formated.cpp b/code/ryzom/client/src/interface_v3/view_text_id_formated.cpp index 70bacaa98..1105197b6 100644 --- a/code/ryzom/client/src/interface_v3/view_text_id_formated.cpp +++ b/code/ryzom/client/src/interface_v3/view_text_id_formated.cpp @@ -18,7 +18,7 @@ #include "stdpch.h" #include "view_text_id_formated.h" -#include "view_text_formated.h" +#include "nel/gui/view_text_formated.h" #include "../string_manager_client.h" #include "../user_entity.h" #include "../entities.h"