diff --git a/ChangeLog b/ChangeLog index 087788be23..b44187d76e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Oct 13 22:01:41 BST 1998 Andy Thomas + + app/brush_select.[ch] Fixed problem with resizing the brush popup + dialogs. + Tue Oct 13 00:27:21 BST 1998 Andy Thomas app/gradients.c. Added gradient preview and a couple of buttons. diff --git a/app/brush_select.c b/app/brush_select.c index cb4344032e..488dd5e03f 100644 --- a/app/brush_select.c +++ b/app/brush_select.c @@ -41,8 +41,8 @@ #define STD_BRUSH_COLUMNS 5 #define STD_BRUSH_ROWS 5 -#define MAX_WIN_WIDTH (STD_CELL_WIDTH * NUM_BRUSH_COLUMNS) -#define MAX_WIN_HEIGHT (STD_CELL_HEIGHT * NUM_BRUSH_ROWS) +#define MAX_WIN_WIDTH(p) (STD_CELL_WIDTH * ((p)->NUM_BRUSH_COLUMNS)) +#define MAX_WIN_HEIGHT(p) (STD_CELL_HEIGHT * ((p)->NUM_BRUSH_ROWS)) #define MARGIN_WIDTH 3 #define MARGIN_HEIGHT 3 @@ -122,8 +122,6 @@ static BrushEditGeneratedWindow *brush_edit_generated_dialog; /* PDB interface data */ static int success; -int NUM_BRUSH_COLUMNS=5; -int NUM_BRUSH_ROWS=5; static GSList *active_dialogs = NULL; /* List of active dialogs */ @@ -179,6 +177,8 @@ brush_select_new (gchar * title, bsp->old_row = bsp->old_col = 0; bsp->brush = NULL; /* NULL -> main dialog window */ bsp->brush_popup = NULL; + bsp->NUM_BRUSH_COLUMNS = STD_BRUSH_COLUMNS; + bsp->NUM_BRUSH_ROWS = STD_BRUSH_ROWS; /* The shell and main vbox */ bsp->shell = gtk_dialog_new (); @@ -214,7 +214,7 @@ brush_select_new (gchar * title, bsp->frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (bsp->frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (hbox), bsp->frame, TRUE, TRUE, 0); - bsp->sbar_data = GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, MAX_WIN_HEIGHT, 1, 1, MAX_WIN_HEIGHT)); + bsp->sbar_data = GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, MAX_WIN_HEIGHT(bsp), 1, 1, MAX_WIN_HEIGHT(bsp))); sbar = gtk_vscrollbar_new (bsp->sbar_data); gtk_signal_connect (GTK_OBJECT (bsp->sbar_data), "value_changed", (GtkSignalFunc) preview_scroll_update, bsp); @@ -227,8 +227,8 @@ brush_select_new (gchar * title, bsp->cell_width = STD_CELL_WIDTH; bsp->cell_height = STD_CELL_HEIGHT; - bsp->width = MAX_WIN_WIDTH; - bsp->height = MAX_WIN_HEIGHT; + bsp->width = MAX_WIN_WIDTH(bsp); + bsp->height = MAX_WIN_HEIGHT(bsp); bsp->preview = gtk_preview_new (GTK_PREVIEW_GRAYSCALE); gtk_preview_size (GTK_PREVIEW (bsp->preview), bsp->width, bsp->height); @@ -427,8 +427,8 @@ brush_select_select (BrushSelectP bsp, if (index < 0) return; update_active_brush_field (bsp); - row = index / NUM_BRUSH_COLUMNS; - col = index - row * NUM_BRUSH_COLUMNS; + row = index / bsp->NUM_BRUSH_COLUMNS; + col = index - row * (bsp->NUM_BRUSH_COLUMNS); brush_select_show_selected (bsp, row, col); } @@ -708,8 +708,8 @@ display_setup (BrushSelectP bsp) static int brush_counter = 0; static void do_display_brush (GimpBrush *brush, BrushSelectP bsp) { - display_brush (bsp, brush, brush_counter % NUM_BRUSH_COLUMNS, - brush_counter / NUM_BRUSH_COLUMNS); + display_brush (bsp, brush, brush_counter % (bsp->NUM_BRUSH_COLUMNS), + brush_counter / (bsp->NUM_BRUSH_COLUMNS)); brush_counter++; } @@ -826,8 +826,8 @@ preview_calc_scrollbar (BrushSelectP bsp) int offs; offs = bsp->scroll_offset; - num_rows = (gimp_brush_list_length(brush_list) + NUM_BRUSH_COLUMNS - 1) - / NUM_BRUSH_COLUMNS; + num_rows = (gimp_brush_list_length(brush_list) + (bsp->NUM_BRUSH_COLUMNS) - 1) + / (bsp->NUM_BRUSH_COLUMNS); max = num_rows * bsp->cell_width; if (!num_rows) num_rows = 1; page_size = bsp->preview->allocation.height; @@ -848,8 +848,8 @@ brush_select_resize (GtkWidget *widget, GdkEvent *event, BrushSelectP bsp) { - NUM_BRUSH_COLUMNS = (gint)((widget->allocation.width - 4) / STD_CELL_WIDTH); - NUM_BRUSH_ROWS = (gimp_brush_list_length(brush_list) + NUM_BRUSH_COLUMNS - 1) / NUM_BRUSH_COLUMNS; + bsp->NUM_BRUSH_COLUMNS = (gint)((widget->allocation.width - 4) / STD_CELL_WIDTH); + bsp->NUM_BRUSH_ROWS = (gimp_brush_list_length(brush_list) + bsp->NUM_BRUSH_COLUMNS - 1) / bsp->NUM_BRUSH_COLUMNS; bsp->width = widget->allocation.width - 4; bsp->height = widget->allocation.height - 4; @@ -859,7 +859,7 @@ brush_select_resize (GtkWidget *widget, /* recalculate scrollbar extents */ preview_calc_scrollbar (bsp); - /* render the patterns into the newly created image structure */ + /* render the brush into the newly created image structure */ display_brushes (bsp); /* update the display */ @@ -921,7 +921,7 @@ brush_select_events (GtkWidget *widget, { col = bevent->x / bsp->cell_width; row = (bevent->y + bsp->scroll_offset) / bsp->cell_height; - index = row * NUM_BRUSH_COLUMNS + col; + index = row * bsp->NUM_BRUSH_COLUMNS + col; /* Get the brush and display the popup brush preview */ if ((brush = gimp_brush_list_get_brush_by_index (brush_list, index))) @@ -1118,8 +1118,8 @@ preview_scroll_update (GtkAdjustment *adjustment, index = gimp_brush_list_get_brush_index(brush_list, active); if (index < 0) return; - row = index / NUM_BRUSH_COLUMNS; - col = index - row * NUM_BRUSH_COLUMNS; + row = index / bsp->NUM_BRUSH_COLUMNS; + col = index - row * bsp->NUM_BRUSH_COLUMNS; brush_select_show_selected (bsp, row, col); } diff --git a/app/brush_select.h b/app/brush_select.h index 22eafb5e50..1c8ec4ebef 100644 --- a/app/brush_select.h +++ b/app/brush_select.h @@ -52,6 +52,9 @@ struct _BrushSelect { gdouble opacity_value; gint spacing_value; gint paint_mode; + /* To calc column pos. */ + gint NUM_BRUSH_COLUMNS; + gint NUM_BRUSH_ROWS; }; BrushSelectP brush_select_new (gchar *, diff --git a/app/gui/brush-select.c b/app/gui/brush-select.c index cb4344032e..488dd5e03f 100644 --- a/app/gui/brush-select.c +++ b/app/gui/brush-select.c @@ -41,8 +41,8 @@ #define STD_BRUSH_COLUMNS 5 #define STD_BRUSH_ROWS 5 -#define MAX_WIN_WIDTH (STD_CELL_WIDTH * NUM_BRUSH_COLUMNS) -#define MAX_WIN_HEIGHT (STD_CELL_HEIGHT * NUM_BRUSH_ROWS) +#define MAX_WIN_WIDTH(p) (STD_CELL_WIDTH * ((p)->NUM_BRUSH_COLUMNS)) +#define MAX_WIN_HEIGHT(p) (STD_CELL_HEIGHT * ((p)->NUM_BRUSH_ROWS)) #define MARGIN_WIDTH 3 #define MARGIN_HEIGHT 3 @@ -122,8 +122,6 @@ static BrushEditGeneratedWindow *brush_edit_generated_dialog; /* PDB interface data */ static int success; -int NUM_BRUSH_COLUMNS=5; -int NUM_BRUSH_ROWS=5; static GSList *active_dialogs = NULL; /* List of active dialogs */ @@ -179,6 +177,8 @@ brush_select_new (gchar * title, bsp->old_row = bsp->old_col = 0; bsp->brush = NULL; /* NULL -> main dialog window */ bsp->brush_popup = NULL; + bsp->NUM_BRUSH_COLUMNS = STD_BRUSH_COLUMNS; + bsp->NUM_BRUSH_ROWS = STD_BRUSH_ROWS; /* The shell and main vbox */ bsp->shell = gtk_dialog_new (); @@ -214,7 +214,7 @@ brush_select_new (gchar * title, bsp->frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (bsp->frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (hbox), bsp->frame, TRUE, TRUE, 0); - bsp->sbar_data = GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, MAX_WIN_HEIGHT, 1, 1, MAX_WIN_HEIGHT)); + bsp->sbar_data = GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, MAX_WIN_HEIGHT(bsp), 1, 1, MAX_WIN_HEIGHT(bsp))); sbar = gtk_vscrollbar_new (bsp->sbar_data); gtk_signal_connect (GTK_OBJECT (bsp->sbar_data), "value_changed", (GtkSignalFunc) preview_scroll_update, bsp); @@ -227,8 +227,8 @@ brush_select_new (gchar * title, bsp->cell_width = STD_CELL_WIDTH; bsp->cell_height = STD_CELL_HEIGHT; - bsp->width = MAX_WIN_WIDTH; - bsp->height = MAX_WIN_HEIGHT; + bsp->width = MAX_WIN_WIDTH(bsp); + bsp->height = MAX_WIN_HEIGHT(bsp); bsp->preview = gtk_preview_new (GTK_PREVIEW_GRAYSCALE); gtk_preview_size (GTK_PREVIEW (bsp->preview), bsp->width, bsp->height); @@ -427,8 +427,8 @@ brush_select_select (BrushSelectP bsp, if (index < 0) return; update_active_brush_field (bsp); - row = index / NUM_BRUSH_COLUMNS; - col = index - row * NUM_BRUSH_COLUMNS; + row = index / bsp->NUM_BRUSH_COLUMNS; + col = index - row * (bsp->NUM_BRUSH_COLUMNS); brush_select_show_selected (bsp, row, col); } @@ -708,8 +708,8 @@ display_setup (BrushSelectP bsp) static int brush_counter = 0; static void do_display_brush (GimpBrush *brush, BrushSelectP bsp) { - display_brush (bsp, brush, brush_counter % NUM_BRUSH_COLUMNS, - brush_counter / NUM_BRUSH_COLUMNS); + display_brush (bsp, brush, brush_counter % (bsp->NUM_BRUSH_COLUMNS), + brush_counter / (bsp->NUM_BRUSH_COLUMNS)); brush_counter++; } @@ -826,8 +826,8 @@ preview_calc_scrollbar (BrushSelectP bsp) int offs; offs = bsp->scroll_offset; - num_rows = (gimp_brush_list_length(brush_list) + NUM_BRUSH_COLUMNS - 1) - / NUM_BRUSH_COLUMNS; + num_rows = (gimp_brush_list_length(brush_list) + (bsp->NUM_BRUSH_COLUMNS) - 1) + / (bsp->NUM_BRUSH_COLUMNS); max = num_rows * bsp->cell_width; if (!num_rows) num_rows = 1; page_size = bsp->preview->allocation.height; @@ -848,8 +848,8 @@ brush_select_resize (GtkWidget *widget, GdkEvent *event, BrushSelectP bsp) { - NUM_BRUSH_COLUMNS = (gint)((widget->allocation.width - 4) / STD_CELL_WIDTH); - NUM_BRUSH_ROWS = (gimp_brush_list_length(brush_list) + NUM_BRUSH_COLUMNS - 1) / NUM_BRUSH_COLUMNS; + bsp->NUM_BRUSH_COLUMNS = (gint)((widget->allocation.width - 4) / STD_CELL_WIDTH); + bsp->NUM_BRUSH_ROWS = (gimp_brush_list_length(brush_list) + bsp->NUM_BRUSH_COLUMNS - 1) / bsp->NUM_BRUSH_COLUMNS; bsp->width = widget->allocation.width - 4; bsp->height = widget->allocation.height - 4; @@ -859,7 +859,7 @@ brush_select_resize (GtkWidget *widget, /* recalculate scrollbar extents */ preview_calc_scrollbar (bsp); - /* render the patterns into the newly created image structure */ + /* render the brush into the newly created image structure */ display_brushes (bsp); /* update the display */ @@ -921,7 +921,7 @@ brush_select_events (GtkWidget *widget, { col = bevent->x / bsp->cell_width; row = (bevent->y + bsp->scroll_offset) / bsp->cell_height; - index = row * NUM_BRUSH_COLUMNS + col; + index = row * bsp->NUM_BRUSH_COLUMNS + col; /* Get the brush and display the popup brush preview */ if ((brush = gimp_brush_list_get_brush_by_index (brush_list, index))) @@ -1118,8 +1118,8 @@ preview_scroll_update (GtkAdjustment *adjustment, index = gimp_brush_list_get_brush_index(brush_list, active); if (index < 0) return; - row = index / NUM_BRUSH_COLUMNS; - col = index - row * NUM_BRUSH_COLUMNS; + row = index / bsp->NUM_BRUSH_COLUMNS; + col = index - row * bsp->NUM_BRUSH_COLUMNS; brush_select_show_selected (bsp, row, col); } diff --git a/app/gui/brush-select.h b/app/gui/brush-select.h index 22eafb5e50..1c8ec4ebef 100644 --- a/app/gui/brush-select.h +++ b/app/gui/brush-select.h @@ -52,6 +52,9 @@ struct _BrushSelect { gdouble opacity_value; gint spacing_value; gint paint_mode; + /* To calc column pos. */ + gint NUM_BRUSH_COLUMNS; + gint NUM_BRUSH_ROWS; }; BrushSelectP brush_select_new (gchar *,