LLTool Update/Sync

Better diff against Alchemy.
This commit is contained in:
Inusaito Sayori
2015-01-20 04:37:32 -05:00
parent a75964c993
commit 51aaa9f26b
11 changed files with 246 additions and 210 deletions

View File

@@ -43,7 +43,6 @@
#include "lltoolmgr.h"
#include "lltoolselectrect.h"
#include "lltoolplacer.h"
#include "llviewercamera.h" // <exodus/>
#include "llviewermenu.h"
#include "llviewerobject.h"
#include "llviewerwindow.h"
@@ -51,7 +50,7 @@
#include "llagentcamera.h"
#include "llfloatertools.h"
#include "llviewercontrol.h"
#include "llviewercamera.h"
const S32 BUTTON_HEIGHT = 16;
const S32 BUTTON_WIDTH_SMALL = 32;
@@ -62,7 +61,7 @@ extern LLControlGroup gSavedSettings;
// we use this in various places instead of NULL
static LLTool* sNullTool = new LLTool(std::string("null"), NULL);
static LLPointer<LLTool> sNullTool(new LLTool(std::string("null"), NULL));
//-----------------------------------------------------------------------
// LLToolComposite
@@ -129,6 +128,13 @@ void LLToolComposite::handleSelect()
mSelected = TRUE;
}
void LLToolComposite::handleDeselect()
{
mCur->handleDeselect();
mCur = mDefault;
mSelected = FALSE;
}
//----------------------------------------------------------------------------
// LLToolCompInspect
//----------------------------------------------------------------------------
@@ -400,6 +406,7 @@ LLTool* LLToolCompScale::getOverrideTool(MASK mask)
{
return LLToolCompRotate::getInstance();
}
return LLToolComposite::getOverrideTool(mask);
}
@@ -411,7 +418,6 @@ BOOL LLToolCompScale::handleDoubleClick(S32 x, S32 y, MASK mask)
// You should already have an object selected from the mousedown.
// If so, show its properties
gFloaterTools->showPanel(LLFloaterTools::PANEL_CONTENTS);
//gBuildView->setPropertiesPanelOpen(TRUE);
return TRUE;
}
else
@@ -609,7 +615,6 @@ BOOL LLToolCompRotate::handleDoubleClick(S32 x, S32 y, MASK mask)
// You should already have an object selected from the mousedown.
// If so, show its properties
gFloaterTools->showPanel(LLFloaterTools::PANEL_CONTENTS);
//gBuildView->setPropertiesPanelOpen(TRUE);
return TRUE;
}
else
@@ -638,7 +643,7 @@ void LLToolCompRotate::render()
LLToolCompGun::LLToolCompGun()
: LLToolComposite(std::string("Mouselook"))
, mMenuShown(false), mTimerFOV(), mOriginalFOV(), mStartFOV(), mTargetFOV() // <exodus/>
, mMenuShown(false), mTimerFOV(), mOriginalFOV(), mStartFOV(), mTargetFOV()
{
mGun = new LLToolGun(this);
mGrab = new LLToolGrab(this);
@@ -647,11 +652,10 @@ LLToolCompGun::LLToolCompGun()
setCurrentTool(mGun);
mDefault = mGun;
// <exodus>
mTimerFOV.stop();
// </exodus>
}
LLToolCompGun::~LLToolCompGun()
{
delete mGun;
@@ -665,6 +669,45 @@ LLToolCompGun::~LLToolCompGun()
mNull = NULL;
}
BOOL LLToolCompGun::handleMouseDown(S32 x, S32 y, MASK mask)
{
// if the left button is grabbed, don't put up the pie menu
if (gAgent.leftButtonGrabbed())
{
gAgent.setControlFlags(AGENT_CONTROL_ML_LBUTTON_DOWN);
return FALSE;
}
// On mousedown, start grabbing
gGrabTransientTool = this;
LLToolMgr::getInstance()->getCurrentToolset()->selectTool( (LLTool*) mGrab );
return LLToolGrab::getInstance()->handleMouseDown(x, y, mask);
}
BOOL LLToolCompGun::handleMouseUp(S32 x, S32 y, MASK mask)
{
gAgent.setControlFlags(AGENT_CONTROL_ML_LBUTTON_UP);
setCurrentTool( (LLTool*) mGun );
return TRUE;
}
BOOL LLToolCompGun::handleDoubleClick(S32 x, S32 y, MASK mask)
{
// if the left button is grabbed, don't put up the pie menu
if (gAgent.leftButtonGrabbed())
{
gAgent.setControlFlags(AGENT_CONTROL_ML_LBUTTON_DOWN);
return FALSE;
}
// On mousedown, start grabbing
gGrabTransientTool = this;
LLToolMgr::getInstance()->getCurrentToolset()->selectTool( (LLTool*) mGrab );
return LLToolGrab::getInstance()->handleDoubleClick(x, y, mask);
}
BOOL LLToolCompGun::handleHover(S32 x, S32 y, MASK mask)
{
// *NOTE: This hack is here to make mouselook kick in again after
@@ -700,48 +743,45 @@ BOOL LLToolCompGun::handleHover(S32 x, S32 y, MASK mask)
return TRUE;
}
BOOL LLToolCompGun::handleMouseDown(S32 x, S32 y, MASK mask)
{
// if the left button is grabbed, don't put up the pie menu
if (gAgent.leftButtonGrabbed())
{
gAgent.setControlFlags(AGENT_CONTROL_ML_LBUTTON_DOWN);
return FALSE;
}
// On mousedown, start grabbing
gGrabTransientTool = this;
LLToolMgr::getInstance()->getCurrentToolset()->selectTool( (LLTool*) mGrab );
return LLToolGrab::getInstance()->handleMouseDown(x, y, mask);
}
BOOL LLToolCompGun::handleDoubleClick(S32 x, S32 y, MASK mask)
{
// if the left button is grabbed, don't put up the pie menu
if (gAgent.leftButtonGrabbed())
{
gAgent.setControlFlags(AGENT_CONTROL_ML_LBUTTON_DOWN);
return FALSE;
}
// On mousedown, start grabbing
gGrabTransientTool = this;
LLToolMgr::getInstance()->getCurrentToolset()->selectTool( (LLTool*) mGrab );
return LLToolGrab::getInstance()->handleDoubleClick(x, y, mask);
}
/* Singu Note: Moved to bottom, upstream is Exodus
BOOL LLToolCompGun::handleRightMouseDown(S32 x, S32 y, MASK mask)
*/
BOOL LLToolCompGun::handleMouseUp(S32 x, S32 y, MASK mask)
{
gAgent.setControlFlags(AGENT_CONTROL_ML_LBUTTON_UP);
setCurrentTool( (LLTool*) mGun );
// Singu Note: Beware the alt-click menu
if (gSavedSettings.getBOOL("LiruMouselookMenu") && mask & MASK_ALT)
{
mMenuShown = true;
return false;
}
LLViewerCamera& cam(LLViewerCamera::instance());
if (!mTimerFOV.getStarted())
{
mStartFOV = cam.getAndSaveDefaultFOV();
mOriginalFOV = mStartFOV;
}
else mStartFOV = cam.getDefaultFOV();
mTargetFOV = gSavedSettings.getF32("ExodusAlternativeFOV");
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
cam.mSavedFOVLoaded = false;
return TRUE;
}
BOOL LLToolCompGun::handleRightMouseUp(S32 x, S32 y, MASK mask)
{
// Singu Note: Beware the alt-click menu
if (mMenuShown)
{
mMenuShown = false;
return LLToolComposite::handleRightMouseUp(x, y, mask);
}
LLViewerCamera& cam(LLViewerCamera::instance());
mStartFOV = cam.getDefaultFOV();
mTargetFOV = mOriginalFOV;
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
cam.mSavedFOVLoaded = false;
return TRUE;
}
@@ -771,49 +811,6 @@ void LLToolCompGun::handleDeselect()
setMouseCapture(FALSE);
}
// <exodus>
BOOL LLToolCompGun::handleRightMouseUp(S32 x, S32 y, MASK mask)
{
// Singu Note: Beware the alt-click menu
if (mMenuShown)
{
mMenuShown = false;
return LLToolComposite::handleRightMouseUp(x, y, mask);
}
LLViewerCamera& cam(LLViewerCamera::instance());
mStartFOV = cam.getDefaultFOV();
mTargetFOV = mOriginalFOV;
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
cam.mSavedFOVLoaded = false;
return TRUE;
}
BOOL LLToolCompGun::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
// Singu Note: Beware the alt-click menu
if (gSavedSettings.getBOOL("LiruMouselookMenu") && mask & MASK_ALT)
{
mMenuShown = true;
return false;
}
LLViewerCamera& cam(LLViewerCamera::instance());
if (!mTimerFOV.getStarted())
{
mStartFOV = cam.getAndSaveDefaultFOV();
mOriginalFOV = mStartFOV;
}
else mStartFOV = cam.getDefaultFOV();
mTargetFOV = gSavedSettings.getF32("ExodusAlternativeFOV");
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
cam.mSavedFOVLoaded = false;
return TRUE;
}
BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks)
{
@@ -829,16 +826,19 @@ BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks)
llclamp(mTargetFOV -= (0.05f * -clicks), 0.1f, 3.0f)
);
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
if (gSavedSettings.getBOOL("LiruMouselookInstantZoom"))
cam.setDefaultFOV(mTargetFOV);
else
mTimerFOV.start();
cam.mSavedFOVLoaded = false;
}
else if (clicks > 0) gAgentCamera.changeCameraToDefault();
else if (clicks > 0)
{
gAgentCamera.changeCameraToDefault();
}
return TRUE;
}
// Zoom related stuff...
void LLToolCompGun::draw()
{
if (mTimerFOV.getStarted())
@@ -857,7 +857,5 @@ void LLToolCompGun::draw()
}
else mTimerFOV.stop();
}
LLToolComposite::draw(); // Singu Note: We call parent here, instead of being clueless and adding to LLViewerWindow::draw for crosshairs and such
LLToolComposite::draw();
}
// </exodus>