2013-11-23 18:30:52 +01:00
|
|
|
/**
|
|
|
|
* @author Edouard DUPIN
|
|
|
|
*
|
|
|
|
* @copyright 2010, Edouard DUPIN, all right reserved
|
|
|
|
*
|
|
|
|
* @license GPL v3 (see license file)
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <appl/debug.h>
|
|
|
|
#include <appl/global.h>
|
|
|
|
#include <appl/Gui/ViewerManager.h>
|
|
|
|
#include <appl/Gui/TextViewer.h>
|
2013-12-13 21:50:40 +01:00
|
|
|
#include <ewol/object/Object.h>
|
|
|
|
#include <ewol/object/Manager.h>
|
|
|
|
#include <ewol/resource/Manager.h>
|
2013-11-23 18:30:52 +01:00
|
|
|
|
|
|
|
#undef __class__
|
|
|
|
#define __class__ "ViewerManager"
|
|
|
|
|
2014-05-15 21:37:39 +02:00
|
|
|
appl::ViewerManager::ViewerManager() :
|
2013-11-23 18:30:52 +01:00
|
|
|
ewol::Resource("???ViewerManager???"),
|
2014-06-05 22:01:24 +02:00
|
|
|
m_viewer(nullptr) {
|
2013-11-23 18:30:52 +01:00
|
|
|
addObjectType("appl::ViewerManager");
|
|
|
|
// load buffer manager:
|
|
|
|
m_bufferManager = appl::BufferManager::keep();
|
|
|
|
}
|
|
|
|
|
2014-05-15 21:37:39 +02:00
|
|
|
appl::ViewerManager::~ViewerManager() {
|
2014-05-20 21:35:41 +02:00
|
|
|
|
2013-11-23 18:30:52 +01:00
|
|
|
}
|
|
|
|
|
2014-05-20 21:35:41 +02:00
|
|
|
bool appl::ViewerManager::isLastSelected(const ewol::object::Shared<appl::TextViewer>& _viewer) {
|
2014-05-19 22:30:39 +02:00
|
|
|
return m_viewer == _viewer;
|
|
|
|
}
|
|
|
|
|
2014-05-20 21:35:41 +02:00
|
|
|
void appl::ViewerManager::setViewerSelected(const ewol::object::Shared<appl::TextViewer>& _viewer, const ewol::object::Shared<appl::Buffer>& _buffer) {
|
2013-11-23 18:30:52 +01:00
|
|
|
if (m_viewer == _viewer) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
m_viewer = _viewer;
|
2014-06-05 22:01:24 +02:00
|
|
|
if (m_bufferManager != nullptr) {
|
2013-11-23 18:30:52 +01:00
|
|
|
m_bufferManager->setBufferSelected(_buffer);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-12-13 21:50:40 +01:00
|
|
|
void appl::ViewerManager::onReceiveMessage(const ewol::object::Message& _msg) {
|
2013-11-23 18:30:52 +01:00
|
|
|
APPL_DEBUG("receive message !!! " << _msg);
|
|
|
|
}
|
|
|
|
|
2014-05-19 22:30:39 +02:00
|
|
|
void appl::ViewerManager::onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject) {
|
2013-11-23 18:30:52 +01:00
|
|
|
ewol::Resource:: onObjectRemove(_removeObject);
|
|
|
|
if (_removeObject == m_viewer) {
|
2014-05-19 22:30:39 +02:00
|
|
|
m_viewer.reset();
|
2013-11-23 18:30:52 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-05-20 21:35:41 +02:00
|
|
|
ewol::object::Shared<appl::ViewerManager> appl::ViewerManager::keep() {
|
2013-11-23 18:30:52 +01:00
|
|
|
//EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
|
2014-05-20 21:35:41 +02:00
|
|
|
ewol::object::Shared<appl::ViewerManager> object = ewol::dynamic_pointer_cast<appl::ViewerManager>(getManager().localKeep("???ViewerManager???"));
|
2014-06-05 22:01:24 +02:00
|
|
|
if (nullptr != object) {
|
2013-11-23 18:30:52 +01:00
|
|
|
return object;
|
|
|
|
}
|
|
|
|
// this element create a new one every time ....
|
|
|
|
EWOL_INFO("CREATE : appl::ViewerManager: ???ViewerManager???");
|
2014-05-20 21:35:41 +02:00
|
|
|
object = ewol::object::makeShared(new appl::ViewerManager());
|
2014-06-05 22:01:24 +02:00
|
|
|
if (nullptr == object) {
|
2013-11-23 18:30:52 +01:00
|
|
|
EWOL_ERROR("allocation error of a resource : ???ViewerManager???");
|
2014-06-05 22:01:24 +02:00
|
|
|
return nullptr;
|
2013-11-23 18:30:52 +01:00
|
|
|
}
|
|
|
|
getManager().localAdd(object);
|
|
|
|
return object;
|
|
|
|
}
|