GUI : Reload on the fly the Color file

This commit is contained in:
2011-08-19 16:09:58 +02:00
parent 0c1f6004eb
commit 514a5cf003
15 changed files with 161 additions and 35 deletions

View File

@@ -30,7 +30,7 @@
#define PFX "ColorizeManager "
ColorizeManager::ColorizeManager(void)
ColorizeManager::ColorizeManager(void) : MsgBroadcast("Colorize Manager", EDN_CAT_COLOR)
{
}
@@ -51,6 +51,33 @@ ColorizeManager::~ColorizeManager(void)
}
void ColorizeManager::OnMessage(int32_t id, int32_t dataID)
{
switch (id)
{
case EDN_MSG__RELOAD_COLOR_FILE:
{
// Remove all current color
int32_t i;
// clean all Element
for (i=0; i< listMyColor.Size(); i++) {
if (NULL != listMyColor[i]) {
delete(listMyColor[i]);
listMyColor[i] = NULL;
}
}
// clear the compleate list
listMyColor.Clear();
// Reaload File
// TODO : Check this :
Edn::String plop = m_fileColor;
LoadFile(plop.c_str());
}
break;
}
}
void ColorizeManager::LoadFile(Edn::String &xmlFilename)
{
LoadFile(xmlFilename.c_str());
@@ -58,6 +85,8 @@ void ColorizeManager::LoadFile(Edn::String &xmlFilename)
void ColorizeManager::LoadFile(const char * xmlFilename)
{
m_fileColor = xmlFilename;
EDN_DEBUG("open file (COLOR) \"" << xmlFilename << "\" ? = \"" << m_fileColor << "\"");
errorColor = new Colorize();
errorColor->SetBgColor("#000000");
errorColor->SetFgColor("#FFFFFF");
@@ -203,6 +232,7 @@ void ColorizeManager::LoadFile(const char * xmlFilename)
pNode = pNode->NextSibling();
}
}
SendMessage(EDN_MSG__COLOR_HAS_CHANGE);
}
Colorize *ColorizeManager::Get(const char *colorName)

View File

@@ -28,6 +28,7 @@
#include "Singleton.h"
#include "Colorize.h"
#include "MsgBroadcast.h"
#include "Edn.h"
typedef enum {
@@ -49,7 +50,7 @@ typedef enum {
class ColorizeManager: public Singleton<ColorizeManager>
class ColorizeManager: public Singleton<ColorizeManager>, public MsgBroadcast
{
friend class Singleton<ColorizeManager>;
// specific for sigleton system...
@@ -57,6 +58,8 @@ class ColorizeManager: public Singleton<ColorizeManager>
// Constructeur
ColorizeManager(void);
~ColorizeManager(void);
public:
void OnMessage(int32_t id, int32_t dataID);
public:
void LoadFile(Edn::String &xmlFilename);
void LoadFile(const char * xmlFilename);
@@ -68,6 +71,7 @@ class ColorizeManager: public Singleton<ColorizeManager>
void DisplayListOfColor(void);
private:
Edn::String m_fileColor;
Edn::VectorType<Colorize*> listMyColor; //!< List of ALL Color
Colorize * errorColor;
color_ts basicColors[COLOR_NUMBER_MAX];