From 1eb09e31afe592b97321a4143043bc25af0236f2 Mon Sep 17 00:00:00 2001 From: dfighter1985 Date: Sun, 5 Aug 2012 19:24:09 +0200 Subject: [PATCH] CHANGED: #1471 Implemented property setting for CInterfaceGroup. --- code/nel/include/nel/gui/interface_group.h | 1 + code/nel/src/gui/interface_group.cpp | 181 +++++++++++++++++++++ 2 files changed, 182 insertions(+) diff --git a/code/nel/include/nel/gui/interface_group.h b/code/nel/include/nel/gui/interface_group.h index 2a44160a5..d00d850d6 100644 --- a/code/nel/include/nel/gui/interface_group.h +++ b/code/nel/include/nel/gui/interface_group.h @@ -42,6 +42,7 @@ namespace NLGUI virtual bool parse(xmlNodePtr cur, CInterfaceGroup * parentGroup); std::string getProperty( const std::string &name ) const; + void setProperty( const std::string &name, const std::string &value ); virtual uint32 getMemory (); diff --git a/code/nel/src/gui/interface_group.cpp b/code/nel/src/gui/interface_group.cpp index c03a238b6..7ab451b2b 100644 --- a/code/nel/src/gui/interface_group.cpp +++ b/code/nel/src/gui/interface_group.cpp @@ -483,6 +483,187 @@ namespace NLGUI return CCtrlBase::getProperty( name ); } + void CInterfaceGroup::setProperty( const std::string &name, const std::string &value ) + { + if( name == "overlappable" ) + { + bool b; + if( NLMISC::fromString( value, b ) ) + _Overlappable = b; + return; + } + else + if( name == "escapable" ) + { + bool b; + if( NLMISC::fromString( value, b ) ) + _Escapable = b; + return; + } + else + if( name == "child_resize_w" ) + { + bool b; + if( NLMISC::fromString( value, b ) ) + _ResizeFromChildW = b; + return; + } + else + if( name == "child_resize_h" ) + { + bool b; + if( NLMISC::fromString( value, b ) ) + _ResizeFromChildH = b; + return; + } + else + if( name == "child_resize_wmargin" ) + { + bool b; + if( NLMISC::fromString( value, b ) ) + _ResizeFromChildWMargin = b; + return; + } + else + if( name == "child_resize_hmargin" ) + { + bool b; + if( NLMISC::fromString( value, b ) ) + _ResizeFromChildHMargin = b; + return; + } + else + if( name == "on_active" ) + { + _AHOnActive = CAHManager::getInstance()->getAH( value, std::string() ); + return; + } + else + if( name == "on_active_params" ) + { + _AHOnActiveParams = value; + return; + } + else + if( name == "on_deactive" ) + { + _AHOnDeactive = CAHManager::getInstance()->getAH( value, std::string() ); + return; + } + else + if( name == "on_deactive_params" ) + { + _AHOnDeactiveParams = value; + } + else + if( name == "max_w" ) + { + sint32 i; + if( NLMISC::fromString( value, i ) ) + _MaxW = i; + return; + } + else + if( name == "max_h" ) + { + sint32 i; + if( NLMISC::fromString( value, i ) ) + _MaxH = i; + return; + } + else + if( name == "max_sizeref" ) + { + parseMaxSizeRef( value.c_str() ); + return; + } + else + if( name == "max_sizeparent" ) + { + std::string parentId; + + if( value != "parent" ){ + if( _Parent != NULL ) + parentId = _Parent->getId() + ":" + value; + else + parentId = _Parent->getId(); + } + CWidgetManager::getInstance()->getParser()->addParentSizeMaxAssociation( this, parentId ); + return; + } + else + if( name == "group_onclick_r" ) + { + _AHOnRightClick = CAHManager::getInstance()->getAH( value, std::string() ); + return; + } + else + if( name == "group_params_r" ) + { + _AHOnRightClickParams = value; + return; + } + else + if( name == "group_onclick_l" ) + { + _AHOnLeftClick = CAHManager::getInstance()->getAH( value, std::string() ); + return; + } + else + if( name == "group_params_l" ) + { + _AHOnLeftClickParams = value; + return; + } + else + if( name == "on_enter" ) + { + _AHOnEnter = CAHManager::getInstance()->getAH( value, std::string() ); + return; + } + else + if( name == "on_enter_params" ) + { + _AHOnEnterParams = value; + return; + } + else + if( name == "win_priority" ) + { + sint8 i; + if( NLMISC::fromString( value, i ) ) + _Priority = i; + return; + } + else + if( name == "use_cursor" ) + { + bool b; + if( NLMISC::fromString( value, b ) ) + _UseCursor = b; + return; + } + else + if( name == "on_escape" ) + { + _AHOnEscape = CAHManager::getInstance()->getAH( value, std::string() ); + return; + } + else + if( name == "on_escape_params" ) + { + _AHOnEscapeParams = value; + return; + } + else + if( name == "lua_class" ) + { + CWidgetManager::getInstance()->getParser()->addLuaClassAssociation( this, value ); + return; + } + else + CCtrlBase::setProperty( name, value ); + } // ------------------------------------------------------------------------------------------------ void CInterfaceGroup::parseMaxSizeRef(const char *ptr)