diff --git a/code/ryzom/client/src/far_tp.cpp b/code/ryzom/client/src/far_tp.cpp index dec9aed6f..cb3387873 100644 --- a/code/ryzom/client/src/far_tp.cpp +++ b/code/ryzom/client/src/far_tp.cpp @@ -44,6 +44,7 @@ #include "client_chat_manager.h" #include "bg_downloader_access.h" #include "login_progress_post_thread.h" +#include "interface_v3/action_handler_base.h" using namespace NLMISC; using namespace NLNET; diff --git a/code/ryzom/client/src/interface_v3/action_handler.cpp b/code/ryzom/client/src/interface_v3/action_handler.cpp index 7cc097492..b1aa1fa79 100644 --- a/code/ryzom/client/src/interface_v3/action_handler.cpp +++ b/code/ryzom/client/src/interface_v3/action_handler.cpp @@ -14,32 +14,18 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . - - -#include "stdpch.h" - #include "action_handler.h" -#include "action_handler_misc.h" - +#include "group_container.h" #include "nel/gui/interface_expr.h" -#include "interface_manager.h" - -#include "group_container.h" -#include "group_editbox.h" -#include "dbctrl_sheet.h" -#include "interface_3d_scene.h" -#include "character_3d.h" -#include "group_container.h" -#include "people_interraction.h" - -#include "../r2/editor.h" - +#include "nel/gui/db_manager.h" +#include "interface_link.h" +#include "widget_manager.h" using namespace std; using namespace NLMISC; // ------------------------------------------------------------------------------------------------ -CActionHandlerFactoryManager *CActionHandlerFactoryManager::_GlobalInstance = NULL; +CAHManager *CAHManager::_GlobalInstance = NULL; // ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------ @@ -119,7 +105,7 @@ void IActionHandler::getAllParams (const string &Params, vector< pairgetActionHandler(ahName); + return getActionHandler(ahName); } // standalone form else - return CActionHandlerFactoryManager::getInstance()->getActionHandler(name); + return getActionHandler(name); } // ------------------------------------------------------------------------------------------------ -IActionHandler *getAH(const std::string &name, CStringShared ¶ms) +IActionHandler* CAHManager::getAH(const std::string &name, CStringShared ¶ms) { // Special AH form? string::size_type i= name.find(':'); @@ -143,15 +129,15 @@ IActionHandler *getAH(const std::string &name, CStringShared ¶ms) { string ahName= name.substr(0, i); params= name.substr(i+1); - return CActionHandlerFactoryManager::getInstance()->getActionHandler(ahName); + return getActionHandler(ahName); } // standalone form else - return CActionHandlerFactoryManager::getInstance()->getActionHandler(name); + return getActionHandler(name); } // ------------------------------------------------------------------------------------------------ -void parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, std::string ¶mRet) +void CAHManager::parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, std::string ¶mRet) { CXMLAutoPtr prop; @@ -183,7 +169,7 @@ void parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandl } } -void parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, CStringShared ¶mRet) +void CAHManager::parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, CStringShared ¶mRet) { CXMLAutoPtr prop; @@ -221,7 +207,6 @@ class CAHSet : public IActionHandler public: virtual void execute (CCtrlBase *pCaller, const string &Params) { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); string dblink = getParam (Params, "dblink"); string property = getParam (Params, "target_property"); string propertyToEval = getParam (Params, "target"); @@ -321,7 +306,6 @@ class CAHCopy : public IActionHandler public: virtual void execute (CCtrlBase * /* pCaller */, const string &Params) { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); string dbdst = getParam (Params, "dbdst"); string dbsrc = getParam (Params, "dbsrc"); CCDBNodeBranch *pNBdst = NLGUI::CDBManager::getInstance()->getDbBranch(dbdst); @@ -391,8 +375,6 @@ class CAHResizeW : public IActionHandler public: virtual void execute (CCtrlBase *pCaller, const string &Params) { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - string elt = getParam (Params, "elt"); sint32 value; @@ -422,220 +404,6 @@ public: }; REGISTER_ACTION_HANDLER (CAHResizeW, "resize_w"); -// ------------------------------------------------------------------------------------------------ -class CAHSetKeyboardFocus : public IActionHandler -{ -public: - virtual void execute (CCtrlBase *pCaller, const string &Params) - { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - string target = getParam (Params, "target"); - CGroupEditBox *geb; - if (pCaller == NULL) - geb = dynamic_cast(CWidgetManager::getInstance()->getElementFromId (target)); - else - geb = dynamic_cast(CWidgetManager::getInstance()->getElementFromId (pCaller->getId(), target)); - if (geb == NULL) - { - nlwarning(" Can't get target edit box %s, or bad type", target.c_str()); - return; - } - pIM->setCaptureKeyboard(geb); - string selectAllStr = getParam (Params, "select_all"); - bool selectAll = CInterfaceElement::convertBool(selectAllStr.c_str()); - if (selectAll) - { - geb->setSelectionAll(); - } - } -}; -REGISTER_ACTION_HANDLER (CAHSetKeyboardFocus, "set_keyboard_focus"); - -// ------------------------------------------------------------------------------------------------ -class CAHResetKeyboardFocus : public IActionHandler -{ -public: - virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */) - { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - pIM->resetCaptureKeyboard(); - } -}; -REGISTER_ACTION_HANDLER (CAHResetKeyboardFocus, "reset_keyboard_focus"); - -// ------------------------------------------------------------------------------------------------ -class CAHSetEditBoxCommand : public IActionHandler -{ - virtual void execute (CCtrlBase * /* pCaller */, const string &Params) - { - CGroupEditBox *menuEB = CGroupEditBox::getMenuFather(); - if (menuEB) menuEB->setCommand(getParam(Params, "value"), nlstricmp(getParam(Params, "execute"), "true") ? true : false); - } -}; -REGISTER_ACTION_HANDLER (CAHSetEditBoxCommand, "set_edit_box_command"); - -// ------------------------------------------------------------------------------------------------ -class CAHActiveMenu : public IActionHandler -{ - virtual void execute (CCtrlBase *pCaller, const string &Params) - { - CInterfaceManager *im = CInterfaceManager::getInstance(); - - // get the parent container - CGroupContainer *gc = NULL; - CCtrlBase *cb = pCaller; - while (cb) - { - gc = dynamic_cast(cb); - if (gc) break; - cb = cb->getParent(); - } - - // update GC_POPUP flag - if (gc) - { - NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_POPUP")->setValue64((gc->isPopuped() || gc->getLayerSetup() == 0) ? 1 : 0); - } - else - { - NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_POPUP")->setValue64(0); - } - - // update GC_HAS_HELP flag - if(gc && !gc->getHelpPage().empty()) - { - NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_HAS_HELP")->setValue64(1); - } - else - { - NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_HAS_HELP")->setValue64(0); - } - - // open the menu - if (CDBCtrlSheet::getDraggedSheet() == NULL) - { - CWidgetManager::getInstance()->enableModalWindow (pCaller, getParam(Params, "menu")); - } - } -}; -REGISTER_ACTION_HANDLER (CAHActiveMenu, "active_menu"); - -// ------------------------------------------------------------------------------------------------ -class CAHSetServerString : public IActionHandler -{ - virtual void execute (CCtrlBase *pCaller, const string &Params) - { - string sValue = getParam(Params,"value"); - string sTarget = getParam(Params,"target"); - - if (sTarget.empty()) return; - - if (sTarget.rfind(':') == string::npos) - { - if (pCaller == NULL) return; - sTarget = pCaller->getId() + ":" + sTarget; - } - else - { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - string elt = sTarget.substr(0,sTarget.rfind(':')); - CInterfaceElement *pIE; - if (pCaller != NULL) - pIE = CWidgetManager::getInstance()->getElementFromId(pCaller->getId(), elt); - else - pIE = CWidgetManager::getInstance()->getElementFromId(elt); - if (pIE == NULL) return; - sTarget = pIE->getId() + ":" + sTarget.substr(sTarget.rfind(':')+1,sTarget.size()); - } - - CInterfaceExprValue evValue; - if (CInterfaceExpr::eval(sValue, evValue, NULL)) - { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - if (evValue.toInteger()) - pIM->addServerString (sTarget, (uint32)evValue.getInteger()); - } - } -}; -REGISTER_ACTION_HANDLER (CAHSetServerString, "set_server_string"); - -// ------------------------------------------------------------------------------------------------ -class CAHSetServerID : public IActionHandler -{ - virtual void execute (CCtrlBase *pCaller, const string &Params) - { - string sValue = getParam(Params,"value"); - string sTarget = getParam(Params,"target"); - string sRemoveTitle = getParam(Params,"remove_title"); - - if (sTarget.empty()) return; - - if (sTarget.rfind(':') == string::npos) - { - if (pCaller == NULL) return; - sTarget = pCaller->getId() + ":" + sTarget; - } - else - { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - string elt = sTarget.substr(0,sTarget.rfind(':')); - CInterfaceElement *pIE; - if (pCaller != NULL) - pIE = CWidgetManager::getInstance()->getElementFromId(pCaller->getId(), elt); - else - pIE = CWidgetManager::getInstance()->getElementFromId(elt); - if (pIE == NULL) return; - sTarget = pIE->getId() + ":" + sTarget.substr(sTarget.rfind(':')+1,sTarget.size()); - } - - CInterfaceExprValue evValue; - if (CInterfaceExpr::eval(sValue, evValue, NULL)) - { - bool bRemoveTitle = false; - if (!sRemoveTitle.empty()) - fromString(sRemoveTitle, bRemoveTitle); - - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - - if (bRemoveTitle) - { - CStringPostProcessRemoveTitle *pSPPRT = new CStringPostProcessRemoveTitle; - - if (evValue.toInteger()) - pIM->addServerID (sTarget, (uint32)evValue.getInteger(), pSPPRT); - } - else - { - if (evValue.toInteger()) - pIM->addServerID (sTarget, (uint32)evValue.getInteger(), NULL); - } - } - } -}; -REGISTER_ACTION_HANDLER (CAHSetServerID, "set_server_id"); - -// ------------------------------------------------------------------------------------------------ -class CAHResetCamera : public IActionHandler -{ - virtual void execute (CCtrlBase *pCaller, const string &Params) - { - string sTarget = getParam(Params,"target"); - - if (sTarget.empty()) return; - - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - CInterfaceElement *pIE; - if (pCaller != NULL) - pIE = CWidgetManager::getInstance()->getElementFromId(pCaller->getId(), sTarget); - else - pIE = CWidgetManager::getInstance()->getElementFromId(sTarget); - CInterface3DCamera *pCam = dynamic_cast(pIE); - if (pCam == NULL) return; - pCam->reset(); - } -}; -REGISTER_ACTION_HANDLER (CAHResetCamera, "reset_camera"); - //////////////////////////////// // EDITION OF CONTAINER ALPHA // //////////////////////////////// @@ -678,7 +446,6 @@ class CAHChooseUIAlpha : public IActionHandler public: virtual void execute (CCtrlBase *pCaller, const std::string &/* Params */) { - CInterfaceManager *im = CInterfaceManager::getInstance(); CGroupContainer *gc = NULL; CCtrlBase *cb = pCaller; while (cb) @@ -784,7 +551,6 @@ class CAHUseGlobalAlphaSettings : public IActionHandler if (AlphaChooserTarget) { AlphaChooserTarget->setUseGlobalAlpha(!AlphaChooserTarget->isUsingGlobalAlpha()); - CInterfaceManager *im = CInterfaceManager::getInstance(); NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:USER_ALPHA")->setValue64(AlphaChooserTarget->isUsingGlobalAlpha() ? 0 : 1); } } @@ -797,7 +563,6 @@ class CAHLockUnlock : public IActionHandler { virtual void execute (CCtrlBase *pCaller, const std::string &/* Params */) { -// CInterfaceManager *im = CInterfaceManager::getInstance(); CGroupContainer *gc = NULL; CCtrlBase *cb = pCaller; while (cb) @@ -818,7 +583,6 @@ class CAHSetTransparent : public IActionHandler { virtual void execute (CCtrlBase * /* pCaller */, const std::string &Params) { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); CGroupContainer *pGC = dynamic_cast(CWidgetManager::getInstance()->getElementFromId(Params)); if (pGC != NULL) { @@ -837,8 +601,6 @@ class CAHSetAlpha : public IActionHandler { virtual void execute (CCtrlBase * /* pCaller */, const std::string &Params) { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - string ui = getParam (Params, "target"); uint8 alpha; @@ -857,141 +619,11 @@ class CAHSetAlpha : public IActionHandler }; REGISTER_ACTION_HANDLER (CAHSetAlpha, "set_alpha"); -/////////////////////////////// -// VIRTUAL DESKTOP MANAGMENT // -/////////////////////////////// - - -// ------------------------------------------------------------------------------------------------ -class CAHSetVirtualDesktop : public IActionHandler -{ - virtual void execute (CCtrlBase * /* pCaller */, const string &Params) - { - string sVDesk = getParam(Params,"vdesk"); - - if (sVDesk.empty()) return; - sint32 nVDesk; - fromString(sVDesk, nVDesk); - - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - pIM->setMode((uint8)nVDesk); - - PeopleInterraction.refreshActiveUserChats(); - } -}; -REGISTER_ACTION_HANDLER (CAHSetVirtualDesktop, "set_virtual_desktop"); - -// ------------------------------------------------------------------------------------------------ -class CAHResetVirtualDesktop : public IActionHandler -{ - virtual void execute (CCtrlBase * /* pCaller */, const string &Params) - { - string sVDesk = getParam(Params,"vdesk"); - - if (sVDesk.empty()) return; - sint32 nVDesk; - fromString(sVDesk, nVDesk); - - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - pIM->resetMode((uint8)nVDesk); - - PeopleInterraction.refreshActiveUserChats(); - } -}; -REGISTER_ACTION_HANDLER (CAHResetVirtualDesktop, "reset_virtual_desktop"); - -// ------------------------------------------------------------------------------------------------ -class CAHMilkoMenuResetInterface : public IActionHandler -{ - virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */) - { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - string sParam("mode="); - if(R2::getEditor().getMode() == R2::CEditor::TestMode) - sParam = "R2TestMode"; - - pIM->validMessageBox(CInterfaceManager::QuestionIconMsg, CI18N::get("uiQResetUI"), "milko_menu_do_reset_interface", sParam); - } -}; -REGISTER_ACTION_HANDLER (CAHMilkoMenuResetInterface, "milko_menu_reset_interface"); - -// ------------------------------------------------------------------------------------------------ -class CAHMilkoMenuDoResetInterface : public IActionHandler -{ - virtual void execute (CCtrlBase * /* pCaller */, const string& Params) - { - // get param - string mode; - fromString(getParam(Params, "mode"), mode); - - // run procedure - vector v; - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - if (mode == "R2TestMode") - pIM->runProcedure ("proc_reset_r2ed_interface", NULL, v); - else - pIM->runProcedure("proc_reset_interface", NULL, v); - } -}; -REGISTER_ACTION_HANDLER(CAHMilkoMenuDoResetInterface, "milko_menu_do_reset_interface"); - -// ------------------------------------------------------------------------------------------------ -class CAHResetInterface : public IActionHandler -{ - virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */) - { - uint32 i; - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - const vector &rVMG = CWidgetManager::getInstance()->getAllMasterGroup(); - for (uint32 nMasterGroup = 0; nMasterGroup < rVMG.size(); nMasterGroup++) - { - const CWidgetManager::SMasterGroup &rMG = rVMG[nMasterGroup]; - const vector &rV = rMG.Group->getGroups(); - // Active all containers (that can be activated) - for (i = 0; i < rV.size(); ++i) - { - CGroupContainer *pGC = dynamic_cast(rV[i]); - if (pGC == NULL) continue; - if (pGC->isSavable()) - { - // Yoyo: DO NOT force activation of containers who don't want to save their Active state. - // Usually driven by server. - if(pGC->isActiveSavable()) - pGC->setActive(true); - } - } - - pIM->checkCoords(); - CWidgetManager::getInstance()->getMasterGroup((uint8)nMasterGroup).centerAllContainers(); - - // Pop in and close all containers - for (i = 0; i < rV.size(); ++i) - { - CGroupContainer *pGC = dynamic_cast(rV[i]); - if (pGC == NULL) continue; - if (pGC->isSavable()) - { - if (pGC->isPopable()&&pGC->isPopuped()) - pGC->popin(); - - // Can close ? - if (pGC->isOpenable()&&pGC->isOpen()) - pGC->close(); - } - } - - CWidgetManager::getInstance()->getMasterGroup((uint8)nMasterGroup).deactiveAllContainers(); - } - } -}; -REGISTER_ACTION_HANDLER (CAHResetInterface, "reset_interface"); - // ------------------------------------------------------------------------------------------------ class CAHUnlockAllContainer : public IActionHandler { virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */) { - CInterfaceManager *pIM = CInterfaceManager::getInstance(); const vector &rVMG = CWidgetManager::getInstance()->getAllMasterGroup(); for (uint32 nMasterGroup = 0; nMasterGroup < rVMG.size(); nMasterGroup++) { @@ -1001,54 +633,3 @@ class CAHUnlockAllContainer : public IActionHandler } }; REGISTER_ACTION_HANDLER (CAHUnlockAllContainer, "unlock_all_container"); - -// ------------------------------------------------------------------------------------------------ -class CAHConvertServerEntities : public IActionHandler -{ - virtual void execute (CCtrlBase * /* pCaller */, const string &Params) - { - string sDstPath = getParam(Params, "dest"); - if (sDstPath.empty()) return; - string sEntityNb = getParam(Params, "entity"); - uint32 nEntityNb = 0; - if (!sEntityNb.empty()) - fromString(sEntityNb, nEntityNb); - - CCharacterSummary cs; - SCharacter3DSetup::setupCharacterSummaryFromSERVERDB(cs, (uint8)nEntityNb); - SCharacter3DSetup::setupDBFromCharacterSummary(sDstPath, cs); - - } -}; -REGISTER_ACTION_HANDLER (CAHConvertServerEntities, "convert_server_entities"); - -/*// ------------------------------------------------------------------------------------------------ -class CAHPopup : public IActionHandler -{ - virtual void execute (CCtrlBase *pCaller, const string &Params) - { - string sCont = getParam(Params,"cont"); - CInterfaceExprValue eVal; - if (!CInterfaceExpr::eval(sCont, eVal, NULL)) return; - sCont = eVal.getString(); - if (sCont.empty()) return; - CInterfaceManager *pIM = CInterfaceManager::getInstance(); - CGroupContainer *pGC = dynamic_cast(CWidgetManager::getInstance()->getElementFromId(sCont)); - if (pGC == NULL) return; - if (pGC->isPopuped()) return; - pGC->setHighLighted(false); - // pop the window - pGC->popupCurrentPos(); - if (pGC->getPopupW() != -1) - { - pGC->setX(pGC->getPopupX()); - pGC->setY(pGC->getPopupY()); - pGC->setW(pGC->getPopupW()); - // must resize the children to get correct height - pGC->setChildrenH(pGC->getPopupChildrenH()); - } - pGC->invalidateCoords(2); - } -}; -REGISTER_ACTION_HANDLER (CAHPopup, "popup"); -*/ diff --git a/code/ryzom/client/src/interface_v3/action_handler.h b/code/ryzom/client/src/interface_v3/action_handler.h index e578c4959..e86471a58 100644 --- a/code/ryzom/client/src/interface_v3/action_handler.h +++ b/code/ryzom/client/src/interface_v3/action_handler.h @@ -14,8 +14,6 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . - - #ifndef NL_ACTION_HANDLER_H #define NL_ACTION_HANDLER_H @@ -26,15 +24,6 @@ #include "nel/misc/xml_auto_ptr.h" #include -extern bool game_exit; -extern bool ryzom_exit; -extern bool game_exit_request; -extern bool ryzom_exit_request; -extern bool paying_account_request; -extern bool paying_account_already_request; -extern bool game_exit_after_paying_account_request; - - /** * interface for action handlers * \author Nicolas Brigand @@ -42,7 +31,6 @@ extern bool game_exit_after_paying_account_request; * \date 2002 */ -class IInputControl; class CCtrlBase; class IActionHandler @@ -61,23 +49,19 @@ public: /** - * interface for action handlers factory - * no release in this factory : a handler must be destroyed by the control that created it - * \author Nicolas Brigand - * \author Nevrax France - * \date 2002 + interface for action handlers factory + no release in this factory : a handler must be destroyed by the control that created it */ - -class CActionHandlerFactoryManager +class CAHManager { public: typedef std::map< std::string, IActionHandler* > TFactoryMap; typedef std::map< IActionHandler*, std::string > TNameMap; - static CActionHandlerFactoryManager* getInstance() + static CAHManager* getInstance() { if (_GlobalInstance == NULL) - _GlobalInstance = new CActionHandlerFactoryManager; + _GlobalInstance = new CAHManager; return _GlobalInstance; } @@ -96,41 +80,41 @@ public: } /// map of action handler factories - TFactoryMap FactoryMap; - TNameMap NameMap; - std::string EmptyName; + TFactoryMap FactoryMap; + TNameMap NameMap; + std::string EmptyName; + + /// return the Action Handler 'name'. if name is of form 'ah:params', then params are filled (NB: else not changed) + IActionHandler *getAH(const std::string &name, std::string ¶ms); + IActionHandler *getAH(const std::string &name, class CStringShared ¶ms); + + /** common method to parse Action Handler from a xml node + * \param ahId eg: "onclick_l" + * \param paramId eg: "params_l". + * \param params returned parameters. + * NB: if paramId is NULL, empty or does not exist in the xmlNode, then the optional param in ahId (eg: "show:phrase_book") + * is taken + * NB: if none of the optional param in ahId, or the specified param are filled/found, then params is not changed + */ + void parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, std::string ¶ms); + void parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, class CStringShared ¶ms); + + /// Get the AH name from ptr + const std::string &getAHName(IActionHandler *pAH) { return getActionHandlerName(pAH); } private: - CActionHandlerFactoryManager(){} - static CActionHandlerFactoryManager *_GlobalInstance; + CAHManager(){} + static CAHManager *_GlobalInstance; }; -/// return the Action Handler 'name'. if name is of form 'ah:params', then params are filled (NB: else not changed) -IActionHandler *getAH(const std::string &name, std::string ¶ms); -IActionHandler *getAH(const std::string &name, class CStringShared ¶ms); - -/** common method to parse Action Handler from a xml node - * \param ahId eg: "onclick_l" - * \param paramId eg: "params_l". - * \param params returned parameters. - * NB: if paramId is NULL, empty or does not exist in the xmlNode, then the optional param in ahId (eg: "show:phrase_book") - * is taken - * NB: if none of the optional param in ahId, or the specified param are filled/found, then params is not changed - */ -void parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, std::string ¶ms); -void parseAH(xmlNodePtr cur, const char *ahId, const char *paramId, IActionHandler *&ahRet, class CStringShared ¶ms); - -/// Get the AH name from ptr -inline const std::string &getAHName(IActionHandler *pAH) { return CActionHandlerFactoryManager::getInstance()->getActionHandlerName(pAH); } - /// Ah name must all be lower case -#define REGISTER_ACTION_HANDLER(handler ,name) \ -class handler##Factory : public handler\ -{\ -public:\ - handler##Factory ()\ - {\ +#define REGISTER_ACTION_HANDLER(handler ,name) \ +class handler##Factory : public handler \ +{ \ +public: \ + handler##Factory () \ + { \ nlassert(name!=NULL); \ const char *c= name; \ while(*c!='\0') \ @@ -138,12 +122,12 @@ public:\ nlassert(islower(*c) || !isalpha(*c)); \ c++; \ } \ - CActionHandlerFactoryManager *pAHFM = CActionHandlerFactoryManager::getInstance(); \ - pAHFM->FactoryMap.insert(CActionHandlerFactoryManager::TFactoryMap::value_type(name,this));\ - pAHFM->NameMap.insert(CActionHandlerFactoryManager::TNameMap::value_type(this,name));\ - };\ -}; \ - handler##Factory handler##FactoryInstance ;\ -\ + CAHManager *pAHFM = CAHManager::getInstance(); \ + pAHFM->FactoryMap.insert(CAHManager::TFactoryMap::value_type(name,this)); \ + pAHFM->NameMap.insert(CAHManager::TNameMap::value_type(this,name)); \ + }; \ +}; \ + handler##Factory handler##FactoryInstance ; \ + \ #endif //NL_ACTION_HANDLER_H diff --git a/code/ryzom/client/src/interface_v3/action_handler_base.cpp b/code/ryzom/client/src/interface_v3/action_handler_base.cpp new file mode 100644 index 000000000..c7acaf3f2 --- /dev/null +++ b/code/ryzom/client/src/interface_v3/action_handler_base.cpp @@ -0,0 +1,430 @@ +// Ryzom - MMORPG Framework +// 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 . + +#include "action_handler_base.h" +#include "action_handler_misc.h" + +#include "nel/gui/interface_expr.h" +#include "interface_manager.h" + +#include "group_container.h" +#include "group_editbox.h" +#include "dbctrl_sheet.h" +#include "interface_3d_scene.h" +#include "character_3d.h" +#include "group_container.h" +#include "people_interraction.h" + +#include "../r2/editor.h" + +using namespace std; +using namespace NLMISC; + +// ------------------------------------------------------------------------------------------------ +class CAHActiveMenu : public IActionHandler +{ + virtual void execute (CCtrlBase *pCaller, const string &Params) + { + CInterfaceManager *im = CInterfaceManager::getInstance(); + + // get the parent container + CGroupContainer *gc = NULL; + CCtrlBase *cb = pCaller; + while (cb) + { + gc = dynamic_cast(cb); + if (gc) break; + cb = cb->getParent(); + } + + // update GC_POPUP flag + if (gc) + { + NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_POPUP")->setValue64((gc->isPopuped() || gc->getLayerSetup() == 0) ? 1 : 0); + } + else + { + NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_POPUP")->setValue64(0); + } + + // update GC_HAS_HELP flag + if(gc && !gc->getHelpPage().empty()) + { + NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_HAS_HELP")->setValue64(1); + } + else + { + NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:GC_HAS_HELP")->setValue64(0); + } + + // open the menu + if (CDBCtrlSheet::getDraggedSheet() == NULL) + { + CWidgetManager::getInstance()->enableModalWindow (pCaller, getParam(Params, "menu")); + } + } +}; +REGISTER_ACTION_HANDLER (CAHActiveMenu, "active_menu"); + +// ------------------------------------------------------------------------------------------------ +class CAHSetKeyboardFocus : public IActionHandler +{ +public: + virtual void execute (CCtrlBase *pCaller, const string &Params) + { + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + string target = getParam (Params, "target"); + CGroupEditBox *geb; + if (pCaller == NULL) + geb = dynamic_cast(CWidgetManager::getInstance()->getElementFromId (target)); + else + geb = dynamic_cast(CWidgetManager::getInstance()->getElementFromId (pCaller->getId(), target)); + if (geb == NULL) + { + nlwarning(" Can't get target edit box %s, or bad type", target.c_str()); + return; + } + pIM->setCaptureKeyboard(geb); + string selectAllStr = getParam (Params, "select_all"); + bool selectAll = CInterfaceElement::convertBool(selectAllStr.c_str()); + if (selectAll) + { + geb->setSelectionAll(); + } + } +}; +REGISTER_ACTION_HANDLER (CAHSetKeyboardFocus, "set_keyboard_focus"); + +// ------------------------------------------------------------------------------------------------ +class CAHResetKeyboardFocus : public IActionHandler +{ +public: + virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */) + { + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + pIM->resetCaptureKeyboard(); + } +}; +REGISTER_ACTION_HANDLER (CAHResetKeyboardFocus, "reset_keyboard_focus"); + +// ------------------------------------------------------------------------------------------------ +class CAHSetEditBoxCommand : public IActionHandler +{ + virtual void execute (CCtrlBase * /* pCaller */, const string &Params) + { + CGroupEditBox *menuEB = CGroupEditBox::getMenuFather(); + if (menuEB) menuEB->setCommand(getParam(Params, "value"), nlstricmp(getParam(Params, "execute"), "true") ? true : false); + } +}; +REGISTER_ACTION_HANDLER (CAHSetEditBoxCommand, "set_edit_box_command"); + +// ------------------------------------------------------------------------------------------------ +class CAHSetServerString : public IActionHandler +{ + virtual void execute (CCtrlBase *pCaller, const string &Params) + { + string sValue = getParam(Params,"value"); + string sTarget = getParam(Params,"target"); + + if (sTarget.empty()) return; + + if (sTarget.rfind(':') == string::npos) + { + if (pCaller == NULL) return; + sTarget = pCaller->getId() + ":" + sTarget; + } + else + { + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + string elt = sTarget.substr(0,sTarget.rfind(':')); + CInterfaceElement *pIE; + if (pCaller != NULL) + pIE = CWidgetManager::getInstance()->getElementFromId(pCaller->getId(), elt); + else + pIE = CWidgetManager::getInstance()->getElementFromId(elt); + if (pIE == NULL) return; + sTarget = pIE->getId() + ":" + sTarget.substr(sTarget.rfind(':')+1,sTarget.size()); + } + + CInterfaceExprValue evValue; + if (CInterfaceExpr::eval(sValue, evValue, NULL)) + { + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + if (evValue.toInteger()) + pIM->addServerString (sTarget, (uint32)evValue.getInteger()); + } + } +}; +REGISTER_ACTION_HANDLER (CAHSetServerString, "set_server_string"); + +// ------------------------------------------------------------------------------------------------ +class CAHSetServerID : public IActionHandler +{ + virtual void execute (CCtrlBase *pCaller, const string &Params) + { + string sValue = getParam(Params,"value"); + string sTarget = getParam(Params,"target"); + string sRemoveTitle = getParam(Params,"remove_title"); + + if (sTarget.empty()) return; + + if (sTarget.rfind(':') == string::npos) + { + if (pCaller == NULL) return; + sTarget = pCaller->getId() + ":" + sTarget; + } + else + { + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + string elt = sTarget.substr(0,sTarget.rfind(':')); + CInterfaceElement *pIE; + if (pCaller != NULL) + pIE = CWidgetManager::getInstance()->getElementFromId(pCaller->getId(), elt); + else + pIE = CWidgetManager::getInstance()->getElementFromId(elt); + if (pIE == NULL) return; + sTarget = pIE->getId() + ":" + sTarget.substr(sTarget.rfind(':')+1,sTarget.size()); + } + + CInterfaceExprValue evValue; + if (CInterfaceExpr::eval(sValue, evValue, NULL)) + { + bool bRemoveTitle = false; + if (!sRemoveTitle.empty()) + fromString(sRemoveTitle, bRemoveTitle); + + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + + if (bRemoveTitle) + { + CStringPostProcessRemoveTitle *pSPPRT = new CStringPostProcessRemoveTitle; + + if (evValue.toInteger()) + pIM->addServerID (sTarget, (uint32)evValue.getInteger(), pSPPRT); + } + else + { + if (evValue.toInteger()) + pIM->addServerID (sTarget, (uint32)evValue.getInteger(), NULL); + } + } + } +}; +REGISTER_ACTION_HANDLER (CAHSetServerID, "set_server_id"); + +// ------------------------------------------------------------------------------------------------ +class CAHResetCamera : public IActionHandler +{ + virtual void execute (CCtrlBase *pCaller, const string &Params) + { + string sTarget = getParam(Params,"target"); + + if (sTarget.empty()) return; + + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + CInterfaceElement *pIE; + if (pCaller != NULL) + pIE = CWidgetManager::getInstance()->getElementFromId(pCaller->getId(), sTarget); + else + pIE = CWidgetManager::getInstance()->getElementFromId(sTarget); + CInterface3DCamera *pCam = dynamic_cast(pIE); + if (pCam == NULL) return; + pCam->reset(); + } +}; +REGISTER_ACTION_HANDLER (CAHResetCamera, "reset_camera"); + +/////////////////////////////// +// VIRTUAL DESKTOP MANAGMENT // +/////////////////////////////// + + +// ------------------------------------------------------------------------------------------------ +class CAHSetVirtualDesktop : public IActionHandler +{ + virtual void execute (CCtrlBase * /* pCaller */, const string &Params) + { + string sVDesk = getParam(Params,"vdesk"); + + if (sVDesk.empty()) return; + sint32 nVDesk; + fromString(sVDesk, nVDesk); + + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + pIM->setMode((uint8)nVDesk); + + PeopleInterraction.refreshActiveUserChats(); + } +}; +REGISTER_ACTION_HANDLER (CAHSetVirtualDesktop, "set_virtual_desktop"); + +// ------------------------------------------------------------------------------------------------ +class CAHResetVirtualDesktop : public IActionHandler +{ + virtual void execute (CCtrlBase * /* pCaller */, const string &Params) + { + string sVDesk = getParam(Params,"vdesk"); + + if (sVDesk.empty()) return; + sint32 nVDesk; + fromString(sVDesk, nVDesk); + + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + pIM->resetMode((uint8)nVDesk); + + PeopleInterraction.refreshActiveUserChats(); + } +}; +REGISTER_ACTION_HANDLER (CAHResetVirtualDesktop, "reset_virtual_desktop"); + +// ------------------------------------------------------------------------------------------------ +class CAHMilkoMenuResetInterface : public IActionHandler +{ + virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */) + { + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + string sParam("mode="); + if(R2::getEditor().getMode() == R2::CEditor::TestMode) + sParam = "R2TestMode"; + + pIM->validMessageBox(CInterfaceManager::QuestionIconMsg, CI18N::get("uiQResetUI"), "milko_menu_do_reset_interface", sParam); + } +}; +REGISTER_ACTION_HANDLER (CAHMilkoMenuResetInterface, "milko_menu_reset_interface"); + +// ------------------------------------------------------------------------------------------------ +class CAHMilkoMenuDoResetInterface : public IActionHandler +{ + virtual void execute (CCtrlBase * /* pCaller */, const string& Params) + { + // get param + string mode; + fromString(getParam(Params, "mode"), mode); + + // run procedure + vector v; + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + if (mode == "R2TestMode") + pIM->runProcedure ("proc_reset_r2ed_interface", NULL, v); + else + pIM->runProcedure("proc_reset_interface", NULL, v); + } +}; +REGISTER_ACTION_HANDLER(CAHMilkoMenuDoResetInterface, "milko_menu_do_reset_interface"); + +// ------------------------------------------------------------------------------------------------ +class CAHResetInterface : public IActionHandler +{ + virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */) + { + uint32 i; + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + const vector &rVMG = CWidgetManager::getInstance()->getAllMasterGroup(); + for (uint32 nMasterGroup = 0; nMasterGroup < rVMG.size(); nMasterGroup++) + { + const CWidgetManager::SMasterGroup &rMG = rVMG[nMasterGroup]; + const vector &rV = rMG.Group->getGroups(); + // Active all containers (that can be activated) + for (i = 0; i < rV.size(); ++i) + { + CGroupContainer *pGC = dynamic_cast(rV[i]); + if (pGC == NULL) continue; + if (pGC->isSavable()) + { + // Yoyo: DO NOT force activation of containers who don't want to save their Active state. + // Usually driven by server. + if(pGC->isActiveSavable()) + pGC->setActive(true); + } + } + + pIM->checkCoords(); + CWidgetManager::getInstance()->getMasterGroup((uint8)nMasterGroup).centerAllContainers(); + + // Pop in and close all containers + for (i = 0; i < rV.size(); ++i) + { + CGroupContainer *pGC = dynamic_cast(rV[i]); + if (pGC == NULL) continue; + if (pGC->isSavable()) + { + if (pGC->isPopable()&&pGC->isPopuped()) + pGC->popin(); + + // Can close ? + if (pGC->isOpenable()&&pGC->isOpen()) + pGC->close(); + } + } + + CWidgetManager::getInstance()->getMasterGroup((uint8)nMasterGroup).deactiveAllContainers(); + } + } +}; +REGISTER_ACTION_HANDLER (CAHResetInterface, "reset_interface"); + +// ------------------------------------------------------------------------------------------------ +class CAHConvertServerEntities : public IActionHandler +{ + virtual void execute (CCtrlBase * /* pCaller */, const string &Params) + { + string sDstPath = getParam(Params, "dest"); + if (sDstPath.empty()) return; + string sEntityNb = getParam(Params, "entity"); + uint32 nEntityNb = 0; + if (!sEntityNb.empty()) + fromString(sEntityNb, nEntityNb); + + CCharacterSummary cs; + SCharacter3DSetup::setupCharacterSummaryFromSERVERDB(cs, (uint8)nEntityNb); + SCharacter3DSetup::setupDBFromCharacterSummary(sDstPath, cs); + + } +}; +REGISTER_ACTION_HANDLER (CAHConvertServerEntities, "convert_server_entities"); + +/*// ------------------------------------------------------------------------------------------------ +class CAHPopup : public IActionHandler +{ + virtual void execute (CCtrlBase *pCaller, const string &Params) + { + string sCont = getParam(Params,"cont"); + CInterfaceExprValue eVal; + if (!CInterfaceExpr::eval(sCont, eVal, NULL)) return; + sCont = eVal.getString(); + if (sCont.empty()) return; + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + CGroupContainer *pGC = dynamic_cast(CWidgetManager::getInstance()->getElementFromId(sCont)); + if (pGC == NULL) return; + if (pGC->isPopuped()) return; + pGC->setHighLighted(false); + // pop the window + pGC->popupCurrentPos(); + if (pGC->getPopupW() != -1) + { + pGC->setX(pGC->getPopupX()); + pGC->setY(pGC->getPopupY()); + pGC->setW(pGC->getPopupW()); + // must resize the children to get correct height + pGC->setChildrenH(pGC->getPopupChildrenH()); + } + pGC->invalidateCoords(2); + } +}; +REGISTER_ACTION_HANDLER (CAHPopup, "popup"); +*/ + + diff --git a/code/ryzom/client/src/interface_v3/action_handler_base.h b/code/ryzom/client/src/interface_v3/action_handler_base.h new file mode 100644 index 000000000..67af6e634 --- /dev/null +++ b/code/ryzom/client/src/interface_v3/action_handler_base.h @@ -0,0 +1,28 @@ +// Ryzom - MMORPG Framework +// 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 . + +#ifndef ACTION_HANDLER_BASE_H +#define ACTION_HANDLER_BASE_H + +extern bool game_exit; +extern bool ryzom_exit; +extern bool game_exit_request; +extern bool ryzom_exit_request; +extern bool paying_account_request; +extern bool paying_account_already_request; +extern bool game_exit_after_paying_account_request; + +#endif diff --git a/code/ryzom/client/src/interface_v3/action_handler_game.cpp b/code/ryzom/client/src/interface_v3/action_handler_game.cpp index cf3f89251..6d5ea3f5d 100644 --- a/code/ryzom/client/src/interface_v3/action_handler_game.cpp +++ b/code/ryzom/client/src/interface_v3/action_handler_game.cpp @@ -22,6 +22,7 @@ // Interface includes #include "interface_manager.h" #include "action_handler.h" +#include "action_handler_base.h" #include "action_handler_misc.h" #include "bot_chat_manager.h" #include "bot_chat_page_all.h" diff --git a/code/ryzom/client/src/interface_v3/ctrl_base_button.cpp b/code/ryzom/client/src/interface_v3/ctrl_base_button.cpp index b0248aa66..4584ac003 100644 --- a/code/ryzom/client/src/interface_v3/ctrl_base_button.cpp +++ b/code/ryzom/client/src/interface_v3/ctrl_base_button.cpp @@ -149,12 +149,12 @@ bool CCtrlBaseButton::parse (xmlNodePtr cur,CInterfaceGroup * parentGroup) // *** Read Action handlers - parseAH(cur, "onover", "params_over", _AHOnOver, _AHOverParams); - parseAH(cur, "onclick_l", "params_l", _AHOnLeftClick, _AHLeftClickParams); - parseAH(cur, "ondblclick_l", "params_dblclick_l", _AHOnLeftDblClick, _AHLeftDblClickParams); - parseAH(cur, "onclick_r", "params_r", _AHOnRightClick, _AHRightClickParams); - parseAH(cur, "onlongclick_l", "params_longclick_l", _AHOnLeftLongClick, _AHLeftLongClickParams); - parseAH(cur, "onclock_tick", "params_clock_tick", _AHOnClockTick, _AHClockTickParams); + CAHManager::getInstance()->parseAH(cur, "onover", "params_over", _AHOnOver, _AHOverParams); + CAHManager::getInstance()->parseAH(cur, "onclick_l", "params_l", _AHOnLeftClick, _AHLeftClickParams); + CAHManager::getInstance()->parseAH(cur, "ondblclick_l", "params_dblclick_l", _AHOnLeftDblClick, _AHLeftDblClickParams); + CAHManager::getInstance()->parseAH(cur, "onclick_r", "params_r", _AHOnRightClick, _AHRightClickParams); + CAHManager::getInstance()->parseAH(cur, "onlongclick_l", "params_longclick_l", _AHOnLeftLongClick, _AHLeftLongClickParams); + CAHManager::getInstance()->parseAH(cur, "onclock_tick", "params_clock_tick", _AHOnClockTick, _AHClockTickParams); // Context menu association prop = (char*) xmlGetProp( cur, (xmlChar*)"menu_l" ); diff --git a/code/ryzom/client/src/interface_v3/ctrl_base_button.h b/code/ryzom/client/src/interface_v3/ctrl_base_button.h index eb7438e8b..25d3dddf7 100644 --- a/code/ryzom/client/src/interface_v3/ctrl_base_button.h +++ b/code/ryzom/client/src/interface_v3/ctrl_base_button.h @@ -114,16 +114,16 @@ public: /// \name Handlers // @{ // Event part - void setActionOnLeftClick (const std::string &actionHandlerName) { _AHOnLeftClickString = actionHandlerName; _AHOnLeftClick = getAH(actionHandlerName, _AHLeftClickParams); } + void setActionOnLeftClick (const std::string &actionHandlerName) { _AHOnLeftClickString = actionHandlerName; _AHOnLeftClick = CAHManager::getInstance()->getAH(actionHandlerName, _AHLeftClickParams); } void setActionOnLeftClickParams(const std::string ¶ms) { _AHOnLeftClickStringParams = params; } - void setActionOnRightClick (const std::string &actionHandlerName) { _AHOnRightClick = getAH(actionHandlerName, _AHRightClickParams); } - void setActionOnClockTick (const std::string &ahName) { _AHOnClockTick = getAH(ahName, _AHClockTickParams); } + void setActionOnRightClick (const std::string &actionHandlerName) { _AHOnRightClick = CAHManager::getInstance()->getAH(actionHandlerName, _AHRightClickParams); } + void setActionOnClockTick (const std::string &ahName) { _AHOnClockTick = CAHManager::getInstance()->getAH(ahName, _AHClockTickParams); } void setParamsOnLeftClick (const std::string ¶msHandlerName) { _AHLeftClickParams = paramsHandlerName; } void setParamsOnRightClick (const std::string ¶msHandlerName) { _AHRightClickParams = paramsHandlerName; } void setParamsOnClockTick (const std::string &ahParamsName) { _AHClockTickParams = ahParamsName; } // get Event part - std::string _getActionOnLeftClick() const { return getAHName(_AHOnLeftClick); } + std::string _getActionOnLeftClick() const { return CAHManager::getInstance()->getAHName(_AHOnLeftClick); } IActionHandler *getActionOnLeftClick () const { return _AHOnLeftClick; } IActionHandler *getActionOnRightClick () const { return _AHOnRightClick; } IActionHandler *getActionOnClockTick () const { return _AHOnClockTick; } diff --git a/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp b/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp index 980a8459b..c42e1699b 100644 --- a/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp +++ b/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp @@ -383,13 +383,13 @@ bool CCtrlSheetInfo::parseCtrlInfo(xmlNodePtr cur, CInterfaceGroup * /* parentGr if (prop) _Dragable = CInterfaceElement::convertBool(prop); // Read Action handlers - parseAH(cur, "onclick_l", "params_l", _AHOnLeftClick, _AHLeftClickParams); - parseAH(cur, "onclick_r", "params_r", _AHOnRightClick, _AHRightClickParams); - parseAH(cur, "oncandrop", "params_candrop", _AHOnCanDrop, _AHCanDropParams); - parseAH(cur, "ondrop", "params_drop", _AHOnDrop, _AHDropParams); - parseAH(cur, "oncannotdrop", "params_cannotdrop", _AHOnCannotDrop, _AHCannotDropParams); - parseAH(cur, "oncandrag", "params_candrag", _AHOnCanDrag, _AHCanDragParams); - parseAH(cur, "ondrag", "params_drag", _AHOnDrag, _AHDragParams); + CAHManager::getInstance()->parseAH(cur, "onclick_l", "params_l", _AHOnLeftClick, _AHLeftClickParams); + CAHManager::getInstance()->parseAH(cur, "onclick_r", "params_r", _AHOnRightClick, _AHRightClickParams); + CAHManager::getInstance()->parseAH(cur, "oncandrop", "params_candrop", _AHOnCanDrop, _AHCanDropParams); + CAHManager::getInstance()->parseAH(cur, "ondrop", "params_drop", _AHOnDrop, _AHDropParams); + CAHManager::getInstance()->parseAH(cur, "oncannotdrop", "params_cannotdrop", _AHOnCannotDrop, _AHCannotDropParams); + CAHManager::getInstance()->parseAH(cur, "oncandrag", "params_candrag", _AHOnCanDrag, _AHCanDragParams); + CAHManager::getInstance()->parseAH(cur, "ondrag", "params_drag", _AHOnDrag, _AHDragParams); prop = (char*) xmlGetProp( cur, (xmlChar*)"selection_group" ); if (prop) @@ -1870,7 +1870,7 @@ void CDBCtrlSheet::draw() string params = string("src=") + pCSSrc->getId(); if (!_AHCanDropParams.empty()) { - if (getAHName(_AHOnCanDrop) == "lua") + if ( CAHManager::getInstance()->getAHName(_AHOnCanDrop) == "lua") { params = _AHCanDropParams; strFindReplace(params, "%src", pCSSrc->getId()); @@ -2687,7 +2687,7 @@ bool CDBCtrlSheet::handleEvent (const NLGUI::CEventDescriptor &event) string params = string("src=") + _Id; if (!pCSdest->_AHCanDropParams.empty()) { - if (getAHName(pCSdest->_AHOnCanDrop) == "lua") + if (CAHManager::getInstance()->getAHName(pCSdest->_AHOnCanDrop) == "lua") { params = pCSdest->_AHCanDropParams; strFindReplace(params, "%src", _Id); @@ -2707,7 +2707,7 @@ bool CDBCtrlSheet::handleEvent (const NLGUI::CEventDescriptor &event) string params = string("src=") + _Id; if (!pCSdest->_AHDropParams.empty()) { - if (getAHName(pCSdest->_AHOnDrop) == "lua") + if (CAHManager::getInstance()->getAHName(pCSdest->_AHOnDrop) == "lua") { params = pCSdest->_AHDropParams; strFindReplace(params, "%src", _Id); @@ -2752,7 +2752,7 @@ bool CDBCtrlSheet::handleEvent (const NLGUI::CEventDescriptor &event) string params = string("src=") + _Id; if (!pList->getCtrlSheetInfo()._AHCanDropParams.empty()) { - if (getAHName(pList->getCtrlSheetInfo()._AHOnCanDrop) == "lua") + if (CAHManager::getInstance()->getAHName(pList->getCtrlSheetInfo()._AHOnCanDrop) == "lua") { params = pList->getCtrlSheetInfo()._AHCanDropParams; strFindReplace(params, "%src", _Id); @@ -2772,7 +2772,7 @@ bool CDBCtrlSheet::handleEvent (const NLGUI::CEventDescriptor &event) string params = string("src=") + _Id; if (!pList->getCtrlSheetInfo()._AHDropParams.empty()) { - if (getAHName(pList->getCtrlSheetInfo()._AHOnDrop) == "lua") + if (CAHManager::getInstance()->getAHName(pList->getCtrlSheetInfo()._AHOnDrop) == "lua") { params = pList->getCtrlSheetInfo()._AHDropParams; strFindReplace(params, "%src", _Id); diff --git a/code/ryzom/client/src/interface_v3/dbctrl_sheet.h b/code/ryzom/client/src/interface_v3/dbctrl_sheet.h index ed6abde2b..29b6d21ad 100644 --- a/code/ryzom/client/src/interface_v3/dbctrl_sheet.h +++ b/code/ryzom/client/src/interface_v3/dbctrl_sheet.h @@ -191,19 +191,19 @@ public: virtual bool handleEvent (const NLGUI::CEventDescriptor &event); - void setActionOnLeftClick (const std::string &ActionHandlerName) { _AHOnLeftClick = getAH(ActionHandlerName, _AHLeftClickParams); } - void setActionOnRightClick (const std::string &ActionHandlerName) { _AHOnRightClick = getAH(ActionHandlerName, _AHRightClickParams); } - void setActionOnDrop (const std::string &ActionHandlerName) { _AHOnDrop = getAH(ActionHandlerName, _AHDropParams); } - void setActionOnCanDrop (const std::string &ActionHandlerName) { _AHOnCanDrop = getAH(ActionHandlerName, _AHCanDropParams); } + void setActionOnLeftClick (const std::string &ActionHandlerName) { _AHOnLeftClick = CAHManager::getInstance()->getAH(ActionHandlerName, _AHLeftClickParams); } + void setActionOnRightClick (const std::string &ActionHandlerName) { _AHOnRightClick = CAHManager::getInstance()->getAH(ActionHandlerName, _AHRightClickParams); } + void setActionOnDrop (const std::string &ActionHandlerName) { _AHOnDrop = CAHManager::getInstance()->getAH(ActionHandlerName, _AHDropParams); } + void setActionOnCanDrop (const std::string &ActionHandlerName) { _AHOnCanDrop = CAHManager::getInstance()->getAH(ActionHandlerName, _AHCanDropParams); } void setParamsOnLeftClick (const std::string &ParamsHandlerName) { _AHLeftClickParams = ParamsHandlerName; } void setParamsOnRightClick (const std::string &ParamsHandlerName) { _AHRightClickParams = ParamsHandlerName; } void setParamsOnDrop (const std::string &ParamsHandlerName) { _AHDropParams = ParamsHandlerName; } void setParamsOnCanDrop (const std::string &ParamsHandlerName) { _AHCanDropParams = ParamsHandlerName; } - const std::string &getActionOnLeftClick () const { return getAHName(_AHOnLeftClick); } - const std::string &getActionOnRightClick () const { return getAHName(_AHOnRightClick); } - const std::string &getActionOnDrop () const { return getAHName(_AHOnDrop); } - const std::string &getActionOnCanDrop () const { return getAHName(_AHOnCanDrop); } + const std::string &getActionOnLeftClick () const { return CAHManager::getInstance()->getAHName(_AHOnLeftClick); } + const std::string &getActionOnRightClick () const { return CAHManager::getInstance()->getAHName(_AHOnRightClick); } + const std::string &getActionOnDrop () const { return CAHManager::getInstance()->getAHName(_AHOnDrop); } + const std::string &getActionOnCanDrop () const { return CAHManager::getInstance()->getAHName(_AHOnCanDrop); } const std::string &getParamsOnLeftClick () const { return _AHLeftClickParams; } const std::string &getParamsOnRightClick () const { return _AHRightClickParams; } const std::string &getParamsOnDrop () const { return _AHDropParams; } diff --git a/code/ryzom/client/src/interface_v3/group_container.cpp b/code/ryzom/client/src/interface_v3/group_container.cpp index 19e3891f9..629dba6fe 100644 --- a/code/ryzom/client/src/interface_v3/group_container.cpp +++ b/code/ryzom/client/src/interface_v3/group_container.cpp @@ -1426,14 +1426,14 @@ bool CGroupContainer::parse(xmlNodePtr cur, CInterfaceGroup * parentGroup) if (ptr) fromString((const char*)ptr, _ResizerTopSize); - parseAH(cur, "on_open", "on_open_params", _AHOnOpen, _AHOnOpenParams); - parseAH(cur, "on_close", "on_close_params", _AHOnClose, _AHOnCloseParams); - parseAH(cur, "on_close_button", "on_close_button_params", _AHOnCloseButton, _AHOnCloseButtonParams); - parseAH(cur, "on_move", "on_move_params", _AHOnMove, _AHOnMoveParams); - parseAH(cur, "on_deactive_check", "on_deactive_check_params", _AHOnDeactiveCheck, _AHOnDeactiveCheckParams); - parseAH(cur, "on_resize", "on_resize_params", _AHOnResize, _AHOnResizeParams); - parseAH(cur, "on_alpha_settings_changed", "on_alpha_settings_changed_params", _AHOnAlphaSettingsChanged, _AHOnAlphaSettingsChangedParams); - parseAH(cur, "on_begin_move", "on_begin_move_params", _AHOnBeginMove, _AHOnBeginMoveParams); + CAHManager::getInstance()->parseAH(cur, "on_open", "on_open_params", _AHOnOpen, _AHOnOpenParams); + CAHManager::getInstance()->parseAH(cur, "on_close", "on_close_params", _AHOnClose, _AHOnCloseParams); + CAHManager::getInstance()->parseAH(cur, "on_close_button", "on_close_button_params", _AHOnCloseButton, _AHOnCloseButtonParams); + CAHManager::getInstance()->parseAH(cur, "on_move", "on_move_params", _AHOnMove, _AHOnMoveParams); + CAHManager::getInstance()->parseAH(cur, "on_deactive_check", "on_deactive_check_params", _AHOnDeactiveCheck, _AHOnDeactiveCheckParams); + CAHManager::getInstance()->parseAH(cur, "on_resize", "on_resize_params", _AHOnResize, _AHOnResizeParams); + CAHManager::getInstance()->parseAH(cur, "on_alpha_settings_changed", "on_alpha_settings_changed_params", _AHOnAlphaSettingsChanged, _AHOnAlphaSettingsChangedParams); + CAHManager::getInstance()->parseAH(cur, "on_begin_move", "on_begin_move_params", _AHOnBeginMove, _AHOnBeginMoveParams); ptr = xmlGetProp (cur, (xmlChar*)"max_w"); diff --git a/code/ryzom/client/src/interface_v3/group_container.h b/code/ryzom/client/src/interface_v3/group_container.h index ae899f9b9..94b00f9f3 100644 --- a/code/ryzom/client/src/interface_v3/group_container.h +++ b/code/ryzom/client/src/interface_v3/group_container.h @@ -415,33 +415,33 @@ public: // to be called by the 'deactive check' handler static void validateCanDeactivate(bool validate) { _ValidateCanDeactivate = validate; } - const std::string &getAHOnDeactiveCheck() const { return getAHName(_AHOnDeactiveCheck); } + const std::string &getAHOnDeactiveCheck() const { return CAHManager::getInstance()->getAHName(_AHOnDeactiveCheck); } const std::string &getAHOnDeactiveCheckParams() const { return _AHOnDeactiveCheckParams; } // - const std::string &getAHOnCloseButton() const { return getAHName(_AHOnCloseButton); } + const std::string &getAHOnCloseButton() const { return CAHManager::getInstance()->getAHName(_AHOnCloseButton); } const std::string &getAHOnCloseButtonParams() const { return _AHOnCloseButtonParams; } // IActionHandler *getAHOnMovePtr() const { return _AHOnMove; } - const std::string &getAHOnMove() const { return getAHName(_AHOnMove); } + const std::string &getAHOnMove() const { return CAHManager::getInstance()->getAHName(_AHOnMove); } const std::string &getAHOnMoveParams() const { return _AHOnMoveParams; } // IActionHandler *getAHOnResizePtr() const { return _AHOnResize; } - const std::string &getAHOnResize() const { return getAHName(_AHOnResize); } + const std::string &getAHOnResize() const { return CAHManager::getInstance()->getAHName(_AHOnResize); } const std::string &getAHOnResizeParams() const { return _AHOnResizeParams; } // IActionHandler *getAHOnBeginMovePtr() const { return _AHOnBeginMove; } - const std::string &getAHOnBeginMove() const { return getAHName(_AHOnBeginMove); } + const std::string &getAHOnBeginMove() const { return CAHManager::getInstance()->getAHName(_AHOnBeginMove); } const std::string &getAHOnBeginMoveParams() const { return _AHOnBeginMoveParams; } // - void setOnCloseButtonHandler(const std::string &h) { _AHOnCloseButton = getAH(h,_AHOnCloseButtonParams); } + 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 getAHName(_AHOnAlphaSettingsChanged); } + std::string getAHOnAlphaSettingsChanged() const { return CAHManager::getInstance()->getAHName(_AHOnAlphaSettingsChanged); } std::string getAHOnAlphaSettingsChangedParams() const { return _AHOnAlphaSettingsChangedParams; } - void setAHOnAlphaSettingsChanged(const std::string &h) { _AHOnAlphaSettingsChanged = getAH(h, _AHOnAlphaSettingsChangedParams); } + void setAHOnAlphaSettingsChanged(const std::string &h) { _AHOnAlphaSettingsChanged = CAHManager::getInstance()->getAH(h, _AHOnAlphaSettingsChangedParams); } void setAHOnAlphaSettingsChangedParams(const std::string &p) { _AHOnAlphaSettingsChangedParams = p; } diff --git a/code/ryzom/client/src/interface_v3/group_editbox.cpp b/code/ryzom/client/src/interface_v3/group_editbox.cpp index 478bb73a2..c42878ef8 100644 --- a/code/ryzom/client/src/interface_v3/group_editbox.cpp +++ b/code/ryzom/client/src/interface_v3/group_editbox.cpp @@ -119,7 +119,7 @@ bool CGroupEditBox::parse(xmlNodePtr cur, CInterfaceGroup * parentGroup) } // NB: use InterfaceGroup "OnEnter" data. Different script params for an historic reason - parseAH(cur, "onenter", "params", _AHOnEnter, _AHOnEnterParams); + CAHManager::getInstance()->parseAH(cur, "onenter", "params", _AHOnEnter, _AHOnEnterParams); prop = (char*) xmlGetProp( cur, (xmlChar*)"onchange" ); if (prop) _AHOnChange = (const char *) prop; diff --git a/code/ryzom/client/src/interface_v3/group_tab.cpp b/code/ryzom/client/src/interface_v3/group_tab.cpp index 38a971890..8c189ae11 100644 --- a/code/ryzom/client/src/interface_v3/group_tab.cpp +++ b/code/ryzom/client/src/interface_v3/group_tab.cpp @@ -752,7 +752,7 @@ bool CCtrlTabButton::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) // if left click not setuped, set default _AHOnLeftClick2 = _AHOnLeftClick; string dummy; - _AHOnLeftClick= getAH("tab_select", dummy); + _AHOnLeftClick= CAHManager::getInstance()->getAH("tab_select", dummy); // read the associated group to show/hide CXMLAutoPtr prop; diff --git a/code/ryzom/client/src/interface_v3/group_wheel.cpp b/code/ryzom/client/src/interface_v3/group_wheel.cpp index 91cc53dd2..78bd079b5 100644 --- a/code/ryzom/client/src/interface_v3/group_wheel.cpp +++ b/code/ryzom/client/src/interface_v3/group_wheel.cpp @@ -37,8 +37,8 @@ CInterfaceGroupWheel::CInterfaceGroupWheel(const TCtorParam ¶m) : CInterface bool CInterfaceGroupWheel::parse(xmlNodePtr cur, CInterfaceGroup * parentGroup) { if (!CInterfaceGroup::parse(cur, parentGroup)) return false; - parseAH(cur, "on_wheel_up", "on_wheel_up_params", _AHWheelUp, _AHWheelUpParams); - parseAH(cur, "on_wheel_down", "on_wheel_down_params", _AHWheelDown, _AHWheelDownParams); + CAHManager::getInstance()->parseAH(cur, "on_wheel_up", "on_wheel_up_params", _AHWheelUp, _AHWheelUpParams); + CAHManager::getInstance()->parseAH(cur, "on_wheel_down", "on_wheel_down_params", _AHWheelDown, _AHWheelDownParams); return true; } diff --git a/code/ryzom/client/src/interface_v3/interface_element.cpp b/code/ryzom/client/src/interface_v3/interface_element.cpp index bca3816af..ff9977ce6 100644 --- a/code/ryzom/client/src/interface_v3/interface_element.cpp +++ b/code/ryzom/client/src/interface_v3/interface_element.cpp @@ -1254,11 +1254,11 @@ void CInterfaceElement::serialAH(NLMISC::IStream &f, IActionHandler *&ah) if (f.isReading()) { f.serial(ahName); - ah = CActionHandlerFactoryManager::getInstance()->getActionHandler(ahName); + ah = CAHManager::getInstance()->getActionHandler(ahName); } else { - ahName = CActionHandlerFactoryManager::getInstance()->getActionHandlerName(ah); + ahName = CAHManager::getInstance()->getActionHandlerName(ah); f.serial(ahName); } } diff --git a/code/ryzom/client/src/interface_v3/interface_group.cpp b/code/ryzom/client/src/interface_v3/interface_group.cpp index 814560331..1a4a380b6 100644 --- a/code/ryzom/client/src/interface_v3/interface_group.cpp +++ b/code/ryzom/client/src/interface_v3/interface_group.cpp @@ -292,8 +292,8 @@ bool CInterfaceGroup::parse (xmlNodePtr cur, CInterfaceGroup * parentGroup) { NLMISC::fromString((const char*)ptr, _ResizeFromChildHMargin); } - parseAH(cur, "on_active", "on_active_params", _AHOnActive, _AHOnActiveParams); - parseAH(cur, "on_deactive", "on_deactive_params", _AHOnDeactive, _AHOnDeactiveParams); + CAHManager::getInstance()->parseAH(cur, "on_active", "on_active_params", _AHOnActive, _AHOnActiveParams); + CAHManager::getInstance()->parseAH(cur, "on_deactive", "on_deactive_params", _AHOnDeactive, _AHOnDeactiveParams); // Read user max size ptr = (char*) xmlGetProp( cur, (xmlChar*)"max_w" ); @@ -327,11 +327,11 @@ bool CInterfaceGroup::parse (xmlNodePtr cur, CInterfaceGroup * parentGroup) } // left & right clicks - parseAH(cur, "group_onclick_r", "group_params_r", _AHOnRightClick, _AHOnRightClickParams); - parseAH(cur, "group_onclick_l", "group_params_l", _AHOnLeftClick, _AHOnLeftClickParams); + CAHManager::getInstance()->parseAH(cur, "group_onclick_r", "group_params_r", _AHOnRightClick, _AHOnRightClickParams); + CAHManager::getInstance()->parseAH(cur, "group_onclick_l", "group_params_l", _AHOnLeftClick, _AHOnLeftClickParams); // Each window (modal and groupContainer) can be validated by Enter. if "" => no op. - parseAH(cur, "on_enter", "on_enter_params", _AHOnEnter, _AHOnEnterParams); + CAHManager::getInstance()->parseAH(cur, "on_enter", "on_enter_params", _AHOnEnter, _AHOnEnterParams); ptr = (char*) xmlGetProp( cur, (xmlChar*)"win_priority" ); if(ptr) NLMISC::fromString((const char*)ptr, _Priority); @@ -341,7 +341,7 @@ bool CInterfaceGroup::parse (xmlNodePtr cur, CInterfaceGroup * parentGroup) // Each window (modal and groupContainer) can be escaped if "escapable" set // they can add an action handler before the hide - parseAH(cur, "on_escape", "on_escape_params", _AHOnEscape, _AHOnEscapeParams); + CAHManager::getInstance()->parseAH(cur, "on_escape", "on_escape_params", _AHOnEscape, _AHOnEscapeParams); // LuaClass script @@ -1559,13 +1559,13 @@ void CInterfaceGroup::setAlpha (sint32 a) // ------------------------------------------------------------------------------------------------ void CInterfaceGroup::setLeftClickHandler(const std::string &handler) { - _AHOnLeftClick = getAH(handler, _AHOnLeftClickParams); + _AHOnLeftClick = CAHManager::getInstance()->getAH(handler, _AHOnLeftClickParams); } // ------------------------------------------------------------------------------------------------ void CInterfaceGroup::setRightClickHandler(const std::string &handler) { - _AHOnRightClick = getAH(handler, _AHOnRightClickParams); + _AHOnRightClick = CAHManager::getInstance()->getAH(handler, _AHOnRightClickParams); } // ------------------------------------------------------------------------------------------------ diff --git a/code/ryzom/client/src/interface_v3/interface_group.h b/code/ryzom/client/src/interface_v3/interface_group.h index f9bc949eb..ee9357749 100644 --- a/code/ryzom/client/src/interface_v3/interface_group.h +++ b/code/ryzom/client/src/interface_v3/interface_group.h @@ -134,13 +134,13 @@ public: // escapable void setEscapable(bool b) { _Escapable= b; } bool getEscapable() const { return _Escapable; } - void setAHOnEscape(const std::string &ah) { _AHOnEscape = getAH(ah, _AHOnEscapeParams); } - const std::string &getAHOnEscape() const { return getAHName(_AHOnEscape); } + void setAHOnEscape(const std::string &ah) { _AHOnEscape = CAHManager::getInstance()->getAH(ah, _AHOnEscapeParams); } + const std::string &getAHOnEscape() const { return CAHManager::getInstance()->getAHName(_AHOnEscape); } void setAHOnEscapeParams(const std::string &ah) { _AHOnEscapeParams = ah; } const std::string &getAHOnEscapeParams() const { return _AHOnEscapeParams; } // enterable - void setAHOnEnter(const std::string &ah) { _AHOnEnter = getAH(ah, _AHOnEnterParams); } - const std::string &getAHOnEnter() const { return getAHName(_AHOnEnter); } + void setAHOnEnter(const std::string &ah) { _AHOnEnter = CAHManager::getInstance()->getAH(ah, _AHOnEnterParams); } + const std::string &getAHOnEnter() const { return CAHManager::getInstance()->getAHName(_AHOnEnter); } void setAHOnEnterParams(const std::string &ah) { _AHOnEnterParams = ah; } const std::string &getAHOnEnterParams() const { return _AHOnEnterParams; } uint8 getPriority() const { return _Priority; } @@ -174,18 +174,18 @@ public: void setRightClickHandler(const std::string &handler); void setLeftClickHandlerParams(const std::string ¶ms) { _AHOnLeftClickParams = params; } void setRightClickHandlerParams(const std::string ¶ms) { _AHOnRightClickParams = params; } - void setOnActiveHandler(const std::string &h) { _AHOnActive = getAH(h,_AHOnActiveParams); } + void setOnActiveHandler(const std::string &h) { _AHOnActive = CAHManager::getInstance()->getAH(h,_AHOnActiveParams); } void setOnActiveParams(const std::string &p) { _AHOnActiveParams = p; } - void setOnDeactiveHandler(const std::string &h) { _AHOnDeactive = getAH(h,_AHOnDeactiveParams); } + void setOnDeactiveHandler(const std::string &h) { _AHOnDeactive = CAHManager::getInstance()->getAH(h,_AHOnDeactiveParams); } void setOnDeactiveParams(const std::string &p) { _AHOnDeactiveParams = p; } - const std::string &getLeftClickHandler() const { return getAHName(_AHOnLeftClick); } + const std::string &getLeftClickHandler() const { return CAHManager::getInstance()->getAHName(_AHOnLeftClick); } const std::string &getLeftClickHandlerParams() const { return _AHOnLeftClickParams; } - const std::string &getRightClickHandler() const { return getAHName(_AHOnRightClick); } + const std::string &getRightClickHandler() const { return CAHManager::getInstance()->getAHName(_AHOnRightClick); } const std::string &getRightClickHandlerParams() const { return _AHOnRightClickParams; } - const std::string &getOnActiveHandler() const { return getAHName(_AHOnActive); } + const std::string &getOnActiveHandler() const { return CAHManager::getInstance()->getAHName(_AHOnActive); } const std::string &getOnActiveParams() const { return _AHOnActiveParams; } - const std::string &getOnDeactiveHandler() const { return getAHName(_AHOnDeactive); } + const std::string &getOnDeactiveHandler() const { return CAHManager::getInstance()->getAHName(_AHOnDeactive); } const std::string &getOnDeactiveParams() const { return _AHOnDeactiveParams; } // find a sub view/ctrl/group in this group from its id diff --git a/code/ryzom/client/src/interface_v3/interface_manager.cpp b/code/ryzom/client/src/interface_v3/interface_manager.cpp index 41f678289..9872b5962 100644 --- a/code/ryzom/client/src/interface_v3/interface_manager.cpp +++ b/code/ryzom/client/src/interface_v3/interface_manager.cpp @@ -1410,7 +1410,7 @@ void CInterfaceManager::runActionHandler (const string &ahCmdLine, CCtrlBase *pC ahParams= ahUserParams; // Execute the action handler - CActionHandlerFactoryManager *pAHFM = CActionHandlerFactoryManager::getInstance(); + CAHManager *pAHFM = CAHManager::getInstance(); map::iterator it = pAHFM->FactoryMap.find (ahName); if (it == pAHFM->FactoryMap.end()) { @@ -1442,11 +1442,11 @@ void CInterfaceManager::runActionHandler (IActionHandler *pAH, CCtrlBase *pCalle return; } pAH->execute (pCaller, Params); - string AHName = getAHName(pAH); + string AHName = CAHManager::getInstance()->getAHName(pAH); // Quick Help const string submitQuickHelp = "submit_quick_help"; - CActionHandlerFactoryManager *pAHFM = CActionHandlerFactoryManager::getInstance(); + CAHManager *pAHFM = CAHManager::getInstance(); map::iterator it = pAHFM->FactoryMap.find (AHName); it = pAHFM->FactoryMap.find(submitQuickHelp); if(it == pAHFM->FactoryMap.end()) diff --git a/code/ryzom/client/src/interface_v3/interface_parser.cpp b/code/ryzom/client/src/interface_v3/interface_parser.cpp index 4c225ddf5..db5f1dc7d 100644 --- a/code/ryzom/client/src/interface_v3/interface_parser.cpp +++ b/code/ryzom/client/src/interface_v3/interface_parser.cpp @@ -3173,11 +3173,11 @@ bool CInterfaceParser::parseActionCategory(xmlNodePtr cur) else { // Remove thoses actions from the manager - CActionHandlerFactoryManager *pAHFM = CActionHandlerFactoryManager::getInstance(); + CAHManager *pAHFM = CAHManager::getInstance(); uint i; for (i=0; iFactoryMap.find (category.BaseActions[i].Name); + CAHManager::TFactoryMap::iterator ite = pAHFM->FactoryMap.find (category.BaseActions[i].Name); if (ite != pAHFM->FactoryMap.end()) { IActionHandler *ah = ite->second; diff --git a/code/ryzom/client/src/net_manager.cpp b/code/ryzom/client/src/net_manager.cpp index 5ca5219d4..21662969d 100644 --- a/code/ryzom/client/src/net_manager.cpp +++ b/code/ryzom/client/src/net_manager.cpp @@ -84,6 +84,7 @@ #include "game_share/r2_share_itf.h" #include "game_share/r2_types.h" #include "npc_icon.h" +#include "interface_v3/action_handler_base.h" // Std. #include