2 Copyright (C) 2001-2006, William Joseph.
5 This file is part of GtkRadiant.
7 GtkRadiant is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 GtkRadiant is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GtkRadiant; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 #include "debugging/debugging.h"
28 #include "string/string.h"
29 #include "modulesystem/singletonmodule.h"
34 const char* init(void* hApp, void* pMainWidget)
40 return "Sample Plugin";
42 const char* getCommandList()
44 return "About;Do Something";
46 const char* getCommandTitleList()
50 void dispatch(const char* command, float* vMin, float* vMax, bool bSingleBrush)
52 if(string_equal(command, "About"))
54 globalOutputStream() << "Sample Demo Plugin\n";
56 if(string_equal(command, "Do Something"))
58 globalOutputStream() << "Sample Command\n";
64 class SamplePluginModule
66 _QERPluginTable m_plugin;
68 typedef _QERPluginTable Type;
69 STRING_CONSTANT(Name, "sample");
73 m_plugin.m_pfnQERPlug_Init = &Sample::init;
74 m_plugin.m_pfnQERPlug_GetName = &Sample::getName;
75 m_plugin.m_pfnQERPlug_GetCommandList = &Sample::getCommandList;
76 m_plugin.m_pfnQERPlug_GetCommandTitleList = &Sample::getCommandTitleList;
77 m_plugin.m_pfnQERPlug_Dispatch = &Sample::dispatch;
79 _QERPluginTable* getTable()
85 typedef SingletonModule<SamplePluginModule> SingletonSamplePluginModule;
87 SingletonSamplePluginModule g_SamplePluginModule;
90 extern "C" void RADIANT_DLLEXPORT Radiant_RegisterModules(ModuleServer& server)
92 initialiseModule(server);
94 g_SamplePluginModule.selfRegister();