X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fitoolbar.h;h=62d82b6ec889e83f5b1641bd92b821067525dc22;hb=f22aa5e5da46b8200629d79da5490131885a6f28;hp=40c0254a66d1c8d84b44623ff2cc945ff10f77ff;hpb=830125fad042fad35dc029b6eb57c8156ad7e176;p=xonotic%2Fnetradiant.git diff --git a/include/itoolbar.h b/include/itoolbar.h index 40c0254a..62d82b6e 100644 --- a/include/itoolbar.h +++ b/include/itoolbar.h @@ -1,5 +1,5 @@ /* - Copyright (C) 1999-2007 id Software, Inc. and contributors. + 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. @@ -19,16 +19,11 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef __IPLUGTOOLBAR_H_ -#define __IPLUGTOOLBAR_H_ +#if !defined( INCLUDED_IPLUGTOOLBAR_H ) +#define INCLUDED_IPLUGTOOLBAR_H -/* - NOTE: this API requires Gtk - it's a good practice to avoid putting #include here - in some cases, the compiler will get confused because of 'list' identifiers between Gtk and STL headers - */ - -#define TOOLBAR_MAJOR "toolbar" +#include +#include "generic/constant.h" class IToolbarButton { @@ -41,7 +36,6 @@ enum EType eRadioButton, }; -virtual ~IToolbarButton() { } virtual const char* getImage() const = 0; virtual const char* getText() const = 0; virtual const char* getTooltip() const = 0; @@ -49,14 +43,24 @@ virtual EType getType() const = 0; virtual void activate() const = 0; }; -typedef unsigned int ( *PFN_TOOLBARBUTTONCOUNT )(); -typedef const IToolbarButton* ( *PFN_GETTOOLBARBUTTON )( unsigned int index ); +typedef std::size_t ( *PFN_TOOLBARBUTTONCOUNT )(); +typedef const IToolbarButton* ( *PFN_GETTOOLBARBUTTON )( std::size_t index ); struct _QERPlugToolbarTable { - int m_nSize; + INTEGER_CONSTANT( Version, 1 ); + STRING_CONSTANT( Name, "toolbar" ); + PFN_TOOLBARBUTTONCOUNT m_pfnToolbarButtonCount; PFN_GETTOOLBARBUTTON m_pfnGetToolbarButton; }; +template +class Modules; +typedef Modules<_QERPlugToolbarTable> ToolbarModules; + +template +class ModulesRef; +typedef ModulesRef<_QERPlugToolbarTable> ToolbarModulesRef; + #endif