mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-02 16:44:47 +00:00
CHANGED: #1471 CInterfaceGroup no longer depends on CCtrlScroll. Instead if depends on a new CCtrlScrollBase class.
--HG-- branch : gui-refactoring
This commit is contained in:
parent
3c73de81a3
commit
2e9779a591
7 changed files with 140 additions and 18 deletions
|
@ -6,6 +6,8 @@
|
||||||
class CCtrlDraggable : public CCtrlBase
|
class CCtrlDraggable : public CCtrlBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
DECLARE_UI_CLASS( CCtrlDraggable )
|
||||||
|
|
||||||
CCtrlDraggable( const TCtorParam ¶m );
|
CCtrlDraggable( const TCtorParam ¶m );
|
||||||
virtual ~CCtrlDraggable(){};
|
virtual ~CCtrlDraggable(){};
|
||||||
|
|
||||||
|
@ -21,6 +23,8 @@ public:
|
||||||
_LastDraggedSheet = NULL;
|
_LastDraggedSheet = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Necessary because of reflection, no other purpose
|
||||||
|
void draw(){}
|
||||||
|
|
||||||
REFLECT_EXPORT_START(CCtrlDraggable, CCtrlBase)
|
REFLECT_EXPORT_START(CCtrlDraggable, CCtrlBase)
|
||||||
REFLECT_BOOL("dragable", isDraggable, setDraggable);
|
REFLECT_BOOL("dragable", isDraggable, setDraggable);
|
||||||
|
|
|
@ -15,8 +15,6 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
#include "stdpch.h"*/
|
|
||||||
#include "interface_manager.h"
|
#include "interface_manager.h"
|
||||||
#include "widget_manager.h"
|
#include "widget_manager.h"
|
||||||
#include "ctrl_scroll.h"
|
#include "ctrl_scroll.h"
|
||||||
|
@ -33,7 +31,7 @@ NLMISC_REGISTER_OBJECT(CViewBase, CCtrlScroll, std::string, "scroll");
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
CCtrlScroll::CCtrlScroll(const TCtorParam ¶m)
|
CCtrlScroll::CCtrlScroll(const TCtorParam ¶m)
|
||||||
: CCtrlBase(param)
|
: CCtrlScrollBase(param)
|
||||||
{
|
{
|
||||||
_Vertical = true;
|
_Vertical = true;
|
||||||
_Aligned = 1;
|
_Aligned = 1;
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#define RZ_CTRL_SCROLL_H
|
#define RZ_CTRL_SCROLL_H
|
||||||
|
|
||||||
#include "nel/misc/types_nl.h"
|
#include "nel/misc/types_nl.h"
|
||||||
#include "ctrl_base.h"
|
#include "ctrl_scroll_base.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class handling scollbar function
|
* Class handling scollbar function
|
||||||
|
@ -28,11 +28,11 @@
|
||||||
* \author Nevrax France
|
* \author Nevrax France
|
||||||
* \date 2002
|
* \date 2002
|
||||||
*/
|
*/
|
||||||
class CCtrlScroll : public CCtrlBase, public NLMISC::ICDBNode::IPropertyObserver
|
class CCtrlScroll : public CCtrlScrollBase, public NLMISC::ICDBNode::IPropertyObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
DECLARE_UI_CLASS( CCtrlScroll )
|
||||||
CCtrlScroll(const TCtorParam ¶m);
|
CCtrlScroll(const TCtorParam ¶m);
|
||||||
~CCtrlScroll();
|
~CCtrlScroll();
|
||||||
|
|
||||||
|
@ -43,9 +43,7 @@ public:
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
virtual bool handleEvent (const NLGUI::CEventDescriptor &event);
|
virtual bool handleEvent (const NLGUI::CEventDescriptor &event);
|
||||||
|
|
||||||
|
|
||||||
void setTarget (CInterfaceGroup *pIG);
|
void setTarget (CInterfaceGroup *pIG);
|
||||||
CInterfaceGroup *getTarget () { return _Target; }
|
|
||||||
// Return the delta value the track has moved
|
// Return the delta value the track has moved
|
||||||
sint32 moveTrackX (sint32 dx);
|
sint32 moveTrackX (sint32 dx);
|
||||||
sint32 moveTrackY (sint32 dy);
|
sint32 moveTrackY (sint32 dy);
|
||||||
|
@ -97,7 +95,7 @@ public:
|
||||||
void setMax(sint32 max) {_Max = max;}
|
void setMax(sint32 max) {_Max = max;}
|
||||||
sint32 getMax() const {return _Max;}
|
sint32 getMax() const {return _Max;}
|
||||||
|
|
||||||
REFLECT_EXPORT_START(CCtrlScroll, CCtrlBase)
|
REFLECT_EXPORT_START(CCtrlScroll, CCtrlScrollBase)
|
||||||
REFLECT_LUA_METHOD("setTarget", luaSetTarget)
|
REFLECT_LUA_METHOD("setTarget", luaSetTarget)
|
||||||
REFLECT_LUA_METHOD("ensureVisible", luaEnsureVisible);
|
REFLECT_LUA_METHOD("ensureVisible", luaEnsureVisible);
|
||||||
REFLECT_SINT32("value", getValue, setValue);
|
REFLECT_SINT32("value", getValue, setValue);
|
||||||
|
@ -159,8 +157,6 @@ protected:
|
||||||
sint32 _LastTargetMaxWReal;
|
sint32 _LastTargetMaxWReal;
|
||||||
sint32 _LastTargetOfsX;
|
sint32 _LastTargetOfsX;
|
||||||
|
|
||||||
CInterfaceGroup *_Target; // If NULL the scroller is a value scroller
|
|
||||||
|
|
||||||
bool _Vertical : 1; // true if vertical track bar
|
bool _Vertical : 1; // true if vertical track bar
|
||||||
bool _IsDBLink : 1;
|
bool _IsDBLink : 1;
|
||||||
bool _ObserverOn : 1;
|
bool _ObserverOn : 1;
|
||||||
|
|
66
code/ryzom/client/src/interface_v3/ctrl_scroll_base.cpp
Normal file
66
code/ryzom/client/src/interface_v3/ctrl_scroll_base.cpp
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||||
|
// Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#include "ctrl_scroll_base.h"
|
||||||
|
|
||||||
|
CCtrlScrollBase::CCtrlScrollBase( const TCtorParam ¶m ) :
|
||||||
|
CCtrlBase( param )
|
||||||
|
{
|
||||||
|
_Target = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
CCtrlScrollBase::~CCtrlScrollBase()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCtrlScrollBase::setTarget( CInterfaceGroup *pIG )
|
||||||
|
{
|
||||||
|
// Necessary because it's supposed to be an abstract class,
|
||||||
|
// however reflection requires the class to be instantiated.
|
||||||
|
nlassert( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
sint32 CCtrlScrollBase::moveTrackX( sint32 dx )
|
||||||
|
{
|
||||||
|
// Necessary because it's supposed to be an abstract class,
|
||||||
|
// however reflection requires the class to be instantiated.
|
||||||
|
nlassert( false );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sint32 CCtrlScrollBase::moveTrackY( sint32 dy )
|
||||||
|
{
|
||||||
|
// Necessary because it's supposed to be an abstract class,
|
||||||
|
// however reflection requires the class to be instantiated.
|
||||||
|
nlassert( false );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCtrlScrollBase::moveTargetX( sint32 dx )
|
||||||
|
{
|
||||||
|
// Necessary because it's supposed to be an abstract class,
|
||||||
|
// however reflection requires the class to be instantiated.
|
||||||
|
nlassert( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCtrlScrollBase::moveTargetY( sint32 dy )
|
||||||
|
{
|
||||||
|
// Necessary because it's supposed to be an abstract class,
|
||||||
|
// however reflection requires the class to be instantiated.
|
||||||
|
nlassert( false );
|
||||||
|
}
|
55
code/ryzom/client/src/interface_v3/ctrl_scroll_base.h
Normal file
55
code/ryzom/client/src/interface_v3/ctrl_scroll_base.h
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||||
|
// Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#ifndef CTRL_SCROLL_BASE_H
|
||||||
|
#define CTRL_SCROLL_BASE_H
|
||||||
|
|
||||||
|
#include "ctrl_base.h"
|
||||||
|
|
||||||
|
class CInterfaceGroup;
|
||||||
|
|
||||||
|
class CCtrlScrollBase : public CCtrlBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DECLARE_UI_CLASS( CCtrlScrollBase )
|
||||||
|
|
||||||
|
CCtrlScrollBase( const TCtorParam ¶m );
|
||||||
|
virtual ~CCtrlScrollBase();
|
||||||
|
|
||||||
|
virtual void setTarget( CInterfaceGroup *pIG );
|
||||||
|
CInterfaceGroup* getTarget(){ return _Target; }
|
||||||
|
virtual sint32 moveTrackX( sint32 dx );
|
||||||
|
virtual sint32 moveTrackY( sint32 dy );
|
||||||
|
|
||||||
|
/** Move the Target Ofs with a Delta, and recompute TrackPos from this Ofs.
|
||||||
|
* Useful for finer controled group scrolling when the list is very big (with mouseWheel or scroll buttons)
|
||||||
|
*/
|
||||||
|
virtual void moveTargetX( sint32 dx );
|
||||||
|
virtual void moveTargetY( sint32 dy );
|
||||||
|
|
||||||
|
|
||||||
|
// Necessary because of reflection, no other purpose
|
||||||
|
void draw(){}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
CInterfaceGroup *_Target; // If NULL the scroller is a value scroller
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "interface_link.h"
|
#include "interface_link.h"
|
||||||
#include "widget_manager.h"
|
#include "widget_manager.h"
|
||||||
|
|
||||||
#include "ctrl_scroll.h"
|
#include "ctrl_scroll_base.h"
|
||||||
#include "group_editbox.h"
|
#include "group_editbox.h"
|
||||||
#include "group_scrolltext.h"
|
#include "group_scrolltext.h"
|
||||||
#include "lua_ihm_ryzom.h"
|
#include "lua_ihm_ryzom.h"
|
||||||
|
@ -203,7 +203,7 @@ bool CInterfaceGroup::moveSBTrackY (CInterfaceGroup *target, sint32 dy)
|
||||||
for (itc = _Controls.begin(); itc != _Controls.end(); itc++)
|
for (itc = _Controls.begin(); itc != _Controls.end(); itc++)
|
||||||
{
|
{
|
||||||
CCtrlBase *pCB = *itc;
|
CCtrlBase *pCB = *itc;
|
||||||
CCtrlScroll *pSB = dynamic_cast<CCtrlScroll*>(pCB);
|
CCtrlScrollBase *pSB = dynamic_cast<CCtrlScrollBase*>(pCB);
|
||||||
if (pSB != NULL)
|
if (pSB != NULL)
|
||||||
{
|
{
|
||||||
if (pSB->getTarget() == target)
|
if (pSB->getTarget() == target)
|
||||||
|
@ -224,7 +224,7 @@ bool CInterfaceGroup::moveSBTargetY(CInterfaceGroup *target,sint32 dy)
|
||||||
for (itc = _Controls.begin(); itc != _Controls.end(); itc++)
|
for (itc = _Controls.begin(); itc != _Controls.end(); itc++)
|
||||||
{
|
{
|
||||||
CCtrlBase *pCB = *itc;
|
CCtrlBase *pCB = *itc;
|
||||||
CCtrlScroll *pSB = dynamic_cast<CCtrlScroll*>(pCB);
|
CCtrlScrollBase *pSB = dynamic_cast<CCtrlScrollBase*>(pCB);
|
||||||
if (pSB != NULL)
|
if (pSB != NULL)
|
||||||
{
|
{
|
||||||
if (pSB->getTarget() == target)
|
if (pSB->getTarget() == target)
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include "ctrl_button.h"
|
#include "ctrl_button.h"
|
||||||
#include "ctrl_text_button.h"
|
#include "ctrl_text_button.h"
|
||||||
#include "ctrl_col_pick.h"
|
#include "ctrl_col_pick.h"
|
||||||
|
#include "ctrl_draggable.h"
|
||||||
#include "dbctrl_sheet.h"
|
#include "dbctrl_sheet.h"
|
||||||
#include "dbgroup_list_sheet.h"
|
#include "dbgroup_list_sheet.h"
|
||||||
#include "group_editbox.h"
|
#include "group_editbox.h"
|
||||||
|
@ -42,9 +43,9 @@
|
||||||
#include "dbview_bar.h"
|
#include "dbview_bar.h"
|
||||||
#include "dbview_bar3.h"
|
#include "dbview_bar3.h"
|
||||||
#include "group_list.h"
|
#include "group_list.h"
|
||||||
|
#include "ctrl_scroll_base.h"
|
||||||
#include "ctrl_scroll.h"
|
#include "ctrl_scroll.h"
|
||||||
#include "dbgroup_combo_box.h"
|
#include "dbgroup_combo_box.h"
|
||||||
#include "ctrl_scroll.h"
|
|
||||||
#include "group_tab.h"
|
#include "group_tab.h"
|
||||||
#include "group_html.h"
|
#include "group_html.h"
|
||||||
#include "group_header.h"
|
#include "group_header.h"
|
||||||
|
@ -75,7 +76,8 @@ void registerInterfaceElements()
|
||||||
REGISTER_REFLECTABLE_CLASS(CCtrlButton, CCtrlBaseButton);
|
REGISTER_REFLECTABLE_CLASS(CCtrlButton, CCtrlBaseButton);
|
||||||
REGISTER_REFLECTABLE_CLASS(CCtrlTextButton, CCtrlBaseButton);
|
REGISTER_REFLECTABLE_CLASS(CCtrlTextButton, CCtrlBaseButton);
|
||||||
REGISTER_REFLECTABLE_CLASS(CCtrlColPick, CCtrlBase);
|
REGISTER_REFLECTABLE_CLASS(CCtrlColPick, CCtrlBase);
|
||||||
REGISTER_REFLECTABLE_CLASS(CDBCtrlSheet, CCtrlBase);
|
REGISTER_REFLECTABLE_CLASS(CCtrlDraggable, CCtrlBase);
|
||||||
|
REGISTER_REFLECTABLE_CLASS(CDBCtrlSheet, CCtrlDraggable);
|
||||||
REGISTER_REFLECTABLE_CLASS(CInterfaceGroup, CCtrlBase);
|
REGISTER_REFLECTABLE_CLASS(CInterfaceGroup, CCtrlBase);
|
||||||
REGISTER_REFLECTABLE_CLASS(CGroupFrame, CInterfaceGroup);
|
REGISTER_REFLECTABLE_CLASS(CGroupFrame, CInterfaceGroup);
|
||||||
REGISTER_REFLECTABLE_CLASS(CGroupModal, CGroupFrame);
|
REGISTER_REFLECTABLE_CLASS(CGroupModal, CGroupFrame);
|
||||||
|
@ -84,8 +86,9 @@ void registerInterfaceElements()
|
||||||
REGISTER_REFLECTABLE_CLASS(IListSheetBase, CInterfaceGroup);
|
REGISTER_REFLECTABLE_CLASS(IListSheetBase, CInterfaceGroup);
|
||||||
REGISTER_REFLECTABLE_CLASS(CGroupEditBox, CInterfaceGroup);
|
REGISTER_REFLECTABLE_CLASS(CGroupEditBox, CInterfaceGroup);
|
||||||
REGISTER_REFLECTABLE_CLASS(CGroupTree, CInterfaceGroup);
|
REGISTER_REFLECTABLE_CLASS(CGroupTree, CInterfaceGroup);
|
||||||
REGISTER_REFLECTABLE_CLASS(CDBGroupComboBox, CInterfaceGroup)
|
REGISTER_REFLECTABLE_CLASS(CDBGroupComboBox, CInterfaceGroup);
|
||||||
REGISTER_REFLECTABLE_CLASS(CCtrlScroll, CCtrlBase);
|
REGISTER_REFLECTABLE_CLASS(CCtrlScrollBase, CCtrlBase);
|
||||||
|
REGISTER_REFLECTABLE_CLASS(CCtrlScroll, CCtrlScrollBase);
|
||||||
REGISTER_REFLECTABLE_CLASS(CGroupMenu, CGroupModal)
|
REGISTER_REFLECTABLE_CLASS(CGroupMenu, CGroupModal)
|
||||||
REGISTER_REFLECTABLE_CLASS(CGroupSubMenu, CGroupFrame)
|
REGISTER_REFLECTABLE_CLASS(CGroupSubMenu, CGroupFrame)
|
||||||
REGISTER_REFLECTABLE_CLASS(CGroupTab, CInterfaceGroup)
|
REGISTER_REFLECTABLE_CLASS(CGroupTab, CInterfaceGroup)
|
||||||
|
|
Loading…
Reference in a new issue