add save as and start of Unicode string adaptation
This commit is contained in:
@@ -51,6 +51,8 @@ BufferManager::BufferManager(void)
|
|||||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgGuiClose);
|
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgGuiClose);
|
||||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgGuiSave);
|
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgGuiSave);
|
||||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewSelectedId);
|
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewSelectedId);
|
||||||
|
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferId);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerNewFile);
|
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerNewFile);
|
||||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerSaveAll);
|
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerSaveAll);
|
||||||
@@ -83,7 +85,21 @@ BufferManager::~BufferManager(void)
|
|||||||
|
|
||||||
bool BufferManager::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * data, etkFloat_t x, etkFloat_t y)
|
bool BufferManager::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * data, etkFloat_t x, etkFloat_t y)
|
||||||
{
|
{
|
||||||
if (generateEventId == ednMsgGuiNew) {
|
if (generateEventId == ednMsgBufferId) {
|
||||||
|
// select a new buffer ID :
|
||||||
|
if (NULL == data) {
|
||||||
|
EDN_ERROR("Request select buffer ID = NULL ????");
|
||||||
|
} else {
|
||||||
|
int32_t newID = -1;
|
||||||
|
sscanf(data, "%d", &newID);
|
||||||
|
if(true == Exist(newID)) {
|
||||||
|
m_idSelected = newID;
|
||||||
|
} else {
|
||||||
|
m_idSelected = -1;
|
||||||
|
EDN_ERROR("Request a non existant ID : " << newID << " reset to -1...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (generateEventId == ednMsgGuiNew) {
|
||||||
int32_t newOne = Create();
|
int32_t newOne = Create();
|
||||||
if (-1 != newOne) {
|
if (-1 != newOne) {
|
||||||
m_idSelected = newOne;
|
m_idSelected = newOne;
|
||||||
@@ -134,10 +150,48 @@ bool BufferManager::OnEventAreaExternal(int32_t widgetID, const char * generateE
|
|||||||
if (NULL == data) {
|
if (NULL == data) {
|
||||||
EDN_ERROR("Null data for close file ... ");
|
EDN_ERROR("Null data for close file ... ");
|
||||||
} else {
|
} else {
|
||||||
|
if (0 == strcmp(data , "All")) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
int32_t closeID = -1;
|
||||||
if (0 == strcmp(data , "current")) {
|
if (0 == strcmp(data , "current")) {
|
||||||
|
closeID = m_idSelected;
|
||||||
} else if (0 == strcmp(data , "All")) {
|
EDN_DEBUG("Close specific buffer ID" << closeID);
|
||||||
|
} else {
|
||||||
|
// close specific buffer ...
|
||||||
|
sscanf(data, "%d", &closeID);
|
||||||
|
EDN_DEBUG("Close specific buffer ID="<< closeID);
|
||||||
|
}
|
||||||
|
if(true == Exist(closeID)) {
|
||||||
|
// Get the new display buffer
|
||||||
|
if (m_idSelected == closeID) {
|
||||||
|
// Try previous buffer
|
||||||
|
int32_t destBuffer = -1;
|
||||||
|
for(int32_t ii=closeID-1; ii >= 0; ii--) {
|
||||||
|
if (true == Exist(ii) ) {
|
||||||
|
destBuffer = ii;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// try next buffer
|
||||||
|
if (-1 == destBuffer) {
|
||||||
|
for(int32_t ii=closeID+1; ii < listBuffer.Size(); ii++) {
|
||||||
|
if (true == Exist(ii) ) {
|
||||||
|
destBuffer = ii;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// set it to the currect display
|
||||||
|
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferId, destBuffer);
|
||||||
|
m_idSelected = destBuffer;
|
||||||
|
}
|
||||||
|
// Remove requested buffer
|
||||||
|
Remove(closeID);
|
||||||
|
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferListChange);
|
||||||
|
} else {
|
||||||
|
EDN_ERROR("Request Close of a non existant ID : " << closeID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (generateEventId == ednMsgCodeViewSelectedId) {
|
} else if (generateEventId == ednMsgCodeViewSelectedId) {
|
||||||
@@ -160,39 +214,6 @@ bool BufferManager::OnEventAreaExternal(int32_t widgetID, const char * generateE
|
|||||||
/*
|
/*
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case EDN_MSG__BUFF_ID_CLOSE:
|
|
||||||
// Check buffer existence
|
|
||||||
if(true == Exist(dataID)) {
|
|
||||||
// Get the new display buffer
|
|
||||||
if (m_idSelected == dataID) {
|
|
||||||
// Try previous buffer
|
|
||||||
int32_t destBuffer = -1;
|
|
||||||
for(int32_t ii=dataID-1; ii >= 0; ii--) {
|
|
||||||
if (true == Exist(ii) ) {
|
|
||||||
destBuffer = ii;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//EDN_DEBUG("new buffer selected : ?? " << destBuffer);
|
|
||||||
// try next buffer
|
|
||||||
if (-1 == destBuffer) {
|
|
||||||
for(int32_t ii=dataID+1; ii < listBuffer.Size(); ii++) {
|
|
||||||
if (true == Exist(ii) ) {
|
|
||||||
destBuffer = ii;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//EDN_DEBUG("new buffer selected : ?? " << destBuffer);
|
|
||||||
// set it to the currect display
|
|
||||||
SendMessage(EDN_MSG__CURRENT_CHANGE_BUFFER_ID, destBuffer);
|
|
||||||
}
|
|
||||||
//EDN_DEBUG("Remove : " << dataID);
|
|
||||||
// Remove requested buffer
|
|
||||||
Remove(dataID);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case EDN_MSG__BUFF_ID_SAVE:
|
|
||||||
// Check buffer existence
|
// Check buffer existence
|
||||||
if(true == Exist(dataID)) {
|
if(true == Exist(dataID)) {
|
||||||
// If no name ==> request a Gui display ...
|
// If no name ==> request a Gui display ...
|
||||||
@@ -342,6 +363,19 @@ uint32_t BufferManager::Size(void)
|
|||||||
return listBuffer.Size();
|
return listBuffer.Size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// nb of opens file Now ...
|
||||||
|
uint32_t BufferManager::SizeOpen(void)
|
||||||
|
{
|
||||||
|
uint32_t jjj = 0;
|
||||||
|
// check if the Buffer existed
|
||||||
|
for (int32_t iii=0; iii<listBuffer.Size(); iii++) {
|
||||||
|
// check if the buffer already existed
|
||||||
|
if (NULL != listBuffer[iii]) {
|
||||||
|
jjj++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return jjj;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
|
@@ -60,6 +60,7 @@ class BufferManager: public etk::Singleton<BufferManager>, public ewol::Widget
|
|||||||
int32_t GetId(etk::File &myFile);
|
int32_t GetId(etk::File &myFile);
|
||||||
// return the number of buffer (open in the past) if 5 buffer open and 4 close ==> return 5
|
// return the number of buffer (open in the past) if 5 buffer open and 4 close ==> return 5
|
||||||
uint32_t Size(void);
|
uint32_t Size(void);
|
||||||
|
uint32_t SizeOpen(void);
|
||||||
int32_t WitchBuffer(int32_t iEmeElement);
|
int32_t WitchBuffer(int32_t iEmeElement);
|
||||||
|
|
||||||
|
|
||||||
|
@@ -90,7 +90,7 @@ bool BufferView::GetTitle(int32_t colomn, etk::String &myTitle, color_ts &fg, co
|
|||||||
uint32_t BufferView::GetNuberOfRaw(void)
|
uint32_t BufferView::GetNuberOfRaw(void)
|
||||||
{
|
{
|
||||||
if (NULL != m_bufferManager) {
|
if (NULL != m_bufferManager) {
|
||||||
return m_bufferManager->Size();
|
return m_bufferManager->SizeOpen();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -101,15 +101,18 @@ bool BufferView::GetElement(int32_t colomn, int32_t raw, etk::String &myTextToWr
|
|||||||
bool isModify;
|
bool isModify;
|
||||||
basicColor_te selectFG = COLOR_LIST_TEXT_NORMAL;
|
basicColor_te selectFG = COLOR_LIST_TEXT_NORMAL;
|
||||||
basicColor_te selectBG = COLOR_LIST_BG_1;
|
basicColor_te selectBG = COLOR_LIST_BG_1;
|
||||||
if (m_bufferManager->Exist(raw)) {
|
|
||||||
isModify = m_bufferManager->Get(raw)->IsModify();
|
// transforme the ID in the real value ...
|
||||||
name = m_bufferManager->Get(raw)->GetFileName();
|
int32_t realID = m_bufferManager->WitchBuffer(raw+1);
|
||||||
|
if (m_bufferManager->Exist(realID)) {
|
||||||
|
isModify = m_bufferManager->Get(realID)->IsModify();
|
||||||
|
name = m_bufferManager->Get(realID)->GetFileName();
|
||||||
char *tmpModify = (char*)" ";
|
char *tmpModify = (char*)" ";
|
||||||
if (true == isModify) {
|
if (true == isModify) {
|
||||||
tmpModify = (char*)"M";
|
tmpModify = (char*)"M";
|
||||||
}
|
}
|
||||||
char name2[1024] = "";
|
char name2[1024] = "";
|
||||||
sprintf(name2, "[%2d](%s) %s", raw, tmpModify, name.GetShortFilename().c_str() );
|
sprintf(name2, "[%2d](%s) %s", realID, tmpModify, name.GetShortFilename().c_str() );
|
||||||
|
|
||||||
myTextToWrite = name2;
|
myTextToWrite = name2;
|
||||||
|
|
||||||
@@ -231,7 +234,6 @@ gboolean BufferView::CB_displayDraw( GtkWidget *widget, GdkEventExpose *event, g
|
|||||||
monDrawer.Flush();
|
monDrawer.Flush();
|
||||||
lineID ++;
|
lineID ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
@@ -40,7 +40,6 @@ class BufferView : public ewol::List
|
|||||||
// Constructeur
|
// Constructeur
|
||||||
BufferView(void);
|
BufferView(void);
|
||||||
~BufferView(void);
|
~BufferView(void);
|
||||||
//GtkWidget *GetMainWidget(void);
|
|
||||||
bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
|
bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
|
||||||
protected:
|
protected:
|
||||||
// function call to display the list :
|
// function call to display the list :
|
||||||
|
@@ -237,6 +237,23 @@ bool MainWindows::OnEventAreaExternal(int32_t widgetID, const char * generateEve
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (generateEventId == ednEventPopUpFileSaveAs) {
|
} else if (generateEventId == ednEventPopUpFileSaveAs) {
|
||||||
|
// get widget:
|
||||||
|
ewol::FileChooser * tmpWidget = (ewol::FileChooser*)ewol::widgetManager::Get(widgetID);
|
||||||
|
if (NULL == tmpWidget) {
|
||||||
|
EDN_ERROR("impossible to get pop_upWidget " << widgetID);
|
||||||
|
PopUpWidgetPop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// get the filename :
|
||||||
|
etk::String tmpData = tmpWidget->GetCompleateFileName();
|
||||||
|
EDN_DEBUG("Request Saving As file : " << tmpData);
|
||||||
|
|
||||||
|
BufferManager * myMng = BufferManager::getInstance();
|
||||||
|
myMng->Get(m_currentSavingAsIdBuffer)->SetFileName(tmpData);
|
||||||
|
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgGuiSave, m_currentSavingAsIdBuffer);
|
||||||
|
|
||||||
|
//ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgOpenFile, tmpData.c_str());
|
||||||
|
|
||||||
PopUpWidgetPop();
|
PopUpWidgetPop();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@@ -37,6 +37,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <readtags.h>
|
#include <readtags.h>
|
||||||
#include <CTagsManager.h>
|
#include <CTagsManager.h>
|
||||||
|
#include <etk/UString.h>
|
||||||
#include <ewol/WidgetMessageMultiCast.h>
|
#include <ewol/WidgetMessageMultiCast.h>
|
||||||
|
|
||||||
MainWindows * basicWindows = NULL;
|
MainWindows * basicWindows = NULL;
|
||||||
@@ -47,6 +48,22 @@ MainWindows * basicWindows = NULL;
|
|||||||
*/
|
*/
|
||||||
void APP_Init(void)
|
void APP_Init(void)
|
||||||
{
|
{
|
||||||
|
etk::UString myTmpString("test <20>l<EFBFBD>mentaire...");
|
||||||
|
|
||||||
|
EDN_CRITICAL("essay de UString : " << myTmpString);
|
||||||
|
|
||||||
|
myTmpString = "TT...SDFSDFSDFQAEZqsdgfqsdfqskdj";
|
||||||
|
|
||||||
|
EDN_CRITICAL("essay de UString : " << myTmpString);
|
||||||
|
|
||||||
|
myTmpString += "19";
|
||||||
|
|
||||||
|
EDN_CRITICAL("essay de UString : " << myTmpString);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
EDN_INFO("==> Init Edn (START)");
|
EDN_INFO("==> Init Edn (START)");
|
||||||
ewol::ChangeSize(800, 600);
|
ewol::ChangeSize(800, 600);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user