wxWidgets/utils/wxPython/modules/lseditor/plugin.h
Harco de Hilster 4b123bb9cc lots'o' wxpython modules files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-08-11 17:14:49 +00:00

99 lines
2.2 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: wxsplbase.h
// Purpose: General interfaces for all plug-ins in wxStudio
// Author: Aleksandras Gluchovas
// Modified by:
// Created: 11/04/1999
// RCS-ID: $Id$
// Copyright: (c) Aleskandars Gluchovas
// Licence: GNU General Public License wxWindows licence v2.0
/////////////////////////////////////////////////////////////////////////////
#ifndef __PLUGIN_G__
#define __PLUGIN_G__
#include "wxstldefs.h"
#include "wxsdefs.h"
class wxsPluginBase;
typedef wxsPluginBase* wxsPluginBasePtrT;
#ifdef wxUSE_TEMPLATE_STL
typedef vector<wxsPluginBasePtrT> wxsPluginListT;
#else
typedef WXSTL_VECTOR_SHALLOW_COPY(wxsPluginBasePtrT) wxsPluginListT;
#endif
class wxsPluginManager : public wxObject
{
public:
wxsPluginListT& GetPlugins();
// allows to present plugin-specific features
// as items in the menu-bar
void RegisterMenuCommand( const string& itemName,
const string& menuName,
int id,
wxsPluginBase* forPlugin );
// should be called by plugin, when it's being destroyed
void UnregisterPlugin( wxsPluginBase* plugin );
};
// Used by create settings panel:
enum {
WXS_SETTINGS_GLOBAL,
WXS_SETTINGS_PROJECT
};
class wxsPluginBase : public wxObject
{
protected:
wxsPluginManager* mpPluginMgr;
public:
wxsPluginBase();
virtual ~wxsPluginBase();
virtual void InitPlugin() {}
// utilities
wxsPluginManager& GetPluginManager();
void SetPluginManager( wxsPluginManager* mgr );
// overridables
// Current Types = UNKNOWN,EDITOR,CLASSBROWSER,FILEBROWSER,CLASSINFO,TOOL
virtual WXS_PLUGIN_TYPE GetType() = 0;
virtual string GetCategory() = 0;
virtual string GetName() = 0;
// will return a help panel
virtual wxWindow* CreateSettingsPanel(wxWindow *parent, int type) {return NULL;}
virtual wxsPluginBase* Clone() = 0;
virtual string Command( const string& name, const string& args )
{ return "NO_SUPPORTED"; }
};
// base clas for all plugins which are presented as windows
class wxsComponent : public wxsPluginBase
{
public:
virtual void Create( wxWindow* parent, wxWindowID id ) = 0;
virtual wxWindow* GetWindow() = 0;
};
#endif
// __PLUGIN_G__