diff options
Diffstat (limited to 'Swiften/Whiteboard')
-rw-r--r-- | Swiften/Whiteboard/Elements/WhiteboardElement.h | 21 | ||||
-rw-r--r-- | Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h | 17 | ||||
-rw-r--r-- | Swiften/Whiteboard/Elements/WhiteboardLineElement.h | 47 | ||||
-rw-r--r-- | Swiften/Whiteboard/IncomingWhiteboardSession.h | 4 | ||||
-rw-r--r-- | Swiften/Whiteboard/WhiteboardSession.cpp | 7 | ||||
-rw-r--r-- | Swiften/Whiteboard/WhiteboardSession.h | 2 |
6 files changed, 96 insertions, 2 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; + }; +} diff --git a/Swiften/Whiteboard/IncomingWhiteboardSession.h b/Swiften/Whiteboard/IncomingWhiteboardSession.h index 3b15a49..a0d0b49 100644 --- a/Swiften/Whiteboard/IncomingWhiteboardSession.h +++ b/Swiften/Whiteboard/IncomingWhiteboardSession.h @@ -4,12 +4,12 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ +#pragma once + #include <Swiften/Whiteboard/WhiteboardSession.h> #include <boost/shared_ptr.hpp> -#pragma once - namespace Swift { class IncomingWhiteboardSession : public WhiteboardSession { public: diff --git a/Swiften/Whiteboard/WhiteboardSession.cpp b/Swiften/Whiteboard/WhiteboardSession.cpp index bfef7c3..9e4fd9f 100644 --- a/Swiften/Whiteboard/WhiteboardSession.cpp +++ b/Swiften/Whiteboard/WhiteboardSession.cpp @@ -42,6 +42,13 @@ namespace Swift { request->send(); } + void WhiteboardSession::sendElement(const WhiteboardElement::ref element) { + boost::shared_ptr<WhiteboardPayload> payload = boost::make_shared<WhiteboardPayload>(); + payload->setElement(element); + boost::shared_ptr<GenericRequest<WhiteboardPayload> > request = boost::make_shared<GenericRequest<WhiteboardPayload> >(IQ::Set, toJID_, payload, router_); + request->send(); + } + void WhiteboardSession::cancel() { boost::shared_ptr<WhiteboardPayload> payload = boost::make_shared<WhiteboardPayload>(WhiteboardPayload::SessionTerminate); boost::shared_ptr<GenericRequest<WhiteboardPayload> > request = boost::make_shared<GenericRequest<WhiteboardPayload> >(IQ::Set, toJID_, payload, router_); diff --git a/Swiften/Whiteboard/WhiteboardSession.h b/Swiften/Whiteboard/WhiteboardSession.h index 7aa67ca..fb4305c 100644 --- a/Swiften/Whiteboard/WhiteboardSession.h +++ b/Swiften/Whiteboard/WhiteboardSession.h @@ -11,6 +11,7 @@ #include <Swiften/JID/JID.h> #include <Swiften/Base/boost_bsignals.h> #include <Swiften/Queries/GenericRequest.h> +#include <Swiften/Whiteboard/Elements/WhiteboardElement.h> namespace Swift { class IQRouter; @@ -26,6 +27,7 @@ namespace Swift { virtual ~WhiteboardSession(); void handleIncomingAction(boost::shared_ptr<WhiteboardPayload> payload); void sendData(const std::string& data); + void sendElement(const WhiteboardElement::ref element); void cancel(); const JID& getTo() const; |