diff options
Diffstat (limited to 'Swift/Controllers/UIInterfaces')
| -rw-r--r-- | Swift/Controllers/UIInterfaces/AdHocCommandWindow.h | 14 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/AdHocCommandWindowFactory.h | 22 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/ChatListWindow.h | 42 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/ChatWindow.h | 17 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/EventWindow.h | 3 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/JoinMUCWindow.h | 1 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/JoinMUCWindowFactory.h | 3 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/LoginWindow.h | 2 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/MainWindow.h | 2 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/UIFactory.h | 4 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/XMLConsoleWidget.h | 6 | 
11 files changed, 105 insertions, 11 deletions
| diff --git a/Swift/Controllers/UIInterfaces/AdHocCommandWindow.h b/Swift/Controllers/UIInterfaces/AdHocCommandWindow.h new file mode 100644 index 0000000..f7a5d39 --- /dev/null +++ b/Swift/Controllers/UIInterfaces/AdHocCommandWindow.h @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2010 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +namespace Swift { +	class AdHocCommandWindow { +		public: +			virtual ~AdHocCommandWindow() {}; +	}; +} diff --git a/Swift/Controllers/UIInterfaces/AdHocCommandWindowFactory.h b/Swift/Controllers/UIInterfaces/AdHocCommandWindowFactory.h new file mode 100644 index 0000000..ae77180 --- /dev/null +++ b/Swift/Controllers/UIInterfaces/AdHocCommandWindowFactory.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2010-2011 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <Swift/Controllers/UIInterfaces/AdHocCommandWindow.h> +#include <Swiften/AdHoc/OutgoingAdHocCommandSession.h> + +namespace Swift { +	class AdHocCommandWindowFactory { +		public: +			virtual ~AdHocCommandWindowFactory() {} +			/** +			 * The UI should deal with the lifetime of this window (i.e. DeleteOnClose), +			 * so the result isn't returned. +			 */ +			virtual void createAdHocCommandWindow(boost::shared_ptr<OutgoingAdHocCommandSession> command) = 0; +	}; +} diff --git a/Swift/Controllers/UIInterfaces/ChatListWindow.h b/Swift/Controllers/UIInterfaces/ChatListWindow.h index a2a0874..85700cb 100644 --- a/Swift/Controllers/UIInterfaces/ChatListWindow.h +++ b/Swift/Controllers/UIInterfaces/ChatListWindow.h @@ -1,23 +1,59 @@  /* - * Copyright (c) 2010 Kevin Smith + * Copyright (c) 2010-2011 Kevin Smith   * Licensed under the GNU General Public License v3.   * See Documentation/Licenses/GPLv3.txt for more information.   */  #pragma once +#include <list>  #include <boost/shared_ptr.hpp> +#include <Swiften/MUC/MUCBookmark.h> +#include <Swiften/Elements/StatusShow.h> +#include <boost/filesystem/path.hpp> -#include "Swiften/MUC/MUCBookmark.h" +#include <Swiften/Base/boost_bsignals.h>  namespace Swift {  	class ChatListWindow {  		public: +			class Chat { +				public: +					Chat(const JID& jid, const std::string& chatName, const std::string& activity, int unreadCount, StatusShow::Type statusType, const boost::filesystem::path& avatarPath, bool isMUC, const std::string& nick = "") +					: jid(jid), chatName(chatName), activity(activity), statusType(statusType), isMUC(isMUC), nick(nick), unreadCount(unreadCount), avatarPath(avatarPath) {} +					/** Assume that nicks and other transient features aren't important for equality */ +					bool operator==(const Chat& other) const { +						return jid.toBare() == other.jid.toBare() +								&& isMUC == other.isMUC; +					}; +					void setUnreadCount(int unread) { +						unreadCount = unread; +					} +					void setStatusType(StatusShow::Type type) { +						statusType = type; +					} +					void setAvatarPath(const boost::filesystem::path& path) { +						avatarPath = path; +					} +					JID jid; +					std::string chatName; +					std::string activity; +					StatusShow::Type statusType; +					bool isMUC; +					std::string nick; +					int unreadCount; +					boost::filesystem::path avatarPath; +			};  			virtual ~ChatListWindow();  			virtual void setBookmarksEnabled(bool enabled) = 0;  			virtual void addMUCBookmark(const MUCBookmark& bookmark) = 0;  			virtual void removeMUCBookmark(const MUCBookmark& bookmark) = 0; -			virtual void clear() = 0; +			virtual void setRecents(const std::list<Chat>& recents) = 0; +			virtual void setUnreadCount(int unread) = 0; +			virtual void clearBookmarks() = 0; + +			boost::signal<void (const MUCBookmark&)> onMUCBookmarkActivated; +			boost::signal<void (const Chat&)> onRecentActivated;  	};  } diff --git a/Swift/Controllers/UIInterfaces/ChatWindow.h b/Swift/Controllers/UIInterfaces/ChatWindow.h index c7bcf1e..e84116d 100644 --- a/Swift/Controllers/UIInterfaces/ChatWindow.h +++ b/Swift/Controllers/UIInterfaces/ChatWindow.h @@ -26,6 +26,7 @@ namespace Swift {  	class ChatWindow {  		public:  			enum AckState {Pending, Received, Failed}; +			enum Tristate {Yes, No, Maybe};  			ChatWindow() {}  			virtual ~ChatWindow() {}; @@ -40,6 +41,7 @@ namespace Swift {  			virtual void addSystemMessage(const std::string& message) = 0;  			virtual void addPresenceMessage(const std::string& message) = 0;  			virtual void addErrorMessage(const std::string& message) = 0; +			virtual void replaceMessage(const std::string& message, const std::string& id, const boost::posix_time::ptime& time) = 0;  			virtual void setContactChatState(ChatState::ChatStateType state) = 0;  			virtual void setName(const std::string& name) = 0; @@ -47,6 +49,7 @@ namespace Swift {  			virtual void activate() = 0;  			virtual void setAvailableSecurityLabels(const std::vector<SecurityLabelsCatalog::Item>& labels) = 0;  			virtual void setSecurityLabelsEnabled(bool enabled) = 0; +			virtual void setCorrectionEnabled(Tristate enabled) = 0;  			virtual void setUnreadMessageCount(int count) = 0;  			virtual void convertToMUC() = 0;  //			virtual TreeWidget *getTreeWidget() = 0; @@ -58,12 +61,24 @@ namespace Swift {  			virtual void replaceLastMessage(const std::string& message) = 0;  			virtual void setAckState(const std::string& id, AckState state) = 0;  			virtual void flash() = 0; +			/** +			 * Set an alert on the window. +			 * @param alertText Description of alert (required). +			 * @param buttonText Button text to use (optional, no button is shown if empty). +			 */ +			virtual void setAlert(const std::string& alertText, const std::string& buttonText = "") = 0; +			/** +			 * Removes an alert. +			 */ +			virtual void cancelAlert() = 0;  			boost::signal<void ()> onClosed;  			boost::signal<void ()> onAllMessagesRead; -			boost::signal<void (const std::string&)> onSendMessageRequest; +			boost::signal<void (const std::string&, bool isCorrection)> onSendMessageRequest; +			boost::signal<void ()> onSendCorrectionMessageRequest;  			boost::signal<void ()> onUserTyping;  			boost::signal<void ()> onUserCancelsTyping; +			boost::signal<void ()> onAlertButtonClicked;  	};  }  #endif diff --git a/Swift/Controllers/UIInterfaces/EventWindow.h b/Swift/Controllers/UIInterfaces/EventWindow.h index e756655..3ca2c82 100644 --- a/Swift/Controllers/UIInterfaces/EventWindow.h +++ b/Swift/Controllers/UIInterfaces/EventWindow.h @@ -6,7 +6,8 @@  #pragma once -#include "boost/shared_ptr.hpp" +#include <boost/shared_ptr.hpp> +  #include "Swift/Controllers/XMPPEvents/StanzaEvent.h"  namespace Swift { diff --git a/Swift/Controllers/UIInterfaces/JoinMUCWindow.h b/Swift/Controllers/UIInterfaces/JoinMUCWindow.h index 2e3d43c..4873c9b 100644 --- a/Swift/Controllers/UIInterfaces/JoinMUCWindow.h +++ b/Swift/Controllers/UIInterfaces/JoinMUCWindow.h @@ -21,7 +21,6 @@ namespace Swift {  			virtual void setMUC(const std::string& nick) = 0;  			virtual void show() = 0; -			boost::signal<void (const JID& /* muc */, const std::string& /* nick */, bool /* autoJoin */)> onJoinMUC;  			boost::signal<void ()> onSearchMUC;  	};  } diff --git a/Swift/Controllers/UIInterfaces/JoinMUCWindowFactory.h b/Swift/Controllers/UIInterfaces/JoinMUCWindowFactory.h index 9c8bd77..cd8021b 100644 --- a/Swift/Controllers/UIInterfaces/JoinMUCWindowFactory.h +++ b/Swift/Controllers/UIInterfaces/JoinMUCWindowFactory.h @@ -9,10 +9,11 @@  #include <Swift/Controllers/UIInterfaces/JoinMUCWindow.h>  namespace Swift { +	class UIEventStream;  	class JoinMUCWindowFactory {  		public:  			virtual ~JoinMUCWindowFactory() {}; -			virtual JoinMUCWindow* createJoinMUCWindow() = 0; +			virtual JoinMUCWindow* createJoinMUCWindow(UIEventStream* uiEventStream) = 0;  	};  } diff --git a/Swift/Controllers/UIInterfaces/LoginWindow.h b/Swift/Controllers/UIInterfaces/LoginWindow.h index 61fcaa1..fcaeb42 100644 --- a/Swift/Controllers/UIInterfaces/LoginWindow.h +++ b/Swift/Controllers/UIInterfaces/LoginWindow.h @@ -27,6 +27,8 @@ namespace Swift {  			boost::signal<void (const std::string&, const std::string&, const std::string& /* certificateFile */, bool /* remember password*/, bool /* login automatically */)> onLoginRequest;  			virtual void setLoginAutomatically(bool loginAutomatically) = 0;  			virtual void quit() = 0; +			/** Disable any GUI elements that suggest saving of passwords. */ +			virtual void setRememberingAllowed(bool allowed) = 0;  			/** Blocking request whether a cert should be permanently trusted.*/  			virtual bool askUserToTrustCertificatePermanently(const std::string& message, Certificate::ref) = 0; diff --git a/Swift/Controllers/UIInterfaces/MainWindow.h b/Swift/Controllers/UIInterfaces/MainWindow.h index 2fd463b..93584e7 100644 --- a/Swift/Controllers/UIInterfaces/MainWindow.h +++ b/Swift/Controllers/UIInterfaces/MainWindow.h @@ -9,6 +9,7 @@  #include <string>  #include "Swiften/JID/JID.h"  #include "Swiften/Elements/StatusShow.h" +#include "Swiften/Elements/DiscoItems.h"  #include "Swiften/Base/boost_bsignals.h"  #include <boost/shared_ptr.hpp> @@ -33,6 +34,7 @@ namespace Swift {  			/** Must be able to cope with NULL to clear the roster */  			virtual void setRosterModel(Roster* roster) = 0;  			virtual void setConnecting() = 0; +			virtual void setAvailableAdHocCommands(const std::vector<DiscoItems::Item>& commands) = 0;  			boost::signal<void (StatusShow::Type, const std::string&)> onChangeStatusRequest;  			boost::signal<void ()> onSignOutRequest; diff --git a/Swift/Controllers/UIInterfaces/UIFactory.h b/Swift/Controllers/UIInterfaces/UIFactory.h index 9b36ac5..57f55d0 100644 --- a/Swift/Controllers/UIInterfaces/UIFactory.h +++ b/Swift/Controllers/UIInterfaces/UIFactory.h @@ -17,6 +17,7 @@  #include <Swift/Controllers/UIInterfaces/XMLConsoleWidgetFactory.h>  #include <Swift/Controllers/UIInterfaces/ProfileWindowFactory.h>  #include <Swift/Controllers/UIInterfaces/ContactEditWindowFactory.h> +#include <Swift/Controllers/UIInterfaces/AdHocCommandWindowFactory.h>  namespace Swift {  	class UIFactory :  @@ -30,7 +31,8 @@ namespace Swift {  			public UserSearchWindowFactory,   			public JoinMUCWindowFactory,  			public ProfileWindowFactory, -			public ContactEditWindowFactory { +			public ContactEditWindowFactory, +			public AdHocCommandWindowFactory {  		public:  			virtual ~UIFactory() {}  	}; diff --git a/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h b/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h index 3cd0947..caec38c 100644 --- a/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h +++ b/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h @@ -6,15 +6,15 @@  #pragma once -#include <string> +#include <Swiften/Base/SafeByteArray.h>  namespace Swift {  	class XMLConsoleWidget {  		public:  			virtual ~XMLConsoleWidget(); -			virtual void handleDataRead(const std::string& data) = 0; -			virtual void handleDataWritten(const std::string& data) = 0; +			virtual void handleDataRead(const SafeByteArray& data) = 0; +			virtual void handleDataWritten(const SafeByteArray& data) = 0;  			virtual void show() = 0;  			virtual void activate() = 0; | 
 Swift
 Swift