diff options
author | Catalin Badea <catalin.badea392@gmail.com> | 2012-05-24 16:29:25 (GMT) |
---|---|---|
committer | Cătălin Badea <catalin.badea392@gmail.com> | 2012-08-11 15:45:27 (GMT) |
commit | c09901d69a0b606d8f16a3496c0c4f24c3c7aa1b (patch) | |
tree | dc6b472d914413b372a6cefdab4cef2eae25aafb /Swift/Controllers/HistoryController.cpp | |
parent | f799cce739f89225258dfbd2e0099e8a71d99af4 (diff) | |
download | swift-contrib-c09901d69a0b606d8f16a3496c0c4f24c3c7aa1b.zip swift-contrib-c09901d69a0b606d8f16a3496c0c4f24c3c7aa1b.tar.bz2 |
Added History window based code: controller, events, interface and menu entry.
Diffstat (limited to 'Swift/Controllers/HistoryController.cpp')
-rw-r--r-- | Swift/Controllers/HistoryController.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Swift/Controllers/HistoryController.cpp b/Swift/Controllers/HistoryController.cpp new file mode 100644 index 0000000..2aa1b6e --- /dev/null +++ b/Swift/Controllers/HistoryController.cpp @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2012 Catalin Badea + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include "Swift/Controllers/HistoryController.h" + +#include "Swift/Controllers/UIInterfaces/HistoryWindowFactory.h" +#include "Swift/Controllers/UIEvents/RequestHistoryUIEvent.h" + +namespace Swift { + +HistoryController::HistoryController(UIEventStream* uiEventStream, HistoryWindowFactory* historyWindowFactory) : historyWindowFactory_(historyWindowFactory), historyWindow_(NULL) { + uiEventStream->onUIEvent.connect(boost::bind(&HistoryController::handleUIEvent, this, _1)); +} + +HistoryController::~HistoryController() { + delete historyWindow_; +} + +void HistoryController::handleUIEvent(boost::shared_ptr<UIEvent> rawEvent) { + boost::shared_ptr<RequestHistoryUIEvent> event = boost::dynamic_pointer_cast<RequestHistoryUIEvent>(rawEvent); + if (event != NULL) { + if (historyWindow_ == NULL) { + historyWindow_ = historyWindowFactory_->createHistoryWindow(); + } + historyWindow_->show(); + historyWindow_->activate(); + } +} + +} |