add save as and start of Unicode string adaptation
This commit is contained in:
parent
cd84475aea
commit
e21e7e7c21
@ -51,6 +51,8 @@ BufferManager::BufferManager(void)
|
||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgGuiClose);
|
||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgGuiSave);
|
||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewSelectedId);
|
||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferId);
|
||||
|
||||
/*
|
||||
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerNewFile);
|
||||
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)
|
||||
{
|
||||
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();
|
||||
if (-1 != newOne) {
|
||||
m_idSelected = newOne;
|
||||
@ -134,10 +150,48 @@ bool BufferManager::OnEventAreaExternal(int32_t widgetID, const char * generateE
|
||||
if (NULL == data) {
|
||||
EDN_ERROR("Null data for close file ... ");
|
||||
} else {
|
||||
if (0 == strcmp(data , "current")) {
|
||||
|
||||
} else if (0 == strcmp(data , "All")) {
|
||||
if (0 == strcmp(data , "All")) {
|
||||
|
||||
} else {
|
||||
int32_t closeID = -1;
|
||||
if (0 == strcmp(data , "current")) {
|
||||
closeID = m_idSelected;
|
||||
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) {
|
||||
@ -160,39 +214,6 @@ bool BufferManager::OnEventAreaExternal(int32_t widgetID, const char * generateE
|
||||
/*
|
||||
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
|
||||
if(true == Exist(dataID)) {
|
||||
// If no name ==> request a Gui display ...
|
||||
@ -342,6 +363,19 @@ uint32_t BufferManager::Size(void)
|
||||
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
|
||||
|
@ -60,6 +60,7 @@ class BufferManager: public etk::Singleton<BufferManager>, public ewol::Widget
|
||||
int32_t GetId(etk::File &myFile);
|
||||
// return the number of buffer (open in the past) if 5 buffer open and 4 close ==> return 5
|
||||
uint32_t Size(void);
|
||||
uint32_t SizeOpen(void);
|
||||
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)
|
||||
{
|
||||
if (NULL != m_bufferManager) {
|
||||
return m_bufferManager->Size();
|
||||
return m_bufferManager->SizeOpen();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -101,15 +101,18 @@ bool BufferView::GetElement(int32_t colomn, int32_t raw, etk::String &myTextToWr
|
||||
bool isModify;
|
||||
basicColor_te selectFG = COLOR_LIST_TEXT_NORMAL;
|
||||
basicColor_te selectBG = COLOR_LIST_BG_1;
|
||||
if (m_bufferManager->Exist(raw)) {
|
||||
isModify = m_bufferManager->Get(raw)->IsModify();
|
||||
name = m_bufferManager->Get(raw)->GetFileName();
|
||||
|
||||
// transforme the ID in the real value ...
|
||||
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*)" ";
|
||||
if (true == isModify) {
|
||||
tmpModify = (char*)"M";
|
||||
}
|
||||
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;
|
||||
|
||||
@ -231,7 +234,6 @@ gboolean BufferView::CB_displayDraw( GtkWidget *widget, GdkEventExpose *event, g
|
||||
monDrawer.Flush();
|
||||
lineID ++;
|
||||
}
|
||||
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
|
@ -40,7 +40,6 @@ class BufferView : public ewol::List
|
||||
// Constructeur
|
||||
BufferView(void);
|
||||
~BufferView(void);
|
||||
//GtkWidget *GetMainWidget(void);
|
||||
bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
|
||||
protected:
|
||||
// function call to display the list :
|
||||
|
@ -237,6 +237,23 @@ bool MainWindows::OnEventAreaExternal(int32_t widgetID, const char * generateEve
|
||||
}
|
||||
}
|
||||
} 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();
|
||||
}
|
||||
return true;
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include <unistd.h>
|
||||
#include <readtags.h>
|
||||
#include <CTagsManager.h>
|
||||
#include <etk/UString.h>
|
||||
#include <ewol/WidgetMessageMultiCast.h>
|
||||
|
||||
MainWindows * basicWindows = NULL;
|
||||
@ -47,6 +48,22 @@ MainWindows * basicWindows = NULL;
|
||||
*/
|
||||
void APP_Init(void)
|
||||
{
|
||||
etk::UString myTmpString("test élé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)");
|
||||
ewol::ChangeSize(800, 600);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user