2004-08-28 04:06:17 +08:00
/* The GIMP -- an image manipulation program
* Copyright ( C ) 1995 - 2003 Spencer Kimball and Peter Mattis
*
* 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
* ( 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 , write to the Free Software
* Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*/
/* NOTE: This file is autogenerated by pdbgen.pl. */
# include "config.h"
# include <glib-object.h>
# include "pdb-types.h"
2006-03-31 17:15:08 +08:00
# include "gimpprocedure.h"
2004-08-28 04:06:17 +08:00
# include "procedural_db.h"
2006-03-29 03:58:00 +08:00
# include "core/gimpparamspecs.h"
2004-08-28 04:06:17 +08:00
# include "core/gimp.h"
# include "plug-in/plug-in-progress.h"
# include "plug-in/plug-in.h"
static ProcRecord progress_init_proc ;
static ProcRecord progress_update_proc ;
2005-02-12 22:18:12 +08:00
static ProcRecord progress_pulse_proc ;
2005-02-13 02:25:58 +08:00
static ProcRecord progress_set_text_proc ;
2005-09-10 02:07:31 +08:00
static ProcRecord progress_get_window_handle_proc ;
2004-08-30 02:36:30 +08:00
static ProcRecord progress_install_proc ;
static ProcRecord progress_uninstall_proc ;
static ProcRecord progress_cancel_proc ;
2004-08-28 04:06:17 +08:00
void
register_progress_procs ( Gimp * gimp )
{
2006-03-30 04:27:46 +08:00
ProcRecord * procedure ;
2006-03-29 03:58:00 +08:00
/*
* progress_init
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_init_proc , 2 , 0 ) ;
gimp_procedure_add_argument ( procedure ,
GIMP_PDB_STRING ,
gimp_param_spec_string ( " message " ,
" message " ,
" Message to use in the progress dialog " ,
FALSE , TRUE ,
NULL ,
GIMP_PARAM_READWRITE ) ) ;
gimp_procedure_add_argument ( procedure ,
GIMP_PDB_DISPLAY ,
gimp_param_spec_display_id ( " gdisplay " ,
" gdisplay " ,
" GimpDisplay to update progressbar in, or -1 for a seperate window " ,
gimp ,
GIMP_PARAM_READWRITE | GIMP_PARAM_NO_VALIDATE ) ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
/*
* progress_update
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_update_proc , 1 , 0 ) ;
gimp_procedure_add_argument ( procedure ,
GIMP_PDB_FLOAT ,
g_param_spec_double ( " percentage " ,
" percentage " ,
" Percentage of progress completed which must be between 0.0 and 1.0 " ,
- G_MAXDOUBLE , G_MAXDOUBLE , 0 ,
GIMP_PARAM_READWRITE ) ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
/*
* progress_pulse
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_pulse_proc , 0 , 0 ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
/*
* progress_set_text
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_set_text_proc , 1 , 0 ) ;
gimp_procedure_add_argument ( procedure ,
GIMP_PDB_STRING ,
gimp_param_spec_string ( " message " ,
" message " ,
" Message to use in the progress dialog " ,
FALSE , TRUE ,
NULL ,
GIMP_PARAM_READWRITE ) ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
/*
* progress_get_window_handle
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_get_window_handle_proc , 0 , 1 ) ;
gimp_procedure_add_return_value ( procedure ,
GIMP_PDB_INT32 ,
g_param_spec_int ( " window " ,
" window " ,
" The progress bar's toplevel window " ,
G_MININT32 , G_MAXINT32 , 0 ,
GIMP_PARAM_READWRITE ) ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
/*
* progress_install
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_install_proc , 1 , 0 ) ;
gimp_procedure_add_argument ( procedure ,
GIMP_PDB_STRING ,
gimp_param_spec_string ( " progress-callback " ,
" progress callback " ,
" The callback PDB proc to call " ,
FALSE , FALSE ,
NULL ,
GIMP_PARAM_READWRITE ) ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
/*
* progress_uninstall
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_uninstall_proc , 1 , 0 ) ;
gimp_procedure_add_argument ( procedure ,
GIMP_PDB_STRING ,
gimp_param_spec_string ( " progress-callback " ,
" progress callback " ,
" The name of the callback registered for this progress " ,
FALSE , FALSE ,
NULL ,
GIMP_PARAM_READWRITE ) ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
/*
* progress_cancel
*/
2006-03-31 17:15:08 +08:00
procedure = gimp_procedure_init ( & progress_cancel_proc , 1 , 0 ) ;
gimp_procedure_add_argument ( procedure ,
GIMP_PDB_STRING ,
gimp_param_spec_string ( " progress-callback " ,
" progress callback " ,
" The name of the callback registered for this progress " ,
FALSE , FALSE ,
NULL ,
GIMP_PARAM_READWRITE ) ) ;
2006-03-30 04:27:46 +08:00
procedural_db_register ( gimp , procedure ) ;
2006-03-29 03:58:00 +08:00
2004-08-28 04:06:17 +08:00
}
static Argument *
2006-03-28 03:32:19 +08:00
progress_init_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2004-08-28 04:06:17 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
gchar * message ;
2006-03-24 05:56:13 +08:00
GimpObject * gdisplay ;
2004-08-28 04:06:17 +08:00
2006-03-30 07:56:07 +08:00
message = ( gchar * ) g_value_get_string ( & args [ 0 ] . value ) ;
gdisplay = gimp_value_get_display ( & args [ 1 ] . value , gimp ) ;
2004-08-28 04:06:17 +08:00
if ( success )
{
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
{
if ( ! gimp - > no_interface )
plug_in_progress_start ( gimp - > current_plug_in , message , gdisplay ) ;
}
else
success = FALSE ;
}
2006-03-31 17:15:08 +08:00
return gimp_procedure_get_return_values ( proc_record , success ) ;
2004-08-28 04:06:17 +08:00
}
static ProcRecord progress_init_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-08-03 06:52:23 +08:00
" gimp-progress-init " ,
" gimp-progress-init " ,
2004-08-28 04:06:17 +08:00
" Initializes the progress bar for the current plug-in. " ,
" Initializes the progress bar for the current plug-in. It is only valid to call this procedure from a plug-in. " ,
" Spencer Kimball & Peter Mattis " ,
" Spencer Kimball & Peter Mattis " ,
" 1995-1996 " ,
2004-10-06 21:13:08 +08:00
NULL ,
2004-08-28 04:06:17 +08:00
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2004-08-28 04:06:17 +08:00
{ { progress_init_invoker } }
} ;
static Argument *
2006-03-28 03:32:19 +08:00
progress_update_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2004-08-28 04:06:17 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
gdouble percentage ;
2006-03-30 07:56:07 +08:00
percentage = g_value_get_double ( & args [ 0 ] . value ) ;
2004-08-28 04:06:17 +08:00
2006-03-30 07:56:07 +08:00
if ( success )
2004-08-28 04:06:17 +08:00
{
2006-03-30 07:56:07 +08:00
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
{
if ( ! gimp - > no_interface )
plug_in_progress_set_value ( gimp - > current_plug_in , percentage ) ;
}
else
success = FALSE ;
2004-08-28 04:06:17 +08:00
}
2006-03-31 17:15:08 +08:00
return gimp_procedure_get_return_values ( proc_record , success ) ;
2004-08-28 04:06:17 +08:00
}
static ProcRecord progress_update_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-08-03 06:52:23 +08:00
" gimp-progress-update " ,
" gimp-progress-update " ,
2004-08-28 04:06:17 +08:00
" Updates the progress bar for the current plug-in. " ,
" Updates the progress bar for the current plug-in. It is only valid to call this procedure from a plug-in. " ,
" Spencer Kimball & Peter Mattis " ,
" Spencer Kimball & Peter Mattis " ,
" 1995-1996 " ,
2004-10-06 21:13:08 +08:00
NULL ,
2004-08-28 04:06:17 +08:00
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2004-08-28 04:06:17 +08:00
{ { progress_update_invoker } }
} ;
2004-08-30 02:36:30 +08:00
2005-02-12 22:18:12 +08:00
static Argument *
2006-03-28 03:32:19 +08:00
progress_pulse_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2005-02-12 22:18:12 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
{
if ( ! gimp - > no_interface )
plug_in_progress_pulse ( gimp - > current_plug_in ) ;
}
else
success = FALSE ;
2006-03-31 17:15:08 +08:00
return gimp_procedure_get_return_values ( proc_record , success ) ;
2005-02-12 22:18:12 +08:00
}
static ProcRecord progress_pulse_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-08-03 06:52:23 +08:00
" gimp-progress-pulse " ,
" gimp-progress-pulse " ,
2005-02-12 22:18:12 +08:00
" Pulses the progress bar for the current plug-in. " ,
" Updates the progress bar for the current plug-in. It is only valid to call this procedure from a plug-in. Use this function instead of gimp_progress_update() if you cannot tell how much progress has been made. This usually causes the the progress bar to enter \" activity mode \" , where a block bounces back and forth. " ,
" Sven Neumann <sven@gimp.org> " ,
" Sven Neumann " ,
" 2005 " ,
NULL ,
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2005-02-12 22:18:12 +08:00
{ { progress_pulse_invoker } }
} ;
2005-02-13 02:25:58 +08:00
static Argument *
2006-03-28 03:32:19 +08:00
progress_set_text_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2005-02-13 02:25:58 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
gchar * message ;
2006-03-30 07:56:07 +08:00
message = ( gchar * ) g_value_get_string ( & args [ 0 ] . value ) ;
2005-02-13 02:25:58 +08:00
if ( success )
{
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
{
if ( ! gimp - > no_interface )
plug_in_progress_set_text ( gimp - > current_plug_in , message ) ;
}
else
success = FALSE ;
}
2006-03-31 17:15:08 +08:00
return gimp_procedure_get_return_values ( proc_record , success ) ;
2005-02-13 02:25:58 +08:00
}
static ProcRecord progress_set_text_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-08-03 06:52:23 +08:00
" gimp-progress-set-text " ,
" gimp-progress-set-text " ,
2005-02-13 02:25:58 +08:00
" Changes the text in the progress bar for the current plug-in. " ,
" This function allows to change the text in the progress bar for the current plug-in. Unlike gimp_progress_init() it does not change the displayed value. " ,
" Sven Neumann <sven@gimp.org> " ,
" Sven Neumann " ,
" 2005 " ,
NULL ,
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2005-02-13 02:25:58 +08:00
{ { progress_set_text_invoker } }
} ;
2005-09-10 02:07:31 +08:00
static Argument *
2006-03-28 03:32:19 +08:00
progress_get_window_handle_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2005-09-10 02:07:31 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
2006-03-28 05:09:32 +08:00
Argument * return_vals ;
2005-09-10 02:07:31 +08:00
gint32 window = 0 ;
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
{
if ( ! gimp - > no_interface )
window = plug_in_progress_get_window ( gimp - > current_plug_in ) ;
}
else
success = FALSE ;
2006-03-31 17:15:08 +08:00
return_vals = gimp_procedure_get_return_values ( proc_record , success ) ;
2005-09-10 02:07:31 +08:00
if ( success )
2006-03-30 07:56:07 +08:00
g_value_set_int ( & return_vals [ 1 ] . value , window ) ;
2005-09-10 02:07:31 +08:00
2006-03-28 05:09:32 +08:00
return return_vals ;
2005-09-10 02:07:31 +08:00
}
static ProcRecord progress_get_window_handle_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-09-10 02:07:31 +08:00
" gimp-progress-get-window-handle " ,
" gimp-progress-get-window-handle " ,
" Returns the native window ID of the toplevel window this plug-in's progress is displayed in. " ,
" This function returns the native window ID of the toplevel window this plug-in \' s progress is displayed in. " ,
" Michael Natterer <mitch@gimp.org> " ,
" Michael Natterer " ,
" 2004 " ,
NULL ,
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2005-09-10 02:07:31 +08:00
{ { progress_get_window_handle_invoker } }
} ;
2004-08-30 02:36:30 +08:00
static Argument *
2006-03-28 03:32:19 +08:00
progress_install_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2004-08-30 02:36:30 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
gchar * progress_callback ;
2006-03-30 07:56:07 +08:00
progress_callback = ( gchar * ) g_value_get_string ( & args [ 0 ] . value ) ;
2004-08-30 02:36:30 +08:00
if ( success )
{
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
2004-08-31 05:03:52 +08:00
success = plug_in_progress_install ( gimp - > current_plug_in ,
progress_callback ) ;
2004-08-30 02:36:30 +08:00
else
success = FALSE ;
}
2006-03-31 17:15:08 +08:00
return gimp_procedure_get_return_values ( proc_record , success ) ;
2004-08-30 02:36:30 +08:00
}
static ProcRecord progress_install_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-08-03 06:52:23 +08:00
" gimp-progress-install " ,
" gimp-progress-install " ,
2004-08-30 02:36:30 +08:00
" Installs a progress callback for the current plug-in. " ,
" This function installs a temporary PDB procedure which will handle all progress calls made by this plug-in and any procedure it calls. Calling this function multiple times simply replaces the old progress callbacks. " ,
" Michael Natterer <mitch@gimp.org> " ,
" Michael Natterer " ,
" 2004 " ,
2004-10-06 21:13:08 +08:00
NULL ,
2004-08-30 02:36:30 +08:00
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2004-08-30 02:36:30 +08:00
{ { progress_install_invoker } }
} ;
static Argument *
2006-03-28 03:32:19 +08:00
progress_uninstall_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2004-08-30 02:36:30 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
gchar * progress_callback ;
2006-03-30 07:56:07 +08:00
progress_callback = ( gchar * ) g_value_get_string ( & args [ 0 ] . value ) ;
2004-08-30 02:36:30 +08:00
if ( success )
{
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
2004-08-31 05:03:52 +08:00
success = plug_in_progress_uninstall ( gimp - > current_plug_in ,
progress_callback ) ;
2004-08-30 02:36:30 +08:00
else
success = FALSE ;
}
2006-03-31 17:15:08 +08:00
return gimp_procedure_get_return_values ( proc_record , success ) ;
2004-08-30 02:36:30 +08:00
}
static ProcRecord progress_uninstall_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-08-03 06:52:23 +08:00
" gimp-progress-uninstall " ,
" gimp-progress-uninstall " ,
2004-08-30 02:36:30 +08:00
" Uninstalls the progress callback for the current plug-in. " ,
" This function uninstalls any progress callback installed with gimp_progress_install() before. " ,
" Michael Natterer <mitch@gimp.org> " ,
" Michael Natterer " ,
" 2004 " ,
2004-10-06 21:13:08 +08:00
NULL ,
2004-08-30 02:36:30 +08:00
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2004-08-30 02:36:30 +08:00
{ { progress_uninstall_invoker } }
} ;
static Argument *
2006-03-28 03:32:19 +08:00
progress_cancel_invoker ( ProcRecord * proc_record ,
Gimp * gimp ,
2004-08-30 02:36:30 +08:00
GimpContext * context ,
GimpProgress * progress ,
Argument * args )
{
gboolean success = TRUE ;
gchar * progress_callback ;
2006-03-30 07:56:07 +08:00
progress_callback = ( gchar * ) g_value_get_string ( & args [ 0 ] . value ) ;
2004-08-30 02:36:30 +08:00
if ( success )
{
if ( gimp - > current_plug_in & & gimp - > current_plug_in - > open )
2004-08-31 05:03:52 +08:00
success = plug_in_progress_cancel ( gimp - > current_plug_in ,
progress_callback ) ;
2004-08-30 02:36:30 +08:00
else
success = FALSE ;
}
2006-03-31 17:15:08 +08:00
return gimp_procedure_get_return_values ( proc_record , success ) ;
2004-08-30 02:36:30 +08:00
}
static ProcRecord progress_cancel_proc =
{
2006-04-01 00:17:07 +08:00
TRUE , TRUE ,
2005-08-03 06:52:23 +08:00
" gimp-progress-cancel " ,
" gimp-progress-cancel " ,
2004-08-30 02:36:30 +08:00
" Cancels a running progress. " ,
" This function cancels the currently running progress. " ,
" Michael Natterer <mitch@gimp.org> " ,
" Michael Natterer " ,
" 2004 " ,
2004-10-06 21:13:08 +08:00
NULL ,
2004-08-30 02:36:30 +08:00
GIMP_INTERNAL ,
2006-03-29 03:58:00 +08:00
0 , NULL , 0 , NULL ,
2004-08-30 02:36:30 +08:00
{ { progress_cancel_invoker } }
} ;