mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-17 13:01:42 +00:00
CHANGED: #1471 CCtrlBaseButton is now part of the NLGUI namespace.
--HG-- branch : gui-refactoring
This commit is contained in:
parent
dfb1f0ed37
commit
bf7d3afd38
9 changed files with 678 additions and 647 deletions
|
@ -22,18 +22,20 @@
|
|||
#include "nel/gui/ctrl_base.h"
|
||||
#include "nel/gui/action_handler.h"
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
|
||||
// ***************************************************************************
|
||||
/**
|
||||
// ***************************************************************************
|
||||
/**
|
||||
* Base Class For Buttons.
|
||||
* \author Lionel Berenguier
|
||||
* \author Nevrax France
|
||||
* \date 2003
|
||||
*/
|
||||
class CCtrlBaseButton : public CCtrlBase
|
||||
{
|
||||
class CCtrlBaseButton : public CCtrlBase
|
||||
{
|
||||
|
||||
public:
|
||||
public:
|
||||
enum EType { PushButton = 0, ToggleButton, RadioButton, ButtonTypeCount };
|
||||
|
||||
/// Constructor
|
||||
|
@ -161,7 +163,7 @@ public:
|
|||
REFLECT_LUA_METHOD("runLeftClickAction", luaRunLeftClickAction);
|
||||
REFLECT_EXPORT_END
|
||||
|
||||
protected:
|
||||
protected:
|
||||
EType _Type;
|
||||
|
||||
// State
|
||||
|
@ -246,8 +248,9 @@ protected:
|
|||
// call it at draw
|
||||
void updateOver(bool &lastOver);
|
||||
virtual void elementCaptured(CCtrlBase *capturedElement);
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // NL_CTRL_BASE_BUTTON_H
|
||||
|
||||
|
|
|
@ -26,19 +26,22 @@
|
|||
using namespace std;
|
||||
using namespace NLMISC;
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
static const uint KEY_REPEAT_MIN = 100;
|
||||
static const uint KEY_REPEAT_MAX = 750;
|
||||
|
||||
|
||||
sint64 CCtrlBaseButton::_LastLeftClickDate = 0;
|
||||
NLMISC::CRefPtr<CCtrlBaseButton> CCtrlBaseButton::_LastLeftClickButton;
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
CCtrlBaseButton::CCtrlBaseButton(const TCtorParam ¶m) : CCtrlBase(param), _Type(ToggleButton)
|
||||
namespace
|
||||
{
|
||||
const uint KEY_REPEAT_MIN = 100;
|
||||
const uint KEY_REPEAT_MAX = 750;
|
||||
}
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
|
||||
sint64 CCtrlBaseButton::_LastLeftClickDate = 0;
|
||||
NLMISC::CRefPtr<CCtrlBaseButton> CCtrlBaseButton::_LastLeftClickButton;
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
CCtrlBaseButton::CCtrlBaseButton(const TCtorParam ¶m) : CCtrlBase(param), _Type(ToggleButton)
|
||||
{
|
||||
_Pushed = _Over = false;
|
||||
_Frozen = false;
|
||||
_FrozenHalfTone = true;
|
||||
|
@ -57,13 +60,13 @@ CCtrlBaseButton::CCtrlBaseButton(const TCtorParam ¶m) : CCtrlBase(param), _T
|
|||
_AHOnClockTick = NULL;
|
||||
_AHOnLeftLongClick = NULL;
|
||||
_AHOnLeftDblClick = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
bool CCtrlBaseButton::parse (xmlNodePtr cur,CInterfaceGroup * parentGroup)
|
||||
{
|
||||
// ***************************************************************************
|
||||
bool CCtrlBaseButton::parse (xmlNodePtr cur,CInterfaceGroup * parentGroup)
|
||||
{
|
||||
CXMLAutoPtr prop;
|
||||
|
||||
//try to get props that can be inherited from groups
|
||||
|
@ -182,22 +185,22 @@ bool CCtrlBaseButton::parse (xmlNodePtr cur,CInterfaceGroup * parentGroup)
|
|||
_FrozenHalfTone = convertBool(prop);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setModulateGlobalColorAll(bool state)
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setModulateGlobalColorAll(bool state)
|
||||
{
|
||||
setModulateGlobalColor(state);
|
||||
setModulateGlobalColorNormal(state);
|
||||
setModulateGlobalColorPushed(state);
|
||||
setModulateGlobalColorOver(state);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
bool CCtrlBaseButton::handleEvent (const NLGUI::CEventDescriptor& event)
|
||||
{
|
||||
// ***************************************************************************
|
||||
bool CCtrlBaseButton::handleEvent (const NLGUI::CEventDescriptor& event)
|
||||
{
|
||||
if (CCtrlBase::handleEvent(event)) return true;
|
||||
if (!_Active || _Frozen)
|
||||
return false;
|
||||
|
@ -357,11 +360,11 @@ bool CCtrlBaseButton::handleEvent (const NLGUI::CEventDescriptor& event)
|
|||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::initRBRef()
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::initRBRef()
|
||||
{
|
||||
if (_RBRef != NULL) return;
|
||||
nlassert(_Parent);
|
||||
const vector<CCtrlBase*> &vCB = _Parent->getControls();
|
||||
|
@ -378,22 +381,22 @@ void CCtrlBaseButton::initRBRef()
|
|||
// If we are the first radio button of the group and not added
|
||||
if (i == vCB.size())
|
||||
_RBRef = &this->_RBRefBut;
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::initRBRefFromRadioButton(CCtrlBaseButton * pBut)
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::initRBRefFromRadioButton(CCtrlBaseButton * pBut)
|
||||
{
|
||||
if(pBut && pBut->_Type == RadioButton)
|
||||
{
|
||||
_RBRef = &(pBut->_RBRefBut);
|
||||
_RBRefBut=NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setPushed (bool state)
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setPushed (bool state)
|
||||
{
|
||||
_Pushed = state;
|
||||
|
||||
if (_Type == RadioButton && _RBRef)
|
||||
|
@ -408,38 +411,38 @@ void CCtrlBaseButton::setPushed (bool state)
|
|||
*_RBRef = NULL; // After that : All radio buttons are NOT pushed
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setFrozen (bool state)
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setFrozen (bool state)
|
||||
{
|
||||
_Frozen = state;
|
||||
if (_Frozen)
|
||||
{
|
||||
_Pushed = false;
|
||||
_Over = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setFrozenHalfTone(bool enabled)
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::setFrozenHalfTone(bool enabled)
|
||||
{
|
||||
_FrozenHalfTone = enabled;
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::unselect()
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::unselect()
|
||||
{
|
||||
if (_Type == RadioButton)
|
||||
{
|
||||
if (_RBRef) *_RBRef = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::updateOver(bool &lastOver)
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::updateOver(bool &lastOver)
|
||||
{
|
||||
if (!CWidgetManager::getInstance()->isMouseHandlingEnabled())
|
||||
{
|
||||
_Over = false;
|
||||
|
@ -476,22 +479,22 @@ void CCtrlBaseButton::updateOver(bool &lastOver)
|
|||
_Over = false;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::elementCaptured(CCtrlBase *capturedElement)
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::elementCaptured(CCtrlBase *capturedElement)
|
||||
{
|
||||
// if not me, then reset my '_Over'
|
||||
if (capturedElement != this)
|
||||
{
|
||||
_Over = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::runLeftClickAction()
|
||||
{
|
||||
// ***************************************************************************
|
||||
void CCtrlBaseButton::runLeftClickAction()
|
||||
{
|
||||
if(_AHOnLeftClick != NULL)
|
||||
{
|
||||
|
||||
|
@ -500,16 +503,18 @@ void CCtrlBaseButton::runLeftClickAction()
|
|||
CAHManager::getInstance()->runActionHandler (_AHOnLeftClick, this, _AHLeftClickParams);
|
||||
//pIM->submitEvent ("button_click:"+getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
int CCtrlBaseButton::luaRunLeftClickAction(CLuaState &ls)
|
||||
{
|
||||
// ***************************************************************************
|
||||
int CCtrlBaseButton::luaRunLeftClickAction(CLuaState &ls)
|
||||
{
|
||||
const char *funcName = "onLeftClick";
|
||||
CLuaIHM::checkArgCount(ls, funcName, 0);
|
||||
|
||||
runLeftClickAction();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -26,9 +26,14 @@
|
|||
#include "game_share/skills.h"
|
||||
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
class CCtrlBaseButton;
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
class CDBCtrlSheet;
|
||||
class CCtrlBaseButton;
|
||||
class CSBrickSheet;
|
||||
class CViewBitmap;
|
||||
class CViewText;
|
||||
|
|
|
@ -22,11 +22,13 @@
|
|||
#include "nel/misc/types_nl.h"
|
||||
#include "nel/gui/interface_group.h"
|
||||
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
class CCtrlBaseButton;
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
class CViewText;
|
||||
class CCtrlBaseButton;
|
||||
class CGroupMenu;
|
||||
|
||||
// ***************************************************************************
|
||||
|
|
|
@ -23,9 +23,12 @@
|
|||
#include "list_sheet_base.h"
|
||||
#include "dbctrl_sheet.h"
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
class CCtrlBaseButton;
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
class CCtrlBaseButton;
|
||||
class CCtrlScroll;
|
||||
class CGroupContainer;
|
||||
|
||||
|
|
|
@ -23,11 +23,15 @@
|
|||
#include "nel/gui/interface_group.h"
|
||||
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
class CCtrlBaseButton;
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
class CViewBitmap;
|
||||
class CViewText;
|
||||
class CCtrlBaseButton;
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
|
|
|
@ -23,9 +23,13 @@
|
|||
#include "nel/misc/types_nl.h"
|
||||
#include "nel/gui/interface_group.h"
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
class CCtrlBaseButton;
|
||||
}
|
||||
|
||||
class CGroupList;
|
||||
class CCtrlScroll;
|
||||
class CCtrlBaseButton;
|
||||
|
||||
// Can be used to build a chat window or anything that displays sequences of strings
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@ namespace NLGUI
|
|||
{
|
||||
class CInterfaceElement;
|
||||
class CCtrlBase;
|
||||
class CCtrlBaseButton;
|
||||
class CInterfaceGroup;
|
||||
}
|
||||
|
||||
|
@ -62,7 +63,7 @@ typedef CInterfacePtr<class CCtrlTextButton>::TInterfacePtr CCtrlTextButtonPtr;
|
|||
typedef CInterfacePtr<class CViewText>::TInterfacePtr CViewTextPtr;
|
||||
typedef CInterfacePtr<class CViewTextMenu>::TInterfacePtr CViewTextMenuPtr;
|
||||
typedef CInterfacePtr<CCtrlBase>::TInterfacePtr CCtrlBasePtr;
|
||||
typedef CInterfacePtr<class CCtrlBaseButton>::TInterfacePtr CCtrlBaseButtonPtr;
|
||||
typedef CInterfacePtr<CCtrlBaseButton>::TInterfacePtr CCtrlBaseButtonPtr;
|
||||
typedef CInterfacePtr<class CGroupContainer>::TInterfacePtr CGroupContainerPtr;
|
||||
|
||||
#endif // NL_INTERFACE_POINTER_H
|
||||
|
|
|
@ -25,9 +25,13 @@ extern "C"
|
|||
#include "WWWInit.h"
|
||||
}
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
class CCtrlBaseButton;
|
||||
}
|
||||
|
||||
class CGroupList;
|
||||
class CCtrlScroll;
|
||||
class CCtrlBaseButton;
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
|
|
Loading…
Reference in a new issue