QGIS API Documentation  3.22.4-Białowieża (ce8e65e95e)
qgisplugin.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgisplugin.h
3  --------------------------------------
4  Date : Sun Sep 16 12:12:31 AKDT 2007
5  Copyright : (C) 2007 by Gary E. Sherman
6  Email : sherman at mrcc dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
36 #ifndef QGISPLUGIN_H
37 #define QGISPLUGIN_H
38 
39 #define SIP_NO_FILE
40 
41 
42 #include <QString>
43 
44 class QgisInterface;
45 
46 //#include "qgisplugingui.h"
47 
55 {
56  public:
57 
59  //virtual QgisPluginGui *gui()=0;
61 #if 0
62  enum Elements
63  {
64  MENU,
65  MENU_ITEM,
66  TOOLBAR,
67  TOOLBAR_BUTTON,
68  };
69 
70  \todo XXX this may be a hint that there should be subclasses
71 #endif
72 
74  {
75  UI = 1,
78  };
79 
80 
84  QgisPlugin( QString const &name = "",
85  QString const &description = "",
86  QString const &category = "",
87  QString const &version = "",
89  : mName( name )
90  , mDescription( description )
91  , mCategory( category )
92  , mVersion( version )
93  , mType( type )
94  {}
95 
96  virtual ~QgisPlugin() = default;
97 
99  QString const &name() const
100  {
101  return mName;
102  }
103 
104  QString &name()
105  {
106  return mName;
107  }
108 
110  QString const &version() const
111  {
112  return mVersion;
113  }
114 
116  QString &version()
117  {
118  return mVersion;
119  }
120 
122  QString const &description() const
123  {
124  return mDescription;
125  }
126 
128  QString &description()
129  {
130  return mDescription;
131  }
132 
134  QString const &category() const
135  {
136  return mCategory;
137  }
138 
140  QString &category()
141  {
142  return mCategory;
143  }
144 
147  {
148  return mType;
149  }
150 
151 
154  {
155  return mType;
156  }
157 
159  virtual void initGui() = 0;
160 
162  virtual void unload() = 0;
163 
164  private:
165 
167  QString mName;
168 
170  QString mDescription;
171 
173  QString mCategory;
174 
176  QString mVersion;
177 
179 
184  PluginType mType;
185 
186 }; // class QgisPlugin
187 
188 
189 // Typedefs used by qgis main app
190 
193 
195 typedef void unload_t( QgisPlugin * );
196 
198 typedef const QString *name_t();
199 
201 typedef const QString *description_t();
202 
204 typedef const QString *category_t();
205 
207 typedef int type_t();
208 
210 typedef const QString *version_t();
211 
213 typedef const QString *icon_t();
214 
216 typedef const QString *experimental_t();
217 
219 typedef const QString *create_date_t();
220 
222 typedef const QString *update_date_t();
223 
224 #endif // QGISPLUGIN_H
QgisInterface Abstract base class defining interfaces exposed by QgisApp and made available to plugin...
Definition: qgisinterface.h:89
Abstract base class from which all plugins must inherit.
Definition: qgisplugin.h:55
QString const & name() const
Gets the name of the plugin.
Definition: qgisplugin.h:99
QString const & version() const
Version of the plugin.
Definition: qgisplugin.h:110
QgisPlugin::PluginType & type()
Plugin type, either UI or map layer.
Definition: qgisplugin.h:153
virtual ~QgisPlugin()=default
QgisPlugin::PluginType const & type() const
Plugin type, either UI or map layer.
Definition: qgisplugin.h:146
QString const & category() const
Plugin category.
Definition: qgisplugin.h:134
virtual void initGui()=0
function to initialize connection to GUI
PluginType
Interface to gui element collection object.
Definition: qgisplugin.h:74
@ Renderer
A plugin for a new renderer class.
Definition: qgisplugin.h:77
@ MapLayer
Map layer plug-in.
Definition: qgisplugin.h:76
@ UI
User interface plug-in.
Definition: qgisplugin.h:75
QString const & description() const
A brief description of the plugin.
Definition: qgisplugin.h:122
QString & description()
A brief description of the plugin.
Definition: qgisplugin.h:128
virtual void unload()=0
Unload the plugin and cleanup the GUI.
QString & name()
Definition: qgisplugin.h:104
QString & category()
Plugin category.
Definition: qgisplugin.h:140
QgisPlugin(QString const &name="", QString const &description="", QString const &category="", QString const &version="", PluginType type=MapLayer)
Constructor for QgisPlugin.
Definition: qgisplugin.h:84
QString & version()
Version of the plugin.
Definition: qgisplugin.h:116
const QString * update_date_t()
Typedef for getting the update date status without instantiating the plugin.
Definition: qgisplugin.h:222
const QString * description_t()
Typedef for getting the description without instantiating the plugin.
Definition: qgisplugin.h:201
const QString * category_t()
Typedef for getting the category without instantiating the plugin.
Definition: qgisplugin.h:204
const QString * create_date_t()
Typedef for getting the create date without instantiating the plugin.
Definition: qgisplugin.h:219
void unload_t(QgisPlugin *)
Typedef for the function to unload a plugin and free its resources.
Definition: qgisplugin.h:195
int type_t()
Typedef for getting the plugin type without instantiating the plugin.
Definition: qgisplugin.h:207
const QString * version_t()
Typedef for getting the plugin version without instantiating the plugin.
Definition: qgisplugin.h:210
QgisPlugin * create_t(QgisInterface *)
Typedef for the function that returns a generic pointer to a plugin object.
Definition: qgisplugin.h:192
const QString * experimental_t()
Typedef for getting the experimental status without instantiating the plugin.
Definition: qgisplugin.h:216
const QString * name_t()
Typedef for getting the name of the plugin without instantiating it.
Definition: qgisplugin.h:198
const QString * icon_t()
Typedef for getting the plugin icon file name without instantiating the plugin.
Definition: qgisplugin.h:213