CHANGED: #1471 Moved some code from CGroupContainer to CGroupContainerBase. CAHManager now depends on CGroupContainerBase instead of CGroupContainer.
--HG-- branch : gui-refactoring
This commit is contained in:
parent
423ce45141
commit
50ec12947f
5 changed files with 112 additions and 116 deletions
|
@ -15,7 +15,9 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#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<CGroupContainer *>(cb);
|
||||
gc = dynamic_cast<CGroupContainerBase*>(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<CGroupContainer *>(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<CGroupContainer*>(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<CGroupContainer*>(CWidgetManager::getInstance()->getElementFromId(ui));
|
||||
CGroupContainerBase *pGC = dynamic_cast<CGroupContainerBase*>(CWidgetManager::getInstance()->getElementFromId(ui));
|
||||
if (pGC != NULL)
|
||||
{
|
||||
pGC->setUseGlobalAlpha(false);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
Loading…
Reference in a new issue