[DEV] rework signal interface (step 1 normalisation)

This commit is contained in:
2014-08-20 22:34:31 +02:00
parent 7da1beb12d
commit 03fa46bbcd
16 changed files with 93 additions and 95 deletions

View File

@@ -104,7 +104,9 @@ void BufferView::insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _sel
}
}
}
static const char* const ednEventIsSave = "edn-buffer-is-saved";
static const char* const ednEventIsModify = "edn-buffer-is-modify";
static const char* const ednEventChangeName = "edn-buffer-change-name";
void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_VERBOSE("message : " << _msg);
@@ -115,9 +117,9 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_ERROR("event on element nor exist : " << _msg.getData());
return;
}
buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventIsSave);
buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventIsModify);
buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventChangeName);
buffer->registerOnEvent(shared_from_this(), "is-save", ednEventIsSave);
buffer->registerOnEvent(shared_from_this(), "is-modify", ednEventIsModify);
buffer->registerOnEvent(shared_from_this(), "change-name", ednEventChangeName);
appl::dataBufferStruct* tmp = new appl::dataBufferStruct(_msg.getData(), buffer);
if (tmp == nullptr) {
APPL_ERROR("Allocation error of the tmp buffer list element");
@@ -131,7 +133,7 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
markToRedraw();
return;
}
if (_msg.getMessage() == appl::Buffer::eventChangeName) {
if (_msg.getMessage() == ednEventChangeName) {
for (size_t iii = 0; iii < m_list.size(); ++iii) {
if (m_list[iii] == nullptr) {
continue;
@@ -151,11 +153,11 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
markToRedraw();
return;
}
if (_msg.getMessage() == appl::Buffer::eventIsSave) {
if (_msg.getMessage() == ednEventIsSave) {
markToRedraw();
return;
}
if (_msg.getMessage() == appl::Buffer::eventIsModify) {
if (_msg.getMessage() == ednEventIsModify) {
markToRedraw();
return;
}

View File

@@ -279,9 +279,11 @@ MainWindows::~MainWindows() {
}
const char *const ednEventPopUpFileSelected = "edn-mainWindows-openSelected";
const char *const ednEventPopUpFileSaveAs = "edn-mainWindows-saveAsSelected";
static const char* const ednEventPopUpFileSelected = "edn-mainWindows-openSelected";
static const char* const ednEventPopUpFileSaveAs = "edn-mainWindows-saveAsSelected";
static const char* const ednEventIsSave = "edn-buffer-is-saved";
static const char* const ednEventIsModify = "edn-buffer-is-modify";
static const char* const ednEventChangeName = "edn-buffer-change-name";
void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
ewol::widget::Windows::onReceiveMessage(_msg);
@@ -378,9 +380,9 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
return;
}
if ( _msg.getMessage() == appl::MsgSelectNewFile
|| _msg.getMessage() == appl::Buffer::eventIsModify
|| _msg.getMessage() == appl::Buffer::eventIsSave
|| _msg.getMessage() == appl::Buffer::eventChangeName) {
|| _msg.getMessage() == ednEventIsModify
|| _msg.getMessage() == ednEventIsSave
|| _msg.getMessage() == ednEventChangeName) {
// select a new Buffer ==> change title:
std::shared_ptr<appl::Buffer> tmpp = m_bufferManager->getBufferSelected();
if (tmpp == nullptr) {
@@ -390,9 +392,9 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
}
} else {
if (_msg.getMessage() == appl::MsgSelectNewFile) {
tmpp->registerOnEvent(shared_from_this(), appl::Buffer::eventIsModify);
tmpp->registerOnEvent(shared_from_this(), appl::Buffer::eventIsSave);
tmpp->registerOnEvent(shared_from_this(), appl::Buffer::eventChangeName);
tmpp->registerOnEvent(shared_from_this(), "is-save", ednEventIsSave);
tmpp->registerOnEvent(shared_from_this(), "is-modify", ednEventIsModify);
tmpp->registerOnEvent(shared_from_this(), "change-name", ednEventChangeName);
}
std::string nameFileSystem = etk::FSNode(tmpp->getFileName()).getFileSystemName();
setTitle(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + nameFileSystem);

View File

@@ -12,15 +12,12 @@
#undef __class__
#define __class__ "TagFileList"
extern const char * const applEventCtagsListSelect = "appl-event-ctags-list-select";
extern const char * const applEventCtagsListUnSelect = "appl-event-ctags-list-un-select";
extern const char * const applEventCtagsListValidate = "appl-event-ctags-list-validate";
appl::TagFileList::TagFileList() {
appl::TagFileList::TagFileList() :
signalSelect(*this, "select"),
signalValidate(*this, "validate"),
signalUnSelect(*this, "unselect") {
addObjectType("appl::TagFileList");
m_selectedLine = -1;
addEventId(applEventCtagsListSelect);
addEventId(applEventCtagsListValidate);
setMouseLimit(1);
// Load color properties: (use file list to be generic ...)
m_colorProperty = ewol::resource::ColorFile::create("THEME:COLOR:ListFileSystem.json");
@@ -92,16 +89,16 @@ bool appl::TagFileList::onItemEvent(int32_t _IdInput, enum ewol::key::status _ty
} else {
m_selectedLine = _raw;
}
const char * event = applEventCtagsListValidate;
if (previousRaw != m_selectedLine) {
event = applEventCtagsListSelect;
}
if( m_selectedLine >= 0
&& m_selectedLine < (int64_t)m_list.size()
&& nullptr != m_list[m_selectedLine] ) {
generateEventId(event, etk::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
if (previousRaw != m_selectedLine) {
signalSelect.emit(shared_from_this(), etk::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
} else {
signalValidate.emit(shared_from_this(), etk::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
}
} else {
generateEventId(applEventCtagsListUnSelect);
signalUnSelect.emit(shared_from_this());
}
// need to regenerate the display of the list :
markToRedraw();

View File

@@ -13,11 +13,6 @@
#include <ewol/widget/List.h>
#include <ewol/resource/ColorFile.h>
extern const char * const applEventCtagsListSelect;
extern const char * const applEventCtagsListValidate;
extern const char * const applEventCtagsListUnSelect;
namespace appl {
class TagListElement {
public:
@@ -33,6 +28,10 @@ namespace appl {
};
};
class TagFileList : public ewol::widget::List {
public:
ewol::object::Signal<std::string> signalSelect;
ewol::object::Signal<std::string> signalValidate;
ewol::object::Signal<void> signalUnSelect;
private:
int32_t m_selectedLine;
std::vector<appl::TagListElement*> m_list;

View File

@@ -26,14 +26,18 @@
#define __class__ "TagFileSelection"
extern const char * const applEventctagsSelection = "appl-event-ctags-validate";
extern const char * const applEventctagsCancel = "appl-event-ctags-cancel";
static const char * const applEventctagsSelection = "appl-event-ctags-validate";
static const char * const applEventctagsCancel = "appl-event-ctags-cancel";
static const char * const applEventCtagsListValidate = "appl-event-ctags-list-validate";
static const char * const applEventCtagsListSelect = "appl-event-ctags-list-selected";
static const char * const applEventCtagsListUnSelect = "appl-event-ctags-list-un-selected";
appl::TagFileSelection::TagFileSelection() {
appl::TagFileSelection::TagFileSelection() :
signalSelect(*this, "select"),
signalCancel(*this, "cancel") {
addObjectType("appl::TagFileSelection");
addEventId(applEventctagsSelection);
addEventId(applEventctagsCancel);
}
void appl::TagFileSelection::init() {
@@ -81,9 +85,9 @@ void appl::TagFileSelection::init() {
if (nullptr == m_listTag) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
m_listTag->registerOnEvent(shared_from_this(), applEventCtagsListValidate);
m_listTag->registerOnEvent(shared_from_this(), applEventCtagsListSelect);
m_listTag->registerOnEvent(shared_from_this(), applEventCtagsListUnSelect);
m_listTag->registerOnEvent(shared_from_this(), "validate", applEventCtagsListValidate);
m_listTag->registerOnEvent(shared_from_this(), "select", applEventCtagsListSelect);
m_listTag->registerOnEvent(shared_from_this(), "unselect", applEventCtagsListUnSelect);
m_listTag->setExpand(bvec2(true,true));
m_listTag->setFill(bvec2(true,true));
mySizerVert->subWidgetAdd(m_listTag);
@@ -108,21 +112,20 @@ void appl::TagFileSelection::onReceiveMessage(const ewol::object::Message& _msg)
EWOL_INFO("ctags LIST ... : " << _msg );
if (_msg.getMessage() == applEventctagsSelection) {
if (m_eventNamed!="") {
generateEventId(applEventctagsSelection, m_eventNamed);
signalSelect.emit(shared_from_this(), m_eventNamed);
// == > Auto remove ...
autoDestroy();
}
} else if (_msg.getMessage() == applEventCtagsListSelect) {
m_eventNamed = _msg.getData();
} else if (_msg.getMessage() == applEventCtagsListUnSelect) {
m_eventNamed = "";
} else if (_msg.getMessage() == applEventCtagsListValidate) {
generateEventId(applEventctagsSelection, _msg.getData());
signalSelect.emit(shared_from_this(), _msg.getData());
// == > Auto remove ...
autoDestroy();
} else if (_msg.getMessage() == applEventctagsCancel) {
generateEventId(applEventctagsCancel, "");
signalCancel.emit(shared_from_this());
// == > Auto remove ...
autoDestroy();
}

View File

@@ -13,11 +13,11 @@
#include <ewol/widget/PopUp.h>
#include <appl/Gui/TagFileList.h>
extern const char * const applEventctagsSelection;
extern const char * const applEventctagsCancel;
namespace appl {
class TagFileSelection : public ewol::widget::PopUp {
public:
ewol::object::Signal<std::string> signalSelect;
ewol::object::Signal<void> signalCancel;
private:
std::shared_ptr<appl::TagFileList> m_listTag;
std::string m_eventNamed;

View File

@@ -28,6 +28,10 @@
int64_t processTimeLocal = (endTime - startTime); \
APPL_DEBUG(comment << (float)((float)processTimeLocal / 1000.0) << "ms");
static const char* const appl_Buffer_eventIsModify = "buffer-is-modify";
static const char* const appl_Buffer_eventSelectChange = "buffer-select-change";
appl::TextViewer::TextViewer() :
m_insertMode(false) {
addObjectType("appl::TextViewer");
@@ -634,11 +638,11 @@ void appl::TextViewer::onReceiveMessage(const ewol::object::Message& _msg) {
return;
}
// event needed even if selection of buffer is not done ...
if (_msg.getMessage() == appl::Buffer::eventIsModify) {
if (_msg.getMessage() == appl_Buffer_eventIsModify) {
markToRedraw();
return;
}
if (_msg.getMessage() == appl::Buffer::eventSelectChange) {
if (_msg.getMessage() == appl_Buffer_eventSelectChange) {
markToRedraw();
return;
}
@@ -687,8 +691,8 @@ void appl::TextViewer::onReceiveMessage(const ewol::object::Message& _msg) {
m_buffer = m_bufferManager->get(_msg.getData());
m_bufferManager->setBufferSelected(m_buffer);
if (m_buffer != nullptr) {
m_buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventIsModify);
m_buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventSelectChange);
m_buffer->registerOnEvent(shared_from_this(), "is-modify", appl_Buffer_eventIsModify);
m_buffer->registerOnEvent(shared_from_this(), "select-change", appl_Buffer_eventSelectChange);
for (auto element : m_drawingRemenber) {
if (element.first == m_buffer) {
m_originScrooled = element.second;

View File

@@ -54,7 +54,7 @@ void appl::WorkerCloseAllFile::init() {
autoDestroy();
return;
}
m_worker->registerOnEvent(shared_from_this(), appl::WorkerCloseFile::eventCloseDone, s_closeDone);
m_worker->registerOnEvent(shared_from_this(), "close-file-done", s_closeDone);
}
appl::WorkerCloseAllFile::~WorkerCloseAllFile() {
@@ -79,7 +79,7 @@ void appl::WorkerCloseAllFile::onReceiveMessage(const ewol::object::Message& _ms
autoDestroy();
return;
}
m_worker->registerOnEvent(shared_from_this(), appl::WorkerCloseFile::eventCloseDone, s_closeDone);
m_worker->registerOnEvent(shared_from_this(), "close-file-done", s_closeDone);
}
}

View File

@@ -14,19 +14,17 @@
#undef __class__
#define __class__ "WorkerCloseFile"
const char* appl::WorkerCloseFile::eventCloseDone = "close-file-done";
static const char* s_saveAsValidate = "save-as-validate";
static const char* s_saveValidate = "save-validate";
static const char* s_closeValidate = "close-validate";
static const char* s_saveAsDone = "save-as-done";
appl::WorkerCloseFile::WorkerCloseFile() :
signalCloseDone(*this, "close-file-done"),
m_buffer(nullptr),
m_worker(nullptr),
m_bufferManager(nullptr) {
addObjectType("appl::WorkerCloseFile");
addEventId(eventCloseDone);
// load buffer manager:
m_bufferManager = appl::BufferManager::create();
}
@@ -61,7 +59,7 @@ void appl::WorkerCloseFile::init(const std::string& _bufferName) {
return;
}
if (m_buffer->isModify() == false) {
generateEventId(eventCloseDone);
signalCloseDone.emit(shared_from_this());
m_buffer->destroy();
return;
}
@@ -112,7 +110,7 @@ void appl::WorkerCloseFile::onReceiveMessage(const ewol::object::Message& _msg)
if (_msg.getMessage() == s_saveAsValidate) {
m_worker = appl::WorkerSaveFile::create(m_bufferName);
if (m_worker != nullptr) {
m_worker->registerOnEvent(shared_from_this(), appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
m_worker->registerOnEvent(shared_from_this(), "save-file-done", s_saveAsDone);
}
} else if (_msg.getMessage() == s_saveValidate) {
if (m_buffer == nullptr) {
@@ -127,7 +125,7 @@ void appl::WorkerCloseFile::onReceiveMessage(const ewol::object::Message& _msg)
}
tmpWindows->displayWarningMessage("We can not save the file : <br/><i>" + m_buffer->getFileName() + "</i>");
} else {
generateEventId(eventCloseDone);
signalCloseDone.emit(shared_from_this());
}
} else if ( _msg.getMessage() == s_closeValidate
|| _msg.getMessage() == s_saveAsDone) {
@@ -136,7 +134,7 @@ void appl::WorkerCloseFile::onReceiveMessage(const ewol::object::Message& _msg)
autoDestroy();
return;
}
generateEventId(eventCloseDone);
signalCloseDone.emit(shared_from_this());
m_buffer->destroy();
m_buffer.reset();
}

View File

@@ -16,7 +16,7 @@
namespace appl {
class WorkerCloseFile : public ewol::Object {
public:
static const char* eventCloseDone;
ewol::object::Signal<void> signalCloseDone;
protected:
// note : if == "" ==> current ...
WorkerCloseFile();

View File

@@ -56,7 +56,7 @@ void appl::WorkerSaveAllFile::init() {
autoDestroy();
return;
}
m_worker->registerOnEvent(shared_from_this(), appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
m_worker->registerOnEvent(shared_from_this(), "save-file-done", s_saveAsDone);
}
appl::WorkerSaveAllFile::~WorkerSaveAllFile() {
@@ -81,7 +81,7 @@ void appl::WorkerSaveAllFile::onReceiveMessage(const ewol::object::Message& _msg
autoDestroy();
return;
}
m_worker->registerOnEvent(shared_from_this(), appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
m_worker->registerOnEvent(shared_from_this(), "save-file-done", s_saveAsDone);
}
}

View File

@@ -13,13 +13,11 @@
#undef __class__
#define __class__ "WorkerSaveFile"
const char* appl::WorkerSaveFile::eventSaveDone = "save-file-done";
static const char* s_saveAsValidate = "save-as-validate";
appl::WorkerSaveFile::WorkerSaveFile() {
appl::WorkerSaveFile::WorkerSaveFile() :
signalSaveDone(*this, "save-file-done") {
addObjectType("appl::WorkerSaveFile");
addEventId(eventSaveDone);
// load buffer manager:
m_bufferManager = appl::BufferManager::create();
}
@@ -56,7 +54,7 @@ void appl::WorkerSaveFile::init(const std::string& _bufferName, bool _forceSaveA
if (_forceSaveAs == false) {
if (tmpBuffer->hasFileName() == true) {
tmpBuffer->storeFile();
generateEventId(eventSaveDone);
signalSaveDone.emit(shared_from_this());
autoDestroy();
return;
}
@@ -79,7 +77,7 @@ void appl::WorkerSaveFile::init(const std::string& _bufferName, bool _forceSaveA
return;
}
tmpWindows->popUpWidgetPush(m_chooser);
m_chooser->registerOnEvent(shared_from_this(), ewol::widget::FileChooser::eventValidate, s_saveAsValidate);
m_chooser->registerOnEvent(shared_from_this(), "validate", s_saveAsValidate);
}
appl::WorkerSaveFile::~WorkerSaveFile() {
@@ -113,7 +111,7 @@ void appl::WorkerSaveFile::onReceiveMessage(const ewol::object::Message& _msg) {
}
tmpWindows->displayWarningMessage("We can not save the file : <br/><i>" + tmpBuffer->getFileName() + "</i>");
} else {
generateEventId(eventSaveDone);
signalSaveDone.emit(shared_from_this());
}
}
}

View File

@@ -15,7 +15,7 @@
namespace appl {
class WorkerSaveFile : public ewol::Object {
public:
static const char* eventSaveDone;
ewol::object::Signal<void> signalSaveDone;
protected:
WorkerSaveFile();
void init(const std::string& _bufferName, bool _forceSaveAs=true);