mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-10 09:19:01 +00:00
CHANGED: #1471 moved makeWindow and unMakeWindow methods to CWidgetManager from CInterfaceManager. So CInterfaceGroup no longer depends on CInterfaceManager.
--HG-- branch : gui-refactoring
This commit is contained in:
parent
8b54f34045
commit
d02a5f3d31
15 changed files with 116 additions and 123 deletions
|
@ -452,7 +452,7 @@ void CCharacterCL::releaseInSceneInterfaces()
|
|||
{
|
||||
if (_InSceneUserInterface)
|
||||
{
|
||||
CInterfaceManager::getInstance()->unMakeWindow(_InSceneUserInterface);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_InSceneUserInterface);
|
||||
if (_InSceneUserInterface->getParent())
|
||||
{
|
||||
_InSceneUserInterface->getParent()->delGroup(_InSceneUserInterface);
|
||||
|
|
|
@ -177,7 +177,7 @@ void CForageSourceCL::releaseInSceneInterfaces()
|
|||
{
|
||||
if (_InSceneUserInterface)
|
||||
{
|
||||
CInterfaceManager::getInstance()->unMakeWindow(_InSceneUserInterface);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_InSceneUserInterface);
|
||||
if (_InSceneUserInterface->getParent())
|
||||
{
|
||||
_InSceneUserInterface->getParent()->delGroup(_InSceneUserInterface);
|
||||
|
|
|
@ -294,7 +294,7 @@ void CChatWindow::deleteContainer()
|
|||
}
|
||||
else
|
||||
{
|
||||
CInterfaceManager::getInstance()->unMakeWindow(_Chat);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_Chat);
|
||||
if (_Chat->getParent())
|
||||
{
|
||||
_Chat->getParent()->delGroup(_Chat);
|
||||
|
@ -772,7 +772,7 @@ CGroupContainer *CChatGroupWindow::createFreeTeller(const ucstring &winNameIn, c
|
|||
CInterfaceGroup *pRoot = dynamic_cast<CInterfaceGroup*>(CWidgetManager::getInstance()->getElementFromId("ui:interface"));
|
||||
pRoot->addGroup (pGC);
|
||||
pGC->setParent(pRoot); // must be done before makeWindow
|
||||
pIM->makeWindow(pGC);
|
||||
CWidgetManager::getInstance()->makeWindow(pGC);
|
||||
pGC->open();
|
||||
pGC->updateCoords();
|
||||
pGC->center();
|
||||
|
@ -897,7 +897,7 @@ bool CChatGroupWindow::removeFreeTeller(const std::string &containerID)
|
|||
pIM->removeGroupContainerImage(_FreeTellers[i]->getId(), m);
|
||||
}
|
||||
CInterfaceGroup *pRoot = dynamic_cast<CInterfaceGroup*>(CWidgetManager::getInstance()->getElementFromId("ui:interface"));
|
||||
pIM->unMakeWindow(_FreeTellers[i]);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_FreeTellers[i]);
|
||||
pRoot->delGroup (_FreeTellers[i]);
|
||||
_FreeTellers[i] = NULL;
|
||||
_FreeTellers.erase(_FreeTellers.begin()+i);
|
||||
|
|
|
@ -15,12 +15,10 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
#include "stdpch.h"
|
||||
|
||||
#include "ctrl_base.h"
|
||||
#include "nel/misc/xml_auto_ptr.h"
|
||||
#include "interface_manager.h"
|
||||
#include "ctrl_base.h"
|
||||
#include "interface_group.h"
|
||||
#include "widget_manager.h"
|
||||
|
||||
using namespace NLMISC;
|
||||
|
||||
|
@ -41,7 +39,6 @@ bool CCtrlBase::handleEvent(const NLGUI::CEventDescriptor &event)
|
|||
if (!((NLGUI::CEventDescriptorActiveCalledOnParent &) eds).getActive())
|
||||
{
|
||||
// the mouse capture should be lost when the ctrl is hidden
|
||||
CInterfaceManager *manager = CInterfaceManager::getInstance();
|
||||
if (CWidgetManager::getInstance()->getCapturePointerLeft() == this)
|
||||
{
|
||||
CWidgetManager::getInstance()->setCapturePointerLeft(NULL);
|
||||
|
|
|
@ -202,7 +202,7 @@ void CFlyingTextManager::unlinkToInterface(CGroupInfo &gi)
|
|||
|
||||
// remove from group and window list
|
||||
CInterfaceManager *pIM= CInterfaceManager::getInstance();
|
||||
pIM->unMakeWindow(gi.GroupInScene);
|
||||
CWidgetManager::getInstance()->unMakeWindow(gi.GroupInScene);
|
||||
// remove but don't delete
|
||||
gi.GroupInScene->getParent()->delGroup(gi.GroupInScene, true);
|
||||
gi.GroupInScene->setParent(NULL);
|
||||
|
|
|
@ -3289,7 +3289,7 @@ void CGroupContainer::popupCurrentPos()
|
|||
_ParentPos = parent;
|
||||
|
||||
CInterfaceManager *im = CInterfaceManager::getInstance();
|
||||
im->makeWindow(this);
|
||||
CWidgetManager::getInstance()->makeWindow(this);
|
||||
CWidgetManager::getInstance()->setTopWindow(this);
|
||||
CWidgetManager::getInstance()->clearViewUnders();
|
||||
CWidgetManager::getInstance()->clearCtrlsUnders();
|
||||
|
@ -3346,7 +3346,7 @@ void CGroupContainer::popin(sint32 insertPos /* = -1 */, bool putBackInFatherCon
|
|||
|
||||
_MovingInParentList = false;
|
||||
CInterfaceManager *im = CInterfaceManager::getInstance();
|
||||
im->unMakeWindow(this);
|
||||
CWidgetManager::getInstance()->unMakeWindow(this);
|
||||
CWidgetManager::getInstance()->clearViewUnders();
|
||||
CWidgetManager::getInstance()->clearCtrlsUnders();
|
||||
_Parent = NULL;
|
||||
|
|
|
@ -124,7 +124,7 @@ bool CGroupInSceneBubbleManager::checkTimeOut(vector<CPopup> &rList)
|
|||
// Time out ?
|
||||
if (rList[i].timeOut ())
|
||||
{
|
||||
pIM->unMakeWindow(rList[i].Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(rList[i].Group);
|
||||
if (rList[i].Group->getParent())
|
||||
rList[i].Group->getParent()->delGroup(rList[i].Group);
|
||||
else
|
||||
|
@ -155,7 +155,7 @@ void CGroupInSceneBubbleManager::alignMessagePopup (vector<CPopup> &rList, bool
|
|||
{
|
||||
CPopup popup = rList.front();
|
||||
rList.erase (rList.begin());
|
||||
pIM->unMakeWindow(popup.Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(popup.Group);
|
||||
if (popup.Group->getParent())
|
||||
popup.Group->getParent()->delGroup(popup.Group);
|
||||
else
|
||||
|
@ -264,7 +264,7 @@ void CGroupInSceneBubbleManager::release ()
|
|||
for (i=0; i<_Bubbles.size(); i++)
|
||||
if (_Bubbles[i])
|
||||
{
|
||||
pIM->unMakeWindow(_Bubbles[i]);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_Bubbles[i]);
|
||||
if (_Bubbles[i]->getParent())
|
||||
{
|
||||
_Bubbles[i]->getParent()->delGroup(_Bubbles[i]);
|
||||
|
@ -279,7 +279,7 @@ void CGroupInSceneBubbleManager::release ()
|
|||
// Remove messages
|
||||
for (i=0; i<_MessagePopup.size(); i++)
|
||||
{
|
||||
pIM->unMakeWindow(_MessagePopup[i].Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_MessagePopup[i].Group);
|
||||
if (_MessagePopup[i].Group->getParent())
|
||||
_MessagePopup[i].Group->getParent()->delGroup(_MessagePopup[i].Group);
|
||||
else
|
||||
|
@ -290,7 +290,7 @@ void CGroupInSceneBubbleManager::release ()
|
|||
// Remove messages
|
||||
for (i=0; i<_MessagePopupCentered.size(); i++)
|
||||
{
|
||||
pIM->unMakeWindow(_MessagePopupCentered[i].Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_MessagePopupCentered[i].Group);
|
||||
if (_MessagePopupCentered[i].Group->getParent())
|
||||
_MessagePopupCentered[i].Group->getParent()->delGroup(_MessagePopupCentered[i].Group);
|
||||
else
|
||||
|
@ -301,7 +301,7 @@ void CGroupInSceneBubbleManager::release ()
|
|||
// Remove messages
|
||||
for (i=0; i<_BubblePopup.size(); i++)
|
||||
{
|
||||
pIM->unMakeWindow(_BubblePopup[i].Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_BubblePopup[i].Group);
|
||||
if (_BubblePopup[i].Group->getParent())
|
||||
_BubblePopup[i].Group->getParent()->delGroup(_BubblePopup[i].Group);
|
||||
else
|
||||
|
@ -344,7 +344,7 @@ void CGroupInSceneBubbleManager::update ()
|
|||
// Time out ?
|
||||
if (_BubblePopup[i].timeOut ())
|
||||
{
|
||||
pIM->unMakeWindow(_BubblePopup[i].Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_BubblePopup[i].Group);
|
||||
if (_BubblePopup[i].Group->getParent())
|
||||
_BubblePopup[i].Group->getParent()->delGroup(_BubblePopup[i].Group);
|
||||
else
|
||||
|
@ -369,7 +369,7 @@ void CGroupInSceneBubbleManager::update ()
|
|||
(target->getWReal() != _BubblePopup[i].TargetW) ||
|
||||
(target->getHReal() != _BubblePopup[i].TargetH))
|
||||
{
|
||||
pIM->unMakeWindow(_BubblePopup[i].Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_BubblePopup[i].Group);
|
||||
if (_BubblePopup[i].Group->getParent())
|
||||
_BubblePopup[i].Group->getParent()->delGroup(_BubblePopup[i].Group);
|
||||
else
|
||||
|
@ -397,7 +397,7 @@ void CGroupInSceneBubbleManager::update ()
|
|||
{
|
||||
if (_BubblePopup[j].Group == _GroupToDelete[i])
|
||||
{
|
||||
pIM->unMakeWindow(_BubblePopup[j].Group);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_BubblePopup[j].Group);
|
||||
if (_BubblePopup[j].Group->getParent())
|
||||
_BubblePopup[j].Group->getParent()->delGroup(_BubblePopup[j].Group);
|
||||
else
|
||||
|
@ -420,7 +420,7 @@ void CGroupInSceneBubbleManager::update ()
|
|||
if (pChar != NULL)
|
||||
pChar->setBubble(NULL);
|
||||
|
||||
pIM->unMakeWindow(_DynBubbles[j].Bubble);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_DynBubbles[j].Bubble);
|
||||
if (_DynBubbles[j].Bubble->getParent())
|
||||
_DynBubbles[j].Bubble->getParent()->delGroup(_DynBubbles[j].Bubble);
|
||||
else
|
||||
|
|
|
@ -14,23 +14,22 @@
|
|||
// 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 "stdpch.h"
|
||||
#include "nel/misc/xml_auto_ptr.h"
|
||||
#include "nel/misc/stream.h"
|
||||
#include "nel/gui/lua_manager.h"
|
||||
#include "nel/gui/lua_ihm.h"
|
||||
#include "nel/gui/view_renderer.h"
|
||||
|
||||
#include "interface_group.h"
|
||||
#include "interface_manager.h"
|
||||
#include "nel/misc/xml_auto_ptr.h"
|
||||
#include "interface_link.h"
|
||||
#include "view_text.h"
|
||||
#include "ctrl_scroll.h"
|
||||
#include "widget_manager.h"
|
||||
#include "group_container.h"
|
||||
#include "group_editbox.h"
|
||||
#include "group_scrolltext.h"
|
||||
#include "nel/gui/lua_ihm.h"
|
||||
#include "lua_ihm_ryzom.h"
|
||||
|
||||
|
||||
#include "nel/misc/stream.h"
|
||||
#include "nel/gui/lua_manager.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace NL3D;
|
||||
|
||||
|
@ -1112,7 +1111,7 @@ bool CInterfaceGroup::delElement (const std::string &id, bool noWarning)
|
|||
{
|
||||
// If this is a root window
|
||||
if (pIG->getRootWindow () == pIG)
|
||||
CInterfaceManager::getInstance()->unMakeWindow(pIG, noWarning);
|
||||
CWidgetManager::getInstance()->unMakeWindow(pIG, noWarning);
|
||||
delGroup (pIG, false);
|
||||
return true;
|
||||
}
|
||||
|
@ -1129,7 +1128,7 @@ bool CInterfaceGroup::delElement (CInterfaceElement *pIE, bool noWarning)
|
|||
CInterfaceGroup *pIG= static_cast<CInterfaceGroup*>(pIE);
|
||||
// unmake window if it is
|
||||
if (pIG->getRootWindow () == pIG)
|
||||
CInterfaceManager::getInstance()->unMakeWindow(pIG, noWarning);
|
||||
CWidgetManager::getInstance()->unMakeWindow(pIG, noWarning);
|
||||
return delGroup(pIG);
|
||||
}
|
||||
else if(pIE->isCtrl())
|
||||
|
|
|
@ -14,16 +14,16 @@
|
|||
// 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 "action_handler.h"
|
||||
#include "interface_link.h"
|
||||
#include "interface_group.h"
|
||||
#include "interface_element.h"
|
||||
#include "widget_manager.h"
|
||||
#include "nel/gui/interface_expr.h"
|
||||
#include "nel/gui/interface_expr_node.h"
|
||||
#include "nel/gui/reflect.h"
|
||||
#include "nel/gui/db_manager.h"
|
||||
#include "nel/misc/cdb_branch.h"
|
||||
#include "action_handler.h"
|
||||
#include "interface_link.h"
|
||||
#include "interface_element.h"
|
||||
#include "interface_group.h"
|
||||
#include "widget_manager.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace NLMISC;
|
||||
|
|
|
@ -3504,74 +3504,6 @@ void CInterfaceManager::disableContextHelpForControl(CCtrlBase *pCtrl)
|
|||
disableContextHelp();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CInterfaceManager::makeWindow(CInterfaceGroup *group)
|
||||
{
|
||||
if (!group) return;
|
||||
std::vector< CWidgetManager::SMasterGroup > &_MasterGroups = CWidgetManager::getInstance()->getAllMasterGroup();
|
||||
uint32 i = 0;
|
||||
for (i = 0; i < _MasterGroups.size(); ++i)
|
||||
{
|
||||
if (_MasterGroups[i].Group == group->getParent())
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == _MasterGroups.size())
|
||||
{
|
||||
string stmp = string("not found master group for window: ")+group->getId();
|
||||
nlwarning (stmp.c_str());
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// check if group hasn't been inserted twice.
|
||||
if (_MasterGroups[i].isWindowPresent(group))
|
||||
{
|
||||
nlwarning("Window inserted twice");
|
||||
}
|
||||
else
|
||||
{
|
||||
_MasterGroups[i].addWindow(group,group->getPriority());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CInterfaceManager::unMakeWindow(CInterfaceGroup *group, bool noWarning)
|
||||
{
|
||||
if (!group) return;
|
||||
std::vector< CWidgetManager::SMasterGroup > &_MasterGroups = CWidgetManager::getInstance()->getAllMasterGroup();
|
||||
uint32 i = 0;
|
||||
for (i = 0; i < _MasterGroups.size(); ++i)
|
||||
{
|
||||
if (_MasterGroups[i].Group == group->getParent())
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == _MasterGroups.size())
|
||||
{
|
||||
if (!noWarning)
|
||||
{
|
||||
string stmp = string("not found master group for window: ")+group->getId();
|
||||
nlwarning (stmp.c_str());
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// check if group hasn't been inserted twice.
|
||||
if (!_MasterGroups[i].isWindowPresent(group))
|
||||
{
|
||||
if (!noWarning)
|
||||
nlwarning("Window not inserted in master group");
|
||||
}
|
||||
else
|
||||
{
|
||||
_MasterGroups[i].delWindow(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CInterfaceManager::enableMouseHandling(bool handle)
|
||||
{
|
||||
|
|
|
@ -388,14 +388,6 @@ public:
|
|||
|
||||
void setContextHelpActive(bool active);
|
||||
|
||||
|
||||
// Add a group into the windows list of its master goup
|
||||
void makeWindow(CInterfaceGroup *group);
|
||||
|
||||
// Remove a group from the windows list of its master group
|
||||
void unMakeWindow(CInterfaceGroup *group, bool noWarning=false);
|
||||
|
||||
|
||||
bool isMouseOverWindow() const {return _MouseOverWindow;}
|
||||
|
||||
// Enable mouse Events to interface. if false, release Captures.
|
||||
|
|
|
@ -14,12 +14,9 @@
|
|||
// 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 "stdpch.h"
|
||||
|
||||
#include "view_base.h"
|
||||
#include "interface_manager.h"
|
||||
#include "interface_group.h"
|
||||
#include "widget_manager.h"
|
||||
|
||||
CViewBase::~CViewBase()
|
||||
{
|
||||
|
|
|
@ -1238,6 +1238,76 @@ void CWidgetManager::notifyElementCaptured(CCtrlBase *c)
|
|||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CWidgetManager::makeWindow(CInterfaceGroup *group)
|
||||
{
|
||||
if(!group)
|
||||
return;
|
||||
|
||||
uint32 i = 0;
|
||||
for (i = 0; i < _MasterGroups.size(); ++i)
|
||||
{
|
||||
if (_MasterGroups[i].Group == group->getParent())
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == _MasterGroups.size())
|
||||
{
|
||||
std::string stmp = std::string("not found master group for window: ")+group->getId();
|
||||
nlwarning (stmp.c_str());
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// check if group hasn't been inserted twice.
|
||||
if (_MasterGroups[i].isWindowPresent(group))
|
||||
{
|
||||
nlwarning("Window inserted twice");
|
||||
}
|
||||
else
|
||||
{
|
||||
_MasterGroups[i].addWindow(group,group->getPriority());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CWidgetManager::unMakeWindow(CInterfaceGroup *group, bool noWarning)
|
||||
{
|
||||
if (!group)
|
||||
return;
|
||||
|
||||
uint32 i = 0;
|
||||
for (i = 0; i < _MasterGroups.size(); ++i)
|
||||
{
|
||||
if (_MasterGroups[i].Group == group->getParent())
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == _MasterGroups.size())
|
||||
{
|
||||
if (!noWarning)
|
||||
{
|
||||
std::string stmp = std::string("not found master group for window: ")+group->getId();
|
||||
nlwarning (stmp.c_str());
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// check if group hasn't been inserted twice.
|
||||
if (!_MasterGroups[i].isWindowPresent(group))
|
||||
{
|
||||
if (!noWarning)
|
||||
nlwarning("Window not inserted in master group");
|
||||
}
|
||||
else
|
||||
{
|
||||
_MasterGroups[i].delWindow(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CWidgetManager::CWidgetManager()
|
||||
{
|
||||
|
|
|
@ -261,6 +261,12 @@ public:
|
|||
|
||||
void notifyElementCaptured(CCtrlBase *c);
|
||||
|
||||
// Add a group into the windows list of its master goup
|
||||
void makeWindow( CInterfaceGroup *group );
|
||||
|
||||
// Remove a group from the windows list of its master group
|
||||
void unMakeWindow( CInterfaceGroup *group, bool noWarning = false );
|
||||
|
||||
static IParser *parser;
|
||||
|
||||
private:
|
||||
|
|
|
@ -65,7 +65,7 @@ CDisplayerVisual::~CDisplayerVisual()
|
|||
{
|
||||
if (_IconInScene)
|
||||
{
|
||||
getEditor().getUI().unMakeWindow(_IconInScene);
|
||||
CWidgetManager::getInstance()->unMakeWindow(_IconInScene);
|
||||
if (_IconInScene->getParent())
|
||||
{
|
||||
_IconInScene->getParent()->delGroup(_IconInScene);
|
||||
|
|
Loading…
Reference in a new issue