mirror of https://github.com/GNOME/gimp.git
app: move the plug-in procedure setters to gimpplugin-proc.[ch]
because there are going to be much more more.
This commit is contained in:
parent
303ccbedad
commit
d75a25c565
|
@ -34,7 +34,7 @@
|
||||||
#include "core/gimpparamspecs.h"
|
#include "core/gimpparamspecs.h"
|
||||||
#include "gimp-pdb-compat.h"
|
#include "gimp-pdb-compat.h"
|
||||||
#include "gimppdb-query.h"
|
#include "gimppdb-query.h"
|
||||||
#include "plug-in/gimpplugin.h"
|
#include "plug-in/gimpplugin-proc.h"
|
||||||
#include "plug-in/gimppluginmanager-data.h"
|
#include "plug-in/gimppluginmanager-data.h"
|
||||||
#include "plug-in/gimppluginmanager.h"
|
#include "plug-in/gimppluginmanager.h"
|
||||||
#include "plug-in/gimppluginprocedure.h"
|
#include "plug-in/gimppluginprocedure.h"
|
||||||
|
|
|
@ -33,6 +33,8 @@ libappplug_in_a_SOURCES = \
|
||||||
gimpplugin-context.h \
|
gimpplugin-context.h \
|
||||||
gimpplugin-message.c \
|
gimpplugin-message.c \
|
||||||
gimpplugin-message.h \
|
gimpplugin-message.h \
|
||||||
|
gimpplugin-proc.c \
|
||||||
|
gimpplugin-proc.h \
|
||||||
gimpplugin-progress.c \
|
gimpplugin-progress.c \
|
||||||
gimpplugin-progress.h \
|
gimpplugin-progress.h \
|
||||||
gimpplugindef.c \
|
gimpplugindef.c \
|
||||||
|
|
|
@ -0,0 +1,162 @@
|
||||||
|
/* GIMP - The GNU Image Manipulation Program
|
||||||
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||||
|
*
|
||||||
|
* gimpplugin-proc.c
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||||
|
#include <gegl.h>
|
||||||
|
|
||||||
|
#include "libgimpbase/gimpbase.h"
|
||||||
|
|
||||||
|
#include "plug-in-types.h"
|
||||||
|
|
||||||
|
#include "core/gimp.h"
|
||||||
|
|
||||||
|
#include "gimpplugin.h"
|
||||||
|
#include "gimpplugin-proc.h"
|
||||||
|
#include "gimpplugindef.h"
|
||||||
|
#include "gimppluginmanager.h"
|
||||||
|
#include "gimptemporaryprocedure.h"
|
||||||
|
|
||||||
|
#include "gimp-intl.h"
|
||||||
|
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_plug_in_add_proc_menu_path (GimpPlugIn *plug_in,
|
||||||
|
const gchar *proc_name,
|
||||||
|
const gchar *menu_path)
|
||||||
|
{
|
||||||
|
GimpPlugInProcedure *proc = NULL;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_PLUG_IN (plug_in), FALSE);
|
||||||
|
g_return_val_if_fail (proc_name != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (menu_path != NULL, FALSE);
|
||||||
|
|
||||||
|
if (plug_in->plug_in_def)
|
||||||
|
proc = gimp_plug_in_procedure_find (plug_in->plug_in_def->procedures,
|
||||||
|
proc_name);
|
||||||
|
|
||||||
|
if (! proc)
|
||||||
|
proc = gimp_plug_in_procedure_find (plug_in->temp_procedures, proc_name);
|
||||||
|
|
||||||
|
if (! proc)
|
||||||
|
{
|
||||||
|
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
||||||
|
"Plug-in \"%s\"\n(%s)\n"
|
||||||
|
"attempted to register the menu item \"%s\" "
|
||||||
|
"for the procedure \"%s\".\n"
|
||||||
|
"It has however not installed that procedure. "
|
||||||
|
"This is not allowed.",
|
||||||
|
gimp_object_get_name (plug_in),
|
||||||
|
gimp_file_get_utf8_name (plug_in->file),
|
||||||
|
menu_path, proc_name);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (GIMP_PROCEDURE (proc)->proc_type)
|
||||||
|
{
|
||||||
|
case GIMP_PDB_PROC_TYPE_INTERNAL:
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
case GIMP_PDB_PROC_TYPE_PLUGIN:
|
||||||
|
case GIMP_PDB_PROC_TYPE_EXTENSION:
|
||||||
|
if (plug_in->call_mode != GIMP_PLUG_IN_CALL_QUERY &&
|
||||||
|
plug_in->call_mode != GIMP_PLUG_IN_CALL_INIT)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
case GIMP_PDB_PROC_TYPE_TEMPORARY:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! gimp_plug_in_procedure_add_menu_path (proc, menu_path, &error))
|
||||||
|
{
|
||||||
|
gimp_message_literal (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
||||||
|
error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_plug_in_set_proc_icon (GimpPlugIn *plug_in,
|
||||||
|
const gchar *proc_name,
|
||||||
|
GimpIconType type,
|
||||||
|
const guint8 *data,
|
||||||
|
gint data_length)
|
||||||
|
{
|
||||||
|
GimpPlugInProcedure *proc = NULL;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_PLUG_IN (plug_in), FALSE);
|
||||||
|
g_return_val_if_fail (proc_name != NULL, FALSE);
|
||||||
|
|
||||||
|
if (plug_in->plug_in_def)
|
||||||
|
proc = gimp_plug_in_procedure_find (plug_in->plug_in_def->procedures,
|
||||||
|
proc_name);
|
||||||
|
|
||||||
|
if (! proc)
|
||||||
|
proc = gimp_plug_in_procedure_find (plug_in->temp_procedures, proc_name);
|
||||||
|
|
||||||
|
if (! proc)
|
||||||
|
{
|
||||||
|
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
||||||
|
"Plug-in \"%s\"\n(%s)\n"
|
||||||
|
"attempted to set the icon "
|
||||||
|
"for the procedure \"%s\".\n"
|
||||||
|
"It has however not installed that procedure. "
|
||||||
|
"This is not allowed.",
|
||||||
|
gimp_object_get_name (plug_in),
|
||||||
|
gimp_file_get_utf8_name (plug_in->file),
|
||||||
|
proc_name);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (GIMP_PROCEDURE (proc)->proc_type)
|
||||||
|
{
|
||||||
|
case GIMP_PDB_PROC_TYPE_INTERNAL:
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
case GIMP_PDB_PROC_TYPE_PLUGIN:
|
||||||
|
case GIMP_PDB_PROC_TYPE_EXTENSION:
|
||||||
|
if (plug_in->call_mode != GIMP_PLUG_IN_CALL_QUERY &&
|
||||||
|
plug_in->call_mode != GIMP_PLUG_IN_CALL_INIT)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
case GIMP_PDB_PROC_TYPE_TEMPORARY:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! gimp_plug_in_procedure_set_icon (proc, type, data, data_length,
|
||||||
|
&error))
|
||||||
|
{
|
||||||
|
gimp_message_literal (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
||||||
|
error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* GIMP - The GNU Image Manipulation Program
|
||||||
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||||
|
*
|
||||||
|
* gimpplugin-proc.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_PROC_H__
|
||||||
|
#define __GIMP_PLUG_IN_PROC_H__
|
||||||
|
|
||||||
|
|
||||||
|
gboolean gimp_plug_in_add_proc_menu_path (GimpPlugIn *plug_in,
|
||||||
|
const gchar *proc_name,
|
||||||
|
const gchar *menu_path);
|
||||||
|
gboolean gimp_plug_in_set_proc_icon (GimpPlugIn *plug_in,
|
||||||
|
const gchar *proc_name,
|
||||||
|
GimpIconType type,
|
||||||
|
const guint8 *data,
|
||||||
|
gint data_length);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __GIMP_PLUG_IN_PROC_H__ */
|
|
@ -874,131 +874,6 @@ gimp_plug_in_get_undo_desc (GimpPlugIn *plug_in)
|
||||||
return undo_desc ? undo_desc : gimp_object_get_name (plug_in);
|
return undo_desc ? undo_desc : gimp_object_get_name (plug_in);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* called from the PDB (gimp_pdb_add_proc_menu_path) */
|
|
||||||
gboolean
|
|
||||||
gimp_plug_in_add_proc_menu_path (GimpPlugIn *plug_in,
|
|
||||||
const gchar *proc_name,
|
|
||||||
const gchar *menu_path)
|
|
||||||
{
|
|
||||||
GimpPlugInProcedure *proc = NULL;
|
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
g_return_val_if_fail (GIMP_IS_PLUG_IN (plug_in), FALSE);
|
|
||||||
g_return_val_if_fail (proc_name != NULL, FALSE);
|
|
||||||
g_return_val_if_fail (menu_path != NULL, FALSE);
|
|
||||||
|
|
||||||
if (plug_in->plug_in_def)
|
|
||||||
proc = gimp_plug_in_procedure_find (plug_in->plug_in_def->procedures,
|
|
||||||
proc_name);
|
|
||||||
|
|
||||||
if (! proc)
|
|
||||||
proc = gimp_plug_in_procedure_find (plug_in->temp_procedures, proc_name);
|
|
||||||
|
|
||||||
if (! proc)
|
|
||||||
{
|
|
||||||
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
|
||||||
"Plug-in \"%s\"\n(%s)\n"
|
|
||||||
"attempted to register the menu item \"%s\" "
|
|
||||||
"for the procedure \"%s\".\n"
|
|
||||||
"It has however not installed that procedure. "
|
|
||||||
"This is not allowed.",
|
|
||||||
gimp_object_get_name (plug_in),
|
|
||||||
gimp_file_get_utf8_name (plug_in->file),
|
|
||||||
menu_path, proc_name);
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (GIMP_PROCEDURE (proc)->proc_type)
|
|
||||||
{
|
|
||||||
case GIMP_PDB_PROC_TYPE_INTERNAL:
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
case GIMP_PDB_PROC_TYPE_PLUGIN:
|
|
||||||
case GIMP_PDB_PROC_TYPE_EXTENSION:
|
|
||||||
if (plug_in->call_mode != GIMP_PLUG_IN_CALL_QUERY &&
|
|
||||||
plug_in->call_mode != GIMP_PLUG_IN_CALL_INIT)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
case GIMP_PDB_PROC_TYPE_TEMPORARY:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! gimp_plug_in_procedure_add_menu_path (proc, menu_path, &error))
|
|
||||||
{
|
|
||||||
gimp_message_literal (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
|
||||||
error->message);
|
|
||||||
g_clear_error (&error);
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gimp_plug_in_set_proc_icon (GimpPlugIn *plug_in,
|
|
||||||
const gchar *proc_name,
|
|
||||||
GimpIconType type,
|
|
||||||
const guint8 *data,
|
|
||||||
gint data_length)
|
|
||||||
{
|
|
||||||
GimpPlugInProcedure *proc = NULL;
|
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
g_return_val_if_fail (GIMP_IS_PLUG_IN (plug_in), FALSE);
|
|
||||||
g_return_val_if_fail (proc_name != NULL, FALSE);
|
|
||||||
|
|
||||||
if (plug_in->plug_in_def)
|
|
||||||
proc = gimp_plug_in_procedure_find (plug_in->plug_in_def->procedures,
|
|
||||||
proc_name);
|
|
||||||
|
|
||||||
if (! proc)
|
|
||||||
proc = gimp_plug_in_procedure_find (plug_in->temp_procedures, proc_name);
|
|
||||||
|
|
||||||
if (! proc)
|
|
||||||
{
|
|
||||||
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
|
||||||
"Plug-in \"%s\"\n(%s)\n"
|
|
||||||
"attempted to set the icon "
|
|
||||||
"for the procedure \"%s\".\n"
|
|
||||||
"It has however not installed that procedure. "
|
|
||||||
"This is not allowed.",
|
|
||||||
gimp_object_get_name (plug_in),
|
|
||||||
gimp_file_get_utf8_name (plug_in->file),
|
|
||||||
proc_name);
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (GIMP_PROCEDURE (proc)->proc_type)
|
|
||||||
{
|
|
||||||
case GIMP_PDB_PROC_TYPE_INTERNAL:
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
case GIMP_PDB_PROC_TYPE_PLUGIN:
|
|
||||||
case GIMP_PDB_PROC_TYPE_EXTENSION:
|
|
||||||
if (plug_in->call_mode != GIMP_PLUG_IN_CALL_QUERY &&
|
|
||||||
plug_in->call_mode != GIMP_PLUG_IN_CALL_INIT)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
case GIMP_PDB_PROC_TYPE_TEMPORARY:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! gimp_plug_in_procedure_set_icon (proc, type, data, data_length,
|
|
||||||
&error))
|
|
||||||
{
|
|
||||||
gimp_message_literal (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
|
|
||||||
error->message);
|
|
||||||
g_clear_error (&error);
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
gimp_plug_in_add_temp_proc (GimpPlugIn *plug_in,
|
gimp_plug_in_add_temp_proc (GimpPlugIn *plug_in,
|
||||||
GimpTemporaryProcedure *proc)
|
GimpTemporaryProcedure *proc)
|
||||||
|
|
|
@ -76,53 +76,44 @@ struct _GimpPlugInClass
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
GType gimp_plug_in_get_type (void) G_GNUC_CONST;
|
GType gimp_plug_in_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
GimpPlugIn * gimp_plug_in_new (GimpPlugInManager *manager,
|
GimpPlugIn * gimp_plug_in_new (GimpPlugInManager *manager,
|
||||||
GimpContext *context,
|
GimpContext *context,
|
||||||
GimpProgress *progress,
|
GimpProgress *progress,
|
||||||
GimpPlugInProcedure *procedure,
|
GimpPlugInProcedure *procedure,
|
||||||
GFile *file);
|
GFile *file);
|
||||||
|
|
||||||
gboolean gimp_plug_in_open (GimpPlugIn *plug_in,
|
gboolean gimp_plug_in_open (GimpPlugIn *plug_in,
|
||||||
GimpPlugInCallMode call_mode,
|
GimpPlugInCallMode call_mode,
|
||||||
gboolean synchronous);
|
gboolean synchronous);
|
||||||
void gimp_plug_in_close (GimpPlugIn *plug_in,
|
void gimp_plug_in_close (GimpPlugIn *plug_in,
|
||||||
gboolean kill_it);
|
gboolean kill_it);
|
||||||
|
|
||||||
GimpPlugInProcFrame *
|
GimpPlugInProcFrame *
|
||||||
gimp_plug_in_get_proc_frame (GimpPlugIn *plug_in);
|
gimp_plug_in_get_proc_frame (GimpPlugIn *plug_in);
|
||||||
|
|
||||||
GimpPlugInProcFrame *
|
GimpPlugInProcFrame *
|
||||||
gimp_plug_in_proc_frame_push (GimpPlugIn *plug_in,
|
gimp_plug_in_proc_frame_push (GimpPlugIn *plug_in,
|
||||||
GimpContext *context,
|
GimpContext *context,
|
||||||
GimpProgress *progress,
|
GimpProgress *progress,
|
||||||
GimpTemporaryProcedure *procedure);
|
GimpTemporaryProcedure *procedure);
|
||||||
void gimp_plug_in_proc_frame_pop (GimpPlugIn *plug_in);
|
void gimp_plug_in_proc_frame_pop (GimpPlugIn *plug_in);
|
||||||
|
|
||||||
void gimp_plug_in_main_loop (GimpPlugIn *plug_in);
|
void gimp_plug_in_main_loop (GimpPlugIn *plug_in);
|
||||||
void gimp_plug_in_main_loop_quit (GimpPlugIn *plug_in);
|
void gimp_plug_in_main_loop_quit (GimpPlugIn *plug_in);
|
||||||
|
|
||||||
const gchar * gimp_plug_in_get_undo_desc (GimpPlugIn *plug_in);
|
const gchar * gimp_plug_in_get_undo_desc (GimpPlugIn *plug_in);
|
||||||
|
|
||||||
gboolean gimp_plug_in_add_proc_menu_path (GimpPlugIn *plug_in,
|
void gimp_plug_in_add_temp_proc (GimpPlugIn *plug_in,
|
||||||
const gchar *proc_name,
|
GimpTemporaryProcedure *procedure);
|
||||||
const gchar *menu_path);
|
void gimp_plug_in_remove_temp_proc (GimpPlugIn *plug_in,
|
||||||
gboolean gimp_plug_in_set_proc_icon (GimpPlugIn *plug_in,
|
GimpTemporaryProcedure *procedure);
|
||||||
const gchar *proc_name,
|
|
||||||
GimpIconType type,
|
|
||||||
const guint8 *data,
|
|
||||||
gint data_length);
|
|
||||||
|
|
||||||
void gimp_plug_in_add_temp_proc (GimpPlugIn *plug_in,
|
void gimp_plug_in_set_error_handler (GimpPlugIn *plug_in,
|
||||||
GimpTemporaryProcedure *procedure);
|
GimpPDBErrorHandler handler);
|
||||||
void gimp_plug_in_remove_temp_proc (GimpPlugIn *plug_in,
|
|
||||||
GimpTemporaryProcedure *procedure);
|
|
||||||
|
|
||||||
void gimp_plug_in_set_error_handler (GimpPlugIn *plug_in,
|
|
||||||
GimpPDBErrorHandler handler);
|
|
||||||
GimpPDBErrorHandler
|
GimpPDBErrorHandler
|
||||||
gimp_plug_in_get_error_handler (GimpPlugIn *plug_in);
|
gimp_plug_in_get_error_handler (GimpPlugIn *plug_in);
|
||||||
|
|
||||||
|
|
||||||
#endif /* __GIMP_PLUG_IN_H__ */
|
#endif /* __GIMP_PLUG_IN_H__ */
|
||||||
|
|
|
@ -836,7 +836,7 @@ CODE
|
||||||
@headers = qw("libgimpbase/gimpbase.h"
|
@headers = qw("libgimpbase/gimpbase.h"
|
||||||
"core/gimp.h"
|
"core/gimp.h"
|
||||||
"core/gimpparamspecs-desc.h"
|
"core/gimpparamspecs-desc.h"
|
||||||
"plug-in/gimpplugin.h"
|
"plug-in/gimpplugin-proc.h"
|
||||||
"plug-in/gimppluginmanager.h"
|
"plug-in/gimppluginmanager.h"
|
||||||
"plug-in/gimppluginmanager-data.h"
|
"plug-in/gimppluginmanager-data.h"
|
||||||
"plug-in/gimppluginprocedure.h"
|
"plug-in/gimppluginprocedure.h"
|
||||||
|
|
Loading…
Reference in New Issue