summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolmgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lltoolmgr.cpp')
-rw-r--r--indra/newview/lltoolmgr.cpp666
1 files changed, 333 insertions, 333 deletions
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index fa2dd60ee0..b1f895317a 100644
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file lltoolmgr.cpp
* @brief LLToolMgr class implementation
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library 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
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -60,373 +60,373 @@
// Used when app not active to avoid processing hover.
-LLTool* gToolNull = NULL;
+LLTool* gToolNull = NULL;
-LLToolset* gBasicToolset = NULL;
-LLToolset* gCameraToolset = NULL;
-//LLToolset* gLandToolset = NULL;
-LLToolset* gMouselookToolset = NULL;
-LLToolset* gFaceEditToolset = NULL;
+LLToolset* gBasicToolset = NULL;
+LLToolset* gCameraToolset = NULL;
+//LLToolset* gLandToolset = NULL;
+LLToolset* gMouselookToolset = NULL;
+LLToolset* gFaceEditToolset = NULL;
/////////////////////////////////////////////////////
// LLToolMgr
LLToolMgr::LLToolMgr()
- :
- mBaseTool(NULL),
- mSavedTool(NULL),
- mTransientTool( NULL ),
- mOverrideTool( NULL ),
- mSelectedTool( NULL ),
- mCurrentToolset( NULL )
+ :
+ mBaseTool(NULL),
+ mSavedTool(NULL),
+ mTransientTool( NULL ),
+ mOverrideTool( NULL ),
+ mSelectedTool( NULL ),
+ mCurrentToolset( NULL )
{
- // Not a panel, register these callbacks globally.
- LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Active", boost::bind(&LLToolMgr::inEdit, this));
- LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Enabled", boost::bind(&LLToolMgr::canEdit, this));
- LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.EnabledOrActive", boost::bind(&LLToolMgr::buildEnabledOrActive, this));
- LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Build.Toggle", boost::bind(&LLToolMgr::toggleBuildMode, this, _2));
- LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Marketplace.Enabled", boost::bind(&LLToolMgr::canAccessMarketplace, this));
- LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Marketplace.Toggle", boost::bind(&LLToolMgr::toggleMarketplace, this, _2));
-
- gToolNull = new LLTool(LLStringUtil::null); // Does nothing
- setCurrentTool(gToolNull);
-
- gBasicToolset = new LLToolset();
- gCameraToolset = new LLToolset();
-// gLandToolset = new LLToolset();
- gMouselookToolset = new LLToolset();
- gFaceEditToolset = new LLToolset();
- gMouselookToolset->setShowFloaterTools(false);
- gFaceEditToolset->setShowFloaterTools(false);
+ // Not a panel, register these callbacks globally.
+ LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Active", boost::bind(&LLToolMgr::inEdit, this));
+ LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Enabled", boost::bind(&LLToolMgr::canEdit, this));
+ LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.EnabledOrActive", boost::bind(&LLToolMgr::buildEnabledOrActive, this));
+ LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Build.Toggle", boost::bind(&LLToolMgr::toggleBuildMode, this, _2));
+ LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Marketplace.Enabled", boost::bind(&LLToolMgr::canAccessMarketplace, this));
+ LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Marketplace.Toggle", boost::bind(&LLToolMgr::toggleMarketplace, this, _2));
+
+ gToolNull = new LLTool(LLStringUtil::null); // Does nothing
+ setCurrentTool(gToolNull);
+
+ gBasicToolset = new LLToolset();
+ gCameraToolset = new LLToolset();
+// gLandToolset = new LLToolset();
+ gMouselookToolset = new LLToolset();
+ gFaceEditToolset = new LLToolset();
+ gMouselookToolset->setShowFloaterTools(false);
+ gFaceEditToolset->setShowFloaterTools(false);
}
void LLToolMgr::initTools()
{
- static BOOL initialized = FALSE;
- if(initialized)
- {
- return;
- }
- initialized = TRUE;
- gBasicToolset->addTool( LLToolPie::getInstance() );
- gBasicToolset->addTool( LLToolCamera::getInstance() );
- gCameraToolset->addTool( LLToolCamera::getInstance() );
- gBasicToolset->addTool( LLToolGrab::getInstance() );
- gBasicToolset->addTool( LLToolCompTranslate::getInstance() );
- gBasicToolset->addTool( LLToolCompCreate::getInstance() );
- gBasicToolset->addTool( LLToolBrushLand::getInstance() );
- gMouselookToolset->addTool( LLToolCompGun::getInstance() );
- gBasicToolset->addTool( LLToolCompInspect::getInstance() );
- gFaceEditToolset->addTool( LLToolCamera::getInstance() );
-
- // On startup, use "select" tool
- setCurrentToolset(gBasicToolset);
-
- gBasicToolset->selectTool( LLToolPie::getInstance() );
+ static BOOL initialized = FALSE;
+ if(initialized)
+ {
+ return;
+ }
+ initialized = TRUE;
+ gBasicToolset->addTool( LLToolPie::getInstance() );
+ gBasicToolset->addTool( LLToolCamera::getInstance() );
+ gCameraToolset->addTool( LLToolCamera::getInstance() );
+ gBasicToolset->addTool( LLToolGrab::getInstance() );
+ gBasicToolset->addTool( LLToolCompTranslate::getInstance() );
+ gBasicToolset->addTool( LLToolCompCreate::getInstance() );
+ gBasicToolset->addTool( LLToolBrushLand::getInstance() );
+ gMouselookToolset->addTool( LLToolCompGun::getInstance() );
+ gBasicToolset->addTool( LLToolCompInspect::getInstance() );
+ gFaceEditToolset->addTool( LLToolCamera::getInstance() );
+
+ // On startup, use "select" tool
+ setCurrentToolset(gBasicToolset);
+
+ gBasicToolset->selectTool( LLToolPie::getInstance() );
}
LLToolMgr::~LLToolMgr()
{
- delete gBasicToolset;
- gBasicToolset = NULL;
+ delete gBasicToolset;
+ gBasicToolset = NULL;
- delete gMouselookToolset;
- gMouselookToolset = NULL;
+ delete gMouselookToolset;
+ gMouselookToolset = NULL;
- delete gFaceEditToolset;
- gFaceEditToolset = NULL;
+ delete gFaceEditToolset;
+ gFaceEditToolset = NULL;
- delete gCameraToolset;
- gCameraToolset = NULL;
-
- delete gToolNull;
- gToolNull = NULL;
+ delete gCameraToolset;
+ gCameraToolset = NULL;
+
+ delete gToolNull;
+ gToolNull = NULL;
}
BOOL LLToolMgr::usingTransientTool()
{
- return mTransientTool ? TRUE : FALSE;
+ return mTransientTool ? TRUE : FALSE;
}
void LLToolMgr::setCurrentToolset(LLToolset* current)
{
- if (!current) return;
-
- // switching toolsets?
- if (current != mCurrentToolset)
- {
- // deselect current tool
- if (mSelectedTool)
- {
- mSelectedTool->handleDeselect();
- }
- mCurrentToolset = current;
- // select first tool of new toolset only if toolset changed
- mCurrentToolset->selectFirstTool();
- }
- // update current tool based on new toolset
- setCurrentTool( mCurrentToolset->getSelectedTool() );
+ if (!current) return;
+
+ // switching toolsets?
+ if (current != mCurrentToolset)
+ {
+ // deselect current tool
+ if (mSelectedTool)
+ {
+ mSelectedTool->handleDeselect();
+ }
+ mCurrentToolset = current;
+ // select first tool of new toolset only if toolset changed
+ mCurrentToolset->selectFirstTool();
+ }
+ // update current tool based on new toolset
+ setCurrentTool( mCurrentToolset->getSelectedTool() );
}
LLToolset* LLToolMgr::getCurrentToolset()
{
- return mCurrentToolset;
+ return mCurrentToolset;
}
void LLToolMgr::setCurrentTool( LLTool* tool )
{
- if (mTransientTool)
- {
- mTransientTool = NULL;
- }
+ if (mTransientTool)
+ {
+ mTransientTool = NULL;
+ }
- mBaseTool = tool;
- updateToolStatus();
+ mBaseTool = tool;
+ updateToolStatus();
- mSavedTool = NULL;
+ mSavedTool = NULL;
}
LLTool* LLToolMgr::getCurrentTool()
{
- MASK override_mask = gKeyboard ? gKeyboard->currentMask(TRUE) : 0;
-
- LLTool* cur_tool = NULL;
- // always use transient tools if available
- if (mTransientTool)
- {
- mOverrideTool = NULL;
- cur_tool = mTransientTool;
- }
- // tools currently grabbing mouse input will stay active
- else if (mSelectedTool && mSelectedTool->hasMouseCapture())
- {
- cur_tool = mSelectedTool;
- }
- else
- {
- mOverrideTool = mBaseTool ? mBaseTool->getOverrideTool(override_mask) : NULL;
-
- // use override tool if available otherwise drop back to base tool
- cur_tool = mOverrideTool ? mOverrideTool : mBaseTool;
- }
-
- LLTool* prev_tool = mSelectedTool;
- // Set the selected tool to avoid infinite recursion
- mSelectedTool = cur_tool;
-
- //update tool selection status
- if (prev_tool != cur_tool)
- {
- if (prev_tool)
- {
- prev_tool->handleDeselect();
- }
- if (cur_tool)
- {
- if ( LLToolCompInspect::getInstance()->isToolCameraActive()
- && prev_tool == LLToolCamera::getInstance()
- && cur_tool == LLToolPie::getInstance() )
- {
- LLFloaterInspect * inspect_instance = LLFloaterReg::getTypedInstance<LLFloaterInspect>("inspect");
- if(inspect_instance && inspect_instance->getVisible())
- {
- setTransientTool(LLToolCompInspect::getInstance());
- }
- }
- else
- {
- cur_tool->handleSelect();
- }
- }
- }
-
- return mSelectedTool;
+ MASK override_mask = gKeyboard ? gKeyboard->currentMask(TRUE) : 0;
+
+ LLTool* cur_tool = NULL;
+ // always use transient tools if available
+ if (mTransientTool)
+ {
+ mOverrideTool = NULL;
+ cur_tool = mTransientTool;
+ }
+ // tools currently grabbing mouse input will stay active
+ else if (mSelectedTool && mSelectedTool->hasMouseCapture())
+ {
+ cur_tool = mSelectedTool;
+ }
+ else
+ {
+ mOverrideTool = mBaseTool ? mBaseTool->getOverrideTool(override_mask) : NULL;
+
+ // use override tool if available otherwise drop back to base tool
+ cur_tool = mOverrideTool ? mOverrideTool : mBaseTool;
+ }
+
+ LLTool* prev_tool = mSelectedTool;
+ // Set the selected tool to avoid infinite recursion
+ mSelectedTool = cur_tool;
+
+ //update tool selection status
+ if (prev_tool != cur_tool)
+ {
+ if (prev_tool)
+ {
+ prev_tool->handleDeselect();
+ }
+ if (cur_tool)
+ {
+ if ( LLToolCompInspect::getInstance()->isToolCameraActive()
+ && prev_tool == LLToolCamera::getInstance()
+ && cur_tool == LLToolPie::getInstance() )
+ {
+ LLFloaterInspect * inspect_instance = LLFloaterReg::getTypedInstance<LLFloaterInspect>("inspect");
+ if(inspect_instance && inspect_instance->getVisible())
+ {
+ setTransientTool(LLToolCompInspect::getInstance());
+ }
+ }
+ else
+ {
+ cur_tool->handleSelect();
+ }
+ }
+ }
+
+ return mSelectedTool;
}
LLTool* LLToolMgr::getBaseTool()
{
- return mBaseTool;
+ return mBaseTool;
}
void LLToolMgr::updateToolStatus()
{
- // call getcurrenttool() to calculate active tool and call handleSelect() and handleDeselect() immediately
- // when active tool changes
- getCurrentTool();
+ // call getcurrenttool() to calculate active tool and call handleSelect() and handleDeselect() immediately
+ // when active tool changes
+ getCurrentTool();
}
bool LLToolMgr::inEdit()
{
- return mBaseTool != LLToolPie::getInstance() && mBaseTool != gToolNull;
+ return mBaseTool != LLToolPie::getInstance() && mBaseTool != gToolNull;
}
bool LLToolMgr::canEdit()
{
- return LLViewerParcelMgr::getInstance()->allowAgentBuild();
+ return LLViewerParcelMgr::getInstance()->allowAgentBuild();
}
bool LLToolMgr::buildEnabledOrActive()
{
- return LLFloaterReg::instanceVisible("build") || canEdit();
+ return LLFloaterReg::instanceVisible("build") || canEdit();
}
void LLToolMgr::toggleBuildMode(const LLSD& sdname)
{
- const std::string& param = sdname.asString();
-
- LLFloaterReg::toggleInstanceOrBringToFront("build");
- if (param == "build" && !canEdit())
- {
- return;
- }
-
- bool build_visible = LLFloaterReg::instanceVisible("build");
- if (build_visible)
- {
- ECameraMode camMode = gAgentCamera.getCameraMode();
- if (CAMERA_MODE_MOUSELOOK == camMode || CAMERA_MODE_CUSTOMIZE_AVATAR == camMode)
- {
- // pull the user out of mouselook or appearance mode when entering build mode
- handle_reset_view();
- }
-
- if (gSavedSettings.getBOOL("EditCameraMovement"))
- {
- // camera should be set
- if (LLViewerJoystick::getInstance()->getOverrideCamera())
- {
- handle_toggle_flycam();
- }
-
- if (gAgentCamera.getFocusOnAvatar())
- {
- // zoom in if we're looking at the avatar
- gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE);
- gAgentCamera.setFocusGlobal(gAgent.getPositionGlobal() + 2.0 * LLVector3d(gAgent.getAtAxis()));
- gAgentCamera.cameraZoomIn(0.666f);
- gAgentCamera.cameraOrbitOver( 30.f * DEG_TO_RAD );
- }
- }
-
-
- setCurrentToolset(gBasicToolset);
- getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
-
- // Could be first use
- //LLFirstUse::useBuild();
-
- gAgentCamera.resetView(false);
-
- // avoid spurious avatar movements
- LLViewerJoystick::getInstance()->setNeedsReset();
-
- }
- else
- {
- if (gSavedSettings.getBOOL("EditCameraMovement"))
- {
- // just reset the view, will pull us out of edit mode
- handle_reset_view();
- }
- else
- {
- // manually disable edit mode, but do not affect the camera
- gAgentCamera.resetView(false);
- LLFloaterReg::hideInstance("build");
- gViewerWindow->showCursor();
- }
- // avoid spurious avatar movements pulling out of edit mode
- LLViewerJoystick::getInstance()->setNeedsReset();
- }
+ const std::string& param = sdname.asString();
+
+ LLFloaterReg::toggleInstanceOrBringToFront("build");
+ if (param == "build" && !canEdit())
+ {
+ return;
+ }
+
+ bool build_visible = LLFloaterReg::instanceVisible("build");
+ if (build_visible)
+ {
+ ECameraMode camMode = gAgentCamera.getCameraMode();
+ if (CAMERA_MODE_MOUSELOOK == camMode || CAMERA_MODE_CUSTOMIZE_AVATAR == camMode)
+ {
+ // pull the user out of mouselook or appearance mode when entering build mode
+ handle_reset_view();
+ }
+
+ if (gSavedSettings.getBOOL("EditCameraMovement"))
+ {
+ // camera should be set
+ if (LLViewerJoystick::getInstance()->getOverrideCamera())
+ {
+ handle_toggle_flycam();
+ }
+
+ if (gAgentCamera.getFocusOnAvatar())
+ {
+ // zoom in if we're looking at the avatar
+ gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE);
+ gAgentCamera.setFocusGlobal(gAgent.getPositionGlobal() + 2.0 * LLVector3d(gAgent.getAtAxis()));
+ gAgentCamera.cameraZoomIn(0.666f);
+ gAgentCamera.cameraOrbitOver( 30.f * DEG_TO_RAD );
+ }
+ }
+
+
+ setCurrentToolset(gBasicToolset);
+ getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
+
+ // Could be first use
+ //LLFirstUse::useBuild();
+
+ gAgentCamera.resetView(false);
+
+ // avoid spurious avatar movements
+ LLViewerJoystick::getInstance()->setNeedsReset();
+
+ }
+ else
+ {
+ if (gSavedSettings.getBOOL("EditCameraMovement"))
+ {
+ // just reset the view, will pull us out of edit mode
+ handle_reset_view();
+ }
+ else
+ {
+ // manually disable edit mode, but do not affect the camera
+ gAgentCamera.resetView(false);
+ LLFloaterReg::hideInstance("build");
+ gViewerWindow->showCursor();
+ }
+ // avoid spurious avatar movements pulling out of edit mode
+ LLViewerJoystick::getInstance()->setNeedsReset();
+ }
}
bool LLToolMgr::inBuildMode()
{
- // when entering mouselook inEdit() immediately returns true before
- // cameraMouselook() actually starts returning true. Also, appearance edit
- // sets build mode to true, so let's exclude that.
- bool b=(inEdit()
- && !gAgentCamera.cameraMouselook()
- && mCurrentToolset != gFaceEditToolset);
-
- return b;
+ // when entering mouselook inEdit() immediately returns true before
+ // cameraMouselook() actually starts returning true. Also, appearance edit
+ // sets build mode to true, so let's exclude that.
+ bool b=(inEdit()
+ && !gAgentCamera.cameraMouselook()
+ && mCurrentToolset != gFaceEditToolset);
+
+ return b;
}
bool LLToolMgr::canAccessMarketplace()
{
- return (LLMarketplaceData::instance().getSLMStatus() != MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT);
+ return (LLMarketplaceData::instance().getSLMStatus() != MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT);
}
void LLToolMgr::toggleMarketplace(const LLSD& sdname)
{
- const std::string& param = sdname.asString();
-
- if ((param != "marketplace") || !canAccessMarketplace())
- {
- return;
- }
-
- LLFloaterReg::toggleInstanceOrBringToFront("marketplace_listings");
+ const std::string& param = sdname.asString();
+
+ if ((param != "marketplace") || !canAccessMarketplace())
+ {
+ return;
+ }
+
+ LLFloaterReg::toggleInstanceOrBringToFront("marketplace_listings");
}
void LLToolMgr::setTransientTool(LLTool* tool)
{
- if (!tool)
- {
- clearTransientTool();
- }
- else
- {
- if (mTransientTool)
- {
- mTransientTool = NULL;
- }
-
- mTransientTool = tool;
- }
-
- updateToolStatus();
+ if (!tool)
+ {
+ clearTransientTool();
+ }
+ else
+ {
+ if (mTransientTool)
+ {
+ mTransientTool = NULL;
+ }
+
+ mTransientTool = tool;
+ }
+
+ updateToolStatus();
}
void LLToolMgr::clearTransientTool()
{
- if (mTransientTool)
- {
- mTransientTool = NULL;
- if (!mBaseTool)
- {
- LL_WARNS() << "mBaseTool is NULL" << LL_ENDL;
- }
- }
- updateToolStatus();
+ if (mTransientTool)
+ {
+ mTransientTool = NULL;
+ if (!mBaseTool)
+ {
+ LL_WARNS() << "mBaseTool is NULL" << LL_ENDL;
+ }
+ }
+ updateToolStatus();
}
void LLToolMgr::onAppFocusLost()
{
- if (LLApp::isExiting())
- return;
-
- if (mSelectedTool)
- {
- mSelectedTool->handleDeselect();
- }
- updateToolStatus();
+ if (LLApp::isExiting())
+ return;
+
+ if (mSelectedTool)
+ {
+ mSelectedTool->handleDeselect();
+ }
+ updateToolStatus();
}
void LLToolMgr::onAppFocusGained()
{
- if (mSelectedTool)
- {
- mSelectedTool->handleSelect();
- }
- updateToolStatus();
+ if (mSelectedTool)
+ {
+ mSelectedTool->handleSelect();
+ }
+ updateToolStatus();
}
void LLToolMgr::clearSavedTool()
{
- mSavedTool = NULL;
+ mSavedTool = NULL;
}
/////////////////////////////////////////////////////
@@ -434,93 +434,93 @@ void LLToolMgr::clearSavedTool()
void LLToolset::addTool(LLTool* tool)
{
- mToolList.push_back( tool );
- if( !mSelectedTool )
- {
- mSelectedTool = tool;
- }
+ mToolList.push_back( tool );
+ if( !mSelectedTool )
+ {
+ mSelectedTool = tool;
+ }
}
void LLToolset::selectTool(LLTool* tool)
{
- mSelectedTool = tool;
- LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
+ mSelectedTool = tool;
+ LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
}
void LLToolset::selectToolByIndex( S32 index )
{
- LLTool *tool = (index >= 0 && index < (S32)mToolList.size()) ? mToolList[index] : NULL;
- if (tool)
- {
- mSelectedTool = tool;
- LLToolMgr::getInstance()->setCurrentTool( tool );
- }
+ LLTool *tool = (index >= 0 && index < (S32)mToolList.size()) ? mToolList[index] : NULL;
+ if (tool)
+ {
+ mSelectedTool = tool;
+ LLToolMgr::getInstance()->setCurrentTool( tool );
+ }
}
BOOL LLToolset::isToolSelected( S32 index )
{
- LLTool *tool = (index >= 0 && index < (S32)mToolList.size()) ? mToolList[index] : NULL;
- return (tool == mSelectedTool);
+ LLTool *tool = (index >= 0 && index < (S32)mToolList.size()) ? mToolList[index] : NULL;
+ return (tool == mSelectedTool);
}
void LLToolset::selectFirstTool()
{
- mSelectedTool = (0 < mToolList.size()) ? mToolList[0] : NULL;
- LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
+ mSelectedTool = (0 < mToolList.size()) ? mToolList[0] : NULL;
+ LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
}
void LLToolset::selectNextTool()
{
- LLTool* next = NULL;
- for( tool_list_t::iterator iter = mToolList.begin();
- iter != mToolList.end(); )
- {
- LLTool* cur = *iter++;
- if( cur == mSelectedTool && iter != mToolList.end() )
- {
- next = *iter;
- break;
- }
- }
-
- if( next )
- {
- mSelectedTool = next;
- LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
- }
- else
- {
- selectFirstTool();
- }
+ LLTool* next = NULL;
+ for( tool_list_t::iterator iter = mToolList.begin();
+ iter != mToolList.end(); )
+ {
+ LLTool* cur = *iter++;
+ if( cur == mSelectedTool && iter != mToolList.end() )
+ {
+ next = *iter;
+ break;
+ }
+ }
+
+ if( next )
+ {
+ mSelectedTool = next;
+ LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
+ }
+ else
+ {
+ selectFirstTool();
+ }
}
void LLToolset::selectPrevTool()
{
- LLTool* prev = NULL;
- for( tool_list_t::reverse_iterator iter = mToolList.rbegin();
- iter != mToolList.rend(); )
- {
- LLTool* cur = *iter++;
- if( cur == mSelectedTool && iter != mToolList.rend() )
- {
- prev = *iter;
- break;
- }
- }
-
- if( prev )
- {
- mSelectedTool = prev;
- LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
- }
- else if (mToolList.size() > 0)
- {
- selectToolByIndex((S32)mToolList.size()-1);
- }
+ LLTool* prev = NULL;
+ for( tool_list_t::reverse_iterator iter = mToolList.rbegin();
+ iter != mToolList.rend(); )
+ {
+ LLTool* cur = *iter++;
+ if( cur == mSelectedTool && iter != mToolList.rend() )
+ {
+ prev = *iter;
+ break;
+ }
+ }
+
+ if( prev )
+ {
+ mSelectedTool = prev;
+ LLToolMgr::getInstance()->setCurrentTool( mSelectedTool );
+ }
+ else if (mToolList.size() > 0)
+ {
+ selectToolByIndex((S32)mToolList.size()-1);
+ }
}
////////////////////////////////////////////////////////////////////////////