STANDARD ==> remove vector type and replace with std::vector (done but sone assertion)

This commit is contained in:
Edouard DUPIN 2012-08-07 18:02:38 +02:00
parent 3b60ac1214
commit 274e9d7ef7
63 changed files with 841 additions and 1845 deletions

View File

@ -88,10 +88,10 @@ const int32_t etk::constConvertionTableSize = sizeof(etk::constConvertionTable)
* @return ---
*
*/
void etk::DisplayData(etk::VectorType<char> &data)
void etk::DisplayData(std::vector<char> &data)
{
int32_t i;
for (i=0; i<(int32_t)data.Size() ; i++) {
for (i=0; i<(int32_t)data.size() ; i++) {
etk::cout<< (char)(data[i]&0x00FF );
}
}
@ -106,11 +106,11 @@ void etk::DisplayData(etk::VectorType<char> &data)
* @return ---
*
*/
void etk::DisplayElem(etk::VectorType<int16_t> &data, int32_t start, int32_t stop)
void etk::DisplayElem(std::vector<int16_t> &data, int32_t start, int32_t stop)
{
int32_t i;
etk::cout<< ETK_BASH_COLOR_NORMAL;
for (i=start; i<(int32_t)data.Size() && i<stop ; i++) {
for (i=start; i<(int32_t)data.size() && i<stop ; i++) {
switch(data[i])
{
case REGEXP_OPCODE_PTHESE_IN: etk::cout<<ETK_BASH_COLOR_RED << (char*)"(" << ETK_BASH_COLOR_NORMAL; break;
@ -142,29 +142,16 @@ void etk::DisplayElem(etk::VectorType<int16_t> &data, int32_t start, int32_t sto
}
}
}
char * etk::levelSpace(int32_t level)
static const char* tmpSpaceArray = " ";
const char * etk::levelSpace(int32_t level)
{
switch(level)
{
case 0: return (char*)"";
case 1: return (char*)" ";
case 2: return (char*)" ";
case 3: return (char*)" ";
case 4: return (char*)" ";
case 5: return (char*)" ";
case 6: return (char*)" ";
case 7: return (char*)" ";
case 8: return (char*)" ";
case 9: return (char*)" ";
case 10: return (char*)" ";
case 11: return (char*)" ";
case 12: return (char*)" ";
case 13: return (char*)" ";
case 14: return (char*)" ";
case 15: return (char*)" ";
case 16: return (char*)" ";
default: return (char*)" ";
int32_t len = strlen(tmpSpaceArray);
if (level*2 > len) {
return tmpSpaceArray;
}
return tmpSpaceArray + len - level*2;
}
@ -176,7 +163,7 @@ char * etk::levelSpace(int32_t level)
* @return ---
*
*/
int32_t etk::GetLenOfPTheseElem(etk::VectorType<int16_t> &data, int32_t startPos)
int32_t etk::GetLenOfPTheseElem(std::vector<int16_t> &data, int32_t startPos)
{
int32_t pos = startPos;
int32_t nbOpen = 0;
@ -186,7 +173,7 @@ int32_t etk::GetLenOfPTheseElem(etk::VectorType<int16_t> &data, int32_t startPos
return 0;
}
// find size ...
while (pos < (int32_t)data.Size() ) {
while (pos < (int32_t)data.size() ) {
if(REGEXP_OPCODE_PTHESE_IN == data[pos]) {
// find a sub section :
nbOpen++;
@ -225,7 +212,7 @@ int32_t etk::GetLenOfPTheseElem(etk::VectorType<int16_t> &data, int32_t startPos
* @return ---
*
*/
int32_t etk::GetLenOfPThese(etk::VectorType<int16_t> &data, int32_t startPos)
int32_t etk::GetLenOfPThese(std::vector<int16_t> &data, int32_t startPos)
{
int32_t pos = startPos;
int32_t nbOpen = 0;
@ -236,7 +223,7 @@ int32_t etk::GetLenOfPThese(etk::VectorType<int16_t> &data, int32_t startPos)
{
pos++;
// find size ...
while (pos < (int32_t)data.Size() ) {
while (pos < (int32_t)data.size() ) {
if(REGEXP_OPCODE_PTHESE_IN == data[pos]) {
// find a sub section :
nbOpen++;
@ -278,7 +265,7 @@ int32_t etk::GetLenOfPThese(etk::VectorType<int16_t> &data, int32_t startPos)
* @return ---
*
*/
int32_t etk::GetLenOfBracket(etk::VectorType<int16_t> &data, int32_t startPos)
int32_t etk::GetLenOfBracket(std::vector<int16_t> &data, int32_t startPos)
{
int32_t pos = startPos;
// special case of the (...) or | ==> we search '|' or ')'
@ -287,7 +274,7 @@ int32_t etk::GetLenOfBracket(etk::VectorType<int16_t> &data, int32_t startPos)
} else if( REGEXP_OPCODE_BRACKET_IN == data[pos]) {
pos++;
// find size ...
while (pos < (int32_t)data.Size() ) {
while (pos < (int32_t)data.size() ) {
if(REGEXP_OPCODE_BRACKET_OUT == data[pos]) {
// Find the end of the [...]
// just return the size inside
@ -322,7 +309,7 @@ int32_t etk::GetLenOfBracket(etk::VectorType<int16_t> &data, int32_t startPos)
* @return ---
*
*/
int32_t etk::GetLenOfBrace(etk::VectorType<int16_t> &data, int32_t startPos)
int32_t etk::GetLenOfBrace(std::vector<int16_t> &data, int32_t startPos)
{
int32_t pos = startPos;
// special case of the (...) or | ==> we search '|' or ')'
@ -331,7 +318,7 @@ int32_t etk::GetLenOfBrace(etk::VectorType<int16_t> &data, int32_t startPos)
} else if( REGEXP_OPCODE_BRACE_IN == data[pos]) {
pos++;
// find size ...
while (pos < (int32_t)data.Size() ) {
while (pos < (int32_t)data.size() ) {
if(REGEXP_OPCODE_BRACE_OUT == data[pos]) {
// Find the end of the [...]
// just return the size inside
@ -366,12 +353,12 @@ int32_t etk::GetLenOfBrace(etk::VectorType<int16_t> &data, int32_t startPos)
* @return ---
*
*/
int32_t etk::GetLenOfNormal(etk::VectorType<int16_t> &data, int32_t startPos)
int32_t etk::GetLenOfNormal(std::vector<int16_t> &data, int32_t startPos)
{
int32_t pos = startPos;
// find size ...
while (pos < (int32_t)data.Size() ) {
while (pos < (int32_t)data.size() ) {
switch(data[pos])
{
case REGEXP_OPCODE_PTHESE_IN:
@ -423,7 +410,7 @@ int32_t etk::GetLenOfNormal(etk::VectorType<int16_t> &data, int32_t startPos)
* @return ---
*
*/
bool etk::ParseBrace(etk::VectorType<int16_t> &data, int32_t &min, int32_t &max)
bool etk::ParseBrace(std::vector<int16_t> &data, int32_t &min, int32_t &max)
{
//TK_INFO("parse {...} in "; DisplayElem(data); );
int32_t k=0;
@ -431,7 +418,7 @@ bool etk::ParseBrace(etk::VectorType<int16_t> &data, int32_t &min, int32_t &max)
int32_t firstElement = 0;
int32_t SecondElement = 0;
while(k<data.Size()) {
while(k<data.size()) {
if (',' == (char)data[k]) {
k++;
break;
@ -447,10 +434,10 @@ bool etk::ParseBrace(etk::VectorType<int16_t> &data, int32_t &min, int32_t &max)
}
k++;
}
if (k==data.Size()) {
if (k==data.size()) {
SecondElement = firstElement;
}
while(k<data.Size()) {
while(k<data.size()) {
if (',' == (char)data[k]) {
TK_ERROR("Can not find a second , in {} at pos " << k);
return false;

View File

@ -29,7 +29,7 @@
#include <etk/DebugInternal.h>
#include <etk/Memory.h>
#include <etk/UString.h>
#include <etk/VectorType.h>
#include <vector>
namespace etk {
@ -94,15 +94,15 @@ typedef struct {
extern const convertionTable_ts constConvertionTable[];
extern const int32_t constConvertionTableSize;
void DisplayData(etk::VectorType<char> &data);
void DisplayElem(etk::VectorType<int16_t> &data, int32_t start=0, int32_t stop=0x7FFFFFFF);
char * levelSpace(int32_t level);
int32_t GetLenOfPTheseElem(etk::VectorType<int16_t> &data, int32_t startPos);
int32_t GetLenOfPThese(etk::VectorType<int16_t> &data, int32_t startPos);
int32_t GetLenOfBracket(etk::VectorType<int16_t> &data, int32_t startPos);
int32_t GetLenOfBrace(etk::VectorType<int16_t> &data, int32_t startPos);
int32_t GetLenOfNormal(etk::VectorType<int16_t> &data, int32_t startPos);
bool ParseBrace(etk::VectorType<int16_t> &data, int32_t &min, int32_t &max);
void DisplayData(std::vector<char> &data);
void DisplayElem(std::vector<int16_t> &data, int32_t start=0, int32_t stop=0x7FFFFFFF);
const char * levelSpace(int32_t level);
int32_t GetLenOfPTheseElem(std::vector<int16_t> &data, int32_t startPos);
int32_t GetLenOfPThese(std::vector<int16_t> &data, int32_t startPos);
int32_t GetLenOfBracket(std::vector<int16_t> &data, int32_t startPos);
int32_t GetLenOfBrace(std::vector<int16_t> &data, int32_t startPos);
int32_t GetLenOfNormal(std::vector<int16_t> &data, int32_t startPos);
bool ParseBrace(std::vector<int16_t> &data, int32_t &min, int32_t &max);
#undef __class__
@ -139,7 +139,7 @@ template<class CLASS_TYPE> class RegExpNode{
* @param[in,out]
* @return
*/
virtual int32_t Generate(etk::VectorType<int16_t> &data)
virtual int32_t Generate(std::vector<int16_t> &data)
{
return 0;
};
@ -199,7 +199,7 @@ template<class CLASS_TYPE> class RegExpNode{
int32_t m_multipleMin; //!< minimum repetition (included)
int32_t m_multipleMax; //!< maximum repetition (included)
// Data Section ... (can have no data...)
etk::VectorType<int16_t> m_RegExpData; //!< data to parse and compare in some case ...
std::vector<int16_t> m_RegExpData; //!< data to parse and compare in some case ...
};
#undef __class__
@ -233,15 +233,15 @@ template<class CLASS_TYPE> class RegExpNodeValue : public RegExpNode<CLASS_TYPE>
* @param[in,out]
* @return
*/
int32_t Generate(etk::VectorType<int16_t> &data)
int32_t Generate(std::vector<int16_t> &data)
{
RegExpNode<CLASS_TYPE>::m_RegExpData = data;
//TK_DEBUG("Request Parse \"Value\" data="; DisplayElem(RegExpNode<CLASS_TYPE>::m_RegExpData););
m_data.Clear();
for (int32_t i=0; i<RegExpNode<CLASS_TYPE>::m_RegExpData.Size(); i++) {
m_data.PushBack((char)RegExpNode<CLASS_TYPE>::m_RegExpData[i]);
m_data.clear();
for (int32_t i=0; i<RegExpNode<CLASS_TYPE>::m_RegExpData.size(); i++) {
m_data.push_back((char)RegExpNode<CLASS_TYPE>::m_RegExpData[i]);
}
return data.Size();
return data.size();
};
/**
@ -253,7 +253,7 @@ template<class CLASS_TYPE> class RegExpNodeValue : public RegExpNode<CLASS_TYPE>
{
findLen = 0;
//TK_INFO("Parse node : Value{" << RegExpNode<CLASS_TYPE>::m_multipleMin << "," << RegExpNode<CLASS_TYPE>::m_multipleMax << "}");
if (0==m_data.Size()) {
if (0==m_data.size()) {
TK_ERROR("No data inside type elemTypeValue");
return false;
}
@ -263,14 +263,14 @@ template<class CLASS_TYPE> class RegExpNodeValue : public RegExpNode<CLASS_TYPE>
for (j=0; j<RegExpNode<CLASS_TYPE>::m_multipleMax && tmpFind == true; j++) {
int32_t ofset = 0;
int32_t k;
for (k=0; findLen+k<lenMax && k < m_data.Size(); k++) {
for (k=0; findLen+k<lenMax && k < m_data.size(); k++) {
if (m_data[k] != data[currentPos+findLen+k]) {
tmpFind=false;
break;
}
ofset++;
}
if (k != (int32_t)m_data.Size()) {
if (k != (int32_t)m_data.size()) {
// parsing not ended ...
tmpFind=false;
}
@ -303,7 +303,7 @@ template<class CLASS_TYPE> class RegExpNodeValue : public RegExpNode<CLASS_TYPE>
};
protected :
// SubNodes :
etk::VectorType<char> m_data;
std::vector<char> m_data;
};
#undef __class__
#define __class__ "etk::RegExpNodeBracket"
@ -336,38 +336,38 @@ template<class CLASS_TYPE> class RegExpNodeBracket : public RegExpNode<CLASS_TYP
* @param[in,out]
* @return
*/
int32_t Generate(etk::VectorType<int16_t> &data)
int32_t Generate(std::vector<int16_t> &data)
{
RegExpNode<CLASS_TYPE>::m_RegExpData = data;
//TK_DEBUG("Request Parse [...] data="; DisplayElem(RegExpNode<CLASS_TYPE>::m_RegExpData););
m_data.Clear();
m_data.clear();
char lastElement = 'a';
bool multipleElement = false;
//
for (int32_t k=0; k<RegExpNode<CLASS_TYPE>::m_RegExpData.Size(); k++) {
for (int32_t k=0; k<RegExpNode<CLASS_TYPE>::m_RegExpData.size(); k++) {
if (RegExpNode<CLASS_TYPE>::m_RegExpData[k] == REGEXP_OPCODE_TO && multipleElement == true) {
TK_ERROR("Can not have 2 consecutive - in [...]");
return 0;
} else if (multipleElement == true) {
char j='\0';
for (j=lastElement+1; j <= (char)RegExpNode<CLASS_TYPE>::m_RegExpData[k]; j++) {
m_data.PushBack(j);
m_data.push_back(j);
}
multipleElement = false;
} else if(RegExpNode<CLASS_TYPE>::m_RegExpData[k] == REGEXP_OPCODE_TO) {
multipleElement = true;
} else {
lastElement = (char)RegExpNode<CLASS_TYPE>::m_RegExpData[k];
m_data.PushBack(lastElement);
m_data.push_back(lastElement);
}
}
// check size ...
if (m_data.Size() == 0) {
if (m_data.size() == 0) {
TK_ERROR("No data inside [...] ");
return 0;
}
return data.Size();
return data.size();
};
/**
@ -379,7 +379,7 @@ template<class CLASS_TYPE> class RegExpNodeBracket : public RegExpNode<CLASS_TYP
{
findLen = 0;
//TK_INFO("Parse node : [...]{" << RegExpNode<CLASS_TYPE>::m_multipleMin << "," << RegExpNode<CLASS_TYPE>::m_multipleMax << "}");
if (0==m_data.Size()) {
if (0==m_data.size()) {
TK_ERROR("No data inside type elemTypeValue");
return false;
}
@ -389,7 +389,7 @@ template<class CLASS_TYPE> class RegExpNodeBracket : public RegExpNode<CLASS_TYP
for (j=0; j<RegExpNode<CLASS_TYPE>::m_multipleMax && tmpFind ==true && j < lenMax; j++) {
int32_t i;
tmpFind=false;
for (i=0; i<m_data.Size(); i++) {
for (i=0; i<m_data.size(); i++) {
if (m_data[i] == data[currentPos+j]) {
findLen += 1;
tmpFind=true;
@ -421,7 +421,7 @@ template<class CLASS_TYPE> class RegExpNodeBracket : public RegExpNode<CLASS_TYP
};
protected :
// SubNodes :
etk::VectorType<char> m_data;
std::vector<char> m_data;
};
#undef __class__
#define __class__ "etk::RegExpNodeDigit"
@ -1211,28 +1211,28 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
* @param[in,out]
* @return
*/
int32_t Generate(etk::VectorType<int16_t> &data)
int32_t Generate(std::vector<int16_t> &data)
{
RegExpNode<CLASS_TYPE>::m_RegExpData = data;
//TK_DEBUG("Request Parse (elem) data="; DisplayElem(RegExpNode<CLASS_TYPE>::m_RegExpData););
int32_t pos = 0;
int32_t elementSize = 0;
etk::VectorType<int16_t> tmpData;
while (pos < RegExpNode<CLASS_TYPE>::m_RegExpData.Size()) {
tmpData.Clear();
std::vector<int16_t> tmpData;
while (pos < RegExpNode<CLASS_TYPE>::m_RegExpData.size()) {
tmpData.clear();
switch (RegExpNode<CLASS_TYPE>::m_RegExpData[pos])
{
case REGEXP_OPCODE_PTHESE_IN:
{
elementSize=GetLenOfPThese(RegExpNode<CLASS_TYPE>::m_RegExpData, pos);
for (int32_t k=pos+1; k<pos+elementSize+1; k++) {
tmpData.PushBack(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
tmpData.push_back(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
}
RegExpNodePThese<CLASS_TYPE> * myElem = new RegExpNodePThese<CLASS_TYPE>();
(void)myElem->Generate(tmpData);
// add to the subnode list :
m_subNode.PushBack(myElem);
m_subNode.push_back(myElem);
// move current position ...
pos += elementSize+1;
}
@ -1245,12 +1245,12 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
{
elementSize=GetLenOfBracket(RegExpNode<CLASS_TYPE>::m_RegExpData, pos);
for (int32_t k=pos+1; k<pos+elementSize+1; k++) {
tmpData.PushBack(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
tmpData.push_back(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
}
RegExpNodeBracket<CLASS_TYPE> * myElem = new RegExpNodeBracket<CLASS_TYPE>();
(void)myElem->Generate(tmpData);
// add to the subnode list :
m_subNode.PushBack(myElem);
m_subNode.push_back(myElem);
// move current position ...
pos += elementSize+1;
}
@ -1263,7 +1263,7 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
{
elementSize=GetLenOfBrace(RegExpNode<CLASS_TYPE>::m_RegExpData, pos);
for (int32_t k=pos+1; k<pos+elementSize+1; k++) {
tmpData.PushBack(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
tmpData.push_back(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
}
int32_t min = 0;
int32_t max = 0;
@ -1299,59 +1299,59 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
return false;
case REGEXP_OPCODE_DOT:
m_subNode.PushBack(new RegExpNodeDot<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeDot<CLASS_TYPE>());
break;
case REGEXP_OPCODE_START_OF_LINE:
m_subNode.PushBack(new RegExpNodeSOL<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeSOL<CLASS_TYPE>());
break;
case REGEXP_OPCODE_END_OF_LINE:
m_subNode.PushBack(new RegExpNodeEOL<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeEOL<CLASS_TYPE>());
break;
case REGEXP_OPCODE_DIGIT:
m_subNode.PushBack(new RegExpNodeDigit<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeDigit<CLASS_TYPE>());
break;
case REGEXP_OPCODE_DIGIT_NOT:
m_subNode.PushBack(new RegExpNodeDigitNot<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeDigitNot<CLASS_TYPE>());
break;
case REGEXP_OPCODE_LETTER:
m_subNode.PushBack(new RegExpNodeLetter<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeLetter<CLASS_TYPE>());
break;
case REGEXP_OPCODE_LETTER_NOT:
m_subNode.PushBack(new RegExpNodeLetterNot<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeLetterNot<CLASS_TYPE>());
break;
case REGEXP_OPCODE_SPACE:
m_subNode.PushBack(new RegExpNodeWhiteSpace<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeWhiteSpace<CLASS_TYPE>());
break;
case REGEXP_OPCODE_SPACE_NOT:
m_subNode.PushBack(new RegExpNodeWhiteSpaceNot<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeWhiteSpaceNot<CLASS_TYPE>());
break;
case REGEXP_OPCODE_WORD:
m_subNode.PushBack(new RegExpNodeWordChar<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeWordChar<CLASS_TYPE>());
break;
case REGEXP_OPCODE_WORD_NOT:
m_subNode.PushBack(new RegExpNodeWordCharNot<CLASS_TYPE>());
m_subNode.push_back(new RegExpNodeWordCharNot<CLASS_TYPE>());
break;
default:
{
elementSize=GetLenOfNormal(RegExpNode<CLASS_TYPE>::m_RegExpData, pos);
for (int32_t k=pos; k<pos+elementSize; k++) {
tmpData.PushBack(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
tmpData.push_back(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
}
RegExpNodeValue<CLASS_TYPE> * myElem = new RegExpNodeValue<CLASS_TYPE>();
(void)myElem->Generate(tmpData);
// add to the subnode list :
m_subNode.PushBack(myElem);
m_subNode.push_back(myElem);
// move current position ...
pos += elementSize-1;
}
@ -1359,7 +1359,7 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
}
pos++;
}
return data.Size();
return data.size();
};
/**
@ -1373,11 +1373,11 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
//TK_INFO("Parse node : (Elem){" << RegExpNode<CLASS_TYPE>::m_multipleMin << "," << RegExpNode<CLASS_TYPE>::m_multipleMax << "}");
// NOTE 1 : Must done only one time in EVERY case ...
// NOTE 2 : All element inside must be OK
if (0 == m_subNode.Size()) {
if (0 == m_subNode.size()) {
return false;
}
int32_t tmpCurrentPos = currentPos;
for (int32_t i=0; i<m_subNode.Size(); i++) {
for (int32_t i=0; i<m_subNode.size(); i++) {
int32_t tmpFindLen;
if (false == m_subNode[i]->Parse(data, tmpCurrentPos, lenMax, tmpFindLen)) {
findLen = 0;
@ -1398,13 +1398,13 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
void Display(int32_t level)
{
TK_INFO("Find NODE : " << levelSpace(level) << "@(Elem)@ {" << RegExpNode<CLASS_TYPE>::m_multipleMin << "," << RegExpNode<CLASS_TYPE>::m_multipleMax << "} subdata="; DisplayElem(RegExpNode<CLASS_TYPE>::m_RegExpData););
for(int32_t i=0; i<m_subNode.Size(); i++) {
for(int32_t i=0; i<m_subNode.size(); i++) {
m_subNode[i]->Display(level+1);
}
};
protected :
// SubNodes :
etk::VectorType<RegExpNode<CLASS_TYPE>*> m_subNode;
std::vector<RegExpNode<CLASS_TYPE>*> m_subNode;
private :
/**
* @brief Set the number of repeate time on a the last node in the list ...
@ -1417,11 +1417,11 @@ template<class CLASS_TYPE> class RegExpNodePTheseElem : public RegExpNode<CLASS_
*/
bool SetMultiplicityOnLastNode(int32_t min, int32_t max)
{
if (0==m_subNode.Size()) {
if (0==m_subNode.size()) {
TK_ERROR("Set multiplicity on an inexistant element ....");
return false;
}
RegExpNode<CLASS_TYPE> * myNode = m_subNode[m_subNode.Size()-1];
RegExpNode<CLASS_TYPE> * myNode = m_subNode[m_subNode.size()-1];
if (NULL==myNode) {
TK_ERROR("INTERNAL error ==> node not generated");
return false;
@ -1461,7 +1461,7 @@ template<class CLASS_TYPE> class RegExpNodePThese : public RegExpNode<CLASS_TYPE
* @param[in,out]
* @return
*/
int32_t Generate(etk::VectorType<int16_t> &data)
int32_t Generate(std::vector<int16_t> &data)
{
RegExpNode<CLASS_TYPE>::m_RegExpData = data;
//TK_DEBUG("Request Parse (...) data="; DisplayElem(RegExpNode<CLASS_TYPE>::m_RegExpData););
@ -1471,14 +1471,14 @@ template<class CLASS_TYPE> class RegExpNodePThese : public RegExpNode<CLASS_TYPE
// generate all the "elemTypePTheseElem" of the Node
while (elementSize>0) {
// geerate output deta ...
etk::VectorType<int16_t> tmpData;
std::vector<int16_t> tmpData;
for (int32_t k=pos; k<pos+elementSize; k++) {
tmpData.PushBack(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
tmpData.push_back(RegExpNode<CLASS_TYPE>::m_RegExpData[k]);
}
RegExpNodePTheseElem<CLASS_TYPE> * myElem = new RegExpNodePTheseElem<CLASS_TYPE>();
(void)myElem->Generate(tmpData);
// add to the subnode list :
m_subNode.PushBack(myElem);
m_subNode.push_back(myElem);
pos += elementSize+1;
//TK_DEBUG("plop="; DisplayElem(data, pos, pos+1););
elementSize = GetLenOfPTheseElem(RegExpNode<CLASS_TYPE>::m_RegExpData, pos);
@ -1488,7 +1488,7 @@ template<class CLASS_TYPE> class RegExpNodePThese : public RegExpNode<CLASS_TYPE
TK_ERROR("No data in the (...) element at " << pos);
return false;
}
return data.Size();
return data.size();
};
/**
@ -1500,14 +1500,14 @@ template<class CLASS_TYPE> class RegExpNodePThese : public RegExpNode<CLASS_TYPE
{
findLen = 0;
//TK_INFO("Parse node : (...){" << RegExpNode<CLASS_TYPE>::m_multipleMin << "," << RegExpNode<CLASS_TYPE>::m_multipleMax << "}");
if (0 == m_subNode.Size()) {
if (0 == m_subNode.size()) {
return false;
}
bool tmpFind = true;
int32_t j;
for (j=0; j<RegExpNode<CLASS_TYPE>::m_multipleMax && tmpFind == true ; j++) {
tmpFind = false;
for (int32_t i=0; i<m_subNode.Size(); i++) {
for (int32_t i=0; i<m_subNode.size(); i++) {
int32_t tmpFindLen;
if (true == m_subNode[i]->Parse(data, currentPos+findLen, lenMax, tmpFindLen)) {
findLen += tmpFindLen;
@ -1539,7 +1539,7 @@ template<class CLASS_TYPE> class RegExpNodePThese : public RegExpNode<CLASS_TYPE
TK_INFO("regExp :"; DisplayElem(RegExpNode<CLASS_TYPE>::m_RegExpData););
} else {
TK_INFO("Find NODE : " << levelSpace(level) << "@(...)@ {" << RegExpNode<CLASS_TYPE>::m_multipleMin << "," << RegExpNode<CLASS_TYPE>::m_multipleMax << "} subdata="; DisplayElem(RegExpNode<CLASS_TYPE>::m_RegExpData););
for(int32_t i=0; i<m_subNode.Size(); i++) {
for(int32_t i=0; i<m_subNode.size(); i++) {
m_subNode[i]->Display(level+1);
}
}
@ -1547,7 +1547,7 @@ template<class CLASS_TYPE> class RegExpNodePThese : public RegExpNode<CLASS_TYPE
protected :
// SubNodes :
etk::VectorType<RegExpNode<CLASS_TYPE>*> m_subNode;
std::vector<RegExpNode<CLASS_TYPE>*> m_subNode;
//int32_t m_posPthese; //!< position of the element is detected in the output element
};
#undef __class__
@ -1634,7 +1634,7 @@ template<class CLASS_TYPE> class RegExp {
void SetRegExp(etk::UString &expressionRequested)
{
m_expressionRequested = expressionRequested; // TODO : Must be deprecated ...
etk::VectorType<int16_t> tmpExp;
std::vector<int16_t> tmpExp;
//TK_DEBUG("Parse RegExp : " << expressionRequested.c_str() );
m_isOk = false;
@ -1667,7 +1667,7 @@ template<class CLASS_TYPE> class RegExp {
if( true == constConvertionTable[j].haveBackSlash
&& exp[iii+1] == constConvertionTable[j].inputValue)
{
tmpExp.PushBack(constConvertionTable[j].newValue);
tmpExp.push_back(constConvertionTable[j].newValue);
break;
}
}
@ -1699,13 +1699,13 @@ template<class CLASS_TYPE> class RegExp {
if( false == constConvertionTable[j].haveBackSlash
&& exp[iii] == constConvertionTable[j].inputValue)
{
tmpExp.PushBack(constConvertionTable[j].newValue);
tmpExp.push_back(constConvertionTable[j].newValue);
break;
}
}
// not find : normal element
if (j==constConvertionTableSize) {
tmpExp.PushBack( ((int16_t)exp[iii]) & 0x00FF);
tmpExp.push_back( ((int16_t)exp[iii]) & 0x00FF);
}
}
}
@ -1730,25 +1730,25 @@ template<class CLASS_TYPE> class RegExp {
return;
}
//TK_DEBUG("Main element :"; DisplayElem(tmpExp, 0, tmpExp.Size()); );
if( tmpExp.Size()>0
//TK_DEBUG("Main element :"; DisplayElem(tmpExp, 0, tmpExp.size()); );
if( tmpExp.size()>0
&& REGEXP_OPCODE_NO_CHAR == tmpExp[0])
{
//TK_DEBUG("=> must not begin with char");
m_notBeginWithChar = true;
// remove element
tmpExp.Erase(0);
tmpExp.erase(tmpExp.begin());
}
if( tmpExp.Size()>0
&& REGEXP_OPCODE_NO_CHAR == tmpExp[tmpExp.Size()-1])
if( tmpExp.size()>0
&& REGEXP_OPCODE_NO_CHAR == *tmpExp.end())
{
//TK_DEBUG("=> must not end with char");
m_notEndWithChar = true;
// remove element
tmpExp.Erase(tmpExp.Size()-1);
tmpExp.erase(tmpExp.end());
}
if (tmpExp.Size() != m_exprRootNode.Generate(tmpExp) ) {
if (tmpExp.size() != m_exprRootNode.Generate(tmpExp) ) {
return;
}
// TODO : optimize node here ...
@ -1793,7 +1793,7 @@ template<class CLASS_TYPE> class RegExp {
if (false == m_isOk) {
return false;
}
int32_t buflen = SearchIn.Size();
int32_t buflen = SearchIn.size();
if (endPos > buflen) {
endPos = buflen;
}
@ -1831,7 +1831,7 @@ template<class CLASS_TYPE> class RegExp {
}
// Check end :
if (true == m_notEndWithChar) {
if (i+findLen < SearchIn.Size() ) {
if (i+findLen < SearchIn.size() ) {
char tmpVal = SearchIn[i+findLen];
if( ( 'a' <= tmpVal
&& 'z' >= tmpVal )
@ -1874,7 +1874,7 @@ template<class CLASS_TYPE> class RegExp {
if (false == m_isOk) {
return false;
}
int32_t buflen = SearchIn.Size();
int32_t buflen = SearchIn.size();
if (endPos > buflen) {
endPos = buflen;
}
@ -1910,7 +1910,7 @@ template<class CLASS_TYPE> class RegExp {
}
// Check end :
if (true == m_notEndWithChar) {
if (startPos+findLen < SearchIn.Size() ) {
if (startPos+findLen < SearchIn.size() ) {
char tmpVal = SearchIn[startPos+findLen];
if( ( 'a' <= tmpVal
&& 'z' >= tmpVal )
@ -1977,7 +1977,7 @@ template<class CLASS_TYPE> class RegExp {
* @param[in,out]
* @return
*/
bool CheckGoodPosition(etk::VectorType<int16_t> tmpExp, int32_t &pos)
bool CheckGoodPosition(std::vector<int16_t> tmpExp, int32_t &pos)
{
int16_t curentCode = tmpExp[pos];
int16_t endCode = REGEXP_OPCODE_PTHESE_OUT;
@ -1990,7 +1990,7 @@ template<class CLASS_TYPE> class RegExp {
input = (char*)"{x,x}";
}
pos++;
if (pos >= (int32_t)tmpExp.Size()) {
if (pos >= (int32_t)tmpExp.size()) {
TK_ERROR("ended with: ( or { or [ ... not permited");
return false;
}
@ -1998,7 +1998,7 @@ template<class CLASS_TYPE> class RegExp {
// case dependent :
if( REGEXP_OPCODE_BRACKET_IN == curentCode
|| REGEXP_OPCODE_BRACE_IN == curentCode) {
while(pos< (int32_t)tmpExp.Size()) {
while(pos< (int32_t)tmpExp.size()) {
//TK_DEBUG("check : " << tmpExp[pos]);
// if we find the end :
if (endCode == tmpExp[pos]) {
@ -2041,7 +2041,7 @@ template<class CLASS_TYPE> class RegExp {
pos++;
}
} else {
while(pos< (int32_t)tmpExp.Size()) {
while(pos< (int32_t)tmpExp.size()) {
if (endCode == tmpExp[pos]) {
// find the last element
return true;
@ -2083,10 +2083,10 @@ template<class CLASS_TYPE> class RegExp {
* @param[in,out]
* @return
*/
bool CheckGoodPosition(etk::VectorType<int16_t> tmpExp)
bool CheckGoodPosition(std::vector<int16_t> tmpExp)
{
int32_t pos = 0;
while (pos < (int32_t)tmpExp.Size()) {
while (pos < (int32_t)tmpExp.size()) {
//TK_DEBUG("check : " << tmpExp[pos]);
if( REGEXP_OPCODE_PTHESE_IN == tmpExp[pos]
|| REGEXP_OPCODE_BRACKET_IN == tmpExp[pos]

View File

@ -22,6 +22,7 @@
*******************************************************************************
*/
#include <etk/DebugInternal.h>
#include <etk/UString.h>
#include <etk/Memory.h>
#include <etk/unicode.h>
@ -47,9 +48,9 @@ int32_t strlen(const uniChar_t * data)
etk::CCout& etk::operator <<(etk::CCout &os, const etk::UString &obj)
{
etk::VectorType<char> output_UTF8;
std::vector<char> output_UTF8;
unicode::convertUnicodeToUtf8(obj.m_data, output_UTF8);
output_UTF8.PushBack('\0');
output_UTF8.push_back('\0');
os << &output_UTF8[0];
return os;
}
@ -64,8 +65,8 @@ etk::CCout& etk::operator <<(etk::CCout &os, const etk::UString &obj)
*/
etk::UString::~UString(void)
{
m_data.Clear();
m_dataUtf8.Clear();
m_data.clear();
m_dataUtf8.clear();
}
@ -80,8 +81,8 @@ etk::UString::~UString(void)
etk::UString::UString(void)
{
//TK_INFO("new etk::UString()");
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
}
@ -95,8 +96,8 @@ etk::UString::UString(void)
*/
etk::UString::UString(const char* inputData, int32_t len)
{
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
Set(inputData, len);
}
@ -111,8 +112,8 @@ etk::UString::UString(const char* inputData, int32_t len)
*/
etk::UString::UString(const uniChar_t* inputData, int32_t len)
{
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
Set(inputData, len);
}
/*
@ -135,18 +136,18 @@ void etk::UString::Set(const char * inputData, int32_t len)
len = strlen(inputData);
}
// convert the string
etk::VectorType<char> tmpChar;
std::vector<char> tmpChar;
for (int32_t iii=0; iii<len; iii++) {
tmpChar.PushBack(inputData[iii]);
tmpChar.push_back(inputData[iii]);
}
// add it ...
if (len != 0) {
// remove the last '\0'
m_data.PopBack();
m_data.pop_back();
// copy the data ...
unicode::convertUtf8ToUnicode(tmpChar, m_data);
// add the last '\0'
m_data.PushBack('\0');
m_data.push_back('\0');
}
}
@ -163,11 +164,13 @@ void etk::UString::Set(const uniChar_t * inputData, int32_t len)
if (len != 0) {
// remove the last '\0'
m_data.PopBack();
m_data.pop_back();
// copy the data ...
m_data.PushBack(inputData, len);
for (int32_t iii=0; iii<len; iii++) {
m_data.push_back(inputData[iii]);
}
// add the last '\0'
m_data.PushBack('\0');
m_data.push_back('\0');
}
}
/**
@ -184,8 +187,8 @@ etk::UString::UString(char inputData)
// generate the UString :
sprintf(tmpVal, "%c", inputData);
// set the internal data :
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
Set(tmpVal);
}
@ -196,8 +199,8 @@ etk::UString::UString(int inputData)
// generate the UString :
sprintf(tmpVal, "%d", inputData);
// set the internal data :
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
Set(tmpVal);
}
@ -216,8 +219,8 @@ etk::UString::UString(unsigned int inputData)
// generate the UString :
sprintf(tmpVal, "%d", inputData);
// set the internal data :
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
Set(tmpVal);
}
@ -227,8 +230,8 @@ etk::UString::UString(float inputData)
// generate the UString :
sprintf(tmpVal, "%f", inputData);
// set the internal data :
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
Set(tmpVal);
}
@ -238,8 +241,8 @@ etk::UString::UString(double inputData)
// generate the UString :
sprintf(tmpVal, "%lf", inputData);
// set the internal data :
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
Set(tmpVal);
}
@ -276,9 +279,9 @@ const etk::UString& etk::UString::operator= (const etk::UString &etkS )
* @return
*
*/
const etk::UString& etk::UString::operator= (etk::VectorType<char> inputData)
const etk::UString& etk::UString::operator= (std::vector<char> inputData)
{
etk::VectorType<uniChar_t> output_Unicode;
std::vector<uniChar_t> output_Unicode;
unicode::convertUtf8ToUnicode(inputData, output_Unicode);
*this = output_Unicode;
return *this;
@ -292,9 +295,9 @@ const etk::UString& etk::UString::operator= (etk::VectorType<char> inputData)
* @return
*
*/
const etk::UString& etk::UString::operator= (etk::VectorType<int8_t> inputData)
const etk::UString& etk::UString::operator= (std::vector<int8_t> inputData)
{
etk::VectorType<uniChar_t> output_Unicode;
std::vector<uniChar_t> output_Unicode;
unicode::convertUtf8ToUnicode(inputData, output_Unicode);
*this = output_Unicode;
return *this;
@ -309,12 +312,12 @@ const etk::UString& etk::UString::operator= (etk::VectorType<int8_t> inputData)
* @return
*
*/
const etk::UString& etk::UString::operator= (etk::VectorType<uniChar_t> inputData)
const etk::UString& etk::UString::operator= (std::vector<uniChar_t> inputData)
{
m_data = inputData;
if (m_data.Size()>0) {
if (m_data[m_data.Size()-1] != '\0') {
m_data.PushBack('\0');
if (m_data.size()>0) {
if (m_data[m_data.size()-1] != '\0') {
m_data.push_back('\0');
}
}
//TK_DEBUG("m_dataLen="<<m_dataLen << " m_dataLenUTF8="<<m_dataLenUTF8 << " description=" << m_data);
@ -343,7 +346,7 @@ uniChar_t changeOrder(uniChar_t 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++) {
for (int32_t iii=0; iii < m_data.size() && iii < etkS.m_data.size(); iii++) {
//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]);
@ -354,7 +357,7 @@ bool etk::UString::operator> (const etk::UString& etkS) const
return false;
}
}
if (m_data.Size() > etkS.m_data.Size()) {
if (m_data.size() > etkS.m_data.size()) {
return true;
}
}
@ -364,7 +367,7 @@ bool etk::UString::operator> (const etk::UString& etkS) const
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++) {
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) {
@ -374,7 +377,7 @@ bool etk::UString::operator>= (const etk::UString& etkS) const
return false;
}
}
if (m_data.Size() >= etkS.m_data.Size()) {
if (m_data.size() >= etkS.m_data.size()) {
return true;
}
}
@ -384,7 +387,7 @@ bool etk::UString::operator>= (const etk::UString& etkS) const
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++) {
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) {
@ -394,7 +397,7 @@ bool etk::UString::operator< (const etk::UString& etkS) const
return false;
}
}
if (m_data.Size() < etkS.m_data.Size()) {
if (m_data.size() < etkS.m_data.size()) {
return true;
}
}
@ -404,7 +407,7 @@ bool etk::UString::operator< (const etk::UString& etkS) const
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++) {
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) {
@ -414,7 +417,7 @@ bool etk::UString::operator<= (const etk::UString& etkS) const
return false;
}
}
if (m_data.Size() <= etkS.m_data.Size()) {
if (m_data.size() <= etkS.m_data.size()) {
return true;
}
}
@ -433,11 +436,11 @@ bool etk::UString::operator<= (const etk::UString& etkS) const
bool etk::UString::operator== (const etk::UString& etkS) const
{
if( this != &etkS ) {
if (etkS.m_data.Size() != m_data.Size()) {
if (etkS.m_data.size() != m_data.size()) {
//TK_DEBUG(" not the same size : " << etkS.m_data.Size() << "!=" << m_data.Size());
return false;
}
for (int32_t iii= 0; iii<m_data.Size(); iii++) {
for (int32_t iii= 0; iii<m_data.size(); iii++) {
//TK_DEBUG(" check : " << etkS.m_data[iii] << "!=" << m_data[iii]);
if (etkS.m_data[iii]!= m_data[iii]){
return false;
@ -476,13 +479,13 @@ const etk::UString& etk::UString::operator+= (const etk::UString &etkS)
{
if (0 < etkS.Size()) {
// remove the last '\0'
m_data.PopBack();
m_data.pop_back();
// copy the data ...
m_data += etkS.m_data;
m_data.insert(m_data.end(), etkS.m_data.begin(), etkS.m_data.end());
// This previous include the \0 in case of the 2 UString are different...
if( this == &etkS ) {
// add the removed end UString
m_data.PushBack('\0');
m_data.push_back('\0');
}
}
return *this;
@ -522,7 +525,7 @@ etk::UString etk::UString::operator+ (const etk::UString &etkS)
*/
bool etk::UString::IsEmpty(void) const
{
if(1 >= m_data.Size() ) {
if(1 >= m_data.size() ) {
return true;
} else {
return false;
@ -540,10 +543,10 @@ bool etk::UString::IsEmpty(void) const
*/
int32_t etk::UString::Size(void) const
{
if (m_data.Size() == 0) {
if (m_data.size() == 0) {
return 0;
} else {
return m_data.Size() - 1;
return m_data.size() - 1;
}
}
@ -582,10 +585,14 @@ void etk::UString::Add(int32_t currentID, const uniChar_t* inputData)
currentID = 0;
} else if (currentID > Size() ) {
TK_ERROR("Curent ID(" << currentID << ") > maxSize ... (" << Size() << ") ==> add at the end ...");
m_data.PushBack(inputData, len);
for (int32_t iii=0; iii<len; iii++) {
m_data.push_back(inputData[iii]);
}
return;
}
m_data.Insert(currentID, inputData, len);
for (int32_t iii=0; iii<len; iii++) {
m_data.insert(m_data.begin()+currentID+iii, inputData[iii]);
}
}
/**
@ -620,7 +627,7 @@ void etk::UString::Remove(int32_t currentID, int32_t len)
return;
}
// TODO : check the size of the data
m_data.EraseLen(currentID, len);
m_data.erase(m_data.begin()+currentID, m_data.begin()+currentID+len);
}
@ -634,8 +641,8 @@ void etk::UString::Remove(int32_t currentID, int32_t len)
*/
void etk::UString::Clear(void)
{
m_data.Clear();
m_data.PushBack('\0');
m_data.clear();
m_data.push_back('\0');
}
@ -720,8 +727,9 @@ etk::UString etk::UString::Extract(int32_t posStart, int32_t posEnd)
} else if (posEnd >= Size() ) {
posEnd = Size();
}
out.m_data = m_data.Extract(posStart, posEnd);
out.m_data.PushBack('\0');
out.m_data.clear();
out.m_data.insert(out.m_data.begin(), m_data.begin()+posStart, m_data.begin()+posEnd);
out.m_data.push_back('\0');
return out;
}
@ -734,10 +742,10 @@ etk::UString etk::UString::Extract(int32_t posStart, int32_t posEnd)
* @return The desired vector with data
*
*/
etk::VectorType<uniChar_t> etk::UString::GetVector(void)
std::vector<uniChar_t> etk::UString::GetVector(void)
{
etk::VectorType<uniChar_t> out = m_data;
out.PopBack();
std::vector<uniChar_t> out = m_data;
out.pop_back();
return out;
}
@ -783,9 +791,9 @@ bool etk::UString::EndWith(const etk::UString& data)
char * etk::UString::Utf8Data(void)
{
// UTF8 generation :
m_dataUtf8.Clear();
m_dataUtf8.clear();
unicode::convertUnicodeToUtf8(m_data, m_dataUtf8);
m_dataUtf8.PushBack('\0');
m_dataUtf8.push_back('\0');
return &m_dataUtf8[0];
}

View File

@ -26,7 +26,7 @@
#define __ETK_USTRING_H__
#include <etk/Stream.h>
#include <etk/VectorType.h>
#include <vector>
namespace etk
{
@ -54,9 +54,9 @@ namespace etk
* = assigment
*****************************************************/
const etk::UString& operator= (const etk::UString &etkS );
const etk::UString& operator= (etk::VectorType<char> inputData);
const etk::UString& operator= (etk::VectorType<int8_t> inputData);
const etk::UString& operator= (etk::VectorType<uniChar_t> inputData);
const etk::UString& operator= (std::vector<char> inputData);
const etk::UString& operator= (std::vector<int8_t> inputData);
const etk::UString& operator= (std::vector<uniChar_t> inputData);
/*****************************************************
* == operator
*****************************************************/
@ -131,7 +131,7 @@ namespace etk
void Remove(int32_t currentID, int32_t len);
void Clear(void);
etk::VectorType<uniChar_t> GetVector(void);
std::vector<uniChar_t> GetVector(void);
uniChar_t * pointer(void) { return &m_data[0]; };
// generate temporary allocation (auto unallocated...)
char * Utf8Data(void);
@ -140,8 +140,8 @@ namespace etk
etk::UString Extract(int32_t posStart=0, int32_t posEnd=0x7FFFFFFF);
private :
etk::VectorType<uniChar_t> m_data; //!< internal data is stored in the Unicode properties ...
etk::VectorType<char> m_dataUtf8; //!< Tmp data for the Utf8Data() function
std::vector<uniChar_t> m_data; //!< internal data is stored in the Unicode properties ...
std::vector<char> m_dataUtf8; //!< Tmp data for the Utf8Data() function
};
etk::CCout& operator <<(etk::CCout &os, const etk::UString &obj);

View File

@ -1,323 +0,0 @@
/**
*******************************************************************************
* @file etk/Vector.h
* @brief Ewol Tool Kit : Basic etk::Vector (template)
* @author Edouard DUPIN
* @date 07/04/2011
* @par Project
* Ewol TK
*
* @par Copyright
* Copyright 2011 Edouard DUPIN, all right reserved
*
* This software is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY.
*
* Licence summary :
* You can modify and redistribute the sources code and binaries.
* You can send me the bug-fix
*
* Term of the licence in in the file licence.txt.
*
*******************************************************************************
*/
#ifndef __ETK_VECTOR_H__
#define __ETK_VECTOR_H__
#include <etk/Types.h>
#include <etk/DebugInternal.h>
#include <etk/Memory.h>
#undef __class__
#define __class__ "etk::Vector"
/**
* @brief etkVector classes ...
*
* @tparam[in] T The type of objects to store.
* @tparam[in] INC Incrementation mode (0 : Exponential to 200 and increment by stemp of 200)
*
* @todo : Need to add : popBack / Assign / Insert / Erase / Swap / Clear
*
* m_data
* ---------- |-----------------------|
* | 0 |-------->| Class Data |
* |--------| |-----------------------|
* | 1 |----|
* |--------| |
* | 2 |====|==============| |-----------------------|
* |--------| | --->| Class Data |
* m_count | 3 |-| | |-----------------------|
* |--------| | |
* | x | | | |-----------------------|
* |--------| | -------->| Class Data |
* | x | | |-----------------------|
* |--------| |
* | x | |
* |--------| | |-----------------------|
* | x | --------------------->| Class Data |
* |--------| |-----------------------|
* | x |
* |--------|
* | x |
* |--------|
* m_size | x |
* ----------
*
*/
namespace etk
{
template<class T, int32_t INC=0> class Vector
{
public:
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
Vector(int count = 0):
m_data(NULL),
m_count(0),
m_size(0)
{
Resize(count);
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
Vector(const etk::Vector<T> & myVector):
m_size(myVector.m_size),
m_count(myVector.m_count),
m_data(NULL)
{
int32_t i;
ETK_MALLOC_CAST(m_data, m_size, T, T*);//reinterpret_cast<T*>);
for(i=0; i<m_count; i++) {
new (&m_data[i]) T(myVector[i]);
}
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
~Vector()
{
Destroy();
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
Vector& operator=(const etk::Vector<T> & etkVector)
{
int32_t i;
this->~etkVector();
m_size = etkVector.m_size;
m_count = etkVector.m_count;
ETK_MALLOC_CAST(m_data, m_size, T, T*);//reinterpret_cast<T*>);
for(i=0; i<m_count; i++) {
new (&m_data[i]) T(etkVector[i]);
}
return *this;
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
int32_t Size()
{
return m_count;
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
T& Get(int32_t pos)
{
return m_data[pos];
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
T& operator[] (int32_t pos)
{
return Get(pos);
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
const T& operator[] (int32_t pos) const
{
return m_data[pos];
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
int IndexOf(const T * item) const
{
int32_t res = item - m_data;
if( 0 > res
|| res >= Size())
{
return -1;
} else {
return res;
}
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
void PushBack(const T& item)
{
int32_t idx = Size();
Resize(idx+1);
Get(idx) = item;
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
void Resize(int32_t count)
{
int32_t i;
// Reallocate memory
if (count > m_size) {
ChangeAllocation(count);
}
// Remove deprecated element
for(i=count; i<m_count; i++) {
m_data[i].~T();
}
// Create nex item
for(i=m_count;i<count;i++) {
new (&m_data[i]) T();
}
m_count = count;
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
void ChangeAllocation(int count)
{
if (count > m_size) {
// generate new size
while(count > m_size) {
if (INC) {
m_size = (m_size + INC);
} else if (m_size==0) {
m_size = 1;
} else {
m_size = m_size * 2;
}
}
// Allocate the curent element
T * data = NULL;
ETK_MALLOC_CAST(data, m_size, T, T*);//reinterpret_cast<T*>);
for(int i=0; i<m_count; i++) {
new (&data[i]) T(m_data[i]);
}
Destroy();
m_data = data;
}
}
private:
T * m_data; //!< pointer on the current Data
int32_t m_count; //!< number of element
int32_t m_size; //!< current allocated size
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
void Destroy()
{
for(int i=0; i<m_count; i++) {
m_data[i].~T();
}
if (m_data) {
ETK_FREE(m_data);
}
}
};
}
#undef __class__
#define __class__ NULL
#endif

View File

@ -1,687 +0,0 @@
/**
*******************************************************************************
* @file etk/VectorType.h
* @brief Ewol Tool Kit : Basic VectorType for direct data insertion (template)
* @author Edouard DUPIN
* @date 07/04/2011
* @par Project
* Ewol TK
*
* @par Copyright
* Copyright 2011 Edouard DUPIN, all right reserved
*
* This software is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY.
*
* Licence summary :
* You can modify and redistribute the sources code and binaries.
* You can send me the bug-fix
*
* Term of the licence in in the file licence.txt.
*
*******************************************************************************
*/
#ifndef __ETK_VECTOR_TYPE_H__
#define __ETK_VECTOR_TYPE_H__
#include <etk/Types.h>
#include <etk/DebugInternal.h>
#include <etk/Memory.h>
#undef __class__
#define __class__ "etk::VectorType"
/**
* @brief VectorType classes ...
*
* @tparam[in] SIZE Size of the current element.
*
* m_data
* <------------ m_dataSize ------------>
* ----------------------------------------
* | 0 |
* |--------------------------------------|
* | 1 |
* |--------------------------------------|
* | 2 |
* |--------------------------------------|
* m_size | 3 |
* |--------------------------------------|
* | x |
* |--------------------------------------|
* | x |
* |--------------------------------------|
* | x |
* |--------------------------------------|
* | x |
* |--------------------------------------|
* | x |
* |--------------------------------------|
* | x |
* |--------------------------------------|
* m_allocated | x |
* ----------------------------------------
*
*/
namespace etk
{
template<typename MY_TYPE=int32_t> class VectorType
{
public:
class Iterator
{
// Private data :
private:
int32_t m_current; //!< curent Id on the vector
VectorType<MY_TYPE> * m_VectorType; //!< Pointer on the curent element of the vectorBin
public:
/**
* @brief Basic itarator constructor with no link with an etkVector
*/
Iterator():
m_current(-1),
m_VectorType(NULL)
{
// nothing to do ...
}
/**
* @brief Recopy constructor on a specific etkVector.
* @param[in] otherIterator The Iterator that might be copy
*/
Iterator(const Iterator & otherIterator):
m_current(otherIterator.m_current),
m_VectorType(otherIterator.m_VectorType)
{
// nothing to do ...
}
/**
* @brief Asignation operator.
* @param[in] otherIterator The Iterator that might be copy
* @return reference on the curent Iterator
*/
Iterator& operator=(const Iterator & otherIterator)
{
m_current = otherIterator.m_current;
m_VectorType = otherIterator.m_VectorType;
return *this;
}
/**
* @brief Basic destructor
*/
~Iterator()
{
m_current = -1;
m_VectorType = NULL;
}
/**
* @brief basic boolean cast
* @return true if the element is present in the etkVector size
*/
operator bool ()
{
if( 0 <= m_current
&& m_current < m_VectorType->Size() )
{
return true;
} else {
return false;
}
}
/**
* @brief Incremental operator
* @return Reference on the current iterator incremented
*/
Iterator& operator++ ()
{
if( NULL != m_VectorType
&& m_current < m_VectorType->Size() )
{
m_current++;
}
return *this;
}
/**
* @brief Decremental operator
* @return Reference on the current iterator decremented
*/
Iterator& operator-- ()
{
if (m_current >= 0) {
m_current--;
}
return *this;
}
/**
* @brief Incremental operator
* @return Reference on a new iterator and increment the other one
*/
Iterator operator++ (int32_t)
{
Iterator it(*this);
++(*this);
return it;
}
/**
* @brief Decremental operator
* @return Reference on a new iterator and decrement the other one
*/
Iterator operator-- (int32_t)
{
Iterator it(*this);
--(*this);
return it;
}
/**
* @brief Get reference on the current Element
* @return the reference on the current Element
*/
MY_TYPE & operator-> () const
{
TK_CHECK_INOUT(m_current >= 0 && m_current < m_VectorType->Size());
return &m_VectorType->Get(m_current);
}
/**
* @brief Get reference on the current Element
* @return the reference on the current Element
*/
MY_TYPE & operator* () const
{
TK_CHECK_INOUT(m_current >= 0 && m_current < m_VectorType->Size());
return m_VectorType->Get(m_current);
}
private:
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
Iterator(VectorType<MY_TYPE> * Evb, int32_t pos):
m_current(pos),
m_VectorType(Evb)
{
// nothing to do ...
}
friend class VectorType;
};
private:
MY_TYPE * m_data; //!< pointer on the curetn table of Data
int32_t m_size; //!< nb Element in the buffer
int32_t m_allocated; //!< Current allocated size
int32_t m_increment; //!< methode of increment
public:
/**
* @brief Create an empty vector
* @param[in] count Minimum request size of the Buffer
*/
VectorType(int32_t count = 0):
m_data(NULL),
m_size(0),
m_allocated(0),
m_increment(1)
{
ChangeAllocation(count);
}
/**
* @brief Re-copy constructor (copy all needed data)
* @param[in] Evb Vector that might be copy
*/
VectorType(const etk::VectorType<MY_TYPE> & Evb)
{
m_allocated = Evb.m_allocated;
m_size = Evb.m_size;
m_increment = Evb.m_increment;
m_data = NULL;
//TK_DEBUG("USE Specific vector allocator ... Evb.m_size=" << Evb.m_size << " Evb.m_increment=" << Evb.m_increment);
// allocate all same data
ETK_MALLOC(m_data, m_allocated, MY_TYPE);
TK_ASSERT(NULL!=m_data, "Error in data allocation");
// Copy all data ...
memcpy(m_data, Evb.m_data, m_allocated * sizeof(MY_TYPE) );
}
/**
* @brief Destructor of the current Class
*/
~VectorType()
{
if (NULL!=m_data) {
ETK_FREE(m_data);
m_data = NULL;
}
m_allocated = 0;
m_size = 0;
m_increment = 0;
}
/**
* @brief Re-copy operator
* @param[in] Evb Vector that might be copy
* @return reference on the curent re-copy vector
*/
VectorType& operator=(const etk::VectorType<MY_TYPE> & Evb)
{
//TK_DEBUG("USE RECOPY vector ... Evb.m_size=" << Evb.m_size << " Evb.m_increment=" << Evb.m_increment);
if( this != &Evb ) // avoid copy to itself
{
if (NULL!=m_data) {
ETK_FREE(m_data);
m_data = NULL;
}
// Set the new value
m_allocated = Evb.m_allocated;
m_size = Evb.m_size;
m_increment = Evb.m_increment;
// allocate all same data
ETK_MALLOC(m_data, m_allocated, MY_TYPE);
TK_ASSERT(NULL!=m_data, "Error in data allocation");
// Copy all data ...
memcpy(m_data, Evb.m_data, m_allocated * sizeof(MY_TYPE) );
}
// Return the curent pointer
return *this;
}
/**
* @brief Add at the Last position of the Vector
* @param[in] item Element to add at the end of vector
*/
VectorType& operator+= (const etk::VectorType<MY_TYPE> & Evb) // += operator
{
int32_t nbElememt = Evb.Size();
int32_t idx = m_size;
Resize(m_size+nbElememt);
memcpy(&m_data[idx], &Evb.m_data[0], nbElememt*sizeof(MY_TYPE) );
// Return the curent pointer
return *this;
}
/**
* @brief Set increment mode of this vector (default it match corectly with the number of element inside)
* @param[in] newIncrementNumber methode requested
*/
void SetIncrement(int32_t newIncrementNumber)
{
m_increment = newIncrementNumber;
}
/**
* @brief Get the number of element in the vector
* @return The number requested
*/
int32_t Size() const
{
return m_size;
}
/**
* @brief Get the Allocated size in the vector
* @return The size of allocation
*/
int32_t AllocatedSize() const
{
return m_allocated;
}
/**
* @brief Get a current element in the vector
* @param[in] pos Desired position read
* @return Reference on the Element
*/
MY_TYPE& Get(int32_t pos)
{
return m_data[pos];
}
/**
* @brief Get an copy Element an a special position
* @param[in] pos Position in the vector that might be get [0..Size()]
* @return An reference on the copy of selected element
*/
MY_TYPE& operator[] (int32_t pos)
{
return Get(pos);
}
/**
* @brief Get an Element an a special position
* @param[in] pos Position in the vector that might be get [0..Size()]
* @return An reference on the selected element
*/
const MY_TYPE& operator[] (int32_t pos) const
{
return m_data[pos];
}
/**
* @brief Add at the Last position of the Vector
* @param[in] item Element to add at the end of vector
*/
void PushBack(const MY_TYPE& item)
{
int32_t idx = m_size;
Resize(m_size+1);
m_data[idx] = item;
}
/**
* @brief Add at the Last position of the Vector
* @param[in] item Element to add at the end of vector
*/
void PushBack(const MY_TYPE * item, int32_t nbElement)
{
if (NULL == item) {
return;
}
int32_t idx = m_size;
Resize(m_size+nbElement);
memcpy(&m_data[idx], item, nbElement*sizeof(MY_TYPE) );
}
/**
* @brief Remove the last element of the vector
*/
void PopBack(void)
{
if(m_size>0) {
Resize(m_size-1);
}
}
/**
* @brief Remove all alement in the current vector
*/
void Clear(void)
{
if(m_size>0) {
Resize(0);
}
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
void Insert(int32_t pos, const MY_TYPE& item)
{
if (pos>m_size) {
TK_ERROR(" can not insert Element at this position : " << pos << " > " << m_size<< " add it at the end ... ");
PushBack(item);
return;
}
int32_t tmpSize = m_size;
// Request resize of the current buffer
Resize(m_size+1);
// move curent data
int32_t sizeToMove = (tmpSize - pos)*sizeof(MY_TYPE);
if ( 0 < sizeToMove) {
memmove((m_data + pos + 1), (m_data + pos), sizeToMove );
}
// affectation of the current element
m_data[pos] = item;
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
void Insert(int32_t pos, const MY_TYPE * item, int32_t nbElement)
{
if (pos>m_size) {
TK_WARNING(" can not insert Element at this position : " << pos << " > " << m_size << " add it at the end ... ");
PushBack(item, nbElement);
return;
}
int32_t tmpSize = m_size;
// Request resize of the current buffer
Resize(m_size+nbElement);
// move curent data (after the position)
int32_t sizeToMove = (tmpSize - pos)*sizeof(MY_TYPE);
if ( 0 < sizeToMove) {
memmove((m_data + pos + nbElement), (m_data + pos), sizeToMove );
}
// affectation of all input element
memcpy(&m_data[pos], item, nbElement*sizeof(MY_TYPE) );
}
/**
* @brief Remove one element
*
* @param[in] pos Position to remove the data
*
* @return ---
*
*/
void Erase(int32_t pos)
{
if (pos<0 || (uint32_t)pos>m_size) {
TK_ERROR(" can not Erase Element at this position : " << pos << " > " << m_size);
return;
}
int32_t tmpSize = m_size;
int32_t sizeToMove = (tmpSize - (pos+1))*sizeof(MY_TYPE);
if ( 0 < sizeToMove) {
// move curent data
memmove((m_data + pos), (m_data + pos + 1), sizeToMove );
}
// Request resize of the current buffer
Resize(m_size-1);
}
/**
* @brief Remove N elements
*
* @param[in] pos Position to remove the data
* @param[in] posEnd Last position number
*
* @return ---
*
*/
void Erase(int32_t pos, int32_t posEnd)
{
if (pos>m_size) {
TK_ERROR(" can not Erase Element at this position : " << pos << " > " << m_size);
return;
}
if (posEnd>m_size) {
posEnd = m_size;
}
int32_t nbElement = m_size - pos;
int32_t tmpSize = m_size;
// move curent data
int32_t sizeToMove = (tmpSize - (pos+nbElement))*sizeof(MY_TYPE);
if ( 0 < sizeToMove) {
memmove((m_data + pos), (m_data + pos + nbElement), sizeToMove );
}
// Request resize of the current buffer
Resize(m_size-nbElement);
}
/**
* @brief Remove N element
*
* @param[in] pos Position to remove the data
* @param[in] nbElement number of element to remove
*
* @return ---
*
*/
void EraseLen(int32_t pos, int32_t nbElement)
{
if (pos>m_size) {
TK_ERROR(" can not Erase Len Element at this position : " << pos << " > " << m_size);
return;
}
if (pos+nbElement>m_size) {
nbElement = m_size - pos;
}
int32_t tmpSize = m_size;
// move curent data
int32_t sizeToMove = (tmpSize - (pos+nbElement))*sizeof(MY_TYPE);
if ( 0 < sizeToMove) {
memmove((m_data + pos), (m_data + pos + nbElement), sizeToMove );
}
// Request resize of the current buffer
Resize(m_size-nbElement);
}
/**
* @brief extract data between two point :
* @param[in] posStart start position to extract data
* @param[in] posEnd End position to extract data
* @return the extracted vector
*/
VectorType Extract(int32_t posStart = 0, int32_t posEnd=0x7FFFFFFF)
{
VectorType<MY_TYPE> out;
if (posStart < 0) {
posStart = 0;
} else if (posStart >= Size() ) {
return out;
}
if (posEnd < 0) {
return out;
} else if (posEnd >= Size() ) {
posEnd = Size();
}
out.PushBack(&m_data[posStart], posEnd-posStart);
return out;
}
/**
* @brief Set the minimum allocation in memory for the curent vector ==> reallocate the
* buffer to fit exactly the mumber of element needed
*/
void Fit(void)
{
if (m_size > m_allocated) {
// Reallocate the curent data to the correct size ...
ETK_REALLOC(m_data, m_size, MY_TYPE);
}
// Check result with assert :
TK_ASSERT(NULL!=m_data, "Error in data Fitting");
m_allocated = m_size;
}
/**
* @brief Get an iterator an an specific position
* @param[in] pos Requested position of the iterator in the vector
* @return The Iterator
*/
Iterator Position(int32_t pos)
{
return Iterator(this, pos);
}
/**
* @brief Get an Iterator on the start position of the Vector
* @return The Iterator
*/
Iterator Begin(void)
{
return Position(0);
}
/**
* @brief Get an Iterator on the end position of the Vector
* @return The Iterator
*/
Iterator End(void)
{
return Position( Size()-1 );
}
private:
/**
* @brief Change the current size of the vector
* @param[in] newSize New requested size of element in the vector
*/
void Resize(int32_t newSize)
{
// Reallocate memory
if (newSize > m_allocated) {
ChangeAllocation(newSize);
}
m_size = newSize;
}
/**
* @brief Change the current allocation to the corect one (depend on the current size)
* @param[in] newSize Minimum number of element needed
*/
void ChangeAllocation(int32_t newSize)
{
// set the minimal size to 1
if(newSize <= 0) {
newSize = 1;
}
int32_t requestSize = m_allocated;
// set the size with the corect chose type :
if (newSize == m_allocated) {
return;
} else if (newSize < requestSize) {
// down the size of the vector:
if (0==m_increment) {
// never down size...
} else {
int32_t devide = m_increment;
if (devide == 0) {
devide = 1;
}
int32_t numberOfStep = m_allocated / devide;
if (newSize< ((numberOfStep-2)*devide + devide/2) ) {
//Allow Reallocation of a new size shorter
requestSize = ((newSize / devide)+1) * devide;
}
}
} else {
while(newSize > requestSize) {
if (0 == requestSize) {
requestSize = 1;
} else if (0==m_increment) {
requestSize = requestSize * 2;
} else {
requestSize = (requestSize + m_increment);
}
}
}
// No reallocation needed :
if (requestSize == m_allocated) {
return;
}
// check if something is allocated :
if (NULL == m_data) {
// no data allocated ==> request an allocation (might be the first)
ETK_MALLOC(m_data, requestSize, MY_TYPE);
} else {
// move datas
ETK_REALLOC(m_data, requestSize, MY_TYPE);
}
// Check result with assert :
TK_ASSERT(NULL!=m_data, "Error in data allocation");
// set the new allocation size
m_allocated = requestSize;
}
};
}
#undef __class__
#define __class__ NULL
#endif

View File

@ -39,20 +39,20 @@ int32_t etk::tool::irand(int32_t a, int32_t b)
}
void etk::tool::SortList(etk::VectorType<etk::UString *> &m_listDirectory)
void etk::tool::SortList(std::vector<etk::UString *> &m_listDirectory)
{
etk::VectorType<etk::UString *> tmpList = m_listDirectory;
m_listDirectory.Clear();
for(int32_t iii=0; iii<tmpList.Size(); iii++) {
std::vector<etk::UString *> tmpList = m_listDirectory;
m_listDirectory.clear();
for(int32_t iii=0; iii<tmpList.size(); iii++) {
int32_t findPos = 0;
for(int32_t jjj=0; jjj<m_listDirectory.Size(); jjj++) {
for(int32_t jjj=0; jjj<m_listDirectory.size(); jjj++) {
//EWOL_DEBUG("compare : \""<<*tmpList[iii] << "\" and \"" << *m_listDirectory[jjj] << "\"");
if (*tmpList[iii] > *m_listDirectory[jjj]) {
findPos = jjj+1;
}
}
//EWOL_DEBUG("position="<<findPos);
m_listDirectory.Insert(findPos, tmpList[iii]);
m_listDirectory.insert(m_listDirectory.begin()+findPos, tmpList[iii]);
}
}

View File

@ -32,7 +32,7 @@ namespace etk {
namespace tool {
float frand(float a, float b);
int32_t irand(int32_t a, int32_t b);
void SortList(etk::VectorType<etk::UString *> &m_listDirectory);
void SortList(std::vector<etk::UString *> &m_listDirectory);
};
};

View File

@ -24,8 +24,8 @@
// cf : http://unicode.org/fr/charts/symbols.html#CombiningDiacriticalMarks
#include <etk/DebugInternal.h>
#include <etk/Types.h>
#include <etk/Debug.h>
#include <etk/unicodeTable.h>
#include <etk/unicode.h>
@ -58,7 +58,7 @@ void unicode::convertIsoToUnicode(charset_te inputCharset, char input_ISO, uniCh
#endif
break;
default :
TK_WARNING("Unknow charset ... " << inputCharset);
TK_WARNING("Unknow charset ... " << (int32_t)inputCharset);
output_Unicode = '?';
break;
}
@ -99,69 +99,69 @@ void unicode::convertUnicodeToIso(charset_te inputCharset, uniChar_t input_Unico
}
int32_t unicode::convertIsoToUnicode(charset_te inputCharset, etk::VectorType<char>& input_ISO, etk::VectorType<uniChar_t>& output_Unicode)
int32_t unicode::convertIsoToUnicode(charset_te inputCharset, std::vector<char>& input_ISO, std::vector<uniChar_t>& output_Unicode)
{
output_Unicode.Clear();
output_Unicode.clear();
uniChar_t output;
for(int32_t iii=0; iii<input_ISO.Size(); iii++) {
for(int32_t iii=0; iii<input_ISO.size(); iii++) {
convertIsoToUnicode(inputCharset, (char)input_ISO[iii], output);
output_Unicode.PushBack(output);
output_Unicode.push_back(output);
}
if (output_Unicode.Size() == 0) {
output_Unicode.PushBack(0);
} else if (output_Unicode[output_Unicode.Size()-1] != 0) {
output_Unicode.PushBack(0);
if (output_Unicode.size() == 0) {
output_Unicode.push_back(0);
} else if (output_Unicode[output_Unicode.size()-1] != 0) {
output_Unicode.push_back(0);
}
return output_Unicode.Size();
return output_Unicode.size();
}
int32_t unicode::convertIsoToUnicode(charset_te inputCharset, etk::VectorType<int8_t>& input_ISO, etk::VectorType<uniChar_t>& output_Unicode)
int32_t unicode::convertIsoToUnicode(charset_te inputCharset, std::vector<int8_t>& input_ISO, std::vector<uniChar_t>& output_Unicode)
{
output_Unicode.Clear();
output_Unicode.clear();
uniChar_t output;
for(int32_t iii=0; iii<input_ISO.Size(); iii++) {
for(int32_t iii=0; iii<input_ISO.size(); iii++) {
convertIsoToUnicode(inputCharset, (char)input_ISO[iii], output);
output_Unicode.PushBack(output);
output_Unicode.push_back(output);
}
if (output_Unicode.Size() == 0) {
output_Unicode.PushBack(0);
} else if (output_Unicode[output_Unicode.Size()-1] != 0) {
output_Unicode.PushBack(0);
if (output_Unicode.size() == 0) {
output_Unicode.push_back(0);
} else if (output_Unicode[output_Unicode.size()-1] != 0) {
output_Unicode.push_back(0);
}
return output_Unicode.Size();
return output_Unicode.size();
}
int32_t unicode::convertUnicodeToIso(charset_te inputCharset, etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<char>& output_ISO)
int32_t unicode::convertUnicodeToIso(charset_te inputCharset, std::vector<uniChar_t>& input_Unicode, std::vector<char>& output_ISO)
{
output_ISO.Clear();
output_ISO.clear();
char output[10];
for(int32_t iii=0; iii<input_Unicode.Size(); iii++) {
for(int32_t iii=0; iii<input_Unicode.size(); iii++) {
convertUnicodeToUtf8(input_Unicode[iii], output);
char * tmp = output;
while(*tmp != '\0') {
output_ISO.PushBack(*tmp);
output_ISO.push_back(*tmp);
tmp++;
}
}
output_ISO.PushBack(0);
return output_ISO.Size();
output_ISO.push_back(0);
return output_ISO.size();
}
int32_t unicode::convertUnicodeToIso(charset_te inputCharset, etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<int8_t>& output_ISO)
int32_t unicode::convertUnicodeToIso(charset_te inputCharset, std::vector<uniChar_t>& input_Unicode, std::vector<int8_t>& output_ISO)
{
output_ISO.Clear();
output_ISO.clear();
char output[10];
for(int32_t iii=0; iii<input_Unicode.Size(); iii++) {
for(int32_t iii=0; iii<input_Unicode.size(); iii++) {
convertUnicodeToUtf8(input_Unicode[iii], output);
char * tmp = output;
while(*tmp != '\0') {
output_ISO.PushBack(*tmp);
output_ISO.push_back(*tmp);
tmp++;
}
}
output_ISO.PushBack(0);
return output_ISO.Size();
output_ISO.push_back(0);
return output_ISO.size();
}
@ -254,45 +254,45 @@ void unicode::convertUtf8ToUnicode(char * input_UTF8, uniChar_t &output_Unicode)
}
int32_t unicode::convertUnicodeToUtf8(const etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<char>& output_UTF8)
int32_t unicode::convertUnicodeToUtf8(const std::vector<uniChar_t>& input_Unicode, std::vector<char>& output_UTF8)
{
char output[10];
for (int32_t iii=0; iii<input_Unicode.Size(); iii++) {
for (int32_t iii=0; iii<input_Unicode.size(); iii++) {
unicode::convertUnicodeToUtf8(input_Unicode[iii], output);
char * tmp = output ;
while (*tmp != '\0') {
output_UTF8.PushBack(*tmp);
output_UTF8.push_back(*tmp);
tmp++;
}
}
output_UTF8.PushBack('\0');
return output_UTF8.Size()-1;
output_UTF8.push_back('\0');
return output_UTF8.size()-1;
}
int32_t unicode::convertUnicodeToUtf8(const etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<int8_t>& output_UTF8)
int32_t unicode::convertUnicodeToUtf8(const std::vector<uniChar_t>& input_Unicode, std::vector<int8_t>& output_UTF8)
{
char output[10];
for (int32_t iii=0; iii<input_Unicode.Size(); iii++) {
for (int32_t iii=0; iii<input_Unicode.size(); iii++) {
unicode::convertUnicodeToUtf8(input_Unicode[iii], output);
char * tmp = output ;
while (*tmp != '\0') {
output_UTF8.PushBack((int8_t)*tmp);
output_UTF8.push_back((int8_t)*tmp);
tmp++;
}
}
output_UTF8.PushBack('\0');
return output_UTF8.Size()-1;
output_UTF8.push_back('\0');
return output_UTF8.size()-1;
}
int32_t unicode::convertUtf8ToUnicode(etk::VectorType<char>& input_UTF8, etk::VectorType<uniChar_t>& output_Unicode)
int32_t unicode::convertUtf8ToUnicode(std::vector<char>& input_UTF8, std::vector<uniChar_t>& output_Unicode)
{
char tmpData[20];
int32_t pos = 0;
while (pos < input_UTF8.Size()) {
int32_t lenMax = input_UTF8.Size() - pos;
while (pos < input_UTF8.size()) {
int32_t lenMax = input_UTF8.size() - pos;
//4 case
if( 1<=lenMax
&& 0x00 == (input_UTF8[pos+0] & 0x80) )
@ -333,17 +333,17 @@ int32_t unicode::convertUtf8ToUnicode(etk::VectorType<char>& input_UTF8, etk::Ve
}
uniChar_t tmpUnicode;
convertUtf8ToUnicode(tmpData, tmpUnicode);
output_Unicode.PushBack(tmpUnicode);
output_Unicode.push_back(tmpUnicode);
}
return 0;
}
int32_t unicode::convertUtf8ToUnicode(etk::VectorType<int8_t>& input_UTF8, etk::VectorType<uniChar_t>& output_Unicode)
int32_t unicode::convertUtf8ToUnicode(std::vector<int8_t>& input_UTF8, std::vector<uniChar_t>& output_Unicode)
{
char tmpData[20];
int32_t pos = 0;
while (pos < input_UTF8.Size()) {
int32_t lenMax = input_UTF8.Size() - pos;
while (pos < input_UTF8.size()) {
int32_t lenMax = input_UTF8.size() - pos;
//4 case
if( 1<=lenMax
&& 0x00 == (input_UTF8[pos+0] & 0x80) )
@ -384,12 +384,12 @@ int32_t unicode::convertUtf8ToUnicode(etk::VectorType<int8_t>& input_UTF8, etk::
}
uniChar_t tmpUnicode;
convertUtf8ToUnicode(tmpData, tmpUnicode);
output_Unicode.PushBack(tmpUnicode);
output_Unicode.push_back(tmpUnicode);
}
return 0;
}
int32_t unicode::convertUtf8ToUnicode(char * input_UTF8, etk::VectorType<uniChar_t>& output_Unicode)
int32_t unicode::convertUtf8ToUnicode(char * input_UTF8, std::vector<uniChar_t>& output_Unicode)
{
char tmpData[20];
int32_t pos = 0;
@ -439,7 +439,7 @@ int32_t unicode::convertUtf8ToUnicode(char * input_UTF8, etk::VectorType<uniChar
}
uniChar_t tmpUnicode;
convertUtf8ToUnicode(tmpData, tmpUnicode);
output_Unicode.PushBack(tmpUnicode);
output_Unicode.push_back(tmpUnicode);
}
return 0;
}
@ -466,14 +466,14 @@ void unicode::convertUtf8ToIso(charset_te inputCharset, char * input_UTF8, char
}
int32_t unicode::convertIsoToUtf8(charset_te inputCharset, etk::VectorType<char>& input_ISO, etk::VectorType<char>& output_UTF8)
int32_t unicode::convertIsoToUtf8(charset_te inputCharset, std::vector<char>& input_ISO, std::vector<char>& output_UTF8)
{
TK_WARNING("TODO : not coded...");
return 0;
}
int32_t unicode::convertUtf8ToIso(charset_te inputCharset, etk::VectorType<char>& input_UTF8, etk::VectorType<char>& output_ISO)
int32_t unicode::convertUtf8ToIso(charset_te inputCharset, std::vector<char>& input_UTF8, std::vector<char>& output_ISO)
{
TK_WARNING("TODO : not coded...");
return 0;

View File

@ -26,7 +26,7 @@
#define __UNICODE_H__
#include <etk/Types.h>
#include <etk/VectorType.h>
#include <vector>
namespace unicode {
typedef enum {
EDN_CHARSET_UTF8,
@ -47,25 +47,25 @@ namespace unicode {
} charset_te;
// transform ISO <==> Unicode
void convertIsoToUnicode(charset_te inputCharset, char input_ISO, uniChar_t & output_Unicode);
void convertUnicodeToIso(charset_te inputCharset, uniChar_t input_Unicode, char & output_ISO);
int32_t convertIsoToUnicode(charset_te inputCharset, etk::VectorType<char>& input_ISO, etk::VectorType<uniChar_t>& output_Unicode);
int32_t convertIsoToUnicode(charset_te inputCharset, etk::VectorType<int8_t>& input_ISO, etk::VectorType<uniChar_t>& output_Unicode);
int32_t convertUnicodeToIso(charset_te inputCharset, etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<char>& output_ISO);
int32_t convertUnicodeToIso(charset_te inputCharset, etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<int8_t>& output_ISO);
void convertIsoToUnicode(charset_te inputCharset, char input_ISO, uniChar_t & output_Unicode);
void convertUnicodeToIso(charset_te inputCharset, uniChar_t input_Unicode, char & output_ISO);
int32_t convertIsoToUnicode(charset_te inputCharset, std::vector<char>& input_ISO, std::vector<uniChar_t>& output_Unicode);
int32_t convertIsoToUnicode(charset_te inputCharset, std::vector<int8_t>& input_ISO, std::vector<uniChar_t>& output_Unicode);
int32_t convertUnicodeToIso(charset_te inputCharset, std::vector<uniChar_t>& input_Unicode, std::vector<char>& output_ISO);
int32_t convertUnicodeToIso(charset_te inputCharset, std::vector<uniChar_t>& input_Unicode, std::vector<int8_t>& output_ISO);
// Transform UTF-8 <==> Unicode
void convertUnicodeToUtf8( uniChar_t input_Unicode, char * output_UTF8);
void convertUtf8ToUnicode( char * input_UTF8, uniChar_t& output_Unicode);
int32_t convertUnicodeToUtf8( const etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<char>& output_UTF8);
int32_t convertUnicodeToUtf8( const etk::VectorType<uniChar_t>& input_Unicode, etk::VectorType<int8_t>& output_UTF8);
int32_t convertUtf8ToUnicode( etk::VectorType<char>& input_UTF8, etk::VectorType<uniChar_t>& output_Unicode);
int32_t convertUtf8ToUnicode( etk::VectorType<int8_t>& input_UTF8, etk::VectorType<uniChar_t>& output_Unicode);
int32_t convertUtf8ToUnicode( char * input_UTF8, etk::VectorType<uniChar_t>& output_Unicode);
void convertUnicodeToUtf8( uniChar_t input_Unicode, char * output_UTF8);
void convertUtf8ToUnicode( char * input_UTF8, uniChar_t& output_Unicode);
int32_t convertUnicodeToUtf8( const std::vector<uniChar_t>& input_Unicode, std::vector<char>& output_UTF8);
int32_t convertUnicodeToUtf8( const std::vector<uniChar_t>& input_Unicode, std::vector<int8_t>& output_UTF8);
int32_t convertUtf8ToUnicode( std::vector<char>& input_UTF8, std::vector<uniChar_t>& output_Unicode);
int32_t convertUtf8ToUnicode( std::vector<int8_t>& input_UTF8, std::vector<uniChar_t>& output_Unicode);
int32_t convertUtf8ToUnicode( char * input_UTF8, std::vector<uniChar_t>& output_Unicode);
// Transform ISO <==> UTF-8
void convertIsoToUtf8( charset_te inputCharset, char input_ISO, char * output_UTF8);
void convertUtf8ToIso( charset_te inputCharset, char * input_UTF8, char & output_ISO);
int32_t convertIsoToUtf8( charset_te inputCharset, etk::VectorType<char>& input_ISO, etk::VectorType<char>& output_UTF8);
int32_t convertUtf8ToIso( charset_te inputCharset, etk::VectorType<char>& input_UTF8, etk::VectorType<char>& output_ISO);
void convertIsoToUtf8( charset_te inputCharset, char input_ISO, char * output_UTF8);
void convertUtf8ToIso( charset_te inputCharset, char * input_UTF8, char & output_ISO);
int32_t convertIsoToUtf8( charset_te inputCharset, std::vector<char>& input_ISO, std::vector<char>& output_UTF8);
int32_t convertUtf8ToIso( charset_te inputCharset, std::vector<char>& input_UTF8, std::vector<char>& output_ISO);
void Utf8_SizeElement(const char * data, int32_t lenMax , uint8_t &size, bool &baseValid);
int32_t strUtf8Len(const char *input_UTF8);

View File

@ -311,14 +311,14 @@ class RequestPlay {
}
};
#include <etk/VectorType.h>
etk::VectorType<EffectsLoaded*> ListEffects;
etk::VectorType<RequestPlay*> ListEffectsPlaying;
#include <vector>
std::vector<EffectsLoaded*> ListEffects;
std::vector<RequestPlay*> ListEffectsPlaying;
int32_t ewol::audio::effects::Add(etk::UString file)
{
for (int32_t iii=0; iii<ListEffects.Size(); iii++) {
for (int32_t iii=0; iii<ListEffects.size(); iii++) {
if (NULL != ListEffects[iii]) {
if (ListEffects[iii]->m_file == file) {
ListEffects[iii]->m_requestedTime++;
@ -332,16 +332,16 @@ int32_t ewol::audio::effects::Add(etk::UString file)
EWOL_ERROR("Error to load the effects : \"" << file << "\"");
return -1;
}
ListEffects.PushBack(tmpEffect);
return ListEffects.Size()-1;
ListEffects.push_back(tmpEffect);
return ListEffects.size()-1;
}
void ewol::audio::effects::Rm(int32_t effectId)
{
// find element ...
if (effectId <0 || effectId >= ListEffects.Size()) {
EWOL_ERROR("Wrong effect ID : " << effectId << " != [0.." << ListEffects.Size()-1 << "] ==> can not remove it ...");
if (effectId <0 || effectId >= ListEffects.size()) {
EWOL_ERROR("Wrong effect ID : " << effectId << " != [0.." << ListEffects.size()-1 << "] ==> can not remove it ...");
return;
}
if (ListEffects[effectId] == NULL) {
@ -361,8 +361,8 @@ void ewol::audio::effects::Rm(int32_t effectId)
void ewol::audio::effects::Play(int32_t effectId, float xxx, float yyy)
{
if (effectId <0 || effectId >= ListEffects.Size()) {
EWOL_ERROR("Wrong effect ID : " << effectId << " != [0.." << ListEffects.Size()-1 << "] ==> can not play it ...");
if (effectId <0 || effectId >= ListEffects.size()) {
EWOL_ERROR("Wrong effect ID : " << effectId << " != [0.." << ListEffects.size()-1 << "] ==> can not play it ...");
return;
}
if (ListEffects[effectId] == NULL) {
@ -371,7 +371,7 @@ void ewol::audio::effects::Play(int32_t effectId, float xxx, float yyy)
}
EWOL_VERBOSE("effect play : " << effectId );
// try to find an empty slot :
for (int32_t iii=0; iii<ListEffectsPlaying.Size(); iii++) {
for (int32_t iii=0; iii<ListEffectsPlaying.size(); iii++) {
if (ListEffectsPlaying[iii]->IsFree()) {
ListEffectsPlaying[iii]->Reset(ListEffects[effectId]);
return;
@ -382,7 +382,7 @@ void ewol::audio::effects::Play(int32_t effectId, float xxx, float yyy)
EWOL_CRITICAL("Allocation error of a playing element : " << effectId);
return;
}
ListEffectsPlaying.PushBack(newPlay);
ListEffectsPlaying.push_back(newPlay);
}
@ -429,7 +429,7 @@ void ewol::audio::effects::MuteSet(bool newMute)
void ewol::audio::effects::GetData(int16_t * bufferInterlace, int32_t nbSample, int32_t nbChannels)
{
for (int32_t iii=0; iii<ListEffectsPlaying.Size(); iii++) {
for (int32_t iii=0; iii<ListEffectsPlaying.size(); iii++) {
if (ListEffectsPlaying[iii]!= NULL) {
ListEffectsPlaying[iii]->Play(bufferInterlace, nbSample, nbChannels);
}

View File

@ -38,20 +38,20 @@ extern "C" {
};
// internal element of the widget manager :
static etk::VectorType<messageList_ts> m_messageList; // all widget allocated ==> all time increment ... never removed ...
static std::vector<messageList_ts> m_messageList; // all widget allocated ==> all time increment ... never removed ...
void ewol::EObjectMessageMultiCast::Init(void)
{
EWOL_INFO("EObject message Multi-Cast");
m_messageList.Clear();
m_messageList.clear();
}
void ewol::EObjectMessageMultiCast::UnInit(void)
{
EWOL_INFO("EObject message Multi-Cast");
m_messageList.Clear();
m_messageList.clear();
}
@ -68,7 +68,7 @@ static void MultiCastAdd(ewol::EObject* object, const char* const message)
messageList_ts tmpMessage;
tmpMessage.object = object;
tmpMessage.message = message;
m_messageList.PushBack(tmpMessage);
m_messageList.push_back(tmpMessage);
EWOL_DEBUG("SendMulticast ADD listener :" << object->GetId() << " on \"" << message << "\"" );
}
@ -80,12 +80,12 @@ static void MultiCastRm(ewol::EObject* object)
return;
}
// send the message at all registered widget ...
for (int32_t iii=m_messageList.Size()-1; iii>=0; iii--) {
for (int32_t iii=m_messageList.size()-1; iii>=0; iii--) {
if(m_messageList[iii].object == object) {
EWOL_DEBUG("SendMulticast RM listener :" << object->GetId());
m_messageList[iii].message = NULL;
m_messageList[iii].object = NULL;
m_messageList.Erase(iii);
m_messageList.erase(m_messageList.begin()+iii);
}
}
}
@ -95,7 +95,7 @@ static void MultiCastSend(ewol::EObject* object, const char* const message, etk:
EWOL_VERBOSE("SendMulticast message \"" << message << "\" data=\"" << data << "\" to :");
// send the message at all registered widget ...
for (int32_t iii=0; iii<m_messageList.Size(); iii++) {
for (int32_t iii=0; iii<m_messageList.size(); iii++) {
if( m_messageList[iii].message == message
&& m_messageList[iii].object != object)
{
@ -138,14 +138,14 @@ ewol::EObject::~EObject(void)
ewol::EObjectManager::Rm(this);
MultiCastRm(this);
EWOL_DEBUG("delete EObject : [" << m_uniqueId << "]");
for (int32_t iii=0; iii<m_externEvent.Size(); iii++) {
for (int32_t iii=0; iii<m_externEvent.size(); iii++) {
if (NULL!=m_externEvent[iii]) {
delete(m_externEvent[iii]);
m_externEvent[iii] = NULL;
}
}
m_externEvent.Clear();
m_availlableEventId.Clear();
m_externEvent.clear();
m_availlableEventId.clear();
m_uniqueId = -1;
}
@ -169,7 +169,7 @@ int32_t ewol::EObject::GetId(void)
void ewol::EObject::AddEventId(const char * generateEventId)
{
if (NULL != generateEventId) {
m_availlableEventId.PushBack(generateEventId);
m_availlableEventId.push_back(generateEventId);
}
}
@ -183,7 +183,7 @@ void ewol::EObject::AddEventId(const char * generateEventId)
void ewol::EObject::GenerateEventId(const char * generateEventId, const etk::UString data)
{
// for every element registered ...
for (int32_t iii=0; iii<m_externEvent.Size(); iii++) {
for (int32_t iii=0; iii<m_externEvent.size(); iii++) {
if (NULL!=m_externEvent[iii]) {
// if we find the event ...
if (m_externEvent[iii]->localEventId == generateEventId) {
@ -235,7 +235,7 @@ void ewol::EObject::RegisterOnEvent(ewol::EObject * destinationObject, const cha
}
// check if event existed :
bool findIt = false;
for(int32_t iii=0; iii<m_availlableEventId.Size(); iii++) {
for(int32_t iii=0; iii<m_availlableEventId.size(); iii++) {
if (m_availlableEventId[iii] == eventId) {
findIt = true;
break;
@ -243,7 +243,7 @@ void ewol::EObject::RegisterOnEvent(ewol::EObject * destinationObject, const cha
}
if (false == findIt) {
EWOL_DEBUG("Try to register with a NON direct string name");
for(int32_t iii=0; iii<m_availlableEventId.Size(); iii++) {
for(int32_t iii=0; iii<m_availlableEventId.size(); iii++) {
if (0 == strncmp(m_availlableEventId[iii], eventId, 1024)) {
findIt = true;
eventIdgenerated = m_availlableEventId[iii];
@ -267,7 +267,7 @@ void ewol::EObject::RegisterOnEvent(ewol::EObject * destinationObject, const cha
} else {
tmpEvent->destEventId = eventId;
}
m_externEvent.PushBack(tmpEvent);
m_externEvent.push_back(tmpEvent);
}
@ -278,11 +278,11 @@ void ewol::EObject::RegisterOnEvent(ewol::EObject * destinationObject, const cha
*/
void ewol::EObject::OnObjectRemove(ewol::EObject * removeObject)
{
for(int32_t iii=m_externEvent.Size()-1; iii>=0; iii--) {
for(int32_t iii=m_externEvent.size()-1; iii>=0; iii--) {
if (NULL==m_externEvent[iii]) {
m_externEvent.Erase(iii);
m_externEvent.erase(m_externEvent.begin()+iii);
} else if (m_externEvent[iii]->destEObject == removeObject) {
m_externEvent.Erase(iii);
m_externEvent.erase(m_externEvent.begin()+iii);
}
}
}

View File

@ -27,7 +27,7 @@
#include <etk/Types.h>
#include <etk/UString.h>
#include <etk/VectorType.h>
#include <vector>
namespace ewol {
namespace EObjectMessageMultiCast {
@ -55,8 +55,8 @@ namespace ewol {
class EObject {
private:
int32_t m_uniqueId; //!< Object UniqueID ==> TODO : Check if it use is needed
etk::VectorType<EventExtGen*> m_externEvent; //!< Generic list of event generation for output link
etk::VectorType<const char*> m_availlableEventId; //!< List of all event availlable for this widget
std::vector<EventExtGen*> m_externEvent; //!< Generic list of event generation for output link
std::vector<const char*> m_availlableEventId; //!< List of all event availlable for this widget
public:
/**
* @brief Constructor

View File

@ -31,8 +31,8 @@
static bool IsInit = false;
// internal element of the widget manager :
static etk::VectorType<ewol::EObject*> m_eObjectList; // all widget allocated ==> all time increment ... never removed ...
static etk::VectorType<ewol::EObject*> m_eObjectDeletedList; // all widget allocated
static std::vector<ewol::EObject*> m_eObjectList; // all widget allocated ==> all time increment ... never removed ...
static std::vector<ewol::EObject*> m_eObjectDeletedList; // all widget allocated
void ewol::EObjectManager::Init(void)
@ -40,8 +40,8 @@ void ewol::EObjectManager::Init(void)
EWOL_DEBUG("==> Init EObject-Manager");
// Can create mlemory leak ... ==> but not predictable comportement otherwise ...
// TODO : Check if we can do sotthing better
m_eObjectDeletedList.Clear();
m_eObjectList.Clear();
m_eObjectDeletedList.clear();
m_eObjectList.clear();
IsInit = true;
}
@ -53,11 +53,11 @@ void ewol::EObjectManager::UnInit(void)
ewol::EObjectManager::RemoveAllMark();
}
EWOL_INFO(" Remove missing user widget");
while(0<m_eObjectList.Size()) {
while(0<m_eObjectList.size()) {
if (m_eObjectList[0]!=NULL) {
MarkToRemoved(m_eObjectList[0]);
} else {
m_eObjectList.Erase(0);
m_eObjectList.erase(m_eObjectList.begin());
}
}
// local acces ==> this control the mutex Lock
@ -70,7 +70,7 @@ void ewol::EObjectManager::Add(ewol::EObject* object)
{
// TODO : Chek if not existed before ...
if (NULL != object) {
m_eObjectList.PushBack(object);
m_eObjectList.push_back(object);
} else {
EWOL_ERROR("try to add an inexistant EObject in manager");
}
@ -82,18 +82,18 @@ void ewol::EObjectManager::Rm(ewol::EObject* object)
EWOL_ERROR("Try to remove (NULL) EObject");
return;
}
for (int32_t iii=0; iii<m_eObjectList.Size(); iii++) {
for (int32_t iii=0; iii<m_eObjectList.size(); iii++) {
if (m_eObjectList[iii] == object) {
// Remove Element
m_eObjectList.Erase(iii);
m_eObjectList.erase(m_eObjectList.begin()+iii);
EWOL_CRITICAL("EObject direct remove is really DANGEROUS due to the multithreading ...");
return;
}
}
for (int32_t iii=0; iii<m_eObjectDeletedList.Size(); iii++) {
for (int32_t iii=0; iii<m_eObjectDeletedList.size(); iii++) {
if (m_eObjectDeletedList[iii] == object) {
// Remove Element
m_eObjectDeletedList.Erase(iii);
m_eObjectDeletedList.erase(m_eObjectDeletedList.begin()+iii);
return;
}
}
@ -104,7 +104,7 @@ void ewol::EObjectManager::Rm(ewol::EObject* object)
void informOneObjectIsRemoved(ewol::EObject* object)
{
for (int32_t iii=0; iii<m_eObjectList.Size(); iii++) {
for (int32_t iii=0; iii<m_eObjectList.size(); iii++) {
if (m_eObjectList[iii] != NULL) {
m_eObjectList[iii]->OnObjectRemove(object);
}
@ -122,7 +122,7 @@ void ewol::EObjectManager::MarkToRemoved(ewol::EObject* object)
}
int32_t findId = -1;
// check if the widget is not destroy :
for(int32_t iii=0; iii<m_eObjectList.Size(); iii++) {
for(int32_t iii=0; iii<m_eObjectList.size(); iii++) {
if (m_eObjectList[iii] == object) {
findId = iii;
break;
@ -132,9 +132,9 @@ void ewol::EObjectManager::MarkToRemoved(ewol::EObject* object)
EWOL_CRITICAL("Try to mark remove an object already removed (or not registerd [imposible case]) ==> requested for EObject : [" << object->GetId() << "] type=" << object->GetObjectType());
return;
}
m_eObjectList.Erase(findId);
m_eObjectList.erase(m_eObjectList.begin()+findId);
EWOL_DEBUG("MarkToRemoved EObject : [" << object->GetId() << "] type=" << object->GetObjectType());
m_eObjectDeletedList.PushBack(object);
m_eObjectDeletedList.push_back(object);
// Informe all EObject to remove reference of this one ...
informOneObjectIsRemoved(object);
}
@ -143,9 +143,9 @@ void ewol::EObjectManager::MarkToRemoved(ewol::EObject* object)
void ewol::EObjectManager::RemoveAllMark(void)
{
etk::VectorType<ewol::EObject*> m_tmpList = m_eObjectDeletedList;
std::vector<ewol::EObject*> m_tmpList = m_eObjectDeletedList;
// direct delete of the current list ...
for(int32_t iii=0; iii<m_tmpList.Size(); iii++) {
for(int32_t iii=0; iii<m_tmpList.size(); iii++) {
if (NULL != m_tmpList[iii]) {
delete(m_tmpList[iii]);
m_tmpList[iii] = NULL;

View File

@ -28,6 +28,7 @@
#include <etk/Types.h>
#include <ewol/Debug.h>
#include <etk/File.h>
#include <vector>
namespace ewol
@ -57,27 +58,27 @@ namespace ewol
clipping_ts & drawClipping,
const etk::UString & unicodeString,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex);
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex);
int32_t DrawText(int32_t fontID,
Vector2D<float> textPos,
clipping_ts & drawClipping,
const uniChar_t unicodeChar,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex);
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex);
int32_t DrawText(int32_t fontID,
Vector2D<float> textPos,
const etk::UString & unicodeString,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex);
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex);
int32_t DrawText(int32_t fontID,
Vector2D<float> textPos,
const uniChar_t unicodeChar,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex);
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex);
int32_t LoadFont(etk::File fontFileName);
};

View File

@ -25,7 +25,7 @@
#include <ewol/Font.h>
#include <ewol/Texture.h>
#include <etk/unicode.h>
#include <etk/VectorType.h>
#include <vector>
#include <ewol/importgl.h>
extern "C" {
@ -220,7 +220,7 @@ class FTFontInternal
}
public:
etk::UString GetFontName(void) {return m_fontName;};
bool GenerateBitmapFont(int32_t size, int32_t &height, int32_t & textureId, etk::VectorType<freeTypeFontElement_ts> & listElement)
bool GenerateBitmapFont(int32_t size, int32_t &height, int32_t & textureId, std::vector<freeTypeFontElement_ts> & listElement)
{
// 300dpi (hight quality) 96 dpi (normal quality)
int32_t fontQuality = 96;
@ -253,7 +253,7 @@ class FTFontInternal
EWOL_DEBUG("metrics.horiAdvance=" << (slot->metrics.horiAdvance >> 6));
EWOL_DEBUG("metrics.vertAdvance=" << (slot->metrics.vertAdvance >> 6));
int32_t nbElement = listElement.Size();
int32_t nbElement = listElement.size();
int32_t coter = simpleSQRT(nbElement);
// note : +1 is for the overlapping of the glyph (Part 1)
int32_t glyphMaxWidth = /*(m_fftFace->max_advance_width>>6); */(slot->metrics.horiAdvance>>6) +1;
@ -285,7 +285,7 @@ class FTFontInternal
int32_t tmpLineStartPos = 0;
int32_t CurrentLineHigh = 0;
// Generate for All Elements :
for (int32_t iii=0; iii<listElement.Size(); iii++) {
for (int32_t iii=0; iii<listElement.size(); iii++) {
// increment the position of the texture
/*
if (iii!=0) {
@ -378,7 +378,7 @@ class FTFontInternal
FT_Face m_fftFace;
};
static etk::VectorType<FTFontInternal*> m_listLoadedTTFont;
static std::vector<FTFontInternal*> m_listLoadedTTFont;
static etk::UString s_currentFolderName = "";
@ -390,7 +390,7 @@ class FTFont{
FTFont(etk::File fontfileName, etk::UString fontName, int32_t size)
{
m_trueTypeFontId = -1;
for (int32_t iii=0; iii < m_listLoadedTTFont.Size(); iii++) {
for (int32_t iii=0; iii < m_listLoadedTTFont.size(); iii++) {
if (m_listLoadedTTFont[iii]->GetFontName() == fontName) {
m_trueTypeFontId = iii;
}
@ -398,19 +398,19 @@ class FTFont{
if (-1==m_trueTypeFontId) {
// load a new one ...
FTFontInternal * tmpElement = new FTFontInternal(fontfileName, fontName);
m_listLoadedTTFont.PushBack(tmpElement);
m_trueTypeFontId = m_listLoadedTTFont.Size() -1;
m_listLoadedTTFont.push_back(tmpElement);
m_trueTypeFontId = m_listLoadedTTFont.size() -1;
}
// set the bassic charset:
m_elements.Clear();
m_elements.clear();
freeTypeFontElement_ts tmpchar1;
tmpchar1.unicodeCharVal = 0;
m_elements.PushBack(tmpchar1);
m_elements.push_back(tmpchar1);
// TODO : dynamic generation of this : expected minimum of 0x20 => 0x7F ....
for (int32_t iii=0x20; iii<0xFF; iii++) {
freeTypeFontElement_ts tmpchar;
tmpchar.unicodeCharVal = iii;
m_elements.PushBack(tmpchar);
m_elements.push_back(tmpchar);
if (0x7F == iii) {
iii = 0x9F;
}
@ -436,7 +436,7 @@ class FTFont{
return false;
};
etk::VectorType<freeTypeFontElement_ts> & GetRefOnElement(void)
std::vector<freeTypeFontElement_ts> & GetRefOnElement(void)
{
return m_elements;
};
@ -462,10 +462,10 @@ class FTFont{
int32_t m_size; // nb pixel height
int32_t m_lineHeight; // nb pixel height
int32_t m_interline; // nb pixel between 2 lines
etk::VectorType<freeTypeFontElement_ts> m_elements; //
std::vector<freeTypeFontElement_ts> m_elements; //
};
static etk::VectorType<FTFont*> m_listLoadedFont;
static std::vector<FTFont*> m_listLoadedFont;
#undef __class__
#define __class__ "ewol::FontFreeType"
@ -490,7 +490,7 @@ void ewol::InitFont(void)
// prevent android error ==> can create memory leak but I prefer
s_currentFolderName = "";
s_currentDefaultFontName = "";
m_listLoadedTTFont.Clear();
m_listLoadedTTFont.clear();
s_currentDefaultFontId = -1;
}
@ -508,21 +508,21 @@ void ewol::UnInitFont(void)
s_currentDefaultFontId = -1;
// unload global font
for(int32_t iii=0; iii<m_listLoadedFont.Size(); iii++) {
for(int32_t iii=0; iii<m_listLoadedFont.size(); iii++) {
if (NULL != m_listLoadedFont[iii]) {
delete(m_listLoadedFont[iii]);
}
m_listLoadedFont[iii] = NULL;
}
m_listLoadedFont.Clear();
m_listLoadedFont.clear();
// unload TFT font ...
for(int32_t iii=0; iii<m_listLoadedTTFont.Size(); iii++) {
for(int32_t iii=0; iii<m_listLoadedTTFont.size(); iii++) {
if (NULL != m_listLoadedTTFont[iii]) {
delete(m_listLoadedTTFont[iii]);
}
m_listLoadedTTFont[iii] = NULL;
}
m_listLoadedTTFont.Clear();
m_listLoadedTTFont.clear();
}
void ewol::SetDefaultFont(etk::UString fontName, int32_t size)
@ -559,14 +559,14 @@ int32_t ewol::LoadFont(etk::UString fontName, int32_t size)
EWOL_ERROR("Font does not exist: \"" << fileName.GetCompleateName() << "\"");
return -1;
}
for (int32_t iii=0; iii < m_listLoadedFont.Size(); iii++) {
for (int32_t iii=0; iii < m_listLoadedFont.size(); iii++) {
if (true == m_listLoadedFont[iii]->Check(fontName, size)) {
return iii;
}
}
FTFont * tmpFont = new FTFont(fileName, fontName, size);
m_listLoadedFont.PushBack(tmpFont);
return m_listLoadedFont.Size()-1;
m_listLoadedFont.push_back(tmpFont);
return m_listLoadedFont.size()-1;
}
void ewol::UnloadFont(int32_t id)
@ -574,19 +574,19 @@ void ewol::UnloadFont(int32_t id)
EWOL_TODO("I do not think it was a good idea... will be done later");
}
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
clipping_ts & drawClipping,
const etk::UString& unicodeString,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex)
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
clipping_ts & drawClipping,
const etk::UString& unicodeString,
int32_t & fontTextureId,
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex)
{
if(fontID>=m_listLoadedFont.Size() || fontID < 0) {
if(fontID>=m_listLoadedFont.size() || fontID < 0) {
EWOL_WARNING("try to display text with an fontID that does not existed " << fontID);
return 0;
}
etk::VectorType<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
std::vector<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
fontTextureId = m_listLoadedFont[fontID]->GetOglId();
int32_t fontSize = m_listLoadedFont[fontID]->GetSize();
@ -603,7 +603,7 @@ int32_t ewol::DrawText(int32_t fontID,
charIndex = tmpChar - 0x1F;
} else {
charIndex = 0;
for (int32_t iii=0x80-0x20; iii < listOfElement.Size(); iii++) {
for (int32_t iii=0x80-0x20; iii < listOfElement.size(); iii++) {
if (listOfElement[iii].unicodeCharVal == tmpChar) {
charIndex = iii;
break;
@ -724,13 +724,13 @@ int32_t ewol::DrawText(int32_t fontID,
*
*/
// set texture coordonates :
coordTex.PushBack(texturePos[0]);
coordTex.PushBack(texturePos[1]);
coordTex.PushBack(texturePos[2]);
coordTex.push_back(texturePos[0]);
coordTex.push_back(texturePos[1]);
coordTex.push_back(texturePos[2]);
// set display positions :
coord.PushBack(bitmapDrawPos[0]);
coord.PushBack(bitmapDrawPos[1]);
coord.PushBack(bitmapDrawPos[2]);
coord.push_back(bitmapDrawPos[0]);
coord.push_back(bitmapDrawPos[1]);
coord.push_back(bitmapDrawPos[2]);
/* Step 2 :
*
@ -740,13 +740,13 @@ int32_t ewol::DrawText(int32_t fontID,
* ********
*/
// set texture coordonates :
coordTex.PushBack(texturePos[0]);
coordTex.PushBack(texturePos[2]);
coordTex.PushBack(texturePos[3]);
coordTex.push_back(texturePos[0]);
coordTex.push_back(texturePos[2]);
coordTex.push_back(texturePos[3]);
// set display positions :
coord.PushBack(bitmapDrawPos[0]);
coord.PushBack(bitmapDrawPos[2]);
coord.PushBack(bitmapDrawPos[3]);
coord.push_back(bitmapDrawPos[0]);
coord.push_back(bitmapDrawPos[2]);
coord.push_back(bitmapDrawPos[3]);
}
}
}
@ -758,20 +758,20 @@ int32_t ewol::DrawText(int32_t fontID,
}
// TODO : Simplify this ...
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
clipping_ts & drawClipping,
const uniChar_t unicodeChar,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex)
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
clipping_ts & drawClipping,
const uniChar_t unicodeChar,
int32_t & fontTextureId,
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex)
{
#if 0
if(fontID>=m_listLoadedFont.Size() || fontID < 0) {
EWOL_WARNING("try to display text with an fontID that does not existed " << fontID);
return 0;
}
etk::VectorType<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
std::vector<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
fontTextureId = m_listLoadedFont[fontID]->GetOglId();
int32_t fontSize = m_listLoadedFont[fontID]->GetSize();
@ -916,18 +916,18 @@ int32_t ewol::DrawText(int32_t fontID,
}
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
const etk::UString& unicodeString,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex)
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
const etk::UString& unicodeString,
int32_t & fontTextureId,
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex)
{
if(fontID>=m_listLoadedFont.Size() || fontID < 0) {
if(fontID>=m_listLoadedFont.size() || fontID < 0) {
EWOL_WARNING("try to display text with an fontID that does not existed " << fontID);
return 0;
}
etk::VectorType<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
std::vector<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
fontTextureId = m_listLoadedFont[fontID]->GetOglId();
int32_t fontSize = m_listLoadedFont[fontID]->GetSize();
@ -944,7 +944,7 @@ int32_t ewol::DrawText(int32_t fontID,
charIndex = tmpChar - 0x1F;
} else {
charIndex = 0;
for (int32_t iii=0x80-0x20; iii < listOfElement.Size(); iii++) {
for (int32_t iii=0x80-0x20; iii < listOfElement.size(); iii++) {
if (listOfElement[iii].unicodeCharVal == tmpChar) {
charIndex = iii;
break;
@ -1018,13 +1018,13 @@ int32_t ewol::DrawText(int32_t fontID,
*
*/
// set texture coordonates :
coordTex.PushBack(texturePos[0]);
coordTex.PushBack(texturePos[1]);
coordTex.PushBack(texturePos[2]);
coordTex.push_back(texturePos[0]);
coordTex.push_back(texturePos[1]);
coordTex.push_back(texturePos[2]);
// set display positions :
coord.PushBack(bitmapDrawPos[0]);
coord.PushBack(bitmapDrawPos[1]);
coord.PushBack(bitmapDrawPos[2]);
coord.push_back(bitmapDrawPos[0]);
coord.push_back(bitmapDrawPos[1]);
coord.push_back(bitmapDrawPos[2]);
/* Step 2 :
*
@ -1034,13 +1034,13 @@ int32_t ewol::DrawText(int32_t fontID,
* ********
*/
// set texture coordonates :
coordTex.PushBack(texturePos[0]);
coordTex.PushBack(texturePos[2]);
coordTex.PushBack(texturePos[3]);
coordTex.push_back(texturePos[0]);
coordTex.push_back(texturePos[2]);
coordTex.push_back(texturePos[3]);
// set display positions :
coord.PushBack(bitmapDrawPos[0]);
coord.PushBack(bitmapDrawPos[2]);
coord.PushBack(bitmapDrawPos[3]);
coord.push_back(bitmapDrawPos[0]);
coord.push_back(bitmapDrawPos[2]);
coord.push_back(bitmapDrawPos[3]);
}
}
@ -1052,18 +1052,18 @@ int32_t ewol::DrawText(int32_t fontID,
}
// TODO : Simplify this ...
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
const uniChar_t unicodeChar,
int32_t & fontTextureId,
etk::VectorType<Vector2D<float> > & coord,
etk::VectorType<texCoord_ts> & coordTex)
int32_t ewol::DrawText(int32_t fontID,
Vector2D<float> textPos,
const uniChar_t unicodeChar,
int32_t & fontTextureId,
std::vector<Vector2D<float> > & coord,
std::vector<texCoord_ts> & coordTex)
{
if(fontID>=m_listLoadedFont.Size() || fontID < 0) {
if(fontID>=m_listLoadedFont.size() || fontID < 0) {
EWOL_WARNING("try to display text with an fontID that does not existed " << fontID);
return 0;
}
etk::VectorType<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
std::vector<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
fontTextureId = m_listLoadedFont[fontID]->GetOglId();
int32_t fontSize = m_listLoadedFont[fontID]->GetSize();
@ -1077,7 +1077,7 @@ int32_t ewol::DrawText(int32_t fontID,
charIndex = unicodeChar - 0x1F;
} else {
charIndex = 0;
for (int32_t iii=0x80-0x20; iii < listOfElement.Size(); iii++) {
for (int32_t iii=0x80-0x20; iii < listOfElement.size(); iii++) {
if (listOfElement[iii].unicodeCharVal == unicodeChar) {
charIndex = iii;
break;
@ -1149,13 +1149,13 @@ int32_t ewol::DrawText(int32_t fontID,
*
*/
// set texture coordonates :
coordTex.PushBack(texturePos[0]);
coordTex.PushBack(texturePos[1]);
coordTex.PushBack(texturePos[2]);
coordTex.push_back(texturePos[0]);
coordTex.push_back(texturePos[1]);
coordTex.push_back(texturePos[2]);
// set display positions :
coord.PushBack(bitmapDrawPos[0]);
coord.PushBack(bitmapDrawPos[1]);
coord.PushBack(bitmapDrawPos[2]);
coord.push_back(bitmapDrawPos[0]);
coord.push_back(bitmapDrawPos[1]);
coord.push_back(bitmapDrawPos[2]);
/* Step 2 :
*
@ -1165,13 +1165,13 @@ int32_t ewol::DrawText(int32_t fontID,
* ********
*/
// set texture coordonates :
coordTex.PushBack(texturePos[0]);
coordTex.PushBack(texturePos[2]);
coordTex.PushBack(texturePos[3]);
coordTex.push_back(texturePos[0]);
coordTex.push_back(texturePos[2]);
coordTex.push_back(texturePos[3]);
// set display positions :
coord.PushBack(bitmapDrawPos[0]);
coord.PushBack(bitmapDrawPos[2]);
coord.PushBack(bitmapDrawPos[3]);
coord.push_back(bitmapDrawPos[0]);
coord.push_back(bitmapDrawPos[2]);
coord.push_back(bitmapDrawPos[3]);
}
}
posDrawX += listOfElement[charIndex].advance;
@ -1183,11 +1183,11 @@ int32_t ewol::DrawText(int32_t fontID,
int32_t ewol::GetWidth(int32_t fontID, const etk::UString& unicodeString)
{
if(fontID>=m_listLoadedFont.Size() || fontID < 0) {
if(fontID>=m_listLoadedFont.size() || fontID < 0) {
EWOL_WARNING("try to display text with an fontID that does not existed " << fontID);
return 0;
}
etk::VectorType<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
std::vector<freeTypeFontElement_ts> & listOfElement = m_listLoadedFont[fontID]->GetRefOnElement();
float posDrawX = 0.0;
for(int32_t iii=0; iii<unicodeString.Size(); iii++) {
@ -1200,7 +1200,7 @@ int32_t ewol::GetWidth(int32_t fontID, const etk::UString& unicodeString)
} else if (tmpChar < 0x80) {
charIndex = tmpChar - 0x1F;
} else {
for (int32_t iii=0x80-0x20; iii < listOfElement.Size(); iii++) {
for (int32_t iii=0x80-0x20; iii < listOfElement.size(); iii++) {
if (listOfElement[iii].unicodeCharVal == tmpChar) {
charIndex = iii;
break;
@ -1217,7 +1217,7 @@ int32_t ewol::GetWidth(int32_t fontID, const etk::UString& unicodeString)
int32_t ewol::GetHeight(int32_t fontID)
{
if(fontID>=m_listLoadedFont.Size() || fontID < 0) {
if(fontID>=m_listLoadedFont.size() || fontID < 0) {
EWOL_WARNING("try to display text with an fontID that does not existed " << fontID);
return 10;
}

View File

@ -33,9 +33,9 @@
//For every acces :
static ewol::GameElementLua * tmpObj = NULL;
static etk::VectorType<ewol::Sprite*> * tmpSprite = NULL;
static ewol::SceneElement * tmpScene = NULL;
static ewol::GameElementLua * tmpObj = NULL;
static std::vector<ewol::Sprite*> * tmpSprite = NULL;
static ewol::SceneElement * tmpScene = NULL;
template <typename T> int index(lua_State* L);
@ -398,9 +398,9 @@ LUAMOD_API int lua_ElementAdd(lua_State *L)
etk::UString elementName = luaL_checkstring(L, 1);
int32_t group = luaL_checkint(L, 2);
// TODO : Remove this when find an other way do do it ...
ewol::GameElementLua * ttmpObj = tmpObj;
etk::VectorType<ewol::Sprite*> * ttmpSprite = tmpSprite;
ewol::SceneElement * ttmpScene = tmpScene;
ewol::GameElementLua * ttmpObj = tmpObj;
std::vector<ewol::Sprite*> * ttmpSprite = tmpSprite;
ewol::SceneElement * ttmpScene = tmpScene;
uint32_t elementId = tmpScene->AddElementNamed(group, elementName);
tmpObj = ttmpObj;
tmpSprite = ttmpSprite;
@ -541,9 +541,9 @@ LUAMOD_API int lua_HaveImpact(lua_State *L)
}
// TODO : Remove this when find an other way do do it ...
ewol::GameElementLua * ttmpObj = tmpObj;
etk::VectorType<ewol::Sprite*> * ttmpSprite = tmpSprite;
ewol::SceneElement * ttmpScene = tmpScene;
ewol::GameElementLua * ttmpObj = tmpObj;
std::vector<ewol::Sprite*> * ttmpSprite = tmpSprite;
ewol::SceneElement * ttmpScene = tmpScene;
bool result = tmpScene->HaveImpact(tmpObj->GroupGet(), tmpObj->TypeGet(), tmpObj->PositionGet(), tmpObj->SizeGet());
@ -565,9 +565,9 @@ LUAMOD_API int lua_Explosion(lua_State *L)
}
// TODO : Remove this when find an other way do do it ...
ewol::GameElementLua * ttmpObj = tmpObj;
etk::VectorType<ewol::Sprite*> * ttmpSprite = tmpSprite;
ewol::SceneElement * ttmpScene = tmpScene;
ewol::GameElementLua * ttmpObj = tmpObj;
std::vector<ewol::Sprite*> * ttmpSprite = tmpSprite;
ewol::SceneElement * ttmpScene = tmpScene;
tmpScene->Explosion(tmpObj->GroupGet(), tmpObj->TypeGet(), tmpObj->PositionGet(), 0.01, tmpObj->PowerGet());

View File

@ -57,37 +57,37 @@ ewol::SceneElement::~SceneElement(void)
{
EWOL_DEBUG("Remove sceane, allocated element : " << allocatedElements << " and retreive : " << retreviveElement);
// clean all element allocated :
for (int32_t jjj=0; jjj<listGarbage.Size(); jjj++) {
for (int32_t jjj=0; jjj<listGarbage.size(); jjj++) {
if (NULL != listGarbage[jjj]) {
delete(listGarbage[jjj]);
listGarbage[jjj] = NULL;
}
}
listGarbage.Clear();
for (int32_t jjj=0; jjj<listCreatorElement.Size(); jjj++) {
listGarbage.clear();
for (int32_t jjj=0; jjj<listCreatorElement.size(); jjj++) {
if (NULL != listCreatorElement[jjj]) {
delete(listCreatorElement[jjj]);
listCreatorElement[jjj] = NULL;
}
}
listCreatorElement.Clear();
listCreatorElement.clear();
for (int32_t iii=0; iii<MAX_GROUP_NUMBER; iii++) {
for (int32_t jjj=0; jjj<listAnimatedElements[iii].Size(); jjj++) {
for (int32_t jjj=0; jjj<listAnimatedElements[iii].size(); jjj++) {
if (NULL != listAnimatedElements[iii][jjj]) {
delete(listAnimatedElements[iii][jjj]);
listAnimatedElements[iii][jjj] = NULL;
}
}
listAnimatedElements[iii].Clear();
listAnimatedElements[iii].clear();
}
for (int32_t iii=0; iii<NB_BOUBLE_BUFFER; iii++) {
for (int32_t jjj=0; jjj<animated[iii].Size(); jjj++) {
for (int32_t jjj=0; jjj<animated[iii].size(); jjj++) {
if (NULL != animated[iii][jjj]) {
delete(animated[iii][jjj]);
animated[iii][jjj] = NULL;
}
}
animated[iii].Clear();
animated[iii].clear();
}
}
@ -102,7 +102,7 @@ void ewol::SceneElement::RegisterElementType(etk::UString name, creatorElement_t
tmpElement->name = name;
tmpElement->userString = userString;
tmpElement->loadElement = loadElement;
listCreatorElement.PushBack(tmpElement);
listCreatorElement.push_back(tmpElement);
}
@ -112,15 +112,15 @@ void ewol::SceneElement::RmElement(int32_t group, int32_t idElement)
EWOL_ERROR("group is wrong " << group << "!=[0," << MAX_GROUP_NUMBER << "]==> not rm at the system ...");
return;
}
if (idElement < 0 || idElement >= listAnimatedElements[group].Size()) {
EWOL_ERROR("idElement is wrong " << idElement << "!=[0," << listAnimatedElements[group].Size() << "]==> not rm at the system ...");
if (idElement < 0 || idElement >= listAnimatedElements[group].size()) {
EWOL_ERROR("idElement is wrong " << idElement << "!=[0," << listAnimatedElements[group].size() << "]==> not rm at the system ...");
return;
}
if (NULL == listAnimatedElements[group][idElement]) {
return;
}
// try to find an empty slot :
for (int32_t iii=0; iii<listGarbage.Size(); iii++) {
for (int32_t iii=0; iii<listGarbage.size(); iii++) {
if (NULL == listGarbage[iii]) {
// find an empty slot ...
listGarbage[iii] = listAnimatedElements[group][idElement];
@ -129,7 +129,7 @@ void ewol::SceneElement::RmElement(int32_t group, int32_t idElement)
}
}
listAnimatedElements[group][idElement]->UnInit();
listGarbage.PushBack(listAnimatedElements[group][idElement]);
listGarbage.push_back(listAnimatedElements[group][idElement]);
listAnimatedElements[group][idElement] = NULL;
return;
}
@ -147,7 +147,7 @@ uint32_t ewol::SceneElement::AddElement(int32_t group, ewol::GameElement* newEle
// for statistic
newElement->Init();
newElement->GroupSet(group);
for (int32_t iii=0; iii<listAnimatedElements[group].Size(); iii++) {
for (int32_t iii=0; iii<listAnimatedElements[group].size(); iii++) {
if (NULL == listAnimatedElements[group][iii]) {
// find an empty slot ...
listAnimatedElements[group][iii] = newElement;
@ -155,9 +155,9 @@ uint32_t ewol::SceneElement::AddElement(int32_t group, ewol::GameElement* newEle
}
}
//did not find empty slot :
listAnimatedElements[group].PushBack(newElement);
if (listAnimatedElements[group].Size()>0) {
return createUniqueId(newElement->GetUniqueId(), listAnimatedElements[group].Size()-1);
listAnimatedElements[group].push_back(newElement);
if (listAnimatedElements[group].size()>0) {
return createUniqueId(newElement->GetUniqueId(), listAnimatedElements[group].size()-1);
} else {
return 0;
}
@ -166,7 +166,7 @@ uint32_t ewol::SceneElement::AddElement(int32_t group, ewol::GameElement* newEle
uint32_t ewol::SceneElement::AddElementNamed(int32_t group, etk::UString &elementName)
{
// try to fined it in the garbase :
for (int32_t iii=0; iii<listGarbage.Size(); iii++) {
for (int32_t iii=0; iii<listGarbage.size(); iii++) {
if (NULL != listGarbage[iii]) {
// check his name :
if (true == listGarbage[iii]->HasName(elementName)) {
@ -180,7 +180,7 @@ uint32_t ewol::SceneElement::AddElementNamed(int32_t group, etk::UString &elemen
}
ewol::GameElement* newElement=NULL;
// find in registered element
for (int32_t iii=0; iii<listCreatorElement.Size(); iii++) {
for (int32_t iii=0; iii<listCreatorElement.size(); iii++) {
if (NULL != listCreatorElement[iii]) {
// check his name :
if (listCreatorElement[iii]->name == elementName) {
@ -205,7 +205,7 @@ ewol::GameElement* ewol::SceneElement::GetElement(uint32_t idElement)
uint16_t realUniqueId = (uint16_t)((idElement >> 16 ) & 0x0000FFFF);
uint16_t posInList = (uint16_t)(idElement & 0x0000FFFF);
for (int32_t iii=0; iii<numberOfGroup; iii++) {
if( posInList < listAnimatedElements[iii].Size()
if( posInList < listAnimatedElements[iii].size()
&& NULL != listAnimatedElements[iii][posInList]
&& realUniqueId == listAnimatedElements[iii][posInList]->GetUniqueId()) {
return listAnimatedElements[iii][posInList];
@ -229,7 +229,7 @@ uint32_t ewol::SceneElement::GetNearestEnemy(Vector2D<float> position, int32_t g
if (gId == groupId) {
EWOL_ERROR("groupId=" << gId << " is ennemy of groupId:" << groupId);
}
for (int32_t iii=0; iii<listAnimatedElements[gId].Size(); iii++) {
for (int32_t iii=0; iii<listAnimatedElements[gId].size(); iii++) {
if (NULL != listAnimatedElements[gId][iii]) {
if (true == listAnimatedElements[gId][iii]->CanBeCibledGet()) {
Vector2D<float> tmpPos = listAnimatedElements[gId][iii]->PositionGet();
@ -251,7 +251,7 @@ bool ewol::SceneElement::HaveImpact(int32_t group, int32_t type, Vector2D<float>
{
for (int32_t jjj=0; jjj<MAX_GROUP_NUMBER; jjj++) {
if (group != jjj) {
for (int32_t iii=0; iii<listAnimatedElements[jjj].Size(); iii++) {
for (int32_t iii=0; iii<listAnimatedElements[jjj].size(); iii++) {
if (NULL != listAnimatedElements[jjj][iii]) {
if (true == listAnimatedElements[jjj][iii]->HaveImpact(group, type, position, size )) {
return true;
@ -266,7 +266,7 @@ bool ewol::SceneElement::HaveImpact(int32_t group, int32_t type, Vector2D<float>
void ewol::SceneElement::Explosion(int32_t group, int32_t type, Vector2D<float> position, float pxAtenuation, float power)
{
for (int32_t jjj=0; jjj<MAX_GROUP_NUMBER; jjj++) {
for (int32_t iii=0; iii<listAnimatedElements[jjj].Size(); iii++) {
for (int32_t iii=0; iii<listAnimatedElements[jjj].size(); iii++) {
if (NULL != listAnimatedElements[jjj][iii]) {
if (true == listAnimatedElements[jjj][iii]->Explosion(group, type, position, pxAtenuation, power) ) {
RmElement(jjj, iii);
@ -282,7 +282,7 @@ uint32_t ewol::SceneElement::GetElementAtPos(Vector2D<float> position, int32_t m
uint32_t result = 0;
float lastQuadDistance = 9999999999999999.0;
for (int32_t jjj=0; jjj<MAX_GROUP_NUMBER; jjj++) {
for (int32_t iii=0; iii<listAnimatedElements[jjj].Size(); iii++) {
for (int32_t iii=0; iii<listAnimatedElements[jjj].size(); iii++) {
if (NULL != listAnimatedElements[jjj][iii]) {
Vector2D<float> tmpPos = listAnimatedElements[jjj][iii]->PositionGet();
float distance = quadDist(position, tmpPos);
@ -324,7 +324,7 @@ void ewol::SceneElement::SetEventExternJoystick(uint32_t id, int32_t joyId, floa
*/
int32_t ewol::SceneElement::LoadSprite(etk::UString fileName, float maxSize)
{
for (int32_t iii=0; iii<animated[0].Size(); iii++) {
for (int32_t iii=0; iii<animated[0].size(); iii++) {
if (animated[0][iii] != NULL) {
if (animated[0][iii]->HasName(fileName) == true) {
// count the number of element registered ...
@ -341,9 +341,9 @@ int32_t ewol::SceneElement::LoadSprite(etk::UString fileName, float maxSize)
return -1;
}
// add it :
animated[iii].PushBack(tmpSprite);
animated[iii].push_back(tmpSprite);
}
return animated[0].Size() -1;
return animated[0].size() -1;
}
/**
@ -354,7 +354,7 @@ int32_t ewol::SceneElement::LoadSprite(etk::UString fileName, float maxSize)
*/
void ewol::SceneElement::UnLoadSprite(int32_t spriteId)
{
if (spriteId >= 0 && spriteId < animated[0].Size()) {
if (spriteId >= 0 && spriteId < animated[0].size()) {
if (animated[0][spriteId] != NULL) {
// count the number of element registered ...
if (true == animated[0][spriteId]->DecreaseLoadedTime() ) {

View File

@ -26,6 +26,7 @@
#define __EWOL_SCENE_ELEMENT_H__
#include <etk/Types.h>
#include <vector>
#include <ewol/Debug.h>
#include <ewol/OObject/Sprite.h>
@ -54,10 +55,10 @@ namespace ewol {
int32_t numberOfGroup; //!< curent scene number of group
etk::UString groupDescription[MAX_GROUP_NUMBER]; //!< name of all the groups
int32_t groupEnemy[MAX_GROUP_NUMBER][MAX_GROUP_NUMBER]; //!< list of the ennemy
etk::VectorType<ewol::Sprite*> animated[NB_BOUBLE_BUFFER]; //!< element that must be display the second
etk::VectorType<ewol::GameElement*> listAnimatedElements[MAX_GROUP_NUMBER]; //!< generic element to display order in the diffferent group
etk::VectorType<ewol::GameElement*> listGarbage; //!< garbage of the old element allocated ==> prevent multiple alloc and free
etk::VectorType<listRegisteElement*> listCreatorElement; //!< list of all creatable elements
std::vector<ewol::Sprite*> animated[NB_BOUBLE_BUFFER]; //!< element that must be display the second
std::vector<ewol::GameElement*> listAnimatedElements[MAX_GROUP_NUMBER]; //!< generic element to display order in the diffferent group
std::vector<ewol::GameElement*> listGarbage; //!< garbage of the old element allocated ==> prevent multiple alloc and free
std::vector<listRegisteElement*> listCreatorElement; //!< list of all creatable elements
int16_t GetUniqueId(void) { int16_t iddd = m_id; m_id++; return iddd; };
void RegisterElementType(etk::UString name, creatorElement_tf * loadElement, etk::UString userString);
void RmElement(int32_t group, int32_t idElement);

View File

@ -29,7 +29,7 @@
#include <etk/File.h>
#include <ewol/Debug.h>
#include <ewol/Font.h>
#include <etk/VectorType.h>
#include <vector>
namespace ewol {
extern "C" {

View File

@ -40,14 +40,14 @@ ewol::OObject2DColored::OObject2DColored(void)
ewol::OObject2DColored::~OObject2DColored(void)
{
m_coord.Clear();
m_coordColor.Clear();
m_coord.clear();
m_coordColor.clear();
}
void ewol::OObject2DColored::Draw(void)
{
if (m_coord.Size()<=0) {
if (m_coord.size()<=0) {
return;
}
glPushMatrix();
@ -62,7 +62,7 @@ void ewol::OObject2DColored::Draw(void)
//glColorPointer(4, oglTypeFloat_t, 0, &m_coordColor[0] );
glColorPointer(4, GL_UNSIGNED_BYTE, 0, &m_coordColor[0] );
// Render : draw all of the triangles at once
glDrawArrays( GL_TRIANGLES, 0, m_coord.Size());
glDrawArrays( GL_TRIANGLES, 0, m_coord.size());
//glDrawElements( GL_TRIANGLES, 0, m_coord.Size());
//EWOL_DEBUG("Draw ..." << m_coord.Size()/3 << " triangle(s)");
@ -75,41 +75,41 @@ void ewol::OObject2DColored::Draw(void)
void ewol::OObject2DColored::Clear(void)
{
m_coord.Clear();
m_coordColor.Clear();
m_coord.clear();
m_coordColor.clear();
}
void generatePolyGone(etk::VectorType<Vector2D<float> > & input, etk::VectorType<Vector2D<float> > & output )
void generatePolyGone(std::vector<Vector2D<float> > & input, std::vector<Vector2D<float> > & output )
{
if (input.Size()<3) {
if (input.size()<3) {
return;
}
// TODO : Regenerate a linear poligone generation
for (int32_t iii=1; iii<input.Size()-1; iii++) {
output.PushBack(input[0]);
output.PushBack(input[iii]);
output.PushBack(input[iii+1]);
for (int32_t iii=1; iii<input.size()-1; iii++) {
output.push_back(input[0]);
output.push_back(input[iii]);
output.push_back(input[iii+1]);
}
//EWOL_DEBUG("generate Plygone : " << input.Size() << " ==> " << output.Size() );
}
void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorType<Vector2D<float> > & output, float sx, float sy, float ex, float ey)
void SutherlandHodgman(std::vector<Vector2D<float> > & input, std::vector<Vector2D<float> > & output, float sx, float sy, float ex, float ey)
{
// with Sutherland-Hodgman-Algorithm
if (input.Size() <0) {
if (input.size() <=0) {
return;
}
//int32_t sizeInit=input.Size();
// last element :
Vector2D<float> destPoint;
Vector2D<float> lastElement = input[input.Size()-1];
Vector2D<float> lastElement = input[input.size()-1];
bool inside = true;
if (lastElement.x < sx) {
inside = false;
}
//EWOL_DEBUG("generate an crop : ");
for(int32_t iii=0; iii<input.Size(); iii++) {
for(int32_t iii=0; iii<input.size(); iii++) {
if(input[iii].x < sx) {
if(true == inside) {
//EWOL_DEBUG("element IN ==> OUT ");
@ -119,7 +119,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.y - (aaa*lastElement.x);
destPoint.y = aaa*sx + bbb;
destPoint.x = sx;
output.PushBack(destPoint);
output.push_back(destPoint);
} else {
//EWOL_DEBUG("element OUT ==> OUT ");
}
@ -127,7 +127,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
} else {
if(true == inside) {
//EWOL_DEBUG("element IN ==> IN ");
output.PushBack(input[iii]);
output.push_back(input[iii]);
} else {
//EWOL_DEBUG("element OUT ==> IN ");
//new point intersection ...
@ -136,8 +136,8 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.y - (aaa*lastElement.x);
destPoint.y = aaa*sx + bbb;
destPoint.x = sx;
output.PushBack(destPoint);
output.PushBack(input[iii]);
output.push_back(destPoint);
output.push_back(input[iii]);
}
inside = true;
}
@ -148,13 +148,13 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
//EWOL_DEBUG("generate an crop on element : " << sizeInit << " ==> " << output.Size() << "intermediate (1)");
input = output;
output.Clear();
lastElement = input[input.Size()-1];
output.clear();
lastElement = input[input.size()-1];
inside = true;
if (lastElement.y < sy) {
inside = false;
}
for(int32_t iii=0; iii<input.Size(); iii++) {
for(int32_t iii=0; iii<input.size(); iii++) {
if(input[iii].y < sy) {
if(true == inside) {
//EWOL_DEBUG("element IN ==> OUT ");
@ -164,7 +164,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.x - (aaa*lastElement.y);
destPoint.y = sy;
destPoint.x = sy*aaa + bbb;
output.PushBack(destPoint);
output.push_back(destPoint);
} else {
//EWOL_DEBUG("element OUT ==> OUT ");
}
@ -172,7 +172,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
} else {
if(true == inside) {
//EWOL_DEBUG("element IN ==> IN ");
output.PushBack(input[iii]);
output.push_back(input[iii]);
} else {
//EWOL_DEBUG("element OUT ==> IN ");
//new point intersection ...
@ -181,8 +181,8 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.x - (aaa*lastElement.y);
destPoint.y = sy;
destPoint.x = sy*aaa + bbb;
output.PushBack(destPoint);
output.PushBack(input[iii]);
output.push_back(destPoint);
output.push_back(input[iii]);
}
inside = true;
}
@ -192,14 +192,14 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
}
input = output;
output.Clear();
lastElement = input[input.Size()-1];
output.clear();
lastElement = input[input.size()-1];
inside = true;
if (lastElement.x > ex) {
inside = false;
}
//EWOL_DEBUG("generate an crop : ");
for(int32_t iii=0; iii<input.Size(); iii++) {
for(int32_t iii=0; iii<input.size(); iii++) {
if(input[iii].x > ex) {
if(true == inside) {
//EWOL_DEBUG("element IN ==> OUT ");
@ -209,7 +209,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.y - (aaa*lastElement.x);
destPoint.y = aaa*ex + bbb;
destPoint.x = ex;
output.PushBack(destPoint);
output.push_back(destPoint);
} else {
//EWOL_DEBUG("element OUT ==> OUT ");
}
@ -217,7 +217,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
} else {
if(true == inside) {
//EWOL_DEBUG("element IN ==> IN ");
output.PushBack(input[iii]);
output.push_back(input[iii]);
} else {
//EWOL_DEBUG("element OUT ==> IN ");
//new point intersection ...
@ -226,8 +226,8 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.y - (aaa*lastElement.x);
destPoint.y = aaa*ex + bbb;
destPoint.x = ex;
output.PushBack(destPoint);
output.PushBack(input[iii]);
output.push_back(destPoint);
output.push_back(input[iii]);
}
inside = true;
}
@ -237,13 +237,13 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
}
input = output;
output.Clear();
lastElement = input[input.Size()-1];
output.clear();
lastElement = input[input.size()-1];
inside = true;
if (lastElement.y > ey) {
inside = false;
}
for(int32_t iii=0; iii<input.Size(); iii++) {
for(int32_t iii=0; iii<input.size(); iii++) {
if(input[iii].y > ey) {
if(true == inside) {
//EWOL_DEBUG("element IN ==> OUT ");
@ -253,7 +253,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.x - (aaa*lastElement.y);
destPoint.y = ey;
destPoint.x = ey*aaa + bbb;
output.PushBack(destPoint);
output.push_back(destPoint);
} else {
//EWOL_DEBUG("element OUT ==> OUT ");
}
@ -261,7 +261,7 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
} else {
if(true == inside) {
//EWOL_DEBUG("element IN ==> IN ");
output.PushBack(input[iii]);
output.push_back(input[iii]);
} else {
//EWOL_DEBUG("element OUT ==> IN ");
//new point intersection ...
@ -270,8 +270,8 @@ void SutherlandHodgman(etk::VectorType<Vector2D<float> > & input, etk::VectorTyp
float bbb = lastElement.x - (aaa*lastElement.y);
destPoint.y = ey;
destPoint.x = ey*aaa + bbb;
output.PushBack(destPoint);
output.PushBack(input[iii]);
output.push_back(destPoint);
output.push_back(input[iii]);
}
inside = true;
}
@ -289,12 +289,12 @@ void ewol::OObject2DColored::GenerateTriangle(void)
{
m_triElement = 0;
m_coord.PushBack(m_triangle[0]);
m_coordColor.PushBack(m_color[0]);
m_coord.PushBack(m_triangle[1]);
m_coordColor.PushBack(m_color[1]);
m_coord.PushBack(m_triangle[2]);
m_coordColor.PushBack(m_color[2]);
m_coord.push_back(m_triangle[0]);
m_coordColor.push_back(m_color[0]);
m_coord.push_back(m_triangle[1]);
m_coordColor.push_back(m_color[1]);
m_coord.push_back(m_triangle[2]);
m_coordColor.push_back(m_color[2]);
}

View File

@ -36,9 +36,9 @@ namespace ewol {
public:
virtual void Draw(void);
protected:
etk::VectorType<Vector2D<float> > m_coord; //!< internal coord of the object
etk::VectorType<color_ts> m_coordColor; //!< internal color of the different point
//etk::VectorType<linkCoord_ts> m_linkCoord; //!< internal link between point to generate triangle
std::vector<Vector2D<float> > m_coord; //!< internal coord of the object
std::vector<color_ts> m_coordColor; //!< internal color of the different point
//std::vector<linkCoord_ts> m_linkCoord; //!< internal link between point to generate triangle
int32_t m_triElement;
color_ts m_color[3];
Vector2D<float> m_triangle[3];

View File

@ -58,7 +58,7 @@ ewol::OObject2DText::~OObject2DText(void)
void ewol::OObject2DText::Draw(void)
{
if (m_coord.Size()<=0) {
if (m_coord.size()<=0) {
// TODO : a remètre ...
//EWOL_WARNING("Nothink to draw...");
return;
@ -70,7 +70,7 @@ void ewol::OObject2DText::Draw(void)
glEnableClientState( GL_TEXTURE_COORD_ARRAY ); // Enable Texture Coord Arrays
glVertexPointer( 2, GL_FLOAT, 0, &m_coord[0] );
glTexCoordPointer( 2, GL_FLOAT, 0, &m_coordTex[0] );
glDrawArrays( GL_TRIANGLES, 0, m_coord.Size());
glDrawArrays( GL_TRIANGLES, 0, m_coord.size());
//EWOL_DEBUG("request draw of " << m_coord.Size() << " elements");
glDisableClientState( GL_VERTEX_ARRAY ); // Disable Vertex Arrays
glDisableClientState( GL_TEXTURE_COORD_ARRAY ); // Disable Texture Coord Arrays
@ -79,8 +79,8 @@ void ewol::OObject2DText::Draw(void)
void ewol::OObject2DText::Clear(void)
{
m_coord.Clear();
m_coordTex.Clear();
m_coord.clear();
m_coordTex.clear();
}
int32_t ewol::OObject2DText::Text(Vector2D<float> textPos, clipping_ts drawClipping, const etk::UString& unicodeString)

View File

@ -45,8 +45,8 @@ namespace ewol {
int32_t m_FontId; //!< font internal ID
color_ts m_textColorFg; //!< text color ...
int32_t m_FontTextureId; //!< font internal Texture ID
etk::VectorType<Vector2D<float> > m_coord; //!< internal coord of the object
etk::VectorType<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
std::vector<Vector2D<float> > m_coord; //!< internal coord of the object
std::vector<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
};
};

View File

@ -71,7 +71,7 @@ ewol::OObject2DTextColored::~OObject2DTextColored(void)
void ewol::OObject2DTextColored::Draw(void)
{
if (m_coord.Size()<=0) {
if (m_coord.size()<=0) {
// TODO : a remètre ...
//EWOL_WARNING("Nothink to draw...");
return;
@ -84,7 +84,7 @@ void ewol::OObject2DTextColored::Draw(void)
glVertexPointer( 2, GL_FLOAT, 0, &m_coord[0] );
glTexCoordPointer( 2, GL_FLOAT, 0, &m_coordTex[0] );
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, &m_coordColor[0] );
glDrawArrays( GL_TRIANGLES, 0, m_coord.Size());
glDrawArrays( GL_TRIANGLES, 0, m_coord.size());
//EWOL_DEBUG("request draw of " << m_coord.Size() << " elements");
glDisableClientState( GL_COLOR_ARRAY ); // Disable Color Arrays
glDisableClientState( GL_VERTEX_ARRAY ); // Disable Vertex Arrays
@ -94,9 +94,9 @@ void ewol::OObject2DTextColored::Draw(void)
void ewol::OObject2DTextColored::Clear(void)
{
m_coord.Clear();
m_coordTex.Clear();
m_coordColor.Clear();
m_coord.clear();
m_coordTex.clear();
m_coordColor.clear();
}
int32_t ewol::OObject2DTextColored::Text(Vector2D<float> textPos, const etk::UString& unicodeString)
@ -106,15 +106,15 @@ int32_t ewol::OObject2DTextColored::Text(Vector2D<float> textPos, const etk::USt
EWOL_ERROR("Font Id is not corectly defined");
return 0;
}
int32_t nbElementInTheArray = m_coord.Size();
int32_t nbElementInTheArray = m_coord.size();
int32_t size = 0;
if (true==m_hasClipping) {
size = ewol::DrawText(m_FontId, textPos, m_clipping, unicodeString, m_FontTextureId, m_coord, m_coordTex);
} else {
size = ewol::DrawText(m_FontId, textPos, unicodeString, m_FontTextureId, m_coord, m_coordTex);
}
for (int32_t iii=nbElementInTheArray; iii<m_coord.Size(); iii++) {
m_coordColor.PushBack(m_color);
for (int32_t iii=nbElementInTheArray; iii<m_coord.size(); iii++) {
m_coordColor.push_back(m_color);
}
return size;
}
@ -126,15 +126,15 @@ int32_t ewol::OObject2DTextColored::Text(Vector2D<float> textPos, const uniChar_
EWOL_ERROR("Font Id is not corectly defined");
return 0;
}
int32_t nbElementInTheArray = m_coord.Size();
int32_t nbElementInTheArray = m_coord.size();
int32_t size = 0;
if (true==m_hasClipping) {
size = ewol::DrawText(m_FontId, textPos, m_clipping, unicodeChar, m_FontTextureId, m_coord, m_coordTex);
} else {
size = ewol::DrawText(m_FontId, textPos, unicodeChar, m_FontTextureId, m_coord, m_coordTex);
}
for (int32_t iii=nbElementInTheArray; iii<m_coord.Size(); iii++) {
m_coordColor.PushBack(m_color);
for (int32_t iii=nbElementInTheArray; iii<m_coord.size(); iii++) {
m_coordColor.push_back(m_color);
}
return size;
}

View File

@ -47,9 +47,9 @@ namespace ewol {
int32_t m_FontId; //!< font internal ID
color_ts m_color; //!< tmp text color ...
int32_t m_FontTextureId; //!< font internal Texture ID
etk::VectorType<Vector2D<float> > m_coord; //!< internal coord of the object
etk::VectorType<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
etk::VectorType<color_ts> m_coordColor; //!< internal color of the different point
std::vector<Vector2D<float> > m_coord; //!< internal coord of the object
std::vector<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
std::vector<color_ts> m_coordColor; //!< internal color of the different point
public:
void SetFontID(int32_t fontID) { m_FontId = fontID; };
int32_t GetFontID(void) { return m_FontId; };

View File

@ -52,7 +52,7 @@ ewol::OObject2DTextured::~OObject2DTextured(void)
void ewol::OObject2DTextured::Draw(void)
{
if (m_coord.Size()<=0) {
if (m_coord.size()<=0) {
return;
}
if (m_textureId == -1) {
@ -69,7 +69,7 @@ void ewol::OObject2DTextured::Draw(void)
glVertexPointer( 2, GL_FLOAT, 0, &m_coord[0] );
glTexCoordPointer( 2, GL_FLOAT, 0, &m_coordTex[0] );
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, &m_coordColor[0] );
glDrawArrays( GL_TRIANGLES, 0, m_coord.Size());
glDrawArrays( GL_TRIANGLES, 0, m_coord.size());
//EWOL_DEBUG("request draw of " << m_coord.Size() << " elements");
glDisableClientState( GL_COLOR_ARRAY ); // Disable Color Arrays
glDisableClientState( GL_VERTEX_ARRAY ); // Disable Vertex Arrays
@ -79,9 +79,9 @@ void ewol::OObject2DTextured::Draw(void)
void ewol::OObject2DTextured::Clear(void)
{
m_coord.Clear();
m_coordTex.Clear();
m_coordColor.Clear();
m_coord.clear();
m_coordTex.clear();
m_coordColor.clear();
}
void ewol::OObject2DTextured::Rectangle(float x, float y, float w, float h, color_ts tmpColor)
@ -99,45 +99,45 @@ void ewol::OObject2DTextured::Rectangle(float x, float y, float w, float h, floa
tex.v = texSY;
point.x = x;
point.y = y;
m_coord.PushBack(point);
m_coordTex.PushBack(tex);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(tex);
m_coordColor.push_back(tmpColor);
tex.u = texSX;
tex.v = texSY;
point.x = x + w;
point.y = y;
m_coord.PushBack(point);
m_coordTex.PushBack(tex);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(tex);
m_coordColor.push_back(tmpColor);
tex.u = texSX;
tex.v = texY;
point.x = x + w;
point.y = y + h;
m_coord.PushBack(point);
m_coordTex.PushBack(tex);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(tex);
m_coordColor.push_back(tmpColor);
m_coord.PushBack(point);
m_coordTex.PushBack(tex);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(tex);
m_coordColor.push_back(tmpColor);
tex.u = texX;
tex.v = texY;
point.x = x;
point.y = y + h;
m_coord.PushBack(point);
m_coordTex.PushBack(tex);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(tex);
m_coordColor.push_back(tmpColor);
tex.u = texX;
tex.v = texSY;
point.x = x;
point.y = y;
m_coord.PushBack(point);
m_coordTex.PushBack(tex);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(tex);
m_coordColor.push_back(tmpColor);
}

View File

@ -40,10 +40,10 @@ namespace ewol {
void Rectangle(float x, float y, float w, float h, float texX=0.0, float texY=0.0, float texSX=1.0, float texSY=1.0, color_ts tmpColor=0xFFFFFFFF);
void Rectangle(float x, float y, float w, float h, color_ts tmpColor);
protected:
int32_t m_textureId; //!< texture internal ID
etk::VectorType<Vector2D<float> > m_coord; //!< internal coord of the object
etk::VectorType<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
etk::VectorType<color_ts> m_coordColor; //!< internal color of the different point
int32_t m_textureId; //!< texture internal ID
std::vector<Vector2D<float> > m_coord; //!< internal coord of the object
std::vector<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
std::vector<color_ts> m_coordColor; //!< internal color of the different point
};
};

View File

@ -56,7 +56,7 @@ ewol::Sprite::~Sprite(void)
void ewol::Sprite::Draw(void)
{
if (m_coord.Size()<=0) {
if (m_coord.size()<=0) {
//EWOL_WARNING("Nothink to draw...");
return;
}
@ -73,7 +73,7 @@ void ewol::Sprite::Draw(void)
glVertexPointer( 3, GL_FLOAT, 0, &m_coord[0] );
glTexCoordPointer( 2, GL_FLOAT, 0, &m_coordTex[0] );
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, &m_coordColor[0] );
glDrawArrays( GL_TRIANGLES, 0, m_coord.Size());
glDrawArrays( GL_TRIANGLES, 0, m_coord.size());
//EWOL_DEBUG("request draw of " << m_coord.Size() << " elements");
glDisableClientState( GL_COLOR_ARRAY ); // Disable Color Arrays
glDisableClientState( GL_VERTEX_ARRAY ); // Disable Vertex Arrays
@ -83,9 +83,9 @@ void ewol::Sprite::Draw(void)
void ewol::Sprite::Clear(void)
{
m_coord.Clear();
m_coordTex.Clear();
m_coordColor.Clear();
m_coord.clear();
m_coordTex.clear();
m_coordColor.clear();
}
void ewol::Sprite::Element(Vector2D<float> pos, float size, float angle)
@ -134,36 +134,36 @@ void ewol::Sprite::Element(Vector3D<float> pos, float size, float angle, color_t
point.x = xxxCos + pos.x;
point.y = yyySin + pos.y;
m_coord.PushBack(point);
m_coordTex.PushBack(texB);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(texB);
m_coordColor.push_back(tmpColor);
point.x = yyySin + pos.x;
point.y = -xxxCos + pos.y;
m_coord.PushBack(point);
m_coordTex.PushBack(texC);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(texC);
m_coordColor.push_back(tmpColor);
point.x = -xxxCos + pos.x;
point.y = -yyySin + pos.y;
m_coord.PushBack(point);
m_coordTex.PushBack(texD);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(texD);
m_coordColor.push_back(tmpColor);
m_coord.PushBack(point);
m_coordTex.PushBack(texD);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(texD);
m_coordColor.push_back(tmpColor);
point.x = -yyySin + pos.x;
point.y = xxxCos + pos.y;
m_coord.PushBack(point);
m_coordTex.PushBack(texA);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(texA);
m_coordColor.push_back(tmpColor);
point.x = xxxCos + pos.x;
point.y = yyySin + pos.y;
m_coord.PushBack(point);
m_coordTex.PushBack(texB);
m_coordColor.PushBack(tmpColor);
m_coord.push_back(point);
m_coordTex.push_back(texB);
m_coordColor.push_back(tmpColor);
}

View File

@ -44,10 +44,10 @@ namespace ewol {
void Element(Vector3D<float> pos, float size, float angle, color_ts tmpColor);
bool HasName(etk::UString& name) { return name == m_name; };
protected:
int32_t m_textureId; //!< texture internal ID
etk::VectorType<Vector3D<float> > m_coord; //!< internal coord of the object
etk::VectorType<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
etk::VectorType<color_ts> m_coordColor; //!< internal color of the different point
int32_t m_textureId; //!< texture internal ID
std::vector<Vector3D<float> > m_coord; //!< internal coord of the object
std::vector<texCoord_ts> m_coordTex; //!< internal texture coordinate for every point
std::vector<color_ts> m_coordColor; //!< internal color of the different point
};
};

View File

@ -39,7 +39,7 @@ class EventShortCut {
uniChar_t UnicodeValue;
};
static etk::VectorType<EventShortCut *> l_inputShortCutEvent; //!< generic short-cut event
static std::vector<EventShortCut *> l_inputShortCutEvent; //!< generic short-cut event
void ewol::shortCut::Add(bool shift, bool control, bool alt, bool meta, uniChar_t unicodeValue, const char * generateEventId, etk::UString data)
@ -56,7 +56,7 @@ void ewol::shortCut::Add(bool shift, bool control, bool alt, bool meta, uniChar_
newEvent->meta = meta;
newEvent->UnicodeValue = unicodeValue;
newEvent->eventData = data;
l_inputShortCutEvent.PushBack(newEvent);
l_inputShortCutEvent.push_back(newEvent);
return;
}
@ -100,25 +100,25 @@ void ewol::shortCut::Add(const char * descriptiveString, const char * generateEv
void ewol::shortCut::Init(void)
{
if (l_inputShortCutEvent.Size()>0) {
if (l_inputShortCutEvent.size()>0) {
EWOL_WARNING("Old element error in the shortCut system");
for(int32_t iii=0; iii< l_inputShortCutEvent.Size(); iii++) {
for(int32_t iii=0; iii< l_inputShortCutEvent.size(); iii++) {
delete(l_inputShortCutEvent[iii]);
l_inputShortCutEvent[iii] = NULL;
}
}
l_inputShortCutEvent.Clear();
l_inputShortCutEvent.clear();
}
void ewol::shortCut::UnInit(void)
{
if (l_inputShortCutEvent.Size()>0) {
for(int32_t iii=0; iii< l_inputShortCutEvent.Size(); iii++) {
if (l_inputShortCutEvent.size()>0) {
for(int32_t iii=0; iii< l_inputShortCutEvent.size(); iii++) {
delete(l_inputShortCutEvent[iii]);
l_inputShortCutEvent[iii] = NULL;
}
}
l_inputShortCutEvent.Clear();
l_inputShortCutEvent.clear();
}
@ -129,7 +129,7 @@ bool ewol::shortCut::Process(bool shift, bool control, bool alt, bool meta, uniC
unicodeValue += 'a' - 'A';
}
//EWOL_INFO("Try to find generic shortcut ...");
for(int32_t iii=l_inputShortCutEvent.Size()-1; iii>=0; iii--) {
for(int32_t iii=l_inputShortCutEvent.size()-1; iii>=0; iii--) {
if( l_inputShortCutEvent[iii]->shift == shift
&& l_inputShortCutEvent[iii]->control == control
&& l_inputShortCutEvent[iii]->alt == alt

View File

@ -53,7 +53,7 @@ class LoadedTexture
bool m_destroy;
};
//! List of all Texture loaded ...
etk::VectorType<LoadedTexture*> l_listLoadedTexture;
std::vector<LoadedTexture*> l_listLoadedTexture;
#undef __class__
#define __class__ "texture"
@ -82,13 +82,13 @@ void ewol::texture::UnInit(void)
{
pthread_mutex_lock(&localMutex);
EWOL_DEBUG("==> Un-Init Texture-Manager");
for (int32_t iii=0; iii<l_listLoadedTexture.Size(); iii++) {
for (int32_t iii=0; iii<l_listLoadedTexture.size(); iii++) {
if (l_listLoadedTexture[iii] != NULL) {
delete(l_listLoadedTexture[iii]);
}
l_listLoadedTexture[iii] = NULL;
}
l_listLoadedTexture.Clear();
l_listLoadedTexture.clear();
pthread_mutex_unlock(&localMutex);
int ret = pthread_mutex_destroy(&localMutex);
EWOL_ASSERT(ret == 0, "Error destroying Mutex ...");
@ -105,7 +105,7 @@ void ewol::texture::UnInit(void)
void ewol::texture::UpdateContextIsDestroy(void)
{
pthread_mutex_lock(&localMutex);
for (int32_t iii=0; iii < l_listLoadedTexture.Size(); iii++) {
for (int32_t iii=0; iii < l_listLoadedTexture.size(); iii++) {
if( NULL != l_listLoadedTexture[iii]
&& NULL != l_listLoadedTexture[iii]->m_data)
{
@ -131,7 +131,7 @@ void ewol::texture::UpdateContext(void)
{
bool needRedraw = false;
pthread_mutex_lock(&localMutex);
for (int32_t iii=0; iii < l_listLoadedTexture.Size(); iii++) {
for (int32_t iii=0; iii < l_listLoadedTexture.size(); iii++) {
if( NULL != l_listLoadedTexture[iii]
&& NULL != l_listLoadedTexture[iii]->m_data)
{
@ -241,8 +241,8 @@ int32_t ewol::texture::Load(int32_t target, int32_t level, int32_t internalForma
memcpy(tmpTex->m_data, data, sizeof(char) * tmpTex->m_nbBytes);
pthread_mutex_lock(&localMutex);
l_listLoadedTexture.PushBack(tmpTex);
outTextureID = l_listLoadedTexture.Size()-1;
l_listLoadedTexture.push_back(tmpTex);
outTextureID = l_listLoadedTexture.size()-1;
pthread_mutex_unlock(&localMutex);
return outTextureID;
}
@ -279,8 +279,8 @@ static int32_t nextP2(int32_t value)
int32_t ewol::texture::Load(etk::UString tmpfileName, int32_t requestedWidth)
{
int32_t outTextureID = -1;
if (l_listLoadedTexture.Size()!=0) {
for (int32_t iii=0; iii<l_listLoadedTexture.Size(); iii++) {
if (l_listLoadedTexture.size()!=0) {
for (int32_t iii=0; iii<l_listLoadedTexture.size(); iii++) {
if (NULL != l_listLoadedTexture[iii]) {
if (l_listLoadedTexture[iii]->m_filename == tmpfileName) {
l_listLoadedTexture[iii]->m_nbTimeLoaded++;
@ -352,7 +352,7 @@ int32_t ewol::texture::Load(etk::UString tmpfileName, int32_t requestedWidth)
void ewol::texture::UnLoad(uint32_t textureID)
{
//EWOL_INFO("Unload a specific tecture ID=" << textureID);
if ((int32_t)textureID<l_listLoadedTexture.Size()) {
if ((int32_t)textureID<l_listLoadedTexture.size()) {
if (NULL == l_listLoadedTexture[textureID]) {
EWOL_ERROR("Texture : " << textureID << " does not existe anymore...");
return;
@ -375,7 +375,7 @@ void ewol::texture::UnLoad(uint32_t textureID)
*/
uint32_t ewol::texture::GetGLID(uint32_t textureID)
{
if ((int32_t)textureID<l_listLoadedTexture.Size()) {
if ((int32_t)textureID<l_listLoadedTexture.size()) {
return l_listLoadedTexture[textureID]->m_openGlTextureID;
}
return 0;
@ -389,7 +389,7 @@ uint32_t ewol::texture::GetGLID(uint32_t textureID)
*/
int32_t ewol::texture::GetSize(uint32_t textureID)
{
for (int32_t iii=0; iii<l_listLoadedTexture.Size(); iii++) {
for (int32_t iii=0; iii<l_listLoadedTexture.size(); iii++) {
if (l_listLoadedTexture[iii]->m_openGlTextureID == textureID) {
return l_listLoadedTexture[iii]->m_width;
}

View File

@ -33,7 +33,6 @@ namespace ewol {
class Widget;
};
#include <etk/Types.h>
#include <etk/VectorType.h>
#include <ewol/Debug.h>
#include <ewol/OObject.h>
#include <ewol/base/eventInputManagement.h>

View File

@ -27,7 +27,7 @@
#include <ewol/widget/Button.h>
#include <ewol/widget/ButtonColor.h>
//#include <ewol/widget/Scene.h>
#include <etk/VectorType.h>
#include <vector>
#undef __class__
#define __class__ "WidgetManager"
@ -38,8 +38,8 @@ static bool IsInit = false;
// For the focus Management
static ewol::Widget * m_focusWidgetDefault = NULL;
static ewol::Widget * m_focusWidgetCurrent = NULL;
static etk::VectorType<ewol::Widget*> l_listOfPeriodicWidget;
static bool l_havePeriodic = false;
static std::vector<ewol::Widget*> l_listOfPeriodicWidget;
static bool l_havePeriodic = false;
void ewol::widgetManager::Init(void)
{
@ -50,7 +50,7 @@ void ewol::widgetManager::Init(void)
// prevent android error ==> can create memory leak but I prefer
m_focusWidgetDefault = NULL;
m_focusWidgetCurrent = NULL;
l_listOfPeriodicWidget.Clear();
l_listOfPeriodicWidget.clear();
l_havePeriodic = false;
// init all the widget global parameters :
ewol::WIDGET_JoystickInit();
@ -69,7 +69,7 @@ void ewol::widgetManager::UnInit(void)
IsInit = false;
l_listOfPeriodicWidget.Clear();
l_listOfPeriodicWidget.clear();
int ret = pthread_mutex_destroy(&localMutex);
EWOL_ASSERT(ret == 0, "Error destroying Mutex ...");
}
@ -170,25 +170,25 @@ void ewol::widgetManager::FocusRemoveIfRemove(ewol::Widget * newWidget)
void ewol::widgetManager::PeriodicCallAdd(ewol::Widget * pWidget)
{
for (int32_t iii=0; iii < l_listOfPeriodicWidget.Size(); iii++) {
for (int32_t iii=0; iii < l_listOfPeriodicWidget.size(); iii++) {
if (l_listOfPeriodicWidget[iii] == pWidget) {
return;
}
}
for (int32_t iii=0; iii < l_listOfPeriodicWidget.Size(); iii++) {
for (int32_t iii=0; iii < l_listOfPeriodicWidget.size(); iii++) {
if (NULL == l_listOfPeriodicWidget[iii]) {
l_listOfPeriodicWidget[iii] = pWidget;
return;
}
}
l_listOfPeriodicWidget.PushBack(pWidget);
l_listOfPeriodicWidget.push_back(pWidget);
l_havePeriodic = true;
}
void ewol::widgetManager::PeriodicCallRm(ewol::Widget * pWidget)
{
int32_t nbElement = 0;
for (int32_t iii=0; iii < l_listOfPeriodicWidget.Size(); iii++) {
for (int32_t iii=0; iii < l_listOfPeriodicWidget.size(); iii++) {
if (l_listOfPeriodicWidget[iii] == pWidget) {
l_listOfPeriodicWidget[iii] = NULL;
} else {
@ -202,7 +202,7 @@ void ewol::widgetManager::PeriodicCallRm(ewol::Widget * pWidget)
void ewol::widgetManager::PeriodicCall(int64_t localTime)
{
for (int32_t iii=0; iii < l_listOfPeriodicWidget.Size(); iii++) {
for (int32_t iii=0; iii < l_listOfPeriodicWidget.size(); iii++) {
if (NULL != l_listOfPeriodicWidget[iii]) {
l_listOfPeriodicWidget[iii]->PeriodicCall(localTime);
}

View File

@ -28,7 +28,7 @@
#include <etk/Types.h>
#include <ewol/Debug.h>
#include <ewol/OObject.h>
#include <etk/VectorType.h>
#include <vector>
#include <ewol/Widget.h>
namespace ewol {

View File

@ -61,13 +61,13 @@ ewol::Windows::~Windows(void)
m_subWidget[m_currentCreateId]=NULL;
}
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentCreateId].Size(); iii++) {
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentCreateId].size(); iii++) {
if (NULL != m_popUpWidgetList[m_currentCreateId][iii]) {
m_popUpWidgetList[m_currentCreateId][iii]->MarkToRemove();
m_popUpWidgetList[m_currentCreateId][iii]=NULL;
}
}
m_popUpWidgetList[m_currentCreateId].Clear();
m_popUpWidgetList[m_currentCreateId].clear();
}
@ -82,7 +82,7 @@ bool ewol::Windows::CalculateSize(float availlableX, float availlableY)
// TODO : Herited from MinSize .. and expand ???
m_subWidget[m_currentCreateId]->CalculateSize(m_size.x, m_size.y);
}
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentCreateId].Size(); iii++) {
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentCreateId].size(); iii++) {
if (NULL != m_popUpWidgetList[m_currentCreateId][iii]) {
m_popUpWidgetList[m_currentCreateId][iii]->CalculateMinSize();
m_popUpWidgetList[m_currentCreateId][iii]->CalculateSize(m_size.x, m_size.y);
@ -102,11 +102,11 @@ ewol::Widget * ewol::Windows::GetWidgetAtPos(Vector2D<float> pos)
// calculate relative position
Vector2D<float> relativePos = RelativePosition(pos);
// event go directly on the pop-up
if (0 < m_popUpWidgetList[m_currentCreateId].Size()) {
if (NULL == m_popUpWidgetList[m_currentCreateId][m_popUpWidgetList[m_currentCreateId].Size()-1]) {
m_popUpWidgetList[m_currentCreateId].PopBack();
if (0 < m_popUpWidgetList[m_currentCreateId].size()) {
if (NULL == m_popUpWidgetList[m_currentCreateId][m_popUpWidgetList[m_currentCreateId].size()-1]) {
m_popUpWidgetList[m_currentCreateId].pop_back();
} else {
return m_popUpWidgetList[m_currentCreateId][m_popUpWidgetList[m_currentCreateId].Size()-1]->GetWidgetAtPos(pos);
return m_popUpWidgetList[m_currentCreateId][m_popUpWidgetList[m_currentCreateId].size()-1]->GetWidgetAtPos(pos);
}
// otherwise in the normal windows
} else if (NULL != m_subWidget[m_currentCreateId]) {
@ -143,7 +143,7 @@ void ewol::Windows::OnRegenerateDisplay(void)
if (NULL != m_subWidget[m_currentCreateId]) {
m_subWidget[m_currentCreateId]->OnRegenerateDisplay();
}
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentCreateId].Size(); iii++) {
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentCreateId].size(); iii++) {
if (NULL != m_popUpWidgetList[m_currentCreateId][iii]) {
m_popUpWidgetList[m_currentCreateId][iii]->OnRegenerateDisplay();
}
@ -165,7 +165,7 @@ void ewol::Windows::OnDraw(ewol::DrawProperty& displayProp)
//EWOL_DEBUG("Draw Windows");
}
// second display the pop-up
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentDrawId].Size(); iii++) {
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentDrawId].size(); iii++) {
if (NULL != m_popUpWidgetList[m_currentDrawId][iii]) {
m_popUpWidgetList[m_currentDrawId][iii]->GenDraw(displayProp);
//EWOL_DEBUG("Draw Pop-up");
@ -191,7 +191,7 @@ void ewol::Windows::SetSubWidget(ewol::Widget * widget)
void ewol::Windows::PopUpWidgetPush(ewol::Widget * widget)
{
m_popUpWidgetList[m_currentCreateId].PushBack(widget);
m_popUpWidgetList[m_currentCreateId].push_back(widget);
// Regenerate the size calculation :
CalculateSize(m_size.x, m_size.y);
m_needFlipFlop = true;
@ -218,7 +218,7 @@ void ewol::Windows::OnFlipFlopEvent(void)
if (NULL != m_subWidget[m_currentDrawId]) {
m_subWidget[m_currentDrawId]->OnFlipFlopEvent();
}
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentDrawId].Size(); iii++) {
for(int32_t iii=0; iii<m_popUpWidgetList[m_currentDrawId].size(); iii++) {
if(NULL != m_popUpWidgetList[m_currentDrawId][iii]) {
m_popUpWidgetList[m_currentDrawId][iii]->OnFlipFlopEvent();
}
@ -242,11 +242,11 @@ void ewol::Windows::OnObjectRemove(ewol::EObject * removeObject)
m_subWidget[m_currentCreateId] = NULL;
m_needFlipFlop = true;
}
for(int32_t iii=m_popUpWidgetList[m_currentCreateId].Size()-1; iii>=0; iii--) {
for(int32_t iii=m_popUpWidgetList[m_currentCreateId].size()-1; iii>=0; iii--) {
if(m_popUpWidgetList[m_currentCreateId][iii] == removeObject) {
EWOL_DEBUG("Remove Pop-up [" << iii << "] element of the windows ==> destroyed object");
m_popUpWidgetList[m_currentCreateId][iii] = NULL;
m_popUpWidgetList[m_currentCreateId].Erase(iii);
m_popUpWidgetList[m_currentCreateId].erase(m_popUpWidgetList[m_currentCreateId].begin()+iii );
m_needFlipFlop = true;
}
}

View File

@ -27,7 +27,7 @@
#include <etk/Types.h>
#include <ewol/Debug.h>
#include <etk/VectorType.h>
#include <vector>
#include <ewol/Widget.h>
namespace ewol {
@ -79,7 +79,7 @@ namespace ewol {
}
private:
ewol::Widget* m_subWidget[NB_BOUBLE_BUFFER];
etk::VectorType<ewol::Widget*> m_popUpWidgetList[NB_BOUBLE_BUFFER];
std::vector<ewol::Widget*> m_popUpWidgetList[NB_BOUBLE_BUFFER];
public:
void SetSubWidget(ewol::Widget * widget);
void PopUpWidgetPush(ewol::Widget * widget);

View File

@ -1270,16 +1270,16 @@ bool guiAbstraction::IsPressedInput(int32_t inputID)
#include <ewol/ewol.h>
static etk::VectorType<etk::UString*> listArgs;
static std::vector<etk::UString*> listArgs;
int32_t ewol::CmdLineNb(void)
{
return listArgs.Size();
return listArgs.size();
}
etk::UString ewol::CmdLineGet(int32_t id)
{
if (id<0 && id>=listArgs.Size()) {
if (id<0 && id>=listArgs.size()) {
return "";
}
if (NULL == listArgs[id]) {
@ -1317,7 +1317,7 @@ int main(int argc, char *argv[])
} else {
etk::UString* tmpString = new etk::UString(argv[i]);
if (NULL != tmpString) {
listArgs.PushBack(tmpString);
listArgs.push_back(tmpString);
}
}
}
@ -1336,13 +1336,13 @@ int main(int argc, char *argv[])
guiAbstraction::Stop();
// uninit ALL :
EWOL_SystemStop();
for (int32_t iii=0; iii<listArgs.Size(); iii++) {
for (int32_t iii=0; iii<listArgs.size(); iii++) {
if (NULL != listArgs[iii]) {
delete listArgs[iii];
listArgs[iii] = NULL;
}
}
listArgs.Clear();
listArgs.clear();
#ifdef PTHREAD_GUI_LOCK_MULTITHREAD
ret = pthread_mutex_destroy(&l_mutex);
EWOL_ASSERT(ret == 0, "Error destroying Mutex ...");

View File

@ -34,11 +34,11 @@ ewol::Drawable::~Drawable(void)
{
//clean all the object
for (int32_t jjj=0; jjj<NB_BOUBLE_BUFFER; jjj++) {
for (int32_t iii=0; iii<m_listOObject[jjj].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[jjj].size(); iii++) {
delete(m_listOObject[jjj][iii]);
m_listOObject[jjj][iii] = NULL;
}
m_listOObject[jjj].Clear();
m_listOObject[jjj].clear();
}
}
@ -50,10 +50,10 @@ void ewol::Drawable::AddOObject(ewol::OObject* newObject, int32_t pos)
EWOL_ERROR("Try to add an empty object in the Widget generic display system");
return;
}
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].Size() ) {
m_listOObject[m_currentCreateId].PushBack(newObject);
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].size() ) {
m_listOObject[m_currentCreateId].push_back(newObject);
} else {
m_listOObject[m_currentCreateId].Insert(pos, newObject);
m_listOObject[m_currentCreateId].insert(m_listOObject[m_currentCreateId].begin()+pos, newObject);
}
m_needFlipFlop = true;
}
@ -61,16 +61,16 @@ void ewol::Drawable::AddOObject(ewol::OObject* newObject, int32_t pos)
void ewol::Drawable::ClearOObjectList(void)
{
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].size(); iii++) {
delete(m_listOObject[m_currentCreateId][iii]);
m_listOObject[m_currentCreateId][iii] = NULL;
}
m_listOObject[m_currentCreateId].Clear();
m_listOObject[m_currentCreateId].clear();
}
void ewol::Drawable::OnDraw(DrawProperty& displayProp)
{
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].size(); iii++) {
if (NULL != m_listOObject[m_currentDrawId][iii]) {
m_listOObject[m_currentDrawId][iii]->Draw();
}

View File

@ -26,6 +26,7 @@
#define __EWOL_WIDGET_DRAWABLE_H__
#include <ewol/Widget.h>
#include <vector>
namespace ewol {
@ -44,7 +45,7 @@ namespace ewol {
virtual const char * const GetObjectType(void) { return "EwolDrawable"; };
private:
etk::VectorType<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
std::vector<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
public:
void AddOObject(ewol::OObject* newObject, int32_t pos=-1);
void ClearOObjectList(void);

View File

@ -48,7 +48,7 @@ bool ewol::Layer::CalculateSize(float availlableX, float availlableY)
//EWOL_DEBUG("Update Size");
m_size.x = availlableX;
m_size.y = availlableY;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->SetOrigin(m_origin.x, m_origin.y);
m_subWidget[m_currentCreateId][iii]->CalculateSize(m_size.x, m_size.y);
@ -65,7 +65,7 @@ bool ewol::Layer::CalculateMinSize(void)
m_userExpendY=false;
m_minSize.x = 0.0;
m_minSize.y = 0.0;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->CalculateMinSize();
if (true == m_subWidget[m_currentCreateId][iii]->CanExpentX()) {
@ -118,15 +118,14 @@ void ewol::Layer::LockExpendContamination(bool lockExpend)
m_lockExpendContamination = lockExpend;
}
//etk::VectorType<ewol::Widget*> m_SubWidget;
void ewol::Layer::SubWidgetRemoveAll(void)
{
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
}
m_subWidget[m_currentCreateId].Clear();
m_subWidget[m_currentCreateId].clear();
}
@ -135,7 +134,7 @@ void ewol::Layer::SubWidgetAdd(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
m_subWidget[m_currentCreateId].PushBack(newWidget);
m_subWidget[m_currentCreateId].push_back(newWidget);
}
@ -144,11 +143,11 @@ void ewol::Layer::SubWidgetRemove(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
return;
}
}
@ -159,10 +158,10 @@ void ewol::Layer::SubWidgetUnLink(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
return;
}
}
@ -172,7 +171,7 @@ void ewol::Layer::SubWidgetUnLink(ewol::Widget* newWidget)
void ewol::Layer::OnDraw(DrawProperty& displayProp)
{
// draw is done in the invert sense of inserting ... the first element inserted is on the top and the last is on the buttom
for (int32_t iii=m_subWidget[m_currentDrawId].Size()-1; iii>=0; iii--) {
for (int32_t iii=m_subWidget[m_currentDrawId].size()-1; iii>=0; iii--) {
if (NULL != m_subWidget[m_currentDrawId][iii]) {
m_subWidget[m_currentDrawId][iii]->GenDraw(displayProp);
}
@ -183,7 +182,7 @@ void ewol::Layer::OnDraw(DrawProperty& displayProp)
void ewol::Layer::OnRegenerateDisplay(void)
{
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->OnRegenerateDisplay();
}
@ -200,7 +199,7 @@ void ewol::Layer::OnRegenerateDisplay(void)
ewol::Widget * ewol::Layer::GetWidgetAtPos(Vector2D<float> pos)
{
// for all element in the sizer ...
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
Vector2D<float> tmpSize = m_subWidget[m_currentCreateId][iii]->GetSize();
Vector2D<float> tmpOrigin = m_subWidget[m_currentCreateId][iii]->GetOrigin();
@ -234,7 +233,7 @@ void ewol::Layer::OnFlipFlopEvent(void)
m_subWidget[m_currentCreateId] = m_subWidget[m_currentDrawId];
}
// in every case, we propagate the flip-flop EVENT
for(int32_t iii=0; iii<m_subWidget[m_currentDrawId].Size(); iii++) {
for(int32_t iii=0; iii<m_subWidget[m_currentDrawId].size(); iii++) {
if(NULL != m_subWidget[m_currentDrawId][iii]) {
m_subWidget[m_currentDrawId][iii]->OnFlipFlopEvent();
}
@ -253,11 +252,11 @@ void ewol::Layer::OnObjectRemove(ewol::EObject * removeObject)
// First step call parrent :
ewol::Widget::OnObjectRemove(removeObject);
// second step find if in all the elements ...
for(int32_t iii=m_subWidget[m_currentCreateId].Size()-1; iii>=0; iii--) {
for(int32_t iii=m_subWidget[m_currentCreateId].size()-1; iii>=0; iii--) {
if(m_subWidget[m_currentCreateId][iii] == removeObject) {
EWOL_DEBUG("Remove sizer sub Element [" << iii << "] ==> destroyed object");
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
m_needFlipFlop = true;
}
}

View File

@ -26,6 +26,7 @@
#define __EWOL_LAYER_H__
#include <etk/Types.h>
#include <vector>
#include <ewol/Debug.h>
#include <ewol/Widget.h>
@ -52,8 +53,8 @@ namespace ewol {
virtual bool CanExpentY(void);
void LockExpendContamination(bool lockExpend=false);
private:
bool m_lockExpendContamination;
etk::VectorType<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
bool m_lockExpendContamination;
std::vector<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
public:
virtual void SubWidgetRemoveAll(void);
virtual void SubWidgetAdd(ewol::Widget* newWidget);

View File

@ -52,11 +52,11 @@ ewol::List::~List(void)
{
//clean all the object
for (int32_t jjj=0; jjj<NB_BOUBLE_BUFFER; jjj++) {
for (int32_t iii=0; iii<m_listOObject[jjj].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[jjj].size(); iii++) {
delete(m_listOObject[jjj][iii]);
m_listOObject[jjj][iii] = NULL;
}
m_listOObject[jjj].Clear();
m_listOObject[jjj].clear();
}
}
@ -81,10 +81,10 @@ void ewol::List::AddOObject(ewol::OObject* newObject, int32_t pos)
EWOL_ERROR("Try to add an empty object in the Widget generic display system");
return;
}
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].Size() ) {
m_listOObject[m_currentCreateId].PushBack(newObject);
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].size() ) {
m_listOObject[m_currentCreateId].push_back(newObject);
} else {
m_listOObject[m_currentCreateId].Insert(pos, newObject);
m_listOObject[m_currentCreateId].insert(m_listOObject[m_currentCreateId].begin()+pos, newObject);
}
m_needFlipFlop = true;
}
@ -92,16 +92,16 @@ void ewol::List::AddOObject(ewol::OObject* newObject, int32_t pos)
void ewol::List::ClearOObjectList(void)
{
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].size(); iii++) {
delete(m_listOObject[m_currentCreateId][iii]);
m_listOObject[m_currentCreateId][iii] = NULL;
}
m_listOObject[m_currentCreateId].Clear();
m_listOObject[m_currentCreateId].clear();
}
void ewol::List::OnDraw(DrawProperty& displayProp)
{
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].size(); iii++) {
if (NULL != m_listOObject[m_currentDrawId][iii]) {
m_listOObject[m_currentDrawId][iii]->Draw();
}
@ -144,7 +144,7 @@ void ewol::List::OnRegenerateDisplay(void)
m_maxSize.y = (minHeight + 2*m_paddingSizeY) * nbRaw;
etk::VectorType<int32_t> listSizeColomn;
std::vector<int32_t> listSizeColomn;
ewol::OObject2DColored * BGOObjects = new ewol::OObject2DColored();
color_ts basicBG = GetBasicBG();

View File

@ -29,6 +29,7 @@
#include <ewol/Debug.h>
#include <ewol/widget/WidgetScrolled.h>
#include <ewol/widget/Drawable.h>
#include <vector>
namespace ewol {
class List :public ewol::WidgetScrooled
@ -48,7 +49,7 @@ namespace ewol {
void SetLabel(etk::UString newLabel);
// Drawing capabilities ....
private:
etk::VectorType<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
std::vector<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
public:
void AddOObject(ewol::OObject* newObject, int32_t pos=-1);
void ClearOObjectList(void);

View File

@ -38,14 +38,14 @@ extern const char * const ewolEventFSFileValidate = "ewol-event-file-system-fi
extern const char * const ewolEventFSFolderSelect = "ewol-event-file-system-folder-select";
extern const char * const ewolEventFSFolderValidate = "ewol-event-file-system-folder-validate";
static void SortElementList(etk::VectorType<ewol::elementFS *> &list)
static void SortElementList(std::vector<ewol::elementFS *> &list)
{
etk::VectorType<ewol::elementFS *> tmpList = list;
list.Clear();
for(int32_t iii=0; iii<tmpList.Size(); iii++) {
std::vector<ewol::elementFS *> tmpList = list;
list.clear();
for(int32_t iii=0; iii<tmpList.size(); iii++) {
if (NULL != tmpList[iii]) {
int32_t findPos = 0;
for(int32_t jjj=0; jjj<list.Size(); jjj++) {
for(int32_t jjj=0; jjj<list.size(); jjj++) {
//EWOL_DEBUG("compare : \""<<*tmpList[iii] << "\" and \"" << *m_listDirectory[jjj] << "\"");
if (list[jjj]!=NULL) {
if (tmpList[iii]->m_name > list[jjj]->m_name) {
@ -54,7 +54,7 @@ static void SortElementList(etk::VectorType<ewol::elementFS *> &list)
}
}
//EWOL_DEBUG("position="<<findPos);
list.Insert(findPos, tmpList[iii]);
list.insert(list.begin()+findPos, tmpList[iii]);
}
}
}
@ -78,7 +78,7 @@ ewol::ListFileSystem::ListFileSystem(void)
ewol::ListFileSystem::~ListFileSystem(void)
{
for (int32_t iii=0; iii<m_list.Size(); iii++) {
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL != m_list[iii]) {
delete(m_list[iii]);
m_list[iii] = NULL;
@ -95,13 +95,13 @@ color_ts ewol::ListFileSystem::GetBasicBG(void) {
void ewol::ListFileSystem::RegenerateView(void)
{
// clean the list of files :
for (int32_t iii=0; iii<m_list.Size(); iii++) {
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL != m_list[iii]) {
delete(m_list[iii]);
m_list[iii] = NULL;
}
}
m_list.Clear();
m_list.clear();
m_originScrooled.x = 0;
m_originScrooled.y = 0;
@ -111,14 +111,14 @@ void ewol::ListFileSystem::RegenerateView(void)
// the "." permit to reload the curent folder
tmpEmement = new ewol::elementFS(".", ewol::EFS_FOLDER);
if (NULL != tmpEmement) {
m_list.PushBack(tmpEmement);
m_list.push_back(tmpEmement);
}
tmpEmement = NULL;
// the ".." permit to show the upper folder (but not availlable for the "/" folder
if (m_folder != "/") {
tmpEmement = new ewol::elementFS("..", ewol::EFS_FOLDER);
if (NULL != tmpEmement) {
m_list.PushBack(tmpEmement);
m_list.push_back(tmpEmement);
}
tmpEmement = NULL;
}
@ -137,7 +137,7 @@ void ewol::ListFileSystem::RegenerateView(void)
|| true ==m_showHidden) {
tmpEmement = new ewol::elementFS(tmpString, ewol::EFS_FILE);
if (NULL != tmpEmement) {
m_list.PushBack(tmpEmement);
m_list.push_back(tmpEmement);
}
tmpEmement = NULL;
}
@ -153,7 +153,7 @@ void ewol::ListFileSystem::RegenerateView(void)
|| true ==m_showHidden) {
tmpEmement = new ewol::elementFS(tmpString, ewol::EFS_FOLDER);
if (NULL != tmpEmement) {
m_list.PushBack(tmpEmement);
m_list.push_back(tmpEmement);
}
tmpEmement = NULL;
}
@ -222,11 +222,12 @@ etk::UString ewol::ListFileSystem::GetSelect(void)
}
// select the specific file
void ewol::ListFileSystem::SetSelect( etk::UString data) {
void ewol::ListFileSystem::SetSelect( etk::UString data)
{
// remove selected line
m_selectedLine = -1;
// search the coresponding file :
for (int32_t iii=0; iii<m_list.Size(); iii++) {
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL!=m_list[iii]) {
if (m_list[iii]->m_name == data) {
// we find the line :
@ -238,18 +239,25 @@ void ewol::ListFileSystem::SetSelect( etk::UString data) {
MarkToReedraw();
}
uint32_t ewol::ListFileSystem::GetNuberOfColomn(void) {
uint32_t ewol::ListFileSystem::GetNuberOfColomn(void)
{
return 1;
};
bool ewol::ListFileSystem::GetTitle(int32_t colomn, etk::UString &myTitle, color_ts &fg, color_ts &bg) {
}
bool ewol::ListFileSystem::GetTitle(int32_t colomn, etk::UString &myTitle, color_ts &fg, color_ts &bg)
{
myTitle = "title";
return true;
};
uint32_t ewol::ListFileSystem::GetNuberOfRaw(void) {
return m_list.Size();
};
bool ewol::ListFileSystem::GetElement(int32_t colomn, int32_t raw, etk::UString &myTextToWrite, color_ts &fg, color_ts &bg) {
if (raw >= 0 && raw < m_list.Size() && NULL != m_list[raw]) {
}
uint32_t ewol::ListFileSystem::GetNuberOfRaw(void)
{
return m_list.size();
}
bool ewol::ListFileSystem::GetElement(int32_t colomn, int32_t raw, etk::UString &myTextToWrite, color_ts &fg, color_ts &bg)
{
if (raw >= 0 && raw < m_list.size() && NULL != m_list[raw]) {
myTextToWrite = m_list[raw]->m_name;
} else {
myTextToWrite = "ERROR";
@ -264,13 +272,14 @@ bool ewol::ListFileSystem::GetElement(int32_t colomn, int32_t raw, etk::UString
bg = 0x8F8FFFFF;
}
return true;
};
}
bool ewol::ListFileSystem::OnItemEvent(int32_t IdInput, ewol::eventInputType_te typeEvent, int32_t colomn, int32_t raw, float x, float y) {
bool ewol::ListFileSystem::OnItemEvent(int32_t IdInput, ewol::eventInputType_te typeEvent, int32_t colomn, int32_t raw, float x, float y)
{
if (typeEvent == ewol::EVENT_INPUT_TYPE_SINGLE) {
EWOL_INFO("Event on List : IdInput=" << IdInput << " colomn=" << colomn << " raw=" << raw );
if (1 == IdInput) {
if (raw > m_list.Size() ) {
if (raw > m_list.size() ) {
m_selectedLine = -1;
} else {
m_selectedLine = raw;

View File

@ -26,6 +26,7 @@
#define __EWOL_LIST_FILE_H__
#include <ewol/widget/List.h>
#include <vector>
extern const char * const ewolEventFSFileSelect;
extern const char * const ewolEventFSFileValidate;
@ -55,7 +56,7 @@ namespace ewol {
class ListFileSystem : public ewol::List
{
private:
etk::VectorType<ewol::elementFS *> m_list;
std::vector<ewol::elementFS *> m_list;
etk::UString m_folder;
int32_t m_selectedLine;
bool m_showFile;

View File

@ -70,13 +70,13 @@ void ewol::Menu::SubWidgetUnLink(ewol::Widget* newWidget)
void ewol::Menu::Clear(void)
{
for( int32_t iii=0; iii < m_listElement.Size(); iii++) {
for( int32_t iii=0; iii < m_listElement.size(); iii++) {
if (m_listElement[iii] != NULL) {
delete(m_listElement[iii]);
m_listElement[iii] = NULL;
}
}
m_listElement.Clear();
m_listElement.clear();
}
int32_t ewol::Menu::AddTitle(etk::UString label, etk::UString image, const char * generateEvent, const etk::UString message)
@ -98,7 +98,7 @@ int32_t ewol::Menu::Add(int32_t parent, etk::UString label, etk::UString image,
tmpObject->m_image = image;
tmpObject->m_generateEvent = generateEvent;
tmpObject->m_message = message;
m_listElement.PushBack(tmpObject);
m_listElement.push_back(tmpObject);
if (-1 == tmpObject->m_parentId) {
ewol::Button * myButton = NULL;
myButton = new ewol::Button(label);
@ -138,7 +138,7 @@ void ewol::Menu::OnReceiveMessage(ewol::EObject * CallerObject, const char * eve
}
*/
if (eventId == ewolEventButtonPressed) {
for(int32_t iii=0; iii<m_listElement.Size(); iii++) {
for(int32_t iii=0; iii<m_listElement.size(); iii++) {
if (CallerObject == m_listElement[iii]->m_widgetPointer) {
// 2 posible case (have a message or have a child ...
if (m_listElement[iii]->m_generateEvent != NULL) {
@ -154,7 +154,7 @@ void ewol::Menu::OnReceiveMessage(ewol::EObject * CallerObject, const char * eve
} else{
EWOL_DEBUG("Menu ==> Load Sub Menu");
bool findChild = false;
for(int32_t jjj=0; jjj<m_listElement.Size(); jjj++) {
for(int32_t jjj=0; jjj<m_listElement.size(); jjj++) {
if (m_listElement[iii]->m_localId == m_listElement[jjj]->m_parentId) {
findChild = true;
break;
@ -191,7 +191,7 @@ void ewol::Menu::OnReceiveMessage(ewol::EObject * CallerObject, const char * eve
// set it in the pop-up-system :
m_widgetContextMenu->SubWidgetSet(mySizerVert);
for(int32_t jjj=m_listElement.Size()-1; jjj>=0; jjj--) {
for(int32_t jjj=m_listElement.size()-1; jjj>=0; jjj--) {
if (m_listElement[iii]!=NULL) {
if (m_listElement[iii]->m_localId == m_listElement[jjj]->m_parentId) {
myButton = new ewol::Button(m_listElement[jjj]->m_label);
@ -231,7 +231,7 @@ void ewol::Menu::OnObjectRemove(ewol::EObject * removeObject)
if (m_widgetContextMenu == removeObject) {
m_widgetContextMenu = NULL;
}
for(int32_t jjj=0; jjj<m_listElement.Size(); jjj++) {
for(int32_t jjj=0; jjj<m_listElement.size(); jjj++) {
if (NULL != m_listElement[jjj]) {
if (m_listElement[jjj]->m_widgetPointer == removeObject) {
m_listElement[jjj]->m_widgetPointer = NULL;

View File

@ -26,6 +26,7 @@
#define __EWOL_MENU_H__
#include <etk/Types.h>
#include <vector>
#include <etk/UString.h>
#include <ewol/Debug.h>
#include <ewol/Widget.h>
@ -64,9 +65,9 @@ namespace ewol {
virtual void SubWidgetRemove(ewol::Widget* newWidget);
virtual void SubWidgetUnLink(ewol::Widget* newWidget);
private:
etk::VectorType<MenuElement*> m_listElement;
int32_t m_staticId; // unique ID for every element of the menu ...
ewol::ContextMenu* m_widgetContextMenu;
std::vector<MenuElement*> m_listElement;
int32_t m_staticId; // unique ID for every element of the menu ...
ewol::ContextMenu* m_widgetContextMenu;
public:
void Clear(void);
int32_t AddTitle(etk::UString label, etk::UString image="", const char * generateEvent = NULL, const etk::UString message = "");

View File

@ -63,13 +63,13 @@ void ewol::Scene::OnRegenerateDisplay(void)
{
if (true == NeedRedraw()) {
// clean elements
for (int32_t iii=0; iii<m_sceneElement.animated[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_sceneElement.animated[m_currentCreateId].size(); iii++) {
if (NULL != m_sceneElement.animated[m_currentCreateId][iii]) {
m_sceneElement.animated[m_currentCreateId][iii]->Clear();
}
}
for (int32_t jjj=0; jjj<MAX_GROUP_NUMBER; jjj++) {
for (int32_t iii=0; iii<m_sceneElement.listAnimatedElements[jjj].Size(); iii++) {
for (int32_t iii=0; iii<m_sceneElement.listAnimatedElements[jjj].size(); iii++) {
if (NULL != m_sceneElement.listAnimatedElements[jjj][iii]) {
// find an empty slot ...
m_sceneElement.listAnimatedElements[jjj][iii]->Draw(m_currentCreateId);
@ -90,7 +90,7 @@ void ewol::Scene::OnDraw(DrawProperty& displayProp)
{
//EWOL_ERROR(" On draw : " << m_currentDrawId);
// draw elements
for (int32_t iii=0; iii<m_sceneElement.animated[m_currentDrawId].Size(); iii++) {
for (int32_t iii=0; iii<m_sceneElement.animated[m_currentDrawId].size(); iii++) {
if (NULL != m_sceneElement.animated[m_currentDrawId][iii]) {
m_sceneElement.animated[m_currentDrawId][iii]->Draw();
}
@ -126,7 +126,7 @@ void ewol::Scene::PeriodicCall(int64_t localTime)
ScenePeriodicCall(m_lastCallTime, CYCLIC_CALL_PERIODE_US);
//EWOL_ERROR("Periodic Call ... " << localTime);
for (int32_t jjj=0; jjj<MAX_GROUP_NUMBER; jjj++) {
for (int32_t iii=0; iii<m_sceneElement.listAnimatedElements[jjj].Size(); iii++) {
for (int32_t iii=0; iii<m_sceneElement.listAnimatedElements[jjj].size(); iii++) {
if (NULL != m_sceneElement.listAnimatedElements[jjj][iii]) {
// check if the element request an auto Kill ...
if (true == m_sceneElement.listAnimatedElements[jjj][iii]->Process(m_lastCallTime, CYCLIC_CALL_PERIODE_US) ) {

View File

@ -51,7 +51,7 @@ bool ewol::SizerHori::CalculateSize(float availlableX, float availlableY)
float unexpendableSize=0.0;
int32_t nbWidgetFixedSize=0;
int32_t nbWidgetNotFixedSize=0;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
Vector2D<float> tmpSize = m_subWidget[m_currentCreateId][iii]->GetMinSize();
unexpendableSize += tmpSize.x;
@ -73,7 +73,7 @@ bool ewol::SizerHori::CalculateSize(float availlableX, float availlableY)
Vector2D<float> tmpOrigin;
tmpOrigin.x = m_origin.x;
tmpOrigin.y = m_origin.y;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
Vector2D<float> tmpSize = m_subWidget[m_currentCreateId][iii]->GetMinSize();
// Set the origin :
@ -101,7 +101,7 @@ bool ewol::SizerHori::CalculateMinSize(void)
m_userExpendY=false;
m_minSize.x = 0.0;
m_minSize.y = 0.0;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->CalculateMinSize();
if (true == m_subWidget[m_currentCreateId][iii]->CanExpentX()) {
@ -158,17 +158,16 @@ void ewol::SizerHori::LockExpendContamination(bool lockExpend)
m_lockExpendContamination = lockExpend;
}
//etk::VectorType<ewol::Widget*> m_subWidget[m_currentCreateId];
void ewol::SizerHori::SubWidgetRemoveAll(void)
{
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
}
}
m_subWidget[m_currentCreateId].Clear();
m_subWidget[m_currentCreateId].clear();
}
@ -177,7 +176,7 @@ void ewol::SizerHori::SubWidgetAdd(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
m_subWidget[m_currentCreateId].PushBack(newWidget);
m_subWidget[m_currentCreateId].push_back(newWidget);
}
@ -186,13 +185,13 @@ void ewol::SizerHori::SubWidgetRemove(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
}
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
return;
}
}
@ -203,10 +202,10 @@ void ewol::SizerHori::SubWidgetUnLink(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
return;
}
}
@ -215,7 +214,7 @@ void ewol::SizerHori::SubWidgetUnLink(ewol::Widget* newWidget)
void ewol::SizerHori::OnDraw(DrawProperty& displayProp)
{
for (int32_t iii=0; iii<m_subWidget[m_currentDrawId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentDrawId].size(); iii++) {
if (NULL != m_subWidget[m_currentDrawId][iii]) {
m_subWidget[m_currentDrawId][iii]->GenDraw(displayProp);
}
@ -225,7 +224,7 @@ void ewol::SizerHori::OnDraw(DrawProperty& displayProp)
void ewol::SizerHori::OnRegenerateDisplay(void)
{
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->OnRegenerateDisplay();
}
@ -246,7 +245,7 @@ ewol::Widget * ewol::SizerHori::GetWidgetAtPos(Vector2D<float> pos)
return NULL;
}
// for all element in the sizer ...
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
Vector2D<float> tmpSize = m_subWidget[m_currentCreateId][iii]->GetSize();
Vector2D<float> tmpOrigin = m_subWidget[m_currentCreateId][iii]->GetOrigin();
@ -283,7 +282,7 @@ void ewol::SizerHori::OnFlipFlopEvent(void)
m_subWidget[m_currentCreateId] = m_subWidget[m_currentDrawId];
}
// in every case, we propagate the flip-flop EVENT
for(int32_t iii=0; iii<m_subWidget[m_currentDrawId].Size(); iii++) {
for(int32_t iii=0; iii<m_subWidget[m_currentDrawId].size(); iii++) {
if(NULL != m_subWidget[m_currentDrawId][iii]) {
m_subWidget[m_currentDrawId][iii]->OnFlipFlopEvent();
}
@ -302,11 +301,11 @@ void ewol::SizerHori::OnObjectRemove(ewol::EObject * removeObject)
// First step call parrent :
ewol::Widget::OnObjectRemove(removeObject);
// second step find if in all the elements ...
for(int32_t iii=m_subWidget[m_currentCreateId].Size()-1; iii>=0; iii--) {
for(int32_t iii=m_subWidget[m_currentCreateId].size()-1; iii>=0; iii--) {
if(m_subWidget[m_currentCreateId][iii] == removeObject) {
EWOL_DEBUG("Remove sizer sub Element [" << iii << "] ==> destroyed object");
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
m_needFlipFlop = true;
}
}

View File

@ -26,6 +26,7 @@
#define __EWOL_SIZER_HORI_H__
#include <etk/Types.h>
#include <vector>
#include <ewol/Debug.h>
#include <ewol/Widget.h>
@ -53,8 +54,8 @@ namespace ewol {
virtual bool CanExpentY(void);
void LockExpendContamination(bool lockExpend=false);
private:
bool m_lockExpendContamination;
etk::VectorType<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
bool m_lockExpendContamination;
std::vector<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
public:
virtual void SubWidgetRemoveAll(void);
virtual void SubWidgetAdd(ewol::Widget* newWidget);

View File

@ -52,7 +52,7 @@ bool ewol::SizerVert::CalculateSize(float availlableX, float availlableY)
float unexpendableSize=0.0;
int32_t nbWidgetFixedSize=0;
int32_t nbWidgetNotFixedSize=0;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
Vector2D<float> tmpSize = m_subWidget[m_currentCreateId][iii]->GetMinSize();
unexpendableSize += tmpSize.y;
@ -75,7 +75,7 @@ bool ewol::SizerVert::CalculateSize(float availlableX, float availlableY)
Vector2D<float> tmpOrigin;
tmpOrigin.x = m_origin.x;
tmpOrigin.y = m_origin.y;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
Vector2D<float> tmpSize = m_subWidget[m_currentCreateId][iii]->GetMinSize();
// Set the origin :
@ -103,7 +103,7 @@ bool ewol::SizerVert::CalculateMinSize(void)
m_userExpendY=false;
m_minSize.x = 0.0;
m_minSize.y = 0.0;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->CalculateMinSize();
if (true == m_subWidget[m_currentCreateId][iii]->CanExpentX()) {
@ -165,11 +165,11 @@ void ewol::SizerVert::LockExpendContamination(bool lockExpend)
void ewol::SizerVert::SubWidgetRemoveAll(void)
{
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
}
m_subWidget[m_currentCreateId].Clear();
m_subWidget[m_currentCreateId].clear();
}
@ -178,7 +178,7 @@ void ewol::SizerVert::SubWidgetAdd(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
m_subWidget[m_currentCreateId].PushBack(newWidget);
m_subWidget[m_currentCreateId].push_back(newWidget);
}
@ -187,11 +187,11 @@ void ewol::SizerVert::SubWidgetRemove(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
return;
}
}
@ -202,10 +202,10 @@ void ewol::SizerVert::SubWidgetUnLink(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
return;
}
}
@ -214,7 +214,7 @@ void ewol::SizerVert::SubWidgetUnLink(ewol::Widget* newWidget)
void ewol::SizerVert::OnDraw(DrawProperty& displayProp)
{
for (int32_t iii=0; iii<m_subWidget[m_currentDrawId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentDrawId].size(); iii++) {
if (NULL != m_subWidget[m_currentDrawId][iii]) {
m_subWidget[m_currentDrawId][iii]->GenDraw(displayProp);
}
@ -225,7 +225,7 @@ void ewol::SizerVert::OnDraw(DrawProperty& displayProp)
void ewol::SizerVert::OnRegenerateDisplay(void)
{
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->OnRegenerateDisplay();
}
@ -246,7 +246,7 @@ ewol::Widget * ewol::SizerVert::GetWidgetAtPos(Vector2D<float> pos)
return NULL;
}
// for all element in the sizer ...
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
Vector2D<float> tmpSize = m_subWidget[m_currentCreateId][iii]->GetSize();
Vector2D<float> tmpOrigin = m_subWidget[m_currentCreateId][iii]->GetOrigin();
@ -283,7 +283,7 @@ void ewol::SizerVert::OnFlipFlopEvent(void)
m_subWidget[m_currentCreateId] = m_subWidget[m_currentDrawId];
}
// in every case, we propagate the flip-flop EVENT
for(int32_t iii=0; iii<m_subWidget[m_currentDrawId].Size(); iii++) {
for(int32_t iii=0; iii<m_subWidget[m_currentDrawId].size(); iii++) {
if(NULL != m_subWidget[m_currentDrawId][iii]) {
m_subWidget[m_currentDrawId][iii]->OnFlipFlopEvent();
}
@ -302,11 +302,11 @@ void ewol::SizerVert::OnObjectRemove(ewol::EObject * removeObject)
// First step call parrent :
ewol::Widget::OnObjectRemove(removeObject);
// second step find if in all the elements ...
for(int32_t iii=m_subWidget[m_currentCreateId].Size()-1; iii>=0; iii--) {
for(int32_t iii=m_subWidget[m_currentCreateId].size()-1; iii>=0; iii--) {
if(m_subWidget[m_currentCreateId][iii] == removeObject) {
EWOL_DEBUG("Remove sizer sub Element [" << iii << "] ==> destroyed object");
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
m_needFlipFlop = true;
}
}

View File

@ -52,8 +52,8 @@ namespace ewol {
virtual bool CanExpentY(void);
void LockExpendContamination(bool lockExpend=false);
private:
bool m_lockExpendContamination;
etk::VectorType<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
bool m_lockExpendContamination;
std::vector<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
public:
virtual void SubWidgetRemoveAll(void);
virtual void SubWidgetAdd(ewol::Widget* newWidget);

View File

@ -57,7 +57,7 @@ bool ewol::WSlider::CalculateSize(float availlableX, float availlableY)
if (m_windowsDestination == m_windowsSources) {
int32_t iii = m_windowsDestination;
if (iii < m_subWidget[m_currentCreateId].Size()) {
if (iii < m_subWidget[m_currentCreateId].size()) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->SetOrigin(m_origin.x, m_origin.y);
m_subWidget[m_currentCreateId][iii]->CalculateSize(m_size.x, m_size.y);
@ -65,14 +65,14 @@ bool ewol::WSlider::CalculateSize(float availlableX, float availlableY)
}
} else {
int32_t iii = m_windowsSources;
if (iii < m_subWidget[m_currentCreateId].Size()) {
if (iii < m_subWidget[m_currentCreateId].size()) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->SetOrigin(m_origin.x - (m_size.x*(float)m_slidingProgress/1000.0), m_origin.y);
m_subWidget[m_currentCreateId][iii]->CalculateSize(m_size.x, m_size.y);
}
}
iii = m_windowsDestination;
if (iii < m_subWidget[m_currentCreateId].Size()) {
if (iii < m_subWidget[m_currentCreateId].size()) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->SetOrigin(m_origin.x - (m_size.x*((float)m_slidingProgress/1000.0) - m_size.x), m_origin.y);
m_subWidget[m_currentCreateId][iii]->CalculateSize(m_size.x, m_size.y);
@ -91,7 +91,7 @@ bool ewol::WSlider::CalculateMinSize(void)
m_underExpend.y=false;
m_minSize.x = 0.0;
m_minSize.y = 0.0;
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->CalculateMinSize();
if (true == m_subWidget[m_currentCreateId][iii]->CanExpentX()) {
@ -144,11 +144,11 @@ void ewol::WSlider::LockExpendContamination(bool lockExpend)
void ewol::WSlider::SubWidgetRemoveAll(void)
{
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
}
m_subWidget[m_currentCreateId].Clear();
m_subWidget[m_currentCreateId].clear();
}
@ -157,7 +157,7 @@ void ewol::WSlider::SubWidgetAdd(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
m_subWidget[m_currentCreateId].PushBack(newWidget);
m_subWidget[m_currentCreateId].push_back(newWidget);
MarkToReedraw();
ewol::RequestUpdateSize();
}
@ -168,11 +168,11 @@ void ewol::WSlider::SubWidgetRemove(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->MarkToRemove();
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
MarkToReedraw();
ewol::RequestUpdateSize();
return;
@ -185,10 +185,10 @@ void ewol::WSlider::SubWidgetUnLink(ewol::Widget* newWidget)
if (NULL == newWidget) {
return;
}
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_subWidget[m_currentCreateId].size(); iii++) {
if (newWidget == m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
ewol::RequestUpdateSize();
MarkToReedraw();
return;
@ -198,7 +198,7 @@ void ewol::WSlider::SubWidgetUnLink(ewol::Widget* newWidget)
void ewol::WSlider::SubWidgetSelectSet(int32_t id)
{
if (id<0 || id > m_subWidget[m_currentCreateId].Size()) {
if (id<0 || id > m_subWidget[m_currentCreateId].size()) {
EWOL_ERROR("Can not change to a widget not present");
}
m_windowsDestination = id;
@ -232,7 +232,7 @@ void ewol::WSlider::OnDraw(DrawProperty& displayProp)
if (m_windowsDestination == m_windowsSources) {
//EWOL_DEBUG("Draw : " << m_windowsDestination);
int32_t iii = m_windowsDestination;
if (iii<0 || iii > m_subWidget[m_currentDrawId].Size()) {
if (iii<0 || iii > m_subWidget[m_currentDrawId].size()) {
return;
}
if (NULL != m_subWidget[m_currentDrawId][iii]) {
@ -242,7 +242,7 @@ void ewol::WSlider::OnDraw(DrawProperty& displayProp)
//EWOL_DEBUG("Draw : " << m_windowsSources << "=>" << m_windowsDestination << "progress=" << ((float)m_slidingProgress/1000.) );
// draw Sources :
int32_t iii = m_windowsSources;
if (iii<0 || iii > m_subWidget[m_currentDrawId].Size()) {
if (iii<0 || iii > m_subWidget[m_currentDrawId].size()) {
return;
}
if (NULL != m_subWidget[m_currentDrawId][iii]) {
@ -250,7 +250,7 @@ void ewol::WSlider::OnDraw(DrawProperty& displayProp)
}
// Draw Destination :
iii = m_windowsDestination;
if (iii<0 || iii > m_subWidget[m_currentDrawId].Size()) {
if (iii<0 || iii > m_subWidget[m_currentDrawId].size()) {
return;
}
if (NULL != m_subWidget[m_currentDrawId][iii]) {
@ -265,7 +265,7 @@ void ewol::WSlider::OnRegenerateDisplay(void)
{
if (m_windowsDestination == m_windowsSources) {
int32_t iii = m_windowsDestination;
if (iii<0 || iii > m_subWidget[m_currentCreateId].Size()) {
if (iii<0 || iii > m_subWidget[m_currentCreateId].size()) {
return;
}
if (NULL != m_subWidget[m_currentCreateId][iii]) {
@ -273,14 +273,14 @@ void ewol::WSlider::OnRegenerateDisplay(void)
}
} else {
int32_t iii = m_windowsSources;
if (iii<0 || iii > m_subWidget[m_currentCreateId].Size()) {
if (iii<0 || iii > m_subWidget[m_currentCreateId].size()) {
return;
}
if (NULL != m_subWidget[m_currentCreateId][iii]) {
m_subWidget[m_currentCreateId][iii]->OnRegenerateDisplay();
}
iii = m_windowsDestination;
if (iii<0 || iii > m_subWidget[m_currentCreateId].Size()) {
if (iii<0 || iii > m_subWidget[m_currentCreateId].size()) {
return;
}
if (NULL != m_subWidget[m_currentCreateId][iii]) {
@ -299,7 +299,7 @@ void ewol::WSlider::OnRegenerateDisplay(void)
ewol::Widget * ewol::WSlider::GetWidgetAtPos(Vector2D<float> pos)
{
// TODO : Review this ...
if (m_windowsDestination<0 || m_windowsDestination > m_subWidget[m_currentCreateId].Size()) {
if (m_windowsDestination<0 || m_windowsDestination > m_subWidget[m_currentCreateId].size()) {
// error ...
return NULL;
}
@ -336,7 +336,7 @@ void ewol::WSlider::OnFlipFlopEvent(void)
if (true == needFlipFlop) {
m_subWidget[m_currentCreateId] = m_subWidget[m_currentDrawId];
}
if (m_windowsDestination<0 || m_windowsDestination > m_subWidget[m_currentDrawId].Size()) {
if (m_windowsDestination<0 || m_windowsDestination > m_subWidget[m_currentDrawId].size()) {
// error ...
return;
}
@ -357,11 +357,11 @@ void ewol::WSlider::OnObjectRemove(ewol::EObject * removeObject)
// First step call parrent :
ewol::Widget::OnObjectRemove(removeObject);
// second step find if in all the elements ...
for(int32_t iii=m_subWidget[m_currentCreateId].Size()-1; iii>=0; iii--) {
for(int32_t iii=m_subWidget[m_currentCreateId].size()-1; iii>=0; iii--) {
if(m_subWidget[m_currentCreateId][iii] == removeObject) {
EWOL_DEBUG("Remove sizer sub Element [" << iii << "] ==> destroyed object");
m_subWidget[m_currentCreateId][iii] = NULL;
m_subWidget[m_currentCreateId].Erase(iii);
m_subWidget[m_currentCreateId].erase(m_subWidget[m_currentCreateId].begin()+iii);
m_needFlipFlop = true;
}
}

View File

@ -26,6 +26,7 @@
#define __EWOL_W_SLIDER_H__
#include <etk/Types.h>
#include <vector>
#include <ewol/Debug.h>
#include <ewol/Widget.h>
@ -52,11 +53,11 @@ namespace ewol {
virtual bool CanExpentY(void);
void LockExpendContamination(bool lockExpend=false);
private:
bool m_lockExpendContamination;
etk::VectorType<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
int32_t m_windowsSources; // widget source viewed
int32_t m_windowsDestination; // widget destinated viewed
int32_t m_slidingProgress; // ratio progression of a sliding
bool m_lockExpendContamination;
std::vector<ewol::Widget*> m_subWidget[NB_BOUBLE_BUFFER];
int32_t m_windowsSources; // widget source viewed
int32_t m_windowsDestination; // widget destinated viewed
int32_t m_slidingProgress; // ratio progression of a sliding
public:
virtual void SubWidgetRemoveAll(void);
virtual void SubWidgetAdd(ewol::Widget* newWidget);
@ -64,7 +65,7 @@ namespace ewol {
virtual void SubWidgetUnLink(ewol::Widget* newWidget);
void SubWidgetSelectSet(int32_t id);
int32_t SubWidgetSelectGet(void) { return (int32_t)m_slidingProgress; };
int32_t SubWidgetNumber(void) { return m_subWidget[m_currentCreateId].Size(); };
int32_t SubWidgetNumber(void) { return m_subWidget[m_currentCreateId].size(); };
protected:
virtual void OnDraw(DrawProperty& displayProp);
public:

View File

@ -311,10 +311,10 @@ void ewol::WidgetScrooled::AddOObject(ewol::OObject* newObject, int32_t pos)
EWOL_ERROR("Try to add an empty object in the Widget generic display system");
return;
}
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].Size() ) {
m_listOObject[m_currentCreateId].PushBack(newObject);
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].size() ) {
m_listOObject[m_currentCreateId].push_back(newObject);
} else {
m_listOObject[m_currentCreateId].Insert(pos, newObject);
m_listOObject[m_currentCreateId].insert(m_listOObject[m_currentCreateId].begin()+pos, newObject);
}
m_needFlipFlop = true;
}
@ -322,16 +322,16 @@ void ewol::WidgetScrooled::AddOObject(ewol::OObject* newObject, int32_t pos)
void ewol::WidgetScrooled::ClearOObjectList(void)
{
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].size(); iii++) {
delete(m_listOObject[m_currentCreateId][iii]);
m_listOObject[m_currentCreateId][iii] = NULL;
}
m_listOObject[m_currentCreateId].Clear();
m_listOObject[m_currentCreateId].clear();
}
void ewol::WidgetScrooled::OnDraw(DrawProperty& displayProp)
{
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].size(); iii++) {
if (NULL != m_listOObject[m_currentDrawId][iii]) {
m_listOObject[m_currentDrawId][iii]->Draw();
}

View File

@ -26,6 +26,7 @@
#define __EWOL_SCROLLED_WIDGET_H__
#include <etk/Types.h>
#include <vector>
#include <ewol/Debug.h>
#include <ewol/Widget.h>
@ -47,7 +48,7 @@ namespace ewol {
class WidgetScrooled : public ewol::Widget
{
private:
etk::VectorType<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
std::vector<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
void AddOObject(ewol::OObject* newObject, int32_t pos=-1);
void ClearOObjectList(void);
protected:

View File

@ -28,8 +28,6 @@
#include <ewol/widget/List.h>
#include <ewol/widget/Spacer.h>
#include <ewol/WidgetManager.h>
//#include <etk/Vector.h>
#include <etk/VectorType.h>
extern "C" {
// file browsing ...

View File

@ -29,8 +29,6 @@
#include <ewol/widget/Spacer.h>
#include <ewol/widget/Image.h>
#include <ewol/WidgetManager.h>
//#include <etk/Vector.h>
#include <etk/VectorType.h>
extern "C" {
// file browsing ...

View File

@ -29,7 +29,6 @@
#include <ewol/widget/Spacer.h>
#include <ewol/widget/Image.h>
#include <ewol/WidgetManager.h>
#include <etk/VectorType.h>
#include <ewol/ewol.h>

View File

@ -58,11 +58,11 @@ ewol::ParameterList::~ParameterList(void)
{
//clean all the object
for (int32_t jjj=0; jjj<NB_BOUBLE_BUFFER; jjj++) {
for (int32_t iii=0; iii<m_listOObject[jjj].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[jjj].size(); iii++) {
delete(m_listOObject[jjj][iii]);
m_listOObject[jjj][iii] = NULL;
}
m_listOObject[jjj].Clear();
m_listOObject[jjj].clear();
}
MenuClear();
}
@ -88,10 +88,10 @@ void ewol::ParameterList::AddOObject(ewol::OObject* newObject, int32_t pos)
EWOL_ERROR("Try to add an empty object in the Widget generic display system");
return;
}
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].Size() ) {
m_listOObject[m_currentCreateId].PushBack(newObject);
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].size() ) {
m_listOObject[m_currentCreateId].push_back(newObject);
} else {
m_listOObject[m_currentCreateId].Insert(pos, newObject);
m_listOObject[m_currentCreateId].insert(m_listOObject[m_currentCreateId].begin()+pos, newObject);
}
m_needFlipFlop = true;
}
@ -99,16 +99,16 @@ void ewol::ParameterList::AddOObject(ewol::OObject* newObject, int32_t pos)
void ewol::ParameterList::ClearOObjectList(void)
{
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].size(); iii++) {
delete(m_listOObject[m_currentCreateId][iii]);
m_listOObject[m_currentCreateId][iii] = NULL;
}
m_listOObject[m_currentCreateId].Clear();
m_listOObject[m_currentCreateId].clear();
}
void ewol::ParameterList::OnDraw(DrawProperty& displayProp)
{
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].Size(); iii++) {
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].size(); iii++) {
if (NULL != m_listOObject[m_currentDrawId][iii]) {
m_listOObject[m_currentDrawId][iii]->Draw();
}
@ -145,13 +145,13 @@ void ewol::ParameterList::OnRegenerateDisplay(void)
//uint32_t nbColomn = GetNuberOfColomn();
int32_t nbRaw = m_list.Size();
int32_t nbRaw = m_list.size();
// For the scrooling windows
m_maxSize.x = m_size.x;
m_maxSize.y = (minHeight + 2*m_paddingSizeY) * nbRaw;
etk::VectorType<int32_t> listSizeColomn;
std::vector<int32_t> listSizeColomn;
// set background color :
ewol::OObject2DColored * BGOObjects = new ewol::OObject2DColored();
@ -231,7 +231,7 @@ bool ewol::ParameterList::OnEventInput(ewol::inputType_te type, int32_t IdInput,
int32_t rawID = (relativePos.y+m_originScrooled.y) / (minHeight + 2*m_paddingSizeY);
// generate an event on a rawId if the element request change and Select it ...
if (rawID >=0 && rawID<m_list.Size()) {
if (rawID >=0 && rawID<m_list.size()) {
if (m_list[rawID]!=NULL) {
if (m_list[rawID]->m_refId>=0) {
GenerateEventId(ewolEventParameterListSelect, m_list[rawID]->m_refId);
@ -261,9 +261,9 @@ void ewol::ParameterList::MenuAdd(etk::UString& label, int32_t refId, etk::UStri
{
ewol::elementPL* tmpEmement = new ewol::elementPL(label, refId, image, false);
if (NULL != tmpEmement) {
m_list.PushBack(tmpEmement);
m_list.push_back(tmpEmement);
if (m_idSelected == -1 && label != "---" && refId>0) {
m_idSelected = m_list.Size()-1;
m_idSelected = m_list.size()-1;
}
MarkToReedraw();
}
@ -273,7 +273,7 @@ void ewol::ParameterList::MenuAddGroup(etk::UString& label)
etk::UString image = "";
ewol::elementPL* tmpEmement = new ewol::elementPL(label, -1, image, true);
if (NULL != tmpEmement) {
m_list.PushBack(tmpEmement);
m_list.push_back(tmpEmement);
MarkToReedraw();
}
}
@ -282,18 +282,18 @@ void ewol::ParameterList::MenuAddGroup(etk::UString& label)
void ewol::ParameterList::MenuClear(void)
{
m_idSelected = -1;
for (int32_t iii=0; iii<m_list.Size(); iii++) {
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL != m_list[iii]) {
delete(m_list[iii]);
m_list[iii] = NULL;
}
}
m_list.Clear();
m_list.clear();
}
void ewol::ParameterList::MenuSeparator(void)
{
if (m_list.Size()>0) {
if (m_list.size()>0) {
etk::UString label = "";
etk::UString image = "";
MenuAdd(label, -1, image);

View File

@ -54,8 +54,8 @@ namespace ewol {
class ParameterList :public ewol::WidgetScrooled
{
private:
int32_t m_idSelected;
etk::VectorType<ewol::elementPL *> m_list;
int32_t m_idSelected;
std::vector<ewol::elementPL *> m_list;
public:
ParameterList(void);
/**
@ -70,7 +70,7 @@ namespace ewol {
void SetLabel(etk::UString newLabel);
// Drawing capabilities ....
private:
etk::VectorType<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
std::vector<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
public:
void AddOObject(ewol::OObject* newObject, int32_t pos=-1);
void ClearOObjectList(void);

@ -1 +1 @@
Subproject commit efe22dc9a440905565ab653d942bba5aaca040f8
Subproject commit f15fc7bbad327fb793ba7ad6973a2aa091f71e5f