Updated with upstream update
This commit is contained in:
@ -190,9 +190,9 @@ brushdmenuselect (GtkWidget *widget,
|
||||
|
||||
for (row = 0, y = y1; y < y2; row++, y++)
|
||||
{
|
||||
guchar *tmprow = p->col + row * rowstride;
|
||||
guchar *tmprow_ptr;
|
||||
gint x2 = x1 + w;
|
||||
guchar *tmprow = p->col + row * rowstride;
|
||||
gint x2 = x1 + w;
|
||||
|
||||
gegl_buffer_get (src_buffer, GEGL_RECTANGLE (x1, y, w, 1), 1.0,
|
||||
format, src_row,
|
||||
|
@ -55,7 +55,7 @@ struct _PikaressionistClass
|
||||
|
||||
|
||||
#define PIKARESSIONIST_TYPE (pikaressionist_get_type ())
|
||||
#define PIKARESSIONIST (obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIKARESSIONIST_TYPE, Pikaressionist))
|
||||
#define PIKARESSIONIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIKARESSIONIST_TYPE, Pikaressionist))
|
||||
|
||||
GType pikaressionist_get_type (void) G_GNUC_CONST;
|
||||
|
||||
@ -68,7 +68,7 @@ static PikaValueArray * pikaressionist_run (PikaProcedure *p
|
||||
PikaImage *image,
|
||||
gint n_drawables,
|
||||
PikaDrawable **drawables,
|
||||
const PikaValueArray *args,
|
||||
PikaProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
static void pikaressionist_main (void);
|
||||
@ -128,8 +128,8 @@ pikaressionist_create_procedure (PikaPlugIn *plug_in,
|
||||
pika_procedure_set_documentation (procedure,
|
||||
_("Performs various artistic "
|
||||
"operations"),
|
||||
"Performs various artistic operations "
|
||||
"on an image",
|
||||
_("Performs various artistic operations "
|
||||
"on an image"),
|
||||
name);
|
||||
pika_procedure_set_attribution (procedure,
|
||||
"Vidar Madsen <vidar@prosalg.no>",
|
||||
@ -137,10 +137,15 @@ pikaressionist_create_procedure (PikaPlugIn *plug_in,
|
||||
PLUG_IN_VERSION);
|
||||
|
||||
PIKA_PROC_ARG_STRING (procedure, "preset",
|
||||
"Preset",
|
||||
"Preset Name",
|
||||
_("Preset"),
|
||||
_("Preset Name"),
|
||||
NULL,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
PIKA_PROC_AUX_ARG_BYTES (procedure, "settings-data",
|
||||
"Settings data",
|
||||
"TODO: eventually we must implement proper args for every settings",
|
||||
PIKA_PARAM_READWRITE);
|
||||
}
|
||||
|
||||
return procedure;
|
||||
@ -167,10 +172,11 @@ pikaressionist_run (PikaProcedure *procedure,
|
||||
PikaImage *image,
|
||||
gint n_drawables,
|
||||
PikaDrawable **drawables,
|
||||
const PikaValueArray *args,
|
||||
PikaProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
const gchar *preset_name;
|
||||
GBytes *settings_bytes = NULL;
|
||||
gchar *preset_name = NULL;
|
||||
|
||||
gegl_init (NULL, NULL);
|
||||
|
||||
@ -209,24 +215,33 @@ pikaressionist_run (PikaProcedure *procedure,
|
||||
|
||||
restore_default_values ();
|
||||
|
||||
/* Temporary code replacing legacy pika_[gs]et_data() using an AUX argument.
|
||||
* This doesn't actually fix the "Reset to initial values|factory defaults"
|
||||
* features, but at least makes per-run value storage work.
|
||||
* TODO: eventually we want proper separate arguments as a complete fix.
|
||||
*/
|
||||
g_object_get (config, "settings-data", &settings_bytes, NULL);
|
||||
if (settings_bytes != NULL && g_bytes_get_size (settings_bytes) == sizeof (pikaressionist_vals_t))
|
||||
pcvals = *((pikaressionist_vals_t *) g_bytes_get_data (settings_bytes, NULL));
|
||||
g_bytes_unref (settings_bytes);
|
||||
|
||||
switch (run_mode)
|
||||
{
|
||||
case PIKA_RUN_INTERACTIVE:
|
||||
pika_get_data (PLUG_IN_PROC, &pcvals);
|
||||
|
||||
if (! create_pikaressionist ())
|
||||
{
|
||||
return pika_procedure_new_return_values (procedure,
|
||||
PIKA_PDB_CANCEL,
|
||||
NULL);
|
||||
}
|
||||
if (! create_pikaressionist (procedure, config))
|
||||
return pika_procedure_new_return_values (procedure,
|
||||
PIKA_PDB_CANCEL,
|
||||
NULL);
|
||||
break;
|
||||
|
||||
case PIKA_RUN_NONINTERACTIVE:
|
||||
preset_name = PIKA_VALUES_GET_STRING (args, 0);
|
||||
g_object_get (config,
|
||||
"preset", &preset_name,
|
||||
NULL);
|
||||
|
||||
if (select_preset (preset_name))
|
||||
{
|
||||
g_free (preset_name);
|
||||
return pika_procedure_new_return_values (procedure,
|
||||
PIKA_PDB_EXECUTION_ERROR,
|
||||
NULL);
|
||||
@ -234,7 +249,6 @@ pikaressionist_run (PikaProcedure *procedure,
|
||||
break;
|
||||
|
||||
case PIKA_RUN_WITH_LAST_VALS:
|
||||
pika_get_data (PLUG_IN_PROC, &pcvals);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -256,9 +270,6 @@ pikaressionist_run (PikaProcedure *procedure,
|
||||
|
||||
if (run_mode != PIKA_RUN_NONINTERACTIVE)
|
||||
pika_displays_flush ();
|
||||
|
||||
if (run_mode == PIKA_RUN_INTERACTIVE)
|
||||
pika_set_data (PLUG_IN_PROC, &pcvals, sizeof (pikaressionist_vals_t));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -267,7 +278,12 @@ pikaressionist_run (PikaProcedure *procedure,
|
||||
NULL);
|
||||
}
|
||||
|
||||
settings_bytes = g_bytes_new (&pcvals, sizeof (pikaressionist_vals_t));
|
||||
g_object_set (config, "settings-data", settings_bytes, NULL);
|
||||
g_bytes_unref (settings_bytes);
|
||||
|
||||
/* Resources Cleanup */
|
||||
g_free (preset_name);
|
||||
g_rand_free (random_generator);
|
||||
free_parsepath_cache ();
|
||||
brush_reload (NULL, NULL);
|
||||
@ -277,7 +293,7 @@ pikaressionist_run (PikaProcedure *procedure,
|
||||
orientation_map_free_resources ();
|
||||
size_map_free_resources ();
|
||||
|
||||
return pika_procedure_new_return_values (procedure, PIKA_PDB_SUCCESS, NULL);
|
||||
return pika_procedure_new_return_values (procedure, PIKA_PDB_SUCCESS, NULL);
|
||||
}
|
||||
|
||||
static const Babl *
|
||||
|
@ -111,57 +111,28 @@ create_one_column_list (GtkWidget *parent,
|
||||
return view;
|
||||
}
|
||||
|
||||
static void
|
||||
dialog_response (GtkWidget *widget,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
switch (response_id)
|
||||
{
|
||||
case GTK_RESPONSE_OK:
|
||||
store_values ();
|
||||
pcvals.run = TRUE;
|
||||
gtk_widget_destroy (widget);
|
||||
break;
|
||||
|
||||
default:
|
||||
gtk_widget_destroy (widget);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_dialog (void)
|
||||
static gboolean
|
||||
create_dialog (PikaProcedure *procedure,
|
||||
PikaProcedureConfig *config)
|
||||
{
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *preview_box;
|
||||
gboolean run;
|
||||
|
||||
pika_ui_init (PLUG_IN_BINARY);
|
||||
|
||||
dialog = pika_dialog_new (_("PIKAressionist"), PLUG_IN_ROLE,
|
||||
NULL, 0,
|
||||
pika_standard_help_func, PLUG_IN_PROC,
|
||||
|
||||
_("_Cancel"), GTK_RESPONSE_CANCEL,
|
||||
_("_OK"), GTK_RESPONSE_OK,
|
||||
|
||||
NULL);
|
||||
dialog = pika_procedure_dialog_new (procedure,
|
||||
PIKA_PROCEDURE_CONFIG (config),
|
||||
_("PIKAressionist"));
|
||||
|
||||
pika_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
|
||||
GTK_RESPONSE_OK,
|
||||
GTK_RESPONSE_CANCEL,
|
||||
-1);
|
||||
GTK_RESPONSE_OK,
|
||||
GTK_RESPONSE_CANCEL,
|
||||
-1);
|
||||
|
||||
pika_window_set_transient (GTK_WINDOW (dialog));
|
||||
|
||||
g_signal_connect (dialog, "response",
|
||||
G_CALLBACK (dialog_response),
|
||||
NULL);
|
||||
g_signal_connect (dialog, "destroy",
|
||||
G_CALLBACK (gtk_main_quit),
|
||||
NULL);
|
||||
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 12);
|
||||
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
|
||||
@ -193,19 +164,22 @@ create_dialog (void)
|
||||
* */
|
||||
restore_values ();
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
run = pika_procedure_dialog_run (PIKA_PROCEDURE_DIALOG (dialog));
|
||||
if (run)
|
||||
store_values ();
|
||||
|
||||
return dialog;
|
||||
gtk_widget_destroy (dialog);
|
||||
|
||||
return run;
|
||||
}
|
||||
|
||||
gint
|
||||
create_pikaressionist (void)
|
||||
create_pikaressionist (PikaProcedure *procedure,
|
||||
PikaProcedureConfig *config)
|
||||
{
|
||||
pcvals.run = FALSE;
|
||||
|
||||
create_dialog ();
|
||||
|
||||
gtk_main ();
|
||||
pcvals.run = create_dialog (procedure, config);
|
||||
|
||||
return pcvals.run;
|
||||
}
|
||||
|
@ -163,8 +163,9 @@ double getsiz_proto (double x, double y, int n, smvector_t *vec,
|
||||
double smstrexp, int voronoi);
|
||||
|
||||
|
||||
void set_colorbrushes (const gchar *fn);
|
||||
int create_pikaressionist (void);
|
||||
void set_colorbrushes (const gchar *fn);
|
||||
int create_pikaressionist (PikaProcedure *procedure,
|
||||
PikaProcedureConfig *config);
|
||||
|
||||
double dist (double x, double y, double dx, double dy);
|
||||
|
||||
|
@ -29,10 +29,9 @@ enum SELECT_PRESET_RETURN_VALUES
|
||||
SELECT_PRESET_LOAD_FAILED = -2,
|
||||
};
|
||||
|
||||
void create_presetpage (GtkNotebook *);
|
||||
int select_preset (const gchar *preset);
|
||||
void preset_free (void);
|
||||
void preset_save_button_set_sensitive (gboolean s);
|
||||
void create_presetpage (GtkNotebook *notebook);
|
||||
int select_preset (const gchar *preset);
|
||||
void preset_free (void);
|
||||
void preset_save_button_set_sensitive (gboolean s);
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user