Change message system and threaded the system

This commit is contained in:
Edouard Dupin 2012-01-31 18:26:04 +01:00
parent 65b288813e
commit d2cb4a47b7
39 changed files with 357 additions and 645 deletions

5
.gitignore vendored
View File

@ -4,9 +4,14 @@
################################### ###################################
CVS CVS
.svn .svn
.gitk-tmp.*
Object/ Object/
doxygen/API/ doxygen/API/
doxygen/ALL/ doxygen/ALL/
bin/
gen/
linux/
obj/
################################### ###################################
# backup files # backup files

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

View File

@ -1,129 +0,0 @@
name:Monospace
source:Monospace.bmp
#comment line ...
# size 54 largeur 33 space between letter 12
# unknow UTF8 code of the letter and start coordonate and size ==> 0x54 (33,45) (33,54)
0x00 (99,453) (33,54) # Error : Unknow the UTF8 element ...
# hexa UTF8 code of the letter and start coordonate and size ==> 0x54 (33,45) (33,54)
# ABCDEFGHIJKLMN
0x20 (0,7) (33,54) # space ...
0x41 (33,7) (33,54) # A
0x42 (66,7) (33,54) # B
0x43 (99,7) (33,54) # C
0x44 (132,7) (33,54) # D
0x45 (165,7) (33,54) # E
0x46 (198,7) (33,54) # F
0x47 (231,7) (33,54) # G
0x48 (264,7) (33,54) # H
0x49 (297,7) (33,54) # I
0x4A (330,7) (33,54) # J
0x4B (363,7) (33,54) # K
0x4C (396,7) (33,54) # L
0x4D (429,7) (33,54) # M
0x4E (462,7) (33,54) # N
#OPQRSTUVWXYZabc
0x4F (0,71) (33,54) # O
0x50 (33,71) (33,54) # P
0x51 (66,71) (33,54) # Q
0x52 (99,71) (33,54) # R
0x53 (132,71) (33,54) # S
0x54 (165,71) (33,54) # T
0x55 (198,71) (33,54) # U
0x56 (231,71) (33,54) # V
0x57 (264,71) (33,54) # W
0x58 (297,71) (33,54) # X
0x59 (330,71) (33,54) # Y
0x5A (363,71) (33,54) # Z
0x61 (396,71) (33,54) # a
0x62 (429,71) (33,54) # b
0x63 (462,71) (33,54) # c
#defghijklmnopqr
0x64 (0,135) (33,54) # d
0x65 (33,135) (33,54) # e
0x66 (66,135) (33,54) # f
0x67 (99,135) (33,54) # g
0x68 (132,135) (33,54) # h
0x69 (165,135) (33,54) # i
0x6A (198,135) (33,54) # j
0x6B (231,135) (33,54) # k
0x6C (264,135) (33,54) # l
0x6D (297,135) (33,54) # m
0x6E (330,135) (33,54) # n
0x6F (363,135) (33,54) # o
0x70 (396,135) (33,54) # p
0x71 (429,135) (33,54) # q
0x72 (462,135) (33,54) # r
#stuvwxyz1234567
0x73 (0,199) (33,54) # s
0x74 (33,199) (33,54) # t
0x75 (66,199) (33,54) # u
0x76 (99,199) (33,54) # v
0x77 (132,199) (33,54) # w
0x78 (165,199) (33,54) # x
0x79 (198,199) (33,54) # y
0x7A (231,199) (33,54) # z
0x31 (264,199) (33,54) # 1
0x32 (297,199) (33,54) # 2
0x33 (330,199) (33,54) # 3
0x34 (363,199) (33,54) # 4
0x35 (396,199) (33,54) # 5
0x36 (429,199) (33,54) # 6
0x37 (462,199) (33,54) # 7
#890&é~"#'{([-|è
0x38 (0,263) (33,54) # 8
0x39 (33,263) (33,54) # 9
0x30 (66,263) (33,54) # 0
0x26 (99,263) (33,54) # &
#0x (132,263) (33,54) # é
0x7E (165,263) (33,54) # ~
0x22 (198,263) (33,54) # "
0x23 (231,263) (33,54) # #
0x27 (264,263) (33,54) # '
0x7B (297,263) (33,54) # {
0x28 (330,263) (33,54) # (
0x5B (363,263) (33,54) # [
0x2D (396,263) (33,54) # -
0x7C (429,263) (33,54) # |
#0x (462,263) (33,54) # è
#`_\ç^à@)]=}
0x60 (0,335) (33,54) # `
0x5F (33,335) (33,54) # _
0x5C (66,335) (33,54) # \
#0x (99,335) (33,54) # ç
0x5E (132,335) (33,54) # ^
#0x (165,335) (33,54) # à
0x40 (198,335) (33,54) # @
0x29 (231,335) (33,54) # )
0x5D (264,335) (33,54) # ]
0x3D (297,335) (33,54) # =
0x7D (330,335) (33,54) # }
#0x (363,335) (33,54) # o chap
#0x (396,335) (33,54) # u chap
#0x (429,335) (33,54) # e chap
#0x (462,335) (33,54) # a chap
#$£*µ%!§:/
#0x (0,391) (33,54) # i chap
#0x (33,391) (33,54) # o trema
#0x (66,391) (33,54) # u trema
#0x (99,391) (33,54) # e trema
#0x (132,391) (33,54) # a trema
0x24 (165,391) (33,54) # $
#0x (198,391) (33,54) # £
0x2A (231,391) (33,54) # *
#0x (264,391) (33,54) # µ
#0x (297,391) (33,54) # ù
0x25 (330,391) (33,54) # %
0x21 (363,391) (33,54) # !
#0x (396,391) (33,54) # §
0x3A (429,391) (33,54) # :
0x2F (462,391) (33,54) # /
#;.,?<>²!+
0x3B (0,453) (33,54) # ;
0x2E (33,453) (33,54) # .
0x2C (66,453) (33,54) # ,
0x3F (99,453) (33,54) # ?
0x3C (132,453) (33,54) # <
0x3E (165,453) (33,54) # >
#0x (198,453) (33,54) # ²
#0x21 (231,453) (33,54) # ! ==> doublon ...
0x2B (264,453) (33,54) # +

View File

@ -27,6 +27,7 @@
#include <tools_globals.h> #include <tools_globals.h>
#include <Buffer.h> #include <Buffer.h>
#include <BufferManager.h> #include <BufferManager.h>
#include <ewol/WidgetMessageMultiCast.h>
#undef __class__ #undef __class__
#define __class__ "Buffer" #define __class__ "Buffer"
@ -93,7 +94,7 @@ void Buffer::SetModify(bool status)
{ {
if (status != m_fileModify) { if (status != m_fileModify) {
m_fileModify = status; m_fileModify = status;
GeneralSendMessage(EDN_MSG__BUFFER_CHANGE_MODIFY); ewol::widgetMessageMultiCast::Send(-1, ednMsgBufferModify);
} }
} }

View File

@ -27,6 +27,7 @@
#include <tools_debug.h> #include <tools_debug.h>
#include <tools_globals.h> #include <tools_globals.h>
#include <BufferManager.h> #include <BufferManager.h>
#include <ewol/WidgetMessageMultiCast.h>
#undef __class__ #undef __class__
#define __class__ "BufferManager" #define __class__ "BufferManager"
@ -40,11 +41,16 @@
* @return --- * @return ---
* *
*/ */
BufferManager::BufferManager(void) : MsgBroadcast("Buffer Manager", EDN_CAT_BUFFER_MANAGER) BufferManager::BufferManager(void)
{ {
// nothing to do ... // nothing to do ...
BufferNotExiste = new BufferEmpty(); BufferNotExiste = new BufferEmpty();
m_idSelected = -1; m_idSelected = -1;
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerNewFile);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerSaveAll);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerCloseAll);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerClose);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerSave);
} }
/** /**
@ -68,8 +74,9 @@ BufferManager::~BufferManager(void)
} }
void BufferManager::OnMessage(int32_t id, int32_t dataID) bool BufferManager::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y)
{ {
/*
switch (id) switch (id)
{ {
case EDN_MSG__BUFFER_CHANGE_CURRENT: case EDN_MSG__BUFFER_CHANGE_CURRENT:
@ -127,6 +134,8 @@ void BufferManager::OnMessage(int32_t id, int32_t dataID)
} }
break; break;
} }
*/
return false;
} }
@ -149,7 +158,8 @@ void BufferManager::RemoveAll(void)
for (i=0; i<listBuffer.Size(); i++) { for (i=0; i<listBuffer.Size(); i++) {
Remove(i); Remove(i);
} }
SendMessage(EDN_MSG__BUFFER_REMOVE_ALL); //SendMessage(EDN_MSG__BUFFER_REMOVE_ALL);
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferRemoveAll);
} }
@ -169,7 +179,8 @@ int32_t BufferManager::Create(void)
// Add at the list of element // Add at the list of element
listBuffer.PushBack(myBuffer); listBuffer.PushBack(myBuffer);
int32_t basicID = listBuffer.Size() - 1; int32_t basicID = listBuffer.Size() - 1;
SendMessage(EDN_MSG__BUFFER_ADD, basicID); //SendMessage(EDN_MSG__BUFFER_ADD, basicID);
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferAdd);
return basicID; return basicID;
} }
@ -192,7 +203,8 @@ int32_t BufferManager::Open(etk::File &myFile)
// Add at the list of element // Add at the list of element
listBuffer.PushBack(myBuffer); listBuffer.PushBack(myBuffer);
int32_t basicID = listBuffer.Size() - 1; int32_t basicID = listBuffer.Size() - 1;
SendMessage(EDN_MSG__BUFFER_ADD, basicID); //SendMessage(EDN_MSG__BUFFER_ADD, basicID);
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferAdd);
return basicID; return basicID;
} }
@ -293,7 +305,8 @@ bool BufferManager::Remove(int32_t BufferID)
// Delete the Buffer // Delete the Buffer
delete( listBuffer[BufferID] ); delete( listBuffer[BufferID] );
listBuffer[BufferID] = NULL; listBuffer[BufferID] = NULL;
SendMessage(EDN_MSG__BUFFER_REMOVE, BufferID); //SendMessage(EDN_MSG__BUFFER_REMOVE, BufferID);
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferRemove);
return true; return true;
} else { } else {
EDN_INFO("non existing Buffer " << BufferID); EDN_INFO("non existing Buffer " << BufferID);

View File

@ -31,8 +31,9 @@
#include <BufferEmpty.h> #include <BufferEmpty.h>
#include <etk/Singleton.h> #include <etk/Singleton.h>
#include <MsgBroadcast.h> #include <MsgBroadcast.h>
#include <ewol/Widget.h>
class BufferManager: public etk::Singleton<BufferManager>, public MsgBroadcast class BufferManager: public etk::Singleton<BufferManager>, public ewol::Widget
{ {
friend class etk::Singleton<BufferManager>; friend class etk::Singleton<BufferManager>;
// specific for sigleton system... // specific for sigleton system...
@ -42,7 +43,7 @@ class BufferManager: public etk::Singleton<BufferManager>, public MsgBroadcast
~BufferManager(void); ~BufferManager(void);
public: public:
void OnMessage(int32_t id, int32_t dataID); bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
// return the ID of the buffer allocated // return the ID of the buffer allocated
// create a buffer with no element // create a buffer with no element

View File

@ -26,12 +26,14 @@
#include <tools_globals.h> #include <tools_globals.h>
#include <ColorizeManager.h> #include <ColorizeManager.h>
#include <tinyXML/tinyxml.h> #include <tinyXML/tinyxml.h>
#include <ewol/WidgetMessageMultiCast.h>
#define PFX "ColorizeManager " #define PFX "ColorizeManager "
ColorizeManager::ColorizeManager(void) : MsgBroadcast("Colorize Manager", EDN_CAT_COLOR) ColorizeManager::ColorizeManager(void)
{ {
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgReloadColorFile);
} }
ColorizeManager::~ColorizeManager(void) ColorizeManager::~ColorizeManager(void)
@ -51,8 +53,9 @@ ColorizeManager::~ColorizeManager(void)
} }
void ColorizeManager::OnMessage(int32_t id, int32_t dataID) bool ColorizeManager::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y)
{ {
/*
switch (id) switch (id)
{ {
case EDN_MSG__RELOAD_COLOR_FILE: case EDN_MSG__RELOAD_COLOR_FILE:
@ -64,6 +67,8 @@ void ColorizeManager::OnMessage(int32_t id, int32_t dataID)
} }
break; break;
} }
*/
return false;
} }
@ -263,8 +268,8 @@ void ColorizeManager::LoadFile(const char * xmlFilename)
if (NULL != fileBuffer) { if (NULL != fileBuffer) {
delete[] fileBuffer; delete[] fileBuffer;
} }
SendMessage(EDN_MSG__COLOR_HAS_CHANGE); //SendMessage(EDN_MSG__COLOR_HAS_CHANGE);
SendMessage(EDN_MSG__USER_DISPLAY_CHANGE); //SendMessage(EDN_MSG__USER_DISPLAY_CHANGE);
} }
Colorize *ColorizeManager::Get(const char *colorName) Colorize *ColorizeManager::Get(const char *colorName)

View File

@ -29,6 +29,7 @@
#include <etk/Singleton.h> #include <etk/Singleton.h>
#include <Colorize.h> #include <Colorize.h>
#include <MsgBroadcast.h> #include <MsgBroadcast.h>
#include <ewol/Widget.h>
typedef enum { typedef enum {
// BASIC color for codeViewer // BASIC color for codeViewer
@ -49,7 +50,7 @@ typedef enum {
class ColorizeManager: public etk::Singleton<ColorizeManager>, public MsgBroadcast class ColorizeManager: public etk::Singleton<ColorizeManager>, public ewol::Widget
{ {
friend class etk::Singleton<ColorizeManager>; friend class etk::Singleton<ColorizeManager>;
// specific for sigleton system... // specific for sigleton system...
@ -58,7 +59,7 @@ class ColorizeManager: public etk::Singleton<ColorizeManager>, public MsgBroadca
ColorizeManager(void); ColorizeManager(void);
~ColorizeManager(void); ~ColorizeManager(void);
public: public:
void OnMessage(int32_t id, int32_t dataID); bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
public: public:
void LoadFile(etk::String &xmlFilename); void LoadFile(etk::String &xmlFilename);
void LoadFile(const char * xmlFilename); void LoadFile(const char * xmlFilename);

View File

@ -30,14 +30,16 @@
#include <BufferManager.h> #include <BufferManager.h>
#include <ColorizeManager.h> #include <ColorizeManager.h>
#include <MainWindows.h> #include <MainWindows.h>
#include <ewol/WidgetMessageMultiCast.h>
#undef __class__ #undef __class__
#define __class__ "BufferView" #define __class__ "BufferView"
BufferView::BufferView(void) : MsgBroadcast("Buffer View", EDN_CAT_GUI) BufferView::BufferView(void)
{ {
m_shawableAreaX = 0; m_shawableAreaX = 0;
m_shawableAreaY = 0; m_shawableAreaY = 0;
//ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgBufferManagerNewFile);
// Init link with the buffer Manager // Init link with the buffer Manager
//m_bufferManager = BufferManager::Get(); //m_bufferManager = BufferManager::Get();
//m_colorManager = ColorizeManager::Get(); //m_colorManager = ColorizeManager::Get();
@ -89,9 +91,9 @@ GtkWidget * BufferView::GetMainWidget(void)
return m_widget; return m_widget;
} }
*/ */
bool BufferView::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y)
void BufferView::OnMessage(int32_t id, int32_t dataID)
{ {
/*
switch (id) switch (id)
{ {
case EDN_MSG__BUFFER_CHANGE_CURRENT: case EDN_MSG__BUFFER_CHANGE_CURRENT:
@ -107,6 +109,8 @@ void BufferView::OnMessage(int32_t id, int32_t dataID)
//gtk_widget_queue_draw(m_widget); //gtk_widget_queue_draw(m_widget);
break; break;
} }
*/
return false;
} }
#if 0 #if 0

View File

@ -33,14 +33,14 @@
class BufferView : public MsgBroadcast class BufferView : public ewol::Widget
{ {
public: public:
// Constructeur // Constructeur
BufferView(void); BufferView(void);
~BufferView(void); ~BufferView(void);
//GtkWidget *GetMainWidget(void); //GtkWidget *GetMainWidget(void);
void OnMessage(int32_t id, int32_t dataID); bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
/* /*
// sur : GTK+ callback : // sur : GTK+ callback :
static gboolean CB_displayDraw( GtkWidget *widget, GdkEventExpose *event, gpointer data); static gboolean CB_displayDraw( GtkWidget *widget, GdkEventExpose *event, gpointer data);

View File

@ -36,13 +36,14 @@
#include <SearchData.h> #include <SearchData.h>
#include <ewol/WidgetManager.h> #include <ewol/WidgetManager.h>
#include <ewol/WidgetMessageMultiCast.h>
#undef __class__ #undef __class__
#define __class__ "ewol::Button" #define __class__ "ewol::CodeView"
CodeView::CodeView(void) : MsgBroadcast("Code View", EDN_CAT_WORK_AREA) CodeView::CodeView(void)
{ {
m_label = "CodeView is disable ..."; m_label = "CodeView is disable ...";
m_bufferID = -1; m_bufferID = -1;
@ -62,6 +63,25 @@ CodeView::CodeView(void) : MsgBroadcast("Code View", EDN_CAT_WORK_AREA)
m_textColorBg.blue = 0.0; m_textColorBg.blue = 0.0;
m_textColorBg.alpha = 0.25; m_textColorBg.alpha = 0.25;
SetCanHaveFocus(true); SetCanHaveFocus(true);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentChangeBufferId);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentSave);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentSaveAs);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentSelectAll);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentRemoveLine);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentUnSelect);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentCopy);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentCut);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentPaste);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentFindPrevious);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentFindNext);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentFindOldNext);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentReplace);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentReplaceAll);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentClose);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentUndo);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentRedo);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentGotoLine);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCodeViewCurrentSetCharset);
} }
CodeView::~CodeView(void) CodeView::~CodeView(void)
@ -237,8 +257,60 @@ bool CodeView::OnEventInput(int32_t IdInput, ewol::eventInputType_te typeEvent,
void CodeView::OnMessage(int32_t id, int32_t dataID) bool CodeView::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y)
{ {
EDN_DEBUG("Extern Event : " << widgetID << " type : " << generateEventId << " position(" << x << "," << y << ")");
if( ednMsgCodeViewCurrentChangeBufferId == generateEventId) {
int32_t bufferID = 0;
sscanf(eventExternId, "%d", &bufferID);
EDN_INFO("Select a new Buffer ... " << bufferID);
m_bufferID = bufferID;
m_bufferManager->Get(m_bufferID)->ForceReDraw(true);
// request the display of the curent Editor
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferChangeCurrent, (char*)eventExternId);
} else if (ednMsgCodeViewCurrentSave == generateEventId) {
} else if (ednMsgCodeViewCurrentSaveAs == generateEventId) {
} else if (ednMsgCodeViewCurrentSelectAll == generateEventId) {
} else if (ednMsgCodeViewCurrentRemoveLine == generateEventId) {
} else if (ednMsgCodeViewCurrentUnSelect == generateEventId) {
} else if (ednMsgCodeViewCurrentCopy == generateEventId) {
} else if (ednMsgCodeViewCurrentCut == generateEventId) {
} else if (ednMsgCodeViewCurrentPaste == generateEventId) {
} else if (ednMsgCodeViewCurrentFindPrevious == generateEventId) {
} else if (ednMsgCodeViewCurrentFindNext == generateEventId) {
} else if (ednMsgCodeViewCurrentFindOldNext == generateEventId) {
} else if (ednMsgCodeViewCurrentReplace == generateEventId) {
} else if (ednMsgCodeViewCurrentReplaceAll == generateEventId) {
} else if (ednMsgCodeViewCurrentClose == generateEventId) {
} else if (ednMsgCodeViewCurrentUndo == generateEventId) {
} else if (ednMsgCodeViewCurrentRedo == generateEventId) {
} else if (ednMsgCodeViewCurrentGotoLine == generateEventId) {
} else if (ednMsgCodeViewCurrentSetCharset == generateEventId) {
} else {
}
/*
switch (id) switch (id)
{ {
case EDN_MSG__CURRENT_CHANGE_BUFFER_ID: case EDN_MSG__CURRENT_CHANGE_BUFFER_ID:
@ -328,14 +400,17 @@ void CodeView::OnMessage(int32_t id, int32_t dataID)
// Redraw all the display ... Done under ... // Redraw all the display ... Done under ...
break; break;
} }
*/
// Force redraw of the widget // Force redraw of the widget
OnRegenerateDisplay(); OnRegenerateDisplay();
return true;
} }
void CodeView::OnGetFocus(void) void CodeView::OnGetFocus(void)
{ {
SendMessage(EDN_MSG__BUFFER_CHANGE_CURRENT, m_bufferID); //SendMessage(EDN_MSG__BUFFER_CHANGE_CURRENT, m_bufferID);
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgBufferChangeCurrent);
EDN_INFO("Focus - In"); EDN_INFO("Focus - In");
} }

View File

@ -35,12 +35,11 @@
#include <etk/Types.h> #include <etk/Types.h>
#include <ewol/Widget.h> #include <ewol/Widget.h>
class CodeView :public ewol::Widget, public MsgBroadcast class CodeView :public ewol::Widget
{ {
public: public:
CodeView(void); CodeView(void);
virtual ~CodeView(void); virtual ~CodeView(void);
void OnMessage(int32_t id, int32_t dataID);
virtual bool CalculateMinSize(void); virtual bool CalculateMinSize(void);
private: private:
etk::String m_label; etk::String m_label;
@ -52,6 +51,7 @@ class CodeView :public ewol::Widget, public MsgBroadcast
bool m_buttunOneSelected; bool m_buttunOneSelected;
public: public:
virtual void OnRegenerateDisplay(void); virtual void OnRegenerateDisplay(void);
bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
public: public:
virtual bool OnEventInput(int32_t IdInput, ewol::eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y); virtual bool OnEventInput(int32_t IdInput, ewol::eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y); virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);

View File

@ -43,11 +43,18 @@
#include <ewol/widget/Spacer.h> #include <ewol/widget/Spacer.h>
#include <ewol/widgetMeta/FileChooser.h> #include <ewol/widgetMeta/FileChooser.h>
#include <ewol/WidgetManager.h> #include <ewol/WidgetManager.h>
#include <ewol/WidgetMessageMultiCast.h>
#undef __class__ #undef __class__
#define __class__ "MainWindows" #define __class__ "MainWindows"
const char * const ednEventOpenFile = "edn-Open-File";
const char * const ednEventCloseFile = "edn-Close-File";
const char * const ednEventSaveFile = "edn-Save-File";
const char * const ednEventSaveAsFile = "edn-SaveAs-File";
const char * const ednEventPopUpClose = "edn-PopUp-Close";
const char * const ednEventPopUpFileSelected = "edn-PopUp-FileSelected";
MainWindows::MainWindows(void) MainWindows::MainWindows(void)
{ {
@ -66,12 +73,28 @@ MainWindows::MainWindows(void)
myButton = new ewol::Button("Open"); myButton = new ewol::Button("Open");
mySizerHori->SubWidgetAdd(myButton); mySizerHori->SubWidgetAdd(myButton);
if (false == myButton->ExternLinkOnEvent(ewolEventButtonPressed, GetWidgetId(), ednEventOpenFile) ) {
EDN_CRITICAL("link with an entry event");
}
myButton = new ewol::Button("Close"); myButton = new ewol::Button("Close");
mySizerHori->SubWidgetAdd(myButton); mySizerHori->SubWidgetAdd(myButton);
if (false == myButton->ExternLinkOnEvent(ewolEventButtonPressed, GetWidgetId(), ednEventCloseFile) ) {
EDN_CRITICAL("link with an entry event");
}
myButton = new ewol::Button("Save"); myButton = new ewol::Button("Save");
mySizerHori->SubWidgetAdd(myButton); mySizerHori->SubWidgetAdd(myButton);
if (false == myButton->ExternLinkOnEvent(ewolEventButtonPressed, GetWidgetId(), ednEventSaveFile) ) {
EDN_CRITICAL("link with an entry event");
}
myButton = new ewol::Button("Save As ..."); myButton = new ewol::Button("Save As ...");
mySizerHori->SubWidgetAdd(myButton); mySizerHori->SubWidgetAdd(myButton);
if (false == myButton->ExternLinkOnEvent(ewolEventButtonPressed, GetWidgetId(), ednEventSaveAsFile) ) {
EDN_CRITICAL("link with an entry event");
}
myLabel = new ewol::Label("FileName"); myLabel = new ewol::Label("FileName");
myLabel->SetExpendX(true); myLabel->SetExpendX(true);
@ -97,6 +120,46 @@ MainWindows::~MainWindows(void)
bool MainWindows::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * data, etkFloat_t x, etkFloat_t y)
{
EDN_INFO("Receive Event from the main windows ... : widgetid=" << widgetID << "\"" << generateEventId << "\" ==> data=\"" << data << "\"" );
if (generateEventId == ednEventOpenFile) {
ewol::FileChooser* tmpWidget = new ewol::FileChooser();
tmpWidget->SetTitle("Open Files ...");
tmpWidget->SetValidateLabel("Open");
tmpWidget->SetFolder("/");
PopUpWidgetPush(tmpWidget);
if (false == tmpWidget->ExternLinkOnEvent(ewolEventFileChooserCancel, GetWidgetId(), ednEventPopUpClose) ) {
EDN_CRITICAL("link with an entry event");
}
if (false == tmpWidget->ExternLinkOnEvent(ewolEventFileChooserValidate, GetWidgetId(), ednEventPopUpFileSelected) ) {
EDN_CRITICAL("link with an entry event");
}
} else if (generateEventId == ednEventPopUpClose) {
PopUpWidgetPop();
} else if (generateEventId == ednEventPopUpFileSelected) {
// get widget:
ewol::FileChooser * tmpWidget = (ewol::FileChooser*)ewol::widgetManager::Get(widgetID);
if (NULL == tmpWidget) {
EDN_ERROR("impossible to get pop_upWidget " << widgetID);
PopUpWidgetPop();
return false;
}
// get the filename :
etk::String tmpData = tmpWidget->GetCompleateFileName();
etk::File myfilename = tmpData;
BufferManager *myBufferManager = BufferManager::getInstance();
if (false == myBufferManager->Exist(myfilename) ) {
int32_t openID = myBufferManager->Open(myfilename);
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgCodeViewCurrentChangeBufferId, openID);
} else {
ewol::widgetMessageMultiCast::Send(GetWidgetId(), ednMsgCodeViewCurrentChangeBufferId, myBufferManager->GetId(myfilename));
}
EDN_DEBUG("Request opening the file : " << tmpData);
PopUpWidgetPop();
}
return true;
}

View File

@ -74,6 +74,7 @@ class MainWindows : public ewol::Windows
// Constructeur // Constructeur
MainWindows(void); MainWindows(void);
~MainWindows(void); ~MainWindows(void);
virtual bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * data, etkFloat_t x, etkFloat_t y);
}; };
#endif #endif

View File

@ -34,11 +34,11 @@
//class MenuBarMain; //class MenuBarMain;
class MenuBar: public MsgBroadcast class MenuBar
{ {
public: public:
// Constructeur // Constructeur
MenuBar(void) : MsgBroadcast("Menu bar", EDN_CAT_GUI){}; MenuBar(void) {};
~MenuBar(void) {}; ~MenuBar(void) {};
//GtkWidget * GetWidget(void) { return m_mainWidget; }; //GtkWidget * GetWidget(void) { return m_mainWidget; };
void OnMessage(int32_t id, int32_t dataID) {}; void OnMessage(int32_t id, int32_t dataID) {};

View File

@ -28,7 +28,7 @@
StatusBar::StatusBar(void) : MsgBroadcast("Status bar", EDN_CAT_GUI) StatusBar::StatusBar(void)
{ {
/* /*
m_mainWidget = gtk_statusbar_new(); m_mainWidget = gtk_statusbar_new();

View File

@ -28,7 +28,7 @@
#ifndef __STATUS_BAR_H__ #ifndef __STATUS_BAR_H__
#define __STATUS_BAR_H__ #define __STATUS_BAR_H__
class StatusBar: public MsgBroadcast class StatusBar
{ {
public: public:
// Constructeur // Constructeur

View File

@ -37,7 +37,7 @@ static void CB_menuGenerique(GtkMenuItem *menu_item, gpointer data)
} }
*/ */
ToolBar::ToolBar(void) : MsgBroadcast("Tool bar", EDN_CAT_GUI) ToolBar::ToolBar(void)
{ {
/* /*
m_mainWidget = gtk_toolbar_new(); m_mainWidget = gtk_toolbar_new();

View File

@ -29,7 +29,7 @@
#define __TOOL_BAR_H__ #define __TOOL_BAR_H__
class ToolBar: public MsgBroadcast class ToolBar
{ {
public: public:
// Constructeur // Constructeur

View File

@ -42,7 +42,7 @@
* @return --- * @return ---
* *
*/ */
WindowsManager::WindowsManager(void) : MsgBroadcast("Windows Manager", EDN_CAT_GUI_MANAGER) WindowsManager::WindowsManager(void)
{ {
m_currentBufferID = -1; m_currentBufferID = -1;
} }

View File

@ -30,7 +30,7 @@
#include <MsgBroadcast.h> #include <MsgBroadcast.h>
#include <MainWindows.h> #include <MainWindows.h>
class WindowsManager: public etk::Singleton<WindowsManager>, public MsgBroadcast class WindowsManager: public etk::Singleton<WindowsManager>
{ {
friend class etk::Singleton<WindowsManager>; friend class etk::Singleton<WindowsManager>;
// specific for sigleton system... // specific for sigleton system...

View File

@ -47,14 +47,40 @@ void Highlight::ParseRules(TiXmlNode *child, etk::VectorType<HighlightPattern*>
Highlight::Highlight(etk::String &xmlFilename) Highlight::Highlight(etk::String &xmlFilename)
{ {
TiXmlDocument XmlDocument; TiXmlDocument XmlDocument;
// open the curent File
bool loadError = XmlDocument.LoadFile(xmlFilename.c_str()); etk::File fileName(xmlFilename, etk::FILE_TYPE_DATA);
if (false == fileName.Exist()) {
EWOL_ERROR("File Does not exist : " << fileName);
return;
}
int32_t fileSize = fileName.Size();
if (0==fileSize) {
EWOL_ERROR("This file is empty : " << fileName);
return;
}
if (false == fileName.fOpenRead()) {
EWOL_ERROR("Can not open the file : " << fileName);
return;
}
// allocate data
char * fileBuffer = new char[fileSize];
if (NULL == fileBuffer) {
EWOL_ERROR("Error Memory allocation size=" << fileSize);
return;
}
// load data from the file :
fileName.fRead(fileBuffer, 1, fileSize);
// close the file:
fileName.fClose();
// load the XML from the memory
bool loadError = XmlDocument.Parse((const char*)fileBuffer, 0, TIXML_ENCODING_UTF8);
if (false == loadError) { if (false == loadError) {
EDN_ERROR( "can not load Hightlight XML: PARSING error: \"" << xmlFilename << "\""); EDN_ERROR( "can not load Hightlight XML: PARSING error: \"" << xmlFilename << "\"");
return; return;
} }
TiXmlElement* root = XmlDocument.FirstChildElement( "EdnLang" ); TiXmlElement* root = XmlDocument.FirstChildElement( "EdnLang" );
if (NULL == root) { if (NULL == root) {
EDN_ERROR( "can not load Hightlight XML: main node not find: \"EdnLang\""); EDN_ERROR( "can not load Hightlight XML: main node not find: \"EdnLang\"");
@ -109,6 +135,9 @@ Highlight::Highlight(etk::String &xmlFilename)
// get the next node element : // get the next node element :
child = child->NextSibling(); child = child->NextSibling();
} }
if (NULL != fileBuffer) {
delete[] fileBuffer;
}
} }
Highlight::~Highlight(void) Highlight::~Highlight(void)

View File

@ -26,13 +26,14 @@
#include <tools_debug.h> #include <tools_debug.h>
#include <tools_globals.h> #include <tools_globals.h>
#include <HighlightManager.h> #include <HighlightManager.h>
#include <ewol/WidgetMessageMultiCast.h>
#undef __class__ #undef __class__
#define __class__ "HighlightManager" #define __class__ "HighlightManager"
HighlightManager::HighlightManager(void) : MsgBroadcast("Hight-light Manager", EDN_CAT_HL) HighlightManager::HighlightManager(void)
{ {
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgColorHasChange);
} }
HighlightManager::~HighlightManager(void) HighlightManager::~HighlightManager(void)
@ -50,8 +51,9 @@ HighlightManager::~HighlightManager(void)
} }
void HighlightManager::OnMessage(int32_t id, int32_t dataID) bool HighlightManager::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y)
{ {
/*
switch (id) switch (id)
{ {
case EDN_MSG__COLOR_HAS_CHANGE: case EDN_MSG__COLOR_HAS_CHANGE:
@ -63,6 +65,8 @@ void HighlightManager::OnMessage(int32_t id, int32_t dataID)
} }
break; break;
} }
*/
return false;
} }
Highlight *HighlightManager::Get(etk::File &fileName) Highlight *HighlightManager::Get(etk::File &fileName)
@ -87,58 +91,42 @@ bool HighlightManager::Exist(etk::File &fileName)
void HighlightManager::loadLanguages(void) void HighlightManager::loadLanguages(void)
{ {
etk::String homedir; etk::String xmlFilename = "lang_c.xml";
#ifdef NDEBUG
homedir = "/usr/share/edn/";
#else
homedir = "./data/";
#endif
/*
etk::String xmlFilename = homedir;
xmlFilename += "lang_c.xml";
Highlight *myHightline = new Highlight(xmlFilename); Highlight *myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_boo.xml";
xmlFilename += "lang_boo.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_Makefile.xml";
xmlFilename += "lang_Makefile.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_asm.xml";
xmlFilename += "lang_asm.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_xml.xml";
xmlFilename += "lang_xml.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_php.xml";
xmlFilename += "lang_php.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_bash.xml";
xmlFilename += "lang_bash.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_matlab.xml";
xmlFilename += "lang_matlab.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
xmlFilename = homedir; xmlFilename = "lang_java.xml";
xmlFilename += "lang_java.xml";
myHightline = new Highlight(xmlFilename); myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline); listHighlight.PushBack(myHightline);
*/
//myHightline->Display(); //myHightline->Display();
} }

View File

@ -31,9 +31,10 @@ class HighlightManager;
#include <etk/Singleton.h> #include <etk/Singleton.h>
#include <MsgBroadcast.h> #include <MsgBroadcast.h>
#include <Highlight.h> #include <Highlight.h>
#include <ewol/Widget.h>
class HighlightManager: public etk::Singleton<HighlightManager>, public MsgBroadcast class HighlightManager: public etk::Singleton<HighlightManager>, public ewol::Widget
{ {
friend class etk::Singleton<HighlightManager>; friend class etk::Singleton<HighlightManager>;
// specific for sigleton system... // specific for sigleton system...
@ -43,7 +44,7 @@ class HighlightManager: public etk::Singleton<HighlightManager>, public MsgBroad
~HighlightManager(void); ~HighlightManager(void);
public: public:
void OnMessage(int32_t id, int32_t dataID); bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
public: public:
void loadLanguages(void); void loadLanguages(void);
Highlight * Get(etk::File &fileName); Highlight * Get(etk::File &fileName);

View File

@ -28,6 +28,7 @@
#include <CTagsManager.h> #include <CTagsManager.h>
#include <ClipBoard.h> #include <ClipBoard.h>
#include <BufferManager.h> #include <BufferManager.h>
#include <ewol/WidgetMessageMultiCast.h>
@ -42,12 +43,16 @@
* @return --- * @return ---
* *
*/ */
CTagsManager::CTagsManager(void) : MsgBroadcast("C-Tags Manager", EDN_CAT_CTAGS) CTagsManager::CTagsManager(void)
{ {
m_tagFilename = ""; m_tagFilename = "";
m_tagFolderBase = ""; m_tagFolderBase = "";
m_ctagFile = NULL; m_ctagFile = NULL;
m_historyPos = 0; m_historyPos = 0;
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCtagsOpen);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCtagsReload);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCtagsJumpCurrentSelection);
ewol::widgetMessageMultiCast::Add(GetWidgetId(), ednMsgCtagsJumpBack);
} }
/** /**
@ -92,7 +97,7 @@ etk::String CTagsManager::GetFolder(etk::String &inputString)
return out; return out;
} }
void CTagsManager::OnMessage(int32_t id, int32_t dataID) bool CTagsManager::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y)
{ {
/* /*
switch (id) switch (id)
@ -144,6 +149,7 @@ void CTagsManager::OnMessage(int32_t id, int32_t dataID)
break; break;
} }
*/ */
return false;
} }

View File

@ -28,6 +28,7 @@
#include <etk/Singleton.h> #include <etk/Singleton.h>
#include <ewol/Widget.h>
#include "MsgBroadcast.h" #include "MsgBroadcast.h"
#include "readtags.h" #include "readtags.h"
@ -40,7 +41,7 @@ typedef struct{
} TagListFind_ts; } TagListFind_ts;
class CTagsManager: public etk::Singleton<CTagsManager>, public MsgBroadcast class CTagsManager: public etk::Singleton<CTagsManager>, public ewol::Widget
{ {
friend class etk::Singleton<CTagsManager>; friend class etk::Singleton<CTagsManager>;
// specific for sigleton system... // specific for sigleton system...
@ -50,7 +51,7 @@ class CTagsManager: public etk::Singleton<CTagsManager>, public MsgBroadcast
~CTagsManager(void); ~CTagsManager(void);
public: public:
void OnMessage(int32_t id, int32_t dataID); virtual bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * eventExternId, etkFloat_t x, etkFloat_t y);
private: private:
int32_t m_currentSelectedID; int32_t m_currentSelectedID;
void LoadTagFile(void); void LoadTagFile(void);

View File

@ -37,6 +37,7 @@
#include <unistd.h> #include <unistd.h>
#include <readtags.h> #include <readtags.h>
#include <CTagsManager.h> #include <CTagsManager.h>
#include <ewol/WidgetMessageMultiCast.h>
MainWindows * basicWindows = NULL; MainWindows * basicWindows = NULL;
@ -83,8 +84,6 @@ void APP_Init(int argc, char *argv[])
// init ALL Singleton : // init ALL Singleton :
(void)MsgBroadcastCore::getInstance();
//(void)AccelKey::getInstance();
(void)WindowsManager::getInstance(); (void)WindowsManager::getInstance();
(void)CTagsManager::getInstance(); (void)CTagsManager::getInstance();
BufferManager *myBufferManager = BufferManager::getInstance(); BufferManager *myBufferManager = BufferManager::getInstance();
@ -92,15 +91,7 @@ void APP_Init(int argc, char *argv[])
// set color and other trucs... // set color and other trucs...
ColorizeManager *myColorManager = NULL; ColorizeManager *myColorManager = NULL;
myColorManager = ColorizeManager::getInstance(); myColorManager = ColorizeManager::getInstance();
etk::String homedir; etk::String homedir = "color_white.xml";
//homedir = getenv("HOME");
#ifdef NDEBUG
homedir = "/usr/share/edn/";
#else
homedir = "./data/";
#endif
//homedir += "color_black.xml";
homedir = "color_white.xml";
myColorManager->LoadFile( homedir.c_str() ); myColorManager->LoadFile( homedir.c_str() );
myColorManager->DisplayListOfColor(); myColorManager->DisplayListOfColor();
@ -108,8 +99,6 @@ void APP_Init(int argc, char *argv[])
myHighlightManager = HighlightManager::getInstance(); myHighlightManager = HighlightManager::getInstance();
myHighlightManager->loadLanguages(); myHighlightManager->loadLanguages();
// open display
MsgBroadcastCore::getInstance()->SendMessage(NULL, EDN_MSG__GUI_SHOW_MAIN_WINDOWS);
// get the curent program folder // get the curent program folder
char cCurrentPath[FILENAME_MAX]; char cCurrentPath[FILENAME_MAX];
@ -130,20 +119,11 @@ void APP_Init(int argc, char *argv[])
if (false == myBufferManager->Exist(myfile) ) { if (false == myBufferManager->Exist(myfile) ) {
int32_t idBuffOpened = myBufferManager->Open(myfile); int32_t idBuffOpened = myBufferManager->Open(myfile);
if (1==i) { if (1==i) {
MsgBroadcastCore::getInstance()->SendMessage(NULL, EDN_MSG__CURRENT_CHANGE_BUFFER_ID, idBuffOpened); //MsgBroadcastCore::getInstance()->SendMessage(NULL, EDN_MSG__CURRENT_CHANGE_BUFFER_ID, idBuffOpened);
ewol::widgetMessageMultiCast::Add(-1, ednMsgCodeViewCurrentChangeBufferId);
} }
} }
} }
/*
{
etk::File myfile((char *)"licence.txt", etk::FILE_TYPE_DIRECT);
if (false == myBufferManager->Exist(myfile) ) {
int32_t idBuffOpened = myBufferManager->Open(myfile);
MsgBroadcastCore::getInstance()->SendMessage(NULL, EDN_MSG__CURRENT_CHANGE_BUFFER_ID, idBuffOpened);
}
}
*/
if (NULL == basicWindows) { if (NULL == basicWindows) {
EDN_ERROR("Can not allocate the basic windows"); EDN_ERROR("Can not allocate the basic windows");
ewol::Stop(); ewol::Stop();

View File

@ -27,260 +27,54 @@
#include <tools_globals.h> #include <tools_globals.h>
#include <MsgBroadcast.h> #include <MsgBroadcast.h>
#undef __class__
#define __class__ "MsgBroadcast"
MsgBroadcast::MsgBroadcast(const char * className, messageCat_te cat) extern const char* const ednMsgBufferChangeCurrent = "edn-Msg-Buffer-Change-Current";
{ extern const char* const ednMsgUserDisplayChange = "edn-Msg-User-Display-Change";
m_messageSystem = MsgBroadcastCore::Get();
m_className = className;
m_cat = cat;
// add on listner
m_messageSystem->AddReceiver(this);
}
MsgBroadcast::~MsgBroadcast(void) extern const char* const ednMsgBufferRemove = "edn-Msg-Buffer-Remove";
{ extern const char* const ednMsgBufferRemoveAll = "edn-Msg-Buffer-Remove-All";
m_messageSystem->RmReceiver(this); extern const char* const ednMsgBufferAdd = "edn-Msg-Buffer-Add";
m_messageSystem = NULL; extern const char* const ednMsgBufferChangeState = "edn-Msg-Buffer-Change-State";
} extern const char* const ednMsgBufferChangeName = "edn-Msg-Buffer-Change-Name";
extern const char* const ednMsgBufferModify = "edn-Msg-Buffer-Modify";
extern const char* const ednMsgBufferHasHistory = "edn-Msg-Buffer-Has-History";
extern const char* const ednMsgBufferHasNotHistory = "edn-Msg-Buffer-Has-Not-History";
extern const char* const ednMsgBufferHasFutureHistory = "edn-Msg-Buffer-Has-Future-History";
extern const char* const ednMsgBufferHasNotFutureHistory = "edn-Msg-Buffer-Has-Not-Future-History";
void MsgBroadcast::OnMessage(int32_t id, int32_t dataID) extern const char* const ednMsgBufferManagerNewFile = "edn-Msg-Buffer-Manager-New-File";
{ extern const char* const ednMsgBufferManagerSaveAll = "edn-Msg-Buffer-Manager-Save-All";
// nothing to do here extern const char* const ednMsgBufferManagerCloseAll = "edn-Msg-Buffer-Manager-Close-All";
} extern const char* const ednMsgBufferManagerClose = "edn-Msg-Buffer-Manager-Close";
extern const char* const ednMsgBufferManagerSave = "edn-Msg-Buffer-Manager-Save";
void MsgBroadcast::SendMessage(messageType_te id, int32_t dataID) extern const char* const ednMsgCodeViewCurrentChangeBufferId = "edn-Msg-CodeView-Current-Change-Buffer-Id";
{ extern const char* const ednMsgCodeViewCurrentSave = "edn-Msg-CodeView-Current-Save";
m_messageSystem->SendMessage(this, id, dataID); extern const char* const ednMsgCodeViewCurrentSaveAs = "edn-Msg-CodeView-Current-Save-As";
} extern const char* const ednMsgCodeViewCurrentSelectAll = "edn-Msg-CodeView-Current-Select-All";
extern const char* const ednMsgCodeViewCurrentRemoveLine = "edn-Msg-CodeView-Current-Remove-Line";
extern const char* const ednMsgCodeViewCurrentUnSelect = "edn-Msg-CodeView-Current-Un-Select";
extern const char* const ednMsgCodeViewCurrentCopy = "edn-Msg-CodeView-Current-Copy";
extern const char* const ednMsgCodeViewCurrentCut = "edn-Msg-CodeView-Current-Cut";
extern const char* const ednMsgCodeViewCurrentPaste = "edn-Msg-CodeView-Current-Paste";
extern const char* const ednMsgCodeViewCurrentFindPrevious = "edn-Msg-CodeView-Current-Find-Previous";
extern const char* const ednMsgCodeViewCurrentFindNext = "edn-Msg-CodeView-Current-Find-Next";
extern const char* const ednMsgCodeViewCurrentFindOldNext = "edn-Msg-CodeView-Current-Find-Old-Next";
extern const char* const ednMsgCodeViewCurrentReplace = "edn-Msg-CodeView-Current-Replace";
extern const char* const ednMsgCodeViewCurrentReplaceAll = "edn-Msg-CodeView-Current-Replace-All";
extern const char* const ednMsgCodeViewCurrentClose = "edn-Msg-CodeView-Current-Close";
extern const char* const ednMsgCodeViewCurrentUndo = "edn-Msg-CodeView-Current-Undo";
extern const char* const ednMsgCodeViewCurrentRedo = "edn-Msg-CodeView-Current-Redo";
extern const char* const ednMsgCodeViewCurrentGotoLine = "edn-Msg-CodeView-Current-Goto-Line";
extern const char* const ednMsgCodeViewCurrentSetCharset = "edn-Msg-CodeView-Current-Set-Charset";
extern const char* const ednMsgCtagsOpen = "edn-Msg-Ctags-Open";
extern const char* const ednMsgCtagsReload = "edn-Msg-Ctags-Reload";
extern const char* const ednMsgCtagsJumpCurrentSelection = "edn-Msg-Ctags-Jump-Current-Selection";
extern const char* const ednMsgCtagsJumpBack = "edn-Msg-Ctags-Jump-Back";
#undef __class__ extern const char* const ednMsgColorHasChange = "edn-Msg-Color-Has-Change";
#define __class__ "MsgBroadcastCore"
extern const char* const ednMsgReloadColorFile = "edn-Msg-Reload-Color-File";
// need to create a syngleton ...
MsgBroadcastCore::MsgBroadcastCore(void)
{
EDN_INFO("Init broadcast message System : ");
m_messageID = 0;
}
MsgBroadcastCore::~MsgBroadcastCore(void)
{
EDN_INFO("Un-Init broadcast message System : ");
}
#define MACRO_DISPLAY_MSG(data) case data: return (char*)#data ; break;
static char * GetMessageChar(messageType_te Id)
{
switch(Id)
{
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_CURRENT)
MACRO_DISPLAY_MSG(EDN_MSG__USER_DISPLAY_CHANGE)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_MAIN_WINDOWS)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_SEARCH)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_PREFERENCE)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_REPLACE)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_OPEN_FILE)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_SAVE_AS)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_GOTO_LINE)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_ABOUT)
MACRO_DISPLAY_MSG(EDN_MSG__GUI_SHOW_EXIT_CONFIRMATION)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_REMOVE)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_REMOVE_ALL)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_ADD)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_STATE)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_NAME)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_MODIFY)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_HAS_HISTORY)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_HAS_NOT_HISTORY)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_HAS_FUTURE_HISTORY)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_HAS_NOT_FUTURE_HISTORY)
// create a new buffer
MACRO_DISPLAY_MSG(EDN_MSG__NEW)
MACRO_DISPLAY_MSG(EDN_MSG__BUFF_ALL_SAVE)
MACRO_DISPLAY_MSG(EDN_MSG__BUFF_ALL_CLOSE)
MACRO_DISPLAY_MSG(EDN_MSG__BUFF_ID_CLOSE)
MACRO_DISPLAY_MSG(EDN_MSG__BUFF_ID_SAVE)
// GUI event for the selected buffer
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_CHANGE_BUFFER_ID)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_SAVE)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_SAVE_AS)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_REMOVE_LINE)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_SELECT_ALL)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_UN_SELECT)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_COPY)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_CUT)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_PASTE)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_FIND_PREVIOUS)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_FIND_OLD_PREVIOUS)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_FIND_NEXT)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_FIND_OLD_NEXT)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_REPLACE)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_REPLACE_ALL)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_CLOSE)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_UNDO)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_REDO)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_GOTO_LINE)
MACRO_DISPLAY_MSG(EDN_MSG__REFRESH_DISPLAY)
MACRO_DISPLAY_MSG(EDN_MSG__CURRENT_SET_CHARSET)
// Ctags MESSAGE :
MACRO_DISPLAY_MSG(EDN_MSG__OPEN_CTAGS)
MACRO_DISPLAY_MSG(EDN_MSG__RELOAD_CTAGS)
MACRO_DISPLAY_MSG(EDN_MSG__JUMP_TO_CURRENT_SELECTION)
MACRO_DISPLAY_MSG(EDN_MSG__JUMP_BACK)
// HL message :
MACRO_DISPLAY_MSG(EDN_MSG__COLOR_HAS_CHANGE)
// Color message :
MACRO_DISPLAY_MSG(EDN_MSG__RELOAD_COLOR_FILE)
default:
return (char*)"??";
}
}
static char * GetMessageTypeChar(messageCat_te Id)
{
switch(Id)
{
case EDN_CAT_NONE:
return (char*)"NONE";
case EDN_CAT_GUI:
return (char*)"GUI";
case EDN_CAT_WORK_AREA:
return (char*)"WORK_AREA";
case EDN_CAT_SYSTEM:
return (char*)"SYSTEM";
case EDN_CAT_BUFFER_MANAGER:
return (char*)"BUFFER_MANAGER";
case EDN_CAT_GUI_MANAGER:
return (char*)"GUI_MANAGER";
case EDN_CAT_CTAGS:
return (char*)"C-TAGS_MANAGER";
case EDN_CAT_MENU_CONTEXT:
return (char*)"MENU CONTEXT";
case EDN_CAT_HL:
return (char*)"HIGHT-LIGHT";
case EDN_CAT_COLOR:
return (char*)"COLOR";
default:
return (char*)"??";
}
}
void MsgBroadcastCore::SendMessage(MsgBroadcast * pointerOnSender, messageType_te id, int32_t dataID)
{
// Add message on the list :
messageElement_ts myStructMessage;
messageCat_te catDest = EDN_CAT_NONE;
// DESTINATION : GUI_MANAGER
if( MSG_TO_GUI_MANAGER__START <= id
&& MSG_TO_GUI_MANAGER__STOP >= id )
{
catDest = EDN_CAT_GUI_MANAGER;
} else if( MSG_TO_GUI__START <= id
&& MSG_TO_GUI__STOP >= id )
{
catDest = EDN_CAT_GUI;
} else if( MSG_TO_BUFFER_MANAGER__START <= id
&& MSG_TO_BUFFER_MANAGER__STOP >= id )
{
catDest = EDN_CAT_BUFFER_MANAGER;
} else if( MSG_TO_WORKING_AREA__START <= id
&& MSG_TO_WORKING_AREA__STOP >= id )
{
catDest = EDN_CAT_WORK_AREA;
} else if( MSG_TO_SYSTEM__START <= id
&& MSG_TO_SYSTEM__STOP >= id )
{
catDest = EDN_CAT_SYSTEM;
} else if( MSG_TO_CTAGS__START <= id
&& MSG_TO_CTAGS__STOP >= id )
{
catDest = EDN_CAT_CTAGS;
} else if( MSG_TO_CONTEXT__START <= id
&& MSG_TO_CONTEXT__STOP >= id )
{
catDest = EDN_CAT_MENU_CONTEXT;
} else if( MSG_TO_HL__START <= id
&& MSG_TO_HL__STOP >= id )
{
catDest = EDN_CAT_HL;
} else if( MSG_TO_COLOR__START <= id
&& MSG_TO_COLOR__STOP >= id )
{
catDest = EDN_CAT_COLOR;
}
myStructMessage.localMessageID = m_messageID++;
if (NULL == pointerOnSender) {
EDN_INFO("#" << myStructMessage.localMessageID << " From \"NULL\" CAT=" << GetMessageTypeChar(catDest) << " id=" << id << "=\"" << GetMessageChar(id) << "\" dataID=" << dataID);
} else {
EDN_INFO("#" << myStructMessage.localMessageID << " From \"" << pointerOnSender->GetName().c_str() << "\" CAT=" << GetMessageTypeChar(catDest) << " id=" << id << "=\"" << GetMessageChar(id) << "\" dataID=" << dataID);
}
myStructMessage.msgCatDest = catDest;
myStructMessage.msgId = id;
myStructMessage.data = dataID;
m_listOfMessage.PushBack(myStructMessage);
if (m_listOfMessage.Size() > 1 ) {
// we are curently in message processing ==> wait end to process this message
return;
}
// send message on system :
while (m_listOfMessage.Size() > 0) {
for (int32_t i=0 ; i<m_listMessage.Size() ; i++) {
if( EDN_CAT_NONE == m_listOfMessage[0].msgCatDest
|| m_listOfMessage[0].msgCatDest == m_listMessage[i]->GetCat())
{
EDN_INFO(" #" << m_listOfMessage[0].localMessageID << " ==> process In :\"" << m_listMessage[i]->GetName().c_str() << "\" ");
m_listMessage[i]->OnMessage(m_listOfMessage[0].msgId, m_listOfMessage[0].data);
}
}
m_listOfMessage.Erase(0);
}
}
void MsgBroadcastCore::AddReceiver(MsgBroadcast * pointerOnReceiver)
{
for (int32_t i=0 ; i<m_listMessage.Size() ; i++) {
if (m_listMessage[i] == pointerOnReceiver) {
// nothing to do ...
return;
}
}
m_listMessage.PushBack(pointerOnReceiver);
EDN_INFO("Add a listner for the broadCast messages : \"" << pointerOnReceiver->GetName().c_str() << "\"");
}
void MsgBroadcastCore::RmReceiver(MsgBroadcast * pointerOnReceiver)
{
for (int32_t i=0 ; i<m_listMessage.Size() ; i++) {
if (m_listMessage[i] == pointerOnReceiver) {
m_listMessage.Erase(i);
return;
}
}
}
void GeneralSendMessage(messageType_te id, int32_t dataID)
{
MsgBroadcastCore::Get()->SendMessage(NULL, id, dataID);
}

View File

@ -27,186 +27,58 @@
#define __MSG_BROADCAST_H__ #define __MSG_BROADCAST_H__
#include <tools_debug.h> #include <tools_debug.h>
#include <etk/Singleton.h>
#include <etk/String.h> #include <etk/String.h>
extern const char* const ednMsgBufferChangeCurrent; // set the new current BUFFER ...
extern const char* const ednMsgUserDisplayChange; // User change the display ==> need to reload all the display depending on color internal
// broadCast Message extern const char* const ednMsgBufferRemove;
extern const char* const ednMsgBufferRemoveAll;
extern const char* const ednMsgBufferAdd;
extern const char* const ednMsgBufferChangeState;
extern const char* const ednMsgBufferChangeName;
extern const char* const ednMsgBufferModify;
extern const char* const ednMsgBufferHasHistory;
extern const char* const ednMsgBufferHasNotHistory;
extern const char* const ednMsgBufferHasFutureHistory;
extern const char* const ednMsgBufferHasNotFutureHistory;
// Message to prevent the curent thread that Buffer has changed extern const char* const ednMsgBufferManagerNewFile;
// the ID we'll use to identify our event extern const char* const ednMsgBufferManagerSaveAll;
typedef enum { extern const char* const ednMsgBufferManagerCloseAll;
EDN_MSG__NONE = 0, extern const char* const ednMsgBufferManagerClose;
EDN_MSG__BUFFER_CHANGE_CURRENT, // set the new current BUFFER ... extern const char* const ednMsgBufferManagerSave;
EDN_MSG__USER_DISPLAY_CHANGE, // User change the display ==> need to reload all the display depending on color internal
// DESTINATION : GUI_MANAGER extern const char* const ednMsgCodeViewCurrentChangeBufferId;
MSG_TO_GUI_MANAGER__START, extern const char* const ednMsgCodeViewCurrentSave;
// GUI windows openning and closing extern const char* const ednMsgCodeViewCurrentSaveAs;
EDN_MSG__GUI_SHOW_MAIN_WINDOWS, extern const char* const ednMsgCodeViewCurrentSelectAll;
EDN_MSG__GUI_SHOW_SEARCH, extern const char* const ednMsgCodeViewCurrentRemoveLine;
EDN_MSG__GUI_SHOW_PREFERENCE, extern const char* const ednMsgCodeViewCurrentUnSelect;
EDN_MSG__GUI_SHOW_REPLACE, extern const char* const ednMsgCodeViewCurrentCopy;
EDN_MSG__GUI_SHOW_OPEN_FILE, extern const char* const ednMsgCodeViewCurrentCut;
EDN_MSG__GUI_SHOW_SAVE_AS, extern const char* const ednMsgCodeViewCurrentPaste;
EDN_MSG__GUI_SHOW_GOTO_LINE, extern const char* const ednMsgCodeViewCurrentFindPrevious;
EDN_MSG__GUI_SHOW_ABOUT, extern const char* const ednMsgCodeViewCurrentFindNext;
EDN_MSG__GUI_SHOW_EXIT_CONFIRMATION, extern const char* const ednMsgCodeViewCurrentFindOldNext;
MSG_TO_GUI_MANAGER__STOP, extern const char* const ednMsgCodeViewCurrentReplace;
extern const char* const ednMsgCodeViewCurrentReplaceAll;
extern const char* const ednMsgCodeViewCurrentClose;
extern const char* const ednMsgCodeViewCurrentUndo;
extern const char* const ednMsgCodeViewCurrentRedo;
extern const char* const ednMsgCodeViewCurrentGotoLine;
extern const char* const ednMsgCodeViewCurrentSetCharset;
// DESTINATION : GUI extern const char* const ednMsgCtagsOpen;
// generate by the current buffer to said the buffer has changing extern const char* const ednMsgCtagsReload;
MSG_TO_GUI__START, extern const char* const ednMsgCtagsJumpCurrentSelection;
EDN_MSG__BUFFER_REMOVE, extern const char* const ednMsgCtagsJumpBack;
EDN_MSG__BUFFER_REMOVE_ALL,
EDN_MSG__BUFFER_ADD,
EDN_MSG__BUFFER_CHANGE_STATE,
EDN_MSG__BUFFER_CHANGE_NAME,
EDN_MSG__BUFFER_CHANGE_MODIFY,
EDN_MSG__BUFFER_CHANGE_HAS_HISTORY,
EDN_MSG__BUFFER_CHANGE_HAS_NOT_HISTORY,
EDN_MSG__BUFFER_CHANGE_HAS_FUTURE_HISTORY,
EDN_MSG__BUFFER_CHANGE_HAS_NOT_FUTURE_HISTORY,
MSG_TO_GUI__STOP,
// DESTINATION : Buffer MANAGER extern const char* const ednMsgColorHasChange;
MSG_TO_BUFFER_MANAGER__START,
// create a new buffer
EDN_MSG__NEW,
// Event For All buffer ==> goto the buffer MANAGER
EDN_MSG__BUFF_ALL_SAVE,
EDN_MSG__BUFF_ALL_CLOSE,
// Event For Specific Buffer ID : ==> GOTO the buffer MANAGER
EDN_MSG__BUFF_ID_CLOSE,
EDN_MSG__BUFF_ID_SAVE,
MSG_TO_BUFFER_MANAGER__STOP,
// DESTINATION : Working AREA extern const char* const ednMsgReloadColorFile;
MSG_TO_WORKING_AREA__START,
// GUI event for the selected buffer
EDN_MSG__CURRENT_CHANGE_BUFFER_ID,
EDN_MSG__CURRENT_SAVE,
EDN_MSG__CURRENT_SAVE_AS,
EDN_MSG__CURRENT_SELECT_ALL,
EDN_MSG__CURRENT_REMOVE_LINE,
EDN_MSG__CURRENT_UN_SELECT,
EDN_MSG__CURRENT_COPY,
EDN_MSG__CURRENT_CUT,
EDN_MSG__CURRENT_PASTE,
EDN_MSG__CURRENT_FIND_PREVIOUS,
EDN_MSG__CURRENT_FIND_OLD_PREVIOUS,
EDN_MSG__CURRENT_FIND_NEXT,
EDN_MSG__CURRENT_FIND_OLD_NEXT,
EDN_MSG__CURRENT_REPLACE,
EDN_MSG__CURRENT_REPLACE_ALL,
EDN_MSG__CURRENT_CLOSE,
EDN_MSG__CURRENT_UNDO,
EDN_MSG__CURRENT_REDO,
EDN_MSG__CURRENT_GOTO_LINE,
EDN_MSG__REFRESH_DISPLAY,
EDN_MSG__CURRENT_SET_CHARSET,
MSG_TO_WORKING_AREA__STOP,
// DESTINATION : SYSTEM ...
MSG_TO_SYSTEM__START,
MSG_TO_SYSTEM__STOP,
// DESTINATION : CTAGS ...
MSG_TO_CTAGS__START,
EDN_MSG__OPEN_CTAGS,
EDN_MSG__RELOAD_CTAGS,
EDN_MSG__JUMP_TO_CURRENT_SELECTION,
EDN_MSG__JUMP_BACK,
MSG_TO_CTAGS__STOP,
// DESTINATION : context popup ...
MSG_TO_CONTEXT__START,
MSG_TO_CONTEXT__STOP,
// DESTINATION : highlight system ...
MSG_TO_HL__START,
EDN_MSG__COLOR_HAS_CHANGE,
MSG_TO_HL__STOP,
// DESTINATION : Color System ...
MSG_TO_COLOR__START,
EDN_MSG__RELOAD_COLOR_FILE,
MSG_TO_COLOR__STOP,
}messageType_te;
typedef enum {
EDN_CAT_NONE,
EDN_CAT_GUI,
EDN_CAT_WORK_AREA,
EDN_CAT_SYSTEM,
EDN_CAT_BUFFER_MANAGER,
EDN_CAT_GUI_MANAGER,
EDN_CAT_CTAGS,
EDN_CAT_MENU_CONTEXT,
EDN_CAT_HL,
EDN_CAT_COLOR,
}messageCat_te;
typedef struct {
messageType_te msgId;
int32_t dataId;
}messageData_ts;
class MsgBroadcastCore;
class MsgBroadcast
{
private:
etk::String m_className;
MsgBroadcastCore * m_messageSystem;
messageCat_te m_cat;
public:
MsgBroadcast(const char * className, messageCat_te cat);
virtual ~MsgBroadcast(void);
// caul when a message is send
virtual void OnMessage(int32_t id, int32_t dataID);
etk::String& GetName(void) { return m_className; };
messageCat_te GetCat(void) { return m_cat; };
protected :
void SendMessage(messageType_te id, int32_t dataID = -1);
};
typedef struct {
int32_t localMessageID;
messageCat_te msgCatDest;
messageType_te msgId;
int32_t data;
}messageElement_ts;
// need to create a syngleton ...
class MsgBroadcastCore: public etk::Singleton<MsgBroadcastCore>
{
friend class etk::Singleton<MsgBroadcastCore>;
// specific for sigleton system...
private:
// Constructeur
MsgBroadcastCore(void);
~MsgBroadcastCore(void);
public:
void SendMessage(MsgBroadcast * pointerOnSender, messageType_te id, int32_t dataID = -1);
void AddReceiver(MsgBroadcast * pointerOnReceiver);
void RmReceiver(MsgBroadcast * pointerOnReceiver);
private:
etk::VectorType<MsgBroadcast*> m_listMessage;
uint32_t m_messageID;
etk::VectorType<messageElement_ts> m_listOfMessage;
};
void GeneralSendMessage(messageType_te id, int32_t dataID = -1);
#endif #endif

View File

@ -26,6 +26,7 @@
#include <tools_globals.h> #include <tools_globals.h>
#include <ColorizeManager.h> #include <ColorizeManager.h>
#include <MsgBroadcast.h> #include <MsgBroadcast.h>
#include <ewol/WidgetMessageMultiCast.h>
#undef __class__ #undef __class__
#define __class__ "globals" #define __class__ "globals"
@ -54,7 +55,7 @@ void globals::SetDisplayEndOfLine(bool newVal)
{ {
EDN_INFO("Set EndOfLine " << newVal); EDN_INFO("Set EndOfLine " << newVal);
displayEOL = newVal; displayEOL = newVal;
GeneralSendMessage(EDN_MSG__REFRESH_DISPLAY); ewol::widgetMessageMultiCast::Send(-1, ednMsgUserDisplayChange);
} }
// ----------------------------------------------------------- // -----------------------------------------------------------
@ -68,7 +69,7 @@ void globals::SetDisplaySpaceChar(bool newVal)
{ {
EDN_INFO("Set SpaceChar " << newVal); EDN_INFO("Set SpaceChar " << newVal);
displaySpaceChar = newVal; displaySpaceChar = newVal;
GeneralSendMessage(EDN_MSG__REFRESH_DISPLAY); ewol::widgetMessageMultiCast::Send(-1, ednMsgUserDisplayChange);
} }