diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..fa6ae6f
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,39 @@
+# language type:
+language: cpp
+
+# compilator system:
+compiler:
+- clang
+- gcc
+
+# build branch requested
+branches:
+ only:
+ - master
+ - dev
+
+# previous actions:
+before_script:
+ - git clone https://github.com/HeeroYui/ewol.git
+ - cd ewol; git checkout origin/dev -b dev; cd ..
+ - cd ewol; git submodule init; cd ..
+ - cd ewol; git submodule update; cd ..
+
+install:
+ - if [ "$CXX" == "g++" ]; then sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y; fi
+ - if [ "$CXX" == "g++" ]; then sudo apt-get update -qq; fi
+ - if [ "$CXX" == "g++" ]; then sudo apt-get install -qq g++-4.8; fi
+ - if [ "$CXX" == "g++" ]; then sudo rm /usr/bin/gcc /usr/bin/g++; fi
+ - if [ "$CXX" == "g++" ]; then sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc; fi
+ - if [ "$CXX" == "g++" ]; then sudo ln -s /usr/bin/g++-4.8 /usr/bin/g++; fi
+
+
+# build sequence with Lutin :
+script:
+ - if [ "$CXX" == "clang++" ]; then ./ewol/build/lutin.py -cclang -mdebug -p edn; fi
+ - if [ "$CXX" == "g++" ]; then ./ewol/build/lutin.py -cgcc -mdebug -p edn; fi
+
+#send e-mail on compilation result:
+notifications:
+ email:
+ - yui.heero@gmail.com
diff --git a/data/languages/bash/highlight.xml b/data/languages/bash/highlight.xml
index 6f32014..cc334a6 100644
--- a/data/languages/bash/highlight.xml
+++ b/data/languages/bash/highlight.xml
@@ -28,10 +28,12 @@
keyword
[\$]+[a-zA-Z_][a-zA-Z0-9_]*
+
boolean
==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/c/highlight.xml b/data/languages/c/highlight.xml
index d0ea594..941f4fc 100644
--- a/data/languages/c/highlight.xml
+++ b/data/languages/c/highlight.xml
@@ -44,7 +44,7 @@
doubleQuoteText
- "(\\[\\"]|.)*"
+ "(\\[\\"]|.)*"
doubleQuoteText
@@ -99,11 +99,14 @@
inputFunction
\@_[A-Za-z_0-9]*\@
+ false
+
boolean
==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/cmake/highlight.xml b/data/languages/cmake/highlight.xml
index 8144806..3713d9a 100644
--- a/data/languages/cmake/highlight.xml
+++ b/data/languages/cmake/highlight.xml
@@ -41,10 +41,11 @@
macro
\@[A-Z_][A-Z_0-9]{3,500}\@
+
diff --git a/data/languages/java/highlight.xml b/data/languages/java/highlight.xml
index 68e3a55..73c11b7 100644
--- a/data/languages/java/highlight.xml
+++ b/data/languages/java/highlight.xml
@@ -64,10 +64,12 @@
macro
\@[A-Z_][A-Z_0-9]{3,500}\@
+
boolean
==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/lua/highlight.xml b/data/languages/lua/highlight.xml
index ad52fbf..baff8d4 100644
--- a/data/languages/lua/highlight.xml
+++ b/data/languages/lua/highlight.xml
@@ -40,10 +40,12 @@
macro
\@[A-Z_][A-Z_0-9]{3,500}\@
+
boolean
==|<=|>=|~=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/matlab/highlight.xml b/data/languages/matlab/highlight.xml
index ebb5afe..511101e 100644
--- a/data/languages/matlab/highlight.xml
+++ b/data/languages/matlab/highlight.xml
@@ -33,10 +33,12 @@
boolean
\@true|false\@
+
boolean
==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/php/highlight.xml b/data/languages/php/highlight.xml
index 1b9bac6..c8661ff 100644
--- a/data/languages/php/highlight.xml
+++ b/data/languages/php/highlight.xml
@@ -55,10 +55,12 @@
boolean
\@true|TRUE|false|FALSE\@
+
boolean
==|<=|>=|!=|<|>|&&|\{|\}|
diff --git a/data/languages/python/highlight.xml b/data/languages/python/highlight.xml
index 83b8b21..11d8865 100644
--- a/data/languages/python/highlight.xml
+++ b/data/languages/python/highlight.xml
@@ -56,10 +56,12 @@
macro
\@[A-Z_][A-Z_0-9]{3,500}\@
+
boolean
==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/lutinBase.py b/lutinBase.py
deleted file mode 100755
index 66fc5f2..0000000
--- a/lutinBase.py
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/python
-import lutinModule
-import lutinTools
-
-lutinModule.import_path(lutinTools.get_current_path(__file__) + "/sources/")
-lutinModule.import_path(lutinTools.get_current_path(__file__) + "/../ewol/")
diff --git a/sources/appl/Buffer.cpp b/sources/appl/Buffer.cpp
index edeaa2c..182593e 100644
--- a/sources/appl/Buffer.cpp
+++ b/sources/appl/Buffer.cpp
@@ -17,11 +17,6 @@
#undef __class__
#define __class__ "Buffer"
-const char* const appl::Buffer::eventIsModify = "edn-is-modify";
-const char* const appl::Buffer::eventIsSave = "edn-is-save";
-const char* const appl::Buffer::eventSelectChange = "edn-select-change";
-const char* const appl::Buffer::eventChangeName = "edn-buffer-name-change";
-
appl::Buffer::Iterator& appl::Buffer::Iterator::operator++ () {
m_value = u32char::Null;
if (m_current < 0) {
@@ -119,8 +114,11 @@ appl::Buffer::Iterator appl::Buffer::selectStop() {
return position( getStopSelectionPos() );
}
-
appl::Buffer::Buffer() :
+ signalIsModify(*this, "is-modify"),
+ signalIsSave(*this, "is-save"),
+ signalSelectChange(*this, "select-change"),
+ signalChangeName(*this, "change-name"),
m_hasFileName(false),
m_fileName(""),
m_isModify(false),
@@ -133,10 +131,6 @@ appl::Buffer::Buffer() :
static int32_t bufferBaseId = 0;
m_fileName = "No Name " + etk::to_string(bufferBaseId);
bufferBaseId++;
- addEventId(eventIsModify);
- addEventId(eventIsSave);
- addEventId(eventSelectChange);
- addEventId(eventChangeName);
}
void appl::Buffer::init() {
@@ -144,7 +138,7 @@ void appl::Buffer::init() {
}
appl::Buffer::~Buffer() {
-
+ APPL_ERROR("REAL remove buffer : '" << m_name << "'");
}
bool appl::Buffer::loadFile(const std::string& _name) {
@@ -176,7 +170,7 @@ void appl::Buffer::setFileName(const std::string& _name) {
}
m_fileName = name;
m_hasFileName = true;
- generateEventId(eventChangeName);
+ signalChangeName.emit();
setModification(true);
}
@@ -195,9 +189,9 @@ void appl::Buffer::setModification(bool _status) {
}
m_isModify = _status;
if (m_isModify == true) {
- generateEventId(eventIsModify);
+ signalIsModify.emit();
} else {
- generateEventId(eventIsSave);
+ signalIsSave.emit();
}
}
@@ -420,13 +414,13 @@ void appl::Buffer::moveCursor(int64_t _pos) {
if (m_cursorPos == m_cursorSelectPos) {
m_cursorSelectPos = -1;
}
- generateEventId(eventSelectChange);
+ signalSelectChange.emit();
return;
}
// move mode
m_cursorPos = _pos;
m_cursorSelectPos = -1;
- generateEventId(eventSelectChange);
+ signalSelectChange.emit();
}
bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
@@ -519,12 +513,12 @@ bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
void appl::Buffer::setSelectionPos(const appl::Buffer::Iterator& _pos) {
m_cursorSelectPos = _pos;
- generateEventId(eventSelectChange);
+ signalSelectChange.emit();
}
void appl::Buffer::unSelect() {
m_cursorSelectPos = -1;
- generateEventId(eventSelectChange);
+ signalSelectChange.emit();
}
static const char *ControlCodeTable[32] = {
@@ -993,3 +987,41 @@ uint32_t appl::Buffer::getCursorLinesId() {
}
return line;
}
+
+namespace etk {
+ template<> std::string to_string>(const std::shared_ptr& _obj) {
+ if (_obj != nullptr) {
+ return _obj->getFileName();
+ }
+ return "";
+ }
+ template<> std::u32string to_u32string>(const std::shared_ptr& _obj) {
+ return etk::to_u32string(etk::to_string(_obj));
+ }
+
+ template<> bool from_string>(std::shared_ptr& _variableRet, const std::string& _value) {
+ if (_variableRet != nullptr) {
+ _variableRet->loadFile(_value);
+ return true;
+ }
+ return false;
+ }
+ template<> bool from_string>(std::shared_ptr& _variableRet, const std::u32string& _value) {
+ return from_string(_variableRet, etk::to_string(_value));
+ }
+ template<> std::string to_string(const appl::Buffer& _obj) {
+ return _obj.getFileName();
+ }
+ template<> std::u32string to_u32string(const appl::Buffer& _obj) {
+ return etk::to_u32string(etk::to_string(_obj));
+ }
+
+ template<> bool from_string(appl::Buffer& _variableRet, const std::string& _value) {
+ _variableRet.loadFile(_value);
+ return true;
+ }
+ template<> bool from_string(appl::Buffer& _variableRet, const std::u32string& _value) {
+ return from_string(_variableRet, etk::to_string(_value));
+ }
+};
+
diff --git a/sources/appl/Buffer.h b/sources/appl/Buffer.h
index 9891212..d413227 100644
--- a/sources/appl/Buffer.h
+++ b/sources/appl/Buffer.h
@@ -17,6 +17,7 @@
#include
#include
#include
+#include
namespace appl {
@@ -288,10 +289,10 @@ namespace appl {
friend class Buffer;
};
public:
- static const char* const eventIsModify;
- static const char* const eventIsSave;
- static const char* const eventSelectChange;
- static const char* const eventChangeName;
+ ewol::object::Signal signalIsModify;
+ ewol::object::Signal signalIsSave;
+ ewol::object::Signal signalSelectChange;
+ ewol::object::Signal signalChangeName;
protected:
Buffer();
void init();
@@ -305,14 +306,14 @@ namespace appl {
/**
* @brief get the curent filename of the Buffer
*/
- const std::string& getFileName() {
+ const std::string& getFileName() const {
return m_fileName;
}
/**
* @brief Check if the buffer has a real filename.
* @return the status of the existance of a name.
*/
- bool hasFileName() {
+ bool hasFileName() const {
return m_hasFileName;
}
/**
diff --git a/sources/appl/BufferManager.cpp b/sources/appl/BufferManager.cpp
index 591a08f..0a71571 100644
--- a/sources/appl/BufferManager.cpp
+++ b/sources/appl/BufferManager.cpp
@@ -18,7 +18,11 @@
#undef __class__
#define __class__ "BufferManager"
-appl::BufferManager::BufferManager() {
+appl::BufferManager::BufferManager() :
+ signalNewBuffer(*this, "new-buffer"),
+ signalSelectFile(*this, "select-buffer"),
+ signalTextSelectionChange(*this, "text-selection-change"),
+ signalRemoveBuffer(*this, "remove-buffer") {
addObjectType("appl::BufferManager");
}
@@ -37,13 +41,19 @@ std::shared_ptr appl::BufferManager::createNewBuffer() {
APPL_ERROR("Can not allocate the Buffer (empty).");
return nullptr;
}
+ tmp->setParent(shared_from_this());
m_list.push_back(tmp);
- sendMultiCast(appl::MsgSelectNewFile, tmp->getFileName());
+ APPL_INFO("Create a new Buffer");
+ signalNewBuffer.emit(tmp->getFileName());
+ APPL_INFO("Create a new Buffer (done)");
+ APPL_INFO("select Buffer");
+ signalSelectFile.emit(tmp->getFileName());
+ APPL_INFO("select Buffer (done)");
return tmp;
}
std::shared_ptr appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) {
- APPL_INFO("get(" << _fileName << "," << _createIfNeeded << ")");
+ APPL_INFO("get('" << _fileName << "'," << _createIfNeeded << ")");
for (auto &it : m_list) {
if (it == nullptr) {
continue;
@@ -63,15 +73,26 @@ std::shared_ptr appl::BufferManager::get(const std::string& _fileN
APPL_ERROR("Can not allocate the Buffer class : " << _fileName);
return nullptr;
}
+ tmp->setParent(shared_from_this());
tmp->loadFile(_fileName);
m_list.push_back(tmp);
+ APPL_INFO("Creata a open Buffer");
+ signalNewBuffer.emit(tmp->getFileName());
+ APPL_INFO("Creata a open Buffer (done)");
return tmp;
}
return nullptr;
}
+
void appl::BufferManager::setBufferSelected(std::shared_ptr _bufferSelected) {
m_bufferSelected = _bufferSelected;
- sendMultiCast(appl::MsgSelectChange, "");
+ if (m_bufferSelected == nullptr) {
+ APPL_ERROR("select a NULL buffer ...");
+ return;
+ }
+ APPL_INFO("Set buffer selected");
+ //signalSelectFile.emit(m_bufferSelected->getName());
+ APPL_INFO("Set buffer selected (done)");
}
std::shared_ptr appl::BufferManager::get(int32_t _id) {
@@ -99,15 +120,42 @@ bool appl::BufferManager::exist(const std::string& _fileName) {
void appl::BufferManager::open(const std::string& _fileName) {
if (exist(_fileName) == true) {
+ APPL_WARNING(" the element '" << _fileName << "' already exist ... just reselect it ...");
+ signalSelectFile.emit(_fileName);
return;
}
if (get(_fileName, true) == nullptr) {
+ APPL_ERROR("Error get '" << _fileName << "' ... ");
return;
}
- sendMultiCast(appl::MsgSelectNewFile, _fileName);
+ signalSelectFile.emit(_fileName);
}
-void appl::BufferManager::onReceiveMessage(const ewol::object::Message& _msg) {
- APPL_DEBUG("receive message !!! " << _msg);
-}
+void appl::BufferManager::requestDestroyFromChild(const std::shared_ptr