connect to size allocations of the navigation preview's parent container

2002-05-11  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpnavigationview.c: connect to size allocations of
	the navigation preview's parent container and resize it so it
	takes all available space.

	* app/widgets/gimppreview.[ch]: replaced magic values by public
	#defines of GIMP_PREVIEW_MAX_SIZE and GIMP_PREVIEW_MAX_POPUP_SIZE.
	Increased the maximum preview size to 1024. Don't call the virtual
	get_size() function if preview->viewable is NULL but call
	gimp_preview_real_get_size() directly.

	* app/widgets/gimpbufferpreview.c
	* app/widgets/gimpcomponentlistitem.c
	* app/widgets/gimpcontainermenu.c
	* app/widgets/gimpdrawablepreview.c
	* app/widgets/gimpimagepreview.c
	* app/widgets/gimplistitem.c
	* app/widgets/gimpmenuitem.c
	* app/widgets/gimpnavigationpreview.c: replaced magic values by
	the new costants.
This commit is contained in:
Michael Natterer 2002-05-11 13:51:26 +00:00 committed by Michael Natterer
parent 5a024d973b
commit 384a2a851e
24 changed files with 273 additions and 75 deletions

View file

@ -1,3 +1,25 @@
2002-05-11 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: connect to size allocations of
the navigation preview's parent container and resize it so it
takes all available space.
* app/widgets/gimppreview.[ch]: replaced magic values by public
#defines of GIMP_PREVIEW_MAX_SIZE and GIMP_PREVIEW_MAX_POPUP_SIZE.
Increased the maximum preview size to 1024. Don't call the virtual
get_size() function if preview->viewable is NULL but call
gimp_preview_real_get_size() directly.
* app/widgets/gimpbufferpreview.c
* app/widgets/gimpcomponentlistitem.c
* app/widgets/gimpcontainermenu.c
* app/widgets/gimpdrawablepreview.c
* app/widgets/gimpimagepreview.c
* app/widgets/gimplistitem.c
* app/widgets/gimpmenuitem.c
* app/widgets/gimpnavigationpreview.c: replaced magic values by
the new costants.
2002-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolormapeditor.c: Added a comment to explain why

View file

@ -56,9 +56,12 @@ static void gimp_navigation_view_init (GimpNavigationView *view);
static GtkWidget * gimp_navigation_view_new_private (GimpDisplayShell *shell,
gboolean popup);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static void gimp_navigation_view_abox_resized (GtkWidget *widget,
GtkAllocation *allocation,
GimpNavigationView *view);
static void gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gint x,
gint y,
@ -151,6 +154,14 @@ gimp_navigation_view_init (GimpNavigationView *view)
gtk_container_add (GTK_CONTAINER (frame), abox);
gtk_widget_show (abox);
gtk_widget_set_size_request (abox,
gimprc.nav_preview_size,
gimprc.nav_preview_size);
g_signal_connect (G_OBJECT (abox), "size_allocate",
G_CALLBACK (gimp_navigation_view_abox_resized),
view);
view->preview = gimp_navigation_preview_new (NULL, gimprc.nav_preview_size);
gtk_container_add (GTK_CONTAINER (abox), view->preview);
gtk_widget_show (view->preview);
@ -419,6 +430,67 @@ gimp_navigation_view_button_release (GtkWidget *widget,
return FALSE;
}
static void
gimp_navigation_view_abox_resized (GtkWidget *widget,
GtkAllocation *allocation,
GimpNavigationView *view)
{
GimpPreview *preview;
preview = GIMP_PREVIEW (view->preview);
if (! preview->viewable)
return;
if (preview->width > allocation->width ||
preview->height > allocation->height ||
(preview->width != allocation->width &&
preview->height != allocation->height))
{
GimpNavigationPreview *nav_preview;
GimpImage *gimage;
gint width;
gint height;
gboolean dummy;
gimage = GIMP_IMAGE (preview->viewable);
gimp_preview_calc_size (preview,
gimage->width,
gimage->height,
MIN (allocation->width, GIMP_PREVIEW_MAX_SIZE),
MIN (allocation->height, GIMP_PREVIEW_MAX_SIZE),
gimage->xresolution,
gimage->yresolution,
&width,
&height,
&dummy);
if (width > allocation->width)
{
height = height * allocation->width / width;
width = width * allocation->width / width;
}
else if (height > allocation->height)
{
width = width * allocation->height / height;
height = height * allocation->height / height;
}
gimp_preview_set_size_full (preview, width, height, preview->border_width);
/* FIXME: the GimpNavigationPreview should handle this stuff itself */
nav_preview = GIMP_NAVIGATION_PREVIEW (preview);
gimp_navigation_preview_set_marker (nav_preview,
nav_preview->x,
nav_preview->y,
nav_preview->width,
nav_preview->height);
}
}
static void
gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gint x,

View file

@ -56,9 +56,12 @@ static void gimp_navigation_view_init (GimpNavigationView *view);
static GtkWidget * gimp_navigation_view_new_private (GimpDisplayShell *shell,
gboolean popup);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static void gimp_navigation_view_abox_resized (GtkWidget *widget,
GtkAllocation *allocation,
GimpNavigationView *view);
static void gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gint x,
gint y,
@ -151,6 +154,14 @@ gimp_navigation_view_init (GimpNavigationView *view)
gtk_container_add (GTK_CONTAINER (frame), abox);
gtk_widget_show (abox);
gtk_widget_set_size_request (abox,
gimprc.nav_preview_size,
gimprc.nav_preview_size);
g_signal_connect (G_OBJECT (abox), "size_allocate",
G_CALLBACK (gimp_navigation_view_abox_resized),
view);
view->preview = gimp_navigation_preview_new (NULL, gimprc.nav_preview_size);
gtk_container_add (GTK_CONTAINER (abox), view->preview);
gtk_widget_show (view->preview);
@ -419,6 +430,67 @@ gimp_navigation_view_button_release (GtkWidget *widget,
return FALSE;
}
static void
gimp_navigation_view_abox_resized (GtkWidget *widget,
GtkAllocation *allocation,
GimpNavigationView *view)
{
GimpPreview *preview;
preview = GIMP_PREVIEW (view->preview);
if (! preview->viewable)
return;
if (preview->width > allocation->width ||
preview->height > allocation->height ||
(preview->width != allocation->width &&
preview->height != allocation->height))
{
GimpNavigationPreview *nav_preview;
GimpImage *gimage;
gint width;
gint height;
gboolean dummy;
gimage = GIMP_IMAGE (preview->viewable);
gimp_preview_calc_size (preview,
gimage->width,
gimage->height,
MIN (allocation->width, GIMP_PREVIEW_MAX_SIZE),
MIN (allocation->height, GIMP_PREVIEW_MAX_SIZE),
gimage->xresolution,
gimage->yresolution,
&width,
&height,
&dummy);
if (width > allocation->width)
{
height = height * allocation->width / width;
width = width * allocation->width / width;
}
else if (height > allocation->height)
{
width = width * allocation->height / height;
height = height * allocation->height / height;
}
gimp_preview_set_size_full (preview, width, height, preview->border_width);
/* FIXME: the GimpNavigationPreview should handle this stuff itself */
nav_preview = GIMP_NAVIGATION_PREVIEW (preview);
gimp_navigation_preview_set_marker (nav_preview,
nav_preview->x,
nav_preview->y,
nav_preview->width,
nav_preview->height);
}
}
static void
gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gint x,

View file

@ -227,8 +227,8 @@ gimp_buffer_preview_create_popup (GimpPreview *preview)
gimp_preview_calc_size (preview,
buffer_width,
buffer_height,
MIN (preview->width * 2, 256),
MIN (preview->height * 2, 256),
MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
1.0,
1.0,
&popup_width,

View file

@ -144,7 +144,8 @@ gimp_component_list_item_new (GimpImage *gimage,
GimpListItem *list_item;
g_return_val_if_fail (GIMP_IS_IMAGE (gimage), NULL);
g_return_val_if_fail (preview_size > 0 && preview_size <= 256, NULL);
g_return_val_if_fail (preview_size > 0 &&
preview_size <= GIMP_PREVIEW_MAX_SIZE, NULL);
list_item = g_object_new (GIMP_TYPE_COMPONENT_LIST_ITEM, NULL);

View file

@ -32,6 +32,7 @@
#include "gimpcontainermenu.h"
#include "gimpcontainerview-utils.h"
#include "gimppreview.h"
enum
@ -340,7 +341,7 @@ gimp_container_menu_set_preview_size (GimpContainerMenu *menu,
gint preview_size)
{
g_return_if_fail (GIMP_IS_CONTAINER_MENU (menu));
g_return_if_fail (preview_size > 0 && preview_size <= 256 /* FIXME: 64 */);
g_return_if_fail (preview_size > 0 && preview_size <= GIMP_PREVIEW_MAX_SIZE);
if (menu->preview_size != preview_size)
{

View file

@ -276,8 +276,8 @@ gimp_drawable_preview_create_popup (GimpPreview *preview)
gimp_preview_calc_size (preview,
drawable->width,
drawable->height,
MIN (preview->width * 2, 256),
MIN (preview->height * 2, 256),
MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
gimage ? gimage->xresolution : 1.0,
gimage ? gimage->yresolution : 1.0,
&popup_width,

View file

@ -218,8 +218,8 @@ gimp_image_preview_create_popup (GimpPreview *preview)
gimp_preview_calc_size (preview,
gimage->width,
gimage->height,
MIN (preview->width * 2, 256),
MIN (preview->height * 2, 256),
MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
gimage->xresolution,
gimage->yresolution,
&popup_width,

View file

@ -268,7 +268,8 @@ gimp_list_item_new (GimpViewable *viewable,
GimpListItem *list_item;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (preview_size > 0 && preview_size <= 256, NULL);
g_return_val_if_fail (preview_size > 0 &&
preview_size <= GIMP_PREVIEW_MAX_SIZE, NULL);
if (GIMP_IS_LAYER (viewable))
{
@ -344,7 +345,7 @@ gimp_list_item_set_preview_size (GimpListItem *list_item,
gint preview_size)
{
g_return_if_fail (GIMP_IS_LIST_ITEM (list_item));
g_return_if_fail (preview_size > 0 && preview_size <= 256 /* FIXME: 64 */);
g_return_if_fail (preview_size > 0 && preview_size <= GIMP_PREVIEW_MAX_SIZE);
list_item->preview_size = preview_size;

View file

@ -110,7 +110,8 @@ gimp_menu_item_new (GimpViewable *viewable,
GimpMenuItem *menu_item;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (preview_size > 0 && preview_size <= 256, NULL);
g_return_val_if_fail (preview_size > 0 &&
preview_size <= GIMP_PREVIEW_MAX_POPUP_SIZE, NULL);
menu_item = g_object_new (GIMP_TYPE_MENU_ITEM, NULL);

View file

@ -573,7 +573,7 @@ gimp_navigation_preview_new (GimpImage *gimage,
GimpPreview *preview;
g_return_val_if_fail (! gimage || GIMP_IS_IMAGE (gimage), NULL);
g_return_val_if_fail (size > 0 && size <= 256, NULL);
g_return_val_if_fail (size > 0 && size <= GIMP_PREVIEW_MAX_SIZE, NULL);
preview = g_object_new (GIMP_TYPE_NAVIGATION_PREVIEW, NULL);

View file

@ -573,7 +573,7 @@ gimp_navigation_preview_new (GimpImage *gimage,
GimpPreview *preview;
g_return_val_if_fail (! gimage || GIMP_IS_IMAGE (gimage), NULL);
g_return_val_if_fail (size > 0 && size <= 256, NULL);
g_return_val_if_fail (size > 0 && size <= GIMP_PREVIEW_MAX_SIZE, NULL);
preview = g_object_new (GIMP_TYPE_NAVIGATION_PREVIEW, NULL);

View file

@ -499,7 +499,7 @@ gimp_preview_new (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (size > 0 && size <= 256, NULL);
g_return_val_if_fail (size > 0 && size <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -525,8 +525,8 @@ gimp_preview_new_full (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (width > 0 && width <= 256, NULL);
g_return_val_if_fail (height > 0 && height <= 256, NULL);
g_return_val_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -623,7 +623,7 @@ gimp_preview_set_size (GimpPreview *preview,
gint width, height;
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (preview_size > 0 && preview_size <= 256);
g_return_if_fail (preview_size > 0 && preview_size <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->size = preview_size;
@ -631,9 +631,9 @@ gimp_preview_set_size (GimpPreview *preview,
gimp_preview_get_size (preview, preview_size, &width, &height);
gimp_preview_set_size_full (preview,
width,
height,
border_width);
width,
height,
border_width);
}
void
@ -643,8 +643,8 @@ gimp_preview_set_size_full (GimpPreview *preview,
gint border_width)
{
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (width > 0 && width <= 256);
g_return_if_fail (height > 0 && height <= 256);
g_return_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->width = width;
@ -744,7 +744,10 @@ gimp_preview_get_size (GimpPreview *preview,
g_return_if_fail (width != NULL);
g_return_if_fail (height != NULL);
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
if (preview->viewable)
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
else
gimp_preview_real_get_size (preview, size, width, height);
}
static void
@ -785,8 +788,8 @@ gimp_preview_real_create_popup (GimpPreview *preview)
gint popup_width;
gint popup_height;
popup_width = MIN (preview->width * 2, 256);
popup_height = MIN (preview->height * 2, 256);
popup_width = MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
popup_height = MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
return gimp_preview_new_full (preview->viewable,
popup_width,

View file

@ -26,6 +26,10 @@
#include <gtk/gtkdrawingarea.h>
#define GIMP_PREVIEW_MAX_SIZE 1024
#define GIMP_PREVIEW_MAX_POPUP_SIZE 256
#define GIMP_TYPE_PREVIEW (gimp_preview_get_type ())
#define GIMP_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PREVIEW, GimpPreview))
#define GIMP_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, GimpPreviewClass))

View file

@ -499,7 +499,7 @@ gimp_preview_new (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (size > 0 && size <= 256, NULL);
g_return_val_if_fail (size > 0 && size <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -525,8 +525,8 @@ gimp_preview_new_full (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (width > 0 && width <= 256, NULL);
g_return_val_if_fail (height > 0 && height <= 256, NULL);
g_return_val_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -623,7 +623,7 @@ gimp_preview_set_size (GimpPreview *preview,
gint width, height;
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (preview_size > 0 && preview_size <= 256);
g_return_if_fail (preview_size > 0 && preview_size <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->size = preview_size;
@ -631,9 +631,9 @@ gimp_preview_set_size (GimpPreview *preview,
gimp_preview_get_size (preview, preview_size, &width, &height);
gimp_preview_set_size_full (preview,
width,
height,
border_width);
width,
height,
border_width);
}
void
@ -643,8 +643,8 @@ gimp_preview_set_size_full (GimpPreview *preview,
gint border_width)
{
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (width > 0 && width <= 256);
g_return_if_fail (height > 0 && height <= 256);
g_return_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->width = width;
@ -744,7 +744,10 @@ gimp_preview_get_size (GimpPreview *preview,
g_return_if_fail (width != NULL);
g_return_if_fail (height != NULL);
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
if (preview->viewable)
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
else
gimp_preview_real_get_size (preview, size, width, height);
}
static void
@ -785,8 +788,8 @@ gimp_preview_real_create_popup (GimpPreview *preview)
gint popup_width;
gint popup_height;
popup_width = MIN (preview->width * 2, 256);
popup_height = MIN (preview->height * 2, 256);
popup_width = MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
popup_height = MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
return gimp_preview_new_full (preview->viewable,
popup_width,

View file

@ -26,6 +26,10 @@
#include <gtk/gtkdrawingarea.h>
#define GIMP_PREVIEW_MAX_SIZE 1024
#define GIMP_PREVIEW_MAX_POPUP_SIZE 256
#define GIMP_TYPE_PREVIEW (gimp_preview_get_type ())
#define GIMP_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PREVIEW, GimpPreview))
#define GIMP_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, GimpPreviewClass))

View file

@ -276,8 +276,8 @@ gimp_drawable_preview_create_popup (GimpPreview *preview)
gimp_preview_calc_size (preview,
drawable->width,
drawable->height,
MIN (preview->width * 2, 256),
MIN (preview->height * 2, 256),
MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
gimage ? gimage->xresolution : 1.0,
gimage ? gimage->yresolution : 1.0,
&popup_width,

View file

@ -218,8 +218,8 @@ gimp_image_preview_create_popup (GimpPreview *preview)
gimp_preview_calc_size (preview,
gimage->width,
gimage->height,
MIN (preview->width * 2, 256),
MIN (preview->height * 2, 256),
MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
gimage->xresolution,
gimage->yresolution,
&popup_width,

View file

@ -499,7 +499,7 @@ gimp_preview_new (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (size > 0 && size <= 256, NULL);
g_return_val_if_fail (size > 0 && size <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -525,8 +525,8 @@ gimp_preview_new_full (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (width > 0 && width <= 256, NULL);
g_return_val_if_fail (height > 0 && height <= 256, NULL);
g_return_val_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -623,7 +623,7 @@ gimp_preview_set_size (GimpPreview *preview,
gint width, height;
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (preview_size > 0 && preview_size <= 256);
g_return_if_fail (preview_size > 0 && preview_size <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->size = preview_size;
@ -631,9 +631,9 @@ gimp_preview_set_size (GimpPreview *preview,
gimp_preview_get_size (preview, preview_size, &width, &height);
gimp_preview_set_size_full (preview,
width,
height,
border_width);
width,
height,
border_width);
}
void
@ -643,8 +643,8 @@ gimp_preview_set_size_full (GimpPreview *preview,
gint border_width)
{
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (width > 0 && width <= 256);
g_return_if_fail (height > 0 && height <= 256);
g_return_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->width = width;
@ -744,7 +744,10 @@ gimp_preview_get_size (GimpPreview *preview,
g_return_if_fail (width != NULL);
g_return_if_fail (height != NULL);
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
if (preview->viewable)
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
else
gimp_preview_real_get_size (preview, size, width, height);
}
static void
@ -785,8 +788,8 @@ gimp_preview_real_create_popup (GimpPreview *preview)
gint popup_width;
gint popup_height;
popup_width = MIN (preview->width * 2, 256);
popup_height = MIN (preview->height * 2, 256);
popup_width = MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
popup_height = MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
return gimp_preview_new_full (preview->viewable,
popup_width,

View file

@ -26,6 +26,10 @@
#include <gtk/gtkdrawingarea.h>
#define GIMP_PREVIEW_MAX_SIZE 1024
#define GIMP_PREVIEW_MAX_POPUP_SIZE 256
#define GIMP_TYPE_PREVIEW (gimp_preview_get_type ())
#define GIMP_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PREVIEW, GimpPreview))
#define GIMP_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, GimpPreviewClass))

View file

@ -499,7 +499,7 @@ gimp_preview_new (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (size > 0 && size <= 256, NULL);
g_return_val_if_fail (size > 0 && size <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -525,8 +525,8 @@ gimp_preview_new_full (GimpViewable *viewable,
GimpPreview *preview;
g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (width > 0 && width <= 256, NULL);
g_return_val_if_fail (height > 0 && height <= 256, NULL);
g_return_val_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE, NULL);
g_return_val_if_fail (border_width >= 0 && border_width <= 16, NULL);
preview = g_object_new (gimp_preview_type_from_viewable (viewable), NULL);
@ -623,7 +623,7 @@ gimp_preview_set_size (GimpPreview *preview,
gint width, height;
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (preview_size > 0 && preview_size <= 256);
g_return_if_fail (preview_size > 0 && preview_size <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->size = preview_size;
@ -631,9 +631,9 @@ gimp_preview_set_size (GimpPreview *preview,
gimp_preview_get_size (preview, preview_size, &width, &height);
gimp_preview_set_size_full (preview,
width,
height,
border_width);
width,
height,
border_width);
}
void
@ -643,8 +643,8 @@ gimp_preview_set_size_full (GimpPreview *preview,
gint border_width)
{
g_return_if_fail (GIMP_IS_PREVIEW (preview));
g_return_if_fail (width > 0 && width <= 256);
g_return_if_fail (height > 0 && height <= 256);
g_return_if_fail (width > 0 && width <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (height > 0 && height <= GIMP_PREVIEW_MAX_SIZE);
g_return_if_fail (border_width >= 0 && border_width <= 16);
preview->width = width;
@ -744,7 +744,10 @@ gimp_preview_get_size (GimpPreview *preview,
g_return_if_fail (width != NULL);
g_return_if_fail (height != NULL);
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
if (preview->viewable)
GIMP_PREVIEW_GET_CLASS (preview)->get_size (preview, size, width, height);
else
gimp_preview_real_get_size (preview, size, width, height);
}
static void
@ -785,8 +788,8 @@ gimp_preview_real_create_popup (GimpPreview *preview)
gint popup_width;
gint popup_height;
popup_width = MIN (preview->width * 2, 256);
popup_height = MIN (preview->height * 2, 256);
popup_width = MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
popup_height = MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE);
return gimp_preview_new_full (preview->viewable,
popup_width,

View file

@ -26,6 +26,10 @@
#include <gtk/gtkdrawingarea.h>
#define GIMP_PREVIEW_MAX_SIZE 1024
#define GIMP_PREVIEW_MAX_POPUP_SIZE 256
#define GIMP_TYPE_PREVIEW (gimp_preview_get_type ())
#define GIMP_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PREVIEW, GimpPreview))
#define GIMP_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, GimpPreviewClass))

View file

@ -276,8 +276,8 @@ gimp_drawable_preview_create_popup (GimpPreview *preview)
gimp_preview_calc_size (preview,
drawable->width,
drawable->height,
MIN (preview->width * 2, 256),
MIN (preview->height * 2, 256),
MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
gimage ? gimage->xresolution : 1.0,
gimage ? gimage->yresolution : 1.0,
&popup_width,

View file

@ -218,8 +218,8 @@ gimp_image_preview_create_popup (GimpPreview *preview)
gimp_preview_calc_size (preview,
gimage->width,
gimage->height,
MIN (preview->width * 2, 256),
MIN (preview->height * 2, 256),
MIN (preview->width * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
MIN (preview->height * 2, GIMP_PREVIEW_MAX_POPUP_SIZE),
gimage->xresolution,
gimage->yresolution,
&popup_width,