From 1067d4b4916b0a20cc5da4b4b5e6ec23c1e026be Mon Sep 17 00:00:00 2001 From: dfighter1985 Date: Thu, 24 May 2012 18:23:51 +0200 Subject: [PATCH] CHANGED: #1471 CInterfaceProperty is not part of the NELGUI library and is under NLGUI namespace. --- code/nel/include/nel/gui/interface_common.h | 57 ++++ code/nel/include/nel/gui/interface_property.h | 106 +++++++ code/nel/src/gui/interface_property.cpp | 288 ++++++++++++++++++ .../src/interface_v3/dbgroup_list_sheet.cpp | 2 +- .../interface_v3/dbgroup_select_number.cpp | 2 +- .../client/src/interface_v3/interface_anim.h | 2 +- .../src/interface_v3/interface_element.cpp | 2 +- .../src/interface_v3/interface_element.h | 39 +-- .../src/interface_v3/interface_property.cpp | 286 ----------------- .../src/interface_v3/interface_property.h | 107 ------- code/ryzom/client/src/time_client.cpp | 2 +- 11 files changed, 458 insertions(+), 435 deletions(-) create mode 100644 code/nel/include/nel/gui/interface_common.h create mode 100644 code/nel/include/nel/gui/interface_property.h create mode 100644 code/nel/src/gui/interface_property.cpp delete mode 100644 code/ryzom/client/src/interface_v3/interface_property.cpp delete mode 100644 code/ryzom/client/src/interface_v3/interface_property.h diff --git a/code/nel/include/nel/gui/interface_common.h b/code/nel/include/nel/gui/interface_common.h new file mode 100644 index 000000000..1e28dde58 --- /dev/null +++ b/code/nel/include/nel/gui/interface_common.h @@ -0,0 +1,57 @@ +// 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 INTERFACE_COMMON_H +#define INTERFACE_COMMON_H + +enum THotSpot +{ + Hotspot_BL = 36, // 100100, + Hotspot_BM = 34, // 100010, + Hotspot_BR = 33, // 100001, + Hotspot_ML = 20, // 010100, + Hotspot_MM = 18, // 010010 + Hotspot_MR = 17, // 010001 + Hotspot_TL = 12, // 001100 + Hotspot_TM = 10, // 001010 + Hotspot_TR = 9, // 001001 + Hotspot_xR = 1, // 000001 + Hotspot_xM = 2, // 000010 + Hotspot_xL = 4, // 000100 + Hotspot_Bx = 32, // 100000 + Hotspot_Mx = 16, // 010000 + Hotspot_Tx = 8, // 001000 + Hotspot_TTAuto = 0, // Special For Tooltip PosRef. Auto mode. see CCtrlBase and tooltip info +}; + +#define DECLARE_UI_CLASS(_class_) \ + virtual std::string getClassName() {return #_class_;} \ + static NLMISC::IClassable *creator() {return new _class_(CViewBase::TCtorParam());} +#define REGISTER_UI_CLASS(_class_) \ + class CRegisterUIClassHelper_##_class_ \ + { \ + public: \ + CRegisterUIClassHelper_##_class_() \ + { \ + NLMISC::CClassRegistry::init(); \ + NLMISC::CClassRegistry::registerClass(#_class_, _class_::creator, typeid(_class_).name()); \ + } \ + } RegisterUIClassHelper_##_class_; + + + +#endif + diff --git a/code/nel/include/nel/gui/interface_property.h b/code/nel/include/nel/gui/interface_property.h new file mode 100644 index 000000000..e9c88a9b4 --- /dev/null +++ b/code/nel/include/nel/gui/interface_property.h @@ -0,0 +1,106 @@ +// 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 NL_INTERFACE_PROPERTY_H +#define NL_INTERFACE_PROPERTY_H + +#include "nel/misc/types_nl.h" +#include "nel/misc/rgba.h" +#include "nel/misc/cdb.h" +#include "nel/misc/cdb_leaf.h" +#include "nel/misc/cdb_branch.h" + +namespace NLGUI +{ + + /** + * interface property + * class used to managed all the interface member values + * As the database contains only sint64, several methods are needed to do the conversion + * \author Nicolas Brigand + * \author Nevrax France + * \date 2002 + */ + class CInterfaceProperty + { + public: + //enum defining a hot spot + + /// Constructor + CInterfaceProperty() + { + _VolatileValue = NULL; + } + + NLMISC::CCDBNodeLeaf* getNodePtr() const + { + return _VolatileValue; + } + + void setNodePtr(NLMISC::CCDBNodeLeaf *ptr) + { + _VolatileValue = ptr; + } + + + bool link (const char *DBProp); + bool link( NLMISC::CCDBNodeLeaf *dbNode ); + bool link( NLMISC::CCDBNodeBranch *dbNode, const std::string &leafId, NLMISC::CCDBNodeLeaf *defaultLeaf = NULL ); + + /// float operations + void setDouble (double value) {setSInt64((sint64&) value);} + double getDouble () const {sint64 i = getSInt64(); return (double &) i; } + void readDouble (const char* value, const std::string& id); + + /// sint32 operations + void setSInt32 (sint32 value) {_VolatileValue->setValue32 (value);} + sint32 getSInt32 () const {return _VolatileValue->getValue32();} + void readSInt32(const char* value, const std::string& id); + + /// sint64 operations + void setSInt64 (sint64 value) {_VolatileValue->setValue64(value);} + sint64 getSInt64 () const {return _VolatileValue->getValue64();} + void readSInt64(const char* value, const std::string& id); + + /// CRGBA operations + void setRGBA (const NLMISC::CRGBA & value); + NLMISC::CRGBA getRGBA () const; + void readRGBA (const char* value, const std::string& id); + + /// HotSpot operations + + void readHotSpot (const char* value, const std::string& id); + + /// bool operations + void setBool (bool value); + bool getBool () const; + void readBool (const char* value, const std::string& id); + + // Swap the content of this 2 property (no-op if one is NULL) + void swap32(CInterfaceProperty &o); + + private: + /// volatile value of the property (pointer to a leaf of the database) + NLMISC::CCDBNodeLeaf* _VolatileValue; + }; + +} + +#endif // NL_INTERFACE_PROPERTY_H + +/* End of interface_property.h */ diff --git a/code/nel/src/gui/interface_property.cpp b/code/nel/src/gui/interface_property.cpp new file mode 100644 index 000000000..a8445f0d2 --- /dev/null +++ b/code/nel/src/gui/interface_property.cpp @@ -0,0 +1,288 @@ +// 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/misc/rgba.h" +#include "nel/gui/interface_property.h" +#include "nel/gui/interface_common.h" +#include "nel/gui/db_manager.h" + +using namespace NLMISC; +using namespace std; + +namespace NLGUI +{ + + bool CInterfaceProperty::link( CCDBNodeLeaf *dbNode ) + { + _VolatileValue = dbNode; + return (dbNode != NULL); + } + + bool CInterfaceProperty::link( CCDBNodeBranch *dbNode, const string &leafId, CCDBNodeLeaf *defaultLeaf ) + { + // no branch => default leaf + if( !dbNode ) + { + _VolatileValue = defaultLeaf; + return false; + } + + // get the leaf + _VolatileValue = dbNode->getLeaf( leafId.c_str(), false ); + if( _VolatileValue ) + return true; + + // default + _VolatileValue = defaultLeaf; + return false; + } + + bool CInterfaceProperty::link (const char *DBProp) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(DBProp, false); + if (_VolatileValue == NULL) + { + + nlinfo("prop not created : %s", DBProp); + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(DBProp); + return false; + } + return true; + } + + + // ***************** + // sint64 operations + // ***************** + + + void CInterfaceProperty::readSInt64(const char * ptr,const string& id) + { + string str (ptr); + //the value is volatile, and a database entry is created + if ( isdigit(*ptr) || *ptr=='-') + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + sint64 i; + fromString(ptr, i); + _VolatileValue->setValue64( i ); + } + //the value is volatile and points to a db entry created elsewhere + else + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); + } + } + + + + + // **************** + // float operations + // **************** + + + // ---------------------------------------------------------------------------- + void CInterfaceProperty::readDouble(const char * ptr,const string& id) + { + string str (ptr); + if ( isdigit(*ptr) || *ptr=='-') + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + double buf; + fromString(ptr, buf); + sint64 i = *(sint64*)&buf; + _VolatileValue->setValue64( i ); + } + else + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); + } + } + + // ***************** + // sint32 operations + // ***************** + + + // ---------------------------------------------------------------------------- + void CInterfaceProperty::readSInt32 (const char *ptr, const string& id) + { + string str (ptr); + //the value is volatile, and a database entry is created + if ( isdigit(*ptr) || *ptr=='-') + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + sint32 i; + fromString(ptr, i); + _VolatileValue->setValue32( i ); + } + //the value is volatile and points to a db entry created elsewhere + else + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); + } + } + + + + // ***************** + // rgba operations + // ***************** + CRGBA CInterfaceProperty::getRGBA() const + { + CRGBA rgba; + sint64 buf = getSInt64(); + rgba.R = (sint8) (buf &255); + rgba.G = (sint8) ((buf>>8)&255 ); + rgba.B = (sint8) ((buf>>16)&255); + rgba.A = (sint8) ((buf>>24)&255); + return rgba; + } + + + void CInterfaceProperty::setRGBA (const CRGBA& value) + { + setSInt64( (value.R )+ (((sint32)value.G)<<8) + (((sint32)value.B)<<16) + (((sint32)value.A)<<24)); + } + + + void CInterfaceProperty::readRGBA (const char *value,const string& id) + { + string str (value); + if (isdigit(*value)) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + int r=0, g=0, b=0, a=255; + sscanf (value, "%d %d %d %d", &r, &g, &b, &a); + clamp (r, 0, 255); + clamp (g, 0, 255); + clamp (b, 0, 255); + clamp (a, 0, 255); + sint64 val = r+(g<<8)+(b<<16)+(a<<24); + setSInt64(val); + CRGBA rgba = getRGBA(); + } + else + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); + } + } + + + void CInterfaceProperty::readHotSpot (const char *ptr,const string& id) + { + string str(ptr); + if ( !strcmp(ptr,"TL") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64((sint64)Hotspot_TL ); + } + else if ( !strcmp(ptr,"TM") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_TM ); + } + else if ( !strcmp(ptr,"TR") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_TR ); + } + else if ( !strcmp(ptr,"ML") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_ML ); + } + else if ( !strcmp(ptr,"MM") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_MM ); + } + else if ( !strcmp(ptr,"MR") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_MR ); + } + else if ( !strcmp(ptr,"BL") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_BL ); + } + else if ( !strcmp(ptr,"BM") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_BM ); + } + else if ( !strcmp(ptr,"BR") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue64( (sint64)Hotspot_BR ); + } + + else + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); + } + + + void CInterfaceProperty::setBool(bool value) + { + _VolatileValue->setValue8 (value); + } + + bool CInterfaceProperty::getBool() const + { + return _VolatileValue->getValue8() != 0 ? true : false; + } + + void CInterfaceProperty::readBool (const char* value,const string& id) + { + string str (value); + if ( !strcmp(value,"true") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue8( (sint8)true ); + } + else if ( !strcmp(value,"false") ) + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + _VolatileValue->setValue8( (sint8)false ); + } + else if ( isdigit(*value) || *value=='-') + { + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); + sint8 value8; + fromString(value, value8); + _VolatileValue->setValue8( value8 ); + } + else + _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); + } + + + // *************************************************************************** + void CInterfaceProperty::swap32(CInterfaceProperty &o) + { + CCDBNodeLeaf *a= getNodePtr(); + CCDBNodeLeaf *b= o.getNodePtr(); + if(!a || !b) + return; + sint32 val= a->getValue32(); + a->setValue32(b->getValue32()); + b->setValue32(val); + } + +} \ No newline at end of file diff --git a/code/ryzom/client/src/interface_v3/dbgroup_list_sheet.cpp b/code/ryzom/client/src/interface_v3/dbgroup_list_sheet.cpp index 0d9a9b0a1..c56b90d9e 100644 --- a/code/ryzom/client/src/interface_v3/dbgroup_list_sheet.cpp +++ b/code/ryzom/client/src/interface_v3/dbgroup_list_sheet.cpp @@ -22,7 +22,7 @@ #include "dbgroup_list_sheet.h" #include "group_container.h" #include "ctrl_button.h" -#include "interface_property.h" +#include "nel/gui/interface_property.h" #include "interface_manager.h" #include "action_handler.h" #include "../sheet_manager.h" diff --git a/code/ryzom/client/src/interface_v3/dbgroup_select_number.cpp b/code/ryzom/client/src/interface_v3/dbgroup_select_number.cpp index adce780f7..3e99469fd 100644 --- a/code/ryzom/client/src/interface_v3/dbgroup_select_number.cpp +++ b/code/ryzom/client/src/interface_v3/dbgroup_select_number.cpp @@ -24,7 +24,7 @@ #include "view_text.h" #include "view_bitmap.h" #include "ctrl_button.h" -#include "interface_property.h" +#include "nel/gui/interface_property.h" #include "interface_manager.h" #include "action_handler.h" diff --git a/code/ryzom/client/src/interface_v3/interface_anim.h b/code/ryzom/client/src/interface_v3/interface_anim.h index 46c28b793..9965d3723 100644 --- a/code/ryzom/client/src/interface_v3/interface_anim.h +++ b/code/ryzom/client/src/interface_v3/interface_anim.h @@ -19,7 +19,7 @@ #ifndef RZ_INTERFACE_ANIM_H #define RZ_INTERFACE_ANIM_H -#include "interface_property.h" +#include "nel/gui/interface_property.h" #include "interface_group.h" #include "interface_link.h" diff --git a/code/ryzom/client/src/interface_v3/interface_element.cpp b/code/ryzom/client/src/interface_v3/interface_element.cpp index 34119f7fa..63494ff53 100644 --- a/code/ryzom/client/src/interface_v3/interface_element.cpp +++ b/code/ryzom/client/src/interface_v3/interface_element.cpp @@ -19,7 +19,7 @@ #include "stdpch.h" #include "interface_group.h" -#include "interface_property.h" +#include "nel/gui/interface_property.h" #include "interface_manager.h" #include "group_container.h" #include "../misc.h" diff --git a/code/ryzom/client/src/interface_v3/interface_element.h b/code/ryzom/client/src/interface_v3/interface_element.h index 3b5a878cb..72663f09a 100644 --- a/code/ryzom/client/src/interface_v3/interface_element.h +++ b/code/ryzom/client/src/interface_v3/interface_element.h @@ -22,8 +22,9 @@ #include "nel/misc/types_nl.h" #include "nel/misc/string_mapper.h" #include "nel/misc/smart_ptr.h" -#include "interface_property.h" +#include "nel/gui/interface_property.h" #include "nel/gui/reflect.h" +#include "nel/gui/interface_common.h" using namespace NLGUI; @@ -31,26 +32,6 @@ using namespace NLGUI; class CInterfaceGroup; // ---------------------------------------------------------------------------- -enum THotSpot -{ - Hotspot_BL = 36, // 100100, - Hotspot_BM = 34, // 100010, - Hotspot_BR = 33, // 100001, - Hotspot_ML = 20, // 010100, - Hotspot_MM = 18, // 010010 - Hotspot_MR = 17, // 010001 - Hotspot_TL = 12, // 001100 - Hotspot_TM = 10, // 001010 - Hotspot_TR = 9, // 001001 - Hotspot_xR = 1, // 000001 - Hotspot_xM = 2, // 000010 - Hotspot_xL = 4, // 000100 - Hotspot_Bx = 32, // 100000 - Hotspot_Mx = 16, // 010000 - Hotspot_Tx = 8, // 001000 - Hotspot_TTAuto = 0, // Special For Tooltip PosRef. Auto mode. see CCtrlBase and tooltip info -}; - class CInterfaceLink; class CInterfaceElement; @@ -82,22 +63,6 @@ public: }; -#define DECLARE_UI_CLASS(_class_) \ - virtual std::string getClassName() {return #_class_;} \ - static NLMISC::IClassable *creator() {return new _class_(CViewBase::TCtorParam());} -#define REGISTER_UI_CLASS(_class_) \ - class CRegisterUIClassHelper_##_class_ \ - { \ - public: \ - CRegisterUIClassHelper_##_class_() \ - { \ - NLMISC::CClassRegistry::init(); \ - NLMISC::CClassRegistry::registerClass(#_class_, _class_::creator, typeid(_class_).name()); \ - } \ - } RegisterUIClassHelper_##_class_; - - - /** * class describing a localisable interface element, i.e. : an element with coordinates * \author Nicolas Brigand diff --git a/code/ryzom/client/src/interface_v3/interface_property.cpp b/code/ryzom/client/src/interface_v3/interface_property.cpp deleted file mode 100644 index 35a6b5329..000000000 --- a/code/ryzom/client/src/interface_v3/interface_property.cpp +++ /dev/null @@ -1,286 +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 "stdpch.h" - -#include "interface_property.h" -#include "interface_manager.h" -#include "nel/misc/rgba.h" - -using namespace NLMISC; -using namespace std; - -bool CInterfaceProperty::link( CCDBNodeLeaf *dbNode ) -{ - _VolatileValue = dbNode; - return (dbNode != NULL); -} - -bool CInterfaceProperty::link( CCDBNodeBranch *dbNode, const string &leafId, CCDBNodeLeaf *defaultLeaf ) -{ - // no branch => default leaf - if( !dbNode ) - { - _VolatileValue = defaultLeaf; - return false; - } - - // get the leaf - _VolatileValue = dbNode->getLeaf( leafId.c_str(), false ); - if( _VolatileValue ) - return true; - - // default - _VolatileValue = defaultLeaf; - return false; -} - -bool CInterfaceProperty::link (const char *DBProp) -{ - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(DBProp, false); - if (_VolatileValue == NULL) - { - - nlinfo("prop not created : %s", DBProp); - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(DBProp); - return false; - } - return true; -} - - -// ***************** -// sint64 operations -// ***************** - - -void CInterfaceProperty::readSInt64(const char * ptr,const string& id) -{ - string str (ptr); - //the value is volatile, and a database entry is created - if ( isdigit(*ptr) || *ptr=='-') - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - sint64 i; - fromString(ptr, i); - _VolatileValue->setValue64( i ); - } - //the value is volatile and points to a db entry created elsewhere - else - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); - } -} - - - - -// **************** -// float operations -// **************** - - -// ---------------------------------------------------------------------------- -void CInterfaceProperty::readDouble(const char * ptr,const string& id) -{ - string str (ptr); - if ( isdigit(*ptr) || *ptr=='-') - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - double buf; - fromString(ptr, buf); - sint64 i = *(sint64*)&buf; - _VolatileValue->setValue64( i ); - } - else - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); - } -} - -// ***************** -// sint32 operations -// ***************** - - -// ---------------------------------------------------------------------------- -void CInterfaceProperty::readSInt32 (const char *ptr, const string& id) -{ - string str (ptr); - //the value is volatile, and a database entry is created - if ( isdigit(*ptr) || *ptr=='-') - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - sint32 i; - fromString(ptr, i); - _VolatileValue->setValue32( i ); - } - //the value is volatile and points to a db entry created elsewhere - else - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); - } -} - - - -// ***************** -// rgba operations -// ***************** -CRGBA CInterfaceProperty::getRGBA() const -{ - CRGBA rgba; - sint64 buf = getSInt64(); - rgba.R = (sint8) (buf &255); - rgba.G = (sint8) ((buf>>8)&255 ); - rgba.B = (sint8) ((buf>>16)&255); - rgba.A = (sint8) ((buf>>24)&255); - return rgba; -} - - -void CInterfaceProperty::setRGBA (const CRGBA& value) -{ - setSInt64( (value.R )+ (((sint32)value.G)<<8) + (((sint32)value.B)<<16) + (((sint32)value.A)<<24)); -} - - -void CInterfaceProperty::readRGBA (const char *value,const string& id) -{ - string str (value); - if (isdigit(*value)) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - int r=0, g=0, b=0, a=255; - sscanf (value, "%d %d %d %d", &r, &g, &b, &a); - clamp (r, 0, 255); - clamp (g, 0, 255); - clamp (b, 0, 255); - clamp (a, 0, 255); - sint64 val = r+(g<<8)+(b<<16)+(a<<24); - setSInt64(val); - CRGBA rgba = getRGBA(); - } - else - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); - } -} - - -void CInterfaceProperty::readHotSpot (const char *ptr,const string& id) -{ - string str(ptr); - if ( !strcmp(ptr,"TL") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64((sint64)Hotspot_TL ); - } - else if ( !strcmp(ptr,"TM") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_TM ); - } - else if ( !strcmp(ptr,"TR") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_TR ); - } - else if ( !strcmp(ptr,"ML") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_ML ); - } - else if ( !strcmp(ptr,"MM") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_MM ); - } - else if ( !strcmp(ptr,"MR") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_MR ); - } - else if ( !strcmp(ptr,"BL") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_BL ); - } - else if ( !strcmp(ptr,"BM") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_BM ); - } - else if ( !strcmp(ptr,"BR") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue64( (sint64)Hotspot_BR ); - } - - else - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); -} - - -void CInterfaceProperty::setBool(bool value) -{ - _VolatileValue->setValue8 (value); -} - -bool CInterfaceProperty::getBool() const -{ - return _VolatileValue->getValue8() != 0 ? true : false; -} - -void CInterfaceProperty::readBool (const char* value,const string& id) -{ - string str (value); - if ( !strcmp(value,"true") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue8( (sint8)true ); - } - else if ( !strcmp(value,"false") ) - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - _VolatileValue->setValue8( (sint8)false ); - } - else if ( isdigit(*value) || *value=='-') - { - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); - sint8 value8; - fromString(value, value8); - _VolatileValue->setValue8( value8 ); - } - else - _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(str); -} - - -// *************************************************************************** -void CInterfaceProperty::swap32(CInterfaceProperty &o) -{ - CCDBNodeLeaf *a= getNodePtr(); - CCDBNodeLeaf *b= o.getNodePtr(); - if(!a || !b) - return; - sint32 val= a->getValue32(); - a->setValue32(b->getValue32()); - b->setValue32(val); -} - diff --git a/code/ryzom/client/src/interface_v3/interface_property.h b/code/ryzom/client/src/interface_v3/interface_property.h deleted file mode 100644 index 06355f17a..000000000 --- a/code/ryzom/client/src/interface_v3/interface_property.h +++ /dev/null @@ -1,107 +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 NL_INTERFACE_PROPERTY_H -#define NL_INTERFACE_PROPERTY_H - -#include "nel/misc/types_nl.h" -#include "nel/misc/rgba.h" - -#include "nel/misc/cdb.h" -#include "nel/misc/cdb_leaf.h" -#include "nel/misc/cdb_branch.h" -#include "../cdb_synchronised.h" - - -class CDBNodeProperty; -class IGetProperty; - -/** - * interface property - * class used to managed all the interface member values - * As the database contains only sint64, several methods are needed to do the conversion - * \author Nicolas Brigand - * \author Nevrax France - * \date 2002 - */ -class CInterfaceProperty -{ -public: - //enum defining a hot spot - - /// Constructor - CInterfaceProperty() - { - _VolatileValue = NULL; - } - - NLMISC::CCDBNodeLeaf* getNodePtr() const - { - return _VolatileValue; - } - - void setNodePtr(NLMISC::CCDBNodeLeaf *ptr) - { - _VolatileValue = ptr; - } - - - bool link (const char *DBProp); - bool link( NLMISC::CCDBNodeLeaf *dbNode ); - bool link( NLMISC::CCDBNodeBranch *dbNode, const std::string &leafId, NLMISC::CCDBNodeLeaf *defaultLeaf = NULL ); - - /// float operations - void setDouble (double value) {setSInt64((sint64&) value);} - double getDouble () const {sint64 i = getSInt64(); return (double &) i; } - void readDouble (const char* value, const std::string& id); - - /// sint32 operations - void setSInt32 (sint32 value) {_VolatileValue->setValue32 (value);} - sint32 getSInt32 () const {return _VolatileValue->getValue32();} - void readSInt32(const char* value, const std::string& id); - - /// sint64 operations - void setSInt64 (sint64 value) {_VolatileValue->setValue64(value);} - sint64 getSInt64 () const {return _VolatileValue->getValue64();} - void readSInt64(const char* value, const std::string& id); - - /// CRGBA operations - void setRGBA (const NLMISC::CRGBA & value); - NLMISC::CRGBA getRGBA () const; - void readRGBA (const char* value, const std::string& id); - - /// HotSpot operations - - void readHotSpot (const char* value, const std::string& id); - - /// bool operations - void setBool (bool value); - bool getBool () const; - void readBool (const char* value, const std::string& id); - - // Swap the content of this 2 property (no-op if one is NULL) - void swap32(CInterfaceProperty &o); - -private: - /// volatile value of the property (pointer to a leaf of the database) - NLMISC::CCDBNodeLeaf* _VolatileValue; -}; - -#endif // NL_INTERFACE_PROPERTY_H - -/* End of interface_property.h */ diff --git a/code/ryzom/client/src/time_client.cpp b/code/ryzom/client/src/time_client.cpp index fa8dd9f72..f07bfbf49 100644 --- a/code/ryzom/client/src/time_client.cpp +++ b/code/ryzom/client/src/time_client.cpp @@ -27,7 +27,7 @@ // client. #include "time_client.h" #include "interface_v3/interface_manager.h" -#include "interface_v3/interface_property.h" +#include "nel/gui/interface_property.h" #include "client_cfg.h" #include "net_manager.h" #include "game_share/zc_shard_common.h"