summaryrefslogtreecommitdiff
path: root/indra/newview/llfloatercamera.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloatercamera.h')
-rw-r--r--indra/newview/llfloatercamera.h105
1 files changed, 32 insertions, 73 deletions
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index a76e2f75de..b268839165 100644
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
@@ -2,25 +2,31 @@
* @file llfloatercamera.h
* @brief Container for camera control buttons (zoom, pan, orbit)
*
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
+ * 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
*
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
+ * 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
*
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * 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.
*
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * 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$
*/
@@ -28,21 +34,19 @@
#define LLFLOATERCAMERA_H
#include "lltransientdockablefloater.h"
-#include "lliconctrl.h"
-#include "lltextbox.h"
-#include "llflatlistview.h"
class LLJoystickCameraRotate;
+class LLJoystickCameraZoom;
class LLJoystickCameraTrack;
class LLFloaterReg;
class LLPanelCameraZoom;
enum ECameraControlMode
{
- CAMERA_CTRL_MODE_MODES,
+ CAMERA_CTRL_MODE_ORBIT,
CAMERA_CTRL_MODE_PAN,
CAMERA_CTRL_MODE_FREE_CAMERA,
- CAMERA_CTRL_MODE_PRESETS
+ CAMERA_CTRL_MODE_AVATAR_VIEW
};
class LLFloaterCamera
@@ -54,8 +58,8 @@ public:
/* whether in free camera mode */
static bool inFreeCameraMode();
- /* callback for camera items selection changing */
- static void onClickCameraItem(const LLSD& param);
+ /* callback for camera presets changing */
+ static void onClickCameraPresets(const LLSD& param);
static void onLeavingMouseLook();
@@ -64,14 +68,7 @@ public:
/* determines actual mode and updates ui */
void update();
-
- /*switch to one of the camera presets (front, rear, side)*/
- static void switchToPreset(const std::string& name);
-
- /* move to CAMERA_CTRL_MODE_PRESETS from CAMERA_CTRL_MODE_FREE_CAMERA if we are on presets panel and
- are not in free camera mode*/
- void fromFreeToPresets();
-
+
virtual void onOpen(const LLSD& key);
virtual void onClose(bool app_quitting);
@@ -91,6 +88,9 @@ private:
ECameraControlMode determineMode();
+ /* whether in avatar view (first person) mode */
+ bool inAvatarViewMode();
+
/* resets to the previous mode */
void toPrevMode();
@@ -106,59 +106,18 @@ private:
/* updates the state (UI) according to the current mode */
void updateState();
- /* update camera modes items selection and camera preset items selection according to the currently selected preset */
- void updateItemsSelection();
+ /* update camera preset buttons toggle state according to the currently selected preset */
+ void updateCameraPresetButtons();
void onClickBtn(ECameraControlMode mode);
void assignButton2Mode(ECameraControlMode mode, const std::string& button_name);
- // fills flatlist with items from given panel
- void fillFlatlistFromPanel (LLFlatListView* list, LLPanel* panel);
- // set to true when free camera mode is selected in modes list
- // remains true until preset camera mode is chosen, or pan button is clicked, or escape pressed
- static bool sFreeCamera;
BOOL mClosed;
ECameraControlMode mPrevMode;
ECameraControlMode mCurrMode;
std::map<ECameraControlMode, LLButton*> mMode2Button;
-};
-/**
- * Class used to represent widgets from panel_camera_item.xml-
- * panels that contain pictures and text. Pictures are different
- * for selected and unselected state (this state is nor stored- icons
- * are changed in setValue()). This class doesn't implement selection logic-
- * it's items are used inside of flatlist.
- */
-class LLPanelCameraItem
- : public LLPanel
-{
-public:
- struct Params : public LLInitParam::Block<Params, LLPanel::Params>
- {
- Optional<LLIconCtrl::Params> icon_over;
- Optional<LLIconCtrl::Params> icon_selected;
- Optional<LLIconCtrl::Params> picture;
- Optional<LLIconCtrl::Params> selected_picture;
-
- Optional<LLTextBox::Params> text;
- Optional<CommitCallbackParam> mousedown_callback;
- Params();
- };
- /*virtual*/ BOOL postBuild();
- /** setting on/off background icon to indicate selected state */
- /*virtual*/ void setValue(const LLSD& value);
- // sends commit signal
- void onAnyMouseClick();
-protected:
- friend class LLUICtrlFactory;
- LLPanelCameraItem(const Params&);
- LLIconCtrl* mIconOver;
- LLIconCtrl* mIconSelected;
- LLIconCtrl* mPicture;
- LLIconCtrl* mPictureSelected;
- LLTextBox* mText;
};
#endif