From 26a8ffb5362f34c319ef06a31f71757d917b814e Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sat, 8 Jan 2011 23:01:30 +0100 Subject: [PATCH] Map rotation setting on right click, from Imprudence. --- indra/newview/llnetmap.cpp | 18 ++++++++++++++++++ indra/newview/llnetmap.h | 12 ++++++++++++ .../skins/default/xui/en-us/menu_mini_map.xml | 5 +++++ 3 files changed, 35 insertions(+) diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index b5dc030b2..4a40a285e 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -111,6 +111,8 @@ LLNetMap::LLNetMap(const std::string& name) : (new LLScaleMap())->registerListener(this, "MiniMap.ZoomLevel"); (new LLCenterMap())->registerListener(this, "MiniMap.Center"); (new LLCheckCenterMap())->registerListener(this, "MiniMap.CheckCenter"); + (new LLRotateMap())->registerListener(this, "MiniMap.Rotate"); + (new LLCheckRotateMap())->registerListener(this, "MiniMap.CheckRotate"); (new LLStopTracking())->registerListener(this, "MiniMap.StopTracking"); (new LLEnableTracking())->registerListener(this, "MiniMap.EnableTracking"); (new LLShowAgentProfile())->registerListener(this, "MiniMap.ShowProfile"); @@ -1108,6 +1110,22 @@ bool LLNetMap::LLCheckCenterMap::handleEvent(LLPointer event, const LLS return true; } +bool LLNetMap::LLRotateMap::handleEvent(LLPointer event, const LLSD& userdata) +{ + BOOL rotate = gSavedSettings.getBOOL("MiniMapRotate"); + gSavedSettings.setBOOL("MiniMapRotate", !rotate); + + return true; +} + +bool LLNetMap::LLCheckRotateMap::handleEvent(LLPointer event, const LLSD& userdata) +{ + LLNetMap *self = mPtr; + BOOL enabled = gSavedSettings.getBOOL("MiniMapRotate"); + self->findControl(userdata["control"].asString())->setValue(enabled); + return true; +} + bool LLNetMap::LLStopTracking::handleEvent(LLPointer event, const LLSD& userdata) { LLTracker::stopTracking(NULL); diff --git a/indra/newview/llnetmap.h b/indra/newview/llnetmap.h index b744e27d3..306fbad31 100644 --- a/indra/newview/llnetmap.h +++ b/indra/newview/llnetmap.h @@ -145,6 +145,18 @@ private: /*virtual*/ bool handleEvent(LLPointer event, const LLSD& userdata); }; + class LLRotateMap : public LLMemberListener + { + public: + /*virtual*/ bool handleEvent(LLPointer event, const LLSD& userdata); + }; + + class LLCheckRotateMap : public LLMemberListener + { + public: + /*virtual*/ bool handleEvent(LLPointer event, const LLSD& userdata); + }; + class LLStopTracking : public LLMemberListener { public: diff --git a/indra/newview/skins/default/xui/en-us/menu_mini_map.xml b/indra/newview/skins/default/xui/en-us/menu_mini_map.xml index 3bf49b6e1..185c9f489 100644 --- a/indra/newview/skins/default/xui/en-us/menu_mini_map.xml +++ b/indra/newview/skins/default/xui/en-us/menu_mini_map.xml @@ -19,6 +19,11 @@ + + + +