/indra/newview/llfloatertools.h
C Header | 208 lines | 132 code | 40 blank | 36 comment | 0 complexity | d25a354bc7328267eb9f46ea959ba682 MD5 | raw file
Possible License(s): LGPL-2.1
- /**
- * @file llfloatertools.h
- * @brief The edit tools, including move, position, land, etc.
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, 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.
- *
- * 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.
- *
- * 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
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
- #ifndef LL_LLFLOATERTOOLS_H
- #define LL_LLFLOATERTOOLS_H
- #include "llfloater.h"
- #include "llcoord.h"
- #include "llparcelselection.h"
- class LLButton;
- class LLCheckBoxCtrl;
- class LLPanelPermissions;
- class LLPanelObject;
- class LLPanelVolume;
- class LLPanelContents;
- class LLPanelFace;
- class LLPanelLandInfo;
- class LLRadioGroup;
- class LLSlider;
- class LLTabContainer;
- class LLTextBox;
- class LLMediaCtrl;
- class LLTool;
- class LLParcelSelection;
- class LLObjectSelection;
- class LLLandImpactsObserver;
- 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* createPanelLandInfo(void* vdata);
- LLFloaterTools(const LLSD& key);
- virtual ~LLFloaterTools();
- /*virtual*/ void onOpen(const LLSD& key);
- /*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();
- void updateLandImpacts();
- 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
- LLRadioGroup* mRadioGroupFocus;
- // Move buttons
- LLRadioGroup* mRadioGroupMove;
- // Edit buttons
- LLRadioGroup* mRadioGroupEdit;
- LLCheckBoxCtrl *mCheckSelectIndividual;
- LLButton* mBtnLink;
- LLButton* mBtnUnlink;
- LLCheckBoxCtrl* mCheckSnapToGrid;
- LLButton* mBtnGridOptions;
- LLCheckBoxCtrl* mCheckStretchUniform;
- LLCheckBoxCtrl* mCheckStretchTexture;
- // !HACK! Replacement of mCheckStretchUniform label because LLCheckBoxCtrl
- // doesn't support word_wrap of its label. Need to fix truncation bug EXT-6658
- LLTextBox* mCheckStretchUniformLabel;
- LLButton *mBtnRotateLeft;
- LLButton *mBtnRotateReset;
- LLButton *mBtnRotateRight;
- LLButton *mBtnDelete;
- LLButton *mBtnDuplicate;
- LLButton *mBtnDuplicateInPlace;
- // Create buttons
- LLCheckBoxCtrl *mCheckSticky;
- LLCheckBoxCtrl *mCheckCopySelection;
- LLCheckBoxCtrl *mCheckCopyCenters;
- LLCheckBoxCtrl *mCheckCopyRotates;
- // Land buttons
- LLRadioGroup* mRadioGroupLand;
- 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;
- LLViewBorder* mCostTextBorder;
- LLTabContainer* mTabLand;
- LLLandImpactsObserver* mLandImpactsObserver;
- LLParcelSelectionHandle mParcelSelection;
- LLObjectSelectionHandle mObjectSelection;
- LLMediaCtrl *mTitleMedia;
- bool mNeedMediaTitle;
- private:
- BOOL mDirty;
- std::map<std::string, std::string> mStatusText;
- protected:
- LLSD mMediaSettings;
- public:
- static bool sShowObjectCost;
-
- };
- extern LLFloaterTools *gFloaterTools;
- #endif