libgimp: make GimpDrawablePreview a final type.

This commit is contained in:
Jehan 2024-09-28 12:28:33 +02:00
parent 3051796f3e
commit 993fae97df
2 changed files with 38 additions and 60 deletions

View file

@ -58,12 +58,12 @@ typedef struct
} PreviewSettings;
typedef struct _GimpDrawablePreviewPrivate
struct _GimpDrawablePreview
{
GimpDrawable *drawable;
} GimpDrawablePreviewPrivate;
GimpScrolledPreview parent_instance;
#define GET_PRIVATE(obj) (gimp_drawable_preview_get_instance_private ((GimpDrawablePreview *) (obj)))
GimpDrawable *drawable;
};
static void gimp_drawable_preview_constructed (GObject *object);
@ -92,8 +92,7 @@ static void gimp_drawable_preview_set_drawable (GimpDrawablePreview *preview,
GimpDrawable *drawable);
G_DEFINE_TYPE_WITH_PRIVATE (GimpDrawablePreview, gimp_drawable_preview,
GIMP_TYPE_SCROLLED_PREVIEW)
G_DEFINE_TYPE (GimpDrawablePreview, gimp_drawable_preview, GIMP_TYPE_SCROLLED_PREVIEW)
#define parent_class gimp_drawable_preview_parent_class
@ -176,7 +175,7 @@ gimp_drawable_preview_constructed (GObject *object)
static void
gimp_drawable_preview_dispose (GObject *object)
{
GimpDrawablePreviewPrivate *priv = GET_PRIVATE (object);
GimpDrawablePreview *preview = GIMP_DRAWABLE_PREVIEW (object);
const gchar *data_name;
data_name = g_object_get_data (G_OBJECT (object),
@ -195,7 +194,7 @@ gimp_drawable_preview_dispose (GObject *object)
g_bytes_unref (bytes);
}
g_clear_object (&priv->drawable);
g_clear_object (&preview->drawable);
G_OBJECT_CLASS (parent_class)->dispose (object);
}
@ -271,7 +270,7 @@ gimp_drawable_preview_style_updated (GtkWidget *widget)
static void
gimp_drawable_preview_draw_original (GimpPreview *preview)
{
GimpDrawablePreviewPrivate *priv = GET_PRIVATE (preview);
GimpDrawablePreview *drawable_preview = GIMP_DRAWABLE_PREVIEW (preview);
GBytes *buffer;
gint width, height;
gint tn_width, tn_height;
@ -281,7 +280,7 @@ gimp_drawable_preview_draw_original (GimpPreview *preview)
gint bpp;
GimpImageType type;
if (priv->drawable == NULL)
if (drawable_preview->drawable == NULL)
return;
gimp_preview_get_size (preview, &width, &height);
@ -293,7 +292,7 @@ gimp_drawable_preview_draw_original (GimpPreview *preview)
gimp_preview_set_offsets (preview, xoff, yoff);
buffer = gimp_drawable_get_sub_thumbnail_data (priv->drawable,
buffer = gimp_drawable_get_sub_thumbnail_data (drawable_preview->drawable,
xoff + xmin,
yoff + ymin,
width, height,
@ -323,10 +322,10 @@ gimp_drawable_preview_draw_thumb (GimpPreview *preview,
gint width,
gint height)
{
GimpDrawablePreviewPrivate *priv = GET_PRIVATE (preview);
GimpDrawablePreview *drawable_preview = GIMP_DRAWABLE_PREVIEW (preview);
if (priv->drawable)
_gimp_drawable_preview_area_draw_thumb (area, priv->drawable,
if (drawable_preview->drawable)
_gimp_drawable_preview_area_draw_thumb (area, drawable_preview->drawable,
width, height);
}
@ -421,7 +420,6 @@ gimp_drawable_preview_draw_area (GimpDrawablePreview *preview,
const guchar *buf,
gint rowstride)
{
GimpDrawablePreviewPrivate *priv = GET_PRIVATE (preview);
GimpPreview *gimp_preview = GIMP_PREVIEW (preview);
GtkWidget *area = gimp_preview_get_area (gimp_preview);
GimpImage *image;
@ -431,7 +429,7 @@ gimp_drawable_preview_draw_area (GimpDrawablePreview *preview,
gimp_preview_get_bounds (gimp_preview, &xmin, &ymin, NULL, NULL);
gimp_preview_get_offsets (gimp_preview, &xoff, &yoff);
image = gimp_item_get_image (GIMP_ITEM (priv->drawable));
image = gimp_item_get_image (GIMP_ITEM (preview->drawable));
if (gimp_selection_is_empty (image))
{
@ -440,7 +438,7 @@ gimp_drawable_preview_draw_area (GimpDrawablePreview *preview,
y - yoff - ymin,
width,
height,
gimp_drawable_type (priv->drawable),
gimp_drawable_type (preview->drawable),
buf, rowstride);
}
else
@ -451,9 +449,9 @@ gimp_drawable_preview_draw_area (GimpDrawablePreview *preview,
gint draw_x, draw_y;
gint draw_width, draw_height;
gimp_drawable_get_offsets (priv->drawable, &offset_x, &offset_y);
gimp_drawable_get_offsets (preview->drawable, &offset_x, &offset_y);
if (gimp_drawable_mask_intersect (priv->drawable,
if (gimp_drawable_mask_intersect (preview->drawable,
&mask_x, &mask_y,
&mask_width, &mask_height) &&
gimp_rectangle_intersect (mask_x, mask_y,
@ -471,7 +469,7 @@ gimp_drawable_preview_draw_area (GimpDrawablePreview *preview,
selection = gimp_image_get_selection (image);
src = gimp_drawable_get_sub_thumbnail_data (priv->drawable,
src = gimp_drawable_get_sub_thumbnail_data (preview->drawable,
draw_x, draw_y,
draw_width, draw_height,
draw_width, draw_height,
@ -539,12 +537,11 @@ gimp_drawable_preview_set_drawable (GimpDrawablePreview *drawable_preview,
GimpDrawable *drawable)
{
GimpPreview *preview = GIMP_PREVIEW (drawable_preview);
GimpDrawablePreviewPrivate *priv = GET_PRIVATE (preview);
gint x1, y1, x2, y2;
g_return_if_fail (priv->drawable == NULL);
g_return_if_fail (drawable_preview->drawable == NULL);
priv->drawable = drawable;
drawable_preview->drawable = drawable;
_gimp_drawable_preview_get_bounds (drawable, &x1, &y1, &x2, &y2);
@ -635,11 +632,7 @@ gimp_drawable_preview_new_from_drawable (GimpDrawable *drawable)
GimpDrawable *
gimp_drawable_preview_get_drawable (GimpDrawablePreview *preview)
{
GimpDrawablePreviewPrivate *priv;
g_return_val_if_fail (GIMP_IS_DRAWABLE_PREVIEW (preview), NULL);
priv = GET_PRIVATE (preview);
return priv->drawable;
return preview->drawable;
}

View file

@ -32,22 +32,7 @@ G_BEGIN_DECLS
#define GIMP_TYPE_DRAWABLE_PREVIEW (gimp_drawable_preview_get_type ())
G_DECLARE_DERIVABLE_TYPE (GimpDrawablePreview, gimp_drawable_preview, GIMP, DRAWABLE_PREVIEW, GimpScrolledPreview)
struct _GimpDrawablePreviewClass
{
GimpScrolledPreviewClass parent_class;
/* Padding for future expansion */
void (* _gimp_reserved1) (void);
void (* _gimp_reserved2) (void);
void (* _gimp_reserved3) (void);
void (* _gimp_reserved4) (void);
void (* _gimp_reserved5) (void);
void (* _gimp_reserved6) (void);
void (* _gimp_reserved7) (void);
void (* _gimp_reserved8) (void);
};
G_DECLARE_FINAL_TYPE (GimpDrawablePreview, gimp_drawable_preview, GIMP, DRAWABLE_PREVIEW, GimpScrolledPreview)
GtkWidget * gimp_drawable_preview_new_from_drawable (GimpDrawable *drawable);