diff --git a/code/ryzom/client/src/interface_v3/action_handler.cpp b/code/ryzom/client/src/interface_v3/action_handler.cpp index 6ec889ca4..1961a5315 100644 --- a/code/ryzom/client/src/interface_v3/action_handler.cpp +++ b/code/ryzom/client/src/interface_v3/action_handler.cpp @@ -15,7 +15,9 @@ // along with this program. If not, see . #include "action_handler.h" -#include "group_container.h" +//#include "group_container.h" +#include "group_container_base.h" +#include "nel/gui/interface_property.h" #include "nel/gui/interface_expr.h" #include "nel/gui/db_manager.h" #include "interface_link.h" @@ -481,7 +483,7 @@ REGISTER_ACTION_HANDLER (CAHResizeW, "resize_w"); //////////////////////////////// // the container whose alpha is being edited -static CGroupContainer *AlphaChooserTarget = NULL; +static CGroupContainerBase *AlphaChooserTarget = NULL; static bool OldUseGlobalAlpha; static uint8 OldContentAlpha; static uint8 OldBgAlpha; @@ -518,11 +520,11 @@ class CAHChooseUIAlpha : public IActionHandler public: virtual void execute (CCtrlBase *pCaller, const std::string &/* Params */) { - CGroupContainer *gc = NULL; + CGroupContainerBase *gc = NULL; CCtrlBase *cb = pCaller; while (cb) { - gc = dynamic_cast(cb); + gc = dynamic_cast(cb); if (gc) break; cb = cb->getParent(); } @@ -635,11 +637,11 @@ class CAHLockUnlock : public IActionHandler { virtual void execute (CCtrlBase *pCaller, const std::string &/* Params */) { - CGroupContainer *gc = NULL; + CGroupContainerBase *gc = NULL; CCtrlBase *cb = pCaller; while (cb) { - gc = dynamic_cast(cb); + gc = dynamic_cast< CGroupContainerBase* >(cb); if (gc) break; cb = cb->getParent(); } @@ -655,7 +657,7 @@ class CAHSetTransparent : public IActionHandler { virtual void execute (CCtrlBase * /* pCaller */, const std::string &Params) { - CGroupContainer *pGC = dynamic_cast(CWidgetManager::getInstance()->getElementFromId(Params)); + CGroupContainerBase *pGC = dynamic_cast< CGroupContainerBase* >(CWidgetManager::getInstance()->getElementFromId(Params)); if (pGC != NULL) { pGC->setUseGlobalAlpha(false); @@ -678,7 +680,7 @@ class CAHSetAlpha : public IActionHandler uint8 alpha; fromString(getParam (Params, "alpha"), alpha); - CGroupContainer *pGC = dynamic_cast(CWidgetManager::getInstance()->getElementFromId(ui)); + CGroupContainerBase *pGC = dynamic_cast(CWidgetManager::getInstance()->getElementFromId(ui)); if (pGC != NULL) { pGC->setUseGlobalAlpha(false); diff --git a/code/ryzom/client/src/interface_v3/group_container.cpp b/code/ryzom/client/src/interface_v3/group_container.cpp index da843ae0c..0714dd2eb 100644 --- a/code/ryzom/client/src/interface_v3/group_container.cpp +++ b/code/ryzom/client/src/interface_v3/group_container.cpp @@ -1200,10 +1200,6 @@ CGroupContainer::CGroupContainer(const TCtorParam ¶m) // faster than a virual call _IsGroupContainer = true; - _ContentAlpha = 255; - _ContainerAlpha = 255; - _RolloverAlphaContainer = 0; - _RolloverAlphaContent = 0; _CurrentContainerAlpha = 255; _CurrentContentAlpha = 255; _CurrentRolloverAlphaContainer = 0.f; @@ -1250,7 +1246,6 @@ CGroupContainer::CGroupContainer(const TCtorParam ¶m) _OpenAtStart = false; _OpenedBeforePopup = false; - _Locked = false; _Lockable = true; _EnabledResizer = true; @@ -1265,7 +1260,6 @@ CGroupContainer::CGroupContainer(const TCtorParam ¶m) _MovingInParentList = false; _ActiveSavable = true; _Savable = true; - _UseGlobalAlpha = true; _TitleClass = TitleText; _TouchFlag = false; _PositionBackuped = false; @@ -4028,52 +4022,3 @@ void CGroupContainer::setContentYOffset(sint32 value) } - - -// *************************************************************************** -void CGroupContainer::triggerAlphaSettingsChangedAH() -{ - if (_AHOnAlphaSettingsChanged != NULL) - { - CInterfaceManager *im = CInterfaceManager::getInstance(); - CAHManager::getInstance()->runActionHandler(_AHOnAlphaSettingsChanged, this, _AHOnAlphaSettingsChangedParams); - } -} - - -// *************************************************************************** -void CGroupContainer::setUseGlobalAlpha(bool use) -{ - _UseGlobalAlpha = use; - triggerAlphaSettingsChangedAH(); -} - -// *************************************************************************** -void CGroupContainer::setContainerAlpha(uint8 alpha) -{ - _ContainerAlpha = alpha; - triggerAlphaSettingsChangedAH(); -} - -// *************************************************************************** -void CGroupContainer::setContentAlpha(uint8 alpha) -{ - _ContentAlpha = alpha; - triggerAlphaSettingsChangedAH(); -} - -// *************************************************************************** -void CGroupContainer::setRolloverAlphaContent(uint8 alpha) -{ - _RolloverAlphaContent = alpha; - triggerAlphaSettingsChangedAH(); -} - -// *************************************************************************** -void CGroupContainer::setRolloverAlphaContainer(uint8 alpha) -{ - _RolloverAlphaContainer = alpha; - triggerAlphaSettingsChangedAH(); -} - - diff --git a/code/ryzom/client/src/interface_v3/group_container.h b/code/ryzom/client/src/interface_v3/group_container.h index 48be495de..c1268870c 100644 --- a/code/ryzom/client/src/interface_v3/group_container.h +++ b/code/ryzom/client/src/interface_v3/group_container.h @@ -289,13 +289,7 @@ public: REFLECT_BOOL("opened", isOpen, setOpen); REFLECT_BOOL("lockable", isLockable, setLockable); REFLECT_BOOL("locked", isLocked, setLocked); - REFLECT_SINT32("container_alpha", getContainerAlphaAsSInt32, setContainerAlpha); - REFLECT_SINT32("content_alpha", getContentAlphaAsSInt32, setContentAlpha); - REFLECT_SINT32("rollover_content_alpha", getRolloverAlphaContentAsSInt32, setRolloverAlphaContent); - REFLECT_SINT32("rollover_container_alpha", getRolloverAlphaContainerAsSInt32, setRolloverAlphaContainer); - REFLECT_BOOL("use_global_alpha_settings", isUsingGlobalAlpha, setUseGlobalAlpha); - REFLECT_STRING("on_alpha_settings_changed", getAHOnAlphaSettingsChanged, setAHOnAlphaSettingsChanged); - REFLECT_STRING("on_alpha_settings_changed_aparams", getAHOnAlphaSettingsChangedParams, setAHOnAlphaSettingsChangedParams); + REFLECT_BOOL("header_active", getHeaderActive, setHeaderActive); REFLECT_BOOL("right_button_enabled", getRightButtonEnabled, setRightButtonEnabled); REFLECT_EXPORT_END @@ -372,33 +366,8 @@ public: sint32 getRefW() const { return _RefW; } - // alpha for content / container - void setUseGlobalAlpha(bool use); - void setContainerAlpha(uint8 alpha); - void setContentAlpha(uint8 alpha); - void setRolloverAlphaContent(uint8 alpha); - void setRolloverAlphaContainer(uint8 alpha); - - // sin32 versions for export - void setContainerAlpha(sint32 alpha) { setContainerAlpha((uint8) alpha); } - void setContentAlpha(sint32 alpha) { setContentAlpha((uint8) alpha); } - void setRolloverAlphaContent(sint32 alpha) { setRolloverAlphaContent((uint8) alpha); } - void setRolloverAlphaContainer(sint32 alpha) { setRolloverAlphaContainer((uint8) alpha); } - - bool isUsingGlobalAlpha() const { return _UseGlobalAlpha; } - - uint8 getContainerAlpha() const { return _ContainerAlpha; } - uint8 getContentAlpha() const { return _ContentAlpha; } uint8 getCurrentContainerAlpha() const { return _CurrentContainerAlpha; } uint8 getCurrentContentAlpha() const { return _CurrentContentAlpha; } - uint8 getRolloverAlphaContent() const { return _RolloverAlphaContent; } - uint8 getRolloverAlphaContainer() const { return _RolloverAlphaContainer; } - - // for export - sint32 getContainerAlphaAsSInt32() const { return (sint32) _ContainerAlpha; } - sint32 getContentAlphaAsSInt32() const { return (sint32) _ContentAlpha; } - sint32 getRolloverAlphaContentAsSInt32() const { return (sint32) _RolloverAlphaContent; } - sint32 getRolloverAlphaContainerAsSInt32() const { return (sint32) _RolloverAlphaContainer; } /** Increase the rollover alpha for the current frame. * Example of use : an edit box that has focus in a group container @@ -413,7 +382,6 @@ public: void setLockable(bool lockable); bool isLockable() const { return _Lockable; } void setLocked(bool locked); - bool isLocked() const { return _Locked; } // to be called by the 'deactive check' handler static void validateCanDeactivate(bool validate) { _ValidateCanDeactivate = validate; } @@ -439,17 +407,6 @@ public: void setOnCloseButtonHandler(const std::string &h) { _AHOnCloseButton = CAHManager::getInstance()->getAH(h,_AHOnCloseButtonParams); } void setOnCloseButtonParams(const std::string &p) { _AHOnCloseButtonParams = p; } - - std::string getAHOnAlphaSettingsChanged() const { return CAHManager::getInstance()->getAHName(_AHOnAlphaSettingsChanged); } - std::string getAHOnAlphaSettingsChangedParams() const { return _AHOnAlphaSettingsChangedParams; } - - void setAHOnAlphaSettingsChanged(const std::string &h) { _AHOnAlphaSettingsChanged = CAHManager::getInstance()->getAH(h, _AHOnAlphaSettingsChangedParams); } - void setAHOnAlphaSettingsChangedParams(const std::string &p) { _AHOnAlphaSettingsChangedParams = p; } - - - - - void setModalParentList (const std::string &name); bool checkIfModal(const NLGUI::CEventDescriptor& event); // Return true if we can handle the event (and prevent from selecting a window) bool isGrayed() const; @@ -506,13 +463,9 @@ public: sint32 getTitleDeltaMaxW() const { return _TitleDeltaMaxW; } protected: - uint8 _ContainerAlpha; - uint8 _ContentAlpha; uint8 _CurrentContainerAlpha; uint8 _CurrentContentAlpha; - uint8 _RolloverAlphaContainer; // Alpha for the window when mouse not over it uint8 _ICurrentRolloverAlphaContainer; - uint8 _RolloverAlphaContent; // Alpha for the content when mouse not over it uint8 _HighLightedAlpha; float _CurrentRolloverAlphaContainer; float _CurrentRolloverAlphaContent; @@ -585,8 +538,6 @@ protected: CStringShared _AHOnMoveParams; IActionHandler *_AHOnResize; CStringShared _AHOnResizeParams; - IActionHandler *_AHOnAlphaSettingsChanged; - CStringShared _AHOnAlphaSettingsChangedParams; IActionHandler *_AHOnBeginMove; CStringShared _AHOnBeginMoveParams; @@ -612,7 +563,6 @@ protected: // Move management bool _Movable : 1; // Is the container movable ? bool _MovableInParentList: 1; - bool _Locked : 1; // Is the container locked (ie override movable, openable ...) bool _Lockable : 1; bool _MovingInParentList : 1; // Mgt : currently moving ? @@ -628,7 +578,6 @@ protected: bool _Savable : 1; bool _ActiveSavable : 1; - bool _UseGlobalAlpha : 1; // Display title background or not bool _HeaderActive : 1; @@ -694,7 +643,6 @@ private: enum {NumLayerName=10}; static const std::string _OptionLayerName[NumLayerName]; - void triggerAlphaSettingsChangedAH(); public: // for use by CCtrlMover // Tell that this group is moving in its parent list diff --git a/code/ryzom/client/src/interface_v3/group_container_base.cpp b/code/ryzom/client/src/interface_v3/group_container_base.cpp index 71deb661f..79144c787 100644 --- a/code/ryzom/client/src/interface_v3/group_container_base.cpp +++ b/code/ryzom/client/src/interface_v3/group_container_base.cpp @@ -20,6 +20,12 @@ CGroupContainerBase::CGroupContainerBase( const CViewBase::TCtorParam ¶m ) : CInterfaceGroup( param ) { + _ContentAlpha = 255; + _ContainerAlpha = 255; + _RolloverAlphaContainer = 0; + _RolloverAlphaContent = 0; + _Locked = false; + _UseGlobalAlpha = true; } CGroupContainerBase::~CGroupContainerBase() @@ -41,3 +47,46 @@ void CGroupContainerBase::setLocked( bool locked ) } +// *************************************************************************** +void CGroupContainerBase::triggerAlphaSettingsChangedAH() +{ + if (_AHOnAlphaSettingsChanged != NULL) + CAHManager::getInstance()->runActionHandler(_AHOnAlphaSettingsChanged, this, _AHOnAlphaSettingsChangedParams); +} + + +// *************************************************************************** +void CGroupContainerBase::setUseGlobalAlpha(bool use) +{ + _UseGlobalAlpha = use; + triggerAlphaSettingsChangedAH(); +} + +// *************************************************************************** +void CGroupContainerBase::setContainerAlpha(uint8 alpha) +{ + _ContainerAlpha = alpha; + triggerAlphaSettingsChangedAH(); +} + +// *************************************************************************** +void CGroupContainerBase::setContentAlpha(uint8 alpha) +{ + _ContentAlpha = alpha; + triggerAlphaSettingsChangedAH(); +} + +// *************************************************************************** +void CGroupContainerBase::setRolloverAlphaContent(uint8 alpha) +{ + _RolloverAlphaContent = alpha; + triggerAlphaSettingsChangedAH(); +} + +// *************************************************************************** +void CGroupContainerBase::setRolloverAlphaContainer(uint8 alpha) +{ + _RolloverAlphaContainer = alpha; + triggerAlphaSettingsChangedAH(); +} + diff --git a/code/ryzom/client/src/interface_v3/group_container_base.h b/code/ryzom/client/src/interface_v3/group_container_base.h index 316e83cf9..4e2e2f28e 100644 --- a/code/ryzom/client/src/interface_v3/group_container_base.h +++ b/code/ryzom/client/src/interface_v3/group_container_base.h @@ -20,20 +20,72 @@ #include "interface_group.h" + class CGroupContainerBase : public CInterfaceGroup { public: DECLARE_UI_CLASS( CGroupContainerBase ) + CGroupContainerBase( const TCtorParam ¶m ); virtual ~CGroupContainerBase(); virtual void removeAllContainers(); virtual void setLocked( bool locked ); + bool isLocked() const { return _Locked; } + + uint8 getContainerAlpha() const { return _ContainerAlpha; } + uint8 getContentAlpha() const { return _ContentAlpha; } + uint8 getRolloverAlphaContent() const { return _RolloverAlphaContent; } + uint8 getRolloverAlphaContainer() const { return _RolloverAlphaContainer; } + + void setContainerAlpha( uint8 alpha ); + void setContentAlpha( uint8 alpha ); + void setRolloverAlphaContent( uint8 alpha ); + void setRolloverAlphaContainer( uint8 alpha ); + + // for export + sint32 getContainerAlphaAsSInt32() const{ return (sint32)_ContainerAlpha; } + sint32 getContentAlphaAsSInt32() const{ return (sint32)_ContentAlpha; } + sint32 getRolloverAlphaContentAsSInt32() const{ return (sint32)_RolloverAlphaContent; } + sint32 getRolloverAlphaContainerAsSInt32() const{ return (sint32)_RolloverAlphaContainer; } + + // sin32 versions for export + void setContainerAlpha( sint32 alpha ){ setContainerAlpha((uint8) alpha); } + void setContentAlpha( sint32 alpha ){ setContentAlpha((uint8) alpha); } + void setRolloverAlphaContent( sint32 alpha ){ setRolloverAlphaContent((uint8) alpha); } + void setRolloverAlphaContainer( sint32 alpha ){ setRolloverAlphaContainer((uint8) alpha); } + + void setUseGlobalAlpha( bool use ); + bool isUsingGlobalAlpha() const{ return _UseGlobalAlpha; } + + std::string getAHOnAlphaSettingsChanged() const{ return CAHManager::getInstance()->getAHName( _AHOnAlphaSettingsChanged ); } + std::string getAHOnAlphaSettingsChangedParams() const{ return _AHOnAlphaSettingsChangedParams; } + + void setAHOnAlphaSettingsChanged( const std::string &h ){ _AHOnAlphaSettingsChanged = CAHManager::getInstance()->getAH( h, _AHOnAlphaSettingsChangedParams ); } + void setAHOnAlphaSettingsChangedParams( const std::string &p ){ _AHOnAlphaSettingsChangedParams = p; } REFLECT_EXPORT_START( CGroupContainerBase, CInterfaceGroup ) + REFLECT_SINT32("container_alpha", getContainerAlphaAsSInt32, setContainerAlpha); + REFLECT_SINT32("content_alpha", getContentAlphaAsSInt32, setContentAlpha); + REFLECT_SINT32("rollover_content_alpha", getRolloverAlphaContentAsSInt32, setRolloverAlphaContent); + REFLECT_SINT32("rollover_container_alpha", getRolloverAlphaContainerAsSInt32, setRolloverAlphaContainer); + REFLECT_BOOL("use_global_alpha_settings", isUsingGlobalAlpha, setUseGlobalAlpha); + REFLECT_STRING("on_alpha_settings_changed", getAHOnAlphaSettingsChanged, setAHOnAlphaSettingsChanged); + REFLECT_STRING("on_alpha_settings_changed_aparams", getAHOnAlphaSettingsChangedParams, setAHOnAlphaSettingsChangedParams); REFLECT_EXPORT_END protected: + void triggerAlphaSettingsChangedAH(); + + uint8 _ContainerAlpha; + uint8 _ContentAlpha; + uint8 _RolloverAlphaContainer; // Alpha for the window when mouse not over it + uint8 _RolloverAlphaContent; // Alpha for the content when mouse not over it + bool _Locked : 1; // Is the container locked (ie override movable, openable ...) + bool _UseGlobalAlpha : 1; + + IActionHandler *_AHOnAlphaSettingsChanged; + CStringShared _AHOnAlphaSettingsChangedParams; private: