Files
SingularityViewer/indra/newview/llfloatertools.h
Inusaito Sayori cb0cc571ee Mats UI.
Includes Chalice Yao's pause agent on attachment selection in LLSelectMgr::updateSelectionCenter()
Includes some of Cinder Roxley's enhancements to the build floater for materials (flip buttons, sync materials, consistent control hiding)
Includes Ansariel Hiller's fix for FIRE-8298 [BUG-869] [MAINT-1961], since this updates lltexturectrl.* to have related behaviors.
Switches from using MIN_MANHATTAN_DIST for threshold in LLToolDragAndDrop to using the existing DragAndDropDistanceThreshold debug, like upstream.

Translators:
panel_tools_texture.xml should now be translated, floater_tools.xml should have the old panel removed.
strings.xml now has "use_texture" string.
notifications.xml Now has "LivePreviewUnavailable" alert. (don't forget to translate the ignoretext)
2013-11-06 17:39:04 -05:00

224 lines
5.9 KiB
C++

/**
* @file llfloatertools.h
* @brief The edit tools, including move, position, land, etc.
*
* $LicenseInfo:firstyear=2002&license=viewergpl$
*
* Copyright (c) 2002-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$
*/
#ifndef LL_LLFLOATERTOOLS_H
#define LL_LLFLOATERTOOLS_H
#include "llfloater.h"
#include "llcoord.h"
#include "llparcelselection.h"
class LLButton;
class LLCheckBoxCtrl;
class LLComboBox;
class LLPanelPermissions;
class LLPanelObject;
class LLPanelVolume;
class LLPanelContents;
class LLPanelFace;
class LLPanelLandInfo;
class LLSlider;
class LLTabContainer;
class LLTextBox;
class LLMediaCtrl;
class LLTool;
class LLParcelSelection;
class LLObjectSelection;
typedef LLSafeHandle<LLObjectSelection> LLObjectSelectionHandle;
class LLFloaterTools
: public LLFloater
{
public:
virtual BOOL postBuild();
static void* createPanelPermissions(void* vdata);
static void* createPanelObject(void* vdata);
static void* createPanelVolume(void* vdata);
static void* createPanelFace(void* vdata);
static void* createPanelContents(void* vdata);
static void* createPanelContentsInventory(void* vdata);
static void* createPanelLandInfo(void* vdata);
LLFloaterTools();
virtual ~LLFloaterTools();
/*virtual*/ void onOpen();
/*virtual*/ BOOL canClose();
/*virtual*/ void onClose(bool app_quitting);
/*virtual*/ void draw();
/*virtual*/ void onFocusReceived();
// call this once per frame to handle visibility, rect location,
// button highlights, etc.
void updatePopup(LLCoordGL center, MASK mask);
// When the floater is going away, reset any options that need to be
// cleared.
void resetToolState();
enum EInfoPanel
{
PANEL_GENERAL=0,
PANEL_OBJECT,
PANEL_FEATURES,
PANEL_FACE,
PANEL_CONTENTS,
PANEL_COUNT
};
void dirty();
void showPanel(EInfoPanel panel);
void setStatusText(const std::string& text);
static void setEditTool(void* data);
void setTool(const LLSD& user_data);
void saveLastTool();
void onClickBtnDeleteMedia();
void onClickBtnAddMedia();
void onClickBtnEditMedia();
void clearMediaSettings();
void updateMediaTitle();
void navigateToTitleMedia( const std::string url );
bool selectedMediaEditable();
LLPanelFace* getPanelFace() { return mPanelFace; }
private:
void refresh();
void refreshMedia();
void getMediaState();
void updateMediaSettings();
static bool deleteMediaConfirm(const LLSD& notification, const LLSD& response);
static bool multipleFacesSelectedConfirm(const LLSD& notification, const LLSD& response);
static void setObjectType( LLPCode pcode );
void onClickGridOptions();
public:
LLButton *mBtnFocus;
LLButton *mBtnMove;
LLButton *mBtnEdit;
LLButton *mBtnCreate;
LLButton *mBtnLand;
LLTextBox *mTextStatus;
// Focus buttons
LLCheckBoxCtrl *mRadioOrbit;
LLCheckBoxCtrl *mRadioZoom;
LLCheckBoxCtrl *mRadioPan;
// Move buttons
LLCheckBoxCtrl *mRadioMove;
LLCheckBoxCtrl *mRadioLift;
LLCheckBoxCtrl *mRadioSpin;
// Edit buttons
LLCheckBoxCtrl *mRadioPosition;
LLCheckBoxCtrl *mRadioRotate;
LLCheckBoxCtrl *mRadioStretch;
LLCheckBoxCtrl *mRadioSelectFace;
LLCheckBoxCtrl *mRadioAlign;
LLCheckBoxCtrl *mCheckSelectIndividual;
LLCheckBoxCtrl* mCheckSnapToGrid;
LLButton* mBtnGridOptions;
LLTextBox* mTextGridMode;
LLComboBox* mComboGridMode;
LLCheckBoxCtrl* mCheckStretchUniform;
LLCheckBoxCtrl* mCheckStretchTexture;
LLCheckBoxCtrl* mCheckLimitDrag;
LLCheckBoxCtrl* mCheckShowHighlight;
LLCheckBoxCtrl* mCheckActualRoot;
LLButton *mBtnRotateLeft;
LLButton *mBtnRotateReset;
LLButton *mBtnRotateRight;
LLButton *mBtnDelete;
LLButton *mBtnDuplicate;
LLButton *mBtnDuplicateInPlace;
// Create buttons
LLComboBox *mComboTreesGrass;
LLCheckBoxCtrl *mCheckSticky;
LLCheckBoxCtrl *mCheckCopySelection;
LLCheckBoxCtrl *mCheckCopyCenters;
LLCheckBoxCtrl *mCheckCopyRotates;
// Land buttons
// LLCheckBoxCtrl *mRadioEditLand;
LLCheckBoxCtrl *mRadioSelectLand;
LLCheckBoxCtrl *mRadioDozerFlatten;
LLCheckBoxCtrl *mRadioDozerRaise;
LLCheckBoxCtrl *mRadioDozerLower;
LLCheckBoxCtrl *mRadioDozerSmooth;
LLCheckBoxCtrl *mRadioDozerNoise;
LLCheckBoxCtrl *mRadioDozerRevert;
LLSlider *mSliderDozerSize;
LLSlider *mSliderDozerForce;
LLButton *mBtnApplyToSelection;
std::vector<LLButton*> mButtons;//[ 15 ];
LLTabContainer *mTab;
LLPanelPermissions *mPanelPermissions;
LLPanelObject *mPanelObject;
LLPanelVolume *mPanelVolume;
LLPanelContents *mPanelContents;
LLPanelFace *mPanelFace;
LLPanelLandInfo *mPanelLandInfo;
LLParcelSelectionHandle mParcelSelection;
LLObjectSelectionHandle mObjectSelection;
LLMediaCtrl *mTitleMedia;
bool mNeedMediaTitle;
private:
BOOL mDirty;
std::map<std::string, std::string> mStatusText;
void updateTreeGrassCombo(bool visible);
static void onSelectTreesGrass(LLUICtrl*, void*);
protected:
LLSD mMediaSettings;
};
extern LLFloaterTools *gFloaterTools;
#endif