ported to GimpPreviewArea. Still needs work.
* plug-ins/winicon/icodialog.c: ported to GimpPreviewArea. Still needs work.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
2004-08-03 DindinX <david@dindinx.org>
|
||||
|
||||
* plug-ins/winicon/icodialog.c: ported to GimpPreviewArea. Still needs
|
||||
work.
|
||||
|
||||
2004-08-03 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/widgets/gimpcontainergridview.c
|
||||
|
@ -23,11 +23,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#warning GTK_DISABLE_DEPRECATED
|
||||
#endif
|
||||
#undef GTK_DISABLE_DEPRECATED
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include <libgimp/gimp.h>
|
||||
@ -53,7 +48,7 @@ ico_preview_new(gint32 layer)
|
||||
{
|
||||
GtkWidget *icon_preview;
|
||||
|
||||
icon_preview = gtk_preview_new (GTK_PREVIEW_COLOR);
|
||||
icon_preview = gimp_preview_area_new ();
|
||||
ico_fill_preview_with_thumb (icon_preview, layer);
|
||||
|
||||
return icon_preview;
|
||||
@ -66,14 +61,8 @@ ico_fill_preview_with_thumb (GtkWidget *widget,
|
||||
{
|
||||
guchar *drawable_data;
|
||||
gint bpp;
|
||||
gint x,y;
|
||||
gint width;
|
||||
gint height;
|
||||
guchar *src;
|
||||
gdouble r, g, b, a;
|
||||
gdouble c0, c1;
|
||||
guchar *p0, *p1;
|
||||
guchar *even, *odd;
|
||||
|
||||
width = gimp_drawable_width (drawable_ID);
|
||||
height = gimp_drawable_height (drawable_ID);
|
||||
@ -90,74 +79,16 @@ ico_fill_preview_with_thumb (GtkWidget *widget,
|
||||
if (width < 1 || height < 1)
|
||||
return;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (widget), width, height);
|
||||
gtk_widget_set_size_request (widget, width, height);
|
||||
GIMP_PREVIEW_AREA (widget)->width = width;
|
||||
GIMP_PREVIEW_AREA (widget)->height = height;
|
||||
|
||||
even = g_malloc (width * 3);
|
||||
odd = g_malloc (width * 3);
|
||||
src = drawable_data;
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (widget),
|
||||
0, 0, width, height,
|
||||
gimp_drawable_type (drawable_ID),
|
||||
drawable_data,
|
||||
bpp * width);
|
||||
|
||||
for (y = 0; y < height; y++)
|
||||
{
|
||||
p0 = even;
|
||||
p1 = odd;
|
||||
|
||||
for (x = 0; x < width; x++)
|
||||
{
|
||||
if (bpp == 4)
|
||||
{
|
||||
r = ((gdouble) src[x*4 + 0]) / 255.0;
|
||||
g = ((gdouble) src[x*4 + 1]) / 255.0;
|
||||
b = ((gdouble) src[x*4 + 2]) / 255.0;
|
||||
a = ((gdouble) src[x*4 + 3]) / 255.0;
|
||||
}
|
||||
else if (bpp == 3)
|
||||
{
|
||||
r = ((gdouble) src[x*3 + 0]) / 255.0;
|
||||
g = ((gdouble) src[x*3 + 1]) / 255.0;
|
||||
b = ((gdouble) src[x*3 + 2]) / 255.0;
|
||||
a = 1.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
r = ((gdouble) src[x*bpp + 0]) / 255.0;
|
||||
g = b = r;
|
||||
if (bpp == 2)
|
||||
a = ((gdouble) src[x*2 + 1]) / 255.0;
|
||||
else
|
||||
a = 1.0;
|
||||
}
|
||||
|
||||
if ((x / GIMP_CHECK_SIZE_SM) & 1)
|
||||
{
|
||||
c0 = GIMP_CHECK_LIGHT;
|
||||
c1 = GIMP_CHECK_DARK;
|
||||
}
|
||||
else
|
||||
{
|
||||
c0 = GIMP_CHECK_DARK;
|
||||
c1 = GIMP_CHECK_LIGHT;
|
||||
}
|
||||
|
||||
*p0++ = (c0 + (r - c0) * a) * 255.0;
|
||||
*p0++ = (c0 + (g - c0) * a) * 255.0;
|
||||
*p0++ = (c0 + (b - c0) * a) * 255.0;
|
||||
|
||||
*p1++ = (c1 + (r - c1) * a) * 255.0;
|
||||
*p1++ = (c1 + (g - c1) * a) * 255.0;
|
||||
*p1++ = (c1 + (b - c1) * a) * 255.0;
|
||||
|
||||
}
|
||||
|
||||
if ((y / GIMP_CHECK_SIZE_SM) & 1)
|
||||
gtk_preview_draw_row (GTK_PREVIEW (widget), odd, 0, y, width);
|
||||
else
|
||||
gtk_preview_draw_row (GTK_PREVIEW (widget), even, 0, y, width);
|
||||
|
||||
src += width * bpp;
|
||||
}
|
||||
|
||||
g_free (even);
|
||||
g_free (odd);
|
||||
g_free (drawable_data);
|
||||
}
|
||||
|
||||
@ -170,9 +101,11 @@ ico_create_icon_hbox (GtkWidget *icon_preview,
|
||||
gint layer_num)
|
||||
{
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *alignment;
|
||||
GtkWidget *combo;
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 6);
|
||||
alignment = gtk_alignment_new (0.5, 0.5, 0, 0);
|
||||
|
||||
/* To make life easier for the callbacks, we store the
|
||||
layer's ID and stacking number with the hbox. */
|
||||
@ -184,7 +117,9 @@ ico_create_icon_hbox (GtkWidget *icon_preview,
|
||||
|
||||
g_object_set_data (G_OBJECT (hbox), "icon_preview", icon_preview);
|
||||
gtk_widget_show (icon_preview);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), icon_preview, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), alignment, TRUE, TRUE, 0);
|
||||
gtk_widget_show (alignment);
|
||||
gtk_container_add (GTK_CONTAINER (alignment), icon_preview);
|
||||
|
||||
combo = gimp_int_combo_box_new (_("1 bpp, 1-bit alpha, 2-slot palette"), 1,
|
||||
_("4 bpp, 1-bit alpha, 16-slot palette"), 4,
|
||||
|
Reference in New Issue
Block a user