diff options
author | Maciej Niedzielski <machekku@uaznia.net> | 2012-12-21 19:58:24 (GMT) |
---|---|---|
committer | Maciej Niedzielski <machekku@uaznia.net> | 2013-01-09 12:34:06 (GMT) |
commit | 4ed137080a3d80d20a2cead47f741e3dd2f2d42e (patch) | |
tree | f030f0d9b8e61733de4e2bec9cef7715d380af8f /Swift/Controllers/HighlightEditorController.cpp | |
parent | a8e2d82a1be5e94ac39523fc3e0606fcc261e913 (diff) | |
download | swift-4ed137080a3d80d20a2cead47f741e3dd2f2d42e.zip swift-4ed137080a3d80d20a2cead47f741e3dd2f2d42e.tar.bz2 |
Highlighting support
Change-Id: Ib6bd42cecff018998117bc1e7db279a62b3af434
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Diffstat (limited to 'Swift/Controllers/HighlightEditorController.cpp')
-rw-r--r-- | Swift/Controllers/HighlightEditorController.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Swift/Controllers/HighlightEditorController.cpp b/Swift/Controllers/HighlightEditorController.cpp new file mode 100644 index 0000000..899e4bb --- /dev/null +++ b/Swift/Controllers/HighlightEditorController.cpp @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2012 Maciej Niedzielski + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include <boost/bind.hpp> + +#include <Swift/Controllers/HighlightEditorController.h> +#include <Swift/Controllers/UIInterfaces/HighlightEditorWidget.h> +#include <Swift/Controllers/UIInterfaces/HighlightEditorWidgetFactory.h> +#include <Swift/Controllers/UIEvents/RequestHighlightEditorUIEvent.h> +#include <Swift/Controllers/UIEvents/UIEventStream.h> + +namespace Swift { + +HighlightEditorController::HighlightEditorController(UIEventStream* uiEventStream, HighlightEditorWidgetFactory* highlightEditorWidgetFactory, HighlightManager* highlightManager) : highlightEditorWidgetFactory_(highlightEditorWidgetFactory), highlightEditorWidget_(NULL), highlightManager_(highlightManager) +{ + uiEventStream->onUIEvent.connect(boost::bind(&HighlightEditorController::handleUIEvent, this, _1)); +} + +HighlightEditorController::~HighlightEditorController() +{ + delete highlightEditorWidget_; + highlightEditorWidget_ = NULL; +} + +void HighlightEditorController::handleUIEvent(boost::shared_ptr<UIEvent> rawEvent) +{ + boost::shared_ptr<RequestHighlightEditorUIEvent> event = boost::dynamic_pointer_cast<RequestHighlightEditorUIEvent>(rawEvent); + if (event) { + if (!highlightEditorWidget_) { + highlightEditorWidget_ = highlightEditorWidgetFactory_->createHighlightEditorWidget(); + highlightEditorWidget_->setHighlightManager(highlightManager_); + } + highlightEditorWidget_->show(); + } +} + +} |