1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
#ifndef __CodeDesigner__
#define __CodeDesigner__
#include "plugin.h"
#include "codedesigneritemdlg.h"
#include <wx/ipc.h>
#include <wx/list.h>
class CDServer;
class CDConnection;
class CodeDesigner : public IPlugin
{
public:
CodeDesigner(IManager *manager);
~CodeDesigner();
IManager* GetManager() { return m_mgr; }
void RetagWorkspace();
bool AddFilesToWorkspace(wxArrayString& paths, CDConnection *connectio );
//--------------------------------------------
//Abstract methods
//--------------------------------------------
virtual clToolBar *CreateToolBar(wxWindow *parent);
virtual void CreatePluginMenu(wxMenu *pluginsMenu);
virtual void HookPopupMenu(wxMenu *menu, MenuType type);
virtual void UnHookPopupMenu(wxMenu *menu, MenuType type);
virtual void UnPlug();
protected:
bool m_addFileMenu;
wxMenuItem* m_separatorItem;
CDServer *m_Server;
wxMenu *CreatePopupMenu();
void DoLaunchCD(const wxString &file);
void DoCreateCDProject(CDItemInfo &info);
wxString GetCDPath();
void StartServer();
void OnSettings(wxCommandEvent &e);
void OnOpenFile(wxCommandEvent &e);
void OnOpenWithCD(wxCommandEvent &e);
void OnUpdateOpenWithCD(wxUpdateUIEvent &e);
void OnCDTerminated(wxCommandEvent &e);
void OnNewSCH(wxCommandEvent &e);
void OnNewHSCH(wxCommandEvent &e);
void OnNewCD(wxCommandEvent &e);
void OnPokeData(wxCommandEvent &e);
};
class CDServer;
class CDConnection : public wxConnection
{
public:
CDConnection(CDServer *server);
virtual ~CDConnection();
virtual bool OnPoke(const wxString& topic, const wxString& item, wxChar *data, int size, wxIPCFormat format);
virtual bool OnDisconnect();
void SetTreeFolder(const wxString& TreeFolder) {this->m_TreeFolder = TreeFolder;}
const wxString& GetTreeFolder() const {return m_TreeFolder;}
protected:
CDServer *m_Server;
wxString m_TreeFolder;
};
WX_DECLARE_LIST(CDConnection, ConnectionList);
class CDServer : public wxServer
{
public:
CDServer();
virtual ~CDServer();
void Disconnect(CDConnection *connection);
virtual wxConnectionBase *OnAcceptConnection(const wxString& topic);
protected:
ConnectionList m_Connections;
};
#endif //CodeDesigner
|