X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=include%2Fiplugin.h;h=a67160be7721f290d7c66ee3262d3179019d12cd;hb=fff4340802f7ea77fddbb6393bc4fd20ed8752d8;hp=3f21bfeff1261c1f652dc07af1db6232b67f4c30;hpb=ab3a99dbbe84a0d130fea4d0ceb7b79d7ed07eb7;p=xonotic%2Fnetradiant.git diff --git a/include/iplugin.h b/include/iplugin.h index 3f21bfef..a67160be 100644 --- a/include/iplugin.h +++ b/include/iplugin.h @@ -1,41 +1,53 @@ /* -Copyright (C) 1999-2007 id Software, Inc. and contributors. -For a list of contributors, see the accompanying CONTRIBUTORS file. + Copyright (C) 1999-2006 Id Software, Inc. and contributors. + For a list of contributors, see the accompanying CONTRIBUTORS file. -This file is part of GtkRadiant. + This file is part of GtkRadiant. -GtkRadiant is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + GtkRadiant is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -GtkRadiant is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + GtkRadiant is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with GtkRadiant; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ + You should have received a copy of the GNU General Public License + along with GtkRadiant; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ -#ifndef _IPLUGIN_H_ -#define _IPLUGIN_H_ +#if !defined( INCLUDED_IPLUGIN_H ) +#define INCLUDED_IPLUGIN_H -#define PLUGIN_MAJOR "plugin" +#include "generic/constant.h" -typedef const char* (* PFN_QERPLUG_INIT) (void* hApp, void* pMainWidget); -typedef const char* (* PFN_QERPLUG_GETNAME) (); -typedef const char* (* PFN_QERPLUG_GETCOMMANDLIST) (); -typedef void (* PFN_QERPLUG_DISPATCH) (const char* p, float* vMin, float* vMax, bool bSingleBrush); +typedef const char* ( *PFN_QERPLUG_INIT )( void* hApp, void* pMainWidget ); +typedef const char* ( *PFN_QERPLUG_GETNAME )(); +typedef const char* ( *PFN_QERPLUG_GETCOMMANDLIST )(); +typedef const char* ( *PFN_QERPLUG_GETCOMMANDTITLELIST )(); +typedef void ( *PFN_QERPLUG_DISPATCH )( const char* p, float* vMin, float* vMax, bool bSingleBrush ); struct _QERPluginTable { - int m_nSize; - PFN_QERPLUG_INIT m_pfnQERPlug_Init; - PFN_QERPLUG_GETNAME m_pfnQERPlug_GetName; - PFN_QERPLUG_GETCOMMANDLIST m_pfnQERPlug_GetCommandList; - PFN_QERPLUG_DISPATCH m_pfnQERPlug_Dispatch; + INTEGER_CONSTANT( Version, 1 ); + STRING_CONSTANT( Name, "plugin" ); + + PFN_QERPLUG_INIT m_pfnQERPlug_Init; + PFN_QERPLUG_GETNAME m_pfnQERPlug_GetName; + PFN_QERPLUG_GETCOMMANDLIST m_pfnQERPlug_GetCommandList; + PFN_QERPLUG_GETCOMMANDTITLELIST m_pfnQERPlug_GetCommandTitleList; + PFN_QERPLUG_DISPATCH m_pfnQERPlug_Dispatch; }; +template +class Modules; +typedef Modules<_QERPluginTable> PluginModules; + +template +class ModulesRef; +typedef ModulesRef<_QERPluginTable> PluginModulesRef; + #endif