summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorybridge.h
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2009-05-08 07:43:08 +0000
committerSteven Bennetts <steve@lindenlab.com>2009-05-08 07:43:08 +0000
commita4000c3744e42fcbb638e742f3b63fa31a0dee15 (patch)
tree7f472c30e65bbfa04ee9bc06631a1af305cc31fb /indra/newview/llinventorybridge.h
parent6c4cadbb04d633ad7b762058bdeba6e1f650dafd (diff)
merge trunk@116587 skinning-7@119389 -> viewer-2.0.0-skinning-7
Diffstat (limited to 'indra/newview/llinventorybridge.h')
-rw-r--r--indra/newview/llinventorybridge.h233
1 files changed, 170 insertions, 63 deletions
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index 526b30f214..b66228c75a 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -34,6 +34,8 @@
#include "llwearable.h"
#include "llviewercontrol.h"
#include "llcallingcard.h"
+#include "llinventorymodel.h"
+#include "llinventoryview.h"
enum EInventoryIcon
{
@@ -93,31 +95,6 @@ struct LLAttachmentRezAction
};
-//helper functions
-class LLShowProps
-{
-public:
-
- static void showProperties(const LLUUID& uuid)
- {
- if(!LLFloaterProperties::show(uuid, LLUUID::null))
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PropertiesRect");
- rect.translate( left - rect.mLeft, top - rect.mTop );
- LLFloaterProperties* floater;
- floater = new LLFloaterProperties("item properties",
- rect,
- "Inventory Item Properties",
- uuid,
- LLUUID::null);
- // keep onscreen
- gFloaterView->adjustToFitScreen(floater, FALSE);
- }
- }
-};
-
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLInventoryPanelObserver
//
@@ -158,7 +135,6 @@ public:
virtual const LLUUID& getUUID() const { return mUUID; }
- virtual const std::string& getPrefix() { return LLStringUtil::null; }
virtual void restoreItem() {}
virtual void restoreToWorld() {}
@@ -201,9 +177,14 @@ public:
protected:
LLInvFVBridge(LLInventoryPanel* inventory, const LLUUID& uuid) :
- mInventoryPanel(inventory), mUUID(uuid), mInvType(LLInventoryType::IT_NONE) {}
+ mUUID(uuid), mInvType(LLInventoryType::IT_NONE)
+ {
+ mInventoryPanel = inventory->getHandle();
+ }
LLInventoryObject* getInventoryObject() const;
+ LLInventoryModel* getInventoryModel() const;
+
BOOL isInTrash() const;
// return true if the item is in agent inventory. if false, it
// must be lost or in the inventory library.
@@ -218,9 +199,9 @@ protected:
const LLUUID& new_parent,
BOOL restamp);
void removeBatchNoCheck(LLDynamicArray<LLFolderViewEventListener*>& batch);
-
+
protected:
- LLInventoryPanel* mInventoryPanel;
+ LLHandle<LLPanel> mInventoryPanel;
LLUUID mUUID; // item id
LLInventoryType::EType mInvType;
};
@@ -277,6 +258,7 @@ public:
virtual void selectItem();
virtual void restoreItem();
+ virtual LLAssetType::EType getPreferredType() const;
virtual LLUIImagePtr getIcon() const;
virtual BOOL renameItem(const std::string& new_name);
virtual BOOL removeItem();
@@ -351,15 +333,12 @@ class LLTextureBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
-
virtual LLUIImagePtr getIcon() const;
virtual void openItem();
protected:
LLTextureBridge(LLInventoryPanel* inventory, const LLUUID& uuid, LLInventoryType::EType type) :
LLItemBridge(inventory, uuid), mInvType(type) {}
- static std::string sPrefix;
LLInventoryType::EType mInvType;
};
@@ -367,8 +346,6 @@ class LLSoundBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
-
virtual LLUIImagePtr getIcon() const;
virtual void openItem();
virtual void previewItem();
@@ -378,15 +355,12 @@ public:
protected:
LLSoundBridge(LLInventoryPanel* inventory, const LLUUID& uuid) :
LLItemBridge(inventory, uuid) {}
- static std::string sPrefix;
};
class LLLandmarkBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- static const std::string& prefix() { return sPrefix; }
- virtual const std::string& getPrefix() { return sPrefix; }
virtual void performAction(LLFolderView* folder, LLInventoryModel* model, std::string action);
virtual void buildContextMenu(LLMenuGL& menu, U32 flags);
virtual LLUIImagePtr getIcon() const;
@@ -404,7 +378,6 @@ protected:
}
protected:
- static std::string sPrefix;
BOOL mVisited;
};
@@ -425,8 +398,6 @@ class LLCallingCardBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
-
virtual std::string getLabelSuffix() const;
//virtual const std::string& getDisplayName() const;
virtual LLUIImagePtr getIcon() const;
@@ -445,7 +416,6 @@ protected:
~LLCallingCardBridge();
protected:
- static std::string sPrefix;
LLCallingCardObserver* mObserver;
};
@@ -454,25 +424,18 @@ class LLNotecardBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
-
virtual LLUIImagePtr getIcon() const;
virtual void openItem();
protected:
LLNotecardBridge(LLInventoryPanel* inventory, const LLUUID& uuid) :
LLItemBridge(inventory, uuid) {}
-
-protected:
- static std::string sPrefix;
};
class LLGestureBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
-
virtual LLUIImagePtr getIcon() const;
// Only suffix for gesture items, not task items, because only
@@ -489,9 +452,6 @@ public:
protected:
LLGestureBridge(LLInventoryPanel* inventory, const LLUUID& uuid)
: LLItemBridge(inventory, uuid) {}
-
-protected:
- static std::string sPrefix;
};
@@ -499,7 +459,6 @@ class LLAnimationBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
virtual void performAction(LLFolderView* folder, LLInventoryModel* model, std::string action);
virtual void buildContextMenu(LLMenuGL& menu, U32 flags);
@@ -509,9 +468,6 @@ public:
protected:
LLAnimationBridge(LLInventoryPanel* inventory, const LLUUID& uuid) :
LLItemBridge(inventory, uuid) {}
-
-protected:
- static std::string sPrefix;
};
@@ -519,8 +475,6 @@ class LLObjectBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
-
virtual LLUIImagePtr getIcon() const;
virtual void performAction(LLFolderView* folder, LLInventoryModel* model, std::string action);
virtual void openItem();
@@ -540,7 +494,6 @@ protected:
}
protected:
- static std::string sPrefix;
static LLUUID sContextMenuItemID; // Only valid while the context menu is open.
LLInventoryType::EType mInvType;
U32 mAttachPt;
@@ -552,17 +505,12 @@ class LLLSLTextBridge : public LLItemBridge
{
friend class LLInvFVBridge;
public:
- virtual const std::string& getPrefix() { return sPrefix; }
-
virtual LLUIImagePtr getIcon() const;
virtual void openItem();
protected:
LLLSLTextBridge( LLInventoryPanel* inventory, const LLUUID& uuid ) :
LLItemBridge(inventory, uuid) {}
-
-protected:
- static std::string sPrefix;
};
@@ -605,3 +553,162 @@ protected:
LLInventoryType::EType mInvType;
EWearableType mWearableType;
};
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLInvFVBridgeAction (& it's derived classes)
+//
+// This is an implementation class to be able to
+// perform action to view inventory items.
+//
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+class LLInvFVBridgeAction
+{
+public:
+ // This method is a convenience function which creates the correct
+ // type of bridge action based on some basic information
+ static LLInvFVBridgeAction* createAction(LLAssetType::EType asset_type,
+ const LLUUID& uuid,LLInventoryModel* model);
+
+ static void doAction(LLAssetType::EType asset_type,
+ const LLUUID& uuid,LLInventoryModel* model);
+
+ virtual void doIt() { };
+ virtual ~LLInvFVBridgeAction(){}//need this because of warning on OSX
+protected:
+ LLInvFVBridgeAction(const LLUUID& id,LLInventoryModel* model):mUUID(id),mModel(model){}
+
+ LLViewerInventoryItem* getItem() const;
+protected:
+ const LLUUID& mUUID; // item id
+ LLInventoryModel* mModel;
+
+};
+
+
+
+class LLTextureBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLTextureBridgeAction(){}
+protected:
+ LLTextureBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLSoundBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLSoundBridgeAction(){}
+protected:
+ LLSoundBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLLandmarkBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLLandmarkBridgeAction(){}
+protected:
+ LLLandmarkBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLCallingCardBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLCallingCardBridgeAction(){}
+protected:
+ LLCallingCardBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLNotecardBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLNotecardBridgeAction(){}
+protected:
+ LLNotecardBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLGestureBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLGestureBridgeAction(){}
+protected:
+ LLGestureBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLAnimationBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLAnimationBridgeAction(){}
+protected:
+ LLAnimationBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLObjectBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLObjectBridgeAction(){}
+protected:
+ LLObjectBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLLSLTextBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLLSLTextBridgeAction(){}
+protected:
+ LLLSLTextBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLWearableBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt();
+ virtual ~LLWearableBridgeAction(){}
+protected:
+ LLWearableBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+
+ BOOL isInTrash() const;
+ // return true if the item is in agent inventory. if false, it
+ // must be lost or in the inventory library.
+ BOOL isAgentInventory() const;
+
+ void wearOnAvatar();
+
+};