Remove the (now unused) master_passphrase_change plugin function.
[claws.git] / src / common / plugin.h
index d770e9851b18a256ba67701f8c6a11a2ba99c36b..cc727462090f8cfb5e85a221dd2808f9267c127c 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2006 Hiroyuki Yamamoto and the Sylpheed-Claws Team
+ * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
+ * Copyright (C) 2002-2015 the Claws Mail Team
  *
  * This program 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
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -13,8 +13,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef PLUGIN_H
 
 typedef struct _Plugin Plugin;
 
+typedef enum {
+       PLUGIN_NOTHING,
+       PLUGIN_MIMEVIEWER,
+       PLUGIN_MIMEPARSER,
+       PLUGIN_FOLDERCLASS,
+       PLUGIN_FILTERING,
+       PLUGIN_PRIVACY,
+       PLUGIN_NOTIFIER,
+       PLUGIN_UTILITY,
+       PLUGIN_OTHER
+} PluginFeatureType;
+
+struct PluginFeature {
+       PluginFeatureType type;
+       const gchar *subtype;
+};
+
 /* Functions to implement by the plugin */
 gint plugin_init               (gchar          **error);
-void plugin_done               (void);
+gboolean plugin_done           (void);
 const gchar *plugin_name       (void);
 const gchar *plugin_desc       (void);
 const gchar *plugin_version    (void);
+struct PluginFeature *plugin_provides (void);
+const gchar *plugin_type       (void);
+const gchar *plugin_licence    (void);
 
-/* Functions by the sylpheed plugin system */
+/* Functions by the Claws Mail plugin system */
 Plugin *plugin_load            (const gchar     *filename,
                                 gchar          **error);
 void plugin_unload             (Plugin          *plugin);
 void plugin_load_all           (const gchar     *type);
 void plugin_unload_all         (const gchar     *type);
 void plugin_save_list          (void);
+void plugin_load_standard_plugins (void);
 
 GSList *plugin_get_list                (void);
+GSList *plugin_get_unloaded_list(void);
 const gchar *plugin_get_name   (Plugin          *plugin);
 const gchar *plugin_get_desc   (Plugin          *plugin);
 const gchar *plugin_get_version        (Plugin          *plugin);
-
+const gchar *plugin_get_error  (Plugin          *plugin);
+Plugin      *plugin_get_loaded_by_name(const gchar *name);
+gint check_plugin_version      (guint32 minimum_claws_version,
+                                guint32 compiled_claws_version,
+                                const gchar *plugin_name,
+                                gchar **error);
 #endif