diff options
Diffstat (limited to 'src/net/events.cpp')
-rw-r--r-- | src/net/events.cpp | 59 |
1 files changed, 50 insertions, 9 deletions
diff --git a/src/net/events.cpp b/src/net/events.cpp index 7dbb4adb..8cc23706 100644 --- a/src/net/events.cpp +++ b/src/net/events.cpp @@ -39,9 +39,26 @@ namespace events { // +// event +// + +event::event() +{ +} + + +event::~event() +{ +} + + +// // messageCountEvent // +const char* messageCountEvent::EVENT_CLASS = "messageCountEvent"; + + messageCountEvent::messageCountEvent (ref <folder> folder, const Types type, const std::vector <int>& nums) : m_folder(folder), m_type(type) @@ -56,12 +73,18 @@ messageCountEvent::Types messageCountEvent::getType() const { return (m_type); } const std::vector <int>& messageCountEvent::getNumbers() const { return (m_nums); } -void messageCountEvent::dispatch(messageCountListener* listener) const +void messageCountEvent::dispatch(messageCountListener* listener) { if (m_type == TYPE_ADDED) - listener->messagesAdded(*this); + listener->messagesAdded(thisRef().dynamicCast <messageCountEvent>()); else - listener->messagesRemoved(*this); + listener->messagesRemoved(thisRef().dynamicCast <messageCountEvent>()); +} + + +const char* messageCountEvent::getClass() const +{ + return EVENT_CLASS; } @@ -69,6 +92,9 @@ void messageCountEvent::dispatch(messageCountListener* listener) const // messageChangedEvent // +const char* messageChangedEvent::EVENT_CLASS = "messageChangedEvent"; + + messageChangedEvent::messageChangedEvent (ref <folder> folder, const Types type, const std::vector <int>& nums) : m_folder(folder), m_type(type) @@ -83,9 +109,15 @@ messageChangedEvent::Types messageChangedEvent::getType() const { return (m_type const std::vector <int>& messageChangedEvent::getNumbers() const { return (m_nums); } -void messageChangedEvent::dispatch(messageChangedListener* listener) const +void messageChangedEvent::dispatch(messageChangedListener* listener) +{ + listener->messageChanged(thisRef().dynamicCast <messageChangedEvent>()); +} + + +const char* messageChangedEvent::getClass() const { - listener->messageChanged(*this); + return EVENT_CLASS; } @@ -93,6 +125,9 @@ void messageChangedEvent::dispatch(messageChangedListener* listener) const // folderEvent // +const char* folderEvent::EVENT_CLASS = "folderEvent"; + + folderEvent::folderEvent (ref <folder> folder, const Types type, const utility::path& oldPath, const utility::path& newPath) @@ -105,17 +140,23 @@ ref <folder> folderEvent::getFolder() const { return (m_folder); } folderEvent::Types folderEvent::getType() const { return (m_type); } -void folderEvent::dispatch(folderListener* listener) const +void folderEvent::dispatch(folderListener* listener) { switch (m_type) { - case TYPE_CREATED: listener->folderCreated(*this); break; - case TYPE_RENAMED: listener->folderRenamed(*this); break; - case TYPE_DELETED: listener->folderDeleted(*this); break; + case TYPE_CREATED: listener->folderCreated(thisRef().dynamicCast <folderEvent>()); break; + case TYPE_RENAMED: listener->folderRenamed(thisRef().dynamicCast <folderEvent>()); break; + case TYPE_DELETED: listener->folderDeleted(thisRef().dynamicCast <folderEvent>()); break; } } +const char* folderEvent::getClass() const +{ + return EVENT_CLASS; +} + + } // events } // net } // vmime |