* added filter api to create new filters from within plugins

* TTimo, please have a look at the mainframe.cpp part


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/branches/ZeroRadiant@208 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
mattn
2008-03-16 09:42:56 +00:00
parent ed9b7a9265
commit eaa3e3169f
5 changed files with 36 additions and 8 deletions

View File

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "plugin.h"
#define CMD_SEP "-"
#define CMD_SEP "-"
#define CMD_ABOUT "About..."
// =============================================================================
// Globals
@@ -60,12 +60,12 @@ typedef struct toolbar_button_info_s
IToolbarButton::EType type;
} toolbar_button_info_t;
static const toolbar_button_info_t toolbar_buttons[NUM_TOOLBAR_BUTTONS] =
static const toolbar_button_info_t toolbar_buttons[NUM_TOOLBAR_BUTTONS] =
{
{
"sample.bmp",
"Sample",
"Sample image",
"Sample image",
DoSample,
IToolbarButton::eToggleButton
},
@@ -146,7 +146,7 @@ CSynapseClientSample g_SynapseClient;
#if __GNUC__ >= 4
#pragma GCC visibility push(default)
#endif
extern "C" CSynapseClient* SYNAPSE_DLL_EXPORT Synapse_EnumerateInterfaces (const char *version, CSynapseServer *pServer)
extern "C" CSynapseClient* SYNAPSE_DLL_EXPORT Synapse_EnumerateInterfaces (const char *version, CSynapseServer *pServer)
{
#if __GNUC__ >= 4
#pragma GCC visibility pop
@@ -161,7 +161,7 @@ extern "C" CSynapseClient* SYNAPSE_DLL_EXPORT Synapse_EnumerateInterfaces (const
g_SynapseClient.AddAPI(TOOLBAR_MAJOR, SAMPLE_MINOR, sizeof(_QERPlugToolbarTable));
g_SynapseClient.AddAPI(PLUGIN_MAJOR, SAMPLE_MINOR, sizeof(_QERPluginTable));
g_SynapseClient.AddAPI(RADIANT_MAJOR, NULL, sizeof(g_FuncTable), SYN_REQUIRE, &g_FuncTable);
g_SynapseClient.AddAPI(QGL_MAJOR, NULL, sizeof(g_QglTable), SYN_REQUIRE, &g_QglTable);
g_SynapseClient.AddAPI(VFS_MAJOR, "*", sizeof(g_FileSystemTable), SYN_REQUIRE, &g_FileSystemTable);
@@ -177,7 +177,7 @@ bool CSynapseClientSample::RequestAPI (APIDescriptor_t *pAPI)
{
if (!strcmp(pAPI->major_name, PLUGIN_MAJOR)) {
_QERPluginTable* pTable= static_cast<_QERPluginTable*>(pAPI->mpTable);
pTable->m_pfnQERPlug_Init = QERPlug_Init;
pTable->m_pfnQERPlug_GetName = QERPlug_GetName;
pTable->m_pfnQERPlug_GetCommandList = QERPlug_GetCommandList;
@@ -185,12 +185,12 @@ bool CSynapseClientSample::RequestAPI (APIDescriptor_t *pAPI)
return true;
} else if (!strcmp(pAPI->major_name, TOOLBAR_MAJOR)) {
_QERPlugToolbarTable* pTable= static_cast<_QERPlugToolbarTable*>(pAPI->mpTable);
pTable->m_pfnToolbarButtonCount = &ToolbarButtonCount;
pTable->m_pfnGetToolbarButton = &GetToolbarButton;
return true;
}
Syn_Printf("ERROR: RequestAPI( '%s' ) not found in '%s'\n", pAPI->major_name, GetInfo());
return false;
}