diff --git a/Sources/libetk/etk/Stream.h b/Sources/libetk/etk/Stream.h index f9e920e5..bd02c985 100644 --- a/Sources/libetk/etk/Stream.h +++ b/Sources/libetk/etk/Stream.h @@ -30,6 +30,7 @@ #include #include #include +#include #if defined(__PLATFORM__Android) # include @@ -73,6 +74,13 @@ namespace etk{ strncat(m_tmpChar, tmp, MAX_LOG_SIZE); return *this; } + /* + CCout& operator << (uniChar_t t) { + snprintf(tmp, MAX_LOG_SIZE_TMP, "%c", t); + strncat(m_tmpChar, tmp, MAX_LOG_SIZE); + return *this; + } + */ CCout& operator << (long t) { snprintf(tmp, MAX_LOG_SIZE_TMP, "%ld", t); strncat(m_tmpChar, tmp, MAX_LOG_SIZE); diff --git a/Sources/libetk/etk/UString.cpp b/Sources/libetk/etk/UString.cpp index 9e7e8191..6f85457b 100644 --- a/Sources/libetk/etk/UString.cpp +++ b/Sources/libetk/etk/UString.cpp @@ -315,13 +315,36 @@ const etk::UString& etk::UString::operator= (etk::VectorType inputDat } +uniChar_t changeOrder(uniChar_t elemA) +{ + if (elemA >= 'A' && elemA <= 'Z') { + return (elemA - (uniChar_t)'A')*2 + 'A'; + } + if (elemA >= 'a' && elemA <= 'z') { + return (elemA - (uniChar_t)'a')*2 + 'A' + 1; + } + if (elemA >= ':' && elemA <= '@') { + return elemA + 52; + } + if (elemA >= '[' && elemA <= '`') { + return elemA +26; + } + return elemA; +} + bool etk::UString::operator> (const etk::UString& etkS) const { if( this != &etkS ) { for (int32_t iii=0; iii < m_data.Size() && iii < etkS.m_data.Size(); iii++) { - if (m_data[iii] > etkS.m_data[iii] ) { - return true; + //TK_DEBUG(" compare : '" << (char)m_data[iii] << "'>'" << (char)etkS.m_data[iii] << "' ==> " << changeOrder(m_data[iii]) << ">" << changeOrder(etkS.m_data[iii]) << ""); + uniChar_t elemA = changeOrder(m_data[iii]); + uniChar_t elemB = changeOrder(etkS.m_data[iii]); + if (elemA != elemB) { + if (elemA > elemB) { + return true; + } + return false; } } if (m_data.Size() > etkS.m_data.Size()) { @@ -331,6 +354,66 @@ bool etk::UString::operator> (const etk::UString& etkS) const return false; } +bool etk::UString::operator>= (const etk::UString& etkS) const +{ + if( this != &etkS ) { + for (int32_t iii=0; iii < m_data.Size() && iii < etkS.m_data.Size(); iii++) { + uniChar_t elemA = changeOrder(m_data[iii]); + uniChar_t elemB = changeOrder(etkS.m_data[iii]); + if (elemA != elemB) { + if (elemA > elemB) { + return true; + } + return false; + } + } + if (m_data.Size() >= etkS.m_data.Size()) { + return true; + } + } + return false; +} + +bool etk::UString::operator< (const etk::UString& etkS) const +{ + if( this != &etkS ) { + for (int32_t iii=0; iii < m_data.Size() && iii < etkS.m_data.Size(); iii++) { + uniChar_t elemA = changeOrder(m_data[iii]); + uniChar_t elemB = changeOrder(etkS.m_data[iii]); + if (elemA != elemB) { + if (elemA < elemB) { + return true; + } + return false; + } + } + if (m_data.Size() < etkS.m_data.Size()) { + return true; + } + } + return false; +} + +bool etk::UString::operator<= (const etk::UString& etkS) const +{ + if( this != &etkS ) { + for (int32_t iii=0; iii < m_data.Size() && iii < etkS.m_data.Size(); iii++) { + uniChar_t elemA = changeOrder(m_data[iii]); + uniChar_t elemB = changeOrder(etkS.m_data[iii]); + if (elemA != elemB) { + if (elemA < elemB) { + return true; + } + return false; + } + } + if (m_data.Size() <= etkS.m_data.Size()) { + return true; + } + } + return false; +} + /** * @brief diff --git a/Sources/libetk/etk/UString.h b/Sources/libetk/etk/UString.h index 3e84f487..2f424726 100644 --- a/Sources/libetk/etk/UString.h +++ b/Sources/libetk/etk/UString.h @@ -67,9 +67,12 @@ namespace etk bool operator!= (const uniChar_t * inputData) const; bool operator!= (const char * inputData) const; /***************************************************** - * > operator + * > < >= <= operator *****************************************************/ - bool operator> (const etk::UString& etkS) const; + bool operator> (const etk::UString& etkS) const; + bool operator>= (const etk::UString& etkS) const; + bool operator< (const etk::UString& etkS) const; + bool operator<= (const etk::UString& etkS) const; /***************************************************** * += operator *****************************************************/ diff --git a/Sources/libewol/ewol/widget/Button.cpp b/Sources/libewol/ewol/widget/Button.cpp index 45dfa46d..4d8cff95 100644 --- a/Sources/libewol/ewol/widget/Button.cpp +++ b/Sources/libewol/ewol/widget/Button.cpp @@ -152,9 +152,10 @@ void ewol::Button::OnRegenerateDisplay(void) ewol::OObject2DColored * tmpOObjects = new ewol::OObject2DColored; tmpOObjects->SetColor(m_textColorBg); tmpOObjects->Rectangle( tmpOriginX, tmpOriginY, tmpSizeX, tmpSizeY); + /* tmpOObjects->SetColor(m_textColorFg); tmpOObjects->RectangleBorder( tmpOriginX, tmpOriginY, tmpSizeX, tmpSizeY, borderSize); - + */ AddOObject(tmpOObjects, "BouttonDecoration"); AddOObject(tmpText, "BouttonText"); diff --git a/Sources/libewol/ewol/widgetMeta/FileChooser.cpp b/Sources/libewol/ewol/widgetMeta/FileChooser.cpp index f6717524..add1181e 100644 --- a/Sources/libewol/ewol/widgetMeta/FileChooser.cpp +++ b/Sources/libewol/ewol/widgetMeta/FileChooser.cpp @@ -52,8 +52,9 @@ void SortList(etk::VectorType &m_listDirectory) int32_t findPos = 0; for(int32_t jjj=0; jjj *m_listDirectory[jjj]) { - findPos = jjj; + findPos = jjj+1; } } //EWOL_DEBUG("position="<endGenerating(); + myListFile->EndGenerating(); + myListFolder->EndGenerating(); MarkToReedraw(); }