1999-07-19 02:13:34 +00:00
|
|
|
/* testpixbuf -- test program for gdk-pixbuf code
|
|
|
|
* Copyright (C) 1999 Mark Crichton, Larry Ewing
|
1999-07-08 16:04:16 +00:00
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
2000-07-26 11:33:08 +00:00
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
1999-07-08 16:04:16 +00:00
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
2000-07-26 11:33:08 +00:00
|
|
|
* Lesser General Public License for more details.
|
1999-07-08 16:04:16 +00:00
|
|
|
*
|
2000-07-26 11:33:08 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
1999-07-08 16:04:16 +00:00
|
|
|
* License along with this library; if not, write to the
|
|
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
* Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
1999-12-02 20:44:43 +00:00
|
|
|
#include <config.h>
|
2000-04-11 07:03:25 +00:00
|
|
|
#include <stdio.h>
|
1999-07-08 16:04:16 +00:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <gtk/gtk.h>
|
Add built marshaller files to support GdkPixbufLoader signals
2001-01-22 Havoc Pennington <hp@redhat.com>
* Makefile.am: Add built marshaller files to support
GdkPixbufLoader signals
* gdk-pixbuf-io.c (gdk_pixbuf_load_module): have
GDK_PIXBUF_MODULEDIR unconditionally replace the compiled-in
module location, rather than acting as a fallback, because we are
using GDK_PIXBUF_MODULEDIR to use gdk-pixbuf before installing it.
* gdk-pixbuf.h: include gdk-pixbuf-loader.h
* gdk-pixbuf-loader.h, gdk-pixbuf-loader.c: Move back over here
from gtk, and add error to close(), because stop_load may do
parsing of the image.
* pixops/have_mmx.S (_pixops_have_mmx): add newline at end of file
* io-*.c: make individual operations static, and add fill_vtable
functions which are exported. Fix the collection of type warnings
that surfaced, including a number of functions that didn't
properly take a GError and some that weren't
const-correct. Involved adding error handling for a few loaders.
* gdk-pixbuf-io.h: Add error reporting to stop_load function
* gdk-pixbuf-io.c (gdk_pixbuf_load_module): change to just look up
a function that fills in the GdkPixbufModule vtable, instead of
looking up all the image functions individually; this means we
can get type safety within modules for the loader functions.
Also it means you don't have to keep the statically compiled and
GModule versions in sync.
* test-gdk-pixbuf.c (main): remove gdk_pixbuf_init()
* make-inline-pixbuf.c (main): remove call to gdk_pixbuf_init()
* gdk-pixbuf.h: nuke gdk_pixbuf_init()
* gdk-pixbuf-animation.c (gdk_pixbuf_frame_get_type): g_type_init
() here
* gdk-pixbuf.c (gdk_pixbuf_get_type): g_type_init () here
* gdk-pixbuf-animation.c (gdk_pixbuf_animation_get_type):
g_type_init() here
2001-01-22 Havoc Pennington <hp@redhat.com>
* demos/testanimation.c: fix to reflect gdk-pixbuf changes
* demos/testpixbuf.c: fix to reflect gdk-pixbuf changes
* gtk/gdk-pixbuf-loader.c, gtk/gdk-pixbuf-loader.h:
Remove, move back to gdk-pixbuf
* gtk/gtktextiter.c, gtk/gtktextiter.h: add sentence equivalents
to all the word functions
* gtk/gtktextview.c (gtk_text_view_start_cursor_blink): return
before doing anything on NULL layout or if we don't have the focus
* gtk/testtext.c (fill_example_buffer): "justification"
* gtk/gtktexttag.h, gtk/gtktexttag.c: change the tag attribute
to be called "justification" not "justify"
* demos/gtk-demo/textview.c (create_tags): "justification"
* gtk/gtktextlayout.c (set_para_values): Handle char-wise wrapping
2001-01-22 23:09:48 +00:00
|
|
|
#include <gdk-pixbuf/gdk-pixbuf-loader.h>
|
1999-07-08 16:04:16 +00:00
|
|
|
|
2000-10-04 16:39:44 +00:00
|
|
|
#include "test-inline-pixbufs.h"
|
|
|
|
|
1999-11-09 23:51:35 +00:00
|
|
|
typedef struct {
|
|
|
|
FILE *imagefile;
|
|
|
|
GdkPixbufLoader *loader;
|
1999-11-10 17:43:49 +00:00
|
|
|
GtkWidget **rgbwin;
|
1999-11-09 23:51:35 +00:00
|
|
|
guchar *buf;
|
|
|
|
guint timeout;
|
|
|
|
guint readlen;
|
|
|
|
} ProgressFileStatus;
|
|
|
|
|
|
|
|
|
1999-10-08 23:01:05 +00:00
|
|
|
#define DEFAULT_WIDTH 24
|
|
|
|
#define DEFAULT_HEIGHT 24
|
|
|
|
|
|
|
|
static const unsigned char default_image[] = {
|
1999-10-18 19:29:45 +00:00
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0x00, 0x00, 0x00, 0xae, 0xb3, 0xb3, 0xc6, 0xc9, 0xcd, 0xd7, 0xd4, 0xdf,
|
|
|
|
0xec, 0xde, 0xf3, 0xe7, 0xcb, 0xe9, 0xd9, 0xb5, 0xd3, 0x00, 0x00, 0x00,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xb1, 0xb7, 0xa5,
|
|
|
|
0xb0, 0xb8, 0xad, 0xb3, 0xb9, 0xb6, 0xc1, 0xc6, 0xc8, 0xd5, 0xd3, 0xdc,
|
|
|
|
0xec, 0xde, 0xf3, 0xe5, 0xca, 0xe6, 0xe0, 0xbb, 0xd7, 0xe1, 0xad, 0xc2,
|
|
|
|
0xe3, 0xac, 0xa3, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xca, 0xc1, 0xa4, 0xc5, 0xc7, 0xac,
|
|
|
|
0xb7, 0xbe, 0xaf, 0xad, 0xb4, 0xaf, 0xbd, 0xc2, 0xc3, 0xd1, 0xd0, 0xd8,
|
|
|
|
0xec, 0xde, 0xf3, 0xe5, 0xc7, 0xe4, 0xe0, 0xb6, 0xd1, 0xe7, 0xa9, 0xb4,
|
|
|
|
0xed, 0xcd, 0xb6, 0xd6, 0xcf, 0xae, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0x00, 0x00, 0x00, 0xdf, 0xa7, 0x9f, 0xdd, 0xbf, 0xaa, 0xcf, 0xc5, 0xa9,
|
|
|
|
0xc1, 0xc4, 0xac, 0xb2, 0xba, 0xaf, 0xb6, 0xbb, 0xbb, 0xcd, 0xce, 0xd4,
|
|
|
|
0xec, 0xde, 0xf3, 0xe4, 0xc4, 0xe1, 0xe0, 0xaf, 0xc7, 0xea, 0xbc, 0xae,
|
|
|
|
0xe1, 0xd6, 0xb6, 0xc7, 0xcc, 0xae, 0xa2, 0xab, 0x9a, 0x00, 0x00, 0x00,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0x00, 0x00, 0x00, 0xe3, 0xab, 0xc0, 0xe6, 0xa3, 0xa7, 0xdf, 0xba, 0xa8,
|
|
|
|
0xcf, 0xc5, 0xa9, 0xbd, 0xc2, 0xae, 0xad, 0xb4, 0xaf, 0xc6, 0xc9, 0xcd,
|
|
|
|
0xec, 0xde, 0xf3, 0xe2, 0xbf, 0xdc, 0xe7, 0xa9, 0xb4, 0xe7, 0xd6, 0xb8,
|
|
|
|
0xc7, 0xcc, 0xae, 0xac, 0xb6, 0xa6, 0x9d, 0xa8, 0x9f, 0x00, 0x00, 0x00,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0xd9, 0xaf, 0xcf, 0xe1, 0xb4, 0xd2, 0xe2, 0xb0, 0xcb, 0xe4, 0xa9, 0xbb,
|
|
|
|
0xe2, 0xb2, 0xa6, 0xcf, 0xc5, 0xa9, 0x6a, 0x6a, 0x6a, 0x0d, 0x0d, 0x0d,
|
|
|
|
0x0d, 0x0d, 0x0d, 0x6a, 0x6a, 0x6a, 0xed, 0xcd, 0xb6, 0xc7, 0xcc, 0xae,
|
|
|
|
0xa6, 0xb1, 0xa3, 0x98, 0xa2, 0x9c, 0x8f, 0x97, 0x96, 0x7e, 0x84, 0x85,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0xe8, 0xc6, 0xe7, 0xe5, 0xc2, 0xe3, 0xe3, 0xbd, 0xdd, 0xe1, 0xb6, 0xd5,
|
|
|
|
0xe2, 0xb0, 0xcb, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x6a, 0x6a, 0x6a, 0x9d, 0xa8, 0x9f,
|
|
|
|
0x8f, 0x97, 0x96, 0x8b, 0x90, 0x92, 0x97, 0x9e, 0xa2, 0xa0, 0xa7, 0xae,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0xe7, 0xd3, 0xed, 0xe8, 0xd1, 0xed, 0xe8, 0xce, 0xec, 0xe9, 0xcc, 0xeb,
|
|
|
|
0xe8, 0xc6, 0xe7, 0x0d, 0x0d, 0x0d, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x0d, 0x0d, 0x0d, 0x97, 0x9e, 0xa2,
|
|
|
|
0xa7, 0xae, 0xb7, 0xb2, 0xb6, 0xc5, 0xba, 0xbc, 0xce, 0xbf, 0xbe, 0xd3,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0xe9, 0xdf, 0xf0, 0xe9, 0xdf, 0xf0, 0xe9, 0xdf, 0xf0, 0xe9, 0xdf, 0xf0,
|
|
|
|
0xe9, 0xdf, 0xf0, 0x0d, 0x0d, 0x0d, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x0d, 0x0d, 0x0d, 0xe1, 0xd2, 0xf7,
|
|
|
|
0xe1, 0xd2, 0xf7, 0xe1, 0xd2, 0xf7, 0xe1, 0xd2, 0xf7, 0xe1, 0xd2, 0xf7,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0xca, 0xc7, 0xd2, 0xc5, 0xc4, 0xcd, 0xbf, 0xbf, 0xc7, 0xb8, 0xb9, 0xc0,
|
|
|
|
0xae, 0xaf, 0xb6, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x6a, 0x6a, 0x6a, 0xd5, 0xa8, 0xe1,
|
|
|
|
0xd8, 0xb2, 0xe9, 0xd9, 0xb8, 0xed, 0xdb, 0xbd, 0xf0, 0xdc, 0xbf, 0xf1,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0xa4, 0xa6, 0xac, 0xa8, 0xaa, 0xaf, 0xa0, 0xa6, 0xa8, 0x98, 0x9e, 0x9c,
|
|
|
|
0xa1, 0xa8, 0x9e, 0xb1, 0xb6, 0xa1, 0x6a, 0x6a, 0x6a, 0x0d, 0x0d, 0x0d,
|
|
|
|
0x0d, 0x0d, 0x0d, 0x6a, 0x6a, 0x6a, 0xc0, 0x8c, 0xad, 0xcc, 0x90, 0xb5,
|
|
|
|
0xd3, 0x94, 0xca, 0xd6, 0xa2, 0xdb, 0xd5, 0xa8, 0xe1, 0xcf, 0xa7, 0xdf,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0x00, 0x00, 0x00, 0x98, 0x9f, 0x9b, 0xa1, 0xa8, 0x9e, 0xac, 0xb3, 0xa0,
|
|
|
|
0xb9, 0xb9, 0xa4, 0xd0, 0xb8, 0xa8, 0xc5, 0xb5, 0xb8, 0xb6, 0xbb, 0xad,
|
|
|
|
0xe3, 0xd7, 0xb5, 0xdd, 0xb4, 0xa9, 0xcb, 0x89, 0xac, 0xc0, 0x8c, 0xad,
|
|
|
|
0xc8, 0x91, 0xb5, 0xd1, 0x8d, 0xb7, 0xd3, 0x94, 0xca, 0x00, 0x00, 0x00,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0x00, 0x00, 0x00, 0xa1, 0xa7, 0x98, 0xb1, 0xb6, 0xa1, 0xbd, 0xb9, 0xa5,
|
|
|
|
0xd0, 0xb8, 0xa8, 0xca, 0xb5, 0xb7, 0xb8, 0xb1, 0xb1, 0xc2, 0xc8, 0xb2,
|
|
|
|
0xe3, 0xd7, 0xb5, 0xe1, 0xbf, 0xaf, 0xdb, 0x92, 0x9a, 0xbe, 0x82, 0xa6,
|
|
|
|
0xc0, 0x8c, 0xad, 0xc8, 0x91, 0xb4, 0xc7, 0x8b, 0xb0, 0x00, 0x00, 0x00,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xbc, 0xb6, 0xa1, 0xd0, 0xb8, 0xa8,
|
|
|
|
0xcd, 0xb6, 0xb7, 0xc0, 0xb4, 0xb5, 0xb1, 0xb1, 0xaa, 0xca, 0xd1, 0xb4,
|
|
|
|
0xe3, 0xd7, 0xb5, 0xe2, 0xc1, 0xb0, 0xdb, 0xa8, 0xa3, 0xd2, 0x8a, 0xa9,
|
|
|
|
0xb7, 0x7e, 0xa2, 0xbd, 0x89, 0xa9, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xc9, 0xaf, 0xaf,
|
|
|
|
0xc5, 0xb5, 0xb8, 0xb8, 0xb1, 0xb1, 0xb6, 0xbb, 0xad, 0xd0, 0xd6, 0xb5,
|
|
|
|
0xe3, 0xd7, 0xb5, 0xe2, 0xbf, 0xaf, 0xdd, 0xb4, 0xa9, 0xdb, 0x92, 0x9a,
|
|
|
|
0xc6, 0x84, 0xa7, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
|
|
|
0x00, 0x00, 0x00, 0xac, 0xaa, 0xa6, 0xbd, 0xc3, 0xb0, 0xd2, 0xd7, 0xb5,
|
|
|
|
0xe3, 0xd7, 0xb5, 0xe2, 0xbf, 0xae, 0xdb, 0xb6, 0xa8, 0x00, 0x00, 0x00,
|
|
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
|
|
|
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff
|
1999-10-08 23:01:05 +00:00
|
|
|
};
|
|
|
|
|
1999-10-22 23:26:22 +00:00
|
|
|
|
|
|
|
static const char * book_open_xpm[] = {
|
|
|
|
"16 16 4 1",
|
|
|
|
" c None s None",
|
|
|
|
". c black",
|
|
|
|
"X c #808080",
|
|
|
|
"o c white",
|
|
|
|
" ",
|
|
|
|
" .. ",
|
|
|
|
" .Xo. ... ",
|
|
|
|
" .Xoo. ..oo. ",
|
|
|
|
" .Xooo.Xooo... ",
|
|
|
|
" .Xooo.oooo.X. ",
|
|
|
|
" .Xooo.Xooo.X. ",
|
|
|
|
" .Xooo.oooo.X. ",
|
|
|
|
" .Xooo.Xooo.X. ",
|
|
|
|
" .Xooo.oooo.X. ",
|
|
|
|
" .Xoo.Xoo..X. ",
|
|
|
|
" .Xo.o..ooX. ",
|
|
|
|
" .X..XXXXX. ",
|
|
|
|
" ..X....... ",
|
|
|
|
" .. ",
|
|
|
|
" "};
|
|
|
|
|
|
|
|
static const char * book_closed_xpm[] = {
|
|
|
|
"16 16 6 1",
|
|
|
|
" c None s None",
|
|
|
|
". c black",
|
|
|
|
"X c red",
|
|
|
|
"o c yellow",
|
|
|
|
"O c #808080",
|
|
|
|
"# c white",
|
|
|
|
" ",
|
|
|
|
" .. ",
|
|
|
|
" ..XX. ",
|
|
|
|
" ..XXXXX. ",
|
|
|
|
" ..XXXXXXXX. ",
|
|
|
|
".ooXXXXXXXXX. ",
|
|
|
|
"..ooXXXXXXXXX. ",
|
|
|
|
".X.ooXXXXXXXXX. ",
|
|
|
|
".XX.ooXXXXXX.. ",
|
|
|
|
" .XX.ooXXX..#O ",
|
|
|
|
" .XX.oo..##OO. ",
|
|
|
|
" .XX..##OO.. ",
|
|
|
|
" .X.#OO.. ",
|
|
|
|
" ..O.. ",
|
|
|
|
" .. ",
|
|
|
|
" "};
|
|
|
|
|
|
|
|
static const char * mini_page_xpm[] = {
|
|
|
|
"16 16 4 1",
|
|
|
|
" c None s None",
|
|
|
|
". c black",
|
|
|
|
"X c white",
|
|
|
|
"o c #808080",
|
|
|
|
" ",
|
|
|
|
" ....... ",
|
|
|
|
" .XXXXX.. ",
|
|
|
|
" .XoooX.X. ",
|
|
|
|
" .XXXXX.... ",
|
|
|
|
" .XooooXoo.o ",
|
|
|
|
" .XXXXXXXX.o ",
|
|
|
|
" .XooooooX.o ",
|
|
|
|
" .XXXXXXXX.o ",
|
|
|
|
" .XooooooX.o ",
|
|
|
|
" .XXXXXXXX.o ",
|
|
|
|
" .XooooooX.o ",
|
|
|
|
" .XXXXXXXX.o ",
|
|
|
|
" ..........o ",
|
|
|
|
" oooooooooo ",
|
|
|
|
" "};
|
|
|
|
|
|
|
|
static const char * gtk_mini_xpm[] = {
|
|
|
|
"15 20 17 1",
|
|
|
|
" c None",
|
|
|
|
". c #14121F",
|
|
|
|
"+ c #278828",
|
|
|
|
"@ c #9B3334",
|
|
|
|
"# c #284C72",
|
|
|
|
"$ c #24692A",
|
|
|
|
"% c #69282E",
|
|
|
|
"& c #37C539",
|
|
|
|
"* c #1D2F4D",
|
|
|
|
"= c #6D7076",
|
|
|
|
"- c #7D8482",
|
|
|
|
"; c #E24A49",
|
|
|
|
"> c #515357",
|
|
|
|
", c #9B9C9B",
|
|
|
|
"' c #2FA232",
|
|
|
|
") c #3CE23D",
|
|
|
|
"! c #3B6CCB",
|
|
|
|
" ",
|
|
|
|
" ***> ",
|
|
|
|
" >.*!!!* ",
|
|
|
|
" ***....#*= ",
|
|
|
|
" *!*.!!!**!!# ",
|
|
|
|
" .!!#*!#*!!!!# ",
|
|
|
|
" @%#!.##.*!!$& ",
|
|
|
|
" @;%*!*.#!#')) ",
|
|
|
|
" @;;@%!!*$&)'' ",
|
|
|
|
" @%.%@%$'&)$+' ",
|
|
|
|
" @;...@$'*'*)+ ",
|
|
|
|
" @;%..@$+*.')$ ",
|
|
|
|
" @;%%;;$+..$)# ",
|
|
|
|
" @;%%;@$$$'.$# ",
|
|
|
|
" %;@@;;$$+))&* ",
|
|
|
|
" %;;;@+$&)&* ",
|
|
|
|
" %;;@'))+> ",
|
|
|
|
" %;@'&# ",
|
|
|
|
" >%$$ ",
|
|
|
|
" >= "};
|
|
|
|
|
|
|
|
const gchar ** xpms[] = {
|
|
|
|
book_open_xpm,
|
|
|
|
book_closed_xpm,
|
|
|
|
mini_page_xpm,
|
|
|
|
gtk_mini_xpm,
|
|
|
|
NULL
|
|
|
|
};
|
|
|
|
|
1999-07-08 16:04:16 +00:00
|
|
|
static void
|
|
|
|
quit_func (GtkWidget *widget, gpointer dummy)
|
|
|
|
{
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_main_quit ();
|
1999-07-08 16:04:16 +00:00
|
|
|
}
|
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
static void
|
1999-07-15 04:58:39 +00:00
|
|
|
expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
|
1999-07-08 16:04:16 +00:00
|
|
|
{
|
1999-10-18 19:29:45 +00:00
|
|
|
GdkPixbuf *pixbuf;
|
|
|
|
|
|
|
|
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
|
|
|
|
|
2000-04-11 07:03:25 +00:00
|
|
|
if (gdk_pixbuf_get_has_alpha (pixbuf)) {
|
1999-10-18 19:29:45 +00:00
|
|
|
gdk_draw_rgb_32_image (drawing_area->window,
|
|
|
|
drawing_area->style->black_gc,
|
|
|
|
event->area.x, event->area.y,
|
|
|
|
event->area.width,
|
|
|
|
event->area.height,
|
|
|
|
GDK_RGB_DITHER_MAX,
|
2000-04-11 07:03:25 +00:00
|
|
|
gdk_pixbuf_get_pixels (pixbuf)
|
|
|
|
+ (event->area.y * gdk_pixbuf_get_rowstride (pixbuf))
|
|
|
|
+ (event->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
|
|
|
|
gdk_pixbuf_get_rowstride (pixbuf));
|
1999-10-18 19:29:45 +00:00
|
|
|
} else {
|
|
|
|
gdk_draw_rgb_image (drawing_area->window,
|
|
|
|
drawing_area->style->white_gc,
|
|
|
|
event->area.x, event->area.y,
|
|
|
|
event->area.width,
|
|
|
|
event->area.height,
|
|
|
|
GDK_RGB_DITHER_NORMAL,
|
2000-04-11 07:03:25 +00:00
|
|
|
gdk_pixbuf_get_pixels (pixbuf)
|
|
|
|
+ (event->area.y * gdk_pixbuf_get_rowstride (pixbuf))
|
|
|
|
+ (event->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
|
|
|
|
gdk_pixbuf_get_rowstride (pixbuf));
|
1999-10-18 19:29:45 +00:00
|
|
|
}
|
1999-10-27 20:16:37 +00:00
|
|
|
}
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
static void
|
1999-07-16 20:35:21 +00:00
|
|
|
config_func (GtkWidget *drawing_area, GdkEventConfigure *event, gpointer data)
|
|
|
|
{
|
1999-10-20 21:20:49 +00:00
|
|
|
GdkPixbuf *pixbuf;
|
1999-07-16 20:35:21 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
|
1999-07-16 20:35:21 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
g_print("X:%d Y:%d\n", event->width, event->height);
|
1999-07-16 20:35:21 +00:00
|
|
|
|
1999-10-20 21:20:49 +00:00
|
|
|
#if 0
|
2000-04-11 07:03:25 +00:00
|
|
|
if (((event->width) != gdk_pixbuf_get_width (pixbuf)) ||
|
|
|
|
((event->height) != gdk_pixbuf_get_height (pixbuf)))
|
1999-10-18 19:29:45 +00:00
|
|
|
gdk_pixbuf_scale(pixbuf, event->width, event->height);
|
1999-10-20 21:20:49 +00:00
|
|
|
#endif
|
1999-07-16 20:35:21 +00:00
|
|
|
}
|
|
|
|
|
1999-10-27 19:42:34 +00:00
|
|
|
static GtkWidget*
|
1999-10-29 22:32:47 +00:00
|
|
|
new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
|
1999-07-08 16:04:16 +00:00
|
|
|
{
|
1999-10-18 19:29:45 +00:00
|
|
|
GtkWidget *window;
|
|
|
|
GtkWidget *vbox;
|
1999-11-03 23:39:58 +00:00
|
|
|
GtkWidget *temp_box;
|
1999-10-18 19:29:45 +00:00
|
|
|
GtkWidget *button;
|
|
|
|
GtkWidget *drawing_area;
|
|
|
|
gint w, h;
|
2000-10-09 17:22:20 +00:00
|
|
|
|
|
|
|
g_return_val_if_fail (pixbuf != NULL, NULL);
|
2000-04-11 07:03:25 +00:00
|
|
|
w = gdk_pixbuf_get_width (pixbuf);
|
|
|
|
h = gdk_pixbuf_get_height (pixbuf);
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
window = gtk_widget_new (gtk_window_get_type (),
|
|
|
|
"GtkObject::user_data", NULL,
|
|
|
|
"GtkWindow::type", GTK_WINDOW_TOPLEVEL,
|
2000-10-04 16:39:44 +00:00
|
|
|
"GtkWindow::title", title ? title : "testrgb",
|
1999-10-18 19:29:45 +00:00
|
|
|
"GtkWindow::allow_shrink", TRUE,
|
|
|
|
NULL);
|
|
|
|
gtk_signal_connect (GTK_OBJECT (window), "destroy",
|
|
|
|
(GtkSignalFunc) quit_func, NULL);
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
vbox = gtk_vbox_new (FALSE, 0);
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-29 22:32:47 +00:00
|
|
|
if (title)
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new (title),
|
|
|
|
TRUE, TRUE, 0);
|
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
drawing_area = gtk_drawing_area_new ();
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-11-03 23:39:58 +00:00
|
|
|
temp_box = gtk_hbox_new (FALSE, 0);
|
fix a typo.
2001-08-07 Havoc Pennington <hp@pobox.com>
* gtk/gtkfilesel.c (open_ref_dir): fix a typo.
* gtk/gtkplug.c (gtk_plug_init): remove setting of auto_shrink;
some fixage is needed here, but nothing simple. Owen understands
it. ;-)
* gtk/gtkwindow.h, gtk/gtkwindow.c: Rework code and API for window
sizing and positioning. Also, fix bug in compute_geometry_hints
(width/height confusion for setting min size).
(gtk_window_move): new function
(gtk_window_resize): new function
(gtk_window_get_size): new function
(gtk_window_get_position): new function
(gtk_window_parse_geometry): new function
* gtk/gtkwidget.c (gtk_widget_set_size_request): new function
(gtk_widget_get_size_request): new function
(gtk_widget_get_usize): delete, that was a short-lived function
;-)
(gtk_widget_set_usize): deprecate
(gtk_widget_set_uposition): deprecate, make it a trivial
gtk_window_move() wrapper
(gtk_widget_class_init): remove x/y/width/height properties,
add width_request height_request
* demos/*: update to avoid deprecated functions
* gtk/gtklayout.c: add x/y child properties
* gtk/gtkfixed.c: add x/y child properties, and get rid of
uses of "gint16"
* tests/testgtk.c (create_window_sizing): lots of tweaks to window
sizing test
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Ensure that
configure events on toplevel windows are always in root window
coordinates, following ICCCM spec that all synthetic events
are in root window coords already, while real events are
in parent window coords. Previously the code assumed that
coords of 0,0 were parent window coords, which was
really broken.
* gtk/gtkcontainer.c (gtk_container_get_focus_chain): fix
warning
* gdk/gdkwindow.h (GdkWindowHints): add GDK_HINT_USER_POS
and GDK_HINT_USER_SIZE so we can set USSize and USPosition
hints in gtk_window_parse_geometry()
* gdk/x11/gdkwindow-x11.c (gdk_window_set_geometry_hints): support
new USER_POS USER_SIZE hints
2001-08-10 03:46:08 +00:00
|
|
|
gtk_widget_set_size_request (GTK_WIDGET(drawing_area), w, h);
|
1999-11-03 23:39:58 +00:00
|
|
|
gtk_box_pack_start (GTK_BOX (temp_box), drawing_area, FALSE, FALSE, 0);
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox), temp_box, FALSE, FALSE, 0);
|
|
|
|
|
1999-07-15 04:58:39 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_signal_connect (GTK_OBJECT(drawing_area), "expose_event",
|
|
|
|
GTK_SIGNAL_FUNC(expose_func), NULL);
|
|
|
|
gtk_signal_connect (GTK_OBJECT(drawing_area), "configure_event",
|
|
|
|
GTK_SIGNAL_FUNC (config_func), NULL);
|
1999-07-16 20:35:21 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_object_set_data (GTK_OBJECT(drawing_area), "pixbuf", pixbuf);
|
1999-07-15 04:58:39 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_widget_show (drawing_area);
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
button = gtk_button_new_with_label ("Quit");
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
|
|
|
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
|
|
|
(GtkSignalFunc) gtk_widget_destroy,
|
|
|
|
GTK_OBJECT (window));
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_widget_show (button);
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_container_add (GTK_CONTAINER (window), vbox);
|
1999-10-29 22:32:47 +00:00
|
|
|
gtk_widget_show_all (vbox);
|
1999-07-08 16:04:16 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_widget_show (window);
|
1999-10-27 19:42:34 +00:00
|
|
|
|
|
|
|
return window;
|
|
|
|
}
|
|
|
|
|
1999-11-09 23:51:35 +00:00
|
|
|
|
1999-10-27 19:42:34 +00:00
|
|
|
static gint
|
|
|
|
update_timeout(gpointer data)
|
|
|
|
{
|
1999-11-09 23:51:35 +00:00
|
|
|
ProgressFileStatus *status = data;
|
2000-10-18 18:42:54 +00:00
|
|
|
gboolean done;
|
|
|
|
GError *error;
|
2000-10-09 17:22:20 +00:00
|
|
|
|
|
|
|
done = FALSE;
|
|
|
|
error = FALSE;
|
1999-11-09 23:51:35 +00:00
|
|
|
if (!feof(status->imagefile)) {
|
|
|
|
gint nbytes;
|
2000-10-18 18:42:54 +00:00
|
|
|
|
1999-11-09 23:51:35 +00:00
|
|
|
nbytes = fread(status->buf, 1, status->readlen,
|
|
|
|
status->imagefile);
|
1999-11-03 15:57:16 +00:00
|
|
|
|
2000-10-09 17:22:20 +00:00
|
|
|
|
2000-10-18 18:42:54 +00:00
|
|
|
error = NULL;
|
|
|
|
if (!gdk_pixbuf_loader_write (GDK_PIXBUF_LOADER (status->loader), status->buf, nbytes, &error)) {
|
|
|
|
g_warning ("Error writing to loader: %s",
|
|
|
|
error->message);
|
|
|
|
g_error_free (error);
|
|
|
|
done = TRUE;
|
2000-10-09 17:22:20 +00:00
|
|
|
}
|
2000-10-18 18:42:54 +00:00
|
|
|
|
|
|
|
|
2001-08-28 19:06:58 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
done = TRUE;
|
|
|
|
|
1999-11-09 23:51:35 +00:00
|
|
|
if (done) {
|
Add built marshaller files to support GdkPixbufLoader signals
2001-01-22 Havoc Pennington <hp@redhat.com>
* Makefile.am: Add built marshaller files to support
GdkPixbufLoader signals
* gdk-pixbuf-io.c (gdk_pixbuf_load_module): have
GDK_PIXBUF_MODULEDIR unconditionally replace the compiled-in
module location, rather than acting as a fallback, because we are
using GDK_PIXBUF_MODULEDIR to use gdk-pixbuf before installing it.
* gdk-pixbuf.h: include gdk-pixbuf-loader.h
* gdk-pixbuf-loader.h, gdk-pixbuf-loader.c: Move back over here
from gtk, and add error to close(), because stop_load may do
parsing of the image.
* pixops/have_mmx.S (_pixops_have_mmx): add newline at end of file
* io-*.c: make individual operations static, and add fill_vtable
functions which are exported. Fix the collection of type warnings
that surfaced, including a number of functions that didn't
properly take a GError and some that weren't
const-correct. Involved adding error handling for a few loaders.
* gdk-pixbuf-io.h: Add error reporting to stop_load function
* gdk-pixbuf-io.c (gdk_pixbuf_load_module): change to just look up
a function that fills in the GdkPixbufModule vtable, instead of
looking up all the image functions individually; this means we
can get type safety within modules for the loader functions.
Also it means you don't have to keep the statically compiled and
GModule versions in sync.
* test-gdk-pixbuf.c (main): remove gdk_pixbuf_init()
* make-inline-pixbuf.c (main): remove call to gdk_pixbuf_init()
* gdk-pixbuf.h: nuke gdk_pixbuf_init()
* gdk-pixbuf-animation.c (gdk_pixbuf_frame_get_type): g_type_init
() here
* gdk-pixbuf.c (gdk_pixbuf_get_type): g_type_init () here
* gdk-pixbuf-animation.c (gdk_pixbuf_animation_get_type):
g_type_init() here
2001-01-22 Havoc Pennington <hp@redhat.com>
* demos/testanimation.c: fix to reflect gdk-pixbuf changes
* demos/testpixbuf.c: fix to reflect gdk-pixbuf changes
* gtk/gdk-pixbuf-loader.c, gtk/gdk-pixbuf-loader.h:
Remove, move back to gdk-pixbuf
* gtk/gtktextiter.c, gtk/gtktextiter.h: add sentence equivalents
to all the word functions
* gtk/gtktextview.c (gtk_text_view_start_cursor_blink): return
before doing anything on NULL layout or if we don't have the focus
* gtk/testtext.c (fill_example_buffer): "justification"
* gtk/gtktexttag.h, gtk/gtktexttag.c: change the tag attribute
to be called "justification" not "justify"
* demos/gtk-demo/textview.c (create_tags): "justification"
* gtk/gtktextlayout.c (set_para_values): Handle char-wise wrapping
2001-01-22 23:09:48 +00:00
|
|
|
/* ignoring errors, we should not do that. */
|
|
|
|
gdk_pixbuf_loader_close (GDK_PIXBUF_LOADER (status->loader), NULL);
|
2001-08-28 19:06:58 +00:00
|
|
|
gtk_widget_queue_draw (*status->rgbwin);
|
|
|
|
g_object_unref (G_OBJECT (status->loader));
|
1999-11-09 23:51:35 +00:00
|
|
|
fclose (status->imagefile);
|
|
|
|
g_free (status->buf);
|
|
|
|
}
|
|
|
|
|
|
|
|
return !done;
|
1999-10-27 19:42:34 +00:00
|
|
|
}
|
|
|
|
|
1999-11-09 23:51:35 +00:00
|
|
|
|
1999-10-27 19:42:34 +00:00
|
|
|
static void
|
|
|
|
progressive_prepared_callback(GdkPixbufLoader* loader, gpointer data)
|
|
|
|
{
|
|
|
|
GtkWidget** retloc = data;
|
|
|
|
GdkPixbuf* pixbuf;
|
|
|
|
|
|
|
|
pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
|
|
|
|
g_assert(pixbuf != NULL);
|
|
|
|
|
|
|
|
gdk_pixbuf_ref(pixbuf); /* for the RGB window */
|
1999-10-29 22:32:47 +00:00
|
|
|
|
|
|
|
*retloc = new_testrgb_window(pixbuf, "Progressive");
|
1999-10-27 19:42:34 +00:00
|
|
|
|
|
|
|
return;
|
1999-07-08 16:04:16 +00:00
|
|
|
}
|
|
|
|
|
1999-11-04 19:22:45 +00:00
|
|
|
|
|
|
|
static void
|
|
|
|
progressive_updated_callback(GdkPixbufLoader* loader, guint x, guint y, guint width, guint height, gpointer data)
|
|
|
|
{
|
1999-11-09 23:51:35 +00:00
|
|
|
GtkWidget** window_loc = data;
|
|
|
|
|
1999-11-10 15:45:24 +00:00
|
|
|
/* g_print ("progressive_updated_callback:\n\t%d\t%d\t%d\t%d\n", x, y, width, height); */
|
1999-11-09 23:51:35 +00:00
|
|
|
|
|
|
|
if (*window_loc != NULL)
|
|
|
|
gtk_widget_queue_draw_area(*window_loc,
|
|
|
|
x, y, width, height);
|
|
|
|
|
1999-11-04 19:22:45 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
1999-11-10 18:54:07 +00:00
|
|
|
static int readlen = 4096;
|
1999-11-02 22:01:43 +00:00
|
|
|
|
2000-06-21 20:47:22 +00:00
|
|
|
extern void pixbuf_init();
|
|
|
|
|
1999-07-08 16:04:16 +00:00
|
|
|
int
|
|
|
|
main (int argc, char **argv)
|
|
|
|
{
|
1999-10-18 19:29:45 +00:00
|
|
|
int i;
|
1999-11-02 22:01:43 +00:00
|
|
|
int found_valid = FALSE;
|
1999-10-18 19:29:45 +00:00
|
|
|
|
|
|
|
GdkPixbuf *pixbuf;
|
1999-10-27 18:55:00 +00:00
|
|
|
GdkPixbufLoader *pixbuf_loader;
|
1999-10-18 19:29:45 +00:00
|
|
|
|
2000-06-21 20:47:22 +00:00
|
|
|
pixbuf_init ();
|
2000-06-22 15:36:12 +00:00
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
gtk_init (&argc, &argv);
|
|
|
|
|
|
|
|
gdk_rgb_set_verbose (TRUE);
|
|
|
|
|
2001-08-23 15:26:49 +00:00
|
|
|
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
|
1999-10-18 19:29:45 +00:00
|
|
|
|
1999-11-02 22:01:43 +00:00
|
|
|
{
|
|
|
|
char *tbf_readlen = getenv("TBF_READLEN");
|
|
|
|
if(tbf_readlen) readlen = atoi(tbf_readlen);
|
|
|
|
}
|
|
|
|
|
1999-11-09 23:51:35 +00:00
|
|
|
{
|
|
|
|
char *tbf_bps = getenv("TBF_KBPS");
|
|
|
|
guint bps;
|
|
|
|
|
|
|
|
if (tbf_bps) {
|
|
|
|
bps = atoi(tbf_bps);
|
1999-11-10 17:17:17 +00:00
|
|
|
g_print ("Simulating %d kBytes/sec\n", bps);
|
1999-11-09 23:51:35 +00:00
|
|
|
readlen = (bps*1024)/10;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
i = 1;
|
|
|
|
if (argc == 1) {
|
1999-10-22 23:26:22 +00:00
|
|
|
const gchar*** xpmp;
|
2001-06-26 20:56:32 +00:00
|
|
|
GError *error = NULL;
|
|
|
|
|
2000-04-11 07:03:25 +00:00
|
|
|
pixbuf = gdk_pixbuf_new_from_data (default_image, GDK_COLORSPACE_RGB, FALSE, 8,
|
1999-10-20 21:20:49 +00:00
|
|
|
DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_WIDTH * 3,
|
|
|
|
NULL, NULL);
|
1999-10-29 22:32:47 +00:00
|
|
|
new_testrgb_window (pixbuf, NULL);
|
1999-10-22 23:26:22 +00:00
|
|
|
|
|
|
|
xpmp = xpms;
|
|
|
|
while (*xpmp) {
|
|
|
|
pixbuf = gdk_pixbuf_new_from_xpm_data (*xpmp);
|
1999-10-29 22:32:47 +00:00
|
|
|
new_testrgb_window (pixbuf, NULL);
|
1999-10-22 23:26:22 +00:00
|
|
|
++xpmp;
|
|
|
|
}
|
2000-10-04 16:39:44 +00:00
|
|
|
|
|
|
|
/* Test loading from inline data. */
|
2001-06-26 20:56:32 +00:00
|
|
|
pixbuf = gdk_pixbuf_new_from_stream (-1, apple_red, FALSE, &error);
|
|
|
|
if (!pixbuf)
|
|
|
|
{
|
|
|
|
fprintf (stderr, "failed to construct \"red apple\" pixbuf: %s\n",
|
|
|
|
error->message);
|
|
|
|
g_error_free (error);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
new_testrgb_window (pixbuf, "Red apple from inlined RLE data");
|
|
|
|
|
|
|
|
pixbuf = gdk_pixbuf_new_from_stream (sizeof (gnome_foot), gnome_foot, TRUE, NULL);
|
|
|
|
new_testrgb_window (pixbuf, "GNOME Foot from inlined RLE data");
|
1999-10-22 23:26:22 +00:00
|
|
|
|
1999-10-20 21:20:49 +00:00
|
|
|
found_valid = TRUE;
|
1999-10-18 19:29:45 +00:00
|
|
|
} else {
|
|
|
|
for (i = 1; i < argc; i++) {
|
2000-10-18 18:42:54 +00:00
|
|
|
GError *error;
|
|
|
|
|
|
|
|
error = NULL;
|
|
|
|
pixbuf = gdk_pixbuf_new_from_file (argv[i], &error);
|
1999-10-29 22:32:47 +00:00
|
|
|
|
2000-10-18 18:42:54 +00:00
|
|
|
if (pixbuf == NULL) {
|
|
|
|
g_warning ("Error loading image: %s",
|
|
|
|
error->message);
|
|
|
|
g_error_free (error);
|
|
|
|
}
|
|
|
|
|
1999-10-20 21:20:49 +00:00
|
|
|
#if 0
|
1999-10-18 19:29:45 +00:00
|
|
|
pixbuf = gdk_pixbuf_rotate(pixbuf, 10.0);
|
1999-10-20 21:20:49 +00:00
|
|
|
#endif
|
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
if (pixbuf) {
|
1999-10-29 22:32:47 +00:00
|
|
|
new_testrgb_window (pixbuf, "File");
|
1999-10-18 19:29:45 +00:00
|
|
|
found_valid = TRUE;
|
|
|
|
}
|
|
|
|
}
|
1999-11-09 23:51:35 +00:00
|
|
|
#if 1
|
1999-10-27 19:42:34 +00:00
|
|
|
{
|
|
|
|
GtkWidget* rgb_window = NULL;
|
1999-11-09 23:51:35 +00:00
|
|
|
ProgressFileStatus status;
|
1999-10-29 22:32:47 +00:00
|
|
|
|
1999-10-27 19:42:34 +00:00
|
|
|
pixbuf_loader = gdk_pixbuf_loader_new ();
|
1999-11-09 23:51:35 +00:00
|
|
|
status.loader = pixbuf_loader;
|
1999-10-27 19:42:34 +00:00
|
|
|
|
1999-11-10 17:43:49 +00:00
|
|
|
status.rgbwin = &rgb_window;
|
|
|
|
|
1999-11-09 23:51:35 +00:00
|
|
|
status.buf = g_malloc (readlen);
|
up version to 1.3.7, interface age 0, binary age 0. depend on glib 1.3.7.
Thu Jun 28 17:18:41 2001 Tim Janik <timj@gtk.org>
* configure.in (GTK_MICRO_VERSION): up version to 1.3.7, interface
age 0, binary age 0. depend on glib 1.3.7.
* gtk/gtkcontainer.c: remove g_signal_handlers_disconnect_by_func() hack.
* gtk/gtkmenubar.c: same here.
* gtk/gtkcontainer.c (gtk_container_focus_tab): fix param-spec retrival.
* gtk/gtkcolorsel.c (gtk_color_selection_init): fix connect_data() usage.
* gtk/gtkentry.c (gtk_entry_focus_in): same here.
* gtk/gtkmenubar.c (add_to_window): likewise.
* gtk/gtktextbtree.c: and here...
* gtk/gtktextview.c (gtk_text_view_ensure_layout): same thing.
* gtk/gtktoolbar.c (gtk_toolbar_init): once more.
* gtk/gtktreemodel.c (connect_ref_callbacks): and another time.
* gtk/gtktreeviewcolumn.c:
(_gtk_tree_view_column_set_tree_view): yet again.
* demos/gtk-demo/images.c (progressive_timeout): demonstrate
signal connections without g_signal_connect_data().
* demos/gtk-demo/stock_browser.c (do_stock_browser): second
demo of the matter.
* demos/testpixbuf.c (main): running out of equality phrases for the
ChangeLog, but had to adapt connections here as well.
* demos/testanimation.c (progressive_timeout): and for the fun of it,
tackled this the same way.
* tests/testtext.c (create_view): ok, it's becoming a pain at this
point, but had enough enery for one more fix.
* tests/testtreecolumns.c (main): stand up man, do your work!
* tests/testtreeview.c (set_columns_type): ok, this is the last file i
fix, either that's been all of it or CVS gtk is broken yet again.
2001-06-28 17:12:40 +00:00
|
|
|
g_signal_connect (G_OBJECT(pixbuf_loader),
|
|
|
|
"area_prepared",
|
|
|
|
GTK_SIGNAL_FUNC(progressive_prepared_callback),
|
|
|
|
&rgb_window);
|
|
|
|
g_signal_connect (G_OBJECT(pixbuf_loader),
|
|
|
|
"area_updated",
|
|
|
|
GTK_SIGNAL_FUNC(progressive_updated_callback),
|
|
|
|
&rgb_window);
|
1999-11-09 23:51:35 +00:00
|
|
|
|
|
|
|
status.imagefile = fopen (argv[1], "r");
|
|
|
|
g_assert (status.imagefile != NULL);
|
|
|
|
|
|
|
|
status.readlen = readlen;
|
|
|
|
|
|
|
|
status.timeout = gtk_timeout_add(100, update_timeout, &status);
|
1999-10-27 19:42:34 +00:00
|
|
|
}
|
1999-11-09 23:51:35 +00:00
|
|
|
#endif
|
1999-10-26 20:43:39 +00:00
|
|
|
}
|
|
|
|
|
1999-10-18 19:29:45 +00:00
|
|
|
if (found_valid)
|
|
|
|
gtk_main ();
|
|
|
|
|
|
|
|
return 0;
|
1999-07-08 16:04:16 +00:00
|
|
|
}
|