summaryrefslogtreecommitdiffstats
path: root/app/plug-in/gimppluginprocedure.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--app/plug-in/gimppluginprocedure.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/app/plug-in/gimppluginprocedure.h b/app/plug-in/gimppluginprocedure.h
new file mode 100644
index 0000000..e462040
--- /dev/null
+++ b/app/plug-in/gimppluginprocedure.h
@@ -0,0 +1,140 @@
+/* GIMP - The GNU Image Manipulation Program
+ * Copyright (C) 1995 Spencer Kimball and Peter Mattis
+ *
+ * gimppluginprocedure.h
+ *
+ * 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GIMP_PLUG_IN_PROCEDURE_H__
+#define __GIMP_PLUG_IN_PROCEDURE_H__
+
+
+#include "pdb/gimpprocedure.h"
+
+
+#define GIMP_TYPE_PLUG_IN_PROCEDURE (gimp_plug_in_procedure_get_type ())
+#define GIMP_PLUG_IN_PROCEDURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PLUG_IN_PROCEDURE, GimpPlugInProcedure))
+#define GIMP_PLUG_IN_PROCEDURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PLUG_IN_PROCEDURE, GimpPlugInProcedureClass))
+#define GIMP_IS_PLUG_IN_PROCEDURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_PLUG_IN_PROCEDURE))
+#define GIMP_IS_PLUG_IN_PROCEDURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_PLUG_IN_PROCEDURE))
+#define GIMP_PLUG_IN_PROCEDURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_PLUG_IN_PROCEDURE, GimpPlugInProcedureClass))
+
+
+typedef struct _GimpPlugInProcedureClass GimpPlugInProcedureClass;
+
+struct _GimpPlugInProcedure
+{
+ GimpProcedure parent_instance;
+
+ /* common members */
+ GFile *file;
+ GQuark locale_domain;
+ GQuark help_domain;
+ gchar *menu_label;
+ GList *menu_paths;
+ gchar *label;
+ gchar *help_id;
+ GimpIconType icon_type;
+ gint icon_data_length;
+ guint8 *icon_data;
+ gchar *image_types;
+ GimpPlugInImageType image_types_val;
+ gchar *image_types_tooltip;
+ gint64 mtime;
+ gboolean installed_during_init;
+
+ /* file proc specific members */
+ gboolean file_proc;
+ gchar *extensions;
+ gchar *prefixes;
+ gchar *magics;
+ gint priority;
+ gchar *mime_types;
+ gboolean handles_uri;
+ gboolean handles_raw;
+ GSList *extensions_list;
+ GSList *prefixes_list;
+ GSList *magics_list;
+ GSList *mime_types_list;
+ gchar *thumb_loader;
+};
+
+struct _GimpPlugInProcedureClass
+{
+ GimpProcedureClass parent_class;
+
+ /* virtual functions */
+ GFile * (* get_file) (GimpPlugInProcedure *procedure);
+
+ /* signals */
+ void (* menu_path_added) (GimpPlugInProcedure *procedure,
+ const gchar *menu_path);
+};
+
+
+GType gimp_plug_in_procedure_get_type (void) G_GNUC_CONST;
+
+GimpProcedure * gimp_plug_in_procedure_new (GimpPDBProcType proc_type,
+ GFile *file);
+
+GimpPlugInProcedure * gimp_plug_in_procedure_find (GSList *list,
+ const gchar *proc_name);
+
+GFile * gimp_plug_in_procedure_get_file (GimpPlugInProcedure *proc);
+
+void gimp_plug_in_procedure_set_locale_domain (GimpPlugInProcedure *proc,
+ const gchar *locale_domain);
+const gchar * gimp_plug_in_procedure_get_locale_domain (GimpPlugInProcedure *proc);
+
+void gimp_plug_in_procedure_set_help_domain (GimpPlugInProcedure *proc,
+ const gchar *help_domain);
+const gchar * gimp_plug_in_procedure_get_help_domain (GimpPlugInProcedure *proc);
+
+gboolean gimp_plug_in_procedure_add_menu_path (GimpPlugInProcedure *proc,
+ const gchar *menu_path,
+ GError **error);
+
+void gimp_plug_in_procedure_set_icon (GimpPlugInProcedure *proc,
+ GimpIconType type,
+ const guint8 *data,
+ gint data_length);
+void gimp_plug_in_procedure_take_icon (GimpPlugInProcedure *proc,
+ GimpIconType type,
+ guint8 *data,
+ gint data_length);
+
+void gimp_plug_in_procedure_set_image_types (GimpPlugInProcedure *proc,
+ const gchar *image_types);
+void gimp_plug_in_procedure_set_file_proc (GimpPlugInProcedure *proc,
+ const gchar *extensions,
+ const gchar *prefixes,
+ const gchar *magics);
+void gimp_plug_in_procedure_set_priority (GimpPlugInProcedure *proc,
+ gint priority);
+void gimp_plug_in_procedure_set_mime_types (GimpPlugInProcedure *proc,
+ const gchar *mime_ypes);
+void gimp_plug_in_procedure_set_handles_uri (GimpPlugInProcedure *proc);
+void gimp_plug_in_procedure_set_handles_raw (GimpPlugInProcedure *proc);
+void gimp_plug_in_procedure_set_thumb_loader (GimpPlugInProcedure *proc,
+ const gchar *thumbnailer);
+
+void gimp_plug_in_procedure_handle_return_values (GimpPlugInProcedure *proc,
+ Gimp *gimp,
+ GimpProgress *progress,
+
+ GimpValueArray *return_vals);
+
+
+#endif /* __GIMP_PLUG_IN_PROCEDURE_H__ */