summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorYuri Chebotarev <ychebotarev@productengine.com>2010-05-06 19:52:56 +0300
committerYuri Chebotarev <ychebotarev@productengine.com>2010-05-06 19:52:56 +0300
commit17b42d5c5e0577cfcb59dc8972ddee602938d419 (patch)
treee3d9d3afc480f9ea60d55dc4d107befec0d439af /indra
parent0674dd9bd9d808658158a91a9cedf1b3e274c094 (diff)
EXT-6102 FIXED Add custom view for world rect with special reshape processing
reviwed Mike Antipov at https://codereview.productengine.com/secondlife/r/357/ --HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llworldview.cpp61
-rw-r--r--indra/newview/skins/default/xui/en/main_view.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_advanced.xml10
5 files changed, 85 insertions, 1 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index a1e3b679ee..2459165398 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -547,6 +547,7 @@ set(viewer_SOURCE_FILES
llworldmapmessage.cpp
llworldmipmap.cpp
llworldmapview.cpp
+ llworldview.cpp
llxmlrpclistener.cpp
llxmlrpctransaction.cpp
noise.cpp
@@ -1057,6 +1058,7 @@ set(viewer_HEADER_FILES
llworldmapmessage.h
llworldmipmap.h
llworldmapview.h
+ llworldview.h
llxmlrpclistener.h
llxmlrpctransaction.h
macmain.h
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index c1484f15d2..3aab27ab4b 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -8139,6 +8139,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>SidebarCameraMovement</key>
+ <map>
+ <key>Comment</key>
+ <string>Reflects world rect changing while changing sidebar visibility.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>GroupListShowIcons</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llworldview.cpp b/indra/newview/llworldview.cpp
new file mode 100644
index 0000000000..ca6111fdae
--- /dev/null
+++ b/indra/newview/llworldview.cpp
@@ -0,0 +1,61 @@
+/**
+ * @file llworldview.cpp
+ * @brief LLWorldView class implementation
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llworldview.h"
+
+#include "llviewercontrol.h"
+#include "llsidetray.h"
+/////////////////////////////////////////////////////
+// LLFloaterView
+
+static LLDefaultChildRegistry::Register<LLWorldView> r("world_view");
+
+LLWorldView::LLWorldView(const Params& p)
+: LLUICtrl (p)
+{
+}
+
+void LLWorldView::reshape(S32 width, S32 height, BOOL called_from_parent)
+{
+ if (FALSE == gSavedSettings.getBOOL("SidebarCameraMovement") )
+ {
+ LLView* main_view = LLUI::getRootView()->findChild<LLView>("main_view");
+ if(main_view)
+ {
+ width = main_view->getRect().getWidth();
+ }
+ }
+
+ LLUICtrl::reshape(width, height, called_from_parent);
+}
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index b2e4a7ad95..e42b88abc3 100644
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
@@ -50,7 +50,7 @@
name="non_side_tray_view"
user_resize="false"
width="500">
- <view bottom="500"
+ <world_view bottom="500"
follows="all"
height="500"
left="0"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 69e8e6fdcc..0129d97616 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -94,6 +94,16 @@ Automatic position for:
name="appearance_camera_movement"
tool_tip="Use automatic camera positioning while in edit mode"
width="242" />
+ <check_box
+ control_name="SidebarCameraMovement"
+ follows="left|top"
+ height="16"
+ initial_value="1"
+ label="Sidebar"
+ layout="topleft"
+ name="appearance_sidebar_positioning"
+ tool_tip="Use automatic camera positioning for sidebar"
+ width="242" />
<icon
follows="left|top"
height="18"