[DEV] add font multiple
This commit is contained in:
parent
b7196e577c
commit
cad47bd419
2
external/etk
vendored
2
external/etk
vendored
@ -1 +1 @@
|
||||
Subproject commit d2099c51e917243edd4bb808f66a32e9df69aa30
|
||||
Subproject commit c60fe0326dd06a8750494ee995f90209537049ce
|
2
external/exml
vendored
2
external/exml
vendored
@ -1 +1 @@
|
||||
Subproject commit 628d28e7e13236326eb5f323eb0ac5f835eefab0
|
||||
Subproject commit 5fce0e9ef26a8c161d10bbef21abb0faac6a2d8c
|
@ -134,22 +134,13 @@ bool ewol::userConfig::Load(void)
|
||||
return true;
|
||||
}
|
||||
|
||||
#define MAX_SAVING_FILE_HISTORY (9)
|
||||
|
||||
bool ewol::userConfig::Save(void)
|
||||
{
|
||||
// step 1 : Move the file to prevent writing error
|
||||
//Get the first oldest save :
|
||||
for (int32_t iii=MAX_SAVING_FILE_HISTORY-1; iii>0 ; iii--) {
|
||||
if (true==etk::FSNodeExist(l_obj().FileName()+"-"+iii) ) {
|
||||
etk::FSNodeMove(l_obj().FileName()+"-"+iii,l_obj().FileName()+"-"+(iii+1));
|
||||
}
|
||||
}
|
||||
if (true==etk::FSNodeExist(l_obj().FileName()) ) {
|
||||
etk::FSNodeMove(l_obj().FileName(),l_obj().FileName()+"-1");
|
||||
}
|
||||
etk::FSNodeHistory(l_obj().FileName(), 9);
|
||||
|
||||
exml::Document doc;
|
||||
doc.Append(new exml::Declaration("1.0", "UTF-8", ""));
|
||||
doc.Append(new exml::Declaration("1.0", unicode::EDN_CHARSET_UTF8, ""));
|
||||
exml::Element * ElementBase = new exml::Element("config");
|
||||
doc.Append(ElementBase);
|
||||
for (int32_t iii=0; iii<l_obj().List().Size() ; iii++) {
|
||||
|
@ -20,7 +20,7 @@ void ewol::config::Init(void)
|
||||
{
|
||||
// reset font properties
|
||||
l_fontConfigFolder = "DATA::fonts";
|
||||
l_fontConfigName = "Arial";
|
||||
l_fontConfigName = "Arial;Helvetica";
|
||||
l_fontConfigSize = 10;
|
||||
ewol::FreeTypeInit();
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ namespace ewol
|
||||
void FontFolder(const etk::UString& _folder);
|
||||
/**
|
||||
* @brief Set the defaut font for all the widgets and basics display.
|
||||
* @param[in] _fontName The font name requested (not case sensitive) ex "Arial".
|
||||
* @param[in] _fontName The font name requested (not case sensitive) ex "Arial" or multiple separate by ';' ex : "Arial;Helvetica".
|
||||
* @param[in] _size The default size of the font default=10.
|
||||
*/
|
||||
void FontSetDefault(const etk::UString& _fontName, int32_t _size);
|
||||
|
@ -131,49 +131,67 @@ ewol::TexturedFont::TexturedFont(etk::UString fontName) :
|
||||
#endif
|
||||
}
|
||||
etk::FSNode myFolder(fontBaseFolder);
|
||||
EWOL_INFO("try to find font named : '" << m_name << "' in : '" << myFolder <<"'");
|
||||
// find the real Font name :
|
||||
etk::Vector<etk::UString> output;
|
||||
myFolder.FolderGetRecursiveFiles(output);
|
||||
for (int32_t iii=0; iii<output.Size(); iii++) {
|
||||
//EWOL_DEBUG(" file : " << output[iii]);
|
||||
if( true == output[iii].EndWith(m_name+"-"+"bold"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"b"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"bd"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"bold"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"bd"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"b"+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Bold] : " << output[iii]);
|
||||
m_fileName[ewol::font::Bold] = output[iii];
|
||||
} else if( true == output[iii].EndWith(m_name+"-"+"oblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"italic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"Light"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"i"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"oblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"italic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"light"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"i"+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Italic] : " << output[iii]);
|
||||
m_fileName[ewol::font::Italic] = output[iii];
|
||||
} else if( true == output[iii].EndWith(m_name+"-"+"bolditalic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"boldoblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"bi"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"z"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"bolditalic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"boldoblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"bi"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"z"+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Bold-Italic] : " << output[iii]);
|
||||
m_fileName[ewol::font::BoldItalic] = output[iii];
|
||||
} else if( true == output[iii].EndWith(m_name+"-"+"regular"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"-"+"r"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"regular"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+"r"+".ttf", false)
|
||||
|| true == output[iii].EndWith(m_name+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Regular] : " << output[iii]);
|
||||
m_fileName[ewol::font::Regular] = output[iii];
|
||||
etk::Vector<etk::UString> split = m_name.Split(';');
|
||||
EWOL_INFO("try to find font named : '" << split << "' in : '" << myFolder <<"'");
|
||||
//EWOL_CRITICAL("parse string : " << split);
|
||||
|
||||
for (int32_t jjj=0; jjj<split.Size(); jjj++) {
|
||||
EWOL_INFO(" try with : '" << split[jjj] << "'");
|
||||
bool hasFindAFont = false;
|
||||
for (int32_t iii=0; iii<output.Size(); iii++) {
|
||||
//EWOL_DEBUG(" file : " << output[iii]);
|
||||
if( true == output[iii].EndWith(split[jjj]+"-"+"bold"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"b"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"bd"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"bold"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"bd"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"b"+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Bold] : " << output[iii]);
|
||||
m_fileName[ewol::font::Bold] = output[iii];
|
||||
hasFindAFont=true;
|
||||
} else if( true == output[iii].EndWith(split[jjj]+"-"+"oblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"italic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"Light"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"i"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"oblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"italic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"light"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"i"+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Italic] : " << output[iii]);
|
||||
m_fileName[ewol::font::Italic] = output[iii];
|
||||
hasFindAFont=true;
|
||||
} else if( true == output[iii].EndWith(split[jjj]+"-"+"bolditalic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"boldoblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"bi"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"z"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"bolditalic"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"boldoblique"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"bi"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"z"+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Bold-Italic] : " << output[iii]);
|
||||
m_fileName[ewol::font::BoldItalic] = output[iii];
|
||||
hasFindAFont=true;
|
||||
} else if( true == output[iii].EndWith(split[jjj]+"-"+"regular"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"-"+"r"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"regular"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+"r"+".ttf", false)
|
||||
|| true == output[iii].EndWith(split[jjj]+".ttf", false)) {
|
||||
EWOL_INFO(" find Font [Regular] : " << output[iii]);
|
||||
m_fileName[ewol::font::Regular] = output[iii];
|
||||
hasFindAFont=true;
|
||||
}
|
||||
}
|
||||
if (hasFindAFont==true) {
|
||||
EWOL_INFO(" Find this font : '" << split[jjj] << "'");
|
||||
break;
|
||||
} else if (jjj==split.Size()-1) {
|
||||
EWOL_ERROR("Find NO font in the LIST ... " << split);
|
||||
}
|
||||
}
|
||||
|
||||
// try to find the reference mode :
|
||||
ewol::font::mode_te refMode = ewol::font::Regular;
|
||||
for(int32_t iii=3; iii>=0; iii--) {
|
||||
@ -181,6 +199,7 @@ ewol::TexturedFont::TexturedFont(etk::UString fontName) :
|
||||
refMode = (ewol::font::mode_te)iii;
|
||||
}
|
||||
}
|
||||
|
||||
EWOL_DEBUG(" Set reference mode : " << refMode);
|
||||
// generate the wrapping on the preventing error
|
||||
for(int32_t iii=3; iii>=0; iii--) {
|
||||
|
@ -430,20 +430,20 @@ ewol::Widget* widget::Button::GetWidgetNamed(const etk::UString& _widgetName)
|
||||
}
|
||||
|
||||
|
||||
bool widget::Button::LoadXML(exml::Element* _node)
|
||||
bool widget::Button::LoadXML(exml::Element* _element)
|
||||
{
|
||||
if (NULL==_node) {
|
||||
if (NULL==_element) {
|
||||
return false;
|
||||
}
|
||||
// parse generic properties :
|
||||
ewol::Widget::LoadXML(_node);
|
||||
ewol::Widget::LoadXML(_element);
|
||||
// remove previous element :
|
||||
SetSubWidget(NULL);
|
||||
SetSubWidgetToggle(NULL);
|
||||
|
||||
// parse all the elements :
|
||||
for(int32_t iii=0; iii< _node->Size(); iii++) {
|
||||
exml::Element* pNode = _node->GetElement(iii);
|
||||
for(int32_t iii=0; iii< _element->Size(); iii++) {
|
||||
exml::Element* pNode = _element->GetElement(iii);
|
||||
if (pNode==NULL) {
|
||||
// trash here all that is not element
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user