[DEV] coding style review

This commit is contained in:
Edouard DUPIN 2013-10-09 22:00:24 +02:00
parent d677075e16
commit 730f637695
30 changed files with 611 additions and 832 deletions

View File

@ -11,36 +11,29 @@
#include <appl/Debug.h>
appl::Buffer::Buffer(void) :
m_cursorPos(0),
m_cursorPreferredCol(-1)
{
m_cursorPos(0),
m_cursorPreferredCol(-1) {
}
bool appl::Buffer::loadFile(const etk::UString& _name)
{
bool appl::Buffer::loadFile(const etk::UString& _name) {
APPL_DEBUG("Load file : '" << _name << "'");
m_fileName = _name;
etk::FSNode file(m_fileName);
if (file.Exist() == false) {
if (file.exist() == false) {
return false;
}
if (true == m_data.DumpFrom(file) ) {
if (true == m_data.dumpFrom(file) ) {
return true;
}
return false;
}
void appl::Buffer::setFileName(const etk::UString& _name)
{
void appl::Buffer::setFileName(const etk::UString& _name) {
// TODO : ...
}
void appl::Buffer::MoveCursorRight(appl::Buffer::moveMode _mode)
{
void appl::Buffer::moveCursorRight(appl::Buffer::moveMode _mode) {
m_cursorPreferredCol = -1;
etk::UniChar value;
esize_t nbElement;
@ -62,8 +55,7 @@ void appl::Buffer::MoveCursorRight(appl::Buffer::moveMode _mode)
}
void appl::Buffer::MoveCursorLeft(appl::Buffer::moveMode _mode)
{
void appl::Buffer::moveCursorLeft(appl::Buffer::moveMode _mode) {
m_cursorPreferredCol = -1;
etk::UniChar value;
esize_t nbElement;
@ -84,72 +76,67 @@ void appl::Buffer::MoveCursorLeft(appl::Buffer::moveMode _mode)
}
}
void appl::Buffer::MoveCursorUp(esize_t _nbLine)
{
void appl::Buffer::moveCursorUp(esize_t _nbLine) {
// find the position of the start of the line.
esize_t lineStartPos = StartLine(m_cursorPos);
esize_t lineStartPos = startLine(m_cursorPos);
// check if we can go up ...
if (lineStartPos == 0) {
return;
}
// Decide what column to move to, if there's a preferred column use that
if (m_cursorPreferredCol < 0) {
m_cursorPreferredCol = CountDispChars(lineStartPos, m_cursorPos);
m_cursorPreferredCol = countDispChars(lineStartPos, m_cursorPos);
}
EWOL_DEBUG("ploop : " << m_cursorPreferredCol);
// get the previous line
esize_t prevLineStartPos = CountBackwardNLines(lineStartPos, _nbLine);
esize_t prevLineStartPos = countBackwardNLines(lineStartPos, _nbLine);
//APPL_INFO("Move line UP result : prevLineStartPos=" << prevLineStartPos);
// get the display char position
esize_t newPos = CountForwardDispChars(prevLineStartPos, m_cursorPreferredCol);
esize_t newPos = countForwardDispChars(prevLineStartPos, m_cursorPreferredCol);
//APPL_INFO("Move to colomn : column=" << column << " newPos=" << newPos);
//SetInsertPosition(newPos);
m_cursorPos = newPos;
}
void appl::Buffer::MoveCursorDown(esize_t _nbLine)
{
void appl::Buffer::moveCursorDown(esize_t _nbLine) {
// check if we are not at the end of Buffer
if (m_cursorPos == m_data.size() ) {
return;
}
// find the position of the start of the line.
esize_t lineStartPos = StartLine(m_cursorPos);
esize_t lineStartPos = startLine(m_cursorPos);
if (m_cursorPreferredCol < 0) {
m_cursorPreferredCol = CountDispChars(lineStartPos, m_cursorPos);
m_cursorPreferredCol = countDispChars(lineStartPos, m_cursorPos);
}
EWOL_DEBUG("ploop : " << m_cursorPreferredCol);
// get the next line :
esize_t nextLineStartPos = CountForwardNLines(lineStartPos, _nbLine);
esize_t nextLineStartPos = countForwardNLines(lineStartPos, _nbLine);
//APPL_INFO("Move line DOWN result : nextLineStartPos=" << nextLineStartPos);
// get the display char position
esize_t newPos = CountForwardDispChars(nextLineStartPos, m_cursorPreferredCol);
esize_t newPos = countForwardDispChars(nextLineStartPos, m_cursorPreferredCol);
//APPL_INFO("Move to colomn : column=" << column << " newPos=" << newPos);
//SetInsertPosition(newPos);
m_cursorPos = newPos;
}
esize_t appl::Buffer::StartLine(esize_t _pos)
{
esize_t appl::Buffer::startLine(esize_t _pos) {
esize_t startPos;
if (false == SearchBack(_pos, etk::UniChar::Return, startPos)) {
if (false == searchBack(_pos, etk::UniChar::Return, startPos)) {
return 0;
}
return startPos + 1;
}
esize_t appl::Buffer::EndLine(esize_t _pos)
{
esize_t appl::Buffer::endLine(esize_t _pos) {
esize_t endPos;
if (false == Search(_pos, etk::UniChar::Return, endPos)) {
if (false == search(_pos, etk::UniChar::Return, endPos)) {
endPos = m_data.size();
}
return endPos;
}
bool appl::Buffer::Search(esize_t _pos, const etk::UniChar& _search, esize_t& _result)
{
bool appl::Buffer::search(esize_t _pos, const etk::UniChar& _search, esize_t& _result) {
// move in the string
esize_t nbElementBuffer = 0;
etk::UniChar value;
@ -167,8 +154,7 @@ bool appl::Buffer::Search(esize_t _pos, const etk::UniChar& _search, esize_t& _r
return false;
}
bool appl::Buffer::SearchBack(esize_t _pos, const etk::UniChar& _search, esize_t& _result)
{
bool appl::Buffer::searchBack(esize_t _pos, const etk::UniChar& _search, esize_t& _result) {
// move in the string
esize_t nbElementBuffer = 0;
etk::UniChar value;
@ -185,10 +171,8 @@ bool appl::Buffer::SearchBack(esize_t _pos, const etk::UniChar& _search, esize_t
_result = 0;
return false;
}
bool appl::Buffer::onEventEntry(const ewol::EventEntry& _event) // TODO : , vec2 _displaySize)
{
// TODO : vec2 _displaySize
bool appl::Buffer::onEventEntry(const ewol::EventEntry& _event, ewol::Text& _testDrawer) {
//APPL_DEBUG(" event : " << _event);
if (_event.getType() == ewol::keyEvent::keyboardChar) {
//APPL_DEBUG("KB EVENT : \"" << UTF8_data << "\" size=" << strlen(UTF8_data) << "type=" << (int32_t)typeEvent);
@ -219,13 +203,13 @@ bool appl::Buffer::onEventEntry(const ewol::EventEntry& _event) // TODO : , vec2
} else {
// normal adding char ...
char output[5];
int32_t nbElement = _event.getChar().GetUtf8(output);
int32_t nbElement = _event.getChar().getUtf8(output);
if (_event.getSpecialKey().isSetInsert() == false) {
m_data.insert(m_cursorPos, (int8_t*)output, nbElement);
} else {
etk::UniChar value;
esize_t nbElementRemove = get(m_cursorPos, value);
m_data.Replace(m_cursorPos, nbElementRemove, (int8_t*)output, nbElement);
m_data.replace(m_cursorPos, nbElementRemove, (int8_t*)output, nbElement);
}
m_cursorPos += nbElement;
}
@ -238,19 +222,19 @@ bool appl::Buffer::onEventEntry(const ewol::EventEntry& _event) // TODO : , vec2
switch(_event.getType()) {
case ewol::keyEvent::keyboardLeft:
//APPL_INFO("keyEvent : <LEFT>");
MoveCursorLeft();
moveCursorLeft();
break;
case ewol::keyEvent::keyboardRight:
//APPL_INFO("keyEvent : <RIGHT>");
MoveCursorRight();
moveCursorRight();
break;
case ewol::keyEvent::keyboardUp:
//APPL_INFO("keyEvent : <UP>");
MoveCursorUp(1);
moveCursorUp(1);
break;
case ewol::keyEvent::keyboardDown:
//APPL_INFO("keyEvent : <DOWN>");
MoveCursorDown(1);
moveCursorDown(1);
break;
case ewol::keyEvent::keyboardPageUp:
//APPL_INFO("keyEvent : <PAGE-UP>");
@ -262,11 +246,11 @@ bool appl::Buffer::onEventEntry(const ewol::EventEntry& _event) // TODO : , vec2
break;
case ewol::keyEvent::keyboardStart:
//APPL_INFO("keyEvent : <Start of line>");
MoveCursorLeft(moveEnd);
moveCursorLeft(moveEnd);
break;
case ewol::keyEvent::keyboardEnd:
//APPL_INFO("keyEvent : <End of line>");
MoveCursorRight(moveEnd);
moveCursorRight(moveEnd);
break;
default:
break;
@ -282,8 +266,7 @@ bool appl::Buffer::onEventEntry(const ewol::EventEntry& _event) // TODO : , vec2
}
esize_t appl::Buffer::get(esize_t _pos, etk::UniChar& _value, unicode::charset_te _charset) const
{
esize_t appl::Buffer::get(esize_t _pos, etk::UniChar& _value, unicode::charset_te _charset) const {
_value = '\0';
if (_pos<0 && _pos<m_data.size()) {
return 0;
@ -292,7 +275,7 @@ esize_t appl::Buffer::get(esize_t _pos, etk::UniChar& _value, unicode::charset_t
char tmpVal[5];
memset(tmpVal, 0, sizeof(tmpVal));
tmpVal[0] = m_data[_pos];
int8_t nbChar = etk::UniChar::TheoricUTF8Len(tmpVal[0]);
int8_t nbChar = etk::UniChar::theoricUTF8Len(tmpVal[0]);
for (int32_t iii=1; iii<nbChar && _pos+iii<m_data.size(); ++iii) {
tmpVal[iii] = m_data[_pos+iii];
}
@ -305,8 +288,7 @@ esize_t appl::Buffer::get(esize_t _pos, etk::UniChar& _value, unicode::charset_t
return 1;
}
esize_t appl::Buffer::getBack(esize_t _pos, etk::UniChar& _value, unicode::charset_te _charset) const
{
esize_t appl::Buffer::getBack(esize_t _pos, etk::UniChar& _value, unicode::charset_te _charset) const {
_value = '\0';
if (_pos<0 && _pos<m_data.size()) {
return 0;
@ -317,7 +299,7 @@ esize_t appl::Buffer::getBack(esize_t _pos, etk::UniChar& _value, unicode::chars
memset(tmpVal, 0, sizeof(tmpVal));
*pointerVal = m_data[_pos];
int32_t iii=0;
while( etk::UniChar::TheoricUTF8First(*pointerVal) == false
while( etk::UniChar::theoricUTF8First(*pointerVal) == false
&& pointerVal > tmpVal
&& _pos-iii>0) {
--pointerVal;
@ -336,8 +318,7 @@ static const char *ControlCodeTable[32] = {
"NUL", "soh", "stx", "etx", "eot", "enq", "ack", "bel", "bs", "ht", "nl", "vt", "np", "cr", "so", "si",
"dle", "dc1", "dc2", "dc3", "dc4", "nak", "syn", "etb", "can", "em", "sub", "esc", "fs", "gs", "rs", "us"};
void appl::Buffer::Expand(esize_t& _indent, const etk::UniChar& _value, etk::UString& _out) const
{
void appl::Buffer::expand(esize_t& _indent, const etk::UniChar& _value, etk::UString& _out) const {
_out.clear();
int32_t tabDist = 4;
if (_value == etk::UniChar::Tabulation) {
@ -383,8 +364,7 @@ void appl::Buffer::Expand(esize_t& _indent, const etk::UniChar& _value, etk::USt
//APPL_DEBUG("plop : " << _out);
}
int32_t appl::Buffer::CountDispChars(esize_t _posStart, esize_t _posEnd)
{
int32_t appl::Buffer::countDispChars(esize_t _posStart, esize_t _posEnd) {
int32_t charCount = 0;
etk::UString expanded;
esize_t bufferElementSize;
@ -394,7 +374,7 @@ int32_t appl::Buffer::CountDispChars(esize_t _posStart, esize_t _posEnd)
// get the element value:
bufferElementSize = get(iii, value);
//APPL_DEBUG(" get : " << value << " size=" << bufferElementSize);
Expand(charCount, value, expanded);
expand(charCount, value, expanded);
charCount += expanded.size();
if (bufferElementSize <= 0) {
bufferElementSize = 1;
@ -404,8 +384,7 @@ int32_t appl::Buffer::CountDispChars(esize_t _posStart, esize_t _posEnd)
return charCount;
}
esize_t appl::Buffer::CountForwardDispChars(esize_t _posStart, int32_t _nChars)
{
esize_t appl::Buffer::countForwardDispChars(esize_t _posStart, int32_t _nChars) {
int32_t charCount = 0;
etk::UString expanded;
esize_t bufferElementSize;
@ -417,7 +396,7 @@ esize_t appl::Buffer::CountForwardDispChars(esize_t _posStart, int32_t _nChars)
if (value == etk::UniChar::Return) {
return iii;
}
Expand(charCount, value, expanded);
expand(charCount, value, expanded);
charCount += expanded.size();
if (bufferElementSize <= 0) {
bufferElementSize = 1;
@ -427,8 +406,7 @@ esize_t appl::Buffer::CountForwardDispChars(esize_t _posStart, int32_t _nChars)
return iii;
}
esize_t appl::Buffer::CountForwardNLines(esize_t _startPos, int32_t _nLines)
{
esize_t appl::Buffer::countForwardNLines(esize_t _startPos, int32_t _nLines) {
if (_nLines <= 0) {
return _startPos;
} else if (_startPos > m_data.size() ) {
@ -456,8 +434,7 @@ esize_t appl::Buffer::CountForwardNLines(esize_t _startPos, int32_t _nLines)
return m_data.size();
}
esize_t appl::Buffer::CountBackwardNLines(esize_t _startPos, int32_t _nLines)
{
esize_t appl::Buffer::countBackwardNLines(esize_t _startPos, int32_t _nLines) {
if (_startPos <= 0) {
return 0;
} else if (_startPos > m_data.size() ) {

View File

@ -16,11 +16,10 @@
#include <etk/Buffer.h>
#include <ewol/renderer/EObject.h>
#include <ewol/widget/Widget.h>
#include <ewol/compositing/Text.h>
namespace appl
{
class Buffer : public ewol::EObject
{
namespace appl {
class Buffer : public ewol::EObject {
public:
Buffer(void);
~Buffer(void) { };
@ -30,13 +29,17 @@ namespace appl
/**
* @brief get the curent filename of the Buffer
*/
const etk::UString& getFileName(void) { return m_fileName; }
const etk::UString& getFileName(void) {
return m_fileName;
}
bool loadFile(const etk::UString& _name);
void setFileName(const etk::UString& _name);
bool m_isModify; //!< true if the file is modify
etk::Buffer m_data; //!< copy of the file buffer
public:
etk::Buffer& getData(void) { return m_data; };
etk::Buffer& getData(void) {
return m_data;
};
/*
appl::History m_history;
Highlight m_highlight;
@ -46,7 +49,8 @@ namespace appl
public:
esize_t m_cursorPos; //!< cursor position.
int32_t m_cursorPreferredCol; //!< position of the cursor when up and down is done.
bool onEventEntry(const ewol::EventEntry& _event);
// note : We need the text drawer interface due to the fact that the move depend on the text display properties.
bool onEventEntry(const ewol::EventEntry& _event, ewol::Text& _testDrawer);
/**
* @brief get the next element in the buffer.
* @param[in] _pos Position in the buffer
@ -69,7 +73,7 @@ namespace appl
* @param[in] _value Current value to transform
* @param[out] _out String that represent the curent value to display
*/
void Expand(esize_t& _indent, const etk::UniChar& _value, etk::UString& _out) const;
void expand(esize_t& _indent, const etk::UniChar& _value, etk::UString& _out) const;
private:
enum moveMode {
moveLetter,
@ -80,34 +84,34 @@ namespace appl
* Move the cursor right in the line (no stop of a new line)
* @param[in] _mode Moving mode char, word, ...
*/
void MoveCursorRight(moveMode _mode = moveLetter);
void moveCursorRight(moveMode _mode = moveLetter);
/**
* Move the cursor left in the line (no stop of a new line)
* @param[in] _mode Moving mode char, word, ...
*/
void MoveCursorLeft(moveMode _mode = moveLetter);
void moveCursorLeft(moveMode _mode = moveLetter);
/**
* @brief Move the cursor at an other position upper.
* @param[in] _nbLine number of up line that might be moved
*/
void MoveCursorUp(esize_t _nbLine);
void moveCursorUp(esize_t _nbLine);
/**
* @brief Move the cursor at an other position under.
* @param[in] _nbLine number of down line that might be moved
*/
void MoveCursorDown(esize_t _nbLine);
void moveCursorDown(esize_t _nbLine);
/**
* @brief get the start of a line with the position in the buffer.
* @param[in] _pos position in the buffer.
* @return The position in the buffer of the start of the line.
*/
esize_t StartLine(esize_t _pos);
esize_t startLine(esize_t _pos);
/**
* @brief get the end of a line with the position in the buffer.
* @param[in] _pos position in the buffer.
* @return The position in the buffer of the end of the line.
*/
esize_t EndLine(esize_t _pos);
esize_t endLine(esize_t _pos);
/**
* @brief Search a character in the buffer.
* @param[in] _pos Position to start the search of the element.
@ -115,7 +119,7 @@ namespace appl
* @param[out] _result Research position.
* @return true if pos if fined.
*/
bool Search(esize_t _pos, const etk::UniChar& _search, esize_t& _result);
bool search(esize_t _pos, const etk::UniChar& _search, esize_t& _result);
/**
* @brief Search a character in the buffer in back mode.
* @param[in] _pos Position to start the search of the element.
@ -123,7 +127,7 @@ namespace appl
* @param[out] _result Research position.
* @return true if pos if fined.
*/
bool SearchBack(esize_t _pos, const etk::UniChar& _search, esize_t& _result);
bool searchBack(esize_t _pos, const etk::UniChar& _search, esize_t& _result);
/**
* @brief Count the number of displayed characters between buffer position
* displayed characters are the characters shown on the screen to represent characters in the
@ -132,28 +136,28 @@ namespace appl
* @param[in] _posEnd End position
* @return the ID in the buffer of the requested char
*/
int32_t CountDispChars(esize_t _posStart, esize_t _posEnd);
int32_t countDispChars(esize_t _posStart, esize_t _posEnd);
/**
* @brief Return the position of the nth diplaye char
* @param[in] _posStart Position of the start
* @param[in] _nChars search in the next nChars elements
* @return position of the char i the buffer
*/
esize_t CountForwardDispChars(esize_t _posStart, int32_t _nChars);
esize_t countForwardDispChars(esize_t _posStart, int32_t _nChars);
/**
* @brief find the first character of the line "nLines" forward
* @param[in,out] _startPos Start position.
* @param[in,out] _nLines Number of line to count.
* @return position of the starting the line.
*/
esize_t CountForwardNLines(esize_t _startPos, int32_t _nLines);
esize_t countForwardNLines(esize_t _startPos, int32_t _nLines);
/**
* @brief find the first character of the line "nLines" backwards
* @param[in,out] _startPos Start position to count (this caracter is not counted)
* @param[in,out] _nLines Number of line to count (if == 0 means find the beginning of the line)
* @return position of the starting the line
*/
esize_t CountBackwardNLines(esize_t _startPos, int32_t _nLines);
esize_t countBackwardNLines(esize_t _startPos, int32_t _nLines);
};
};

View File

@ -14,9 +14,8 @@
#undef __class__
#define __class__ "classBufferManager"
class classBufferManager: public ewol::EObject
{
#if 0
class classBufferManager: public ewol::EObject {
public:
// Constructeur
classBufferManager(void);
@ -30,7 +29,7 @@ class classBufferManager: public ewol::EObject
private:
// return the ID of the buffer allocated
// create a buffer with no element
int32_t Create(void);
int32_t create(void);
// open curent filename
int32_t open(etk::FSNode &myFile);
bool remove(int32_t BufferID);
@ -38,13 +37,13 @@ class classBufferManager: public ewol::EObject
int32_t getSelected(void) { return m_idSelected;};
//void setSelected(int32_t id) {m_idSelected = id;};
BufferText* get(int32_t BufferID);
bool Exist(int32_t BufferID);
bool Exist(etk::FSNode &myFile);
bool exist(int32_t BufferID);
bool exist(etk::FSNode &myFile);
int32_t getId(etk::FSNode &myFile);
// return the number of buffer (open in the past) if 5 buffer open and 4 close == > return 5
uint32_t size(void);
uint32_t sizeOpen(void);
int32_t WitchBuffer(int32_t iEmeElement);
int32_t witchBuffer(int32_t iEmeElement);
private:
@ -234,22 +233,7 @@ void classBufferManager::onReceiveMessage(const ewol::EMessage& _msg)
*/
}
/**
* @brief remove all buffer opened
*
* @param[in,out] ---
*
* @return ---
*
*/
void classBufferManager::removeAll(void)
{
void classBufferManager::removeAll(void) {
int32_t i;
for (i=0; i<listBuffer.size(); i++) {
remove(i);
@ -261,14 +245,9 @@ void classBufferManager::removeAll(void)
/**
* @brief Create a new buffer with no name and empty
*
* @param[in,out] ---
*
* @return The ID of the curent buffer where the file is loaded
*
*/
int32_t classBufferManager::Create(void)
{
int32_t classBufferManager::create(void) {
// allocate a new Buffer
BufferText *myBuffer = new BufferText();
// add at the list of element
@ -280,17 +259,12 @@ int32_t classBufferManager::Create(void)
/**
* @brief open a file with the name set in parameters
*
* @param[in] filename curent filename
*
* @param[in] filename curent filename
* @return The ID of the curent buffer where the file is loaded
*
* @todo : check if this file is not curently open and return the old ID
*
*/
int32_t classBufferManager::open(etk::FSNode &myFile)
{
if (false == Exist(myFile)) {
int32_t classBufferManager::open(etk::FSNode &myFile) {
if (false == exist(myFile)) {
// allocate a new Buffer
BufferText *myBuffer = new BufferText(myFile);
// add at the list of element
@ -302,10 +276,7 @@ int32_t classBufferManager::open(etk::FSNode &myFile)
}
}
BufferText * classBufferManager::get(int32_t BufferID)
{
BufferText * classBufferManager::get(int32_t BufferID) {
// possible special case : -1;
if (-1 >= BufferID) {
return NULL;
@ -324,9 +295,7 @@ BufferText * classBufferManager::get(int32_t BufferID)
return NULL;
}
bool classBufferManager::Exist(int32_t BufferID)
{
bool classBufferManager::exist(int32_t BufferID) {
if (-1 >= BufferID) {
return false;
}
@ -340,18 +309,14 @@ bool classBufferManager::Exist(int32_t BufferID)
return false;
}
bool classBufferManager::Exist(etk::FSNode &myFile )
{
bool classBufferManager::exist(etk::FSNode &myFile) {
if (-1 == getId(myFile)) {
return false;
}
return true;
}
int32_t classBufferManager::getId(etk::FSNode &myFile)
{
int32_t classBufferManager::getId(etk::FSNode &myFile) {
int32_t iii;
// check if the Buffer existed
for (iii=0; iii < listBuffer.size(); iii++) {
@ -367,14 +332,12 @@ int32_t classBufferManager::getId(etk::FSNode &myFile)
// return the number of buffer (open in the past) if 5 buffer open and 4 close == > return 5
uint32_t classBufferManager::size(void)
{
uint32_t classBufferManager::size(void) {
return listBuffer.size();
}
// nb of opens file Now ...
uint32_t classBufferManager::sizeOpen(void)
{
uint32_t classBufferManager::sizeOpen(void) {
uint32_t jjj = 0;
// check if the Buffer existed
for (int32_t iii=0; iii<listBuffer.size(); iii++) {
@ -386,16 +349,7 @@ uint32_t classBufferManager::sizeOpen(void)
return jjj;
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
bool classBufferManager::remove(int32_t BufferID)
{
bool classBufferManager::remove(int32_t BufferID) {
if (-1 >= BufferID) {
return false;
}
@ -427,15 +381,9 @@ bool classBufferManager::remove(int32_t BufferID)
}
/**
* @brief to get the element 14 in the buffer
*
* @param[in,out] ---
*
* @return ---
*
* @brief to get the element 14 in the buffer
*/
int32_t classBufferManager::WitchBuffer(int32_t iEmeElement)
{
int32_t classBufferManager::witchBuffer(int32_t iEmeElement) {
int32_t i;
for (i=0; i<listBuffer.size(); i++) {
if (NULL != listBuffer[i]) {
@ -455,9 +403,9 @@ int32_t classBufferManager::WitchBuffer(int32_t iEmeElement)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static classBufferManager * localManager = NULL;
void BufferManager::init(void)
{
#endif
void BufferManager::init(void) {
/*
if (NULL != localManager) {
EWOL_ERROR("classBufferManager == > already exist, just unlink the previous ...");
localManager = NULL;
@ -467,88 +415,106 @@ void BufferManager::init(void)
if (NULL == localManager) {
EWOL_CRITICAL("Allocation of classBufferManager not done ...");
}
*/
}
void BufferManager::UnInit(void)
{
void BufferManager::unInit(void) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return;
}
delete(localManager);
localManager = NULL;
*/
}
int32_t BufferManager::getSelected(void)
{
int32_t BufferManager::getSelected(void) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return -1;
}
return localManager->getSelected();
*/
return -1;
}
BufferText * BufferManager::get(int32_t BufferID)
{
appl::Buffer * BufferManager::get(int32_t BufferID) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return NULL;
}
return localManager->get(BufferID);
*/
return NULL;
}
bool BufferManager::Exist(int32_t BufferID)
{
bool BufferManager::exist(int32_t BufferID) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return false;
}
return localManager->Exist(BufferID);
return localManager->exist(BufferID);
*/
return false;
}
bool BufferManager::Exist(etk::FSNode &myFile)
{
bool BufferManager::exist(etk::FSNode &myFile) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return false;
}
return localManager->Exist(myFile);
return localManager->exist(myFile);
*/
return false;
}
int32_t BufferManager::getId(etk::FSNode &myFile)
{
int32_t BufferManager::getId(etk::FSNode &myFile) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return -1;
}
return localManager->getId(myFile);
*/
return -1;
}
uint32_t BufferManager::size(void)
{
uint32_t BufferManager::size(void) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return 0;
}
return localManager->size();
*/
return 0;
}
uint32_t BufferManager::sizeOpen(void)
{
uint32_t BufferManager::sizeOpen(void) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return 0;
}
return localManager->sizeOpen();
*/
return 0;
}
int32_t BufferManager::WitchBuffer(int32_t iEmeElement)
{
int32_t BufferManager::witchBuffer(int32_t iEmeElement) {
/*
if (NULL == localManager) {
EWOL_ERROR("classBufferManager == > request UnInit, but does not exist ...");
return -1;
}
return localManager->WitchBuffer(iEmeElement);
return localManager->witchBuffer(iEmeElement);
*/
return -1;
}

View File

@ -9,23 +9,23 @@
#ifndef __BUFFER_MANAGER_H__
#define __BUFFER_MANAGER_H__
#include <BufferText.h>
#include <Buffer.h>
#include <appl/globalMsg.h>
#include <ewol/widget/Widget.h>
namespace BufferManager
{
void init(void);
void UnInit(void);
void unInit(void);
int32_t getSelected(void);
BufferText* get(int32_t BufferID);
bool Exist(int32_t BufferID);
bool Exist(etk::FSNode &myFile);
appl::Buffer* get(int32_t BufferID);
bool exist(int32_t BufferID);
bool exist(etk::FSNode &myFile);
int32_t getId(etk::FSNode &myFile);
// return the number of buffer (open in the past) if 5 buffer open and 4 close == > return 5
uint32_t size(void);
uint32_t sizeOpen(void);
int32_t WitchBuffer(int32_t iEmeElement);
int32_t witchBuffer(int32_t iEmeElement);
};
#endif

View File

@ -16,8 +16,7 @@
#define PFX "ColorizeManager "
class classColorManager: public ewol::EObject
{
class classColorManager: public ewol::EObject {
private:
etk::UString m_fileColor;
etk::Vector<Colorize*> listMyColor; //!< List of ALL Color
@ -26,12 +25,10 @@ class classColorManager: public ewol::EObject
public:
// Constructeur
classColorManager(void)
{
classColorManager(void) {
//ewol::widgetMessageMultiCast::add(getWidgetId(), ednMsgGuiChangeColor);
}
~classColorManager(void)
{
~classColorManager(void) {
delete(errorColor);
int32_t i;
@ -46,12 +43,10 @@ class classColorManager: public ewol::EObject
listMyColor.clear();
}
const char * const getObjectType(void)
{
const char * const getObjectType(void) {
return "Appl::ColorManager";
}
void onReceiveMessage(const ewol::EMessage& _msg)
{
void onReceiveMessage(const ewol::EMessage& _msg) {
/*
switch (id)
{
@ -68,8 +63,7 @@ class classColorManager: public ewol::EObject
}
public:
void loadFile(const etk::UString& _xmlFilename);
Colorize* get(const etk::UString& _colorName)
{
Colorize* get(const etk::UString& _colorName) {
int32_t i;
for (i=0; i<listMyColor.size(); i++) {
if (listMyColor[i]->getName() == _colorName) {
@ -80,16 +74,14 @@ class classColorManager: public ewol::EObject
// an error
return errorColor;
}
etk::Color<>& get(basicColor_te _myColor)
{
etk::Color<>& get(basicColor_te _myColor) {
if (_myColor < COLOR_NUMBER_MAX) {
return basicColors[_myColor];
} else {
return basicColors[0];
}
}
bool Exist(const etk::UString& _colorName)
{
bool exist(const etk::UString& _colorName) {
int32_t i;
for (i=0; i<listMyColor.size(); i++) {
if (listMyColor[i]->getName() == _colorName) {
@ -98,8 +90,7 @@ class classColorManager: public ewol::EObject
}
return false;
}
void displayListOfColor(void)
{
void displayListOfColor(void) {
int32_t i;
APPL_INFO(PFX"List of ALL COLOR : ");
for (i=0; i<listMyColor.size(); i++) {
@ -110,8 +101,7 @@ class classColorManager: public ewol::EObject
}
};
void classColorManager::loadFile(const etk::UString& _xmlFilename)
{
void classColorManager::loadFile(const etk::UString& _xmlFilename) {
// remove all old color :
for (int32_t iii=0; iii< listMyColor.size(); iii++) {
if (NULL != listMyColor[iii]) {
@ -137,7 +127,7 @@ void classColorManager::loadFile(const etk::UString& _xmlFilename)
}
exml::Element* root = (exml::Element*)doc.getNamed("EdnColor");
if (NULL == root ) {
APPL_ERROR("[" << getId() << "] {" << GetObjectType() << "} (l ?) main node not find: \"EdnColor\" ...");
APPL_ERROR("[" << getId() << "] {" << getObjectType() << "} (l ?) main node not find: \"EdnColor\" ...");
return;
}
@ -157,7 +147,7 @@ void classColorManager::loadFile(const etk::UString& _xmlFilename)
continue;
}
if (pGuiNode->getValue()!="color") {
APPL_ERROR("(l "<<pGuiNode->getPos()<<") node not suported : \""<<pGuiNode->GetValue()<<"\" must be [color]");
APPL_ERROR("(l "<<pGuiNode->getPos()<<") node not suported : \""<<pGuiNode->getValue()<<"\" must be [color]");
continue;
}
//--------------------------------------------------------------------------------------------
@ -205,7 +195,7 @@ void classColorManager::loadFile(const etk::UString& _xmlFilename)
continue;
}
if (pGuiNode->getValue()!="color") {
APPL_ERROR(PFX"(l "<<pGuiNode->getPos()<<") node not suported : \""<<pGuiNode->GetValue()<<"\" must be [color]");
APPL_ERROR(PFX"(l "<<pGuiNode->getPos()<<") node not suported : \""<<pGuiNode->getValue()<<"\" must be [color]");
continue;
}
//--------------------------------------------------------------------------------------------
@ -253,8 +243,7 @@ void classColorManager::loadFile(const etk::UString& _xmlFilename)
static classColorManager * localManager = NULL;
void ColorizeManager::init(void)
{
void ColorizeManager::init(void) {
if (NULL != localManager) {
EWOL_ERROR("ColorizeManager == > already exist, just unlink the previous ...");
localManager = NULL;
@ -266,8 +255,7 @@ void ColorizeManager::init(void)
}
}
void ColorizeManager::UnInit(void)
{
void ColorizeManager::unInit(void) {
if (NULL == localManager) {
EWOL_ERROR("ColorizeManager == > request UnInit, but does not exist ...");
return;
@ -276,16 +264,14 @@ void ColorizeManager::UnInit(void)
localManager = NULL;
}
void ColorizeManager::loadFile(const etk::UString& _xmlFilename)
{
void ColorizeManager::loadFile(const etk::UString& _xmlFilename) {
if (NULL == localManager) {
return;
}
localManager->loadFile(_xmlFilename);
}
Colorize* ColorizeManager::get(const etk::UString& _colorName)
{
Colorize* ColorizeManager::get(const etk::UString& _colorName) {
if (NULL == localManager) {
return NULL;
}
@ -293,8 +279,7 @@ Colorize* ColorizeManager::get(const etk::UString& _colorName)
}
etk::Color<>& ColorizeManager::get(basicColor_te _myColor)
{
etk::Color<>& ColorizeManager::get(basicColor_te _myColor) {
static etk::Color<> errorColor;
if (NULL == localManager) {
return errorColor;
@ -302,16 +287,14 @@ etk::Color<>& ColorizeManager::get(basicColor_te _myColor)
return localManager->get(_myColor);
}
bool ColorizeManager::Exist(const etk::UString& _colorName)
{
bool ColorizeManager::exist(const etk::UString& _colorName) {
if (NULL == localManager) {
return false;
}
return localManager->Exist(_colorName);
return localManager->exist(_colorName);
}
void ColorizeManager::displayListOfColor(void)
{
void ColorizeManager::displayListOfColor(void) {
if (NULL == localManager) {
return;
}

View File

@ -36,11 +36,11 @@ typedef enum {
namespace ColorizeManager
{
void init(void);
void UnInit(void);
void unInit(void);
void loadFile(const etk::UString& _xmlFilename);
Colorize * get(const etk::UString& _colorName);
etk::Color<>& get(basicColor_te _myColor);
bool Exist(const etk::UString& _colorName);
bool exist(const etk::UString& _colorName);
void displayListOfColor(void);
};

View File

@ -15,50 +15,44 @@
#include <ewol/renderer/EObject.h>
#undef __class__
#define __class__ "BufferView"
#define __class__ "BufferView"
static void SortElementList(etk::Vector<appl::dataBufferStruct *> &list)
{
etk::Vector<appl::dataBufferStruct *> tmpList = list;
list.clear();
static void SortElementList(etk::Vector<appl::dataBufferStruct*>& _list) {
etk::Vector<appl::dataBufferStruct *> 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++) {
//EWOL_DEBUG("compare : \""<<*tmpList[iii] << "\" and \"" << *m_listDirectory[jjj] << "\"");
if (list[jjj]!=NULL) {
if (tmpList[iii]->m_bufferName.getNameFile() > list[jjj]->m_bufferName.GetNameFile()) {
findPos = jjj+1;
}
}
}
//EWOL_DEBUG("position="<<findPos);
list.insert(findPos, tmpList[iii]);
if (NULL == tmpList[iii]) {
continue;
}
int32_t findPos = 0;
for(int32_t jjj=0; jjj<_list.size(); jjj++) {
//EWOL_DEBUG("compare : \""<<*tmpList[iii] << "\" and \"" << *m_listDirectory[jjj] << "\"");
if (_list[jjj] == NULL) {
continue;
}
if (tmpList[iii]->m_bufferName.getNameFile() > _list[jjj]->m_bufferName.getNameFile()) {
findPos = jjj+1;
}
}
//EWOL_DEBUG("position="<<findPos);
_list.insert(findPos, tmpList[iii]);
}
}
BufferView::BufferView(void)
{
BufferView::BufferView(void) {
setCanHaveFocus(true);
RegisterMultiCast(ednMsgBufferListChange);
RegisterMultiCast(ednMsgBufferState);
RegisterMultiCast(ednMsgBufferId);
registerMultiCast(ednMsgBufferListChange);
registerMultiCast(ednMsgBufferState);
registerMultiCast(ednMsgBufferId);
m_selectedID = -1;
m_selectedIdRequested = -1;
}
BufferView::~BufferView(void)
{
BufferView::~BufferView(void) {
removeAllElement();
}
void BufferView::removeAllElement(void)
{
void BufferView::removeAllElement(void) {
for(int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL!=m_list[iii]) {
delete(m_list[iii]);
@ -68,8 +62,7 @@ void BufferView::removeAllElement(void)
m_list.clear();
}
void BufferView::onReceiveMessage(const ewol::EMessage& _msg)
{
void BufferView::onReceiveMessage(const ewol::EMessage& _msg) {
widget::List::onReceiveMessage(_msg);
if (_msg.getMessage() == ednMsgBufferListChange) {
// clean The list
@ -77,7 +70,8 @@ void BufferView::onReceiveMessage(const ewol::EMessage& _msg)
// get all the buffer name and properties:
int32_t nbBufferOpen = BufferManager::size();
for (int32_t iii=0; iii<nbBufferOpen; iii++) {
if (BufferManager::Exist(iii)) {
if (BufferManager::exist(iii)) {
/*
BufferText* tmpBuffer = BufferManager::get(iii);
if (NULL != tmpBuffer) {
bool isModify = tmpBuffer->isModify();
@ -89,6 +83,7 @@ void BufferView::onReceiveMessage(const ewol::EMessage& _msg)
APPL_ERROR("Allocation error of the tmp buffer list element");
}
}
*/
}
}
if (true == globals::OrderTheBufferList() ) {
@ -102,7 +97,7 @@ void BufferView::onReceiveMessage(const ewol::EMessage& _msg)
// update list of modify section ...
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL!=m_list[iii]) {
m_list[iii]->m_isModify = BufferManager::get(m_list[iii]->m_bufferID)->isModify();
//m_list[iii]->m_isModify = BufferManager::get(m_list[iii]->m_bufferID)->isModify();
}
}
markToRedraw();
@ -110,29 +105,24 @@ void BufferView::onReceiveMessage(const ewol::EMessage& _msg)
}
etk::Color<> BufferView::getBasicBG(void)
{
etk::Color<> BufferView::getBasicBG(void) {
return ColorizeManager::get(COLOR_LIST_BG_1);
}
uint32_t BufferView::getNuberOfColomn(void)
{
uint32_t BufferView::getNuberOfColomn(void) {
return 1;
}
bool BufferView::getTitle(int32_t colomn, etk::UString &myTitle, etk::Color<> &fg, etk::Color<> &bg)
{
myTitle = "Buffers : ";
bool BufferView::getTitle(int32_t _colomn, etk::UString &_myTitle, etk::Color<> &_fg, etk::Color<> &_bg) {
_myTitle = "Buffers : ";
return true;
}
uint32_t BufferView::getNuberOfRaw(void)
{
uint32_t BufferView::getNuberOfRaw(void) {
return m_list.size();
}
bool BufferView::getElement(int32_t colomn, int32_t raw, etk::UString &myTextToWrite, etk::Color<> &fg, etk::Color<> &bg)
{
bool BufferView::getElement(int32_t _colomn, int32_t _raw, etk::UString& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg) {
bool isModify;
basicColor_te selectFG = COLOR_LIST_TEXT_NORMAL;
basicColor_te selectBG = COLOR_LIST_BG_1;
@ -140,49 +130,49 @@ bool BufferView::getElement(int32_t colomn, int32_t raw, etk::UString &myTextToW
if (m_selectedIdRequested != -1) {
m_selectedID = -1;
}
if( raw >= 0
&& raw<m_list.size()
&& NULL != m_list[raw]) {
myTextToWrite = m_list[raw]->m_bufferName.getNameFile();
if( _raw >= 0
&& _raw<m_list.size()
&& NULL != m_list[_raw]) {
_myTextToWrite = m_list[_raw]->m_bufferName.getNameFile();
if (true == m_list[raw]->m_isModify) {
if (true == m_list[_raw]->m_isModify) {
selectFG = COLOR_LIST_TEXT_MODIFY;
} else {
selectFG = COLOR_LIST_TEXT_NORMAL;
}
if (raw%2 == 0) {
if (_raw%2 == 0) {
selectBG = COLOR_LIST_BG_1;
} else {
selectBG = COLOR_LIST_BG_2;
}
// the buffer change of selection ...
if (m_selectedIdRequested == m_list[raw]->m_bufferID) {
m_selectedID = raw;
if (m_selectedIdRequested == m_list[_raw]->m_bufferID) {
m_selectedID = _raw;
// stop searching
m_selectedIdRequested = -1;
// set the raw visible :
setRawVisible(m_selectedID);
}
if (m_selectedID == raw) {
if (m_selectedID == _raw) {
selectBG = COLOR_LIST_BG_SELECTED;
}
} else {
myTextToWrite = "ERROR";
_myTextToWrite = "ERROR";
}
fg = ColorizeManager::get(selectFG);
bg = ColorizeManager::get(selectBG);
_fg = ColorizeManager::get(selectFG);
_bg = ColorizeManager::get(selectBG);
return true;
}
bool BufferView::onItemEvent(int32_t IdInput, ewol::keyEvent::status_te typeEvent, int32_t colomn, int32_t raw, float x, float y)
bool BufferView::onItemEvent(int32_t _IdInput, ewol::keyEvent::status_te _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y)
{
if (1 == IdInput && typeEvent == ewol::keyEvent::statusSingle) {
APPL_INFO("Event on List : IdInput=" << IdInput << " colomn=" << colomn << " raw=" << raw );
if( raw >= 0
&& raw<m_list.size()
&& NULL != m_list[raw]) {
m_selectedIdRequested = m_list[raw]->m_bufferID;
SendMultiCast(ednMsgBufferId, m_list[raw]->m_bufferID);
if (1 == _IdInput && _typeEvent == ewol::keyEvent::statusSingle) {
APPL_INFO("Event on List : IdInput=" << _IdInput << " colomn=" << _colomn << " raw=" << _raw );
if( _raw >= 0
&& _raw<m_list.size()
&& NULL != m_list[_raw]) {
m_selectedIdRequested = m_list[_raw]->m_bufferID;
sendMultiCast(ednMsgBufferId, m_list[_raw]->m_bufferID);
}
}
markToRedraw();

View File

@ -10,7 +10,6 @@
#define __BUFFER_VIEW_H__
#include <appl/Debug.h>
#include <CodeView.h>
#include <BufferManager.h>
#include <appl/globalMsg.h>
#include <ewol/widget/List.h>
@ -24,11 +23,10 @@ namespace appl
etk::FSNode m_bufferName;
uint32_t m_bufferID;
bool m_isModify;
dataBufferStruct(etk::FSNode& bufferName, int32_t bufferID, bool isModify) :
m_bufferName(bufferName),
m_bufferID(bufferID),
m_isModify(isModify)
{
dataBufferStruct(etk::FSNode& _bufferName, int32_t _bufferID, bool _isModify) :
m_bufferName(_bufferName),
m_bufferID(_bufferID),
m_isModify(_isModify) {
};
~dataBufferStruct(void) { };
@ -38,9 +36,9 @@ namespace appl
class BufferView : public widget::List
{
private:
int32_t m_selectedIdRequested;
int32_t m_selectedID;
etk::Vector<appl::dataBufferStruct*> m_list;
int32_t m_selectedIdRequested;
int32_t m_selectedID;
etk::Vector<appl::dataBufferStruct*> m_list;
public:
// Constructeur
BufferView(void);
@ -55,10 +53,10 @@ class BufferView : public widget::List
void removeAllElement(void);
// Derived function
virtual uint32_t getNuberOfColomn(void);
virtual bool getTitle(int32_t colomn, etk::UString &myTitle, etk::Color<> &fg, etk::Color<> &bg);
virtual bool getTitle(int32_t _colomn, etk::UString& _myTitle, etk::Color<>& _fg, etk::Color<>& _bg);
virtual uint32_t getNuberOfRaw(void);
virtual bool getElement(int32_t colomn, int32_t raw, etk::UString &myTextToWrite, etk::Color<> &fg, etk::Color<> &bg);
virtual bool onItemEvent(int32_t IdInput, ewol::keyEvent::status_te typeEvent, int32_t colomn, int32_t raw, float x, float y);
virtual bool getElement(int32_t _colomn, int32_t _raw, etk::UString& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg);
virtual bool onItemEvent(int32_t _IdInput, ewol::keyEvent::status_te _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y);
};

View File

@ -10,7 +10,6 @@
#include <appl/Debug.h>
#include <appl/global.h>
#include <MainWindows.h>
#include <CodeView.h>
#include <BufferView.h>
#include <TextViewer.h>
#include <Search.h>
@ -55,12 +54,10 @@ namespace appl
#include <ewol/widget/Label.h>
#include <ewol/widget/Spacer.h>
class ParameterAboutGui : public widget::Sizer
{
class ParameterAboutGui : public widget::Sizer {
public :
ParameterAboutGui(void) :
widget::Sizer(widget::Sizer::modeVert)
{
widget::Sizer(widget::Sizer::modeVert) {
widget::Spacer* mySpacer = NULL;
mySpacer = new widget::Spacer();
@ -102,7 +99,9 @@ class ParameterAboutGui : public widget::Sizer
}
};
~ParameterAboutGui(void) { };
~ParameterAboutGui(void) {
};
};
@ -111,16 +110,14 @@ const char * l_smoothMin = "tmpEvent_minChange";
const char * l_smoothMax = "tmpEvent_maxChange";
#undef __class__
#define __class__ "MainWindows"
#define __class__ "MainWindows"
MainWindows::MainWindows(void)
{
MainWindows::MainWindows(void) {
APPL_DEBUG("CREATE WINDOWS ... ");
widget::Sizer * mySizerVert = NULL;
widget::Sizer * mySizerVert2 = NULL;
widget::Sizer * mySizerHori = NULL;
//ewol::Button * myButton = NULL;
CodeView * myCodeView = NULL;
appl::TextViewer * myTextView = NULL;
BufferView * myBufferView = NULL;
widget::Menu * myMenu = NULL;
@ -241,40 +238,39 @@ MainWindows::MainWindows(void)
// add generic shortcut ...
// (shift, control, alt, meta, uniChar_t unicodeValue, const char * generateEventId, etk::UString& data)
ShortCutAdd("ctrl+o", ednMsgGuiOpen, "", true);
ShortCutAdd("ctrl+n", ednMsgGuiNew, "", true);
shortCutAdd("ctrl+o", ednMsgGuiOpen, "", true);
shortCutAdd("ctrl+n", ednMsgGuiNew, "", true);
ShortCutAdd("ctrl+s", ednMsgGuiSave, "current", true);
ShortCutAdd("ctrl+shift+s", ednMsgGuiSave, "All", true);
shortCutAdd("ctrl+s", ednMsgGuiSave, "current", true);
shortCutAdd("ctrl+shift+s", ednMsgGuiSave, "All", true);
ShortCutAdd("ctrl+q", ednMsgGuiClose, "current", true);
ShortCutAdd("ctrl+shift+q", ednMsgGuiClose, "All", true);
shortCutAdd("ctrl+q", ednMsgGuiClose, "current", true);
shortCutAdd("ctrl+shift+q", ednMsgGuiClose, "All", true);
ShortCutAdd("ctrl+z", ednMsgGuiUndo, "", true);
ShortCutAdd("ctrl+shift+z", ednMsgGuiRedo, "", true);
shortCutAdd("ctrl+z", ednMsgGuiUndo, "", true);
shortCutAdd("ctrl+shift+z", ednMsgGuiRedo, "", true);
ShortCutAdd("ctrl+l", ednMsgGuiGotoLine, "???", true);
shortCutAdd("ctrl+l", ednMsgGuiGotoLine, "???", true);
ShortCutAdd("ctrl+f", ednMsgGuiSearch, "", true);
ShortCutAdd("F12", ednMsgGuiReloadShader, "", true);
shortCutAdd("ctrl+f", ednMsgGuiSearch, "", true);
shortCutAdd("F12", ednMsgGuiReloadShader, "", true);
ShortCutAdd("ctrl+d", ednMsgGuiCtags, "Jump", true);
shortCutAdd("ctrl+d", ednMsgGuiCtags, "Jump", true);
// Generic event ...
RegisterMultiCast(ednMsgGuiSaveAs);
RegisterMultiCast(ednMsgProperties);
RegisterMultiCast(ednMsgGuiOpen);
registerMultiCast(ednMsgGuiSaveAs);
registerMultiCast(ednMsgProperties);
registerMultiCast(ednMsgGuiOpen);
// to update the title ...
RegisterMultiCast(ednMsgBufferState);
RegisterMultiCast(ednMsgBufferId);
RegisterMultiCast(ednMsgGuiReloadShader);
registerMultiCast(ednMsgBufferState);
registerMultiCast(ednMsgBufferId);
registerMultiCast(ednMsgGuiReloadShader);
}
MainWindows::~MainWindows(void)
{
MainWindows::~MainWindows(void) {
}
@ -283,28 +279,29 @@ const char *const ednEventPopUpFileSelected = "edn-mainWindows-openSelected";
const char *const ednEventPopUpFileSaveAs = "edn-mainWindows-saveAsSelected";
void MainWindows::onReceiveMessage(const ewol::EMessage& _msg)
{
void MainWindows::onReceiveMessage(const ewol::EMessage& _msg) {
ewol::Windows::onReceiveMessage(_msg);
//APPL_INFO("Receive Event from the main windows ... : \"" << eventId << "\" == > data=\"" << data << "\"" );
// open file Section ...
if (_msg.getMessage() == ednMsgGuiOpen) {
widget::fileChooser* tmpWidget = new widget::FileChooser();
widget::FileChooser* tmpWidget = new widget::FileChooser();
tmpWidget->setTitle("Open files ...");
tmpWidget->setValidateLabel("Open");
if (BufferManager::getSelected()!=-1) {
BufferText * myBuffer = BufferManager::get(BufferManager::GetSelected());
/*
BufferText * myBuffer = BufferManager::get(BufferManager::getSelected());
if (NULL!=myBuffer) {
etk::FSNode tmpFile = myBuffer->getFileName();
tmpWidget->setFolder(tmpFile.getNameFolder());
}
*/
}
popUpWidgetPush(tmpWidget);
tmpWidget->registerOnEvent(this, ewolEventFileChooserValidate, ednEventPopUpFileSelected);
} else if (_msg.getMessage() == ednEventPopUpFileSelected) {
APPL_DEBUG("Request opening the file : " << _msg.getData());
SendMultiCast(ednMsgOpenFile, _msg.getData());
sendMultiCast(ednMsgOpenFile, _msg.getData());
} else if (_msg.getMessage() == ednMsgGuiSaveAs) {
if (_msg.getData() == "") {
APPL_ERROR("Null data for Save As file ... ");
@ -316,11 +313,12 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg)
sscanf(_msg.getData().c_str(), "%d", &m_currentSavingAsIdBuffer);
}
if (false == BufferManager::Exist(m_currentSavingAsIdBuffer)) {
if (false == BufferManager::exist(m_currentSavingAsIdBuffer)) {
APPL_ERROR("Request saveAs on non existant Buffer ID=" << m_currentSavingAsIdBuffer);
} else {
/*
BufferText* myBuffer = BufferManager::get(m_currentSavingAsIdBuffer);
widget::fileChooser* tmpWidget = new widget::FileChooser();
widget::FileChooser* tmpWidget = new widget::FileChooser();
if (NULL == tmpWidget) {
APPL_ERROR("Can not allocate widget == > display might be in error");
} else {
@ -338,6 +336,7 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg)
popUpWidgetPush(tmpWidget);
tmpWidget->registerOnEvent(this, ewolEventFileChooserValidate, ednEventPopUpFileSaveAs);
}
*/
}
}
} else if (_msg.getMessage() == ednEventPopUpFileSaveAs) {
@ -346,11 +345,12 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg)
APPL_DEBUG("Request Saving As file : " << tmpData);
BufferManager::get(m_currentSavingAsIdBuffer)->setFileName(tmpData);
SendMultiCast(ednMsgGuiSave, m_currentSavingAsIdBuffer);
sendMultiCast(ednMsgGuiSave, m_currentSavingAsIdBuffer);
} else if( _msg.getMessage() == ednMsgBufferState
|| _msg.getMessage() == ednMsgBufferId) {
// the buffer change we need to update the widget string
BufferText* tmpBuffer = BufferManager::get(BufferManager::GetSelected());
/*
BufferText* tmpBuffer = BufferManager::get(BufferManager::getSelected());
if (NULL != tmpBuffer) {
etk::FSNode compleateName = tmpBuffer->getFileName();
bool isModify = tmpBuffer->isModify();
@ -369,6 +369,7 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg)
m_widgetLabelFileName->setLabel("");
setTitle("edn");
}
*/
return;
// TODO : set the Title ....
} else if (_msg.getMessage() == ednMsgProperties) {
@ -379,18 +380,18 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg)
} else {
tmpWidget->setTitle("Properties");
popUpWidgetPush(tmpWidget);
tmpWidget->MenuAddGroup("Editor");
tmpWidget->menuAddGroup("Editor");
ewol::Widget* tmpSubWidget = new globals::ParameterGlobalsGui();
tmpWidget->MenuAdd("Editor", "", tmpSubWidget);
tmpWidget->MenuAdd("Font & Color", "", NULL);
tmpWidget->MenuAdd("Highlight", "", NULL);
tmpWidget->MenuAddGroup("General");
tmpWidget->MenuAdd("Display", "", NULL);
tmpWidget->menuAdd("Editor", "", tmpSubWidget);
tmpWidget->menuAdd("Font & Color", "", NULL);
tmpWidget->menuAdd("Highlight", "", NULL);
tmpWidget->menuAddGroup("General");
tmpWidget->menuAdd("Display", "", NULL);
tmpSubWidget = new ParameterAboutGui();
tmpWidget->MenuAdd("About", "", tmpSubWidget);
tmpWidget->menuAdd("About", "", tmpSubWidget);
}
} else if (_msg.getMessage() == ednMsgGuiReloadShader) {
ewol::getContext().getResourcesManager().ReLoadResources();
ewol::getContext().getResourcesManager().reLoadResources();
ewol::getContext().forceRedrawAll();
} else if (_msg.getMessage() == ednMsgGuiExit) {
// TODO ...
@ -399,8 +400,7 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg)
return;
}
void MainWindows::onObjectRemove(ewol::EObject * _removeObject)
{
void MainWindows::onObjectRemove(ewol::EObject * _removeObject) {
ewol::Windows::onObjectRemove(_removeObject);
if (m_widgetLabelFileName == _removeObject) {
m_widgetLabelFileName = NULL;

View File

@ -12,13 +12,11 @@
#include <appl/Debug.h>
#include <appl/globalMsg.h>
#include <CodeView.h>
#include <BufferView.h>
#include <BufferManager.h>
#include <ewol/widget/Label.h>
class MainWindows : public ewol::Windows
{
class MainWindows : public ewol::Windows {
private:
int32_t m_currentSavingAsIdBuffer;
widget::Label* m_widgetLabelFileName;

View File

@ -32,10 +32,9 @@ const char* const l_eventForwardCb = "appl-forward-CheckBox";
const char* const l_eventHideBt = "appl-hide-button";
Search::Search(void) :
widget::Sizer(widget::Sizer::modeHori),
m_searchEntry(NULL),
m_replaceEntry(NULL)
{
widget::Sizer(widget::Sizer::modeHori),
m_searchEntry(NULL),
m_replaceEntry(NULL) {
m_forward = false;
// TODO : change the mode of creating interface :
/*
@ -180,19 +179,17 @@ Search::Search(void) :
subWidgetAdd(myButtonImage);
}
RegisterMultiCast(ednMsgGuiSearch);
registerMultiCast(ednMsgGuiSearch);
// basicly hiden ...
Hide();
hide();
}
Search::~Search(void)
{
Search::~Search(void) {
}
void Search::onReceiveMessage(const ewol::EMessage& _msg)
{
void Search::onReceiveMessage(const ewol::EMessage& _msg) {
widget::Sizer::onReceiveMessage(_msg);
//APPL_INFO("Search receive message : \"" << eventId << "\" data=\"" << data << "\"");
if ( _msg.getMessage() == l_eventSearchEntry) {
@ -200,74 +197,73 @@ void Search::onReceiveMessage(const ewol::EMessage& _msg)
} else if ( _msg.getMessage() == l_eventSearchEntryEnter) {
SearchData::setSearch(_msg.getData());
if (true == m_forward) {
SendMultiCast(ednMsgGuiFind, "Previous");
sendMultiCast(ednMsgGuiFind, "Previous");
} else {
SendMultiCast(ednMsgGuiFind, "Next");
sendMultiCast(ednMsgGuiFind, "Next");
}
} else if ( _msg.getMessage() == l_eventReplaceEntry) {
SearchData::setReplace(_msg.getData());
} else if ( _msg.getMessage() == l_eventReplaceEntryEnter) {
SearchData::setReplace(_msg.getData());
SendMultiCast(ednMsgGuiReplace, "Normal");
sendMultiCast(ednMsgGuiReplace, "Normal");
if (true == m_forward) {
SendMultiCast(ednMsgGuiFind, "Previous");
sendMultiCast(ednMsgGuiFind, "Previous");
} else {
SendMultiCast(ednMsgGuiFind, "Next");
sendMultiCast(ednMsgGuiFind, "Next");
}
} else if ( _msg.getMessage() == l_eventSearchBt) {
if (true == m_forward) {
SendMultiCast(ednMsgGuiFind, "Previous");
sendMultiCast(ednMsgGuiFind, "Previous");
} else {
SendMultiCast(ednMsgGuiFind, "Next");
sendMultiCast(ednMsgGuiFind, "Next");
}
} else if ( _msg.getMessage() == l_eventReplaceBt) {
SendMultiCast(ednMsgGuiReplace, "Normal");
sendMultiCast(ednMsgGuiReplace, "Normal");
if (true == m_forward) {
SendMultiCast(ednMsgGuiFind, "Previous");
sendMultiCast(ednMsgGuiFind, "Previous");
} else {
SendMultiCast(ednMsgGuiFind, "Next");
sendMultiCast(ednMsgGuiFind, "Next");
}
} else if ( _msg.getMessage() == l_eventCaseCb) {
if (_msg.getData() == "1") {
if (_msg.getData() == "true") {
SearchData::setCase(false);
} else {
SearchData::setCase(true);
}
} else if ( _msg.getMessage() == l_eventWrapCb) {
if (_msg.getData() == "1") {
if (_msg.getData() == "true") {
SearchData::setWrap(false);
} else {
SearchData::setWrap(true);
}
} else if ( _msg.getMessage() == l_eventForwardCb) {
if (_msg.getData() == "1") {
if (_msg.getData() == "true") {
m_forward = false;
} else {
m_forward = true;
}
} else if ( _msg.getMessage() == l_eventHideBt) {
Hide();
hide();
} else if ( _msg.getMessage() == ednMsgGuiSearch) {
if (true == isHide()) {
Show();
show();
if (m_searchEntry!= NULL) {
m_searchEntry->keepFocus();
}
} else {
if( (m_searchEntry!=NULL && true == m_searchEntry->getFocus())
|| (m_replaceEntry!=NULL && true == m_replaceEntry->getFocus()) ) {
Hide();
hide();
} else if (m_searchEntry!= NULL) {
m_searchEntry->keepFocus();
} else {
Hide();
hide();
}
}
}
}
void Search::onObjectRemove(ewol::EObject * _removeObject)
{
void Search::onObjectRemove(ewol::EObject * _removeObject) {
widget::Sizer::onObjectRemove(_removeObject);
if (_removeObject == m_searchEntry) {
m_searchEntry = NULL;

View File

@ -16,7 +16,7 @@
class Search : public widget::Sizer
{
private:
bool m_forward;
bool m_forward;
widget::Entry * m_searchEntry;
widget::Entry * m_replaceEntry;
public:

View File

@ -10,15 +10,13 @@
#include <appl/Gui/TagFileList.h>
#undef __class__
#define __class__ "TagFileList"
#define __class__ "TagFileList"
extern const char * const applEventCtagsListSelect = "appl-event-ctags-list-select";
extern const char * const applEventCtagsListUnSelect = "appl-event-ctags-list-un-select";
extern const char * const applEventCtagsListValidate = "appl-event-ctags-list-validate";
appl::TagFileList::TagFileList(void)
{
appl::TagFileList::TagFileList(void) {
m_selectedLine = -1;
addEventId(applEventCtagsListSelect);
addEventId(applEventCtagsListValidate);
@ -26,8 +24,7 @@ appl::TagFileList::TagFileList(void)
}
appl::TagFileList::~TagFileList(void)
{
appl::TagFileList::~TagFileList(void) {
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL != m_list[iii]) {
delete(m_list[iii]);
@ -44,8 +41,8 @@ uint32_t appl::TagFileList::getNuberOfColomn(void) {
return 2;
}
bool appl::TagFileList::getTitle(int32_t colomn, etk::UString &myTitle, etk::Color<> &fg, etk::Color<> &bg) {
myTitle = "title";
bool appl::TagFileList::getTitle(int32_t _colomn, etk::UString& _myTitle, etk::Color<>& _fg, etk::Color<>& _bg) {
_myTitle = "title";
return true;
}
@ -53,51 +50,50 @@ uint32_t appl::TagFileList::getNuberOfRaw(void) {
return m_list.size();
}
bool appl::TagFileList::getElement(int32_t colomn, int32_t raw, etk::UString &myTextToWrite, etk::Color<> &fg, etk::Color<> &bg) {
if (raw >= 0 && raw < m_list.size() && NULL != m_list[raw]) {
if (0 == colomn) {
myTextToWrite = etk::UString(m_list[raw]->fileLine);
bool appl::TagFileList::getElement(int32_t _colomn, int32_t _raw, etk::UString& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg) {
if (_raw >= 0 && _raw < m_list.size() && NULL != m_list[_raw]) {
if (0 == _colomn) {
_myTextToWrite = etk::UString(m_list[_raw]->fileLine);
} else {
myTextToWrite = m_list[raw]->filename;
_myTextToWrite = m_list[_raw]->filename;
}
} else {
myTextToWrite = "ERROR";
_myTextToWrite = "ERROR";
}
fg = etk::color::black;
if (raw % 2) {
if (colomn%2 == 0) {
bg = 0xFFFFFF00;
_fg = etk::color::black;
if (_raw % 2) {
if (_colomn%2 == 0) {
_bg = 0xFFFFFF00;
} else {
bg = 0xFFFFFF10;
_bg = 0xFFFFFF10;
}
} else {
if (colomn%2 == 0) {
bg = 0xBFBFBFFF;
if (_colomn%2 == 0) {
_bg = 0xBFBFBFFF;
} else {
bg = 0xCFCFCFFF;
_bg = 0xCFCFCFFF;
}
}
if (m_selectedLine == raw) {
if (colomn%2 == 0) {
bg = 0x8F8FFFFF;
if (m_selectedLine == _raw) {
if (_colomn%2 == 0) {
_bg = 0x8F8FFFFF;
} else {
bg = 0x7F7FFFFF;
_bg = 0x7F7FFFFF;
}
}
return true;
};
bool appl::TagFileList::onItemEvent(int32_t IdInput, ewol::keyEvent::status_te typeEvent, int32_t colomn, int32_t raw, float x, float y)
{
if (typeEvent == ewol::keyEvent::statusSingle) {
EWOL_INFO("Event on List : IdInput=" << IdInput << " colomn=" << colomn << " raw=" << raw );
if (1 == IdInput) {
bool appl::TagFileList::onItemEvent(int32_t _IdInput, ewol::keyEvent::status_te _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y) {
if (_typeEvent == ewol::keyEvent::statusSingle) {
EWOL_INFO("Event on List : IdInput=" << _IdInput << " colomn=" << _colomn << " raw=" << _raw );
if (_IdInput == 1) {
int32_t previousRaw = m_selectedLine;
if (raw > m_list.size() ) {
if (_raw > m_list.size() ) {
m_selectedLine = -1;
} else {
m_selectedLine = raw;
m_selectedLine = _raw;
}
const char * event = applEventCtagsListValidate;
if (previousRaw != m_selectedLine) {
@ -106,7 +102,7 @@ bool appl::TagFileList::onItemEvent(int32_t IdInput, ewol::keyEvent::status_te t
if( m_selectedLine >= 0
&& m_selectedLine < m_list.size()
&& NULL != m_list[m_selectedLine] ) {
generateEventId(event, etk::UString(m_list[raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
generateEventId(event, etk::UString(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
} else {
generateEventId(applEventCtagsListUnSelect);
}
@ -123,11 +119,9 @@ bool appl::TagFileList::onItemEvent(int32_t IdInput, ewol::keyEvent::status_te t
* @brief add a Ctags item on the curent list
* @param[in] file Compleate file name
* @param[in] jump line id
* @return ---
*/
void appl::TagFileList::add(etk::UString& file, int32_t line)
{
appl::TagListElement *tmpFile = new appl::TagListElement(file, line);
void appl::TagFileList::add(etk::UString& _file, int32_t _line) {
appl::TagListElement *tmpFile = new appl::TagListElement(_file, _line);
if (NULL != tmpFile) {
m_list.pushBack(tmpFile);
}

View File

@ -22,11 +22,16 @@ namespace appl {
public:
etk::UString filename;
int32_t fileLine;
TagListElement(etk::UString& file, int32_t line) : filename(file), fileLine(line) {};
~TagListElement(void) {};
TagListElement(etk::UString& _file, int32_t _line) :
filename(_file),
fileLine(_line) {
};
~TagListElement(void) {
};
};
class TagFileList : public widget::List
{
class TagFileList : public widget::List {
private:
int32_t m_selectedLine;
etk::Vector<appl::TagListElement*> m_list;
@ -36,19 +41,21 @@ namespace appl {
// display API :
virtual etk::Color<> getBasicBG(void);
uint32_t getNuberOfColomn(void);
bool getTitle(int32_t colomn, etk::UString &myTitle, etk::Color<> &fg, etk::Color<> &bg);
bool getTitle(int32_t _colomn, etk::UString& _myTitle, etk::Color<>& _fg, etk::Color<>& _bg);
uint32_t getNuberOfRaw(void);
bool getElement(int32_t colomn, int32_t raw, etk::UString &myTextToWrite, etk::Color<> &fg, etk::Color<> &bg);
bool onItemEvent(int32_t IdInput, ewol::keyEvent::status_te typeEvent, int32_t colomn, int32_t raw, float x, float y);
bool getElement(int32_t _colomn, int32_t _raw, etk::UString& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg);
bool onItemEvent(int32_t _IdInput, ewol::keyEvent::status_te _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y);
// derived function
const char * const getObjectType(void) { return "TagFileList"; };
const char * const getObjectType(void) {
return "appl::TagFileList";
};
public:
/**
* @brief add a Ctags item on the curent list
* @param[in] file Compleate file name
* @param[in] jump line id
*/
void add(etk::UString& file, int32_t line);
void add(etk::UString& _file, int32_t _line);
};
};

View File

@ -23,11 +23,11 @@
#undef __class__
#define __class__ "TagFileSelection"
#define __class__ "TagFileSelection"
extern const char * const applEventctagsSelection = "appl-event-ctags-validate";
extern const char * const applEventctagsCancel = "appl-event-ctags-cancel";
extern const char * const applEventctagsSelection = "appl-event-ctags-validate";
extern const char * const applEventctagsCancel = "appl-event-ctags-cancel";
appl::TagFileSelection::TagFileSelection(void)
@ -54,7 +54,7 @@ appl::TagFileSelection::TagFileSelection(void)
if (NULL == mySizerVert) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
mySizerVert->LockExpand(bvec2(true,true));
mySizerVert->lockExpand(bvec2(true,true));
// set it in the pop-up-system :
setSubWidget(mySizerVert);
@ -124,19 +124,17 @@ appl::TagFileSelection::TagFileSelection(void)
}
appl::TagFileSelection::~TagFileSelection(void)
{
appl::TagFileSelection::~TagFileSelection(void) {
}
void appl::TagFileSelection::onReceiveMessage(const ewol::EMessage& _msg)
{
EWOL_INFO("ctags LIST ... : \"" << _msg.getMessage() << "\" == > data=\"" << _msg.GetData() << "\"" );
void appl::TagFileSelection::onReceiveMessage(const ewol::EMessage& _msg) {
EWOL_INFO("ctags LIST ... : " << _msg );
if (_msg.getMessage() == applEventctagsSelection) {
if (m_eventNamed!="") {
generateEventId(applEventctagsSelection, m_eventNamed);
// == > Auto remove ...
AutoDestroy();
autoDestroy();
}
} else if (_msg.getMessage() == applEventCtagsListSelect) {
m_eventNamed = _msg.getData();
@ -146,11 +144,11 @@ void appl::TagFileSelection::onReceiveMessage(const ewol::EMessage& _msg)
} else if (_msg.getMessage() == applEventCtagsListValidate) {
generateEventId(applEventctagsSelection, _msg.getData());
// == > Auto remove ...
AutoDestroy();
autoDestroy();
} else if (_msg.getMessage() == applEventctagsCancel) {
generateEventId(applEventctagsCancel, "");
// == > Auto remove ...
AutoDestroy();
autoDestroy();
}
return;
};
@ -161,15 +159,13 @@ void appl::TagFileSelection::onReceiveMessage(const ewol::EMessage& _msg)
* @param[in] file Compleate file name
* @param[in] jump line id
*/
void appl::TagFileSelection::addCtagsNewItem(etk::UString file, int32_t line)
{
void appl::TagFileSelection::addCtagsNewItem(etk::UString _file, int32_t _line) {
if (NULL != m_listTag) {
m_listTag->add(file, line);
m_listTag->add(_file, _line);
}
}
void appl::TagFileSelection::onObjectRemove(ewol::EObject * _removeObject)
{
void appl::TagFileSelection::onObjectRemove(ewol::EObject * _removeObject) {
// First step call parrent :
widget::PopUp::onObjectRemove(_removeObject);
// second step find if in all the elements ...

View File

@ -17,11 +17,10 @@ extern const char * const applEventctagsSelection;
extern const char * const applEventctagsCancel;
namespace appl {
class TagFileSelection : public widget::PopUp
{
class TagFileSelection : public widget::PopUp {
private:
appl::TagFileList* m_listTag;
etk::UString m_eventNamed;
appl::TagFileList* m_listTag;
etk::UString m_eventNamed;
public:
TagFileSelection(void);
virtual ~TagFileSelection(void);

View File

@ -6,8 +6,6 @@
* @license GPL v3 (see license file)
*/
#include <CodeView.h>
#include <appl/Debug.h>
#include <appl/global.h>
#include <TextViewer.h>
@ -20,35 +18,34 @@
#include <ewol/renderer/EObject.h>
#undef __class__
#define __class__ "TextViewer"
#define __class__ "TextViewer"
appl::TextViewer::TextViewer(const etk::UString& _fontName, int32_t _fontSize) :
m_buffer(NULL),
m_displayText(_fontName, _fontSize),
m_insertMode(false)
{
m_buffer(NULL),
m_displayText(_fontName, _fontSize),
m_insertMode(false) {
setCanHaveFocus(true);
RegisterMultiCast(ednMsgBufferId);
RegisterMultiCast(ednMsgGuiCopy);
RegisterMultiCast(ednMsgGuiPaste);
RegisterMultiCast(ednMsgGuiCut);
RegisterMultiCast(ednMsgGuiRedo);
RegisterMultiCast(ednMsgGuiUndo);
RegisterMultiCast(ednMsgGuiRm);
RegisterMultiCast(ednMsgGuiSelect);
RegisterMultiCast(ednMsgGuiChangeCharset);
RegisterMultiCast(ednMsgGuiFind);
RegisterMultiCast(ednMsgGuiReplace);
RegisterMultiCast(ednMsgGuiGotoLine);
registerMultiCast(ednMsgBufferId);
registerMultiCast(ednMsgGuiCopy);
registerMultiCast(ednMsgGuiPaste);
registerMultiCast(ednMsgGuiCut);
registerMultiCast(ednMsgGuiRedo);
registerMultiCast(ednMsgGuiUndo);
registerMultiCast(ednMsgGuiRm);
registerMultiCast(ednMsgGuiSelect);
registerMultiCast(ednMsgGuiChangeCharset);
registerMultiCast(ednMsgGuiFind);
registerMultiCast(ednMsgGuiReplace);
registerMultiCast(ednMsgGuiGotoLine);
setLimitScrolling(0.2);
ShortCutAdd("ctrl+w", ednMsgGuiRm, "Line");
ShortCutAdd("ctrl+shift+w", ednMsgGuiRm, "Paragraph");
ShortCutAdd("ctrl+x", ednMsgGuiCut, "STD");
ShortCutAdd("ctrl+c", ednMsgGuiCopy, "STD");
ShortCutAdd("ctrl+v", ednMsgGuiPaste, "STD");
ShortCutAdd("ctrl+a", ednMsgGuiSelect, "ALL");
ShortCutAdd("ctrl+shift+a", ednMsgGuiSelect, "NONE");
shortCutAdd("ctrl+w", ednMsgGuiRm, "Line");
shortCutAdd("ctrl+shift+w", ednMsgGuiRm, "Paragraph");
shortCutAdd("ctrl+x", ednMsgGuiCut, "STD");
shortCutAdd("ctrl+c", ednMsgGuiCopy, "STD");
shortCutAdd("ctrl+v", ednMsgGuiPaste, "STD");
shortCutAdd("ctrl+a", ednMsgGuiSelect, "ALL");
shortCutAdd("ctrl+shift+a", ednMsgGuiSelect, "NONE");
// by default we load an example object:
@ -61,34 +58,27 @@ appl::TextViewer::TextViewer(const etk::UString& _fontName, int32_t _fontSize) :
}
appl::TextViewer::~TextViewer(void)
{
appl::TextViewer::~TextViewer(void) {
}
bool appl::TextViewer::calculateMinSize(void)
{
bool appl::TextViewer::calculateMinSize(void) {
m_minSize.setValue(50,50);
return true;
}
void appl::TextViewer::calculateMaxSize(void)
{
void appl::TextViewer::calculateMaxSize(void) {
m_maxSize.setX(256);
m_maxSize.setY(256);
}
void appl::TextViewer::onDraw(void)
{
void appl::TextViewer::onDraw(void) {
m_displayDrawing.draw();
m_displayText.draw();
WidgetScrooled::onDraw();
}
void appl::TextViewer::onRegenerateDisplay(void)
{
void appl::TextViewer::onRegenerateDisplay(void) {
if (false == needRedraw()) {
return;
}
@ -157,7 +147,7 @@ void appl::TextViewer::onRegenerateDisplay(void)
m_displayText.setPos(positionCurentDisplay);
continue;
}
m_buffer->Expand(countColomn, currentValue, stringToDisplay);
m_buffer->expand(countColomn, currentValue, stringToDisplay);
//APPL_DEBUG("display : '" << currentValue << "' == > '" << stringToDisplay << "'");
//m_displayText.setPos(positionCurentDisplay);
for (esize_t kkk=0; kkk<stringToDisplay.size(); ++kkk) {
@ -182,23 +172,19 @@ void appl::TextViewer::onRegenerateDisplay(void)
WidgetScrooled::onRegenerateDisplay();
}
bool appl::TextViewer::onEventEntry(const ewol::EventEntry& _event)
{
bool appl::TextViewer::onEventEntry(const ewol::EventEntry& _event) {
if (m_buffer == NULL) {
return false;
}
// just forward event == > manage directly in the buffer
if (m_buffer->onEventEntry(_event) == true) {
if (m_buffer->onEventEntry(_event, m_displayText) == true) {
markToRedraw();
return true;
}
return false;
}
bool appl::TextViewer::onEventInput(const ewol::EventInput& _event)
{
bool appl::TextViewer::onEventInput(const ewol::EventInput& _event) {
vec2 relativePos = relativePosition(_event.getPos());
if (m_buffer != NULL) {
@ -207,42 +193,34 @@ bool appl::TextViewer::onEventInput(const ewol::EventInput& _event)
return true;
}
void appl::TextViewer::onEventClipboard(ewol::clipBoard::clipboardListe_te _clipboardID)
{
void appl::TextViewer::onEventClipboard(ewol::clipBoard::clipboardListe_te _clipboardID) {
if (m_buffer != NULL) {
//tmpBuffer->Paste(_clipboardID);
}
markToRedraw();
}
void appl::TextViewer::onReceiveMessage(const ewol::EMessage& _msg)
{
void appl::TextViewer::onReceiveMessage(const ewol::EMessage& _msg) {
// force redraw of the widget
markToRedraw();
}
void appl::TextViewer::onGetFocus(void)
{
ShowKeyboard();
void appl::TextViewer::onGetFocus(void) {
showKeyboard();
APPL_INFO("Focus - In");
}
void appl::TextViewer::onLostFocus(void)
{
HideKeyboard();
void appl::TextViewer::onLostFocus(void) {
hideKeyboard();
APPL_INFO("Focus - out");
}
void appl::TextViewer::setFontSize(int32_t _size)
{
void appl::TextViewer::setFontSize(int32_t _size) {
m_displayText.setFontSize(_size);
setScrollingSize(_size*3.0*1.46); // 1.46 is a magic number ...
}
void appl::TextViewer::setFontName(const etk::UString& _fontName)
{
void appl::TextViewer::setFontName(const etk::UString& _fontName) {
m_displayText.setFontName(_fontName);
}

View File

@ -10,7 +10,6 @@
#define __APPL_TEXT_VIEWER_H__
#include <appl/Debug.h>
#include <CodeView.h>
#include <appl/Buffer/Buffer.h>
#include <appl/globalMsg.h>
@ -18,17 +17,15 @@
#include <ewol/compositing/Text.h>
#include <ewol/compositing/Drawing.h>
namespace appl
{
class TextViewer : public widget::WidgetScrooled
{
namespace appl {
class TextViewer : public widget::WidgetScrooled {
public:
TextViewer(const etk::UString& _fontName="", int32_t _fontSize=-1);
virtual ~TextViewer(void);
private:
appl::Buffer* m_buffer; //!< pointer on the current buffer to display (can be null if the buffer is remover or in state of changing buffer)
ewol::Text m_displayText; //!< Text display properties.
ewol::drawing m_displayDrawing; //!< Other diaplay requested.
ewol::Drawing m_displayDrawing; //!< Other diaplay requested.
public:
void setFontSize(int32_t _size);
void setFontName(const etk::UString& _fontName);

View File

@ -16,20 +16,16 @@
#define __class__ "Highlight"
void Highlight::ParseRules(exml::Element* child, etk::Vector<HighlightPattern*> &mListPatern, int32_t level)
{
void Highlight::parseRules(exml::Element* _child, etk::Vector<HighlightPattern*>& _mListPatern, int32_t _level) {
// Create the patern ...
HighlightPattern *myPattern = new HighlightPattern();
// parse under Element
myPattern->ParseRules(child, level);
myPattern->parseRules(_child, _level);
// add element in the list
mListPatern.pushBack(myPattern);
_mListPatern.pushBack(myPattern);
}
Highlight::Highlight(const etk::UString& _xmlFilename)
{
Highlight::Highlight(const etk::UString& _xmlFilename) {
exml::Document doc;
if (doc.load(_xmlFilename) == false) {
APPL_ERROR(" can not load file XML : " << _xmlFilename);
@ -63,10 +59,10 @@ Highlight::Highlight(const etk::UString& _xmlFilename)
continue;
}
if (passChild->getValue() != "rule") {
APPL_ERROR("(l "<< passChild->getPos() << ") node not suported : \""<< passChild->GetValue() << "\" must be [rule]" );
APPL_ERROR("(l "<< passChild->getPos() << ") node not suported : \""<< passChild->getValue() << "\" must be [rule]" );
continue;
}
ParseRules(passChild, m_listHighlightPass1, level1++);
parseRules(passChild, m_listHighlightPass1, level1++);
}
} else if (child->getValue() == "pass2") {
// get sub Nodes ...
@ -76,19 +72,18 @@ Highlight::Highlight(const etk::UString& _xmlFilename)
continue;
}
if (passChild->getValue() != "rule") {
APPL_ERROR("(l "<< passChild->getPos() << ") node not suported : \""<< passChild->GetValue() << "\" must be [rule]" );
APPL_ERROR("(l "<< passChild->getPos() << ") node not suported : \""<< passChild->getValue() << "\" must be [rule]" );
continue;
}
ParseRules(passChild, m_listHighlightPass2, level2++);
parseRules(passChild, m_listHighlightPass2, level2++);
}
} else {
APPL_ERROR("(l "<< child->getPos() << ") node not suported : \""<< child->GetValue() << "\" must be [ext,pass1,pass2]" );
APPL_ERROR("(l "<< child->getPos() << ") node not suported : \""<< child->getValue() << "\" must be [ext,pass1,pass2]" );
}
}
}
Highlight::~Highlight(void)
{
Highlight::~Highlight(void) {
int32_t i;
// clean all Element
for (i=0; i< m_listHighlightPass1.size(); i++) {
@ -103,23 +98,21 @@ Highlight::~Highlight(void)
m_listExtentions.clear();
}
void Highlight::ReloadColor(void)
{
void Highlight::reloadColor(void) {
int32_t i;
for (i=0; i< m_listHighlightPass1.size(); i++) {
if (NULL != m_listHighlightPass1[i]) {
m_listHighlightPass1[i]->ReloadColor();
m_listHighlightPass1[i]->reloadColor();
}
}
for (i=0; i< m_listHighlightPass2.size(); i++) {
if (NULL != m_listHighlightPass2[i]) {
m_listHighlightPass2[i]->ReloadColor();
m_listHighlightPass2[i]->reloadColor();
}
}
}
bool Highlight::hasExtention(const etk::UString& _ext)
{
bool Highlight::hasExtention(const etk::UString& _ext) {
for (int32_t iii=0; iii<m_listExtentions.size(); iii++) {
if (_ext == m_listExtentions[iii] ) {
return true;
@ -128,8 +121,7 @@ bool Highlight::hasExtention(const etk::UString& _ext)
return false;
}
bool Highlight::fileNameCompatible(etk::FSNode &_fileName)
{
bool Highlight::fileNameCompatible(etk::FSNode &_fileName) {
etk::UString extention;
if (true == _fileName.fileHasExtention() ) {
extention = "*.";
@ -148,8 +140,7 @@ bool Highlight::fileNameCompatible(etk::FSNode &_fileName)
}
void Highlight::display(void)
{
void Highlight::display(void) {
APPL_INFO("List of ALL Highlight : ");
for (int32_t iii=0; iii< m_listExtentions.size(); iii++) {
APPL_INFO(" Extention : " << iii << " : " << m_listExtentions[iii] );
@ -169,12 +160,11 @@ void Highlight::display(void)
// TODO : Celui qui appelle suprime des element pour rien ... Enfin c'est pas trègrave... Il suffirait juste de suprimer celuis d'avant si il n'est pas terminer...
void Highlight::Parse(int32_t start,
void Highlight::parse(int32_t start,
int32_t stop,
etk::Vector<colorInformation_ts> &metaData,
int32_t addingPos,
etk::Buffer &buffer)
{
etk::Buffer &buffer) {
if (0 > addingPos) {
addingPos = 0;
}
@ -198,7 +188,7 @@ void Highlight::Parse(int32_t start,
if (metaData[kkk].beginStart <= resultat.endStop) {
// remove element
//APPL_INFO("Erase element=" << kkk);
metaData.EraseLen(kkk, kkk+1);
metaData.eraseLen(kkk, kkk+1);
// Increase the end of search
if (kkk < metaData.size()) {
// just befor the end of the next element
@ -233,11 +223,10 @@ void Highlight::Parse(int32_t start,
* @brief second pass of the hightlight
*
*/
void Highlight::Parse2(int32_t start,
void Highlight::parse2(int32_t start,
int32_t stop,
etk::Vector<colorInformation_ts> &metaData,
etk::Buffer &buffer)
{
etk::Buffer &buffer) {
//APPL_DEBUG("Parse element 0 => " << m_listHighlightPass2.size() << " == > position search: (" << start << "," << stop << ")" );
int32_t elementStart = start;
int32_t elementStop = stop;

View File

@ -14,14 +14,13 @@ class Highlight;
class HighlightPattern;
extern "C" {
typedef struct
{
int32_t beginStart;
int32_t beginStop;
int32_t endStart;
int32_t endStop;
bool notEnded;
HighlightPattern * patern; // pointer on class :
typedef struct {
int32_t beginStart;
int32_t beginStop;
int32_t endStart;
int32_t endStop;
bool notEnded;
HighlightPattern* patern; // pointer on class :
} colorInformation_ts;
}
@ -39,18 +38,18 @@ class Highlight {
bool hasExtention(const etk::UString& _ext);
bool fileNameCompatible(etk::FSNode &_fileName);
void display(void);
void ReloadColor(void);
void Parse(int32_t start,
void reloadColor(void);
void parse(int32_t start,
int32_t stop,
etk::Vector<colorInformation_ts> &metaData,
int32_t addingPos,
etk::Buffer &buffer);
void Parse2(int32_t start,
void parse2(int32_t start,
int32_t stop,
etk::Vector<colorInformation_ts> &metaData,
etk::Buffer &buffer);
private:
void ParseRules(exml::Element* child, etk::Vector<HighlightPattern*> &mListPatern, int32_t level);
void parseRules(exml::Element* child, etk::Vector<HighlightPattern*> &mListPatern, int32_t level);
etk::UString m_styleName; //!< curent style name (like "c++" or "c" or "script Bash")
etk::Vector<etk::UString> m_listExtentions; //!< List of possible extention for this high-light, like : ".c", ".cpp", ".h"
etk::Vector<HighlightPattern*> m_listHighlightPass1; //!< List of ALL hightlight modules (pass 1 == > when we load and wride data on the buffer)

View File

@ -13,12 +13,11 @@
#include <ewol/renderer/EObjectManager.h>
#undef __class__
#define __class__ "HighlightManager"
#define __class__ "HighlightManager"
class localClassHighlightManager: public ewol::EObject
{
class localClassHighlightManager: public ewol::EObject {
private:
etk::Vector<Highlight*> listHighlight; //!< List of ALL hightlight modules
etk::Vector<Highlight*> listHighlight; //!< List of ALL hightlight modules
public:
// Constructeur
localClassHighlightManager(void) {
@ -38,14 +37,12 @@ class localClassHighlightManager: public ewol::EObject
};
// herited function
const char * const getObjectType(void)
{
const char * const getObjectType(void) {
return "ApplHighlightManager";
}
// herited function
virtual void onReceiveMessage(const ewol::EMessage& _msg)
{
virtual void onReceiveMessage(const ewol::EMessage& _msg) {
/*
switch (id)
{
@ -61,31 +58,27 @@ class localClassHighlightManager: public ewol::EObject
*/
}
Highlight* get(etk::FSNode &fileName)
{
Highlight* get(etk::FSNode& _fileName) {
int32_t i;
for (i=0; i<listHighlight.size(); i++) {
if (true == listHighlight[i]->fileNameCompatible(fileName) ) {
for (i=0; i<listHighlight.size(); ++i) {
if (true == listHighlight[i]->fileNameCompatible(_fileName) ) {
return listHighlight[i];
}
}
return NULL;
}
bool Exist(etk::FSNode &fileName)
{
if (NULL != get(fileName) ) {
bool exist(etk::FSNode& _fileName) {
if (NULL != get(_fileName) ) {
return true;
}
return false;
}
void loadLanguages(void)
{
void loadLanguages(void) {
etk::FSNode myFile("DATA:languages/");
// get the subfolder list :
etk::Vector<etk::FSNode *> list = myFile.FolderGetSubList(false, true, false,false);
etk::Vector<etk::FSNode *> list = myFile.folderGetSubList(false, true, false,false);
for ( int32_t iii=0 ; iii<list.size() ; iii++ ) {
if (NULL!=list[iii]) {
if (list[iii]->getNodeType() == etk::FSN_FOLDER) {
@ -98,15 +91,12 @@ class localClassHighlightManager: public ewol::EObject
}
//myHightline->display();
}
};
static localClassHighlightManager * localManager = NULL;
void HighlightManager::init(void)
{
void HighlightManager::init(void) {
if (NULL != localManager) {
APPL_ERROR("HighlightManager == > already exist, just unlink the previous ...");
localManager = NULL;
@ -118,8 +108,7 @@ void HighlightManager::init(void)
}
}
void HighlightManager::UnInit(void)
{
void HighlightManager::unInit(void) {
if (NULL == localManager) {
APPL_ERROR("HighlightManager == > request UnInit, but does not exist ...");
return;
@ -128,28 +117,25 @@ void HighlightManager::UnInit(void)
localManager = NULL;
}
void HighlightManager::loadLanguages(void)
{
void HighlightManager::loadLanguages(void) {
if (NULL == localManager) {
return;
}
localManager->loadLanguages();
}
Highlight* HighlightManager::get(etk::FSNode &fileName)
{
Highlight* HighlightManager::get(etk::FSNode& _fileName) {
if (NULL == localManager) {
return NULL;
}
return localManager->get(fileName);
return localManager->get(_fileName);
}
bool HighlightManager::Exist(etk::FSNode &fileName)
{
bool HighlightManager::exist(etk::FSNode& _fileName) {
if (NULL == localManager) {
return false;
}
return localManager->Exist(fileName);
return localManager->exist(_fileName);
}

View File

@ -16,11 +16,11 @@
#include <ewol/widget/Widget.h>
namespace HighlightManager{
void init(void);
void UnInit(void);
void loadLanguages(void);
void init(void);
void unInit(void);
void loadLanguages(void);
Highlight* get(etk::FSNode &fileName);
bool Exist(etk::FSNode &fileName);
bool exist(etk::FSNode &fileName);
};

View File

@ -11,14 +11,10 @@
#include <HighlightPattern.h>
#include <ColorizeManager.h>
#undef __class__
#define __class__ "HighlightPattern"
#define __class__ "HighlightPattern"
HighlightPattern::HighlightPattern(void)
{
HighlightPattern::HighlightPattern(void) {
m_haveStopPatern = false;
m_multiline = false;
m_color = ColorizeManager::get("normal");
@ -27,64 +23,46 @@ HighlightPattern::HighlightPattern(void)
m_escapeChar = 0;
}
HighlightPattern::~HighlightPattern(void)
{
HighlightPattern::~HighlightPattern(void) {
delete(m_regExpStart);
delete(m_regExpStop);
}
void HighlightPattern::setPaternStart(etk::UString &regExp)
{
m_regExpStart->setRegExp(regExp);
void HighlightPattern::setPaternStart(etk::UString& _regExp) {
m_regExpStart->setRegExp(_regExp);
}
void HighlightPattern::setPaternStop(etk::UString &regExp)
{
if (regExp.size() != 0) {
m_regExpStop->setRegExp(regExp);
void HighlightPattern::setPaternStop(etk::UString& _regExp) {
if (_regExp.size() != 0) {
m_regExpStop->setRegExp(_regExp);
m_haveStopPatern = true;
} else {
m_haveStopPatern = false;
}
}
void HighlightPattern::setEscapeChar(etk::UString &EscapeChar)
{
if (EscapeChar.size()>0) {
m_escapeChar = EscapeChar[0];
void HighlightPattern::setEscapeChar(etk::UString& _EscapeChar) {
if (_EscapeChar.size()>0) {
m_escapeChar = _EscapeChar[0];
} else {
m_escapeChar = 0;
}
}
void HighlightPattern::setColor(etk::UString &colorName)
{
m_colorName = colorName;
void HighlightPattern::setColor(etk::UString& _colorName) {
m_colorName = _colorName;
m_color = ColorizeManager::get(m_colorName);
}
bool HighlightPattern::isEnable(void)
{
bool HighlightPattern::isEnable(void) {
return true;
}
void HighlightPattern::ReloadColor(void)
{
void HighlightPattern::reloadColor(void) {
m_color = ColorizeManager::get(m_colorName);
}
/**
* @brief
*
* @param[in,out]
*
* @eturn
*
*/
void HighlightPattern::display(void)
{
void HighlightPattern::display(void) {
/*
APPL_INFO("patern : \"" << m_paternName << "\" level=" << m_level );
APPL_INFO(" == > colorName \"" << m_colorName << "\"");
@ -107,8 +85,8 @@ void HighlightPattern::display(void)
m_subPatern[i]->display();
}
}
void HighlightPattern::ParseRules(exml::Element *child, int32_t level)
{
void HighlightPattern::parseRules(exml::Element *child, int32_t level) {
//--------------------------------------------------------------------------------------------
/*
<rule name="my preprocesseur">
@ -191,8 +169,7 @@ void HighlightPattern::ParseRules(exml::Element *child, int32_t level)
* @return HLP_FIND_OK_NO_END Xe find a partial pattern (missing end)
* @return HLP_FIND_ERROR Not find the pattern
*/
resultFind_te HighlightPattern::find(int32_t start, int32_t stop, colorInformation_ts &resultat, etk::Buffer &buffer)
{
resultFind_te HighlightPattern::find(int32_t start, int32_t stop, colorInformation_ts &resultat, etk::Buffer &buffer) {
//APPL_DEBUG(" try to find the element");
resultat.beginStart = -1;
resultat.beginStop = -1;
@ -203,22 +180,22 @@ resultFind_te HighlightPattern::find(int32_t start, int32_t stop, colorInformati
// when we have only one element :
if (false == m_haveStopPatern) {
if (true == m_regExpStart->ProcessOneElement(buffer, start, stop)) {
resultat.beginStart = m_regExpStart->Start();
resultat.beginStop = m_regExpStart->Stop();
resultat.endStart = m_regExpStart->Start();
resultat.endStop = m_regExpStart->Stop();
if (true == m_regExpStart->processOneElement(buffer, start, stop)) {
resultat.beginStart = m_regExpStart->start();
resultat.beginStop = m_regExpStart->stop();
resultat.endStart = m_regExpStart->start();
resultat.endStop = m_regExpStart->stop();
return HLP_FIND_OK;
}
//APPL_DEBUG("NOT find hightlightpatern ...");
} else {
// try while we find the first element
if (true == m_regExpStart->ProcessOneElement(buffer, start, stop, m_escapeChar)) {
resultat.beginStart = m_regExpStart->Start();
resultat.beginStop = m_regExpStart->Stop();
if (true == m_regExpStop->Process(buffer, resultat.beginStop, stop, m_escapeChar)) {
resultat.endStart = m_regExpStop->Start();
resultat.endStop = m_regExpStop->Stop();
if (true == m_regExpStart->processOneElement(buffer, start, stop, m_escapeChar)) {
resultat.beginStart = m_regExpStart->start();
resultat.beginStop = m_regExpStart->stop();
if (true == m_regExpStop->process(buffer, resultat.beginStop, stop, m_escapeChar)) {
resultat.endStart = m_regExpStop->start();
resultat.endStop = m_regExpStop->stop();
return HLP_FIND_OK;
} else {
resultat.endStart = stop+1;

View File

@ -26,7 +26,6 @@ typedef enum {
HLP_FIND_OK_NO_END,
}resultFind_te;
class HighlightPattern;
class HighlightPattern {
public:
@ -34,38 +33,50 @@ class HighlightPattern {
HighlightPattern(void);
~HighlightPattern(void);
void setName(etk::UString &name) { m_paternName = name;};
etk::UString getName(void) { return m_paternName;};
void setName(etk::UString& _name) {
m_paternName = _name;
};
etk::UString getName(void) {
return m_paternName;
};
void setPaternStart(etk::UString &regExp);
void setPaternStop(etk::UString &regExp);
void setColor(etk::UString &colorName);
void setEscapeChar(etk::UString &EscapeChar);
void setMultiline(bool enable) { m_multiline = enable; };
void setPaternStart(etk::UString& _regExp);
void setPaternStop(etk::UString& _regExp);
void setColor(etk::UString& _colorName);
void setEscapeChar(etk::UString& _EscapeChar);
void setMultiline(bool _enable) {
m_multiline = _enable;
};
void setLevel(int32_t newLevel) { m_level = newLevel; };
int32_t getLevel(void) { return m_level; };
void setLevel(int32_t _newLevel) {
m_level = _newLevel;
};
int32_t getLevel(void) {
return m_level;
};
bool isEnable(void);
void display(void);
resultFind_te find(int32_t start, int32_t stop, colorInformation_ts &resultat, etk::Buffer &buffer);
Colorize * getColor(void) { return m_color; };
void ParseRules(exml::Element *child, int32_t level);
bool isEnable(void);
void display(void);
resultFind_te find(int32_t _start, int32_t _stop, colorInformation_ts& _resultat, etk::Buffer& _buffer);
Colorize* getColor(void) {
return m_color;
};
void parseRules(exml::Element* _child, int32_t _level);
void ReloadColor(void);
void reloadColor(void);
private:
int32_t m_level; //!< Level of the pattern == > this is to overwrite next pattern when we create an higher ....
etk::UString m_paternName; //!< Current style name (like "c++" or "c" or "script Bash")
etk::UString m_colorName; //!< Current color name
Colorize * m_color; //!< Link to the color manager
etk::RegExp<etk::Buffer> * m_regExpStart; //!< Start of Regular expression
etk::RegExp<etk::Buffer> * m_regExpStop; //!< Stop of Regular Expression
bool m_haveStopPatern; //!< Stop patern presence
bool m_multiline; //!< The patern is multiline
etk::UniChar m_escapeChar; //!< Escape char to prevent exeit of patern ....
etk::Vector<HighlightPattern *> m_subPatern; //!< Under patern of this one
// etk::Vector<HighlightPattern *> m_subColor; //!< Under Color in the start RegExp ...
int32_t m_level; //!< Level of the pattern == > this is to overwrite next pattern when we create an higher ....
etk::UString m_paternName; //!< Current style name (like "c++" or "c" or "script Bash")
etk::UString m_colorName; //!< Current color name
Colorize* m_color; //!< Link to the color manager
etk::RegExp<etk::Buffer>* m_regExpStart; //!< Start of Regular expression
etk::RegExp<etk::Buffer>* m_regExpStop; //!< Stop of Regular Expression
bool m_haveStopPatern; //!< Stop patern presence
bool m_multiline; //!< The patern is multiline
etk::UniChar m_escapeChar; //!< Escape char to prevent exeit of patern ....
etk::Vector<HighlightPattern*> m_subPatern; //!< Under patern of this one
// etk::Vector<HighlightPattern*> m_subColor; //!< Under Color in the start RegExp ...
};
#endif

View File

@ -18,25 +18,23 @@
// TODO : The line ID is no more stored in the file system (FSNode) ...
#undef __class__
#define __class__ "CTagsManager"
#define __class__ "CTagsManager"
class CTagsManager: public ewol::EObject
{
class CTagsManager: public ewol::EObject {
public:
// Constructeur
CTagsManager(void);
~CTagsManager(void);
const char * const getObjectType(void)
{
const char * const getObjectType(void) {
return "CTagsManager";
};
void onReceiveMessage(const ewol::EMessage& _msg);
int32_t m_currentSelectedID;
void loadTagFile(void);
int32_t MultipleJump(void);
void JumpTo(void);
int32_t multipleJump(void);
void jumpTo(void);
void printTag(const tagEntry *entry);
etk::UString getFolder(etk::UString &inputString);
etk::UString m_tagFolderBase;
@ -45,12 +43,11 @@ class CTagsManager: public ewol::EObject
// history system
int32_t m_historyPos;
etk::Vector<etk::FSNode*> m_historyList;
void RegisterHistory(void);
void registerHistory(void);
};
static CTagsManager* s_elementPointer = NULL;
void cTagsManager::init(void)
{
void cTagsManager::init(void) {
if (NULL != s_elementPointer) {
s_elementPointer = NULL;
EWOL_WARNING("Ctags manager already instanciate ... == > restart IT (can have memory leek ...)");
@ -60,8 +57,7 @@ void cTagsManager::init(void)
EWOL_ERROR("Ctags manager error to instanciate ...");
}
}
void cTagsManager::UnInit(void)
{
void cTagsManager::unInit(void) {
if (NULL != s_elementPointer) {
delete(s_elementPointer);
s_elementPointer = NULL;
@ -70,38 +66,18 @@ void cTagsManager::UnInit(void)
}
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
CTagsManager::CTagsManager(void)
{
CTagsManager::CTagsManager(void) {
m_tagFilename = "";
m_tagFolderBase = "";
m_ctagFile = NULL;
m_historyPos = 0;
RegisterMultiCast(ednMsgGuiCtags);
RegisterMultiCast(ednMsgBufferId);
RegisterMultiCast(ednMsgCtagsLoadFile);
registerMultiCast(ednMsgGuiCtags);
registerMultiCast(ednMsgBufferId);
registerMultiCast(ednMsgCtagsLoadFile);
EWOL_INFO("Ctags manager (INIT)");
}
/**
* @brief
*
* @param[in,out] ---
*
* @return ---
*
*/
CTagsManager::~CTagsManager(void)
{
CTagsManager::~CTagsManager(void) {
EWOL_INFO("Ctags manager (Un-INIT)");
if(0 != m_historyList.size()) {
for (int32_t iii=0; iii< m_historyList.size(); iii++) {
@ -113,8 +89,7 @@ CTagsManager::~CTagsManager(void)
const char * ednEventPopUpCtagsLoadFile = "edn-event-load-ctags";
void CTagsManager::onReceiveMessage(const ewol::EMessage& _msg)
{
void CTagsManager::onReceiveMessage(const ewol::EMessage& _msg) {
//EWOL_INFO("ctags manager event ... : \"" << eventId << "\" == > data=\"" << data << "\"" );
if (_msg.getMessage() == ednMsgBufferId) {
//m_currentSelectedID = dataID;
@ -129,7 +104,7 @@ void CTagsManager::onReceiveMessage(const ewol::EMessage& _msg)
} else if (_msg.getMessage() == ednMsgGuiCtags) {
if (_msg.getData() == "Load") {
APPL_INFO("Request opening ctag file");
widget::fileChooser* tmpWidget = new widget::FileChooser();
widget::FileChooser* tmpWidget = new widget::FileChooser();
if (NULL == tmpWidget) {
APPL_ERROR("Can not allocate widget == > display might be in error");
} else {
@ -142,12 +117,12 @@ void CTagsManager::onReceiveMessage(const ewol::EMessage& _msg)
APPL_INFO("Request re-load ctag file");
loadTagFile();
} else if (_msg.getData() == "Jump") {
JumpTo();
jumpTo();
} else if (_msg.getData() == "Back") {
if (m_historyList.size() > 0) {
int32_t id = m_historyList.size()-1;
SendMultiCast(ednMsgOpenFile, m_historyList[id]->getName() );
SendMultiCast(ednMsgGuiGotoLine, 0);// TODO : m_historyList[id]->getLineNumber());
sendMultiCast(ednMsgOpenFile, m_historyList[id]->getName() );
sendMultiCast(ednMsgGuiGotoLine, 0);// TODO : m_historyList[id]->getLineNumber());
// remove element ....
delete(m_historyList[id]);
m_historyList[id]=NULL;
@ -158,22 +133,20 @@ void CTagsManager::onReceiveMessage(const ewol::EMessage& _msg)
}
} else if (_msg.getMessage() == applEventctagsSelection) {
// save the current file in the history
RegisterHistory();
registerHistory();
// parse the input data
char tmp[4096];
int32_t lineID;
sscanf(_msg.getData().c_str(), "%d:%s", &lineID, tmp);
// generate envents
SendMultiCast(ednMsgOpenFile, tmp);
SendMultiCast(ednMsgGuiGotoLine, lineID - 1);
sendMultiCast(ednMsgOpenFile, tmp);
sendMultiCast(ednMsgGuiGotoLine, lineID - 1);
}
}
void CTagsManager::loadTagFile(void)
{
void CTagsManager::loadTagFile(void) {
tagFileInfo info;
// close previous tag file
if (NULL != m_ctagFile) {
tagsClose(m_ctagFile);
@ -192,11 +165,10 @@ void CTagsManager::loadTagFile(void)
}
}
void CTagsManager::RegisterHistory(void)
{
void CTagsManager::registerHistory(void) {
APPL_INFO("save curent filename and position : ");
int32_t currentSelected = BufferManager::getSelected();
/*
BufferText* tmpBuf = BufferManager::get(currentSelected);
if (NULL != tmpBuf) {
etk::FSNode * bufferFilename = new etk::FSNode();
@ -204,11 +176,10 @@ void CTagsManager::RegisterHistory(void)
// TODO : bufferFilename->setLineNumber(tmpBuf->getCurrentLine());
m_historyList.pushBack(bufferFilename);
}
*/
}
void CTagsManager::JumpTo(void)
{
void CTagsManager::jumpTo(void) {
if (NULL != m_ctagFile) {
// get the middle button of the clipboard == > represent the current selection ...
etk::UString data = ewol::clipBoard::get(ewol::clipBoard::clipboardSelection);
@ -246,10 +217,10 @@ void CTagsManager::JumpTo(void)
tmpWidget->registerOnEvent(this, applEventctagsSelection);
}
} else {
RegisterHistory();
registerHistory();
APPL_INFO(" OPEN the TAG file Destination : " << tmpFile );
SendMultiCast(ednMsgOpenFile, myfile.getName());
SendMultiCast(ednMsgGuiGotoLine, lineID - 1);
sendMultiCast(ednMsgOpenFile, myfile.getName());
sendMultiCast(ednMsgGuiGotoLine, lineID - 1);
}
} else {
APPL_INFO("no tag find ...");
@ -258,8 +229,7 @@ void CTagsManager::JumpTo(void)
}
void CTagsManager::printTag(const tagEntry *entry)
{
void CTagsManager::printTag(const tagEntry *entry) {
#if 1
APPL_INFO("find Tag file : name=\"" << entry->name << "\" in file=\"" << entry->file
<< "\" at line="<< (int32_t)entry->address.lineNumber);

View File

@ -16,10 +16,9 @@
#define MAX_REG_EXP_SEARCH (1024)
namespace cTagsManager
{
namespace cTagsManager {
void init(void);
void UnInit(void);
void unInit(void);
};

View File

@ -16,10 +16,9 @@
//#include <ewol/UserConfig.h>
#undef __class__
#define __class__ "globals"
#define __class__ "globals"
class myParamGlobal : public ewol::EObject
{
class myParamGlobal : public ewol::EObject {
public:
static const char * const configEOL;
static const char * const configAutoIndent;
@ -44,8 +43,7 @@ class myParamGlobal : public ewol::EObject
registerConfig(configShowSpaceChar, "bool", NULL, "Display the space char");
}
bool onSetConfig(const ewol::EConfig& _conf)
{
bool onSetConfig(const ewol::EConfig& _conf) {
// Not set the EObject node parameter (name == > not change ...)
if (_conf.getConfig() == configEOL) {
m_displayEOL = _conf.getData().toBool();
@ -65,8 +63,7 @@ class myParamGlobal : public ewol::EObject
}
return false;
}
bool onGetConfig(const char* _config, etk::UString& _result) const
{
bool onGetConfig(const char* _config, etk::UString& _result) const {
// Not set the EObject node parameter (name == > not change ...)
if (_config == configEOL) {
if (true == m_displayEOL) {
@ -109,90 +106,69 @@ const char * const myParamGlobal::configAutoIndent = "auto-indent";
const char * const myParamGlobal::configShowTabChar = "display-tab";
const char * const myParamGlobal::configShowSpaceChar = "display-space";
static myParamGlobal& l_obj(void)
{
static myParamGlobal& l_obj(void) {
static myParamGlobal s_obj;
return s_obj;
}
void globals::init(void)
{
void globals::init(void) {
//ewol::userConfig::addUserConfig(&l_obj());
}
void globals::UnInit(void)
{
void globals::UnInit(void) {
// nothing to do ...
//ewol::userConfig::RmUserConfig(&l_obj());
}
// -----------------------------------------------------------
bool globals::isSetDisplayEndOfLine(void)
{
bool globals::isSetDisplayEndOfLine(void) {
return l_obj().m_displayEOL;
}
void globals::setDisplayEndOfLine(bool newVal)
{
void globals::setDisplayEndOfLine(bool newVal) {
l_obj().m_displayEOL = newVal;
//ewol::widgetMessageMultiCast::Send(-1, ednMsgUserDisplayChange);
}
// -----------------------------------------------------------
bool globals::isSetDisplaySpaceChar(void)
{
bool globals::isSetDisplaySpaceChar(void) {
return l_obj().m_displaySpaceChar;
}
void globals::setDisplaySpaceChar(bool newVal)
{
l_obj().m_displaySpaceChar = newVal;
void globals::setDisplaySpaceChar(bool _newVal) {
l_obj().m_displaySpaceChar = _newVal;
//ewol::widgetMessageMultiCast::Send(-1, ednMsgUserDisplayChange);
}
// -----------------------------------------------------------
bool globals::isSetDisplayTabChar(void)
{
bool globals::isSetDisplayTabChar(void) {
return l_obj().m_displayTabChar;
}
void globals::setDisplayTabChar(bool newVal)
{
l_obj().m_displayTabChar = newVal;
void globals::setDisplayTabChar(bool _newVal) {
l_obj().m_displayTabChar = _newVal;
//ewol::widgetMessageMultiCast::Send(-1, ednMsgUserDisplayChange);
}
// -----------------------------------------------------------
bool globals::isSetAutoIndent(void)
{
bool globals::isSetAutoIndent(void) {
return l_obj().m_AutoIndent;
}
void globals::setAutoIndent(bool newVal)
{
l_obj().m_AutoIndent = newVal;
void globals::setAutoIndent(bool _newVal) {
l_obj().m_AutoIndent = _newVal;
}
// -----------------------------------------------------------
bool globals::OrderTheBufferList(void)
{
bool globals::OrderTheBufferList(void) {
return true;
}
// -----------------------------------------------------------
int32_t globals::getNbColoneBorder(void)
{
int32_t globals::getNbColoneBorder(void) {
return 6;
}
int32_t globals::getNbLineBorder(void)
{
int32_t globals::getNbLineBorder(void) {
return 3;
}
@ -206,8 +182,7 @@ static const char * const l_changeEndOfLine = "edn-event-change-endOfLine";
static const char * const l_changeRounded = "edn-event-change-rounded";
globals::ParameterGlobalsGui::ParameterGlobalsGui(void) :
widget::Sizer(widget::Sizer::modeVert)
{
widget::Sizer(widget::Sizer::modeVert) {
widget::CheckBox* myCheckbox = NULL;
widget::Spacer* mySpacer = NULL;
@ -265,14 +240,12 @@ globals::ParameterGlobalsGui::ParameterGlobalsGui(void) :
}
}
globals::ParameterGlobalsGui::~ParameterGlobalsGui(void)
{
globals::ParameterGlobalsGui::~ParameterGlobalsGui(void) {
}
void globals::ParameterGlobalsGui::onReceiveMessage(const ewol::EMessage& _msg)
{
void globals::ParameterGlobalsGui::onReceiveMessage(const ewol::EMessage& _msg) {
widget::Sizer::onReceiveMessage(_msg);
if (_msg.getMessage() == l_changeEndOfLine) {
@ -306,7 +279,7 @@ void globals::ParameterGlobalsGui::onReceiveMessage(const ewol::EMessage& _msg)
etk::theme::setName("GUI", "default");;
}
// Reload shaders and graphic system ...
ewol::getContext().getResourcesManager().ReLoadResources();
ewol::getContext().getResourcesManager().reLoadResources();
ewol::getContext().forceRedrawAll();
}

View File

@ -17,27 +17,26 @@ namespace globals
{
void init(void);
void UnInit(void);
int32_t getNbColoneBorder(void);
int32_t getNbLineBorder(void);
int32_t getNbColoneBorder(void);
int32_t getNbLineBorder(void);
bool isSetDisplayEndOfLine(void);
void setDisplayEndOfLine(bool newVal);
bool isSetDisplayEndOfLine(void);
void setDisplayEndOfLine(bool _newVal);
bool isSetDisplaySpaceChar(void);
void setDisplaySpaceChar(bool newVal);
bool isSetDisplaySpaceChar(void);
void setDisplaySpaceChar(bool _newVal);
bool isSetDisplayTabChar(void);
void setDisplayTabChar(bool newVal);
bool isSetDisplayTabChar(void);
void setDisplayTabChar(bool _newVal);
bool isSetAutoIndent(void);
void setAutoIndent(bool newVal);
bool isSetAutoIndent(void);
void setAutoIndent(bool _newVal);
void init2(void);
void init2(void);
bool OrderTheBufferList(void);
bool OrderTheBufferList(void);
class ParameterGlobalsGui : public widget::Sizer
{
class ParameterGlobalsGui : public widget::Sizer {
public :
ParameterGlobalsGui(void);
~ParameterGlobalsGui(void);

View File

@ -38,7 +38,7 @@
int main(int _argc, const char *_argv[])
{
// only one things to do:
return ewol::Run(_argc, _argv);
return ewol::run(_argc, _argv);
}
@ -47,7 +47,7 @@ int main(int _argc, const char *_argv[])
*/
bool APP_Init(ewol::eContext& _context)
{
APPL_INFO(" == > init APPL (START) [" << ewol::getBoardType() << "] (" << ewol::GetCompilationMode() << ")");
APPL_INFO(" == > init APPL (START) [" << ewol::getBoardType() << "] (" << ewol::getCompilationMode() << ")");
// TODO : remove this : Move if in the windows properties
_context.setSize(vec2(800, 600));
@ -94,7 +94,7 @@ bool APP_Init(ewol::eContext& _context)
if (NULL == basicWindows) {
APPL_ERROR("Can not allocate the basic windows");
_context.Stop();
_context.stop();
return false;
}
// create the specific windows
@ -105,16 +105,16 @@ bool APP_Init(ewol::eContext& _context)
APPL_INFO("show list of files : ");
bool ctagDetected = false;
for( int32_t iii=0 ; iii<_context.getCmd().size(); iii++) {
etk::UString tmpppp = _context.getCmd().Get(iii);
etk::UString tmpppp = _context.getCmd().get(iii);
if (tmpppp == "-t") {
ctagDetected = true;
} else if (true == ctagDetected) {
APPL_INFO("Load ctag file : \"" << tmpppp << "\"" );
ctagDetected = false;
_context.getEObjectManager().MultiCast().AnonymousSend(ednMsgCtagsLoadFile, tmpppp);
_context.getEObjectManager().multiCast().anonymousSend(ednMsgCtagsLoadFile, tmpppp);
} else {
APPL_INFO("need load file : \"" << tmpppp << "\"" );
_context.getEObjectManager().MultiCast().AnonymousSend(ednMsgOpenFile, tmpppp);
_context.getEObjectManager().multiCast().anonymousSend(ednMsgOpenFile, tmpppp);
}
}
@ -138,15 +138,15 @@ void APP_UnInit(ewol::eContext& _context)
tmpWindows = NULL;
}
cTagsManager::UnInit();
cTagsManager::unInit();
APPL_INFO("Stop Hightlight");
HighlightManager::UnInit();
HighlightManager::unInit();
//Kill all singleton
APPL_INFO("Stop BufferManager");
BufferManager::UnInit();
BufferManager::unInit();
APPL_INFO("Stop ColorizeManager");
ColorizeManager::UnInit();
ColorizeManager::unInit();
APPL_INFO(" == > Un-Init "PROJECT_NAME" (END)");
}

View File

@ -20,7 +20,6 @@ def Create(target):
# Gui:
myModule.AddSrcFile([
'appl/Gui/BufferView.cpp',
'appl/Gui/CodeView.cpp',
'appl/Gui/TextViewer.cpp',
'appl/Gui/MainWindows.cpp',
'appl/Gui/Search.cpp',
@ -31,12 +30,6 @@ def Create(target):
# All needed for the buffer management :
myModule.AddSrcFile([
'appl/Buffer/Buffer.cpp',
'appl/Buffer/EdnBuf/EdnBuf.cpp',
'appl/Buffer/EdnBuf/EdnBuf_HighLight.cpp',
'appl/Buffer/EdnBuf/EdnBuf_History.cpp',
'appl/Buffer/EdnBuf/EdnBuf_Selection.cpp',
'appl/Buffer/EdnBuf/EdnBufHistory.cpp',
'appl/Buffer/BufferText.cpp',
'appl/Buffer/BufferManager.cpp'])
# Generic color management for the text editor :