summaryrefslogtreecommitdiff
path: root/indra/newview/llinventoryclipboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventoryclipboard.h')
-rw-r--r--indra/newview/llinventoryclipboard.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/indra/newview/llinventoryclipboard.h b/indra/newview/llinventoryclipboard.h
new file mode 100644
index 0000000000..4250822189
--- /dev/null
+++ b/indra/newview/llinventoryclipboard.h
@@ -0,0 +1,65 @@
+/**
+ * @file llinventoryclipboard.h
+ * @brief LLInventoryClipboard class header file
+ *
+ * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LL_LLINVENTORYCLIPBOARD_H
+#define LL_LLINVENTORYCLIPBOARD_H
+
+#include "lldarray.h"
+#include "lluuid.h"
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLInventoryClipboard
+//
+// This class is used to cut/copy/paste inventory items around the
+// world. This class is accessed through a singleton (only one
+// inventory clipboard for now) which can be referenced using the
+// instance() method.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+class LLInventoryClipboard
+{
+public:
+ // calling this before main() is undefined
+ static LLInventoryClipboard& instance() { return sInstance; }
+
+ // this method adds to the current list.
+ void add(const LLUUID& object);
+
+ // this stores a single inventory object
+ void store(const LLUUID& object);
+
+ // this method stores an array of objects
+ void store(const LLDynamicArray<LLUUID>& inventory_objects);
+
+ // this method gets the objects in the clipboard by copying them
+ // into the array provided.
+ void retrieve(LLDynamicArray<LLUUID>& inventory_objects) const;
+
+ // this method empties out the clipboard
+ void reset();
+
+ // returns true if the clipboard has something pasteable in it.
+ BOOL hasContents() const;
+
+protected:
+ static LLInventoryClipboard sInstance;
+
+ LLDynamicArray<LLUUID> mObjects;
+
+public:
+ // please don't actually call these
+ LLInventoryClipboard();
+ ~LLInventoryClipboard();
+private:
+ // please don't implement these
+ LLInventoryClipboard(const LLInventoryClipboard&);
+ LLInventoryClipboard& operator=(const LLInventoryClipboard&);
+};
+
+
+#endif // LL_LLINVENTORYCLIPBOARD_H