summaryrefslogtreecommitdiff
path: root/indra/llui/llclipboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui/llclipboard.h')
-rw-r--r--indra/llui/llclipboard.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/indra/llui/llclipboard.h b/indra/llui/llclipboard.h
index 2567eaab48..2cb857145e 100644
--- a/indra/llui/llclipboard.h
+++ b/indra/llui/llclipboard.h
@@ -34,6 +34,13 @@
#include "llsingleton.h"
#include "llinventory.h"
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLClipboard
+//
+// This class is used to cut/copy/paste text strings and inventory items around
+// the world. Use LLClipboard::getInstance()->method() to use its methods.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
class LLClipboard : public LLSingleton<LLClipboard>
{
public:
@@ -45,20 +52,36 @@ public:
which is implicitly copied upon selection on platforms which expect this
(i.e. X11/Linux). */
+ // Text strings management
void copyFromSubstring(const LLWString &copy_from, S32 pos, S32 len, const LLUUID& source_id = LLUUID::null );
void copyFromString(const LLWString &copy_from, const LLUUID& source_id = LLUUID::null );
BOOL canPasteString() const;
const LLWString& getPasteWString(LLUUID* source_id = NULL);
+ // Primary text string management (Linux gtk implementation)
void copyFromPrimarySubstring(const LLWString &copy_from, S32 pos, S32 len, const LLUUID& source_id = LLUUID::null );
BOOL canPastePrimaryString() const;
const LLWString& getPastePrimaryWString(LLUUID* source_id = NULL);
// Support clipboard for object known only by their uuid
- void setSourceObject(const LLUUID& source_id) { mSourceID = source_id; }
+ //void setSourceObject(const LLUUID& source_id) { mSourceID = source_id; }
+
+ // Object list management
+ void add(const LLUUID& object); // Adds to the current list of objects on the clipboard
+ void store(const LLUUID& object); // Stores a single inventory object
+ void store(const LLDynamicArray<LLUUID>& inventory_objects); // Stores an array of objects
+ void cut(const LLUUID& object); // Adds to the current list of cut objects on the clipboard
+ void retrieve(LLDynamicArray<LLUUID>& inventory_objects) const; // Gets a copy of the objects on the clipboard
+ void reset(); // Clears the clipboard
+ BOOL hasContents() const; // true if the clipboard has something pasteable in it
+ bool isCutMode() const { return mCutMode; }
+
private:
- LLUUID mSourceID;
+ // *TODO: To know if an asset ID can be serialized, check out LLAssetType::lookupIsAssetIDKnowable(EType asset_type)
+ LLDynamicArray<LLUUID> mObjects;
+ bool mCutMode;
+
LLWString mString;
};