summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelnavmeshrebake.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelnavmeshrebake.cpp')
-rw-r--r--indra/newview/llpanelnavmeshrebake.cpp90
1 files changed, 13 insertions, 77 deletions
diff --git a/indra/newview/llpanelnavmeshrebake.cpp b/indra/newview/llpanelnavmeshrebake.cpp
index 92a082467f..0f88c6f1d3 100644
--- a/indra/newview/llpanelnavmeshrebake.cpp
+++ b/indra/newview/llpanelnavmeshrebake.cpp
@@ -1,7 +1,7 @@
/**
* @file LLPanelNavMeshRebake.cpp
- * @author
- * @brief
+ * @author prep
+ * @brief handles the buttons for navmesh rebaking
*
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
@@ -26,18 +26,13 @@
*/
#include "llviewerprecompiledheaders.h"
-
#include "llpathfindingmanager.h"
-
#include <string>
#include <map>
-
#include <boost/function.hpp>
#include <boost/signals2.hpp>
-
#include "llpanelnavmeshrebake.h"
#include "llagent.h"
-#include "llfloaterreg.h"
#include "llhints.h"
#include "lltooltip.h"
#include "llbutton.h"
@@ -46,7 +41,6 @@
LLPanelNavMeshRebake::LLPanelNavMeshRebake()
: mNavMeshRebakeButton( NULL )
, mNavMeshBakingButton( NULL )
-, mAttached(false)
{
// make sure we have the only instance of this class
static bool b = true;
@@ -54,47 +48,21 @@ LLPanelNavMeshRebake::LLPanelNavMeshRebake()
b=false;
}
-// static
LLPanelNavMeshRebake* LLPanelNavMeshRebake::getInstance()
{
static LLPanelNavMeshRebake* panel = getPanel();
return panel;
}
-//static
-void LLPanelNavMeshRebake::setMode( ESNavMeshRebakeMode mode )
-{
- LLPanelNavMeshRebake* panel = getInstance();
-
- panel->mNavMeshRebakeButton->setVisible( true );
-
- //visibility of it should be updated after updating visibility of the buttons
- panel->setVisible(TRUE);
-}
-
-void LLPanelNavMeshRebake::clearMode( ESNavMeshRebakeMode mode )
-{
- LLPanelNavMeshRebake* panel = getInstance();
- switch(mode)
- {
- case NMRM_Visible:
- panel->mNavMeshRebakeButton->setVisible(FALSE);
- break;
-
- default:
- llerrs << "Unexpected mode is passed: " << mode << llendl;
- }
-}
-
BOOL LLPanelNavMeshRebake::postBuild()
{
- //Rebake
+ //Rebake initiated
mNavMeshRebakeButton = getChild<LLButton>("navmesh_btn");
mNavMeshRebakeButton->setCommitCallback(boost::bind(&LLPanelNavMeshRebake::onNavMeshRebakeClick, this));
mNavMeshRebakeButton->setVisible( TRUE );
LLHints::registerHintTarget("navmesh_btn", mNavMeshRebakeButton->getHandle());
- //Baking
+ //Baking...
mNavMeshBakingButton = getChild<LLButton>("navmesh_btn_baking");
mNavMeshBakingButton->setVisible( FALSE );
LLHints::registerHintTarget("navmesh_btn_baking", mNavMeshBakingButton->getHandle());
@@ -103,11 +71,10 @@ BOOL LLPanelNavMeshRebake::postBuild()
void LLPanelNavMeshRebake::setVisible( BOOL visible )
{
-
LLPanel::setVisible(visible);
}
-BOOL LLPanelNavMeshRebake::handleToolTip(S32 x, S32 y, MASK mask)
+BOOL LLPanelNavMeshRebake::handleToolTip( S32 x, S32 y, MASK mask )
{
LLToolTipMgr::instance().unblockToolTips();
@@ -118,67 +85,36 @@ BOOL LLPanelNavMeshRebake::handleToolTip(S32 x, S32 y, MASK mask)
return LLPanel::handleToolTip(x, y, mask);
}
-void LLPanelNavMeshRebake::reparent(LLView* rootp)
+void LLPanelNavMeshRebake::reparent( LLView* rootp )
{
- LLPanel* parent = dynamic_cast<LLPanel*>(getParent());
+ LLPanel* parent = dynamic_cast<LLPanel*>( getParent() );
if (!parent)
{
return;
}
-
rootp->addChild(this);
- mAttached = true;
}
-//static
LLPanelNavMeshRebake* LLPanelNavMeshRebake::getPanel()
{
LLPanelNavMeshRebake* panel = new LLPanelNavMeshRebake();
panel->buildFromFile("panel_navmesh_rebake.xml");
panel->setVisible(FALSE);
- //prep#panel->updatePosition();
+ //panel->updatePosition();
return panel;
}
void LLPanelNavMeshRebake::onNavMeshRebakeClick()
{
- setFocus(FALSE);
mNavMeshRebakeButton->setVisible( FALSE );
mNavMeshBakingButton->setVisible( TRUE );
mNavMeshBakingButton->setForcePressedState( TRUE );
- //post
+ LLPathfindingManager::getInstance()->triggerNavMeshRebuild();
}
-/**
- * Updates position to be center aligned with Move button.
- */
-/*
-void LLPanelNavMeshRebake::updatePosition()
+void LLPanelNavMeshRebake::resetButtonStates()
{
- if (mAttached) return;
-
- S32 y_pos = 0;
- S32 bottom_tb_center = 0;
- if (LLToolBar* toolbar_bottom = gToolBarView->getChild<LLToolBar>("toolbar_bottom"))
- {
- y_pos = toolbar_bottom->getRect().getHeight();
- bottom_tb_center = toolbar_bottom->getRect().getCenterX();
- }
-
- S32 left_tb_width = 0;
- if (LLToolBar* toolbar_left = gToolBarView->getChild<LLToolBar>("toolbar_left"))
- {
- left_tb_width = toolbar_left->getRect().getWidth();
- }
-
- if(LLPanel* panel_ssf_container = getRootView()->getChild<LLPanel>("navmesh_rebake_container"))
- {
- panel_ssf_container->setOrigin(0, y_pos);
- }
-
- S32 x_pos = bottom_tb_center-getRect().getWidth()/2 - left_tb_width;
-
- setOrigin( x_pos, 0);
-
+ mNavMeshRebakeButton->setVisible( TRUE );
+ mNavMeshBakingButton->setVisible( FALSE );
+}
- */