Charset management is back
This commit is contained in:
parent
dde852cbe1
commit
13e2af9125
@ -250,16 +250,16 @@ int32_t BufferText::GetLineNumberNumberOfElement(void)
|
||||
int32_t nbColoneForLineNumber = 1;
|
||||
// get the number of line in the buffer
|
||||
int32_t maxNumberLine = m_EdnBuf.NumberOfLines();
|
||||
if (10 > maxNumberLine) { nbColoneForLineNumber = 1;
|
||||
} else if (100 > maxNumberLine) { nbColoneForLineNumber = 2;
|
||||
} else if (1000 > maxNumberLine) { nbColoneForLineNumber = 3;
|
||||
} else if (10000 > maxNumberLine) { nbColoneForLineNumber = 4;
|
||||
} else if (100000 > maxNumberLine) { nbColoneForLineNumber = 5;
|
||||
} else if (1000000 > maxNumberLine) { nbColoneForLineNumber = 6;
|
||||
} else if (1000000 > maxNumberLine) { nbColoneForLineNumber = 7;
|
||||
} else if (10000000 > maxNumberLine) { nbColoneForLineNumber = 8;
|
||||
} else if (100000000 > maxNumberLine) { nbColoneForLineNumber = 9;
|
||||
} else { nbColoneForLineNumber = 10;
|
||||
if (10 > maxNumberLine) { nbColoneForLineNumber = 1;
|
||||
} else if (100 > maxNumberLine) { nbColoneForLineNumber = 2;
|
||||
} else if (1000 > maxNumberLine) { nbColoneForLineNumber = 3;
|
||||
} else if (10000 > maxNumberLine) { nbColoneForLineNumber = 4;
|
||||
} else if (100000 > maxNumberLine) { nbColoneForLineNumber = 5;
|
||||
} else if (1000000 > maxNumberLine) { nbColoneForLineNumber = 6;
|
||||
} else if (10000000 > maxNumberLine) { nbColoneForLineNumber = 7;
|
||||
} else if (100000000 > maxNumberLine) { nbColoneForLineNumber = 8;
|
||||
} else if (1000000000 > maxNumberLine) { nbColoneForLineNumber = 9;
|
||||
} else { nbColoneForLineNumber = 10;
|
||||
}
|
||||
return nbColoneForLineNumber;
|
||||
}
|
||||
|
@ -75,6 +75,7 @@ CodeView::CodeView(void)
|
||||
RegisterMultiCast(ednMsgGuiUndo);
|
||||
RegisterMultiCast(ednMsgGuiRm);
|
||||
RegisterMultiCast(ednMsgGuiSelect);
|
||||
RegisterMultiCast(ednMsgGuiChangeCharset);
|
||||
}
|
||||
|
||||
CodeView::~CodeView(void)
|
||||
@ -259,7 +260,7 @@ bool CodeView::OnEventInput(int32_t IdInput, ewol::eventInputType_te typeEvent,
|
||||
yyy = 0;
|
||||
}
|
||||
//EDN_INFO("mouse-motion BT1 %d, %d", xxx, yyy);
|
||||
BufferManager::Get(m_bufferID)->MouseSelectFromCursorTo(m_fontNormal, xxx, yyy);
|
||||
BufferManager::Get(m_bufferID)->MouseSelectFromCursorTo(m_fontNormal, xxx+m_originScrooled.x, yyy+m_originScrooled.y);
|
||||
MarkToReedraw();
|
||||
}
|
||||
}
|
||||
@ -288,8 +289,6 @@ void CodeView::OnReceiveMessage(ewol::EObject * CallerObject, const char * event
|
||||
ewol::WidgetScrooled::OnReceiveMessage(CallerObject, eventId, data);
|
||||
EDN_DEBUG("Extern Event : " << CallerObject << " type : " << eventId << " data=\"" << data << "\"");
|
||||
|
||||
|
||||
|
||||
if(eventId == ednMsgBufferId) {
|
||||
int32_t bufferID = 0;
|
||||
sscanf(data.Utf8Data(), "%d", &bufferID);
|
||||
@ -326,6 +325,17 @@ void CodeView::OnReceiveMessage(ewol::EObject * CallerObject, const char * event
|
||||
} else {
|
||||
EDN_ERROR(" on event " << eventId << " unknow data=\"" << data << "\"" );
|
||||
}
|
||||
} else if (eventId == ednMsgGuiChangeCharset) {
|
||||
// data : "UTF-8" "ISO-8859-1" "ISO-8859-15"
|
||||
if (data == "UTF-8") {
|
||||
BufferManager::Get(m_bufferID)->SetCharset(unicode::EDN_CHARSET_UTF8);
|
||||
} else if (data == "ISO-8859-1") {
|
||||
BufferManager::Get(m_bufferID)->SetCharset(unicode::EDN_CHARSET_ISO_8859_1);
|
||||
} else if (data == "ISO-8859-15") {
|
||||
BufferManager::Get(m_bufferID)->SetCharset(unicode::EDN_CHARSET_ISO_8859_15);
|
||||
} else {
|
||||
EDN_ERROR(" on event " << eventId << " unknow data=\"" << data << "\"" );
|
||||
}
|
||||
}
|
||||
/*
|
||||
switch (id)
|
||||
@ -353,23 +363,15 @@ void CodeView::OnReceiveMessage(ewol::EObject * CallerObject, const char * event
|
||||
break;
|
||||
case EDN_MSG__CURRENT_REPLACE_ALL:
|
||||
break;
|
||||
case EDN_MSG__CURRENT_CLOSE:
|
||||
SendMessage(EDN_MSG__BUFF_ID_CLOSE, m_bufferID);
|
||||
break;
|
||||
case EDN_MSG__CURRENT_GOTO_LINE:
|
||||
if (dataID<0) {
|
||||
dataID = 0;
|
||||
}
|
||||
BufferManager::Get(m_bufferID)->JumpAtLine(dataID);
|
||||
break;
|
||||
case EDN_MSG__REFRESH_DISPLAY:
|
||||
break;
|
||||
case EDN_MSG__CURRENT_SET_CHARSET:
|
||||
BufferManager::Get(m_bufferID)->SetCharset((unicode::charset_te)dataID);
|
||||
break;
|
||||
case EDN_MSG__USER_DISPLAY_CHANGE:
|
||||
// Redraw all the display ... Done under ...
|
||||
break;
|
||||
}
|
||||
*/
|
||||
// Force redraw of the widget
|
||||
|
@ -93,6 +93,7 @@ class CodeView :public ewol::WidgetScrooled
|
||||
virtual bool OnEventInput(int32_t IdInput, ewol::eventInputType_te typeEvent, coord2D_ts pos);
|
||||
virtual bool OnEventKb(ewol::eventKbType_te typeEvent, uniChar_t unicodeData);
|
||||
virtual bool OnEventKbMove(ewol::eventKbType_te typeEvent, ewol::eventKbMoveType_te moveTypeEvent);
|
||||
|
||||
virtual void OnGetFocus(void);
|
||||
virtual void OnLostFocus(void);
|
||||
private:
|
||||
|
@ -102,6 +102,13 @@ MainWindows::MainWindows(void)
|
||||
(void)myMenu->Add(idMenuCTags, "ReLoad", "", ednMsgGuiCtags, "ReLoad");
|
||||
(void)myMenu->Add(idMenuCTags, "Jump", "", ednMsgGuiCtags, "Jump");
|
||||
(void)myMenu->Add(idMenuCTags, "Back", "", ednMsgGuiCtags, "Back");
|
||||
int32_t idMenugDisplay = myMenu->AddTitle("Display");
|
||||
(void)myMenu->Add(idMenugDisplay, "Charset UTF-8", "", ednMsgGuiChangeCharset, "UTF-8");
|
||||
(void)myMenu->Add(idMenugDisplay, "Charset ISO-8859-1", "", ednMsgGuiChangeCharset, "ISO-8859-1");
|
||||
(void)myMenu->Add(idMenugDisplay, "Charset ISO-8859-15", "", ednMsgGuiChangeCharset, "ISO-8859-15");
|
||||
(void)myMenu->AddSpacer();
|
||||
(void)myMenu->Add(idMenugDisplay, "Color Black", "", ednMsgGuiChangeColor, "Black");
|
||||
(void)myMenu->Add(idMenugDisplay, "Color White", "", ednMsgGuiChangeColor, "White");
|
||||
(void)myMenu->AddTitle("?", "", ednMsgGuiAbout);
|
||||
|
||||
m_widgetLabelFileName = new ewol::Label("FileName");
|
||||
|
@ -635,13 +635,13 @@ int32_t EdnBuf::GetExpandedChar(int32_t &pos, int32_t indent, uniChar_t outUnico
|
||||
unicode::Utf8_SizeElement(tmpString, 6 , size, baseValid);
|
||||
currentChar = 0;
|
||||
if (true == baseValid) {
|
||||
uniChar_t *tmp = outUnicode;
|
||||
for (int32_t k=0; k<size; k++) {
|
||||
*tmp++ = tmpString[k];
|
||||
char tmp[20];
|
||||
for (int32_t kkk=0; kkk<size; kkk++) {
|
||||
tmp[kkk] = tmpString[kkk];
|
||||
tmp[kkk+1] = '\0';
|
||||
}
|
||||
*tmp = '\0';
|
||||
unicode::convertIsoToUnicode(m_charsetType, c, outUnicode[0]);
|
||||
|
||||
unicode::convertUtf8ToUnicode(tmp, outUnicode[0]);
|
||||
outUnicode[1] = 0;
|
||||
} else {
|
||||
outUnicode[0] = '<';
|
||||
outUnicode[1] = '?';
|
||||
|
Loading…
x
Reference in New Issue
Block a user