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