mirror of https://github.com/GNOME/gimp.git
plug-ins: Port file-icns/file-ico to GimpProcedureDialog
Note that the widgets are still made with GTK directly. The primary goal of this initial port is to remove the last usage of gimp_export_dialog_new (). Future work will be needed as currently we can not automatically generate widgets from array parameters.
This commit is contained in:
parent
6b611a4802
commit
85c0d0d600
|
@ -35,35 +35,40 @@
|
|||
|
||||
#include "libgimp/stdplugins-intl.h"
|
||||
|
||||
GtkWidget * icns_dialog_new (IcnsSaveInfo *info);
|
||||
GtkWidget * icns_dialog_new (IcnsSaveInfo *info,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config);
|
||||
|
||||
static gboolean icns_save_dialog (IcnsSaveInfo *info,
|
||||
GimpImage *image);
|
||||
static gboolean icns_save_dialog (IcnsSaveInfo *info,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config);
|
||||
|
||||
void icns_dialog_add_icon (GtkWidget *dialog,
|
||||
GimpDrawable *layer,
|
||||
gint layer_num,
|
||||
gint duplicates[]);
|
||||
void icns_dialog_add_icon (GtkWidget *dialog,
|
||||
GimpDrawable *layer,
|
||||
gint layer_num,
|
||||
gint duplicates[]);
|
||||
|
||||
static GtkWidget * icns_preview_new (GimpDrawable *layer);
|
||||
static GtkWidget * icns_preview_new (GimpDrawable *layer);
|
||||
|
||||
static GtkWidget * icns_create_icon_item (GtkWidget *icon_preview,
|
||||
GimpDrawable *layer,
|
||||
gint layer_num,
|
||||
IcnsSaveInfo *info,
|
||||
gint duplicates[]);
|
||||
static GtkWidget * icns_create_icon_item (GtkWidget *icon_preview,
|
||||
GimpDrawable *layer,
|
||||
gint layer_num,
|
||||
IcnsSaveInfo *info,
|
||||
gint duplicates[]);
|
||||
|
||||
static gint icns_find_type (gint width,
|
||||
gint height);
|
||||
static gboolean icns_check_dimensions (gint width,
|
||||
gint height);
|
||||
static gboolean icns_check_compat (GtkWidget *dialog,
|
||||
IcnsSaveInfo *info);
|
||||
static gint icns_find_type (gint width,
|
||||
gint height);
|
||||
static gboolean icns_check_dimensions (gint width,
|
||||
gint height);
|
||||
static gboolean icns_check_compat (GtkWidget *dialog,
|
||||
IcnsSaveInfo *info);
|
||||
|
||||
GimpPDBStatusType icns_export_image (GFile *file,
|
||||
IcnsSaveInfo *info,
|
||||
GimpImage *image,
|
||||
GError **error);
|
||||
GimpPDBStatusType icns_export_image (GFile *file,
|
||||
IcnsSaveInfo *info,
|
||||
GimpImage *image,
|
||||
GError **error);
|
||||
|
||||
static void icns_save_info_free (IcnsSaveInfo *info);
|
||||
|
||||
|
@ -279,7 +284,10 @@ icns_check_compat (GtkWidget *dialog,
|
|||
}
|
||||
|
||||
GtkWidget *
|
||||
icns_dialog_new (IcnsSaveInfo *info)
|
||||
icns_dialog_new (IcnsSaveInfo *info,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *main_vbox;
|
||||
|
@ -289,15 +297,14 @@ icns_dialog_new (IcnsSaveInfo *info)
|
|||
GtkWidget *flowbox;
|
||||
GtkWidget *warning;
|
||||
|
||||
dialog = gimp_export_dialog_new (_("Apple Icon Image"),
|
||||
PLUG_IN_BINARY,
|
||||
"plug-in-icns-export");
|
||||
dialog = gimp_export_procedure_dialog_new (GIMP_EXPORT_PROCEDURE (procedure),
|
||||
config, image);
|
||||
|
||||
g_object_set_data (G_OBJECT (dialog), "save_info", info);
|
||||
|
||||
main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 6);
|
||||
gtk_box_pack_start (GTK_BOX (gimp_export_dialog_get_content_area (dialog)),
|
||||
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
|
||||
main_vbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (main_vbox);
|
||||
|
||||
|
@ -340,14 +347,16 @@ icns_dialog_new (IcnsSaveInfo *info)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
icns_save_dialog (IcnsSaveInfo *info,
|
||||
GimpImage *image)
|
||||
icns_save_dialog (IcnsSaveInfo *info,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GList *iter;
|
||||
gint i;
|
||||
gint j;
|
||||
gint response;
|
||||
gboolean response;
|
||||
gint duplicates[ICNS_TYPE_NUM];
|
||||
gint ordered[12] =
|
||||
{12, 16, 18, 24, 32, 36, 48, 64, 128, 256, 512, 1024};
|
||||
|
@ -357,7 +366,7 @@ icns_save_dialog (IcnsSaveInfo *info,
|
|||
for (i = 0; i < ICNS_TYPE_NUM; i++)
|
||||
duplicates[i] = 0;
|
||||
|
||||
dialog = icns_dialog_new (info);
|
||||
dialog = icns_dialog_new (info, image, procedure, config);
|
||||
|
||||
/* Add icons in order, smallest to largest */
|
||||
for (i = 0; i < 12; i++)
|
||||
|
@ -394,13 +403,13 @@ icns_save_dialog (IcnsSaveInfo *info,
|
|||
200 + (info->num_icons > 4 ?
|
||||
250 : info->num_icons * 60));
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
gtk_widget_set_visible (dialog, TRUE);
|
||||
|
||||
response = gimp_dialog_run (GIMP_DIALOG (dialog));
|
||||
response = gimp_procedure_dialog_run (GIMP_PROCEDURE_DIALOG (dialog));
|
||||
|
||||
gtk_widget_destroy (dialog);
|
||||
|
||||
return (response == GTK_RESPONSE_OK);
|
||||
return response;
|
||||
}
|
||||
|
||||
GimpPDBStatusType
|
||||
|
@ -553,10 +562,12 @@ icns_save_info_free (IcnsSaveInfo *info)
|
|||
}
|
||||
|
||||
GimpPDBStatusType
|
||||
icns_save_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
GError **error)
|
||||
icns_save_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
GError **error)
|
||||
{
|
||||
IcnsSaveInfo info;
|
||||
GList *iter;
|
||||
|
@ -591,7 +602,7 @@ icns_save_image (GFile *file,
|
|||
if (run_mode == GIMP_RUN_INTERACTIVE)
|
||||
{
|
||||
/* Allow user to override default values */
|
||||
if (! icns_save_dialog (&info, image))
|
||||
if (! icns_save_dialog (&info, image, procedure, config))
|
||||
return GIMP_PDB_CANCEL;
|
||||
}
|
||||
else if (run_mode == GIMP_RUN_NONINTERACTIVE)
|
||||
|
|
|
@ -22,9 +22,11 @@
|
|||
#define __ICNS_EXPORT_H__
|
||||
|
||||
|
||||
GimpPDBStatusType icns_save_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
GError **error);
|
||||
GimpPDBStatusType icns_save_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
GError **error);
|
||||
|
||||
#endif /* __ICNS_EXPORT_H__ */
|
||||
|
|
|
@ -185,6 +185,8 @@ icns_create_procedure (GimpPlugIn *plug_in,
|
|||
"Brion Vibber <brion@pobox.com>",
|
||||
"2004");
|
||||
|
||||
gimp_file_procedure_set_format_name (GIMP_FILE_PROCEDURE (procedure),
|
||||
"Apple Icon Image");
|
||||
gimp_file_procedure_set_mime_types (GIMP_FILE_PROCEDURE (procedure),
|
||||
"image/x-icns");
|
||||
gimp_file_procedure_set_extensions (GIMP_FILE_PROCEDURE (procedure),
|
||||
|
@ -278,7 +280,7 @@ icns_export (GimpProcedure *procedure,
|
|||
|
||||
gegl_init (NULL, NULL);
|
||||
|
||||
status = icns_save_image (file, image, run_mode, &error);
|
||||
status = icns_save_image (file, image, procedure, config, run_mode, &error);
|
||||
|
||||
return gimp_procedure_new_return_values (procedure, status, error);
|
||||
}
|
||||
|
|
|
@ -45,9 +45,12 @@ static void ico_dialog_ani_update_iart (GtkEntry *entry,
|
|||
|
||||
|
||||
GtkWidget *
|
||||
ico_dialog_new (IcoSaveInfo *info,
|
||||
AniFileHeader *ani_header,
|
||||
AniSaveInfo *ani_info)
|
||||
ico_dialog_new (GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
IcoSaveInfo *info,
|
||||
AniFileHeader *ani_header,
|
||||
AniSaveInfo *ani_info)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *main_vbox;
|
||||
|
@ -57,11 +60,8 @@ ico_dialog_new (IcoSaveInfo *info,
|
|||
GtkWidget *viewport;
|
||||
GtkWidget *warning;
|
||||
|
||||
dialog = gimp_export_dialog_new (ani_header ?
|
||||
_("Windows Animated Cursor") : info->is_cursor ?
|
||||
_("Windows Cursor") : _("Windows Icon"),
|
||||
PLUG_IN_BINARY,
|
||||
"plug-in-winicon");
|
||||
dialog = gimp_export_procedure_dialog_new (GIMP_EXPORT_PROCEDURE (procedure),
|
||||
config, image);
|
||||
|
||||
/* We store an array that holds each icon's requested bit depth
|
||||
with the dialog. It's queried when the dialog is closed so the
|
||||
|
@ -80,7 +80,7 @@ ico_dialog_new (IcoSaveInfo *info,
|
|||
|
||||
main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 6);
|
||||
gtk_box_pack_start (GTK_BOX (gimp_export_dialog_get_content_area (dialog)),
|
||||
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
|
||||
main_vbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (main_vbox);
|
||||
|
||||
|
|
|
@ -22,11 +22,14 @@
|
|||
#define __ICO_DIALOG_H__
|
||||
|
||||
|
||||
GtkWidget * ico_dialog_new (IcoSaveInfo *info,
|
||||
AniFileHeader *ani_header,
|
||||
AniSaveInfo *ani_info);
|
||||
void ico_dialog_add_icon (GtkWidget *dialog,
|
||||
GimpDrawable *layer,
|
||||
gint layer_num);
|
||||
GtkWidget * ico_dialog_new (GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
IcoSaveInfo *info,
|
||||
AniFileHeader *ani_header,
|
||||
AniSaveInfo *ani_info);
|
||||
void ico_dialog_add_icon (GtkWidget *dialog,
|
||||
GimpDrawable *layer,
|
||||
gint layer_num);
|
||||
|
||||
#endif /* __ICO_DIALOG_H__ */
|
||||
|
|
|
@ -40,12 +40,12 @@
|
|||
#include "libgimp/stdplugins-intl.h"
|
||||
|
||||
|
||||
static gint ico_write_int8 (FILE *fp,
|
||||
guint8 *data,
|
||||
gint count);
|
||||
static gint ico_write_int16 (FILE *fp,
|
||||
static gint ico_write_int8 (FILE *fp,
|
||||
guint8 *data,
|
||||
gint count);
|
||||
static gint ico_write_int16 (FILE *fp,
|
||||
guint16 *data,
|
||||
gint count);
|
||||
gint count);
|
||||
static gint ico_write_int32 (FILE *fp,
|
||||
guint32 *data,
|
||||
gint count);
|
||||
|
@ -64,35 +64,37 @@ static void ico_set_byte_in_data (guint8 *data,
|
|||
gint byte_num,
|
||||
gint byte_val);
|
||||
|
||||
static gint ico_get_layer_num_colors (GimpLayer *layer,
|
||||
gboolean *uses_alpha_levels);
|
||||
static void ico_image_get_reduced_buf (GimpDrawable *layer,
|
||||
gint bpp,
|
||||
gint *num_colors,
|
||||
guchar **cmap_out,
|
||||
guchar **buf_out);
|
||||
static gint ico_get_layer_num_colors (GimpLayer *layer,
|
||||
gboolean *uses_alpha_levels);
|
||||
static void ico_image_get_reduced_buf (GimpDrawable *layer,
|
||||
gint bpp,
|
||||
gint *num_colors,
|
||||
guchar **cmap_out,
|
||||
guchar **buf_out);
|
||||
|
||||
static gboolean ico_save_init (GimpImage *image,
|
||||
gint32 run_mode,
|
||||
IcoSaveInfo *info,
|
||||
gint n_hot_spot_x,
|
||||
gint32 *hot_spot_x,
|
||||
gint n_hot_spot_y,
|
||||
gint32 *hot_spot_y,
|
||||
GError **error);
|
||||
static gboolean ico_save_init (GimpImage *image,
|
||||
gint32 run_mode,
|
||||
IcoSaveInfo *info,
|
||||
gint n_hot_spot_x,
|
||||
gint32 *hot_spot_x,
|
||||
gint n_hot_spot_y,
|
||||
gint32 *hot_spot_y,
|
||||
GError **error);
|
||||
static GimpPDBStatusType
|
||||
shared_save_image (GFile *file,
|
||||
FILE *fp_ani,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
gint32 file_offset,
|
||||
gint icon_index,
|
||||
GError **error,
|
||||
IcoSaveInfo *info);
|
||||
shared_save_image (GFile *file,
|
||||
FILE *fp_ani,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
gint32 file_offset,
|
||||
gint icon_index,
|
||||
GError **error,
|
||||
IcoSaveInfo *info);
|
||||
|
||||
|
||||
static gint
|
||||
|
@ -306,19 +308,22 @@ ico_save_init (GimpImage *image,
|
|||
|
||||
|
||||
static gboolean
|
||||
ico_save_dialog (GimpImage *image,
|
||||
IcoSaveInfo *info,
|
||||
AniFileHeader *ani_header,
|
||||
AniSaveInfo *ani_info)
|
||||
ico_save_dialog (GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
IcoSaveInfo *info,
|
||||
AniFileHeader *ani_header,
|
||||
AniSaveInfo *ani_info)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GList *iter;
|
||||
gint i;
|
||||
gint response;
|
||||
gboolean response;
|
||||
|
||||
gimp_ui_init (PLUG_IN_BINARY);
|
||||
|
||||
dialog = ico_dialog_new (info, ani_header, ani_info);
|
||||
dialog = ico_dialog_new (image, procedure, config, info, ani_header,
|
||||
ani_info);
|
||||
for (iter = info->layers, i = 0;
|
||||
iter;
|
||||
iter = g_list_next (iter), i++)
|
||||
|
@ -360,13 +365,13 @@ ico_save_dialog (GimpImage *image,
|
|||
200 + (info->num_icons > 4 ?
|
||||
500 : info->num_icons * 120));
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
gtk_widget_set_visible (dialog, TRUE);
|
||||
|
||||
response = gimp_dialog_run (GIMP_DIALOG (dialog));
|
||||
response = gimp_procedure_dialog_run (GIMP_PROCEDURE_DIALOG (dialog));
|
||||
|
||||
gtk_widget_destroy (dialog);
|
||||
|
||||
return (response == GTK_RESPONSE_OK);
|
||||
return response;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1178,10 +1183,12 @@ ico_save_info_free (IcoSaveInfo *info)
|
|||
}
|
||||
|
||||
GimpPDBStatusType
|
||||
ico_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
GError **error)
|
||||
ico_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
GError **error)
|
||||
{
|
||||
IcoSaveInfo info;
|
||||
|
||||
|
@ -1190,20 +1197,23 @@ ico_export_image (GFile *file,
|
|||
|
||||
info.is_cursor = FALSE;
|
||||
|
||||
return shared_save_image (file, NULL, image, run_mode,
|
||||
return shared_save_image (file, NULL, image, procedure,
|
||||
config, run_mode,
|
||||
0, NULL, 0, NULL,
|
||||
0, 0, error, &info);
|
||||
}
|
||||
|
||||
GimpPDBStatusType
|
||||
cur_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
GError **error)
|
||||
cur_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
GError **error)
|
||||
{
|
||||
IcoSaveInfo info;
|
||||
|
||||
|
@ -1212,7 +1222,8 @@ cur_export_image (GFile *file,
|
|||
|
||||
info.is_cursor = TRUE;
|
||||
|
||||
return shared_save_image (file, NULL, image, run_mode,
|
||||
return shared_save_image (file, NULL, image, procedure,
|
||||
config, run_mode,
|
||||
n_hot_spot_x, hot_spot_x,
|
||||
n_hot_spot_y, hot_spot_y,
|
||||
0, 0, error, &info);
|
||||
|
@ -1220,16 +1231,18 @@ cur_export_image (GFile *file,
|
|||
|
||||
/* Ported from James Huang's ani.c code, under the GPL v3 license */
|
||||
GimpPDBStatusType
|
||||
ani_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
AniFileHeader *header,
|
||||
AniSaveInfo *ani_info,
|
||||
GError **error)
|
||||
ani_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
AniFileHeader *header,
|
||||
AniSaveInfo *ani_info,
|
||||
GError **error)
|
||||
{
|
||||
FILE *fp;
|
||||
gint32 i;
|
||||
|
@ -1320,7 +1333,7 @@ ani_export_image (GFile *file,
|
|||
|
||||
if (run_mode == GIMP_RUN_INTERACTIVE)
|
||||
{
|
||||
if (! ico_save_dialog (image, &info,
|
||||
if (! ico_save_dialog (image, procedure, config, &info,
|
||||
header, ani_info))
|
||||
return GIMP_PDB_CANCEL;
|
||||
|
||||
|
@ -1423,7 +1436,8 @@ ani_export_image (GFile *file,
|
|||
ofs_size_icon = ftell (fp);
|
||||
fwrite (&size, sizeof (size), 1, fp);
|
||||
offset = ftell (fp);
|
||||
status = shared_save_image (file, fp, image, run_mode,
|
||||
status = shared_save_image (file, fp, image, procedure,
|
||||
config, run_mode,
|
||||
n_hot_spot_x, hot_spot_x,
|
||||
n_hot_spot_y, hot_spot_y,
|
||||
offset, i, error, &info);
|
||||
|
@ -1494,18 +1508,20 @@ ani_export_image (GFile *file,
|
|||
}
|
||||
|
||||
GimpPDBStatusType
|
||||
shared_save_image (GFile *file,
|
||||
FILE *fp_ani,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
gint32 file_offset,
|
||||
gint icon_index,
|
||||
GError **error,
|
||||
IcoSaveInfo *info)
|
||||
shared_save_image (GFile *file,
|
||||
FILE *fp_ani,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
gint32 file_offset,
|
||||
gint icon_index,
|
||||
GError **error,
|
||||
IcoSaveInfo *info)
|
||||
{
|
||||
FILE *fp;
|
||||
GList *iter;
|
||||
|
@ -1533,7 +1549,7 @@ shared_save_image (GFile *file,
|
|||
if (run_mode == GIMP_RUN_INTERACTIVE && ! fp_ani)
|
||||
{
|
||||
/* Allow user to override default values */
|
||||
if ( !ico_save_dialog (image, info,
|
||||
if (! ico_save_dialog (image, procedure, config, info,
|
||||
NULL, NULL))
|
||||
return GIMP_PDB_CANCEL;
|
||||
}
|
||||
|
|
|
@ -22,33 +22,39 @@
|
|||
#define __ICO_EXPORT_H__
|
||||
|
||||
|
||||
GimpPDBStatusType ico_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
GError **error);
|
||||
GimpPDBStatusType ico_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
GError **error);
|
||||
|
||||
GimpPDBStatusType cur_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
GError **error);
|
||||
GimpPDBStatusType cur_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
GError **error);
|
||||
|
||||
GimpPDBStatusType ani_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
AniFileHeader *header,
|
||||
AniSaveInfo *ani_info,
|
||||
GError **error);
|
||||
GimpPDBStatusType ani_export_image (GFile *file,
|
||||
GimpImage *image,
|
||||
GimpProcedure *procedure,
|
||||
GimpProcedureConfig *config,
|
||||
gint32 run_mode,
|
||||
gint *n_hot_spot_x,
|
||||
gint32 **hot_spot_x,
|
||||
gint *n_hot_spot_y,
|
||||
gint32 **hot_spot_y,
|
||||
AniFileHeader *header,
|
||||
AniSaveInfo *ani_info,
|
||||
GError **error);
|
||||
|
||||
gboolean ico_cmap_contains_black (const guchar *cmap,
|
||||
gint num_colors);
|
||||
gboolean ico_cmap_contains_black (const guchar *cmap,
|
||||
gint num_colors);
|
||||
|
||||
|
||||
#endif /* __ICO_EXPORT_H__ */
|
||||
|
|
|
@ -301,6 +301,8 @@ ico_create_procedure (GimpPlugIn *plug_in,
|
|||
"Christian Kreibich <christian@whoop.org>",
|
||||
"2002");
|
||||
|
||||
gimp_file_procedure_set_format_name (GIMP_FILE_PROCEDURE (procedure),
|
||||
"Microsoft Windows icon");
|
||||
gimp_file_procedure_set_mime_types (GIMP_FILE_PROCEDURE (procedure),
|
||||
"image/x-ico");
|
||||
gimp_file_procedure_set_extensions (GIMP_FILE_PROCEDURE (procedure),
|
||||
|
@ -328,6 +330,8 @@ ico_create_procedure (GimpPlugIn *plug_in,
|
|||
"Nikc M.",
|
||||
"2002-2022");
|
||||
|
||||
gimp_file_procedure_set_format_name (GIMP_FILE_PROCEDURE (procedure),
|
||||
"Microsoft Windows cursor");
|
||||
gimp_file_procedure_set_mime_types (GIMP_FILE_PROCEDURE (procedure),
|
||||
"image/vnd.microsoft.icon");
|
||||
gimp_file_procedure_set_extensions (GIMP_FILE_PROCEDURE (procedure),
|
||||
|
@ -375,6 +379,8 @@ ico_create_procedure (GimpPlugIn *plug_in,
|
|||
"James Huang, Alex S.",
|
||||
"2007-2022");
|
||||
|
||||
gimp_file_procedure_set_format_name (GIMP_FILE_PROCEDURE (procedure),
|
||||
"Microsoft Windows animated cursor");
|
||||
gimp_file_procedure_set_mime_types (GIMP_FILE_PROCEDURE (procedure),
|
||||
"application/x-navi-animation");
|
||||
gimp_file_procedure_set_extensions (GIMP_FILE_PROCEDURE (procedure),
|
||||
|
@ -578,7 +584,7 @@ ico_export (GimpProcedure *procedure,
|
|||
|
||||
gegl_init (NULL, NULL);
|
||||
|
||||
status = ico_export_image (file, image, run_mode, &error);
|
||||
status = ico_export_image (file, image, procedure, config, run_mode, &error);
|
||||
|
||||
return gimp_procedure_new_return_values (procedure, status, error);
|
||||
}
|
||||
|
@ -608,7 +614,7 @@ cur_export (GimpProcedure *procedure,
|
|||
"hot-spot-y", &hot_spot_y,
|
||||
NULL);
|
||||
|
||||
status = cur_export_image (file, image, run_mode,
|
||||
status = cur_export_image (file, image, procedure, config, run_mode,
|
||||
&n_hot_spot_x, &hot_spot_x,
|
||||
&n_hot_spot_y, &hot_spot_y,
|
||||
&error);
|
||||
|
@ -670,7 +676,7 @@ ani_export (GimpProcedure *procedure,
|
|||
ani_info.inam = inam;
|
||||
ani_info.iart = iart;
|
||||
|
||||
status = ani_export_image (file, image, run_mode,
|
||||
status = ani_export_image (file, image, procedure, config, run_mode,
|
||||
&n_hot_spot_x, &hot_spot_x,
|
||||
&n_hot_spot_y, &hot_spot_y,
|
||||
&header, &ani_info, &error);
|
||||
|
|
Loading…
Reference in New Issue