Path-722: Reset buttons to default state.
parent
7d5c4d20b9
commit
9767b5a026
|
|
@ -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;
|
||||
mNavMeshRebakeButton->setVisible( TRUE );
|
||||
mNavMeshBakingButton->setVisible( FALSE );
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* @file llpanelenavmeshrebake.h
|
||||
* @author
|
||||
* @brief
|
||||
* @author prep
|
||||
* @brief handles the buttons for navmesh rebaking
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
class LLPanelNavMeshRebake : public LLPanel
|
||||
{
|
||||
|
||||
LOG_CLASS(LLPanelNavMeshRebake);
|
||||
|
||||
public:
|
||||
|
|
@ -43,10 +44,9 @@ public:
|
|||
} ESNavMeshRebakeMode;
|
||||
|
||||
void reparent( LLView* rootp );
|
||||
|
||||
void resetButtonStates();
|
||||
static LLPanelNavMeshRebake* getInstance();
|
||||
static void setMode( ESNavMeshRebakeMode mode );
|
||||
static void clearMode( ESNavMeshRebakeMode mode );
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void setVisible( BOOL visible );
|
||||
|
||||
|
|
@ -54,10 +54,9 @@ public:
|
|||
/*virtual*/ void draw(){/*updatePosition(); */LLPanel::draw();}
|
||||
/*virtual*/ BOOL handleToolTip( S32 x, S32 y, MASK mask );
|
||||
|
||||
|
||||
protected:
|
||||
LLPanelNavMeshRebake();
|
||||
|
||||
LLPanelNavMeshRebake();
|
||||
|
||||
private:
|
||||
static LLPanelNavMeshRebake* getPanel();
|
||||
|
|
@ -65,13 +64,10 @@ private:
|
|||
//void updatePosition();
|
||||
|
||||
LLButton* mNavMeshRebakeButton;
|
||||
LLButton* mNavMeshBakingButton;
|
||||
|
||||
|
||||
LLHandle<LLPanel> mOriginalParent;
|
||||
LLButton* mNavMeshBakingButton;
|
||||
|
||||
LLHandle<LLPanel> mOriginalParent;
|
||||
|
||||
bool mAttached;
|
||||
};
|
||||
|
||||
#endif //LL_NAVMESHREBAKE_H
|
||||
|
|
|
|||
|
|
@ -333,7 +333,7 @@ LLPathfindingNavMesh::navmesh_slot_t LLPathfindingManager::registerNavMeshListen
|
|||
void LLPathfindingManager::requestGetNavMeshForRegion(LLViewerRegion *pRegion)
|
||||
{
|
||||
LLPathfindingNavMeshPtr navMeshPtr = getNavMeshForRegion(pRegion);
|
||||
|
||||
|
||||
if (pRegion == NULL)
|
||||
{
|
||||
navMeshPtr->handleNavMeshNotEnabled();
|
||||
|
|
@ -702,31 +702,30 @@ void LLPathfindingManager::displayNavMeshRebakePanel()
|
|||
panel_nmr_container->setVisible( TRUE );
|
||||
panel_namesh_rebake->reparent( rootp );
|
||||
LLPanelNavMeshRebake::getInstance()->setVisible( TRUE );
|
||||
LLPanelNavMeshRebake::getInstance()->resetButtonStates();
|
||||
}
|
||||
|
||||
void LLPathfindingManager::hideNavMeshRebakePanel()
|
||||
void LLPathfindingManager::hideNavMeshRebakePanel()
|
||||
{
|
||||
LLPanelNavMeshRebake::getInstance()->setVisible( FALSE );
|
||||
}
|
||||
|
||||
void LLPathfindingManager::handleNavMeshRebakeResult( const LLSD &pContent )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LLPathfindingManager::handleNavMeshRebakeError(U32 pStatus, const std::string &pReason, const std::string &pURL)
|
||||
{
|
||||
llwarns << "error with request to URL '" << pURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
|
||||
}
|
||||
//prep#
|
||||
|
||||
void LLPathfindingManager::handleNavMeshRebakeResult( const LLSD &pContent )
|
||||
{
|
||||
hideNavMeshRebakePanel();
|
||||
}
|
||||
|
||||
void LLPathfindingManager::triggerNavMeshRebuild()
|
||||
{
|
||||
LLSD mPostData;
|
||||
std::string url = getNavMeshStatusURLForRegion( getCurrentRegion() );
|
||||
|
||||
if ( url.empty() )
|
||||
{
|
||||
//prep#fix#error?
|
||||
llwarns << "Error with request due to nonexistent URL"<<llendl;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -735,7 +734,6 @@ void LLPathfindingManager::triggerNavMeshRebuild()
|
|||
LLHTTPClient::ResponderPtr responder = new NavMeshRebakeResponder( url );
|
||||
LLHTTPClient::post( url, mPostData, responder );
|
||||
}
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
// LLNavMeshSimStateChangeNode
|
||||
|
|
|
|||
|
|
@ -93,7 +93,8 @@ public:
|
|||
#endif // XXX_STINSON_AGENT_STATE_DELETE_ME
|
||||
|
||||
void handleNavMeshRebakeResult( const LLSD &pContent );
|
||||
void handleNavMeshRebakeError(U32 pStatus, const std::string &pReason, const std::string &pURL);
|
||||
void handleNavMeshRebakeError( U32 pStatus, const std::string &pReason, const std::string &pURL );
|
||||
void triggerNavMeshRebuild();
|
||||
|
||||
protected:
|
||||
|
||||
|
|
@ -123,7 +124,6 @@ private:
|
|||
|
||||
void displayNavMeshRebakePanel();
|
||||
void hideNavMeshRebakePanel();
|
||||
void triggerNavMeshRebuild();
|
||||
|
||||
#ifdef XXX_STINSON_AGENT_STATE_DELETE_ME
|
||||
void requestGetAgentState();
|
||||
|
|
|
|||
|
|
@ -200,9 +200,6 @@
|
|||
#include "llviewerwindowlistener.h"
|
||||
#include "llpaneltopinfobar.h"
|
||||
|
||||
//prep#
|
||||
#include "llpathfindingmanager.h"
|
||||
|
||||
#if LL_WINDOWS
|
||||
#include <tchar.h> // For Unicode conversion methods
|
||||
#endif
|
||||
|
|
@ -1926,12 +1923,7 @@ void LLViewerWindow::initWorldUI()
|
|||
LLPanelStandStopFlying* panel_stand_stop_flying = LLPanelStandStopFlying::getInstance();
|
||||
panel_ssf_container->addChild(panel_stand_stop_flying);
|
||||
panel_ssf_container->setVisible(TRUE);
|
||||
//prep#
|
||||
/*LLPanel* panel_nmr_container = getRootView()->getChild<LLPanel>("navmesh_rebake_container");
|
||||
LLPanelNavMeshRebake* panel_namesh_rebake = LLPanelNavMeshRebake::getInstance();
|
||||
panel_nmr_container->addChild(panel_namesh_rebake);
|
||||
panel_nmr_container->setVisible(TRUE);
|
||||
*/
|
||||
|
||||
// Load and make the toolbars visible
|
||||
// Note: we need to load the toolbars only *after* the user is logged in and IW
|
||||
if (gToolBarView)
|
||||
|
|
|
|||
Loading…
Reference in New Issue