plug-ins/common/align_layers.c plug-ins/common/borderaverage.c

2004-04-20  Sven Neumann  <sven@gimp.org>

	* plug-ins/common/align_layers.c
	* plug-ins/common/borderaverage.c
	* plug-ins/common/channel_mixer.c
	* plug-ins/common/gif.c
	* plug-ins/common/mng.c
	* plug-ins/flame/flame.c
	* plug-ins/gfig/gfig.c: ported remaining plug-ins to GimpIntComboBox.
This commit is contained in:
Sven Neumann 2004-04-20 12:21:17 +00:00 committed by Sven Neumann
parent 8cd676ed4d
commit b0c328afbd
8 changed files with 377 additions and 348 deletions

View File

@ -1,3 +1,13 @@
2004-04-20 Sven Neumann <sven@gimp.org>
* plug-ins/common/align_layers.c
* plug-ins/common/borderaverage.c
* plug-ins/common/channel_mixer.c
* plug-ins/common/gif.c
* plug-ins/common/mng.c
* plug-ins/flame/flame.c
* plug-ins/gfig/gfig.c: ported remaining plug-ins to GimpIntComboBox.
2004-04-20 Sven Neumann <sven@gimp.org>
* plug-ins/common/iwarp.c (iwarp_get_pixel): check tile != NULL

View File

@ -1,6 +1,5 @@
/* align_layers.c -- This is a plug-in for the GIMP (1.0's API)
/* align_layers.c
* Author: Shuji Narazaki <narazaki@InetQ.or.jp>
* Time-stamp: <1999-12-18 05:48:38 yasuhiro>
* Version: 0.26
*
* Copyright (C) 1997-1998 Shuji Narazaki <narazaki@InetQ.or.jp>
@ -350,7 +349,7 @@ align_layers_get_align_offsets (gint32 drawable_id,
gint *x,
gint *y)
{
GimpDrawable *layer = gimp_drawable_get (drawable_id);
GimpDrawable *layer = gimp_drawable_get (drawable_id);
switch (VALS.h_base)
{
@ -358,7 +357,7 @@ align_layers_get_align_offsets (gint32 drawable_id,
*x = 0;
break;
case H_BASE_CENTER:
*x = (gint) (layer->width / 2);
*x = layer->width / 2;
break;
case H_BASE_RIGHT:
*x = layer->width;
@ -367,13 +366,14 @@ align_layers_get_align_offsets (gint32 drawable_id,
*x = 0;
break;
}
switch (VALS.v_base)
{
case V_BASE_TOP:
*y = 0;
break;
case V_BASE_CENTER:
*y = (gint) (layer->height / 2);
*y = layer->height / 2;
break;
case V_BASE_BOTTOM:
*y = layer->height;
@ -382,6 +382,8 @@ align_layers_get_align_offsets (gint32 drawable_id,
*y = 0;
break;
}
gimp_drawable_detach (layer);
}
/* dialog stuff */
@ -391,7 +393,7 @@ align_layers_dialog (void)
GtkWidget *dlg;
GtkWidget *frame;
GtkWidget *table;
GtkWidget *optionmenu;
GtkWidget *combo;
GtkWidget *toggle;
GtkObject *adj;
gboolean run;
@ -419,61 +421,66 @@ align_layers_dialog (void)
gtk_container_add (GTK_CONTAINER (frame), table);
gtk_widget_show (table);
optionmenu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gimp_menu_item_update),
&VALS.h_style, VALS.h_style,
combo = gimp_int_combo_box_new (_("None"), H_NONE,
_("Collect"), H_COLLECT,
_("Fill (left to right)"), LEFT2RIGHT,
_("Fill (right to left)"), RIGHT2LEFT,
_("Snap to Grid"), SNAP2HGRID,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), VALS.h_style);
_("None"), H_NONE, NULL,
_("Collect"), H_COLLECT, NULL,
_("Fill (left to right)"), LEFT2RIGHT, NULL,
_("Fill (right to left)"), RIGHT2LEFT, NULL,
_("Snap to Grid"), SNAP2HGRID, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&VALS.h_style);
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
_("_Horizontal Style:"), 1.0, 0.5,
optionmenu, 1, FALSE);
combo, 1, FALSE);
optionmenu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gimp_menu_item_update),
&VALS.h_base, VALS.h_base,
_("Left Edge"), H_BASE_LEFT, NULL,
_("Center"), H_BASE_CENTER, NULL,
_("Right Edge"), H_BASE_RIGHT, NULL,
combo = gimp_int_combo_box_new (_("Left Edge"), H_BASE_LEFT,
_("Center"), H_BASE_CENTER,
_("Right Edge"), H_BASE_RIGHT,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), VALS.h_base);
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&VALS.h_base);
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
_("Ho_rizontal Base:"), 1.0, 0.5,
optionmenu, 1, FALSE);
combo, 1, FALSE);
optionmenu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gimp_menu_item_update),
&VALS.v_style, VALS.v_style,
combo = gimp_int_combo_box_new (_("None"), V_NONE,
_("Collect"), V_COLLECT,
_("Fill (top to bottom)"), TOP2BOTTOM,
_("Fill (bottom to top)"), BOTTOM2TOP,
_("Snap to Grid"), SNAP2VGRID,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), VALS.v_style);
_("None"), V_NONE, NULL,
_("Collect"), V_COLLECT, NULL,
_("Fill (top to bottom)"), TOP2BOTTOM, NULL,
_("Fill (bottom to top)"), BOTTOM2TOP, NULL,
_("Snap to Grid"), SNAP2VGRID, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&VALS.v_style);
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 2,
_("_Vertical Style:"), 1.0, 0.5,
optionmenu, 1, FALSE);
combo, 1, FALSE);
optionmenu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gimp_menu_item_update),
&VALS.v_base, VALS.v_base,
combo = gimp_int_combo_box_new (_("Top Edge"), V_BASE_TOP,
_("Center"), V_BASE_CENTER,
_("Bottom Edge"), V_BASE_BOTTOM,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), VALS.v_base);
_("Top Edge"), V_BASE_TOP, NULL,
_("Center"), V_BASE_CENTER, NULL,
_("Bottom Edge"), V_BASE_BOTTOM, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&VALS.v_base);
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 3,
_("Ver_tical Base:"), 1.0, 0.5,
optionmenu, 1, FALSE);
combo, 1, FALSE);
toggle = gtk_check_button_new_with_mnemonic
(_("_Ignore the Bottom Layer even if Visible"));

View File

@ -351,9 +351,12 @@ borderaverage_dialog (void)
GtkWidget *label;
GtkWidget *spinbutton;
GtkObject *adj;
GtkWidget *menu;
GtkWidget *combo;
gboolean run;
const gchar *labels[] =
{ "1", "2", "4", "8", "16", "32", "64", "128", "256" };
gimp_ui_init ("borderaverage", FALSE);
dlg = gimp_dialog_new (_("Borderaverage"), "borderaverage",
@ -406,24 +409,17 @@ borderaverage_dialog (void)
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_widget_show (label);
menu = gimp_int_option_menu_new (FALSE, G_CALLBACK (gimp_menu_item_update),
&borderaverage_bucket_exponent,
borderaverage_bucket_exponent,
combo = gimp_int_combo_box_new_array (G_N_ELEMENTS (labels), labels);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo),
borderaverage_bucket_exponent);
_("1 (nonsense?)"), 0, NULL,
"2", 1, NULL,
"4", 2, NULL,
"8", 3, NULL,
"16", 4, NULL,
"32", 5, NULL,
"64", 6, NULL,
"128", 7, NULL,
_("256 (nonsense?)"), 8, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&borderaverage_bucket_exponent);
NULL);
gtk_box_pack_start (GTK_BOX (hbox), menu, FALSE, FALSE, 0);
gtk_widget_show (menu);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), menu);
gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0);
gtk_widget_show (combo);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo);
gtk_widget_show (dlg);

View File

@ -89,7 +89,7 @@ typedef struct
GtkAdjustment *green_data;
GtkAdjustment *blue_data;
GtkWidget *option_menu;
GtkWidget *combo;
CmModeType old_output_channel;
@ -146,7 +146,7 @@ static void cm_save_file_callback (GtkWidget *widget,
static void cm_save_file_response_callback (GtkFileSelection *filesel,
gint response_id,
CmParamsType *mix);
static void cm_option_callback (GtkWidget *widget,
static void cm_combo_callback (GtkWidget *widget,
CmParamsType *mix);
static gboolean cm_force_overwrite (const gchar *filename,
@ -592,23 +592,24 @@ cm_dialog (void)
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_widget_show (label);
mix.option_menu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (cm_option_callback),
&mix, mix.output_channel,
mix.combo = gimp_int_combo_box_new (_("Red"), CM_RED_CHANNEL,
_("Green"), CM_GREEN_CHANNEL,
_("Blue"), CM_BLUE_CHANNEL,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (mix.combo),
mix.output_channel);
_("Red"), CM_RED_CHANNEL, NULL,
_("Green"), CM_GREEN_CHANNEL, NULL,
_("Blue"), CM_BLUE_CHANNEL, NULL,
g_signal_connect (mix.combo, "changed",
G_CALLBACK (cm_combo_callback),
&mix);
NULL);
gtk_box_pack_start (GTK_BOX (hbox), mix.combo, FALSE, FALSE, 0);
gtk_widget_show (mix.combo);
gtk_box_pack_start (GTK_BOX (hbox), mix.option_menu, FALSE, FALSE, 0);
gtk_widget_show (mix.option_menu);
if (mix.monochrome_flag)
gtk_widget_set_sensitive (mix.combo, FALSE);
if (mix.monochrome_flag == TRUE)
gtk_widget_set_sensitive (mix.option_menu, FALSE);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), mix.option_menu);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), mix.combo);
/*........................................................... */
@ -960,13 +961,13 @@ cm_monochrome_callback (GtkWidget *widget,
{
mix->old_output_channel = mix->output_channel;
mix->monochrome_flag = TRUE;
gtk_widget_set_sensitive (mix->option_menu, FALSE);
gtk_widget_set_sensitive (mix->combo, FALSE);
}
else
{
mix->output_channel = mix->old_output_channel;
mix->monochrome_flag = FALSE;
gtk_widget_set_sensitive (mix->option_menu, TRUE);
gtk_widget_set_sensitive (mix->combo, TRUE);
}
cm_set_adjusters (mix);
@ -1139,8 +1140,8 @@ cm_load_file_response_callback (GtkFileSelection *fs,
fclose (fp);
gimp_int_option_menu_set_history (GTK_OPTION_MENU (mix->option_menu),
mix->output_channel);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (mix->combo),
mix->output_channel);
cm_set_adjusters (mix);
if (mix->preview_flag)
@ -1149,7 +1150,8 @@ cm_load_file_response_callback (GtkFileSelection *fs,
else
{
g_message (_("Could not open '%s' for reading: %s"),
gimp_filename_to_utf8 (mix->filename), g_strerror (errno));
gimp_filename_to_utf8 (mix->filename),
g_strerror (errno));
}
}
@ -1368,10 +1370,11 @@ cm_save_file (CmParamsType *mix,
*
*--------------------------------------------------------------------*/
static void
cm_option_callback (GtkWidget *widget,
CmParamsType *mix)
cm_combo_callback (GtkWidget *widget,
CmParamsType *mix)
{
gimp_menu_item_update (widget, &mix->output_channel);
gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget),
(gint *) &mix->output_channel);
cm_set_adjusters (mix);
}

View File

@ -1248,7 +1248,7 @@ save_dialog (gint32 image_ID)
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *align;
GtkWidget *disposal_option_menu;
GtkWidget *combo;
GtkWidget *scrolled_window;
#ifdef FACEHUGGERS
GimpParasite *GIF2_CMNT;
@ -1404,20 +1404,22 @@ save_dialog (gint32 image_ID)
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_widget_show (label);
disposal_option_menu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gimp_menu_item_update),
&gsvals.default_dispose, gsvals.default_dispose,
combo = gimp_int_combo_box_new (_("I don't Care"),
DISPOSE_UNSPECIFIED,
_("Cumulative Layers (Combine)"),
DISPOSE_COMBINE,
_("One Frame per Layer (Replace)"),
DISPOSE_REPLACE,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo),
gsvals.default_dispose);
_("I don't Care"),
DISPOSE_UNSPECIFIED, NULL,
_("Cumulative Layers (Combine)"),
DISPOSE_COMBINE, NULL,
_("One Frame per Layer (Replace)"),
DISPOSE_REPLACE, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&gsvals.default_dispose);
NULL);
gtk_box_pack_start (GTK_BOX (hbox), disposal_option_menu, FALSE, FALSE, 0);
gtk_widget_show (disposal_option_menu);
gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0);
gtk_widget_show (combo);
gtk_widget_show (hbox);
gtk_widget_show (vbox);
@ -1425,10 +1427,10 @@ save_dialog (gint32 image_ID)
/* If the image has only one layer it can't be animated, so
desensitize the animation options. */
if (nlayers == 1) gtk_widget_set_sensitive (frame, FALSE);
if (nlayers == 1)
gtk_widget_set_sensitive (frame, FALSE);
gtk_widget_show (frame);
gtk_widget_show (dlg);
run = (gimp_dialog_run (GIMP_DIALOG (dlg)) == GTK_RESPONSE_OK);

View File

@ -1174,7 +1174,7 @@ mng_save_dialog (gint32 image_id)
GtkWidget *table;
GtkWidget *toggle;
GtkWidget *hbox;
GtkWidget *menu;
GtkWidget *combo;
GtkWidget *label;
GtkWidget *scale;
GtkObject *scale_adj;
@ -1268,46 +1268,42 @@ mng_save_dialog (gint32 image_id)
gimp_image_get_layers (image_id, &num_layers);
if (num_layers == 1)
menu = gimp_int_option_menu_new (FALSE,
G_CALLBACK (gimp_menu_item_update),
&mng_data.default_chunks,
mng_data.default_chunks,
_("PNG"), CHUNKS_PNG_D, NULL,
_("JNG"), CHUNKS_JNG_D, NULL,
NULL);
combo = gimp_int_combo_box_new (_("PNG"), CHUNKS_PNG_D,
_("JNG"), CHUNKS_JNG_D,
NULL);
else
menu = gimp_int_option_menu_new (FALSE,
G_CALLBACK (gimp_menu_item_update),
&mng_data.default_chunks,
mng_data.default_chunks,
combo = gimp_int_combo_box_new (_("PNG + Delta PNG"), CHUNKS_PNG_D,
_("JNG + Delta PNG"), CHUNKS_JNG_D,
_("All PNG"), CHUNKS_PNG,
_("All JNG"), CHUNKS_JNG,
NULL);
_("PNG + Delta PNG"), CHUNKS_PNG_D, NULL,
_("JNG + Delta PNG"), CHUNKS_JNG_D, NULL,
_("All PNG"), CHUNKS_PNG, NULL,
_("All JNG"), CHUNKS_JNG, NULL,
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo),
mng_data.default_chunks);
NULL);
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&mng_data.default_chunks);
gtk_widget_set_sensitive (menu, FALSE);
gtk_widget_set_sensitive (combo, FALSE);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
_("Default Chunks Type:"), 1.0, 0.5,
menu, 1, FALSE);
combo, 1, FALSE);
menu = gimp_int_option_menu_new (FALSE,
G_CALLBACK (gimp_menu_item_update),
&mng_data.default_dispose,
mng_data.default_dispose,
combo = gimp_int_combo_box_new (_("Combine"), DISPOSE_COMBINE,
_("Replace"), DISPOSE_REPLACE,
NULL);
_("Combine"), DISPOSE_COMBINE, NULL,
_("Replace"), DISPOSE_REPLACE, NULL,
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo),
mng_data.default_dispose);
NULL);
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
&mng_data.default_dispose);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
_("Default Frame Disposal:"), 1.0, 0.5,
menu, 1, FALSE);
combo, 1, FALSE);
scale_adj = gtk_adjustment_new (mng_data.compression_level,
0.0, 9.0, 1.0, 1.0, 0.0);

View File

@ -66,7 +66,7 @@ static void load_callback (GtkWidget *widget,
static void save_callback (GtkWidget *widget,
gpointer data);
static void set_edit_preview (void);
static void menu_cb (GtkWidget *widget,
static void combo_callback (GtkWidget *widget,
gpointer data);
static void init_mutants (void);
@ -616,7 +616,7 @@ edit_callback (GtkWidget *widget,
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *button;
GtkWidget *optionmenu;
GtkWidget *combo;
GtkWidget *label;
GtkObject *adj;
gint i, j;
@ -711,27 +711,30 @@ edit_callback (GtkWidget *widget,
G_CALLBACK (randomize_callback),
NULL);
optionmenu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (menu_cb),
&config.variation, VARIATION_SAME,
combo = gimp_int_combo_box_new (_("Same"), VARIATION_SAME,
_("Random"), variation_random,
_("Linear"), 0,
_("Sinusoidal"), 1,
_("Spherical"), 2,
_("Swirl"), 3,
_("Horseshoe"), 4,
_("Polar"), 5,
_("Bent"), 6,
NULL);
_("Same"), VARIATION_SAME, NULL,
_("Random"), variation_random, NULL,
_("Linear"), 0, NULL,
_("Sinusoidal"), 1, NULL,
_("Spherical"), 2, NULL,
_("Swirl"), 3, NULL,
_("Horseshoe"), 4, NULL,
_("Polar"), 5, NULL,
_("Bent"), 6, NULL,
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo),
VARIATION_SAME);
NULL);
gtk_box_pack_end (GTK_BOX (hbox), optionmenu, FALSE, FALSE, 0);
gtk_widget_show (optionmenu);
g_signal_connect (combo, "changed",
G_CALLBACK (combo_callback),
&config.variation);
gtk_box_pack_end (GTK_BOX (hbox), combo, FALSE, FALSE, 0);
gtk_widget_show (combo);
label = gtk_label_new_with_mnemonic (_("_Variation:"));
gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), optionmenu);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo);
gtk_widget_show (label);
gtk_widget_show (main_vbox);
@ -775,13 +778,14 @@ save_callback (GtkWidget *widget,
}
static void
menu_cb (GtkWidget *widget,
gpointer data)
combo_callback (GtkWidget *widget,
gpointer data)
{
gimp_menu_item_update (widget, data);
gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget), (gint *) data);
if (VARIATION_SAME != config.variation)
random_control_point (&edit_cp, config.variation);
init_mutants ();
set_edit_preview ();
}
@ -1073,7 +1077,7 @@ dialog (void)
GtkWidget *label;
GtkWidget *menuitem;
GtkWidget *option_menu;
gint32 save_drawable = config.cmap_drawable;
gint32 save_drawable = config.cmap_drawable;
sep = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box), sep, FALSE, FALSE, 0);

View File

@ -95,17 +95,18 @@
GDK_KEY_PRESS_MASK | \
GDK_KEY_RELEASE_MASK)
static GtkWidget *top_level_dlg;
static GtkWidget *top_level_dlg;
static GimpDrawable *gfig_select_drawable;
GtkWidget *gfig_preview;
GtkWidget *pic_preview;
GtkWidget *gfig_preview;
GtkWidget *pic_preview;
static GtkWidget *gfig_gtk_list;
gint32 gfig_image;
gint32 gfig_drawable;
gint32 gfig_image;
gint32 gfig_drawable;
static GtkWidget *brush_page_pw;
static GtkWidget *brush_sel_button;
static gint img_width, img_height;
static gint img_width;
static gint img_height;
static void query (void);
static void run (const gchar *name,
@ -143,9 +144,9 @@ static void load_button_callback (GtkWidget *widget,
gpointer data);
static void new_button_callback (GtkWidget *widget,
gpointer data);
static void gfig_do_delete_gfig_callback (GtkWidget *widget,
gboolean delete,
gpointer data);
static void gfig_do_delete_gfig_callback (GtkWidget *widget,
gboolean delete,
gpointer data);
static void gfig_delete_gfig_callback (GtkWidget *widget,
gpointer data);
static void edit_button_callback (GtkWidget *widget,
@ -302,7 +303,7 @@ static GFigObj * gfig_new (void);
static void clear_undo (void);
static void gfig_obj_modified (GFigObj *obj, gint stat_type);
static void gfig_op_menu_create (GtkWidget *window);
static void gridtype_menu_callback (GtkWidget *widget, gpointer data);
static void gridtype_combo_callback (GtkWidget *widget, gpointer data);
static void new_obj_2edit (GFigObj *obj);
static gint load_options (GFigObj *gfig, FILE *fp);
@ -883,16 +884,10 @@ update_options (GFigObj *old_obj)
}
if (selvals.opts.gridtype != current_obj->opts.gridtype)
{
gtk_option_menu_set_history
(GTK_OPTION_MENU (gfig_opt_widget.gridtypemenu),
gimp_int_combo_box_set_active
(GIMP_INT_COMBO_BOX (gfig_opt_widget.gridtypemenu),
current_obj->opts.gridtype);
gridtype_menu_callback
(gtk_menu_get_active
(GTK_MENU (gtk_option_menu_get_menu
(GTK_OPTION_MENU (gfig_opt_widget.gridtypemenu)))),
GINT_TO_POINTER (GRID_TYPE_MENU));
#ifdef DEBUG
printf ("Gridtype set in options to ");
if (current_obj->opts.gridtype == RECT_GRID)
@ -1398,19 +1393,19 @@ num_sides_dialog (gchar *d_title,
if (which_way)
{
GtkWidget *option_menu;
GtkWidget *combo = gimp_int_combo_box_new (_("Clockwise"), 0,
_("Anti-Clockwise"), 1,
NULL);
option_menu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gimp_menu_item_update),
which_way, *which_way,
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), *which_way);
_("Clockwise"), 0, NULL,
_("Anti-Clockwise"), 1, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
which_way);
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
_("Orientation:"), 1.0, 0.5,
option_menu, 1, TRUE);
combo, 1, TRUE);
}
gtk_widget_show (window);
@ -1582,10 +1577,11 @@ gfig_brush_update_preview (GtkWidget *widget,
}
static void
gfig_brush_menu_callback (GtkWidget *widget,
gpointer data)
gfig_brush_combo_callback (GtkWidget *widget,
gpointer data)
{
gimp_menu_item_update (widget, &selvals.brshtype);
gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget),
(gint *) &selvals.brshtype);
switch (selvals.brshtype)
{
@ -1628,11 +1624,11 @@ gfig_brush_menu_callback (GtkWidget *widget,
static GtkWidget *
gfig_brush_preview (GtkWidget **pv)
{
GtkWidget *option_menu;
GtkWidget *combo;
GtkWidget *frame;
GtkWidget *hbox;
GtkWidget *vbox;
gint y;
gint y;
hbox = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
@ -1665,25 +1661,26 @@ gfig_brush_preview (GtkWidget **pv)
gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
gtk_widget_show (vbox);
option_menu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gfig_brush_menu_callback),
*pv, selvals.brshtype,
combo = gimp_int_combo_box_new (_("Brush"), BRUSH_BRUSH_TYPE,
_("Airbrush"), BRUSH_AIRBRUSH_TYPE,
_("Pencil"), BRUSH_PENCIL_TYPE,
_("Pattern"), BRUSH_PATTERN_TYPE,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), selvals.brshtype);
_("Brush"), BRUSH_BRUSH_TYPE, NULL,
_("Airbrush"), BRUSH_AIRBRUSH_TYPE, NULL,
_("Pencil"), BRUSH_PENCIL_TYPE, NULL,
_("Pattern"), BRUSH_PATTERN_TYPE, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gfig_brush_combo_callback),
*pv);
NULL);
gtk_widget_show (option_menu);
gtk_container_add (GTK_CONTAINER (vbox), option_menu);
gimp_help_set_help_data (option_menu,
_("Use the brush/pencil or the airbrush when drawing "
"on the image. Pattern paints with currently "
"selected brush with a pattern. Only applies to "
"circles/ellipses if Approx. Circles/Ellipses "
"toggle is set."), NULL);
gtk_container_add (GTK_CONTAINER (vbox), combo);
gimp_help_set_help_data (combo,
_("Use the brush/pencil or the airbrush when "
"drawing on the image. Pattern paints with "
"currently selected brush with a pattern. Only "
"applies to circles/ellipses if the "
"\"Approx. Circles/Ellipses\" toggle is set."),
NULL);
gtk_widget_show (combo);
gtk_container_add (GTK_CONTAINER (hbox), vbox);
gtk_container_add (GTK_CONTAINER (hbox), frame);
@ -1696,7 +1693,7 @@ gfig_brush_fill_preview_xy (GtkWidget *pw,
gint x1,
gint y1)
{
gint row_count;
gint row_count;
BrushDesc *bdesc = (BrushDesc *) g_object_get_data (G_OBJECT (pw),
"brush-desc");
@ -1927,16 +1924,18 @@ static GtkWidget *page_menu_bg;
static GtkWidget *page_menu_layers;
static void
paint_menu_callback (GtkWidget *widget,
gpointer data)
paint_combo_callback (GtkWidget *widget,
gpointer data)
{
gint mtype = GPOINTER_TO_INT (data);
gint value;
if (mtype == PAINT_LAYERS_MENU)
gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget), &value);
switch (mtype)
{
selvals.onlayers = (DrawonLayers)
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
case PAINT_LAYERS_MENU:
selvals.onlayers = (DrawonLayers) value;
#ifdef DEBUG
printf ("layer type set to %s\n",
@ -1948,21 +1947,19 @@ paint_menu_callback (GtkWidget *widget,
gtk_widget_set_sensitive (page_menu_bg, FALSE);
else
gtk_widget_set_sensitive (page_menu_bg, TRUE);
}
else if (mtype == PAINT_BGS_MENU)
{
selvals.onlayerbg = (LayersBGType)
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
break;
case PAINT_BGS_MENU:
selvals.onlayerbg = (LayersBGType) value;
#ifdef DEBUG
printf ("BG type = %d\n", selvals.onlayerbg);
#endif /* DEBUG */
}
else if (mtype == PAINT_TYPE_MENU)
{
selvals.painttype = (PaintType)
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
break;
case PAINT_TYPE_MENU:
selvals.painttype = (PaintType) value;
#ifdef DEBUG
printf ("Got type menu = %d\n", selvals.painttype);
@ -1997,6 +1994,11 @@ paint_menu_callback (GtkWidget *widget,
default:
break;
}
break;
default:
g_return_if_reached ();
break;
}
}
@ -2021,58 +2023,65 @@ paint_page (void)
gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
gtk_widget_show (table);
page_menu_layers =
gimp_int_option_menu_new (FALSE, G_CALLBACK (paint_menu_callback),
GINT_TO_POINTER (PAINT_LAYERS_MENU), 0,
page_menu_layers = gimp_int_combo_box_new (_("Original"), ORIGINAL_LAYER,
_("New"), SINGLE_LAYER,
_("Multiple"), MULTI_LAYER,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (page_menu_layers), 0);
_("Original"), ORIGINAL_LAYER, NULL,
_("New"), SINGLE_LAYER, NULL,
_("Multiple"), MULTI_LAYER, NULL,
NULL);
g_signal_connect (page_menu_layers, "changed",
G_CALLBACK (paint_combo_callback),
GINT_TO_POINTER (PAINT_LAYERS_MENU));
gimp_help_set_help_data (page_menu_layers,
_("Draw all objects on one layer (original or new) "
"or one object per layer"), NULL);
_("Draw all objects on one layer (original or new) "
"or one object per layer."),
NULL);
if (gimp_drawable_is_channel (gfig_drawable))
gtk_widget_set_sensitive (page_menu_layers, FALSE);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
_("Draw on:"), 1.0, 0.5,
page_menu_layers, 1, TRUE);
page_menu_type =
gimp_int_option_menu_new (FALSE, G_CALLBACK (paint_menu_callback),
GINT_TO_POINTER (PAINT_TYPE_MENU), 0,
gimp_int_combo_box_new (_("Brush"), PAINT_BRUSH_TYPE,
_("Selection"), PAINT_SELECTION_TYPE,
_("Selection+Fill"), PAINT_SELECTION_FILL_TYPE,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (page_menu_type), 0);
_("Brush"), PAINT_BRUSH_TYPE, NULL,
_("Selection"), PAINT_SELECTION_TYPE, NULL,
_("Selection+Fill"), PAINT_SELECTION_FILL_TYPE, NULL,
NULL);
g_signal_connect (page_menu_type, "changed",
G_CALLBACK (paint_combo_callback),
GINT_TO_POINTER (PAINT_TYPE_MENU));
gimp_help_set_help_data (page_menu_type,
_("Draw type. Either a brush or a selection. "
"See brush page or selection page for more options"),
"See brush page or selection page for more options."),
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
_("Using:"), 1.0, 0.5,
page_menu_type, 1, TRUE);
page_menu_bg =
gimp_int_option_menu_new (FALSE, G_CALLBACK (paint_menu_callback),
GINT_TO_POINTER (PAINT_BGS_MENU), 0,
page_menu_bg = gimp_int_combo_box_new (_("Transparent"), LAYER_TRANS_BG,
_("Background"), LAYER_BG_BG,
_("Foreground"), LAYER_FG_BG,
_("White"), LAYER_WHITE_BG,
_("Copy"), LAYER_COPY_BG,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (page_menu_bg), 0);
_("Transparent"), LAYER_TRANS_BG, NULL,
_("Background"), LAYER_BG_BG, NULL,
_("Foreground"), LAYER_FG_BG, NULL,
_("White"), LAYER_WHITE_BG, NULL,
_("Copy"), LAYER_COPY_BG, NULL,
g_signal_connect (page_menu_bg, "changed",
G_CALLBACK (paint_combo_callback),
GINT_TO_POINTER (PAINT_BGS_MENU));
NULL);
gimp_help_set_help_data (page_menu_bg,
_("Layer background type. Copy causes previous "
"layer to be copied before the draw is performed"),
NULL);
_("Layer background type. Copy causes the previous "
"layer to be copied before the draw is performed."),
NULL);
gtk_widget_set_sensitive (page_menu_bg, FALSE);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 2,
_("With BG of:"), 1.0, 0.5,
@ -2085,7 +2094,7 @@ paint_page (void)
G_CALLBACK (gimp_toggle_button_update),
&selvals.reverselines);
gimp_help_set_help_data (toggle,
_("Draw lines in reverse order"), NULL);
_("Draw lines in reverse order"), NULL);
gtk_widget_show (toggle);
vbox2 = gtk_vbox_new (FALSE, 0);
@ -2101,7 +2110,7 @@ paint_page (void)
G_CALLBACK (gfig_scale2img_update),
&selvals.scaletoimage);
gimp_help_set_help_data (toggle,
_("Scale drawings to images size"), NULL);
_("Scale drawings to images size"), NULL);
gtk_widget_show (toggle);
hbox = gtk_hbox_new (FALSE, 1);
@ -2130,9 +2139,9 @@ paint_page (void)
G_CALLBACK (gimp_toggle_button_update),
&selvals.approxcircles);
gimp_help_set_help_data (toggle,
_("Approx. circles & ellipses using lines. Allows "
"the use of brush fading with these types of "
"objects."), NULL);
_("Approx. circles & ellipses using lines. Allows "
"the use of brush fading with these types of "
"objects."), NULL);
gtk_widget_show (toggle);
return vbox;
@ -2311,48 +2320,38 @@ brush_page (void)
}
static void
select_menu_callback (GtkWidget *widget,
gpointer data)
select_combo_callback (GtkWidget *widget,
gpointer data)
{
gint mtype = GPOINTER_TO_INT (data);
gint value;
if (mtype == SELECT_TYPE_MENU)
{
SelectionType type = (SelectionType)
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget), &value);
selopt.type = type;
}
else if (mtype == SELECT_ARCTYPE_MENU)
switch (mtype)
{
ArcType type = (ArcType)
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
selopt.as_pie = type;
}
else if (mtype == SELECT_TYPE_MENU_FILL)
{
FillType type = (FillType)
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
selopt.fill_type = type;
}
else if (mtype == SELECT_TYPE_MENU_WHEN)
{
FillWhen type = (FillWhen)
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
selopt.fill_when = type;
case SELECT_TYPE_MENU:
selopt.type = (SelectionType) value;
break;
case SELECT_ARCTYPE_MENU:
selopt.as_pie = (ArcType) value;
break;
case SELECT_TYPE_MENU_FILL:
selopt.fill_type = (FillType) value;
break;
case SELECT_TYPE_MENU_WHEN:
selopt.fill_when = (FillWhen) value;
break;
default:
g_return_if_reached ();
break;
}
}
static GtkWidget *
select_page (void)
{
GtkWidget *menu;
GtkWidget *combo;
GtkWidget *toggle;
GtkWidget *scale;
GtkObject *scale_data;
@ -2369,29 +2368,31 @@ select_page (void)
gtk_widget_show (table);
/* The secltion settings -
* 1) Type (option menu)
* 1) Type (combo box)
* 2) Anti A (toggle)
* 3) Feather (toggle)
* 4) F radius (slider)
* 5) Fill type (option menu)
* 5) Fill type (combo box)
* 6) Opacity (slider)
* 7) When to fill (toggle)
* 8) Arc as segment/sector
*/
/* 1 */
menu = gimp_int_option_menu_new (FALSE, G_CALLBACK (select_menu_callback),
GINT_TO_POINTER (SELECT_TYPE_MENU), 0,
combo = gimp_int_combo_box_new (_("Add"), ADD,
_("Subtract"), SUBTRACT,
_("Replace"), REPLACE,
_("Intersect"), INTERSECT,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 0);
_("Add"), ADD, NULL,
_("Subtract"), SUBTRACT, NULL,
_("Replace"), REPLACE, NULL,
_("Intersect"), INTERSECT, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (select_combo_callback),
GINT_TO_POINTER (SELECT_TYPE_MENU));
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
_("Selection Type:"), 1.0, 0.5,
menu, 1, FALSE);
combo, 1, FALSE);
/* 2 */
toggle = gtk_check_button_new_with_label (_("Antialiasing"));
@ -2425,22 +2426,23 @@ select_page (void)
scale, 1, FALSE);
/* 5 */
menu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (select_menu_callback),
GINT_TO_POINTER (SELECT_TYPE_MENU_FILL), 0,
combo = gimp_int_combo_box_new (_("Pattern"), FILL_PATTERN,
_("Foreground"), FILL_FOREGROUND,
_("Background"), FILL_BACKGROUND,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 0);
_("Pattern"), FILL_PATTERN, NULL,
_("Foreground"), FILL_FOREGROUND, NULL,
_("Background"), FILL_BACKGROUND, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (select_combo_callback),
GINT_TO_POINTER (SELECT_TYPE_MENU_FILL));
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
_("Fill Type:"), 1.0, 0.5,
menu, 1, FALSE);
combo, 1, FALSE);
/* 6 */
scale_data =
gtk_adjustment_new (selopt.fill_opacity, 0.0, 100.0, 1.0, 1.0, 0.0);
scale_data = gtk_adjustment_new (selopt.fill_opacity,
0.0, 100.0, 1.0, 1.0, 0.0);
scale = gtk_hscale_new (GTK_ADJUSTMENT (scale_data));
gtk_scale_set_value_pos (GTK_SCALE (scale), GTK_POS_TOP);
gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_DELAYED);
@ -2452,50 +2454,56 @@ select_page (void)
scale, 1, FALSE);
/* 7 */
menu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (select_menu_callback),
GINT_TO_POINTER (SELECT_TYPE_MENU_WHEN), 0,
combo = gimp_int_combo_box_new (_("Each Selection"), FILL_EACH,
_("All Selections"), FILL_AFTER,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 0);
_("Each Selection"), FILL_EACH, NULL,
_("All Selections"), FILL_AFTER, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (select_combo_callback),
GINT_TO_POINTER (SELECT_TYPE_MENU_WHEN));
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 2,
_("Fill after:"), 1.0, 0.5,
menu, 1, FALSE);
combo, 1, FALSE);
/* 8 */
menu = gimp_int_option_menu_new (FALSE, G_CALLBACK (select_menu_callback),
GINT_TO_POINTER (SELECT_ARCTYPE_MENU), 0,
combo = gimp_int_combo_box_new (_("Segment"), ARC_SEGMENT,
_("Sector"), ARC_SECTOR,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 0);
_("Segment"), ARC_SEGMENT, NULL,
_("Sector"), ARC_SECTOR, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (select_combo_callback),
GINT_TO_POINTER (SELECT_ARCTYPE_MENU));
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 3,
_("Arc as:"), 1.0, 0.5,
menu, 1, FALSE);
combo, 1, FALSE);
return vbox;
}
static void
gridtype_menu_callback (GtkWidget *widget,
gpointer data)
gridtype_combo_callback (GtkWidget *widget,
gpointer data)
{
gint mtype = GPOINTER_TO_INT (data);
gint value;
if (mtype == GRID_TYPE_MENU)
gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget), &value);
switch (mtype)
{
selvals.opts.gridtype =
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
}
else
{
grid_gc_type =
GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
"gimp-item-data"));
case GRID_TYPE_MENU:
selvals.opts.gridtype = value;
break;
case GRID_RENDER_MENU:
grid_gc_type = value;
break;
default:
g_return_if_reached ();
break;
}
draw_grid_clear ();
@ -2505,7 +2513,7 @@ static GtkWidget *
options_page (void)
{
GtkWidget *table;
GtkWidget *menu;
GtkWidget *combo;
GtkWidget *toggle;
GtkWidget *button;
GtkWidget *vbox;
@ -2541,36 +2549,39 @@ options_page (void)
NULL, 0, 0,
button, 1, TRUE);
menu = gimp_int_option_menu_new (FALSE, G_CALLBACK (gridtype_menu_callback),
GINT_TO_POINTER (GRID_TYPE_MENU), 0,
combo = gimp_int_combo_box_new (_("Rectangle"), RECT_GRID,
_("Polar"), POLAR_GRID,
_("Isometric"), ISO_GRID,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 0);
_("Rectangle"), RECT_GRID, NULL,
_("Polar"), POLAR_GRID, NULL,
_("Isometric"), ISO_GRID, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gridtype_combo_callback),
GINT_TO_POINTER (GRID_TYPE_MENU));
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
_("Grid Type:"), 1.0, 0.5,
menu, 1, TRUE);
combo, 1, TRUE);
gfig_opt_widget.gridtypemenu = menu;
gfig_opt_widget.gridtypemenu = combo;
menu =
gimp_int_option_menu_new (FALSE, G_CALLBACK (gridtype_menu_callback),
GINT_TO_POINTER (GRID_RENDER_MENU), 0,
combo = gimp_int_combo_box_new (_("Normal"), GTK_STATE_NORMAL,
_("Black"), GFIG_BLACK_GC,
_("White"), GFIG_WHITE_GC,
_("Grey"), GFIG_GREY_GC,
_("Darker"), GTK_STATE_ACTIVE,
_("Lighter"), GTK_STATE_PRELIGHT,
_("Very Dark"), GTK_STATE_SELECTED,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 0);
_("Normal"), GTK_STATE_NORMAL, NULL,
_("Black"), GFIG_BLACK_GC, NULL,
_("White"), GFIG_WHITE_GC, NULL,
_("Grey"), GFIG_GREY_GC, NULL,
_("Darker"), GTK_STATE_ACTIVE, NULL,
_("Lighter"), GTK_STATE_PRELIGHT, NULL,
_("Very Dark"), GTK_STATE_SELECTED, NULL,
g_signal_connect (combo, "changed",
G_CALLBACK (gridtype_combo_callback),
GINT_TO_POINTER (GRID_RENDER_MENU));
NULL);
gimp_table_attach_aligned (GTK_TABLE (table), 0, 2,
_("Grid Color:"), 1.0, 0.5,
menu, 1, TRUE);
combo, 1, TRUE);
size_data = gimp_scale_entry_new (GTK_TABLE (table), 0, 3,
_("Max Undo:"), 0, 50,
@ -4272,7 +4283,7 @@ toggle_obj_type (GtkWidget *widget,
if (!p_cursors[selvals.otype])
{
GdkDisplay *display = gtk_widget_get_display (widget);
GdkDisplay *display = gtk_widget_get_display (gfig_preview);
p_cursors[selvals.otype] = gdk_cursor_new_for_display (display, ctype);
}