diff options
Diffstat (limited to 'indra/newview/llsettingspicker.h')
-rw-r--r-- | indra/newview/llsettingspicker.h | 368 |
1 files changed, 21 insertions, 347 deletions
diff --git a/indra/newview/llsettingspicker.h b/indra/newview/llsettingspicker.h index 968bcaa692..c3ccbe22c3 100644 --- a/indra/newview/llsettingspicker.h +++ b/indra/newview/llsettingspicker.h @@ -32,6 +32,7 @@ #include "llfloater.h" #include "llpermissionsflags.h" #include "llfolderview.h" +#include "llinventory.h" #include <boost/signals2.hpp> @@ -52,14 +53,13 @@ public: virtual ~LLFloaterSettingsPicker() override; void setActive(bool active); - void setSettingsID(const LLUUID &settings_id, bool set_selection = true); virtual BOOL postBuild() override; virtual void onClose(bool app_quitting) override; virtual void draw() override; - void setSettingsAssetID(LLUUID setting_asset_id); - LLUUID getSettingsAssetID() const { return mSettingAssetID; } + void setSettingsAssetId(const LLUUID &settings_id, bool set_selection = true); + LLUUID getSettingsAssetId() const { return mSettingAssetID; } void setDefaultSettingsAssetID(LLUUID id) { mDefaultSettingsAssetID = id; } LLUUID getDefaultSettingsAssetID() const { return mDefaultSettingsAssetID; } @@ -71,6 +71,24 @@ public: virtual void setValue(const LLSD& value) override; virtual LLSD getValue() const override; + LLUUID findItemID(const LLUUID& asset_id, bool copyable_only, bool ignore_library = false) + { + LLInventoryItem *pitem = findItem(asset_id, copyable_only, ignore_library); + if (pitem) + return pitem->getUUID(); + return LLUUID::null; + } + + std::string findItemName(const LLUUID& asset_id, bool copyable_only, bool ignore_library = false) + { + LLInventoryItem *pitem = findItem(asset_id, copyable_only, ignore_library); + if (pitem) + return pitem->getName(); + return std::string(); + } + + LLInventoryItem * findItem(const LLUUID& asset_id, bool copyable_only, bool ignore_library); + private: typedef std::deque<LLFolderViewItem *> itemlist_t; @@ -79,7 +97,6 @@ private: void onButtonCancel(); void onButtonSelect(); - LLUUID findItemID(const LLUUID& asset_id, bool copyable_only, bool ignore_library = false); LLView* mOwner; std::string mLabel; @@ -105,347 +122,4 @@ private: boost::signals2::signal<void(const LLUUID& asset_id)> mChangeIDSignal; }; -#if 0 -#include "llcoord.h" -#include "llfiltereditor.h" -#include "llfolderview.h" -#include "lllocalbitmaps.h" -#include "llstring.h" -#include "lluictrl.h" -#include "llradiogroup.h" -#include "lltextbox.h" // for params -#include "llviewerinventory.h" -#include "llviewborder.h" // for params -#include "llviewerobject.h" -#include "llviewertexture.h" -#include "llwindow.h" - -class LLButton; -class LLFloaterTexturePicker; -class LLInventoryItem; -class LLViewerFetchedTexture; - -// used for setting drag & drop callbacks. -typedef boost::function<BOOL (LLUICtrl*, LLInventoryItem*)> drag_n_drop_callback; -typedef boost::function<void (LLInventoryItem*)> texture_selected_callback; - - -////////////////////////////////////////////////////////////////////////////////////////// -// LLTextureCtrl - - -class LLTextureCtrl -: public LLUICtrl -{ -public: - typedef enum e_texture_pick_op - { - TEXTURE_CHANGE, - TEXTURE_SELECT, - TEXTURE_CANCEL - } ETexturePickOp; - -public: - struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> - { - Optional<LLUUID> image_id; - Optional<LLUUID> default_image_id; - Optional<std::string> default_image_name; - Optional<bool> allow_no_texture; - Optional<bool> can_apply_immediately; - Optional<bool> no_commit_on_selection; // alternative mode: commit occurs and the widget gets dirty - // only on DnD or when OK is pressed in the picker - Optional<S32> label_width; - Optional<LLUIColor> border_color; - Optional<LLUIImage*> fallback_image; - - Optional<LLTextBox::Params> multiselect_text, - caption_text; - - Optional<LLViewBorder::Params> border; - - Params() - : image_id("image"), - default_image_id("default_image_id"), - default_image_name("default_image_name"), - allow_no_texture("allow_no_texture"), - can_apply_immediately("can_apply_immediately"), - no_commit_on_selection("no_commit_on_selection", false), - label_width("label_width", -1), - border_color("border_color"), - fallback_image("fallback_image"), - multiselect_text("multiselect_text"), - caption_text("caption_text"), - border("border") - {} - }; -protected: - LLTextureCtrl(const Params&); - friend class LLUICtrlFactory; -public: - virtual ~LLTextureCtrl(); - - // LLView interface - - virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); - virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, - BOOL drop, EDragAndDropType cargo_type, void *cargo_data, - EAcceptance *accept, - std::string& tooltip_msg); - virtual BOOL handleHover(S32 x, S32 y, MASK mask); - virtual BOOL handleUnicodeCharHere(llwchar uni_char); - - virtual void draw(); - virtual void setVisible( BOOL visible ); - virtual void setEnabled( BOOL enabled ); - - void setValid(BOOL valid); - - // LLUICtrl interface - virtual void clear(); - - // Takes a UUID, wraps get/setImageAssetID - virtual void setValue(const LLSD& value); - virtual LLSD getValue() const; - - // LLTextureCtrl interface - void showPicker(BOOL take_focus); - bool isPickerShown() { return !mFloaterHandle.isDead(); } - void setLabel(const std::string& label); - void setLabelWidth(S32 label_width) {mLabelWidth =label_width;} - const std::string& getLabel() const { return mLabel; } - - void setAllowNoTexture( BOOL b ) { mAllowNoTexture = b; } - bool getAllowNoTexture() const { return mAllowNoTexture; } - - const LLUUID& getImageItemID() { return mImageItemID; } - - virtual void setImageAssetName(const std::string& name); - - void setImageAssetID(const LLUUID &image_asset_id); - const LLUUID& getImageAssetID() const { return mImageAssetID; } - - void setDefaultImageAssetID( const LLUUID& id ) { mDefaultImageAssetID = id; } - const LLUUID& getDefaultImageAssetID() const { return mDefaultImageAssetID; } - - const std::string& getDefaultImageName() const { return mDefaultImageName; } - - void setBlankImageAssetID( const LLUUID& id ) { mBlankImageAssetID = id; } - const LLUUID& getBlankImageAssetID() const { return mBlankImageAssetID; } - - void setCaption(const std::string& caption); - void setCanApplyImmediately(BOOL b); - - void setCanApply(bool can_preview, bool can_apply); - - void setImmediateFilterPermMask(PermissionMask mask) - { mImmediateFilterPermMask = mask; } - void setDnDFilterPermMask(PermissionMask mask) - { mDnDFilterPermMask = mask; } - void setNonImmediateFilterPermMask(PermissionMask mask) - { mNonImmediateFilterPermMask = mask; } - PermissionMask getImmediateFilterPermMask() { return mImmediateFilterPermMask; } - PermissionMask getNonImmediateFilterPermMask() { return mNonImmediateFilterPermMask; } - - void closeDependentFloater(); - - void onFloaterClose(); - void onFloaterCommit(ETexturePickOp op, LLUUID id); - - // This call is returned when a drag is detected. Your callback - // should return TRUE if the drag is acceptable. - void setDragCallback(drag_n_drop_callback cb) { mDragCallback = cb; } - - // This callback is called when the drop happens. Return TRUE if - // the drop happened - resulting in an on commit callback, but not - // necessariliy any other change. - void setDropCallback(drag_n_drop_callback cb) { mDropCallback = cb; } - - void setOnCancelCallback(commit_callback_t cb) { mOnCancelCallback = cb; } - void setOnCloseCallback(commit_callback_t cb) { mOnCloseCallback = cb; } - void setOnSelectCallback(commit_callback_t cb) { mOnSelectCallback = cb; } - - /* - * callback for changing texture selection in inventory list of texture floater - */ - void setOnTextureSelectedCallback(texture_selected_callback cb); - - void setShowLoadingPlaceholder(BOOL showLoadingPlaceholder); - - LLViewerFetchedTexture* getTexture() { return mTexturep; } - -private: - BOOL allowDrop(LLInventoryItem* item); - BOOL doDrop(LLInventoryItem* item); - -private: - drag_n_drop_callback mDragCallback; - drag_n_drop_callback mDropCallback; - commit_callback_t mOnCancelCallback; - commit_callback_t mOnSelectCallback; - commit_callback_t mOnCloseCallback; - texture_selected_callback mOnTextureSelectedCallback; - LLPointer<LLViewerFetchedTexture> mTexturep; - LLUIColor mBorderColor; - LLUUID mImageItemID; - LLUUID mImageAssetID; - LLUUID mDefaultImageAssetID; - LLUUID mBlankImageAssetID; - LLUIImagePtr mFallbackImage; - std::string mDefaultImageName; - LLHandle<LLFloater> mFloaterHandle; - LLTextBox* mTentativeLabel; - LLTextBox* mCaption; - std::string mLabel; - BOOL mAllowNoTexture; // If true, the user can select "none" as an option - PermissionMask mImmediateFilterPermMask; - PermissionMask mDnDFilterPermMask; - PermissionMask mNonImmediateFilterPermMask; - BOOL mCanApplyImmediately; - BOOL mCommitOnSelection; - BOOL mNeedsRawImageData; - LLViewBorder* mBorder; - BOOL mValid; - BOOL mShowLoadingPlaceholder; - std::string mLoadingPlaceholderString; - S32 mLabelWidth; -}; - -////////////////////////////////////////////////////////////////////////////////////////// -// LLFloaterTexturePicker -typedef boost::function<void(LLTextureCtrl::ETexturePickOp op, LLUUID id)> floater_commit_callback; -typedef boost::function<void()> floater_close_callback; -typedef boost::function<void(const LLUUID& asset_id)> set_image_asset_id_callback; -typedef boost::function<void(LLPointer<LLViewerTexture> texture)> set_on_update_image_stats_callback; - -class LLFloaterTexturePicker : public LLFloater -{ -public: - LLFloaterTexturePicker( - LLView* owner, - LLUUID image_asset_id, - LLUUID default_image_asset_id, - LLUUID blank_image_asset_id, - BOOL tentative, - BOOL allow_no_texture, - const std::string& label, - PermissionMask immediate_filter_perm_mask, - PermissionMask dnd_filter_perm_mask, - PermissionMask non_immediate_filter_perm_mask, - BOOL can_apply_immediately, - LLUIImagePtr fallback_image_name - ); - - virtual ~LLFloaterTexturePicker(); - - // LLView overrides - /*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, - BOOL drop, EDragAndDropType cargo_type, void *cargo_data, - EAcceptance *accept, - std::string& tooltip_msg); - /*virtual*/ void draw(); - /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); - - // LLFloater overrides - /*virtual*/ BOOL postBuild(); - /*virtual*/ void onClose(bool app_settings); - - // New functions - void setImageID(const LLUUID& image_asset_id, bool set_selection = true); - void updateImageStats(); - const LLUUID& getAssetID() { return mImageAssetID; } - const LLUUID& findItemID(const LLUUID& asset_id, BOOL copyable_only, BOOL ignore_library = FALSE); - void setCanApplyImmediately(BOOL b); - - void setActive(BOOL active); - - LLView* getOwner() const { return mOwner; } - void setOwner(LLView* owner) { mOwner = owner; } - void stopUsingPipette(); - PermissionMask getFilterPermMask(); - - void updateFilterPermMask(); - void commitIfImmediateSet(); - void commitCancel(); - - void onFilterEdit(const std::string& search_string); - - void setCanApply(bool can_preview, bool can_apply); - void setTextureSelectedCallback(const texture_selected_callback& cb) { mTextureSelectedCallback = cb; } - void setOnFloaterCloseCallback(const floater_close_callback& cb) { mOnFloaterCloseCallback = cb; } - void setOnFloaterCommitCallback(const floater_commit_callback& cb) { mOnFloaterCommitCallback = cb; } - void setSetImageAssetIDCallback(const set_image_asset_id_callback& cb) { mSetImageAssetIDCallback = cb; } - void setOnUpdateImageStatsCallback(const set_on_update_image_stats_callback& cb) { mOnUpdateImageStatsCallback = cb; } - const LLUUID& getDefaultImageAssetID() { return mDefaultImageAssetID; } - const LLUUID& getBlankImageAssetID() { return mBlankImageAssetID; } - - static void onBtnSetToDefault(void* userdata); - static void onBtnSelect(void* userdata); - static void onBtnCancel(void* userdata); - void onBtnPipette(); - //static void onBtnRevert( void* userdata ); - static void onBtnBlank(void* userdata); - static void onBtnNone(void* userdata); - static void onBtnClear(void* userdata); - void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action); - static void onShowFolders(LLUICtrl* ctrl, void* userdata); - static void onApplyImmediateCheck(LLUICtrl* ctrl, void* userdata); - void onTextureSelect(const LLTextureEntry& te); - - static void onModeSelect(LLUICtrl* ctrl, void *userdata); - static void onBtnAdd(void* userdata); - static void onBtnRemove(void* userdata); - static void onBtnUpload(void* userdata); - static void onLocalScrollCommit(LLUICtrl* ctrl, void* userdata); - - void setLocalTextureEnabled(BOOL enabled); - -protected: - LLPointer<LLViewerTexture> mTexturep; - LLView* mOwner; - - LLUUID mImageAssetID; // Currently selected texture - LLUIImagePtr mFallbackImage; // What to show if currently selected texture is null. - LLUUID mDefaultImageAssetID; - LLUUID mBlankImageAssetID; - BOOL mTentative; - BOOL mAllowNoTexture; - LLUUID mSpecialCurrentImageAssetID; // Used when the asset id has no corresponding texture in the user's inventory. - LLUUID mOriginalImageAssetID; - - std::string mLabel; - - LLTextBox* mTentativeLabel; - LLTextBox* mResolutionLabel; - - std::string mPendingName; - BOOL mActive; - - LLFilterEditor* mFilterEdit; - LLInventoryPanel* mInventoryPanel; - PermissionMask mImmediateFilterPermMask; - PermissionMask mDnDFilterPermMask; - PermissionMask mNonImmediateFilterPermMask; - BOOL mCanApplyImmediately; - BOOL mNoCopyTextureSelected; - F32 mContextConeOpacity; - LLSaveFolderState mSavedFolderState; - BOOL mSelectedItemPinned; - - LLRadioGroup* mModeSelector; - LLScrollListCtrl* mLocalScrollCtrl; - -private: - bool mCanApply; - bool mCanPreview; - bool mPreviewSettingChanged; - - texture_selected_callback mTextureSelectedCallback; - floater_close_callback mOnFloaterCloseCallback; - floater_commit_callback mOnFloaterCommitCallback; - set_image_asset_id_callback mSetImageAssetIDCallback; - set_on_update_image_stats_callback mOnUpdateImageStatsCallback; -}; - -#endif #endif // LL_LLTEXTURECTRL_H |