From 942acc490bb727d787c4866e2ad64ab3b704774e Mon Sep 17 00:00:00 2001 From: dfighter1985 Date: Sat, 28 Jul 2012 20:07:20 +0200 Subject: [PATCH] CHANGED: #1471 Implemented property querying for CCtrlBaseButton. --- code/nel/include/nel/gui/ctrl_base_button.h | 12 +- code/nel/include/nel/gui/ctrl_button.h | 2 + code/nel/src/gui/ctrl_base_button.cpp | 162 ++++++++++++++++++++ code/nel/src/gui/ctrl_button.cpp | 4 + 4 files changed, 179 insertions(+), 1 deletion(-) diff --git a/code/nel/include/nel/gui/ctrl_base_button.h b/code/nel/include/nel/gui/ctrl_base_button.h index dab368293..9025ab796 100644 --- a/code/nel/include/nel/gui/ctrl_base_button.h +++ b/code/nel/include/nel/gui/ctrl_base_button.h @@ -41,6 +41,8 @@ namespace NLGUI /// Constructor CCtrlBaseButton(const TCtorParam ¶m); + std::string getProperty( const std::string &name ) const; + virtual bool parse (xmlNodePtr cur,CInterfaceGroup * parentGroup); virtual bool handleEvent (const NLGUI::CEventDescriptor& event); @@ -48,6 +50,7 @@ namespace NLGUI // @{ void setType (EType t) { _Type = t; } EType getType() { return _Type; } + std::string getTypeString() const; void setClickWhenPushed(bool click) { _ClickWhenPushed = click; } bool getClickWhenPushed() const { return _ClickWhenPushed; } @@ -125,10 +128,17 @@ namespace NLGUI void setParamsOnClockTick (const std::string &ahParamsName) { _AHClockTickParams = ahParamsName; } // get Event part - std::string _getActionOnLeftClick() const { return CAHManager::getInstance()->getAHName(_AHOnLeftClick); } + std::string _getActionOnOver() const{ return CAHManager::getInstance()->getAHName( _AHOnOver ); } + std::string _getActionOnLeftClick() const { return CAHManager::getInstance()->getAHName( _AHOnLeftClick ); } + std::string _getActionOnLeftLongClick() const { return CAHManager::getInstance()->getAHName( _AHOnLeftLongClick ); } + std::string _getActionOnDblLeftClick() const { return CAHManager::getInstance()->getAHName( _AHOnLeftDblClick ); } + std::string _getActionOnRightClick() const { return CAHManager::getInstance()->getAHName( _AHOnRightClick ); } + std::string _getActionOnClockTick() const { return CAHManager::getInstance()->getAHName( _AHOnClockTick ); } + IActionHandler *getActionOnLeftClick () const { return _AHOnLeftClick; } IActionHandler *getActionOnRightClick () const { return _AHOnRightClick; } IActionHandler *getActionOnClockTick () const { return _AHOnClockTick; } + std::string _getParamsOnOver() const{ return _AHOverParams.toString(); } std::string _getParamsOnLeftClick () const { return _AHLeftClickParams.toString(); } const std::string &getParamsOnLeftClick () const { return _AHLeftClickParams; } const std::string &getParamsOnRightClick () const { return _AHRightClickParams; } diff --git a/code/nel/include/nel/gui/ctrl_button.h b/code/nel/include/nel/gui/ctrl_button.h index f3367968b..4fc44ae02 100644 --- a/code/nel/include/nel/gui/ctrl_button.h +++ b/code/nel/include/nel/gui/ctrl_button.h @@ -43,6 +43,8 @@ namespace NLGUI _Align = 0; } + std::string getProperty( const std::string &name ) const; + // Init part virtual bool parse (xmlNodePtr cur,CInterfaceGroup * parentGroup); diff --git a/code/nel/src/gui/ctrl_base_button.cpp b/code/nel/src/gui/ctrl_base_button.cpp index bd42a30fc..dd81f205f 100644 --- a/code/nel/src/gui/ctrl_base_button.cpp +++ b/code/nel/src/gui/ctrl_base_button.cpp @@ -62,6 +62,148 @@ namespace NLGUI _AHOnLeftDblClick = NULL; } + std::string CCtrlBaseButton::getProperty( const std::string &name ) const + { + if( name == "button_type" ) + { + return getTypeString(); + } + else + if( name == "pushed" ) + { + return toString( _Pushed ); + } + else + if( name == "over_when_pushed" ) + { + return toString( _OverWhenPushed ); + } + else + if( name == "clicked_when_pushed" ) + { + return toString( _ClickWhenPushed ); + } + else + if( name == "color" ) + { + return getColorAsString(); + } + else + if( name == "col_pushed" ) + { + return getColorPushedAsString(); + } + else + if( name == "col_over" ) + { + return getColorOverAsString(); + } + else + if( name == "global_color_normal" ) + { + return toString( _ModulateGlobalColorNormal ); + } + else + if( name == "global_color_pushed" ) + { + return toString( _ModulateGlobalColorPushed ); + } + else + if( name == "global_color_over" ) + { + return toString( _ModulateGlobalColorOver ); + } + else + if( name == "onover" ) + { + return _getActionOnOver(); + } + else + if( name == "params_over" ) + { + return _getParamsOnOver(); + } + else + if( name == "onclick_l" ) + { + return _getActionOnLeftClick(); + } + else + if( name == "params_l" ) + { + return _getParamsOnLeftClick(); + } + else + if( name == "ondblclick_l" ) + { + return _getActionOnDblLeftClick(); + } + else + if( name == "params_dblclick_l" ) + { + return _AHLeftDblClickParams.toString(); + } + else + if( name == "onlongclick_l" ) + { + return _getActionOnLeftLongClick(); + } + else + if( name == "params_longclick_l" ) + { + return _AHLeftLongClickParams.toString(); + } + else + if( name == "onclick_r" ) + { + return _getActionOnRightClick(); + } + else + if( name == "params_r" ) + { + return _AHRightClickParams.toString(); + } + else + if( name == "onclock_tick" ) + { + return _getActionOnClockTick(); + } + else + if( name == "params_clock_tick" ) + { + return _AHClockTickParams.toString(); + } + else + if( name == "menu_l" ) + { + return _ListMenuLeft.toString(); + } + else + if( name == "menu_r" ) + { + return _ListMenuRight.toString(); + } + else + if( name == "menu_b" ) + { + if( _ListMenuLeft.toString() == _ListMenuRight.toString() ) + return _ListMenuLeft.toString(); + else + return ""; + } + else + if( name == "frozen" ) + { + return toString( _Frozen ); + } + else + if( name == "frozen_half_tone" ) + { + return toString( _FrozenHalfTone ); + } + else + return CCtrlBase::getProperty( name ); + } // *************************************************************************** @@ -368,6 +510,26 @@ namespace NLGUI return false; } + std::string CCtrlBaseButton::getTypeString() const + { + switch( _Type ) + { + case PushButton: + return "push_button"; + break; + + case ToggleButton: + return "toggle_button"; + break; + + case RadioButton: + return "radio_button"; + break; + + } + return ""; + } + // *************************************************************************** void CCtrlBaseButton::initRBRef() { diff --git a/code/nel/src/gui/ctrl_button.cpp b/code/nel/src/gui/ctrl_button.cpp index 0683cf4cf..0cd859a09 100644 --- a/code/nel/src/gui/ctrl_button.cpp +++ b/code/nel/src/gui/ctrl_button.cpp @@ -28,6 +28,10 @@ NLMISC_REGISTER_OBJECT(CViewBase, CCtrlButton, std::string, "button"); namespace NLGUI { + std::string CCtrlButton::getProperty( const std::string &name ) const + { + return CCtrlBaseButton::getProperty( name ); + } // ---------------------------------------------------------------------------- bool CCtrlButton::parse(xmlNodePtr cur, CInterfaceGroup * parentGroup)