/***************************************************************
* Name: wxsmith.h
* Purpose: Code::Blocks plugin
* Author: BYO<byo@o2.pl>
* Created: 04/10/05 01:05:08
* Copyright: (c) BYO
* License: GPL
**************************************************************/
#ifndef WXSMITH_H
#define WXSMITH_H
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "wxsmith.h"
#endif
// For compilers that support precompilation, includes <wx/wx.h>
#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
#include <wx/splitter.h>
#include <wx/scrolwin.h>
#include <cbplugin.h>
#include <settings.h>
#include <sdk_events.h>
#include <map>
#include "wxsproject.h"
#include "wxsevent.h"
#include "wxssplitterwindow.h"
class wxsProject;
class wxSmith : public cbPlugin
{
public:
wxSmith();
~wxSmith();
static wxSmith* Get() { return Singleton; }
int Configure();
void BuildMenu(wxMenuBar* menuBar);
void BuildModuleMenu(const ModuleType type, wxMenu* menu, const wxString& arg);
bool BuildToolBar(wxToolBar* toolBar);
void OnAttach(); // fires when the plugin is attached to the application
void OnRelease(bool appShutDown); // fires when the plugin is released from the application
/* Function used while selecting resource in resource browser */
void OnSelectResource(wxsResourceTreeData* Data);
/* Getting current resourcec tree */
wxTreeCtrl* GetResourceTree() { return ResourceBrowser; }
wxsProject* GetSmithProject(cbProject* Proj);
cbProject* GetCBProject(wxsProject* Proj);
protected:
private:
wxTreeCtrl* ResourceBrowser;
wxScrolledWindow* PropertiesPanel;
wxScrolledWindow* EventsPanel;
wxsSplitterWindowEx* LeftSplitter;
/* Here's bridge between current C::B project and wxSmith projects */
typedef std::map<cbProject*,wxsProject*> ProjectMapT;
typedef ProjectMapT::iterator ProjectMapI;
ProjectMapT ProjectMap;
bool AddSmithToProject(wxsProject* Project);
/* Event processing functions */
void OnProjectClose(CodeBlocksEvent& event);
void OnProjectOpen(CodeBlocksEvent& event);
void OnProjectActivated(CodeBlocksEvent& event);
void OnNewWindow(wxCommandEvent& event);
void OnImportXrc(wxCommandEvent& event);
/* Internal event-processing functions */
void OnSpreadEvent(wxsEvent& event);
/** Function checking and adding wxSmith support for current project */
bool CheckIntegration();
/* Singleton object */
static wxSmith* Singleton;
DECLARE_EVENT_TABLE()
};
CB_DECLARE_PLUGIN();
#endif // WXSMITH_H
syntax highlighted by Code2HTML, v. 0.9.1