summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Piekos <mateuszpiekos@gmail.com>2012-06-15 10:48:54 (GMT)
committerMateusz Piekos <mateuszpiekos@gmail.com>2012-06-15 10:48:54 (GMT)
commit1dc6b7f7a3d96df848edad85c0d07d99340e3a3e (patch)
treedb68d9c342293b18ce982a1eccbebde307ad0773 /Swiften/Whiteboard/Elements
parent70de68383506430c297056cd3389595fc696df1e (diff)
downloadswift-contrib-1dc6b7f7a3d96df848edad85c0d07d99340e3a3e.zip
swift-contrib-1dc6b7f7a3d96df848edad85c0d07d99340e3a3e.tar.bz2
Moved serialization of elements to WhiteboardSerializer
Diffstat (limited to 'Swiften/Whiteboard/Elements')
-rw-r--r--Swiften/Whiteboard/Elements/WhiteboardElement.h21
-rw-r--r--Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h17
-rw-r--r--Swiften/Whiteboard/Elements/WhiteboardLineElement.h47
3 files changed, 85 insertions, 0 deletions
diff --git a/Swiften/Whiteboard/Elements/WhiteboardElement.h b/Swiften/Whiteboard/Elements/WhiteboardElement.h
new file mode 100644
index 0000000..5095506
--- /dev/null
+++ b/Swiften/Whiteboard/Elements/WhiteboardElement.h
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2012 Mateusz Piękos
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+#pragma once
+
+#include <boost/shared_ptr.hpp>
+#include <Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h>
+
+namespace Swift {
+ class WhiteboardElement {
+ public:
+ typedef boost::shared_ptr<WhiteboardElement> ref;
+
+ public:
+ virtual ~WhiteboardElement() {}
+ virtual void accept(WhiteboardElementVisitor& visitor) = 0;
+ };
+}
diff --git a/Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h b/Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h
new file mode 100644
index 0000000..b5fd546
--- /dev/null
+++ b/Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2012 Mateusz Piękos
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+#pragma once
+
+namespace Swift {
+ class WhiteboardLineElement;
+
+ class WhiteboardElementVisitor {
+ public:
+ virtual ~WhiteboardElementVisitor() {}
+ virtual void visit(const WhiteboardLineElement* /*element*/) = 0;
+ };
+}
diff --git a/Swiften/Whiteboard/Elements/WhiteboardLineElement.h b/Swiften/Whiteboard/Elements/WhiteboardLineElement.h
new file mode 100644
index 0000000..b64e397
--- /dev/null
+++ b/Swiften/Whiteboard/Elements/WhiteboardLineElement.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2012 Mateusz Piękos
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+#pragma once
+
+#include <Swiften/Whiteboard/Elements/WhiteboardElement.h>
+
+namespace Swift {
+ class WhiteboardLineElement : public WhiteboardElement {
+ public:
+ typedef boost::shared_ptr<WhiteboardLineElement> ref;
+ public:
+ WhiteboardLineElement(int x1, int y1, int x2, int y2) {
+ x1_ = x1;
+ y1_ = y1;
+ x2_ = x2;
+ y2_ = y2;
+ }
+
+ int x1() const {
+ return x1_;
+ }
+
+ int y1() const {
+ return y1_;
+ }
+
+ int x2() const {
+ return x2_;
+ }
+
+ int y2() const {
+ return y2_;
+ }
+
+ void accept(WhiteboardElementVisitor& visitor) {
+ visitor.visit(this);
+ }
+
+ private:
+ int x1_, y1_, x2_, y2_;
+ std::string id;
+ };
+}