Move to gitHub the edn project (remove history keep it on my nas)

This commit is contained in:
2011-07-20 10:33:24 +02:00
parent e777f0ad0f
commit e201a51a38
152 changed files with 31575 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
/**
*******************************************************************************
* @file AccelKey.cpp
* @brief Editeur De N'ours : Basic Gui Accelerator Key (common for ALL) or nearly (Sources)
* @author Edouard DUPIN
* @date 17/06/2011
* @par Project
* Edn
*
* @par Copyright
* Copyright 2010 Edouard DUPIN, all right reserved
*
* This software is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY.
*
* Licence summary :
* You can modify and redistribute the sources code and binaries.
* You can send me the bug-fix
* You can not earn money with this Software (if the source extract from Edn
* represent less than 50% of original Sources)
* Term of the licence in in the file licence.txt.
*
*******************************************************************************
*/
#include "tools_debug.h"
#include "AccelKey.h"
AccelKey::AccelKey(void)
{
m_accelGroup = gtk_accel_group_new();
}
AccelKey::~AccelKey(void)
{
}
void AccelKey::SetAccel(GtkWidget * widget, char * accelKey)
{
SetAccel(widget, m_accelGroup, accelKey);
}
void AccelKey::SetAccel(GtkWidget * widget, GtkAccelGroup * accel, char * accelKey)
{
guint accel_key = 0;
int32_t accel_mods = 0;
if( NULL==accelKey
|| 0==strlen(accelKey))
{
return;
}
// parsing of the string :
//"ctrl+shift+alt+pomme+s"
//EDN_DEBUG("Parse acxel string : \"" << accelKey << "\"");
char * tmp = strstr(accelKey, "ctrl");
if(NULL != tmp) {
accel_mods |= GDK_CONTROL_MASK;
//EDN_DEBUG(" => find CTRL");
}
tmp = strstr(accelKey, "shift");
if(NULL != tmp) {
accel_mods |= GDK_SHIFT_MASK;
//EDN_DEBUG(" => find SHIFT");
}
tmp = strstr(accelKey, "alt");
if(NULL != tmp) {
accel_mods |= GDK_MOD1_MASK;
//EDN_DEBUG(" => find ALT");
}
tmp = strstr(accelKey, "pomme");
if(NULL != tmp) {
accel_mods |= GDK_MOD2_MASK;
//EDN_DEBUG(" => find POMME");
}
accel_key = accelKey[strlen(accelKey) -1];
//char plop = accel_key;
//EDN_DEBUG(" => find letter : '" << plop << "'");
// Ajout du racourcis clavier :
gtk_widget_add_accelerator( widget, "activate", accel,
accel_key, // key
(GdkModifierType)accel_mods, // modifier keys
GTK_ACCEL_VISIBLE);
}
void AccelKey::LinkCommonAccel(GtkWidget * widget)
{
gtk_window_add_accel_group(GTK_WINDOW(widget), m_accelGroup);
}
void AccelKey::LinkCommonAccel(GtkWindow * widget)
{
gtk_window_add_accel_group(GTK_WINDOW(widget), m_accelGroup);
}

View File

@@ -0,0 +1,56 @@
/**
*******************************************************************************
* @file AccelKey.h
* @brief Editeur De N'ours : Basic Gui Accelerator Key (common for ALL) or nearly (header)
* @author Edouard DUPIN
* @date 17/06/2011
* @par Project
* Edn
*
* @par Copyright
* Copyright 2010 Edouard DUPIN, all right reserved
*
* This software is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY.
*
* Licence summary :
* You can modify and redistribute the sources code and binaries.
* You can send me the bug-fix
* You can not earn money with this Software (if the source extract from Edn
* represent less than 50% of original Sources)
* Term of the licence in in the file licence.txt.
*
*******************************************************************************
*/
#ifndef __ACCEL_KEY_H__
#define __ACCEL_KEY_H__
#include "tools_debug.h"
#include "Singleton.h"
// need to create a syngleton ...
class AccelKey: public Singleton<AccelKey>
{
friend class Singleton<AccelKey>;
// specific for sigleton system...
private:
// Constructeur
AccelKey(void);
~AccelKey(void);
public:
// for internal Parsing
void SetAccel(GtkWidget * widget, char * accelKey);
// For external parsing
void SetAccel(GtkWidget * widget, GtkAccelGroup * accel, char * accelKey);
void LinkCommonAccel(GtkWidget * widget);
void LinkCommonAccel(GtkWindow * widget);
GtkAccelGroup * GetAccel(void) { return m_accelGroup; };
private:
GtkAccelGroup * m_accelGroup;
};
#endif

View File

@@ -0,0 +1,260 @@
/**
*******************************************************************************
* @file MsgBroadcast.cpp
* @brief Editeur De N'ours : message beetween thread and GUI elements ... (Souces)
* @author Edouard DUPIN
* @date 04/02/2011
* @par Project
* Edn
*
* @par Copyright
* Copyright 2010 Edouard DUPIN, all right reserved
*
* This software is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY.
*
* Licence summary :
* You can modify and redistribute the sources code and binaries.
* You can send me the bug-fix
* You can not earn money with this Software (if the source extract from Edn
* represent less than 50% of original Sources)
* Term of the licence in in the file licence.txt.
*
*******************************************************************************
*/
#include "tools_debug.h"
#include "tools_globals.h"
#include "MsgBroadcast.h"
#undef __class__
#define __class__ "MsgBroadcast"
MsgBroadcast::MsgBroadcast(const char * className, messageCat_te cat)
{
m_messageSystem = MsgBroadcastCore::getInstance();
m_className = className;
m_cat = cat;
// add on listner
m_messageSystem->AddReceiver(this);
}
MsgBroadcast::~MsgBroadcast(void)
{
m_messageSystem->RmReceiver(this);
m_messageSystem = NULL;
}
void MsgBroadcast::OnMessage(int32_t id, int32_t dataID)
{
// nothing to do here
}
void MsgBroadcast::SendMessage(messageType_te id, int32_t dataID)
{
m_messageSystem->SendMessage(this, id, dataID);
}
#undef __class__
#define __class__ "MsgBroadcastCore"
// 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__QUIT)
MACRO_DISPLAY_MSG(EDN_MSG__BUFFER_CHANGE_CURRENT)
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__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)
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";
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;
}
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::getInstance()->SendMessage(NULL, id, dataID);
}

View File

@@ -0,0 +1,198 @@
/**
*******************************************************************************
* @file MsgBroadcast.h
* @brief Editeur De N'ours : message beetween thread and GUI elements ... (header)
* @author Edouard DUPIN
* @date 04/02/2011
* @par Project
* Edn
*
* @par Copyright
* Copyright 2010 Edouard DUPIN, all right reserved
*
* This software is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY.
*
* Licence summary :
* You can modify and redistribute the sources code and binaries.
* You can send me the bug-fix
* You can not earn money with this Software (if the source extract from Edn
* represent less than 50% of original Sources)
* Term of the licence in in the file licence.txt.
*
*******************************************************************************
*/
#ifndef __MSG_BROADCAST_H__
#define __MSG_BROADCAST_H__
#include "tools_debug.h"
#include "Edn.h"
#include "Singleton.h"
// broadCast Message
// Message to prevent the curent thread that Buffer has changed
// the ID we'll use to identify our event
typedef enum {
EDN_MSG__NONE = 0,
// Programm is Quitting... close all if needed ...
EDN_MSG__QUIT,
EDN_MSG__BUFFER_CHANGE_CURRENT, // set the new current BUFFER ...
// DESTINATION : GUI_MANAGER
MSG_TO_GUI_MANAGER__START,
// GUI windows openning and closing
EDN_MSG__GUI_SHOW_MAIN_WINDOWS,
EDN_MSG__GUI_SHOW_SEARCH,
EDN_MSG__GUI_SHOW_PREFERENCE,
EDN_MSG__GUI_SHOW_REPLACE,
EDN_MSG__GUI_SHOW_OPEN_FILE,
EDN_MSG__GUI_SHOW_SAVE_AS,
EDN_MSG__GUI_SHOW_GOTO_LINE,
MSG_TO_GUI_MANAGER__STOP,
// DESTINATION : GUI
// generate by the current buffer to said the buffer has changing
MSG_TO_GUI__START,
EDN_MSG__BUFFER_REMOVE,
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
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
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,
}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,
}messageCat_te;
typedef struct {
messageType_te msgId;
int32_t dataId;
}messageData_ts;
class MsgBroadcastCore;
class MsgBroadcast
{
private:
Edn::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);
Edn::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 Singleton<MsgBroadcastCore>
{
friend class 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:
EdnVectorBin<MsgBroadcast*> m_listMessage;
uint32_t m_messageID;
EdnVectorBin<messageElement_ts> m_listOfMessage;
};
void GeneralSendMessage(messageType_te id, int32_t dataID = -1);
#endif