[DEV] update new object interface & rework global message (start)
This commit is contained in:
@@ -104,10 +104,6 @@ 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);
|
||||
ewol::widget::List::onReceiveMessage(_msg);
|
||||
@@ -117,9 +113,9 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
APPL_ERROR("event on element nor exist : " << _msg.getData());
|
||||
return;
|
||||
}
|
||||
buffer->registerOnEvent(shared_from_this(), "is-save", ednEventIsSave);
|
||||
buffer->registerOnEvent(shared_from_this(), "is-modify", ednEventIsModify);
|
||||
buffer->registerOnEvent(shared_from_this(), "change-name", ednEventChangeName);
|
||||
buffer->signalIsSave.bind(shared_from_this(), &BufferView::onCallbackIsSave);
|
||||
buffer->signalIsModify.bind(shared_from_this(), &BufferView::onCallbackIsModify);
|
||||
buffer->signalChangeName.bind(shared_from_this(), &BufferView::onCallbackChangeName);
|
||||
appl::dataBufferStruct* tmp = new appl::dataBufferStruct(_msg.getData(), buffer);
|
||||
if (tmp == nullptr) {
|
||||
APPL_ERROR("Allocation error of the tmp buffer list element");
|
||||
@@ -133,34 +129,6 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
markToRedraw();
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == ednEventChangeName) {
|
||||
for (size_t iii = 0; iii < m_list.size(); ++iii) {
|
||||
if (m_list[iii] == nullptr) {
|
||||
continue;
|
||||
}
|
||||
if (m_list[iii]->m_bufferName != m_list[iii]->m_buffer->getFileName()) {
|
||||
m_list[iii]->m_bufferName = m_list[iii]->m_buffer->getFileName();
|
||||
if (m_openOrderMode == false) {
|
||||
// re-order the fine in the correct position
|
||||
appl::dataBufferStruct* tmp = m_list[iii];
|
||||
m_list[iii] = nullptr;
|
||||
m_list.erase(m_list.begin() + iii);
|
||||
insertAlphabetic(tmp, ((int64_t)iii == m_selectedID));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
markToRedraw();
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == ednEventIsSave) {
|
||||
markToRedraw();
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == ednEventIsModify) {
|
||||
markToRedraw();
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == appl::MsgSelectChange) {
|
||||
m_selectedID = -1;
|
||||
std::shared_ptr<appl::Buffer> tmpBuffer;
|
||||
@@ -222,6 +190,31 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
}
|
||||
}
|
||||
|
||||
void BufferView::onCallbackChangeName() {
|
||||
for (size_t iii = 0; iii < m_list.size(); ++iii) {
|
||||
if (m_list[iii] == nullptr) {
|
||||
continue;
|
||||
}
|
||||
if (m_list[iii]->m_bufferName != m_list[iii]->m_buffer->getFileName()) {
|
||||
m_list[iii]->m_bufferName = m_list[iii]->m_buffer->getFileName();
|
||||
if (m_openOrderMode == false) {
|
||||
// re-order the fine in the correct position
|
||||
appl::dataBufferStruct* tmp = m_list[iii];
|
||||
m_list[iii] = nullptr;
|
||||
m_list.erase(m_list.begin() + iii);
|
||||
insertAlphabetic(tmp, ((int64_t)iii == m_selectedID));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
markToRedraw();
|
||||
}
|
||||
void BufferView::onCallbackIsSave() {
|
||||
markToRedraw();
|
||||
}
|
||||
void BufferView::onCallbackIsModify() {
|
||||
markToRedraw();
|
||||
}
|
||||
|
||||
etk::Color<> BufferView::getBasicBG() {
|
||||
return (*m_paintingProperties)[m_colorBackground1].getForeground();
|
||||
|
@@ -69,6 +69,10 @@ class BufferView : public ewol::widget::List {
|
||||
virtual uint32_t getNuberOfRaw();
|
||||
virtual bool getElement(int32_t _colomn, int32_t _raw, std::string& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg);
|
||||
virtual bool onItemEvent(int32_t _IdInput, enum ewol::key::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y);
|
||||
private: //callback function:
|
||||
void onCallbackChangeName();
|
||||
void onCallbackIsSave();
|
||||
void onCallbackIsModify();
|
||||
};
|
||||
|
||||
|
||||
|
@@ -279,7 +279,6 @@ MainWindows::~MainWindows() {
|
||||
}
|
||||
|
||||
|
||||
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";
|
||||
@@ -310,7 +309,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
}
|
||||
// apply widget pop-up ...
|
||||
popUpWidgetPush(tmpWidget);
|
||||
tmpWidget->registerOnEvent(shared_from_this(), "validate", ednEventPopUpFileSelected);
|
||||
tmpWidget->signalValidate.bind(shared_from_this(), &MainWindows::onCallbackPopUpFileSelected);
|
||||
} else if (_msg.getMessage() == ednMsgProperties) {
|
||||
// Request the parameter GUI
|
||||
std::shared_ptr<ewol::widget::Parameter> tmpWidget = ewol::widget::Parameter::create();
|
||||
@@ -379,36 +378,16 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
APPL_ERROR("can not call unexistant buffer manager ... ");
|
||||
return;
|
||||
}
|
||||
if ( _msg.getMessage() == appl::MsgSelectNewFile
|
||||
|| _msg.getMessage() == ednEventIsModify
|
||||
|| _msg.getMessage() == ednEventIsSave
|
||||
|| _msg.getMessage() == ednEventChangeName) {
|
||||
// select a new Buffer ==> change title:
|
||||
if (_msg.getMessage() == appl::MsgSelectNewFile) {
|
||||
onCallbackTitleUpdate();
|
||||
std::shared_ptr<appl::Buffer> tmpp = m_bufferManager->getBufferSelected();
|
||||
if (tmpp == nullptr) {
|
||||
setTitle("Edn");
|
||||
if (m_widgetLabelFileName != nullptr) {
|
||||
m_widgetLabelFileName->setLabel("");
|
||||
}
|
||||
} else {
|
||||
if (_msg.getMessage() == appl::MsgSelectNewFile) {
|
||||
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);
|
||||
if (m_widgetLabelFileName != nullptr) {
|
||||
m_widgetLabelFileName->setLabel(nameFileSystem + (tmpp->isModify()==true?" *":""));
|
||||
}
|
||||
if (tmpp != nullptr) {
|
||||
tmpp->signalIsSave.bind(shared_from_this(), &MainWindows::onCallbackTitleUpdate);
|
||||
tmpp->signalIsModify.bind(shared_from_this(), &MainWindows::onCallbackTitleUpdate);
|
||||
tmpp->signalChangeName.bind(shared_from_this(), &MainWindows::onCallbackTitleUpdate);
|
||||
}
|
||||
|
||||
|
||||
} else if (_msg.getMessage() == ednMsgGuiNew) {
|
||||
m_bufferManager->createNewBuffer();
|
||||
} else if (_msg.getMessage() == ednEventPopUpFileSelected) {
|
||||
APPL_DEBUG("Request opening the file : " << _msg.getData());
|
||||
m_bufferManager->open(_msg.getData());
|
||||
} else if (_msg.getMessage() == ednMsgGuiSave) {
|
||||
APPL_DEBUG("Request saving the file : " << _msg.getData());
|
||||
if (etk::tolower(_msg.getData()) == "current") {
|
||||
@@ -475,6 +454,31 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
}
|
||||
return;
|
||||
}
|
||||
void MainWindows::onCallbackPopUpFileSelected(const std::string& _value) {
|
||||
APPL_DEBUG("Request opening the file : " << _value);
|
||||
m_bufferManager->open(_value);
|
||||
}
|
||||
|
||||
void MainWindows::onCallbackTitleUpdate() {
|
||||
if (m_bufferManager == nullptr) {
|
||||
APPL_ERROR("can not call unexistant buffer manager ... ");
|
||||
return;
|
||||
}
|
||||
// select a new Buffer ==> change title:
|
||||
std::shared_ptr<appl::Buffer> tmpp = m_bufferManager->getBufferSelected();
|
||||
if (tmpp == nullptr) {
|
||||
setTitle("Edn");
|
||||
if (m_widgetLabelFileName != nullptr) {
|
||||
m_widgetLabelFileName->setLabel("");
|
||||
}
|
||||
} else {
|
||||
std::string nameFileSystem = etk::FSNode(tmpp->getFileName()).getFileSystemName();
|
||||
setTitle(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + nameFileSystem);
|
||||
if (m_widgetLabelFileName != nullptr) {
|
||||
m_widgetLabelFileName->setLabel(nameFileSystem + (tmpp->isModify()==true?" *":""));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindows::saveAsPopUp(const std::shared_ptr<appl::Buffer>& _buffer) {
|
||||
if (_buffer == nullptr) {
|
||||
@@ -496,24 +500,24 @@ void MainWindows::closeNotSavedFile(const std::shared_ptr<appl::Buffer>& _buffer
|
||||
}
|
||||
tmpPopUp->setTitle("<bold>Close un-saved file:</bold>");
|
||||
tmpPopUp->setComment("The file named : <i>\"" + _buffer->getFileName() + "\"</i> is curently modify. <br/>If you don't saves these modifications,<br/>they will be definitly lost...");
|
||||
std::shared_ptr<ewol::Widget> bt = nullptr;
|
||||
std::shared_ptr<ewol::widget::Button> bt = nullptr;
|
||||
if (_buffer->hasFileName() == true) {
|
||||
bt = tmpPopUp->addButton("Save", true);
|
||||
if (bt != nullptr) {
|
||||
// TODO : The element is removed before beeing pressed
|
||||
bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestSaveFile, _buffer->getFileName());
|
||||
bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
|
||||
// TODO : bt->signalPressed.bind(shared_from_this(), mainWindowsRequestSaveFile, _buffer->getFileName());
|
||||
// TODO : bt->signalPressed.bind(shared_from_this(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
|
||||
}
|
||||
}
|
||||
bt = tmpPopUp->addButton("Save As", true);
|
||||
if (bt != nullptr) {
|
||||
bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestSaveFileAs, _buffer->getFileName());
|
||||
//bt->registerOnEvent(this, "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
|
||||
// TODO : bt->signalPressed.bind(shared_from_this(), mainWindowsRequestSaveFileAs, _buffer->getFileName());
|
||||
//bt->signalPressed.bind(shared_from_this(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
|
||||
// TODO : Request the close when saved ...
|
||||
}
|
||||
bt = tmpPopUp->addButton("Close", true);
|
||||
if (bt != nullptr) {
|
||||
bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
|
||||
// TODO : bt->signalPressed.bind(shared_from_this(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
|
||||
}
|
||||
tmpPopUp->addButton("Cancel", true);
|
||||
tmpPopUp->setRemoveOnExternClick(true);
|
||||
|
@@ -41,6 +41,9 @@ class MainWindows : public ewol::widget::Windows {
|
||||
void closeNotSavedFile(const std::shared_ptr<appl::Buffer>& _buffer);
|
||||
public: // Derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
private:
|
||||
void onCallbackPopUpFileSelected(const std::string& _value);
|
||||
void onCallbackTitleUpdate();
|
||||
};
|
||||
|
||||
|
||||
|
@@ -12,6 +12,8 @@
|
||||
#include "appl/Gui/TextViewer.h"
|
||||
#include "appl/Gui/MainWindows.h"
|
||||
#include "appl/globalMsg.h"
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/Entry.h>
|
||||
|
||||
|
||||
#undef __class__
|
||||
@@ -38,23 +40,23 @@ void appl::widget::Search::init() {
|
||||
ewol::widget::Composer::init(ewol::widget::Composer::file, "DATA:GUI-Search.xml");
|
||||
m_viewerManager = appl::ViewerManager::create();
|
||||
// link event
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:close", "pressed", l_eventHideBt);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:search-entry", "modify", l_eventSearchEntry);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:search-entry", "enter", l_eventSearchEntryEnter);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:search", "pressed", l_eventSearchBt);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:replace-entry", "modify", l_eventReplaceEntry);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:replace-entry", "enter", l_eventReplaceEntryEnter);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:replace", "pressed", l_eventReplaceBt);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:case", "value", l_eventCaseCb);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:wrap", "value", l_eventWrapCb);
|
||||
registerOnEventNameWidget(shared_from_this(), "SEARCH:up-down", "value", l_eventForwardCb);
|
||||
subBind(ewol::widget::Button, "SEARCH:close", signalPressed, shared_from_this(), &appl::widget::Search::OnCallbackHide);
|
||||
subBind(ewol::widget::Entry, "SEARCH:search-entry", signalModify, shared_from_this(), &appl::widget::Search::OnCallbackSearchValue);
|
||||
subBind(ewol::widget::Entry, "SEARCH:search-entry", signalEnter, shared_from_this(), &appl::widget::Search::OnCallbackSearchEntryValidate);
|
||||
subBind(ewol::widget::Button, "SEARCH:search", signalPressed, shared_from_this(), &appl::widget::Search::OnCallbackSearch);
|
||||
subBind(ewol::widget::Entry, "SEARCH:replace-entry", signalModify, shared_from_this(), &appl::widget::Search::OnCallbackReplaceValue);
|
||||
subBind(ewol::widget::Entry, "SEARCH:replace-entry", signalEnter, shared_from_this(), &appl::widget::Search::OnCallbackReplaceEntryValidate);
|
||||
subBind(ewol::widget::Button, "SEARCH:replace", signalPressed, shared_from_this(), &appl::widget::Search::OnCallbackReplace);
|
||||
subBind(ewol::widget::Button, "SEARCH:case", signalValue, shared_from_this(), &appl::widget::Search::OnCallbackCase);
|
||||
subBind(ewol::widget::Button, "SEARCH:wrap", signalValue, shared_from_this(), &appl::widget::Search::OnCallbackWrap);
|
||||
subBind(ewol::widget::Button, "SEARCH:up-down", signalValue, shared_from_this(), &appl::widget::Search::OnCallbackForward);
|
||||
// set default properties
|
||||
parameterSetOnWidgetNamed("SEARCH:case", "value", etk::to_string(m_caseSensitive));
|
||||
parameterSetOnWidgetNamed("SEARCH:wrap", "value", etk::to_string(m_wrap));
|
||||
parameterSetOnWidgetNamed("SEARCH:up-down", "value", etk::to_string(m_forward));
|
||||
// get widget
|
||||
m_searchEntry = std::dynamic_pointer_cast<ewol::widget::Entry>(getWidgetNamed("SEARCH:search-entry"));
|
||||
m_replaceEntry = std::dynamic_pointer_cast<ewol::widget::Entry>(getWidgetNamed("SEARCH:replace-entry"));
|
||||
m_searchEntry = std::dynamic_pointer_cast<ewol::widget::Entry>(getSubObjectNamed("SEARCH:search-entry"));
|
||||
m_replaceEntry = std::dynamic_pointer_cast<ewol::widget::Entry>(getSubObjectNamed("SEARCH:replace-entry"));
|
||||
// Display and hide event:
|
||||
registerMultiCast(ednMsgGuiSearch);
|
||||
// basicly hiden ...
|
||||
@@ -118,30 +120,45 @@ void appl::widget::Search::replace() {
|
||||
viewer->replace(m_replaceData);
|
||||
}
|
||||
|
||||
void appl::widget::Search::OnCallbackHide() {
|
||||
hide();
|
||||
}
|
||||
void appl::widget::Search::OnCallbackSearchValue(const std::string& _value) {
|
||||
m_searchData = etk::to_u32string(_value);
|
||||
}
|
||||
void appl::widget::Search::OnCallbackSearch() {
|
||||
find();
|
||||
}
|
||||
void appl::widget::Search::OnCallbackSearchEntryValidate(const std::string& _value) {
|
||||
m_searchData = etk::to_u32string(_value);
|
||||
find();
|
||||
}
|
||||
void appl::widget::Search::OnCallbackReplaceValue(const std::string& _value) {
|
||||
m_replaceData = etk::to_u32string(_value);
|
||||
}
|
||||
void appl::widget::Search::OnCallbackReplace() {
|
||||
replace();
|
||||
find();
|
||||
}
|
||||
void appl::widget::Search::OnCallbackReplaceEntryValidate(const std::string& _value) {
|
||||
m_replaceData = etk::to_u32string(_value);
|
||||
replace();
|
||||
find();
|
||||
}
|
||||
void appl::widget::Search::OnCallbackCase(const bool& _value) {
|
||||
m_caseSensitive = _value;
|
||||
}
|
||||
void appl::widget::Search::OnCallbackWrap(const bool& _value) {
|
||||
m_wrap = _value;
|
||||
}
|
||||
void appl::widget::Search::OnCallbackForward(const bool& _value) {
|
||||
m_forward = _value;
|
||||
}
|
||||
|
||||
void appl::widget::Search::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
ewol::widget::Composer::onReceiveMessage(_msg);
|
||||
APPL_INFO("Search receive message : " << _msg);
|
||||
if ( _msg.getMessage() == l_eventSearchEntry) {
|
||||
m_searchData = etk::to_u32string(_msg.getData());
|
||||
} else if ( _msg.getMessage() == l_eventSearchEntryEnter
|
||||
|| _msg.getMessage() == l_eventSearchBt) {
|
||||
find();
|
||||
} else if ( _msg.getMessage() == l_eventReplaceEntry) {
|
||||
m_replaceData = etk::to_u32string(_msg.getData());
|
||||
} else if ( _msg.getMessage() == l_eventReplaceEntryEnter
|
||||
|| _msg.getMessage() == l_eventReplaceBt) {
|
||||
replace();
|
||||
find();
|
||||
} else if ( _msg.getMessage() == l_eventCaseCb) {
|
||||
m_caseSensitive = etk::string_to_bool(_msg.getData());
|
||||
} else if ( _msg.getMessage() == l_eventWrapCb) {
|
||||
m_wrap = etk::string_to_bool(_msg.getData());
|
||||
} else if ( _msg.getMessage() == l_eventForwardCb) {
|
||||
m_forward = etk::string_to_bool(_msg.getData());
|
||||
} else if ( _msg.getMessage() == l_eventHideBt) {
|
||||
hide();
|
||||
} else if ( _msg.getMessage() == ednMsgGuiSearch) {
|
||||
if ( _msg.getMessage() == ednMsgGuiSearch) {
|
||||
if (true == isHide()) {
|
||||
show();
|
||||
if (m_searchEntry!= nullptr) {
|
||||
|
@@ -44,6 +44,17 @@ namespace appl {
|
||||
void replace();
|
||||
public: // derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
private: // callback functions
|
||||
void OnCallbackHide();
|
||||
void OnCallbackSearchValue(const std::string& _value);
|
||||
void OnCallbackSearch();
|
||||
void OnCallbackSearchEntryValidate(const std::string& _value);
|
||||
void OnCallbackReplaceValue(const std::string& _value);
|
||||
void OnCallbackReplace();
|
||||
void OnCallbackReplaceEntryValidate(const std::string& _value);
|
||||
void OnCallbackCase(const bool& _value);
|
||||
void OnCallbackWrap(const bool& _value);
|
||||
void OnCallbackForward(const bool& _value);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@@ -78,16 +78,16 @@ void appl::TagFileSelection::init() {
|
||||
compose->setExpand(bvec2(true,false));
|
||||
compose->setFill(bvec2(true,true));
|
||||
mySizerVert->subWidgetAdd(compose);
|
||||
compose->registerOnEventNameWidget(shared_from_this(), "PLUGIN-CTAGS-jump", "pressed", applEventctagsSelection);
|
||||
compose->registerOnEventNameWidget(shared_from_this(), "PLUGIN-CTAGS-cancel", "pressed", applEventctagsCancel);
|
||||
externSubBind(compose, ewol::widget::Button, "PLUGIN-CTAGS-jump", signalPressed, shared_from_this(), &appl::TagFileSelection::onCallbackCtagsSelection);
|
||||
externSubBind(compose, ewol::widget::Button, "PLUGIN-CTAGS-cancel", signalPressed, shared_from_this(), &appl::TagFileSelection::onCallbackCtagsCancel);
|
||||
|
||||
m_listTag = appl::TagFileList::create();
|
||||
if (nullptr == m_listTag) {
|
||||
EWOL_ERROR("Can not allocate widget == > display might be in error");
|
||||
} else {
|
||||
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->signalValidate.bind(shared_from_this(), &appl::TagFileSelection::onCallbackCtagsListValidate);
|
||||
m_listTag->signalSelect.bind(shared_from_this(), &appl::TagFileSelection::onCallbackCtagsListSelect);
|
||||
m_listTag->signalUnSelect.bind(shared_from_this(), &appl::TagFileSelection::onCallbackCtagsListUnSelect);
|
||||
m_listTag->setExpand(bvec2(true,true));
|
||||
m_listTag->setFill(bvec2(true,true));
|
||||
mySizerVert->subWidgetAdd(m_listTag);
|
||||
@@ -108,29 +108,34 @@ appl::TagFileSelection::~TagFileSelection() {
|
||||
|
||||
}
|
||||
|
||||
void appl::TagFileSelection::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
EWOL_INFO("ctags LIST ... : " << _msg );
|
||||
if (_msg.getMessage() == applEventctagsSelection) {
|
||||
if (m_eventNamed!="") {
|
||||
signalSelect.emit(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) {
|
||||
signalSelect.emit(_msg.getData());
|
||||
// == > Auto remove ...
|
||||
autoDestroy();
|
||||
} else if (_msg.getMessage() == applEventctagsCancel) {
|
||||
signalCancel.emit();
|
||||
void appl::TagFileSelection::onCallbackCtagsSelection() {
|
||||
if (m_eventNamed!="") {
|
||||
signalSelect.emit(m_eventNamed);
|
||||
// == > Auto remove ...
|
||||
autoDestroy();
|
||||
}
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
void appl::TagFileSelection::onCallbackCtagsCancel() {
|
||||
signalCancel.emit();
|
||||
// == > Auto remove ...
|
||||
autoDestroy();
|
||||
}
|
||||
|
||||
void appl::TagFileSelection::onCallbackCtagsListValidate(const std::string& _value) {
|
||||
signalSelect.emit(_value);
|
||||
// == > Auto remove ...
|
||||
autoDestroy();
|
||||
}
|
||||
|
||||
void appl::TagFileSelection::onCallbackCtagsListSelect(const std::string& _value) {
|
||||
m_eventNamed = _value;
|
||||
}
|
||||
|
||||
void appl::TagFileSelection::onCallbackCtagsListUnSelect() {
|
||||
m_eventNamed = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -33,8 +33,12 @@ namespace appl {
|
||||
* @param[in] jump line id
|
||||
*/
|
||||
void addCtagsNewItem(std::string file, int32_t line);
|
||||
public: // herited function
|
||||
void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
public: // callback function
|
||||
void onCallbackCtagsSelection();
|
||||
void onCallbackCtagsCancel();
|
||||
void onCallbackCtagsListValidate(const std::string& _value);
|
||||
void onCallbackCtagsListSelect(const std::string& _value);
|
||||
void onCallbackCtagsListUnSelect();
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -637,15 +637,6 @@ void appl::TextViewer::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
markToRedraw();
|
||||
return;
|
||||
}
|
||||
// event needed even if selection of buffer is not done ...
|
||||
if (_msg.getMessage() == appl_Buffer_eventIsModify) {
|
||||
markToRedraw();
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == appl_Buffer_eventSelectChange) {
|
||||
markToRedraw();
|
||||
return;
|
||||
}
|
||||
// If not the last buffer selected, then no event parsing ...
|
||||
if (isSelectedLast() == false) {
|
||||
return;
|
||||
@@ -671,7 +662,7 @@ void appl::TextViewer::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
if (_msg.getMessage() == appl::MsgSelectNewFile) {
|
||||
// reset scroll:
|
||||
if (m_buffer != nullptr) {
|
||||
m_buffer->unRegisterOnEvent(shared_from_this());
|
||||
m_buffer->unBindAll(shared_from_this());
|
||||
bool needAdd = true;
|
||||
for (size_t iii=0; iii<m_drawingRemenber.size(); ++iii) {
|
||||
if (m_drawingRemenber[iii].first == m_buffer) {
|
||||
@@ -691,8 +682,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(), "is-modify", appl_Buffer_eventIsModify);
|
||||
m_buffer->registerOnEvent(shared_from_this(), "select-change", appl_Buffer_eventSelectChange);
|
||||
m_buffer->signalIsModify.bind(shared_from_this(), &appl::TextViewer::onCallbackIsModify);
|
||||
m_buffer->signalSelectChange.bind(shared_from_this(), &appl::TextViewer::onCallbackSelectChange);
|
||||
for (auto element : m_drawingRemenber) {
|
||||
if (element.first == m_buffer) {
|
||||
m_originScrooled = element.second;
|
||||
@@ -708,6 +699,14 @@ void appl::TextViewer::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
}
|
||||
}
|
||||
|
||||
void appl::TextViewer::onCallbackIsModify() {
|
||||
markToRedraw();
|
||||
}
|
||||
void appl::TextViewer::onCallbackSelectChange() {
|
||||
markToRedraw();
|
||||
}
|
||||
|
||||
|
||||
void appl::TextViewer::onGetFocus() {
|
||||
showKeyboard();
|
||||
APPL_INFO("Focus - In");
|
||||
|
@@ -406,6 +406,9 @@ namespace appl {
|
||||
bool _broadcast=false) {
|
||||
shortCutAdd(_descriptiveString, _generateEventId, _data, _broadcast);
|
||||
}
|
||||
private: // callback fundtions
|
||||
void onCallbackIsModify();
|
||||
void onCallbackSelectChange();
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -13,8 +13,6 @@
|
||||
#undef __class__
|
||||
#define __class__ "WorkerCloseAllFile"
|
||||
|
||||
static const char* s_closeDone = "close-done";
|
||||
|
||||
appl::WorkerCloseAllFile::WorkerCloseAllFile() {
|
||||
addObjectType("appl::WorkerCloseAllFile");
|
||||
// load buffer manager:
|
||||
@@ -54,32 +52,30 @@ void appl::WorkerCloseAllFile::init() {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
m_worker->registerOnEvent(shared_from_this(), "close-file-done", s_closeDone);
|
||||
m_worker->signalCloseDone.bind(shared_from_this(), &appl::WorkerCloseAllFile::onCallbackCloseDone);
|
||||
}
|
||||
|
||||
appl::WorkerCloseAllFile::~WorkerCloseAllFile() {
|
||||
|
||||
}
|
||||
|
||||
void appl::WorkerCloseAllFile::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
void appl::WorkerCloseAllFile::onCallbackCloseDone() {
|
||||
if (m_bufferManager == nullptr) {
|
||||
// nothing to do in this case ==> can do nothing ...
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == s_closeDone) {
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
// create the worker :
|
||||
m_worker = appl::WorkerCloseFile::create(m_bufferNameList.front());
|
||||
// remove first element :
|
||||
m_bufferNameList.erase(m_bufferNameList.begin());
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
m_worker->registerOnEvent(shared_from_this(), "close-file-done", s_closeDone);
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
// create the worker :
|
||||
m_worker = appl::WorkerCloseFile::create(m_bufferNameList.front());
|
||||
// remove first element :
|
||||
m_bufferNameList.erase(m_bufferNameList.begin());
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
m_worker->signalCloseDone.bind(shared_from_this(), &appl::WorkerCloseAllFile::onCallbackCloseDone);
|
||||
}
|
||||
|
||||
|
@@ -24,8 +24,8 @@ namespace appl {
|
||||
std::vector<std::string> m_bufferNameList;
|
||||
std::shared_ptr<appl::WorkerCloseFile> m_worker; //! pop-up element that is open...
|
||||
std::shared_ptr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||
public: // derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
public: // callback function
|
||||
void onCallbackCloseDone();
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -14,11 +14,6 @@
|
||||
#undef __class__
|
||||
#define __class__ "WorkerCloseFile"
|
||||
|
||||
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),
|
||||
@@ -71,20 +66,20 @@ void appl::WorkerCloseFile::init(const std::string& _bufferName) {
|
||||
}
|
||||
tmpPopUp->setTitle("<bold>Close un-saved file:</bold>");
|
||||
tmpPopUp->setComment("The file named : <i>\"" + m_buffer->getFileName() + "\"</i> is curently modify. <br/>If you don't saves these modifications,<br/>they will be definitly lost...");
|
||||
std::shared_ptr<ewol::Widget> bt = nullptr;
|
||||
std::shared_ptr<ewol::widget::Button> bt = nullptr;
|
||||
if (m_buffer->hasFileName() == true) {
|
||||
bt = tmpPopUp->addButton("Save", true);
|
||||
if (bt != nullptr) {
|
||||
bt->registerOnEvent(shared_from_this(), "pressed", s_saveValidate);
|
||||
bt->signalPressed.bind(shared_from_this(), &appl::WorkerCloseFile::onCallbackSaveValidate);
|
||||
}
|
||||
}
|
||||
bt = tmpPopUp->addButton("Save As", true);
|
||||
if (bt != nullptr) {
|
||||
bt->registerOnEvent(shared_from_this(), "pressed", s_saveAsValidate);
|
||||
bt->signalPressed.bind(shared_from_this(), &appl::WorkerCloseFile::onCallbackSaveAsValidate);
|
||||
}
|
||||
bt = tmpPopUp->addButton("Close", true);
|
||||
if (bt != nullptr) {
|
||||
bt->registerOnEvent(shared_from_this(), "pressed", s_closeValidate);
|
||||
bt->signalPressed.bind(shared_from_this(), &appl::WorkerCloseFile::onCallbackClose);
|
||||
}
|
||||
tmpPopUp->addButton("Cancel", true);
|
||||
tmpPopUp->setRemoveOnExternClick(true);
|
||||
@@ -101,42 +96,51 @@ appl::WorkerCloseFile::~WorkerCloseFile() {
|
||||
|
||||
}
|
||||
|
||||
void appl::WorkerCloseFile::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
|
||||
void appl::WorkerCloseFile::onCallbackSaveAsValidate() {
|
||||
if (m_bufferManager == nullptr) {
|
||||
// nothing to do in this case ==> can do nothing ...
|
||||
return;
|
||||
}
|
||||
APPL_DEBUG("have message : " << _msg);
|
||||
if (_msg.getMessage() == s_saveAsValidate) {
|
||||
m_worker = appl::WorkerSaveFile::create(m_bufferName);
|
||||
if (m_worker != nullptr) {
|
||||
m_worker->registerOnEvent(shared_from_this(), "save-file-done", s_saveAsDone);
|
||||
}
|
||||
} else if (_msg.getMessage() == s_saveValidate) {
|
||||
if (m_buffer == nullptr) {
|
||||
APPL_ERROR("Error to get the buffer : oldName=" << m_bufferName);
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
if (m_buffer->storeFile() == false) {
|
||||
std::shared_ptr<ewol::widget::Windows> tmpWindows = ewol::getContext().getWindows();
|
||||
if (tmpWindows == nullptr) {
|
||||
return;
|
||||
}
|
||||
tmpWindows->displayWarningMessage("We can not save the file : <br/><i>" + m_buffer->getFileName() + "</i>");
|
||||
} else {
|
||||
signalCloseDone.emit();
|
||||
}
|
||||
} else if ( _msg.getMessage() == s_closeValidate
|
||||
|| _msg.getMessage() == s_saveAsDone) {
|
||||
if (m_buffer == nullptr) {
|
||||
APPL_ERROR("Error to get the buffer : " << m_bufferName);
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
signalCloseDone.emit();
|
||||
m_buffer->destroy();
|
||||
m_buffer.reset();
|
||||
m_worker = appl::WorkerSaveFile::create(m_bufferName);
|
||||
if (m_worker != nullptr) {
|
||||
m_worker->signalSaveDone.bind(shared_from_this(), &appl::WorkerCloseFile::onCallbackClose);
|
||||
}
|
||||
}
|
||||
|
||||
void appl::WorkerCloseFile::onCallbackSaveValidate() {
|
||||
if (m_bufferManager == nullptr) {
|
||||
// nothing to do in this case ==> can do nothing ...
|
||||
return;
|
||||
}
|
||||
if (m_buffer == nullptr) {
|
||||
APPL_ERROR("Error to get the buffer : oldName=" << m_bufferName);
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
if (m_buffer->storeFile() == false) {
|
||||
std::shared_ptr<ewol::widget::Windows> tmpWindows = ewol::getContext().getWindows();
|
||||
if (tmpWindows == nullptr) {
|
||||
return;
|
||||
}
|
||||
tmpWindows->displayWarningMessage("We can not save the file : <br/><i>" + m_buffer->getFileName() + "</i>");
|
||||
} else {
|
||||
signalCloseDone.emit();
|
||||
}
|
||||
}
|
||||
|
||||
void appl::WorkerCloseFile::onCallbackClose() {
|
||||
if (m_bufferManager == nullptr) {
|
||||
// nothing to do in this case ==> can do nothing ...
|
||||
return;
|
||||
}
|
||||
if (m_buffer == nullptr) {
|
||||
APPL_ERROR("Error to get the buffer : " << m_bufferName);
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
signalCloseDone.emit();
|
||||
m_buffer->destroy();
|
||||
m_buffer.reset();
|
||||
}
|
||||
|
||||
|
@@ -29,8 +29,10 @@ namespace appl {
|
||||
std::shared_ptr<appl::Buffer> m_buffer; //!< reference on the buffer (when rename, we have no more reference on the buffer
|
||||
std::shared_ptr<appl::WorkerSaveFile> m_worker; //! sub-worker element...
|
||||
std::shared_ptr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||
public: // derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
public: // callback Functions
|
||||
void onCallbackSaveAsValidate();
|
||||
void onCallbackSaveValidate();
|
||||
void onCallbackClose();
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -13,8 +13,6 @@
|
||||
#undef __class__
|
||||
#define __class__ "WorkerSaveAllFile"
|
||||
|
||||
static const char* s_saveAsDone = "save-as-done";
|
||||
|
||||
appl::WorkerSaveAllFile::WorkerSaveAllFile() {
|
||||
addObjectType("appl::WorkerSaveAllFile");
|
||||
// load buffer manager:
|
||||
@@ -56,32 +54,30 @@ void appl::WorkerSaveAllFile::init() {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
m_worker->registerOnEvent(shared_from_this(), "save-file-done", s_saveAsDone);
|
||||
m_worker->signalSaveDone.bind(shared_from_this(), &appl::WorkerSaveAllFile::onCallbackSaveAsDone);
|
||||
}
|
||||
|
||||
appl::WorkerSaveAllFile::~WorkerSaveAllFile() {
|
||||
|
||||
}
|
||||
|
||||
void appl::WorkerSaveAllFile::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
void appl::WorkerSaveAllFile::onCallbackSaveAsDone() {
|
||||
if (m_bufferManager == nullptr) {
|
||||
// nothing to do in this case ==> can do nothing ...
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == s_saveAsDone) {
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
// create the worker :
|
||||
m_worker = appl::WorkerSaveFile::create(m_bufferNameList.front());
|
||||
// remove first element :
|
||||
m_bufferNameList.erase(m_bufferNameList.begin());
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
m_worker->registerOnEvent(shared_from_this(), "save-file-done", s_saveAsDone);
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
// create the worker :
|
||||
m_worker = appl::WorkerSaveFile::create(m_bufferNameList.front());
|
||||
// remove first element :
|
||||
m_bufferNameList.erase(m_bufferNameList.begin());
|
||||
if (m_bufferNameList.size() == 0) {
|
||||
autoDestroy();
|
||||
return;
|
||||
}
|
||||
m_worker->signalSaveDone.bind(shared_from_this(), &appl::WorkerSaveAllFile::onCallbackSaveAsDone);
|
||||
}
|
||||
|
||||
|
@@ -24,8 +24,8 @@ namespace appl {
|
||||
std::vector<std::string> m_bufferNameList;
|
||||
std::shared_ptr<appl::WorkerSaveFile> m_worker; //! pop-up element that is open...
|
||||
std::shared_ptr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||
public: // derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
public: // callback function
|
||||
void onCallbackSaveAsDone();
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -13,7 +13,6 @@
|
||||
#undef __class__
|
||||
#define __class__ "WorkerSaveFile"
|
||||
|
||||
static const char* s_saveAsValidate = "save-as-validate";
|
||||
|
||||
appl::WorkerSaveFile::WorkerSaveFile() :
|
||||
signalSaveDone(*this, "save-file-done") {
|
||||
@@ -77,42 +76,40 @@ void appl::WorkerSaveFile::init(const std::string& _bufferName, bool _forceSaveA
|
||||
return;
|
||||
}
|
||||
tmpWindows->popUpWidgetPush(m_chooser);
|
||||
m_chooser->registerOnEvent(shared_from_this(), "validate", s_saveAsValidate);
|
||||
m_chooser->signalValidate.bind(shared_from_this(), &appl::WorkerSaveFile::onCallbackSaveAsValidate);
|
||||
}
|
||||
|
||||
appl::WorkerSaveFile::~WorkerSaveFile() {
|
||||
|
||||
}
|
||||
|
||||
void appl::WorkerSaveFile::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
void appl::WorkerSaveFile::onCallbackSaveAsValidate(const std::string& _value) {
|
||||
if (m_bufferManager == nullptr) {
|
||||
// nothing to do in this case ==> can do nothing ...
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == s_saveAsValidate) {
|
||||
if (_msg.getData() == "") {
|
||||
APPL_ERROR(" might be an error of the File chooser system...");
|
||||
if (_value == "") {
|
||||
APPL_ERROR(" might be an error of the File chooser system...");
|
||||
return;
|
||||
}
|
||||
if (m_bufferManager->exist(m_bufferName) == false) {
|
||||
APPL_ERROR("Try to save an non-existant file :" << m_bufferName);
|
||||
return;
|
||||
}
|
||||
std::shared_ptr<appl::Buffer> tmpBuffer = m_bufferManager->get(m_bufferName);
|
||||
if (tmpBuffer == nullptr) {
|
||||
APPL_ERROR("Error to get the buffer : " << m_bufferName);
|
||||
return;
|
||||
}
|
||||
tmpBuffer->setFileName(_value);
|
||||
if (tmpBuffer->storeFile() == false) {
|
||||
std::shared_ptr<ewol::widget::Windows> tmpWindows = ewol::getContext().getWindows();
|
||||
if (tmpWindows == nullptr) {
|
||||
return;
|
||||
}
|
||||
if (m_bufferManager->exist(m_bufferName) == false) {
|
||||
APPL_ERROR("Try to save an non-existant file :" << m_bufferName);
|
||||
return;
|
||||
}
|
||||
std::shared_ptr<appl::Buffer> tmpBuffer = m_bufferManager->get(m_bufferName);
|
||||
if (tmpBuffer == nullptr) {
|
||||
APPL_ERROR("Error to get the buffer : " << m_bufferName);
|
||||
return;
|
||||
}
|
||||
tmpBuffer->setFileName(_msg.getData());
|
||||
if (tmpBuffer->storeFile() == false) {
|
||||
std::shared_ptr<ewol::widget::Windows> tmpWindows = ewol::getContext().getWindows();
|
||||
if (tmpWindows == nullptr) {
|
||||
return;
|
||||
}
|
||||
tmpWindows->displayWarningMessage("We can not save the file : <br/><i>" + tmpBuffer->getFileName() + "</i>");
|
||||
} else {
|
||||
signalSaveDone.emit();
|
||||
}
|
||||
tmpWindows->displayWarningMessage("We can not save the file : <br/><i>" + tmpBuffer->getFileName() + "</i>");
|
||||
} else {
|
||||
signalSaveDone.emit();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -26,8 +26,8 @@ namespace appl {
|
||||
std::string m_bufferName;
|
||||
std::shared_ptr<ewol::widget::FileChooser> m_chooser; //! pop-up element that is open...
|
||||
std::shared_ptr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||
public: // derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
public: // callback function
|
||||
void onCallbackSaveAsValidate(const std::string& _value);
|
||||
};
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user