From a6a52fa63a004e5d3abcd8ce418362a3e1eef918 Mon Sep 17 00:00:00 2001 From: Selo Date: Sat, 17 Sep 2011 02:50:50 +0200 Subject: [PATCH] Added zooming in mouseview with rightclick+mousewheel. Code provided by Charlice Yao, NaCL --- indra/newview/app_settings/settings.xml | 44 +++++++++++++++++++++++++ indra/newview/lltoolcomp.cpp | 14 ++++++++ indra/newview/llviewerwindow.cpp | 21 ++++++++++++ 3 files changed, 79 insertions(+) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 63e0529d8e..c4cec0ce28 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -16386,5 +16386,49 @@ Change of this parameter will affect the layout of buttons in notification toast Value 1 + _NACL_MLDefFov + + Comment + default field of view for right mouse zoom + Persist + 1 + Type + F32 + Value + 1.0 + + _NACL_MLFov + + Comment + 1=norm, under1 zoom out, over1 zoom in + Persist + 1 + Type + F32 + Value + 1 + + _NACL_MLActive + + Comment + mouselook + Persist + 0 + Type + Boolean + Value + 0 + + _NACL_MLRightMouseDOwn + + Comment + insert rude comment here + Persist + 0 + Type + Boolean + Value + 0 + diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp index 923fbecb1a..a2965b9912 100644 --- a/indra/newview/lltoolcomp.cpp +++ b/indra/newview/lltoolcomp.cpp @@ -52,6 +52,10 @@ #include "llfloatertools.h" #include "llviewercontrol.h" +// NaCl - Mousewheel zoom - Moy Loon +#include "llviewercamera.h" +// NaCl End + const S32 BUTTON_HEIGHT = 16; const S32 BUTTON_WIDTH_SMALL = 32; const S32 BUTTON_WIDTH_BIG = 48; @@ -777,6 +781,16 @@ void LLToolCompGun::handleDeselect() BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks) { + // NaCl - Mousewheel zoom - Moy Loon + if(gSavedSettings.getBOOL("_NACL_MLActive")==1) + { + if(clicks>0)gSavedSettings.setF32("_NACL_MLFov",gSavedSettings.getF32("_NACL_MLFov")/1.1); + if(clicks<0)gSavedSettings.setF32("_NACL_MLFov",gSavedSettings.getF32("_NACL_MLFov")*1.1); + LLViewerCamera::getInstance()->setDefaultFOV(gSavedSettings.getF32("_NACL_MLDefFov")/gSavedSettings.getF32("_NACL_MLFov")); + return TRUE; + } + // NaCl End + if (clicks > 0) { gAgentCamera.changeCameraToDefault(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index ecc8ba97d2..153c9871c8 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -980,6 +980,17 @@ BOOL LLViewerWindow::handleMouseUp(LLWindow *window, LLCoordGL pos, MASK mask) BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK mask) { + // NaCl - Mousewheel zoom - Moy Loon + gSavedSettings.setBOOL("_NACL_MLRightMouseDown",1); + if(gAgentCamera.cameraMouselook()&&gSavedSettings.getBOOL("_NACL_MLActive")==0) + { + gSavedSettings.setBOOL("_NACL_MLActive",1); + F32 deffov=LLViewerCamera::getInstance()->getDefaultFOV(); + gSavedSettings.setF32("_NACL_MLDefFov",deffov); + LLViewerCamera::getInstance()->setDefaultFOV(gSavedSettings.getF32("_NACL_MLDefFov")/gSavedSettings.getF32("_NACL_MLFov")); + } + // NaCl End + S32 x = pos.mX; S32 y = pos.mY; x = llround((F32)x / mDisplayScale.mV[VX]); @@ -1006,6 +1017,16 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK BOOL LLViewerWindow::handleRightMouseUp(LLWindow *window, LLCoordGL pos, MASK mask) { + // NaCl - Mousewheel zoom - Moy Loon + gSavedSettings.setBOOL("NACL_MLRightMouseDown",0); + if(gSavedSettings.getBOOL("_NACL_MLActive")==1) + { + gSavedSettings.setBOOL("_NACL_MLActive",0); + LLViewerCamera::getInstance()->setDefaultFOV(gSavedSettings.getF32("_NACL_MLDefFov")); + } + // NaCl End + + BOOL down = FALSE; return handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_RIGHT,down); }