Compare commits

...

956 Commits

Author SHA1 Message Date
Elliot Lee
3f0092c4e6 Remove deadwood code.
Remove deadwood code.
2000-06-01 21:59:31 +00:00
Elliot Lee
c496211676 Put it into CVS.
Put it into CVS.
2000-05-31 21:50:38 +00:00
Not Zed
85e7a89b13 Initialise the error handler exit routine to our own. Note this means that
2000-05-30  Not Zed  <NotZed@HelixCode.com>

	* gdk-pixbuf/io-jpeg.c (gdk_pixbuf__jpeg_image_begin_load):
	Initialise the error handler exit routine to our own.  Note this
	means that every function that accesses the jpeg lib on this
	object MUST do a setjmp.
	(gdk_pixbuf__jpeg_image_stop_load): setjmp before accessing jpeg
	lib for handling fatal error.
	(gdk_pixbuf__jpeg_image_load_increment): And here too.  So now
	your applications dont quit if there's a jpeg error!
2000-05-31 02:07:07 +00:00
Federico Mena Quintero
379da28de8 Include all the loader libraries. Patch from Frank de Lange
2000-05-30  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf.spec.in: Include all the loader libraries.  Patch
	from Frank de Lange <frank@unternet.org>.
2000-05-30 14:52:32 +00:00
Yuri Syrota
b07bab344a Updated Ukrainian translation 2000-05-30 06:12:04 +00:00
Jonathan Blandford
4ceed6bf51 let you set the titles to be active, even if they aren't visible.
2000-05-29  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkclist.c (gtk_clist_column_titles_active): let you set the
	titles to be active, even if they aren't visible.
	(gtk_clist_column_titles_passive):  Ditto.
2000-05-29 21:29:38 +00:00
Jonathan Blandford
bace0659d2 let you set the titles to be active, even if they aren't visible.
2000-05-29  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkclist.c (gtk_clist_column_titles_active): let you set the
	titles to be active, even if they aren't visible.
2000-05-29 21:26:54 +00:00
Owen Taylor
15434db63e Fix typo
Sun May 28 12:16:01 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/tmpl/gtkaspectframe.sgml: Fix typo
2000-05-28 16:17:07 +00:00
Damon Chaplin
8cd73f2fde typo.
2000-05-28  Damon Chaplin  <damon@helixcode.com>

        * gdk/tmpl/event_structs.sgml: typo.
2000-05-28 11:36:14 +00:00
Darin Adler
288b44b2d2 Oops. 2000-05-28 03:19:28 +00:00
Darin Adler
e5206ce903 Fixed includes to get rid of accidental GNOME dependency. 2000-05-28 03:17:16 +00:00
Cody Russell
9a08b87fee Makefile.am - Added gdk-pixbuf.spec to EXTRA_DIST 2000-05-27 02:58:04 +00:00
Tim Janik
8dde9abbaf newline 2000-05-26 11:25:14 +00:00
Nils Barth
63af6ead1f added entry for gtkmenu.c gtkmenu.h gtktypeutils.h spelling/grammar fixes
2000-05-23  Nils Barth  <nils_barth@post.harvard.edu>

	* ChangeLog: added entry for gtkmenu.c gtkmenu.h gtktypeutils.h
	  spelling/grammar fixes
2000-05-24 00:17:27 +00:00
Valek Frob
978f327f7f Updated russian translation and update.sh. 2000-05-23 17:18:04 +00:00
CEST 2000 lupus
a357ab820a add missing header files.
Tue May 23 12:25:07 CEST 2000 lupus <lupus@debian.org>

	* gdk/nanox/*.h: add missing header files.
2000-05-23 10:26:25 +00:00
Federico Mena Quintero
1839240c72 0.8 - Federico 2000-05-22 19:09:27 +00:00
Pablo Saratxaga
1b51476458 Added rule for Latvian language gtkrc file 2000-05-22 15:11:21 +00:00
Nils Barth
c4b632e781 Spelling/grammar fixes in comments.
2000-05-21  Nils Barth  <nils_barth@post.harvard.edu>

	* Spelling/grammar fixes in comments.
2000-05-21 06:13:34 +00:00
Tim Janik
48d8ec36d5 set send_event to TRUE. (gtk_drawing_area_size): queue a resize.
Fri May 19 11:52:59 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtkdrawingarea.c (gtk_drawing_area_send_configure): set
        send_event to TRUE.
        (gtk_drawing_area_size): queue a resize.
2000-05-19 10:00:46 +00:00
Tim Janik
9ce7ba8df8 when unref-ing the handlers, also invalidate them. bug nailed down by Karl
Sun Mar 26 03:21:28 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_handlers_destroy): when unref-ing
        the handlers, also invalidate them. bug nailed down by Karl Nelson
        <kenelson@ece.ucdavis.edu>.
2000-05-19 08:22:39 +00:00
Tim Janik
719f258bc6 handle "(nil)" foundries, patch from Grigorios Magklis.
Fri May 19 06:49:23 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtkfontsel.c (gtk_font_selection_get_font_name): handle
        "(nil)" foundries, patch from Grigorios Magklis.

        * gtk/gtkfontsel.c (gtk_font_selection_load_font): don't crash
        on non-available fonts, based on a patch by Grigorios Magklis
        <maglis@cs.rochester.edu>.
2000-05-19 05:50:46 +00:00
Elliot Lee
31fa339113 If a region does not have any rectangles, or if the specified rectangle is
If a region does not have any rectangles, or if the specified rectangle is
not in the region, then return GDK_OVERLAP_RECTANGLE_OUT instead of
GDK_OVERLAP_RECTANGLE_IN.
2000-05-18 22:44:19 +00:00
Ville Hautamaki
26b2cbe5ae Minor finnish update
Ville
2000-05-18 10:57:40 +00:00
Jonathan Blandford
fccaf53bfb Remember to save the file before committing. 2000-05-17 16:11:29 +00:00
Jonathan Blandford
f43ab0c41d Remove references to OFFSCREEN, as it is no longer necessary.
2000-05-17  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtklayout.c (gtk_layout_map): Remove references to
	OFFSCREEN, as it is no longer necessary.
2000-05-17 16:10:43 +00:00
Owen Taylor
b9d4205044 Patch from David Santiago <mrcooger@cyberverse.com> to change things so
Wed May 17 10:52:12 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c: Patch from David Santiago
	<mrcooger@cyberverse.com> to change things so that the
	indicator of the active palette entry is done independently,
	not via the focus, since it should always be visible.
2000-05-17 14:56:11 +00:00
Tor Lillqvist
8596f7edc5 Plug same refcount leaks as in the X11 backend.
2000-05-17  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c (gdk_event_translate): Plug same
refcount leaks as in the X11 backend.

* gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_values): Logging
cosmetics.

* gdk/win32/gdkwindow-win32.c: Similar changes as in X11
backend. Add _gdk_windowing_window_destroy().

* gtk/gtkcolorsel.c: Include correct backend-specific header.
Don't use XColor unless on X11. (No GDK_VISUAL_STATIC_COLOR
either, but these probably do exist on nanox?)

* gtk/gtkhsv.c: Use G_PI (fresh from <glib.h>) instead of M_PI
which isn't necessarily defined by <math.h>.

* gtk/gtkobject.c (gtk_object_init): Don't go up the class
ancestry past GtkObject.

* gtk/gtktypeutils.h: Mark GTK_TYPE_IDENTIFIER for export/import
from DLL on Win32.

* gtk/gtk.def: Update corresponding to recent changes.

* gtk/makefile.{cygwin,msc}: Updates.
2000-05-16 21:27:10 +00:00
Owen Taylor
386ae20970 A bit of editing.
Fri May 12 18:46:51 2000  Owen Taylor  <otaylor@redhat.com>

	* docs/Changes-1.4.txt: A bit of editing.

	* gdk/gdkwindow.c (_gdk_window_clear_update_area)
	* gdk/x11/gdkwindow-x11.c (gdk_window_hide): Add a function
	to clear the update area for the window, and clear it
	when hiding a window.

	* gdk/gdkwindow.c (gdk_window_begin_paint_region): Ignore
	if window destroyed.

	* gdk/gdkwindow.c (gdk_window_end_paint): Likewise.

	* gdk/gdkwindow.c gdk/x11/gdkwindow-x11.c gdk/gdkinternals.h: Move
	gdk_window_destroy() to the generic code, since there was a lot of
	window-system-independent logic it in. Add a function:

	 _gdk_window_destroy()

	to the internal API to destroy a window without unreferencing it.
	Add a function:

	 _gdk_windowing_window_destroy()

	That does the windowing-system-dependent part of destroying
	the window.

Fri May 12 11:07:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c: Fix various memory leaks of pixmaps.

Fri May 12 11:06:10 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c docs/Changes-1.4.txt (gtk_widget_shape_combine_mask):
	Make gtk_widget_shape_combine_mask() keep a reference count on
	the pixmap since it keeps it around.

Fri May 12 10:53:29 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_process_updates_internal): Fix refcount
	leak.

	* gdk/x11/gdkevents-x11.c (gdk_event_translate): Fix refcount
	leak with event filters.

Thu May 11 14:29:44 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_dest_set_internal): Remove the
	signal handlers with the right data arguments. (Fixes
	some warnings when a widget was repeatedly set as a drag
	destination.)

	* gdk/x11/gdkdnd-x11.c (gdk_window_register_dnd): Set data on the
	window so we can avoid avoid setting the DND properties on the
	toplevel window repeatedly.
2000-05-15 16:09:53 +00:00
Tor Lillqvist
014e275b3a Typo. 2000-05-12 23:01:42 +00:00
Tor Lillqvist
cab7ca49d5 Define more message types missing from mingw headers.
2000-05-13  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkwin32.h: Define more message types missing from
mingw headers.

* gdk/win32/gdkevents-win32.c (gdk_event_translate): On WM_DESTROY
call gdk_window_destroy_notify(). It was never called. This
probably meant that the GdkWindow was never freed. Thanks Owen for
noticing (!).

* gdk/win32/gdkwindow-win32.c (gdk_window_internal_destroy): Mark
window as destroyed before calling DestroyWindow(). DestroyWindow()
causes a call to the window procedure (gdk_WindowProc), which
calls gdk_event_translate(), which calls
gdk_window_destroy_notify(), which gets confused unless the window
is set as destroyed.

* gdk/win32/gdkcolor-win32.c (gdk_win32_color_to_string): Rename
this function to indicate it's win32 only. Put inside #ifdef
G_ENABLE_DEBUG.

* gdk/win32/gdkevents-win32.c (gdk_win32_message_name): New
debugging function. (gdk_event_translate:) Add a default branch
that uses the above function to print debug messages with all
Windows messages symbolically.

* gdk/win32/gdkprivate-win32.h: Declare it, and
gdk_win32_color_to_string, but only if G_ENABLE_DEBUG.
2000-05-12 22:29:31 +00:00
Tim Janik
438e6357b7 don't include gtk/gtkintl.h in a public header file.
Fri May 12 20:07:32 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtkcolorseldialog.c: don't include gtk/gtkintl.h in a
        public header file.
2000-05-12 18:13:38 +00:00
Tim Janik
9595c55184 documented necessary changes for 1.4 transition.
Fri May 12 17:13:32 2000  Tim Janik  <timj@gtk.org>

	* docs/Changes-1.4.txt: documented necessary changes for 1.4 transition.

	* gtk/gtktext.c: made the adjustments no-construct args, simply
	provide default adjustments.
	(gtk_text_destroy): release adjustments.

	* gtk/gtkprogressbar.c (gtk_progress_bar_class_init): made the
	adjustment argument non-construct.

	* gtk/gtkprogress.c (gtk_progress_destroy): release adjustment here,
	instead of in finalize.
	(gtk_progress_get_text_from_value):
	(gtk_progress_get_current_text):
	(gtk_progress_set_value):
	(gtk_progress_get_percentage_from_value):
	(gtk_progress_get_current_percentage):
	(gtk_progress_set_percentage):
	(gtk_progress_configure): ensure an adjustment is present.

Thu May 11 01:24:08 2000  Tim Janik  <timj@gtk.org>

	* gtk/gtkcolorsel.[hc]:
	* gtk/gtkcolorseldialog.[hc]:
	* gtk/gtkhsv.[hc]: major code cleanups, destroy handlers need to chain
	their parent implementation, use bit fields for boolean values, don't
	create unused widgets, usage of glib types, braces go on their own
	lines, function argument alignment, #include directives etc. etc. etc..

	* gtk/Makefile.am (gtk_public_h_sources): install gtkhsv.h.

Wed May 10 23:29:52 2000  Tim Janik  <timj@gtk.org>

	* gtk/gtktoolbar.c (gtk_toolbar_destroy): don't unref a NULL tooltips.

	* gtk/gtkfilesel.c (gtk_file_selection_destroy): don't free a cmpl_state
	of NULL.

	* gtk/gtkcombo.c (gtk_combo_item_destroy): don#t keep references
	to freed data.
	(gtk_combo_destroy): don't keep a pointer to a destroyed window.

	* gtk/gtkmenu.c (gtk_menu_init): reset the menu's toplevel pointer
	to NULL when the toplevel is getting destroyed.
	(gtk_menu_set_tearoff_state): same here for the tearoff_window.
	(gtk_menu_destroy):
	(gtk_menu_init): store the information of whether we have to
	readd the initial child ref_count during destruction in a new
	GtkMenu field needs_destruction_ref_count.

	* gtk/gtkviewport.c: SHAME! ok this one is tricky, so i note it
	here, those reading: learn from my mistake! ;)
	in order for set_?adjustment to support a default adjustemnt if
	invoked with an adjustment pointer of NULL, the code read (pseudo):
	if (v->adjustment) unref (v->adjustment);
	if (!adjustment) adjustment = adjustment_new ();
	if (v->adjustment != adjustment) v->adjustment = ref (adjustment);
	now imagine the first unref to actually free the old adjustment and
	adjustment_new() creating a new adjustment from the very same memory
	portion. here, the latter comparision will unintendedly fail, and
	all hell breaks loose.
	(gtk_viewport_set_hadjustment):
	(gtk_viewport_set_vadjustment): reset viewport->?adjustment to NULL
	after unreferencing it.

	* gtk/gtkcontainer.[hc]: removed toplevel registration
	functions: gtk_container_register_toplevel(),
	gtk_container_unregister_toplevel() and
	gtk_container_get_toplevels() which had wrong semantics
	anyways: it didn't reference and copy the list.

	* gtk/gtkwindow.c: we take over the container toplevel registration
	bussiness now. windows are registered across multiple destructions,
	untill they are finalized. the initial implicit reference count
	users are holding on windows is removed with the first destruction
	though.
	(gtk_window_init): ref & sink and set has_user_ref_count, got
	rid of gtk_container_register_toplevel() call. add window to
	toplevel_list.
	(gtk_window_destroy): unref the window if has_user_ref_count
	is still set, got rid of call to
	gtk_container_unregister_toplevel().
	(gtk_window_finalize): remove window from toplevel list.
	(gtk_window_list_toplevels): new function to return a newly
	created list with referenced toplevels.
	(gtk_window_read_rcfiles): use gtk_window_list_toplevels().

	* gtk/gtkhscale.c (gtk_hscale_class_init): made the GtkRange
	adjustment a non-construct arg.
	* gtk/gtkvscale.c (gtk_vscale_class_init): likewise.
	* gtk/gtkhscrollbar.c (gtk_vscrollbar_class_init): likewise.
	* gtk/gtkvscrollbar.c (gtk_vscrollbar_class_init): likewise.

	* gtk/gtkrange.c: added some realized checks.
	(gtk_range_destroy): get rid of the h/v adjustments in the
	destroy handler instead of finalize. remove timer.
	(gtk_range_get_adjustment): demand create adjustment.

	* gtk/gtkviewport.c: made h/v adjustment non-construct args.
	we simply create them on demand now and get rid of them in
	the destroy handler.
	(gtk_viewport_destroy): get rid of the h/v adjustments in the
	destroy handler instead of finalize.
	(gtk_viewport_get_hadjustment):
	(gtk_viewport_get_vadjustment):
	(gtk_viewport_size_allocate): demand create h/v adjustment
	if required.

	* gtk/gtkwidget.c (gtk_widget_finalize): duplicate part of the
	gtk_widget_real_destroy () functionality.
	(gtk_widget_real_destroy): reinitialize with a new style, instead
	of setting widget->style to NULL.

Fri May  5 13:02:09 2000  Tim Janik  <timj@gtk.org>

	* gtk/gtkcalendar.c:
	* gtk/gtkbutton.c: ported _get_type() implementation over to
	GType, either to preserve memchunks allocation facilities,
	or because Gtk+ 1.0 GtkTypeInfo was still being used.

	* gtk/gtkobject.[hc]: derive from GObject. ported various functions
	over. prepare for ::destroy to be emitted multiple times.
	removed reference tracer magic. chain into GObjectClass.shutdown()
	to emit ::destroy signal.

	* gtk/gtksignal.c: removed assumptions about GTK_TYPE_OBJECT being
	fundamental.

	* gtk/gtkmain.c: removed gtk_object_post_arg_parsing_init()
	cludge.

	* gtk/gtksocket.c:
	* gtk/gtkplug.c:
	* gtk/gtklayout.c:
	* gtk/gtklabel.c:
	* gtk/gtkargcollector.c:
	* gtk/gtkarg.c: various fixups to work with GTK_TYPE_OBJECT
	not being a fundamental anymore, and to work with the new
	type system (nuked fundamental type varargs clutter).

	* gtk/*.c: install finalize handlers in the GObjectClass
	part of the class structure.
	changed direct GTK_OBJECT()->klass accesses to
	GTK_*_GET_CLASS().
	changed direct object_class->type accesses to GTK_CLASS_TYPE().

	* gtktypeutils.[hc]: use the reserved fundamental ids provided by
	GType. made most of the GTK_*() type macros and Gtk* typedefs
	simple wrappers around macros and types provided by GType.
	most notably, a significant portion of the old API vanished:
	GTK_TYPE_MAKE(),
	GTK_TYPE_SEQNO(),
	GTK_TYPE_FLAT_FIRST, GTK_TYPE_FLAT_LAST,
	GTK_TYPE_STRUCTURED_FIRST, GTK_TYPE_STRUCTURED_LAST,
	GTK_TYPE_ARGS,
	GTK_TYPE_CALLBACK,
	GTK_TYPE_C_CALLBACK,
	GTK_TYPE_FOREIGN,
	GtkTypeQuery,
	gtk_type_query(),
	gtk_type_set_varargs_type(),
	gtk_type_get_varargs_type(),
	gtk_type_check_object_cast(),
	gtk_type_check_class_cast(),
	gtk_type_describe_tree(),
	gtk_type_describe_heritage(),
	gtk_type_free(),
	gtk_type_children_types(),
	gtk_type_set_chunk_alloc(),
	gtk_type_register_enum(),
	gtk_type_register_flags(),
	gtk_type_parent_class().
	replacements, where available are described in ../docs/Changes-1.4.txt.
	implemented compatibility functions for the remaining API.

	* configure.in: depend on glib 1.3.1, use gobject module.
2000-05-12 15:25:50 +00:00
Owen Taylor
5ef1e2e970 Various updates to current status.
Thu May 11 12:39:50 2000  Owen Taylor  <otaylor@redhat.com>

	* TODO.xml: Various updates to current status.
2000-05-11 16:40:30 +00:00
Owen Taylor
29b11b554d Print out version when test succeeds.
Wed May 10 20:25:04 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk.m4: Print out version when test succeeds.
2000-05-11 00:25:20 +00:00
Owen Taylor
88286d32af Color selection dialog rewrite.
Wed May 10 16:38:17 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am docs/Changes-1.4.txt gtk/gtkcolorsel.[ch]
	gtk/gtkhsv.[ch]: Color selection dialog rewrite.

	(Original triangle color selector from Simon Budig
	<Simon.Budig@unix-ag.org>, Cleaned up and rewritten for GTK+ by
	from Jonathan, Havoc, and Federico. Merge into GTK+ done by David
	Santiago <mrcooger@cyberverse.com>)

	* gtk/gtkcolorseldialog.[ch]: Split color selection dialog
	out into a separate widget.

	* gtk/testgtk.c: Add some checkbuttons for toggling palette
	and opacity controls.

Wed May 10 16:08:09 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in (GTK_LIBS_EXTRA): Remove references to gobject that
	snuck in prematurely.
2000-05-10 21:39:03 +00:00
Owen Taylor
ac9090ed10 Remove gobject that snuck in prematurely.
Wed May 10 16:08:09 2000  Owen Taylor  <otaylor@redhat.com>

        * configure.in (GTK_LIBS_EXTRA): Remove gobject that snuck
        in prematurely.
2000-05-10 20:08:50 +00:00
Szabolcs Ban
2e71702a7a Szabolcs BAN <shooby@gnome.hu>
* Corrected header
2000-05-10 11:52:18 +00:00
Darin Adler
0e164d5fca Change all conversion from 16-bit formats to 32-bit formats to re-use
the high bits of the color values so that white maps to full white.
2000-05-09 18:23:29 +00:00
Pablo Saratxaga
2aff269cbd file gtkrc.cp1255 was initially added on branch gtk-1-2. 2000-05-08 18:49:18 +00:00
Szabolcs Ban
8e8917d7b8 Szabolcs BAN <shooby@gnome.hu>
* Updated Hungarian translations.
2000-05-08 13:56:00 +00:00
Tor Lillqvist
acc8e78c2d Fix typo. I had deleted a ! operator by mistake, which caused
2000-05-07  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c (gdk_event_translate): Fix typo. I
had deleted a ! operator by mistake, which caused
GDK_SELECTION_CLEAR events never to be generated, which caused
only the first copy to the clipboard from an gtkeditable to
actually cause a copy to the Windows clipboard.

2000-05-06  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkdnd-win32.c: Enable shortcut resolution for gcc
compilation, too. Current mingw gcc distributions include the
necessary headers. Also the necessary IIDs are now in mingw
headers/libraries, and own definitions unnecessary.

More hacking on OLE2 DND, still doesn't work though, and thus
ifdeffed out.

* gdk/win32/gdkwindow-win32.c: Remove gdk_window_clear() from
here, too.
2000-05-07 19:45:27 +00:00
Paolo Molaro
8a836c07cf Sat, 6 May 2000 13:31:34 +0200 Paolo Molaro <lupus@linuxcare.com>
Sat,  6 May 2000 13:31:34 +0200 Paolo Molaro <lupus@linuxcare.com>

	* gdk/nanox/*: nano-X port work in progress.
	* gdk/simple.c: simple test for Gdk.
	* README.nanox: notes about the port: read this first!
	* gtk/gtk{dnd,plug,selection,window}.c: minimal changes to make gtk compile
	with nano-X.
2000-05-06 11:57:31 +00:00
Owen Taylor
ea71f02aca Move gdk_window_clear() into common code, implement in terms of
Fri May  5 11:18:47 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c gdk/x11/gdkwindow-x11.c (gdk_window_clear): Move
	gdk_window_clear() into common code, implement in terms of
	gdk_window_clear_area(). (Fixes bug where gdk_window_clear() was
	not redirected to the backing rectangle.

Wed Apr 26 01:53:23 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (EXTRA_DIST): Add OLD_STAMP into
	EXTRA_DIST. It does not work well when the file that
	everything depends on is not in the tarball.

Tue Apr 25 22:20:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_process_updates_internal): Fix error
	with recursion where process_updates() is called from
	an expose handler. (GtkTextView is highly broken in
	doing this, but it should work, so it is a nice test
	case.)

Sun Apr 23 23:39:18 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_process_updates_internal): Gracefully
	handle the case where updates are queued during processing of
	updates.

Tue Apr 18 14:16:50 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkwindow-x11.c (gdk_window_foreign_new): We already assume
	window is on gdk_display - use that instead of segfaulting.
2000-05-05 15:57:48 +00:00
Owen Taylor
e6abb4709f Add beginnings of file with detailed information about the structure and
Fri May  5 12:16:32 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/DETAILS: Add beginnings of file with
	detailed information about the structure and algorithms
	of pixops so people can fix it instead of breaking it.

CvS: Added Files:
2000-05-05 11:44:15 +00:00
Darin Adler
0f038c9e32 Now that Owen explained the algorithm, I think I implemented it right for
* gdk-pixbuf/pixops/pixops.c: (pixops_composite_nearest),
	(composite_pixel), (composite_line):
	* gdk-pixbuf/test-gdk-pixbuf.c: (simple_composite_test_one_type):
	Now that Owen explained the algorithm, I think I implemented it
	right for the cases where the destination pixbuf is not opaque.
	The test does seem to confirm it.
2000-05-05 02:50:24 +00:00
Darin Adler
24fa8a64bc Added some tests of composite to highlight problems in the old
* gdk-pixbuf/.cvsignore:
	* gdk-pixbuf/Makefile.am:
	* gdk-pixbuf/test-gdk-pixbuf.c (store_pixel), (fill_with_pixel),
	(load_pixel), (simple_composite_test_one),
	(simple_composite_test_one_type), (simple_composite_test), (main):
	Added some tests of composite to highlight problems in the old
	implementation. These tests run without any user interaction.
	Just do "make check".

	* gdk-pixbuf/pixops/pixops.c (pixops_composite_nearest),
	(composite_pixel), (composite_line): Fix composite to do a textbook
	"A over B" composite. This was clearly the intent, and it was easy
	to fix the code to do it. (Note to those that read my earlier tries
	at a patch; this version fixes typos that were present in all
	my patch attempts. I checked the final version by adding more tests.)
2000-05-04 14:53:48 +00:00
Pablo Saratxaga
fec650eb38 Updated ca.po (changed mantainer) 2000-05-04 13:06:54 +00:00
Tim Janik
375ed31443 some Make 3.79 $(strip ) versions are broken and require an empty arg,
Thu May  4 02:04:46 2000  Tim Janik  <timj@gtk.org>

        * configure.in (STRIP_DUMMY): some Make 3.79 $(strip ) versions are
        broken and require an empty arg, give it to them.

Fri Apr 28 19:34:32 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtklabel.h: indentation fixes.
2000-05-04 00:29:46 +00:00
Havoc Pennington
e097e863d6 Mention Jonathan's stack widget and the GtkNotebook implementation issues,
and s/gtk-devel-list@redhat.com/gtk-devel-list@gnome.org/g
2000-05-03 20:09:14 +00:00
Tor Lillqvist
57dd3ef80f Don't try to draw too narrow or too low arcs, they seem to fail, at least
2000-05-02  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_arc): Don't try to
draw too narrow or too low arcs, they seem to fail, at least with
some display drivers.

* gdk/gdk.c (gdk_init_check): Use G_DIR_SEPARATOR.
2000-05-02 21:36:08 +00:00
Tor Lillqvist
4481ff0cef New file, just a quick hack of the X11 version.
2000-05-02  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkgeometry-win32.c: New file, just a quick hack of
the X11 version.
2000-05-01 22:49:16 +00:00
Tor Lillqvist
1f149b3a8d Large changes to the Win32 backend, partially made necessary by the
2000-05-02  Tor Lillqvist  <tml@iki.fi>

Large changes to the Win32 backend, partially made necessary by
the changes to the backend-independent internal
structures. Attempts to implement similar backing store stuff as
on X11. The current (CVS) version of the Win32 backend is *not* as
stable as it was before the no-flicker branch was merged. A
zipfile with that version is available from
http://www.gimp.org/win32/. That should be use by "production"
code until this CVS version is usable. (But note, the Win32
backend has never been claimed to be "production quality".)

* README.win32: Add the above comment about versions.

* gdk/gdkwindow.c: Don't use backing store for now on Win32.

* gdk/gdk.def: Update.

* gdk/gdkfont.h: Declare temporary Win32-only functions. Will
presumably be replaced by some more better mechanism as 1.4 gets
closer to release shape.

* gdk/makefile.{cygwin,msc}: Update.

* gdk/win32/*.c: Correct inclusions of the backend-specific and
internal headers. Change code according to changes in these. Use
gdk_drawable_*, not gdk_window_* where necessary.

* gdk/win32/gdkdnd-win32.c: Use MISC selector for GDK_NOTE, not
our old DND.

* gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_text): Don't try
to interpret single characters as UTF-8. Thanks to Hans Breuer.
Use correct function name in warning messages.

* gdk/win32/gdkevents-win32.c: Use correct parameter lists for the
GSourceFuncs gdk_event_prepare and gdk_event_check.
(gdk_event_get_graphics_expose): Do implement, use
PeekMessage. Thanks to Hans Breuer.
(event_mask_string): Debugging function to print an GdkEventMask.
(gdk_pointer_grab): Use it.

* gdk/win32/gdkfont-win32.c: The Unicode subrange that the
(old) book I used claimed was Hangul actually is CJK Unified
Ideographs Extension A. Also, Hangul Syllables were missing.
Improve logging.

* gdk/win32/gdkgc-win32.c: Largish changes.

* gdk/win32/gdkim-win32.c (gdk_set_locale): Use
g_win32_getlocale() from GLib, and not setlocale() to get current
locale name.

* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkwin32.h: Move stuff from gdkprivate-win32.h to
gdkwin32.h, similarily as in the X11 backend.

* gdk/win32/gdkwindow-win32.c (gdk_propagate_shapes): Bugfix,
assignment was used instead of equals in if test. Thanks to Hans
Breuer.

* gdk/win32/makefile.{cygwin,msc}
* gtk/makefile.{cygwin,msc}: Updates. Better kludge to get the
path to the Win32 headers that works also with the mingw compiler.

* gtk/gtkstyle.c: Include <string.h>.
2000-05-01 22:06:49 +00:00
Pablo Saratxaga
33dc3d6d4c Updated wa.po 2000-04-30 00:28:19 +00:00
Havoc Pennington
ec60eb1baf Add this function, replacing the broken gtk_label_get ()
2000-04-26  Havoc Pennington  <hp@redhat.com>

* gtk/gtklabel.c (gtk_label_get_text): Add this function,
replacing the broken gtk_label_get ()
2000-04-26 22:53:01 +00:00
Arjan Scherpenisse
6b4e76ede6 update from Dennis Smit <synap@area101.penguin.nl>
2000-04-25  Arjan Scherpenisse  <acscherp@wins.uva.nl>

	* nl.po: update from Dennis Smit <synap@area101.penguin.nl>
2000-04-25 08:42:52 +00:00
05:27:43 2000 Owen Taylor
a77a3d135d Properly offset y coordinate accordining to render_y0.
2000-04-22 05:27:43 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Properly
	offset y coordinate accordining to render_y0.

	* gdk-pixbuf/gdk-pixbuf-scale.c: Properly handle nonzero
	dest_x, dest_y.
2000-04-24 05:28:02 +00:00
Manuel de Vega Barreiro
16814166ba Spanish Faq translation update 2000-04-23 09:19:58 +00:00
Manuel de Vega Barreiro
aee1e50166 Spanish translation update 2000-04-23 09:17:36 +00:00
Damon Chaplin
ff8a24c85a update from Lee Mallabone <lee0@callnetuk.com>
2000-04-22  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtkenums.sgml: update from Lee Mallabone
        <lee0@callnetuk.com>
2000-04-22 11:29:32 +00:00
James Henstridge
3d9b6e2435 moved %{prefix}/bin/* from the main package to the devel package. The only
2000-04-22  James Henstridge  <james@daa.com.au>

	* gdk-pixbuf.spec.in (%files): moved %{prefix}/bin/* from the main
	package to the devel package.  The only file installed in bin is
	gdk-pixbuf-config, which belongs in -devel.  This should allow having
	multiple versions of the main gdk-pixbuf package installed.
2000-04-22 05:38:53 +00:00
Valek Frob
157dc8922f Updated russian translation. 2000-04-18 15:29:29 +00:00
Karl Eichwalder
9f4c947028 Add .
* gdk-pixbuf/Makefile.am (INCLUDES): Add .
2000-04-17 11:43:25 +00:00
Havoc Pennington
4fe58c01f9 clean up enum format, remove extra comma, this keeps scanner scripts from
2000-04-15  Havoc Pennington  <hp@pobox.com>

* gdk/gdkdnd.h: clean up enum format, remove extra comma,
this keeps scanner scripts from getting confused.

* gdk/gdkdraw.c (gdk_drawable_get_data): This should return the
data, rather than void
2000-04-15 16:22:52 +00:00
Tor Lillqvist
affbc828b3 gtk/gtkclist.c (gtk_clist_motion) If we get a motion event with is_hint
2000-04-15  Tor Lillqvist  <tml@iki.fi>

* gtk/gtkclist.c (gtk_clist_motion)
* gtk/gtklist.c (gtk_list_motion_notify): If we get a motion event
with is_hint FALSE, get x and y from the event. They used to be
used uninitialised. The Win32 backend never sends motion events
marked as hints. This for instance fixes the annoying file and
font selector behaviour in the Win32 version.
2000-04-15 04:34:03 +00:00
Tomasz Kopczko
c1592ab52b $(LIBART_CFLAGS) replaced by $(GTK_CFLAGS) - now gdk-pixbuf compiles
2000-04-14 Tomasz Kopczko <kloczek@pld.org.pl>

	* gdk-pixbuf/pixops/makefile.am: $(LIBART_CFLAGS) replaced by
	$(GTK_CFLAGS) - now gdk-pixbuf compiles correctly.
2000-04-14 07:04:29 +00:00
Tor Lillqvist
a61a5ffe80 Export the gtk_private_signals and gtk_private_n_signals variables, they
2000-04-14  Tor Lillqvist  <tml@iki.fi>

* gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and
gtk_private_n_signals variables, they are used by some software,
sigh.

* gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the
installation directory from the Registry, where the installer
should have put it.
2000-04-13 21:29:11 +00:00
James Henstridge
cf1a251f35 when performing the configure check to see if gmodule works, set CFLAGS to
2000-04-13  James Henstridge  <james@daa.com.au>

	* configure.in: when performing the configure check to see if
	gmodule works, set CFLAGS to GLIB_CFLAGS and LIBS to GLIB_LIBS,
	rather than the other way round.  Also, call AC_MSG_RESULT in the
	even that dynamic modules were not supported.
2000-04-13 08:33:36 +00:00
Federico Mena Quintero
37ac7d593e Your eyes are bloodshot.
Your eyes are bloodshot.

Your mouth starts to foam.

Your hands are shaking.

You know your need your fix.

NEED MORE ABSTRACTION!

2000-04-12  Federico Mena Quintero  <federico@helixcode.com>

	This comes from an excellent idea by Tim Janik (timj@gtk.org) to
	hook to the last unref operation.

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_set_last_unref_handler): New
	function to set the last unref handler for a pixbuf.
	(gdk_pixbuf_finalize): New function to actually finalize a pixbuf.
	It calls the pixbuf's destroy notification function and frees the
	GdkPixbuf structure itself.
	(gdk_pixbuf_unref): Use the last unref function of the pixbuf if
	available.

	* gdk-pixbuf/gdk-pixbuf-private.h (struct _GdkPixbuf): New fields
	for the last unref handler and its user data.

	* gdk-pixbuf/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Use
	g_new0() to allocate the pixbuf.

	* gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init):
	Fixed the call to gtk_signal_new() for the "frame_done" signal; it
	was not specifying the `frame' argument.

	* gdk-pixbuf/gdk-pixbuf-animation.c
	(gdk_pixbuf_animation_get_width): Fixed docstring.
	(gdk_pixbuf_animation_get_height): Likewise.
	(gdk_pixbuf_animation_get_num_frames): Likewise.
	(gdk_pixbuf_animation_get_frames): Likewise.

	* doc/gdk-pixbuf-sections.txt: Updated with the new functions and
	types.

	* doc/tmpl/gdk-pixbuf.sgml: Added the description for GdkColorspace.

	* doc/tmpl/scaling.sgml: Added the description for GdkInterpType.

	* doc/tmpl/refcounting.sgml: Updated with the information about
	the last unref handler.

	* doc/tmpl/*.sgml: Markup tweaks.

	* gdk-pixbuf/Makefile.am (libgnomecanvaspixbuf_la_LDFLAGS): Sigh,
	update the libtool version number for libgnomecanvaspixbuf as
	well.
	(libpixbufloader_*_la_LDFLAGS): The loaders need to be versioned
	as well, or the old ones won't work with the new stuff.  Also,
	renamed the modules as follows.

	* gdk-pixbuf/gdk-pixbuf-io.c (gdk_pixbuf_load_module): Now the
	modules are called "libpixbufloader-<format>.so" instead of
	"libpixbuf-<format>.so".  They needed renaming so that the new
	loaders won't overwrite the old ones; even with the versioning
	stuff, the new .so symlink to the .so.1.0.0 would overwrite the
	old real .so file.
2000-04-13 01:18:41 +00:00
Paolo Molaro
a106984b7f shut up cvs.
2000-04-12  Paolo Molaro <lupus@debian.org>

	* .cvsignore, src/.cvsignore: shut up cvs.
2000-04-12 07:13:20 +00:00
Ville Hautamaki
33e7c9bce3 Pauli Virtanen updated fi.po. 2000-04-11 09:08:13 +00:00
Federico Mena Quintero
829ed02435 Most of this patch is based on a patch by Havoc Pennington (hp@redhat.com)
2000-04-11  Federico Mena Quintero  <federico@helixcode.com>

	Most of this patch is based on a patch by Havoc Pennington
	(hp@redhat.com) to make GdkPixbuf's structures opaque and to
	remove the libart dependency.

	* gdk-pixbuf/gdk-pixbuf.h: Removed the public structures.
	(GdkColorspace): New enum that for now only contains
	GDK_COLORSPACE_RGB.
	(GdkPixbufDestroyNotify): New type for the pixbuf's pixels destroy
	notification function.
	(GdkInterpType): New num with interpolation types.

	* *.[ch]: Replace the libart stuff with our own stuff.

	* pixops/*.[ch]: Likewise.

	* gdk-pixbuf/gdk-pixbuf-private.h: New file with the private
	declarations of the GdkPixbuf structures.

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_new_from_art_pixbuf):
	Removed function.
	(gdk_pixbuf_get_format): Constify.
	(gdk_pixbuf_get_n_channels): Constify.
	(gdk_pixbuf_get_has_alpha): Constify.
	(gdk_pixbuf_get_bits_per_sample): Constify.
	(gdk_pixbuf_get_pixels): Constify.
	(gdk_pixbuf_get_width): Constify.
	(gdk_pixbuf_get_height): Constify.
	(gdk_pixbuf_get_rowstride): Constify.

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_copy): New function to copy
	a pixbuf.

	* gdk-pixbuf/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Added a
	bits_per_sample argument; currently only 8 bits per sample are
	supported.

	* gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_frame_get_pixbuf):
	New accessor.
	(gdk_pixbuf_frame_get_x_offset): New accessor.
	(gdk_pixbuf_frame_get_y_offset): New accessor.
	(gdk_pixbuf_frame_get_delay_time): New accessor.
	(gdk_pixbuf_frame_get_action): New accessor.

	* gdk-pixbuf/gdk-pixbuf-render.c
	(gdk_pixbuf_render_pixmap_and_mask): Instead of returning a solid
	mask rectangle for pixbufs without an alpha channel, set the
	*mask_return to NULL.

	* gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_add_alpha): Constify.

	* gdk-pixbuf/gdk-pixbuf-scale.c: Fix includes.

	* gdk-pixbuf/gdk-pixbuf-scale.c (gdk_pixbuf_scale): Added some
	preconditions.  Maybe we should also check for the colorspace,
	bits per pixel, and such.
	(gdk_pixbuf_composite): Likewise.
	(gdk_pixbuf_composite_color): Likewise.
	(gdk_pixbuf_scale_simple): Likewise, and fail gracefully if we
	cannot allocate the new pixbuf.
	(gdk_pixbuf_composite_color_simple): Likewise.

	* gdk-pixbuf/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_render):
	Use art_rgb_rgba_affine() or art_rgb_affine() since we no longer
	have an ArtPixBuf.

	* gdk-pixbuf/io-bmp.c: Fix includes.

	* gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Fixed cast in
	an lvalue.

	* TODO: Populated.

	* configure.in: Removed checks for libart.

	* gdk-pixbuf/Makefile.am: Removed references to libart.
	(noinst_HEADERS): Added gdk-pixbuf-private.h.

	* gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_LDFLAGS): Incremented
	the version number of the libtool library to indicate that this
	definitely is not compatible with the old usage.  I know you love
	me.  I know you do.

	* configure.in: Bumped version number to 0.7.0.

	* README: Updated.

	* gdk-pixbuf-config.in (--libs): We no longer require libart.

	* DEPENDS.libgdk_pixbuf: We no longer depend on libart.

	* gdk-pixbuf.spec.in: Updated, but I don't guarantee anything.
2000-04-11 07:03:25 +00:00
Fatih Demir
daaae930ad Updated the Turkish translation 2000-04-10 15:05:37 +00:00
Damon Chaplin
6efaa8c725 update from Torsten Landschoff <t.landschoff@gmx.net>
2000-04-09  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtkmain.sgml: update from Torsten Landschoff
        <t.landschoff@gmx.net>

        * gdk/tmpl/input_methods.sgml:
        * gdk/tmpl/general.sgml: fixed typos.
2000-04-09 20:23:49 +00:00
Owen Taylor
848cff384e Fix problem with installation directory for gdkx.h
Fri Apr  7 17:19:27 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/Makefile.am: Fix problem with installation directory for
	gdkx.h

	* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
	<mrcooger@cyberverse.com> so that when selecting menus with the
	mouse, the first item will not be selected, but when selecting
	with an accelerator, or navigating left-right on a menubar with
	the menus popped up, the first item will be selected.
2000-04-07 21:36:13 +00:00
Jonathan Blandford
d96d7ada5a add more info to the testanimation frames.
2000-04-06  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/testanimation.c (main): add more info to the
	testanimation frames.
2000-04-06 20:28:20 +00:00
Dan Damian
ddd6248ae3 Added Romanian translation. 2000-04-05 16:45:09 +00:00
Owen Taylor
58df98f92a Fix screwy indentation.
Wed Apr  5 00:08:36 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkgc-x11.c (_gdk_x11_gc_new): Fix screwy
	indentation.

	* Makefile.am (EXTRA_DIST): Fix typo.

	* gdk[/x11]/Makefile.am (INCLUDES): Add $(top_builddir)/gdk
	to catch gdkconfig.h

	* gtk/gtkitemfactory.c: Added FIXME.
2000-04-05 04:11:10 +00:00
Ettore Perazzoli
74fbc5d9ea Ooops, forgot header file. 2000-04-04 05:17:49 +00:00
Ettore Perazzoli
e9c20fac4c Added GdkPixbufAnimation accessor functions, so that we don't have to
access the struct members directly.
2000-04-04 04:50:39 +00:00
Radek Doulik
133ab96180 same as below
2000-03-29  Radek Doulik  <rodo@helixcode.com>

	* gdk-pixbuf/gdk-pixbuf-animation.c
	(gdk_pixbuf_animation_new_from_file): same as below

	* gdk-pixbuf/io-gif.c (gif_get_lzw): added update of width and
	height in GdkPixbufAnimation

2000-03-28  Radek Doulik  <rodo@helixcode.com>

	* gdk-pixbuf/io-gif.c (gif_get_lzw): test also for
	context->frame_done_func and context->anim_done_func to make
	progressive animation loading work

	* gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done):
	added priv->pixbuf = NULL as pixbuf is now in frame (and to make
	gdk_pixbuf_loader_prepare happy)
	(gdk_pixbuf_loader_frame_done): update animation bbox

	* gdk-pixbuf/gdk-pixbuf.h: added bbox size (width, height) to
	_GdkPixbufAnimation

2000-03-27  Radek Doulik  <rodo@helixcode.com>

	* gdk-pixbuf/io-gif.c (gif_get_lzw): use frame_len and frame_width
	instead of width and height
2000-04-03 08:59:43 +00:00
Federico Mena Quintero
8a680eb75c Reverted Mark's change. The refcount is private information, and the
2000-04-01  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/gdk-pixbuf.c: Reverted Mark's change.  The refcount
	is private information, and the art_pixbuf will go away soon.
2000-04-02 18:54:17 +00:00
Mark Crichton
f77b679fe4 Added 2 more convience functions.
Added 2 more convience functions.

gdk_pixbuf_get_refcount for the current refcount of the pixbuf (per someone
at Eazel's request)

gdk_pixbuf_get_artpixbuf: returns the artpixbuf of the pixbuf.  Is this
a good idea?  I'm using it to help make->panel->do->the->right->thing.
2000-04-01 03:28:31 +00:00
Jonathan Blandford
2907d515b2 oops. s/return_if_fail/return_val_if_fail/g and add a return value.
2000-03-30  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkpaned.c (gtk_paned_get_position): oops.
	s/return_if_fail/return_val_if_fail/g and add a return value.
2000-03-30 16:52:29 +00:00
Havoc Pennington
57c0bee7b3 update to reflect stuff I already did 2000-03-30 01:52:50 +00:00
Havoc Pennington
31828be9c4 file gtkiconset.c was initially added on branch havoc-patches. 2000-03-29 20:49:52 +00:00
Havoc Pennington
c502b23fc7 file gtkiconset.h was initially added on branch havoc-patches. 2000-03-29 20:49:52 +00:00
Federico Mena Quintero
e7550f1c9c Return gboolean instead of int.
2000-03-29  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_get_has_alpha): Return
	gboolean instead of int.
2000-03-29 19:54:29 +00:00
Havoc Pennington
0152e0d6e2 Add font selector, color selector 2000-03-28 19:51:08 +00:00
Havoc Pennington
cf9537d74d Add stuff from Ettore 2000-03-28 17:18:15 +00:00
Owen Taylor
06aed52437 Fix problem with precendence of >> and & which was keeping composite_color
2000-03-27  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/pixops.c: Fix problem with
	precendence of >> and & which was keeping composite_color
	from working with non-gray images.
2000-03-28 04:49:42 +00:00
Owen Taylor
a6e85956d2 Fix up merge slipup.
Mon Mar 27 20:56:14 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Fix up
	merge slipup.

	* gdk/gdkinput.h: Fix missing line from merge.
2000-03-28 01:58:05 +00:00
Owen Taylor
b14b577d59 Include gdkinternals.h instead of gdkprivate.h.
Mon Mar 27 20:39:49 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkcolor.c cursor.c gdkdraw.c gdkfont.c: Include gdkinternals.h
	instead of gdkprivate.h.
2000-03-28 01:40:57 +00:00
Owen Taylor
8822298930 *** empty log message *** 2000-03-28 01:31:13 +00:00
Owen Taylor
8098546227 Merge no-flicker branch into HEAD 2000-03-28 01:24:44 +00:00
Havoc Pennington
4238d406e9 Add making GdkRGB render to any visual 2000-03-27 23:49:23 +00:00
Havoc Pennington
43c05caef2 Add MDI thing and icon list 2000-03-27 23:40:04 +00:00
Havoc Pennington
c773e6e0bc fix sections 2000-03-27 23:24:17 +00:00
Havoc Pennington
a4fa9b8aa9 Update TODO file with a bunch of stuff (filtered via Owen) 2000-03-27 23:20:40 +00:00
Jonathan Blandford
07b1e46225 add getter.
2000-03-23  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkpaned.c (gtk_paned_get_position): add getter.
2000-03-23 22:33:38 +00:00
Havoc Pennington
d71b916716 Add defs file format document (this document isn't 100% finalized, but
putting it here as a sort of "official" location)
2000-03-23 20:20:19 +00:00
Pablo Saratxaga
8b0589f009 Updated Lithuanian file 2000-03-20 17:47:01 +00:00
Tor Lillqvist
0cc2a00dc9 Remove the #ifndef USE_DISPATCHMESSAGE sections, we do want to use
2000-03-17  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c: Remove the #ifndef
USE_DISPATCHMESSAGE sections, we do want to use DispatchMessage.

* gdk/win32/gdkfont-win32.c
* gdk/win32/gdkproperty-win32.c
* gdk/win32/gdkselection-win32.c
* gdk/win32/gdkwindow-win32.c: Add const to some arguments that are
now declared such.
2000-03-16 21:58:35 +00:00
Manish Singh
2cc21d52cd removed stray gutter_size reference, a 1.2 relic
* gtk/gtkvpaned.c: removed stray gutter_size reference, a 1.2 relic

-Yosh
2000-03-15 11:03:57 +00:00
Raph Levien
146313a3d2 Better description of gdk_rgb_set_min_colors. Stric pointed out that
the previous documentation suggested using 256 to request a private
colormap, which is currently broken. This was making Mozilla crash.
2000-03-14 22:20:20 +00:00
Owen Taylor
10ba4fd066 Merges from gtk-1-2 2000-03-14 19:57:25 +00:00
Tor Lillqvist
3f98a849c7 Fix typo: Italian uses ISO-8859-1, not -2. Add en_GB.
2000-03-14  Tor Lillqvist  <tml@iki.fi>

* makefile.cygwin: Fix typo: Italian uses ISO-8859-1, not -2. Add
en_GB.
2000-03-14 18:10:15 +00:00
Havoc Pennington
6301e32f2a document gtk_window_set_policy() (cleared with Owen) 2000-03-14 17:21:06 +00:00
Pablo Saratxaga
6c5b4c65c2 Updated lt.po 2000-03-13 20:57:47 +00:00
GMT 2000 Tony Gale
e99b78cdea FAQ Update: - Minor cleanups (Emmanuel, me) - New questions: I need to add
Thu Mar  9 22:10:56 GMT 2000  Tony Gale <gale@gtk.org>

        * docs/gtkfaq.sgml: FAQ Update:
          - Minor cleanups (Emmanuel, me)
          - New questions:
                I need to add a new signal to a GTK+ widget. Any idea? (timj)
                How can I retrieve the text from a GtkMenuItem? (timj)
                How do I validate/limit/filter the input to a GtkEntry? (me)
                Memory does not seem to be released when I free the list
                        nodes I've allocated (timj)
2000-03-09 22:17:20 +00:00
Jonathan Blandford
407a379189 free the context. (gdk_pixbuf__gif_image_load_animation): free the
2000-03-08  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/io-gif.c (gdk_pixbuf__gif_image_load): free the context.
	(gdk_pixbuf__gif_image_load_animation): free the context.
2000-03-09 00:11:30 +00:00
Tor Lillqvist
ec1e8f1f5d Internal GDK error reporting changes: (gdk_win32_gdi_failed) New function
2000-03-07  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkmain-win32.c: Internal GDK error reporting changes:
(gdk_win32_gdi_failed) New function for reporting errors from GDI,
for which it is no use to call GetLastError on Win9x.
(gdk_other_api_failed) New function, for
general error reporting without calling GetLastError.
(gdk_win32_api_failed) OTOH, this function always calls
GetLastError. (gdk_win32_last_error_string) Remove this function,
GLib has the equivalent now.

* gdk/win32/gdkprivate-win32.h: Declare the above, and macros to
call them with function name, file name and line number in the
arguments.

* gdk/win32/*.c: Use the new macros for reporting errors from GDI
functions.

* gtk/gtk.def: Add some missing entry points.

* gtk/gtkcompat.h.in: Define gtk_paned_gutter_size and
gtk_paned_set_gutter_size, which don't exist any longer, as void.

Fixes by Hans Breuer:

* gdk/makefile.msc: Update for debugging.

* gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_dashes): Fake
implementation, just use the PS_DASH, PS_DOT, PS_DASHDOT or
PS_DASHDOTDOT or PS_DASH styles depending on the number of entries
in the dash_list.

* gdk/win32/gdkwin32.h (GDK_FONT_XFONT): New macro, similar as in
the x11 backend.

* gdk/win32/gdkprivate-win32.h (IS_WIN_NT): New macro.

* gtk/testgtk.c: Include config.h, guard inclusion of unistd.h.
2000-03-08 06:18:41 +00:00
Damon Chaplin
960906e1e2 fix to gtk_clist_set_reorderable(). It reorders rows, not columns. From
2000-03-07  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtkclist.sgml: fix to gtk_clist_set_reorderable(). It
        reorders rows, not columns. From Guy Harris <gharris@flashcom.net>.
2000-03-07 18:03:35 +00:00
Owen Taylor
35226a7be5 Moved into docs/ subdir
Mon Mar  6 11:44:58 2000  Owen Taylor  <otaylor@redhat.com>

        * docs/gap-geometry.fig: Moved into docs/ subdir

        * Makefile.am configure.in autogen.sh src/Makefile.am:
	automakify

	* src/pixbuf.h src/pixbuf-render.c src/pixbuf-draw.c
	src/pixbuf-main.c: Move sources into subdir and
	rename.
2000-03-06 18:47:32 +00:00
Owen Taylor
7ed05e22e5 Start automake-ifying 2000-03-06 16:39:14 +00:00
Owen Taylor
b8c691e6b2 Handle drawing transparency without a mask correctly.
Mon Mar  6 11:02:07 2000  Owen Taylor  <otaylor@redhat.com>

	* pixmap_theme_pixbuf.c: Handle drawing transparency without a
	mask correctly.

	* pixmap_theme_main.c pixmap_theme_draw.c: Remove duplicate
	includes.
2000-03-06 16:12:22 +00:00
Arjan van de Ven
ac67157049 Arjan van de Ven <arjan@fenrus.demon.nl>
Fixed to pointer-bugs and a
mis-interpretation of the Microsoft documentation. Now
it can load .BMP files that are not generated by The Gimp
as well.
a=federico
2000-03-06 08:53:57 +00:00
Tor Lillqvist
5a4e1abbfc Store just pixel value of background colour.
2000-03-04  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkprivate-win32.h (struct _GdkWindowWin32Data): Store
just pixel value of background colour.

* gdk/win32/gdkgc-win32.c (gdk_colormap_color): New function
containing code snippet previously duplicated in a couple of
places.

* gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_points): Use
gdk_colormap_color.

* gdk/win32/gdkevents-win32.c (gdk_event_translate): Generate
GDK_SCROLL events for WM_MOUSEWHEEL messages. Don't generate
events for autorepeated Shift, Control and Alt keys. Use
gdk_colormap_color.

* gdk/win32/gdkwindow-win32.c (gdk_window_set_cursor): If the
pointer is inside the window the cursor of which we are setting,
call SetCursor immediately.

* gdk/win32/makefile.cygwin
* gtk/makefile.cygwin: If we don't have the build number stamp
file, use zero.

* gtk/gtkcompat.h.in: Define gtk_paned_gutter_size and
gtk_paned_set_gutter_size as empty.

* gtk/gtk.def: Remove gtk_paned_set_gutter_size.
2000-03-03 23:21:51 +00:00
Mark Crichton
2468916bcc Merged in changes.
Merged in changes.

If this doesn't work, I blame the NWO conspiracy.

I need to go put my tin foil hat back on now, and keep a lookout for the
black helicopters.
2000-03-03 03:57:15 +00:00
Damon Chaplin
25472c7578 minor fix from Nicolas GEORGE <nicolas.george@ens.fr>.
2000-02-29  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtkmenuitem.sgml: minor fix from Nicolas GEORGE
        <nicolas.george@ens.fr>.
2000-02-29 18:43:54 +00:00
Matt Wilson
06884f05ff s/unsigned long/guint32/g, s/unsigned short/guint16/g, s/unsigned
2000-02-28  Matt Wilson  <msw@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-drawable.c: s/unsigned long/guint32/g,
	s/unsigned short/guint16/g, s/unsigned char/guint8/g
2000-02-29 18:27:44 +00:00
GMT 2000 Tony Gale
de9fb93157 missed a couple of corrections
Tue Feb 29 13:29:17 GMT 2000  Tony Gale <gale@gtk.org>

missed a couple of corrections
2000-02-29 13:29:59 +00:00
GMT 2000 Tony Gale
6ab2659931 Spelling/grammar fixes from Martin Buchholz <martin@xemacs.org>
Tue Feb 29 13:10:00 GMT 2000  Tony Gale <gale@gtk.org>

        * gdk/gdkwindow.h gdk/x11/gxid.c gtk/gtkclist.c gtk/gtkclist.h
          gtk/gtkctree.c gtk/gtkmenu.h gtk/gtkwidget.c gtk/testgtk.c
          docs/styles.txt docs/refcounting.txt docs/gtkfaq.sgml
          docs/gtk_tut.sgml docs/gtk.texi TODO:
          Spelling/grammar fixes from Martin Buchholz <martin@xemacs.org>
2000-02-29 13:15:10 +00:00
Damon Chaplin
160e3574ac new menu item sections and minor update to notebook section from Nicolas
2000-02-28  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtkradiomenuitem.sgml:
        * gtk/tmpl/gtkmenuitem.sgml:
        * gtk/tmpl/gtknotebook.sgml: new menu item sections and minor update to
        notebook section from Nicolas GEORGE <nicolas.george@ens.fr>.

2000-02-18  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtktooltips.sgml: patch from
        David Benson <daveb@idealab.com> to note that gtk_tooltips_set_colors()
        does not work.

2000-02-09  Damon Chaplin  <damon@helixcode.com>

        * gdk/tmpl/input_methods.sgml: minor fix.
2000-02-28 21:39:41 +00:00
Damon Chaplin
e809560d6a added a note about no-window widgets.
2000-06-14  Damon Chaplin  <damon@helixcode.com>

	* gtk/tmpl/gtktooltips.sgml: added a note about no-window widgets.
2000-02-28 21:39:41 +00:00
Damon Chaplin
a629fd7f84 new menu item sections and minor update to notebook section from Nicolas
2000-02-28  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtkradiomenuitem.sgml:
        * gtk/tmpl/gtkmenuitem.sgml:
        * gtk/tmpl/gtknotebook.sgml: new menu item sections and minor update to
        notebook section from Nicolas GEORGE <nicolas.george@ens.fr>.

2000-02-18  Damon Chaplin  <damon@helixcode.com>

        * gtk/tmpl/gtktooltips.sgml: patch from
        David Benson <daveb@idealab.com> to note that gtk_tooltips_set_colors()
        does not work.

2000-02-09  Damon Chaplin  <damon@helixcode.com>

        * gdk/tmpl/input_methods.sgml: minor fix.
2000-02-28 21:39:41 +00:00
Federico Mena Quintero
117b2eca5c We don't require libgif/ungif nor libXpm.
2000-02-26  Federico Mena Quintero  <federico@helixcode.com>

	* README: We don't require libgif/ungif nor libXpm.

	* NEWS: This was outdated, so updated it.
2000-02-27 01:25:27 +00:00
GMT 2000 Tony Gale
e8fa46be45 Implement num_marked_dates, and don't emit mutiple day_selected signals on
Sat Feb 26 11:46:25 GMT 2000  Tony Gale <gale@gtk.org>

        * gtk/gtkcalendar.c: Implement num_marked_dates,
          and don't emit mutiple day_selected signals on
          month_prev.
2000-02-26 11:39:07 +00:00
Tim Janik
f9d3bbdaaf don't omit TODO.xml 2000-02-26 03:47:25 +00:00
Christopher R. Gabriel
160809ca7b Updated italian translation 2000-02-26 01:41:58 +00:00
Jonathan Blandford
1af201e9bb let title and logo be configurable so that GNOME can use this script too.
2000-02-25  Jonathan Blandford  <jrb@redhat.com>

	* docs/make-todo (lineno): let title and logo be configurable so
	that GNOME can use this script too.

	* TODO.xml: added logourl and a title
2000-02-25 22:56:58 +00:00
Federico Mena Quintero
e97e6e632e Use the correct name for gdk-pixbuf/gdk-pixbuf.h. Thanks to Jacob Berkman
2000-02-25  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf.m4: Use the correct name for
	gdk-pixbuf/gdk-pixbuf.h.  Thanks to Jacob Berkman for pointing
	this out.
2000-02-25 21:41:51 +00:00
Owen Taylor
713b36cedb Added some UI items, and an explanatory comment at the top of the file.
Fri Feb 25 11:12:00 2000  Owen Taylor  <otaylor@redhat.com>

	* TODO.xml: Added some UI items, and an explanatory
	comment at the top of the file.
2000-02-25 16:17:10 +00:00
Tim Janik
b128983b58 some updates, added abunch of new entries. a note for those fiddeling with
Thu Feb 24 09:07:28 2000  Tim Janik  <timj@gtk.org>

        * TODO.xml: some updates, added abunch of new entries.
        a note for those fiddeling with this file, when done
        with it, invoke:
        $ ./docs/make-todo TODO.xml >/dev/null
        and correct output errors before comitting changes.
2000-02-24 08:12:12 +00:00
Owen Taylor
61c009c800 twiddled some more 2000-02-24 05:11:56 +00:00
Owen Taylor
8891244084 twiddled 2000-02-24 04:47:57 +00:00
Owen Taylor
bcc0607e69 small changes 2000-02-24 04:35:05 +00:00
Owen Taylor
dd60f7b998 spelling fixes 2000-02-24 04:20:41 +00:00
Owen Taylor
d9c46655cc Added XML-structured TODO file. python script to turn TODO.xml into pretty
Wed Feb 23 22:59:50 2000  Owen Taylor  <otaylor@redhat.com>

	* TODO.xml: Added XML-structured TODO file.
        * docs/make-todo: python script to turn TODO.xml into
          pretty XML output.
2000-02-24 04:03:49 +00:00
Jonathan Blandford
6654a22891 add a 'paned' mode to the function to let it draw the seven dots, instead
2000-02-23  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkstyle.c (gtk_default_draw_handle): add a 'paned' mode to
	the function to let it draw the seven dots, instead of the old,
	much maligned, method.
	(draw_dot): New function to draw a dot.

	* gtk/gtkhpaned.c (gtk_hpaned_size_allocate): changed allocation
	to draw the handle inside the border width as opposed to outside.
	Use paint function instead of gdk_draw_point.

	* gtk/gtkvpaned.c (gtk_vpaned_size_allocate): changed allocation
	to draw the handle inside the border width as opposed to outside.
	Use paint function instead of gdk_draw_point.

	* gtk/gtkfilesel.c (gtk_file_selection_update_history_menu):
	Change indenting to be more GTK like.
2000-02-23 22:55:27 +00:00
GMT 2000 Tony Gale
2444c80ff7 New section on GtkCalendar Update example code
Wed Feb 23 10:54:14 GMT 2000  Tony Gale <gale@gtk.org>

        * docs/gtk_tut.sgml: New section on GtkCalendar
        * examples/calendar: Update example code
2000-02-23 10:59:21 +00:00
GMT 2000 Tony Gale
811cd0c124 Get the date on the FAQ right. Grr.
Tue Feb 22 14:02:48 GMT 2000 Tony Gale <gale@gtk.org>

        * Get the date on the FAQ right. Grr.
2000-02-22 13:59:09 +00:00
GMT 2000 Tony Gale
92b4a139ba FAQ Update
Tue Feb 22 13:54:12 GMT 2000  Tony Gale <gale@gtk.org>

        * docs/gtkfaq.sgml: FAQ Update
2000-02-22 13:49:53 +00:00
Federico Mena Quintero
79d6346057 0.6.0 - Federico 2000-02-22 00:29:00 +00:00
Jonathan Blandford
7ef740e03d fix case where initial colormap entry is Transparent.
2000-02-19  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/io-gif.c (new_context): fix case where initial
	colormap entry is Transparent.
2000-02-20 03:08:00 +00:00
Anders Carlsson
1dcb67c8f3 Return TRUE to prevent the scroll event to be propagated upwards.
2000-02-19  Anders Carlsson  <andersca@gnu.org>

	* gtk/gtkrange.c (gtk_range_scroll_event): Return TRUE
	to prevent the scroll event to be propagated upwards.
2000-02-19 22:19:55 +00:00
Owen Taylor
bddd4ca943 Fix error in scale factors for non-alpha case.
2000-02-19  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/pixops.c (scale_pixel): Fix error in
	scale factors for non-alpha case.
2000-02-19 22:05:48 +00:00
Anders Carlsson
797d345446 Fix my e-mail address 2000-02-18 21:44:29 +00:00
Owen Taylor
c8a2382b65 Remove OwnerGrabButtonMask from button entries for GDK_BUTTON_PRESS /
Fri Feb 18 14:37:29 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkwindow-x11.c (gdk_event_mask_table): Remove
	OwnerGrabButtonMask from button entries for
	GDK_BUTTON_PRESS / GDK_BUTTON_RELEASE.

	* gtk/gtklayout.c (gtk_layout_realize): Always add GDK_SCROLL
	to the event mask (which will result in button/press release
	being added to the event mask on Unix) so scrolling works
	for layouts in scroll windows.

	* gdk/gdkevents.h (enum): Fix up GDK_ALL_EVENTS_MASK.

	Patch from Anders Carlsson  <andersca@picard.andersnet> to add
	a scroll event.

 	* gtk/testgtk.c (scroll_test_scroll): Added an example of mouse wheel
 	scrolling to the "Test Scrolling" part of testgtk.

 	* gtk/gtkwidget.h (struct _GtkWidgetClass): Added scroll_event signal.

 	* gtk/gtkwidget.c: Added "scroll_event" GTK+ signal and matched
 	it against GDK_SCROLL.

 	* gtk/gtkrange.c (gtk_range_scroll_event): Updated to use the new
 	way of mouse wheel scrolling.

 	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_scroll_event): Likewise.

 	* gtk/gtkspinbutton.c (gtk_spin_button_scroll): Likewise.

 	* gtk/gtkmain.c: Removed previous mouse wheel hack.

 	* gdk/x11/gdkwindow-x11.c (gdk_event_mask_table): Added entry in
 	gdk_event_mask_table.

 	* gdk/x11/gdkevents-x11.c (gdk_event_translate): Added
 	GdkEventScroll handler.

 	* gdk/gdkevents.h: Added GdkEventScroll structure.
2000-02-18 20:02:24 +00:00
Owen Taylor
ab1deac87f Add patch from Jonathan Blandford and Anders Carlsson to change the Paned
Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
	and Anders Carlsson to change the Paned widgets so that they
	can be dragged from anywhere along the length. Also change
	the way that this is drawn to make this apparent.

	* gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
	from George Lebl to check that option_menu->menu is present
	before getting history.
2000-02-17 22:12:25 +00:00
Mark Crichton
d0f73034cf Iain sent me a xpm that didn't load. It used "g" instead of "c" in it's
Iain sent me a xpm that didn't load.  It used "g" instead of "c" in it's
color table.

I thought that was borked until I saw Imlib, xv, and Gimp load it up w/o
problem...

So, fixed that (less than one line fix).  HOWEVER, if this is correct,
then the gdk XPM loader in gtk+ also has the same problem.

Owen, got an opinion on this?

Mark
2000-02-14 23:26:01 +00:00
Darin Adler
97f2c2b7bb Remove now-unnecessary cast. 2000-02-14 20:51:51 +00:00
Elliot Lee
9bf3a0be0c Make passed-in argument 'const'.
* gdk-pixbuf/gdk-pixbuf.h, gdk-pixbuf/gdk-pixbuf-data.c: Make passed-in argument 'const'.
2000-02-14 20:06:23 +00:00
Tor Lillqvist
37cfb7d74b Move the test for no segments before the assertion for non-NULL segment
2000-02-14  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
before the assertion for non-NULL segment list.

* gdk/win32/gdkgc-win32.c: (gdk_win32_gc_values_to_win32values):
Seems that pattern brushes *must* be 8x8 pixels! At least on my
machine, but it might be display driver dependent. Sigh, so make
sure the stipple is that size. Does Windows suck or what?

* gdk/win32/gdkdrawable-win32.c: Improve error handling in a few
places.
2000-02-13 23:19:23 +00:00
Havoc Pennington
95a9052d56 init refcount to 1 (gdk_cursor_new): init refcount to 1
2000-02-13  Havoc Pennington  <hp@pobox.com>

	* gdk/x11/gdkcursor-x11.c (gdk_cursor_new_from_pixmap): init
		refcount to 1
			(gdk_cursor_new): init refcount to 1

				* gdk/win32/gdkcursor-win32.c
(gdk_cursor_new): init refcount to 1
2000-02-13 20:22:20 +00:00
Tor Lillqvist
ff99eb7cc1 Add an extra parameter so that we don't have to do unnecessary settings to
2000-02-13  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkgc-win32.c (gdk_gc_predraw): Add an extra parameter
so that we don't have to do unnecessary settings to the HDC.

* gdk/win32/gdkdrawable-win32.c
* gdk/win32/gdkimage-win32.c: Corresponding changes to the calls of
gdk_gc_predraw.

* gdk/win32/gdkdrawable-win32.c: Special-casing for GdkGCs where
the fill style is GDK_OPAQUE_STIPPLED. In those cases we construct
GDI paths, call WidenPath to get the outline of the stroken path,
and then fill the outline (with the brush that was built from the
stipple).

* gdk/win32/gdkgc-win32.c: Factor out common code from
_gdk_win32_gc_new and gdk_win32_gc_set_values into
gdk_win32_gc_values_to_win32values.

* gdk/win32/gdkmain-win32.c (gdk_win32_last_error_string,
gdk_win32_api_failed): New functions for error logging.

* gdk/win32/gdkprivate-win32.h: Declare them, and a macro
WIN32_API_FAILED to call them, passing function or file name and
line number.

* gdk/win32/*.c: Use the WIN32_API_FAILED macro.

* gdk/win32/gdkprivate-win32.h: Store just the pixel values from
GdkColor for foreground and background in GdkGCWin32Data.

* gdk/makefile.cygwin: Link in the resource object separately.

* gdk/win32/rc/gdk.rc
* gtk/gtk.rc (New file)
* gdk/win32/makefile.cygwin
* gtk/makefile.cygwin: Update build number in DLLs automatically,
as in GLib.
2000-02-13 14:52:47 +00:00
Tim Janik
ef03cb5287 s/refcount/ref_count/.
Sun Feb 13 08:54:45 2000  Tim Janik  <timj@gtk.org>

        * gdk/gdkcursor.h (struct _GdkCursor): s/refcount/ref_count/.
        * gdk/x11/gdkcursor-x11.c (gdk_cursor_new_from_pixmap):
        * gdk/x11/gdkcursor-x11.c (_gdk_cursor_destroy):
        * gdk/gdkcursor.c (gdk_cursor_ref): insert assertments for the
        parameters given and cursor->ref_count. coding style fixups.

        * gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
        not GtkWidget.

        * gtk/*.h: applied patch from Mathieu Lacage <lacage@email.enst.fr> to
        fix up widget macros and add _GET_CLASS() variant.

        * gtk/*.c: some GtkType fixups.
2000-02-13 08:16:48 +00:00
Tor Lillqvist
196d48435e gdk/win32/gdkproperty-win32.c The assertions for GDK_IS_WINDOW were
2000-02-09  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkproperty-win32.c
* gdk/x11/gdkproperty-x11.c: The assertions for GDK_IS_WINDOW
were reversed.
2000-02-09 22:31:34 +00:00
Owen Taylor
7e7c6edad8 Initial import of gdk-pixbuf-based engine 2000-02-07 02:36:39 +00:00
Owen Taylor
1ac1bfb995 Initial revision 2000-02-07 02:36:39 +00:00
Michael Meeks
45cb0268b9 By order of jrb: const patch for various bits, io-gif.c fixup for
By order of jrb:
	const patch for various bits,
	io-gif.c fixup for animations.
2000-02-03 23:36:14 +00:00
Pablo Saratxaga
0f5251b51d updated lt.po 2000-02-03 18:05:00 +00:00
Kjartan Maraas
c37dde738b Updated Norwegian translation.
2000-02-04  Kjartan Maraas  <kmaraas@online.no>

	* no.po: Updated Norwegian translation.
2000-02-03 11:03:16 +00:00
Tor Lillqvist
a30c4b9e94 Argh, decided not to return a string that must be freed from
gtk_file_selection_get_filename after all, as that would
cause memory leaks in all apps that use it unless they
specifically checked fot the GTk+ version.

gtk_file_selection_get_filename returns the filename in the C
runtime encoding. It calls g_filename_from_utf8, but copies the
returned string to a static buffer, which is returned. I think
this is better than returning the result from g_filename_from_utf8
directly, which would mean all apps that use it would have to free
the return value. Or should this function care about this issue at
all? Maybe a new function with clearly defined semantics.
2000-02-03 01:42:51 +00:00
Tor Lillqvist
e57b1afa2b Use g_filename_to_utf8 to convert the font names Windows gives us from
2000-02-04  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkfont-win32.c (logfont_to_xlfd): Use
g_filename_to_utf8 to convert the font names Windows gives us from
whatever is the default codepage to UTF-8.
(gdk_font_load_internal) Use g_filename_from_utf8 for conversion
in the other direction.

* gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_values): Fix cut&paste
error in debugging output.

2000-02-02  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkwindow-win32.c (gdk_window_clear): Pass zero width
and height parameters to gdk_window_clear_area(). Not minus one.

2000-02-01  Tor Lillqvist  <tml@iki.fi>

* gtk/gtkfilesel.c: Use the g_filename_to_utf8 and
g_filename_from_utf8 functions (which were added a moment ago to
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
size buffers.

* gtk/gtkfilesel.h: Add comment about
gtk_file_selection_get_filename returning the filename in the C
runtime's encoding.

* README.win32
* gdk/gdk.def
* gdk/makefile.{cygwin,msc}
* gtk/gtk.def: Updates.

* gdk/gdkcursor-win32.c: Initialise refcount.
2000-02-03 01:19:03 +00:00
Pablo Saratxaga
e489f9c26c updated ca.po 2000-02-03 01:00:44 +00:00
Federico Mena Quintero
e9f75f6bd8 Added sanity check for width and height being >= 0. Also, do nothing if
2000-02-03  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/gdk-pixbuf-render.c
	(gdk_pixbuf_render_threshold_alpha): Added sanity check for width
	and height being >= 0.  Also, do nothing if either of them is
	zero.  Thanks to Ettore for pointing this out.
	(gdk_pixbuf_render_to_drawable): Likewise.
	(gdk_pixbuf_render_to_drawable_alpha): Likewise.
2000-02-02 10:05:57 +00:00
Federico Mena Quintero
51a0dc303d Removed debugging g_print. Thanks to John Sullivan <sullivan@eazel.com>
2000-02-02  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/io-gif.c (gif_get_lzw): Removed debugging g_print.
	Thanks to John Sullivan <sullivan@eazel.com> for the patch.

	* gdk-pixbuf/testpixbuf-drawable.c (configure_cb): Get a new area
	of the screen when the window is resized.  Thanks to David
	N. Welton <davidw@linuxcare.com> for pointing this out.
	Misc. cleanups to the rest of the file.
2000-02-02 05:47:57 +00:00
Damon Chaplin
4caf4dc787 rearranged a bit.
2000-02-03  Damon Chaplin  <damon@karuna.freeserve.co.uk>

	* gdk/gdk-sections.txt: rearranged a bit.

	* gdk/tmpl/event_structs.sgml: updated.

	* gtk/gtk-sections.txt: added INCLUDE tag for Private Info section.

	* gdk/tmpl/color_contexts.sgml: added note saying it is deprecated.
	* gdk/tmpl/dnd.sgml: added note saying read the GTK+ DnD docs.
2000-02-02 03:23:11 +00:00
Owen Taylor
cacec65e9e Add some sanity checks if the widget passed to gtk_drag_get_data() was not
Wed Feb  2 11:58:05 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_selection_received): Add some sanity
	checks if the widget passed to gtk_drag_get_data() was not the
	dest widget.
2000-02-01 19:05:18 +00:00
Damon Chaplin
50ab749f4b ran make templates.
2000-02-02  Damon Chaplin  <damon@karuna.freeserve.co.uk>

        * gdk/tmpl/*.sgml: ran make templates.

        * gdk/gdk-docs.sgml: rearranged sections.

        * gdk/tmpl/events.sgml: documented.

        * gdk/tmpl/general.sgml: documented.

        * gdk/tmpl/rgb.sgml: fixed a few '@' -> '#'.

        * gdk/gdk-sections.txt: rearranged a few bits, including moving
        GdkWChar and related functions from the input method section to the
        font section, and GdkCapStyle etc. from Drawing Primitives to GCs.

        * gdk/tmpl/images.sgml: documented.

        * gdk/tmpl/drawing.sgml: updated.

        * gdk/tmpl/regions.sgml: updated.

        * gdk/tmpl/input_contexts.sgml: documented.

        * gdk/tmpl/input_methods.sgml: documented.

        * gdk/tmpl/selections.sgml: changed xref to a link since Jade says
        a xref to a RefEntry is not supported.
2000-02-01 04:27:56 +00:00
Federico Mena Quintero
d201447174 gnome_init() does not call gdk_rgb_init(), so don't mention that it does
2000-02-01  Federico Mena Quintero  <federico@helixcode.com>

	* doc/tmpl/rendering.sgml: gnome_init() does not call
	gdk_rgb_init(), so don't mention that it does in the
	documentation.  Thanks to Alexander Kruuse <kruuse@home.se> for
	pointing this out.
2000-02-01 00:42:39 +00:00
Tor Lillqvist
08593d3007 Handle zh_CN.GB2312.
2000-02-01  Tor Lillqvist  <tml@iki.fi>

* makefile.cygwin: Handle zh_CN.GB2312.
2000-01-31 20:13:14 +00:00
Havoc Pennington
3cfe378ad1 no testpixbuf-foo target
2000-01-31  Havoc Pennington  <hp@redhat.com>

* gdk-pixbuf/Makefile.am (noinst_PROGRAMS): no testpixbuf-foo target
2000-01-30 23:28:41 +00:00
Owen Taylor
e63fd0e692 Fix from Peter Wainwright to fix 4a => 4a scaling.
Mon Jan 31 12:38:50 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/pixops.c (scale_line): Fix from Peter
	Wainwright to fix 4a => 4a scaling.
2000-01-30 19:46:23 +00:00
Yuan-Chung Cheng
1cfa0f5a73 Added po file from TurboLinux Chinese Develop Team. 2000-01-30 12:21:05 +00:00
Havoc Pennington
a3a4a60c34 forgot to cvs add this 2000-01-29 22:27:09 +00:00
Havoc Pennington
4d48b106f0 use gdk_cursor_unref instead of destroy
2000-01-30  Havoc Pennington  <hp@pobox.com>

	* gtk/testgtk.c (set_cursor): use gdk_cursor_unref instead of
		destroy

			* gdk/gdkimage.c (gdk_image_ref): image wasn't being returned

				* gdk/gdkprivate.h: declare
_gdk_cursor_destroy which is then
	implemented in platform-specific code

		* gdk/Makefile.am (gdk_c_sources): add gdkcursor.c

			* gdk/x11/gdkcursor-x11.c (gdk_cursor_destroy):
rename with an
	underscore in front

		* gdk/win32/gdkcursor-win32.c (gdk_cursor_destroy):
			put an underscore in front

				* gdk/gdkcursor.c: new file, implements
					gdk_cursor_ref/gdk_cursor_unref

						* gdk/gdkcursor.h: Refcount GdkCursor

							* gdk/gdkcompat.h
(gdk_cursor_destroy): compat
2000-01-29 22:26:41 +00:00
Mark Crichton
7d39971922 I dated telsa to break gdk-pixbuf.
I dated telsa to break gdk-pixbuf.

I didn't think she can do it.

She somehow did, with Alan's help

Fixed it (it was a build bug)

Now, it should be 1000% telsa-proofed.

Mark
2000-01-29 01:33:16 +00:00
Tor Lillqvist
bcfafb624a gdk/gdkwindow.h Remove prototypes for renamed functions.
2000-01-29  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkwindow.h
* gdk/gdkpixmap.h: Remove prototypes for renamed functions.
2000-01-28 12:16:26 +00:00
Pablo Saratxaga
7a9ae74571 update-po 2000-01-27 16:28:53 +00:00
Pablo Saratxaga
bb03ba3d31 added Lithuanian file 2000-01-27 16:26:44 +00:00
Owen Taylor
016a451524 Fix
Tue Jan 25 11:43:21 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkinvisible.h (struct _GtkInvisible[Class]): Fix
2000-01-25 16:47:19 +00:00
Owen Taylor
e91d0a6bf2 Added lib/gtk+/include/* to %files (bug #5178 - Peter Wainright)
Sun Jan 23 20:28:24 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk+.spec.in: Added lib/gtk+/include/* to %files
	(bug #5178 - Peter Wainright)

	* gtk/Makefile.am (gtk_public_h_sources): Add gtkcompat.h
	so that it will be installed.
	(bug #4889 - "david d `zoo' zuhn" <zoo@mnnr.org>)
2000-01-24 01:38:17 +00:00
Arturo Espinosa
a74de76f94 0.5.0 - Federico 2000-01-22 23:29:21 +00:00
Federico Mena Quintero
706e553eb7 Bumped version number to 0.5.0.
2000-01-22  Federico Mena Quintero  <federico@helixcode.com>

	* configure.in: Bumped version number to 0.5.0.

	* gdk-pixbuf/pixops/timescale.c (dump_array): Removed unused variable.
	(main): Return 0.

	* gdk-pixbuf/pixops/pixops.c (pixops_composite_color_nearest): Put
	parentheses around + in a shift to remove a compiler warning.
	(pixops_process): Likewise.

	Patch from Ross Golder <rossigee@bigfoot.com> to create an RPM
	specfile:

	* configure.in: Added gdk-pixbuf.spec to AC_OUTPUT.

	* Makefile.am (EXTRA_DIST): Added gdk-pixbuf.spec.in
2000-01-22 23:13:02 +00:00
Federico Mena Quintero
72ee1f0c50 Removed the x_set and y_set arguments. Now they are always on and start
2000-01-22  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/gnome-canvas-pixbuf.c (PixbufPrivate): Removed the
	x_set and y_set arguments.  Now they are always on and start with
	defaults of 0.0 in units.
	(gnome_canvas_pixbuf_class_init): Likewise.
	(gnome_canvas_pixbuf_set_arg): Likewise.
	(gnome_canvas_pixbuf_get_arg): Likewise.
	(compute_viewport_affine): Likewise; always use the priv->x and
	priv->y fields.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Modified to reflect the
	removal of the x_set/y_set arguments.
2000-01-22 21:18:17 +00:00
Federico Mena Quintero
bb8a563730 Return the same pixbuf as the input parameter.
2000-01-21  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_ref): Return the same pixbuf
	as the input parameter.

	* gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_animation_ref):
	Return the same animation as the input parameter.
2000-01-21 22:54:44 +00:00
Owen Taylor
2f27c99f36 .cvsignore additions 2000-01-21 21:57:14 +00:00
Owen Taylor
65ae04e137 Make the @detail argument for the GtkStyleClass vtable const.
Fri Jan 21 16:29:28 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.[ch] docs/Changes-1.4.txt: Make the @detail argument
	for the GtkStyleClass vtable const.

	* gtk/gtkitemfactory.[ch] docs/Changes-1.4.txt: Make GtkPrintFunc
	take a const string argument like GtkTranslateFunc. This will
	require changes in use code.
2000-01-21 21:53:36 +00:00
Owen Taylor
997868b7e2 Make GtkPrintFunc take a const string argument like GtkTranslateFunc. This
Fri Jan 21 16:16:29 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkitemfactory.[ch] docs/Changes-1.4.txt: Make GtkPrintFunc
	take a const string argument like GtkTranslateFunc. This will
	require changes in use code.
2000-01-21 21:21:02 +00:00
Damon Chaplin
5d9b2ed63f Started.
* gtk/tmpl/gtkscrollbar.sgml: Started.
2000-01-19 20:14:49 +00:00
Tor Lillqvist
cf51b4790e The correct semantics (to mimic the X11 backend, which just calls
2000-01-19  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkwindow-win32.c (gdk_window_clear_area): The correct
semantics (to mimic the X11 backend, which just calls XClearArea)
is to check for zero width (and height), and in that case use the
window's width minus x (height minus y). This fixes for instance
some redraw problems with gtkclist, which were easily noticeable
in the gtk file selection widget.

(gdk_window_new): Don't set WS_EX_TOPMOST for dialog
windows.
2000-01-18 22:03:59 +00:00
Elliot Lee
b3a94afdd1 Don't link against libgnomecanvaspixbuf.la
2000-01-16  Elliot Lee  <sopwith@redhat.com>

* gdk-pixbuf/Makefile.am: Don't link against libgnomecanvaspixbuf.la
2000-01-17 20:25:16 +00:00
Elliot Lee
f4e1d05613 Shut up Federico.
Shut up Federico.
2000-01-17 20:15:05 +00:00
Elliot Lee
2ecc032847 and again, with feeling 2000-01-17 18:35:26 +00:00
Elliot Lee
be1161a97b Don't link libgdk_pixbuf against libgnomecanvaspixbuf
Don't link libgdk_pixbuf against libgnomecanvaspixbuf
2000-01-17 18:29:29 +00:00
Federico Mena Quintero
4f0f733060 Removed the broken --enable-canvas-pixbuf option. Added the stuff
2000-01-16  Federico Mena Quintero  <federico@helixcode.com>

	* configure.in: Removed the broken --enable-canvas-pixbuf option.
	Added the stuff necessary to substitute the variables in
	gnomecanvaspixbufConf.sh.in.

	* gnomecanvaspixbufConf.sh.in: New gnome-config handler for the
	tiny gnomecanvaspixbuf library.

	* Makefile.am: Build gnomecanvaspixbufConf.sh.

	* gdk-pixbuf/Makefile.am: Create a libgnomecanvaspixbuf and only
	build it if gdk-pixbuf is being built outside of gnome-libs.

	* doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_render_pixmap_and_mask().

	* gdk-pixbuf/gdk-pixbuf-render.c
	(gdk_pixbuf_render_pixmap_and_mask): Renamed from
	gdk_pixbuf_render_pixmap().  Do not create the mask if it is not
	needed, and do not use a clipping mask when rendering the pixmap.
	Tweaked documentation a little.

	* HACKING: New file with hacking policies for the gdk-pixbuf
	module.

	* doc/Makefile.am (tmpl_sources): Added missing backslash.

	* doc/Makefile.am: Use gnomecanvaspixbuf in gnome-config when
	scanning for docstrings.

	* gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_copy_area): Made sanity
	checks more stringent.  Removed "gint" abominations.  Made
	documentation consistent with the rest of the functions.

	* doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_copy_area() to the
	utilities section.
2000-01-17 01:48:21 +00:00
Federico Mena Quintero
ef80871e0a New file with hacking policies for the gdk-pixbuf module.
2000-01-15  Federico Mena Quintero  <federico@helixcode.com>

	* HACKING: New file with hacking policies for the gdk-pixbuf
	module.
2000-01-15 23:50:31 +00:00
Tor Lillqvist
c3491b7497 configure.in gdk/Makefile.am gdk/x11/Makefile.am Small fixes, thanks to
2000-01-13  Tor Lillqvist  <tml@iki.fi>

* configure.in
* gdk/Makefile.am
* gdk/x11/Makefile.am
* gdk/win32/Makefile.am: Small fixes, thanks to Peter Wainwright
(bug #5177).
* gdk/win32/gdkcc-win32.c: Reintroduce, to be thrown
out later.
2000-01-15 16:04:54 +00:00
Jonathan Blandford
1f48e45e54 new function to let you create a gdk_pixmap from a gdk_pixbuf.
2000-01-14  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-render.c (gdk_pixbuf_render_pixmap): new
	function to let you create a gdk_pixmap from a gdk_pixbuf.
2000-01-14 20:59:18 +00:00
Cody Russell
7bfdf70ae1 Added gdk_pixbuf_copy_area() to gdk-pixbuf-utils.c and gdk-pixbuf.h.
Removed some unused variable warnings in gdk-pixbuf-drawable.c.
2000-01-13 07:24:49 +00:00
Jacob Berkman
b09b772727 add gdk-pixbuf.m4 to EXTRA_DIST
2000-01-11  Jacob Berkman  <jacob@helixcode.com>

* Makefile.am (EXTRA_DIST): add gdk-pixbuf.m4 to EXTRA_DIST
2000-01-12 02:47:41 +00:00
Vladimir Vuksan
eb03ba506a Changes 2000-01-11 22:07:32 +00:00
Jacob Berkman
64f06bf079 added to
000-01-11  Jacob Berkman  <jacob@helixcode.com>

* gdk-pixbuf/pixops/Makefile.am (INCLUDES): added
 to
2000-01-11 17:31:17 +00:00
Elliot Lee
d961146335 Build a libcanvas_pixbuf.
* configure.in, gdk-pixbuf/Makefile.am: Build a libcanvas_pixbuf.
2000-01-10 21:28:03 +00:00
Elliot Lee
0bce8ff54b No more libart/gdk-pixbuf as part of gnome-libs
* No more libart/gdk-pixbuf as part of gnome-libs

* Everything: Install header files & *Conf.sh in new per-interface-version locations.
Include interface version in library names.
2000-01-10 19:17:42 +00:00
Tor Lillqvist
82abdad4db Ignore WM_MOVE for iconified or invisible windows. This fixes various
2000-01-09  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c (gdk_event_translate): Ignore
WM_MOVE for iconified or invisible windows. This fixes various
problems when minimising windows. Thanks to Bernd Herd.
2000-01-09 18:57:20 +00:00
Damon Chaplin
4be016b20b update from Paul Schifferer <isengard@geocities.com>
2000-01-08  Damon Chaplin  <damon@karuna.freeserve.co.uk>

	* gtk/tmpl/gtkclist.sgml: update from Paul Schifferer
	<isengard@geocities.com>
2000-01-08 21:43:42 +00:00
Owen Taylor
6aba663522 Fixed src_channels/dest_channels confusion. (Again caught by Tomas Ogren's
2000-01-05  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/pixops.c: Fixed src_channels/dest_channels
	confusion. (Again caught by Tomas Ogren's Purify)
2000-01-07 19:48:37 +00:00
Jonathan Blandford
00b598d267 comment out debugging printing. remove memory_leak
2000-01-07  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-xform.c (gdk_pixbuf_rotate): comment out
	debugging printing.
	* gdk-pixbuf/io-gif.c (gif_get_lzw): remove memory_leak
2000-01-07 19:18:54 +00:00
Jonathan Blandford
84c85a1a11 Added progressive animation loading. Added progressive animation loading.
2000-01-07  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-io.c: Added progressive animation loading.
	* gdk-pixbuf/gdk-pixbuf-io.h: Added progressive animation loading.
	* gdk-pixbuf/gdk-pixbuf-loader.c: Added progressive animation
	loading.
	* gdk-pixbuf/gdk-pixbuf-loader.h: Added progressive animation
	loading.
	* gdk-pixbuf/io-gif.c (image_load_increment): I think the
	ref-counting mess is finally fixed.  Added progressive animation
	loading.

I think progressive animation loading all works now.  It's all
documented too, if anyone wants to play with it.
2000-01-07 18:29:13 +00:00
Jonathan Blandford
0e86d28026 much longer long description added.
2000-01-07  Jonathan Blandford  <jrb@redhat.com>

	* doc/tmpl/gdk-pixbuf-loader.sgml: much longer long description
	added.
2000-01-07 16:51:10 +00:00
Owen Taylor
4bd671a87b Fix computation of end of run indices.
2000-01-05  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/pixops.c (pixops_process): Fix computation of end of run indices.

	* gdk-pixbuf/pixops/pixops.c: Fix double increments when dest_channels == 4.
	  (Pointed out by Tomas Ogren)
2000-01-07 15:24:00 +00:00
Mark Crichton
519ee0665d Fixed bug sent directly to me. Basically, we weren't checking a failure
Fixed bug sent directly to me.  Basically, we weren't checking a failure case
from load_module, and returning junk to the application.  Bad.

See ChangeLog for more info.
2000-01-06 20:19:30 +00:00
Elliot Lee
a0a1584106 Link with -lm (to get 'ceil' function)
* gdk-pixbuf/pixops/Makefile.am: Link with -lm (to get 'ceil' function)
2000-01-06 02:53:13 +00:00
Owen Taylor
65de04cdb8 Added scaling functions into gtk-doc framework.
2000-01-05  Owen Taylor  <otaylor@redhat.com>

	* doc/Makefile.am doc/gdk-pixbuf-sections.txt
	  doc/gdk-pixbuf.sgml doc/tmpl/scaling.sgml:
	Added scaling functions into gtk-doc framework.

	* gdk-pixbuf/gdk-pixbuf-scale.c: Documentation fixes.

	* gdk-pixbuf/testpixbuf-scale.c (expose_cb): Simplify a bit.

	* gdk-pixbuf/pixops/pixops.c (pixops_composite_color): Return
	immediately if scale_x or scale_y is 0.
2000-01-06 01:08:10 +00:00
Owen Taylor
bba95de158 quick fix for initializing arrays in benchmark.
2000-01-05  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/timescale.c: quick fix for initializing
	arrays in benchmark.
2000-01-05 23:57:02 +00:00
Jonathan Blandford
8f48c4b3cd Change the order of the update func to make it more compatible with the
2000-01-05  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-io.h: Change the order of the update func
	to make it more compatible with the rest of GTK.  Added animation
	framework for progressive loading.

	* gdk-pixbuf/io-bmp.c (image_begin_load): Modified to handle new
	system.
	* gdk-pixbuf/io-ico.c (image_begin_load): ditto
	* gdk-pixbuf/io-png.c (image_begin_load): ditto
	* gdk-pixbuf/io-ras.c (image_begin_load): ditto
	* gdk-pixbuf/io-jpeg.c (image_begin_load): ditto
	* gdk-pixbuf/io-pnm.c (image_begin_load): ditto
	* gdk-pixbuf/io-tiff.c (image_begin_load): ditto
	* gdk-pixbuf/io-gif.c (image_begin_load): ditto
2000-01-05 23:06:13 +00:00
Owen Taylor
cc76a598ba Added a README with a TODO and some explainations of the algorithms.
2000-01-05  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/README: Added a README with a TODO
	and some explainations of the algorithms.

	* gdk-pixbuf/testpixbuf-scale.c: Set a background pixmap of None
	to reduce flashing when resizing.
2000-01-05 22:49:43 +00:00
Owen Taylor
33e963e7af Directory full of pixel data scaling code that will eventually migrate
2000-01-05  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/pixops/: Directory full of pixel data scaling
	code that will eventually migrate into libart.

	* configure.in acconfig.h: Add checks for MMX compiler support

	* gdk-pixbuf/gdk-pixbuf.h gdk-pixbuf/gdk-pixbuf-scale.c:
	Nice wrapper routines for the code in pixops that operate
	on pixbufs instead of raw data.

	* gdk-pixbuf/testpixbuf-scale: Test program for scaling
	routines.
2000-01-05 21:33:58 +00:00
Jonathan Blandford
2bb20aee8b Documentation changes.
2000-01-05  Jonathan Blandford  <jrb@redhat.com>

	* doc/tmpl/animation.sgml: Documentation changes.
2000-01-05 19:46:15 +00:00
Tor Lillqvist
273089af2a Fix copy&paste error: Call the backend's draw_lines method, not
2000-01-05  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkdraw.c (gdk_draw_lines): Fix copy&paste error: Call the
backend's draw_lines method, not draw_points.
2000-01-05 17:05:30 +00:00
Owen Taylor
0a60e2963c Missing </listitem>, remove extra <para> dos2unix missing </para>
Wed Jan  5 10:23:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/tmpl/gtkprogress.sgml: Missing </listitem>, remove extra <para>
	* gtk/tmpl/gtkobject.sgml: dos2unix
	* gtk/tmpl/gtkcurve.sgml: missing </para>
	* gtk/tmpl/gtkarg.sgml: dos2unix, missing </para>
	* gtk/tmpl/gtkcolorsel.sgml: Missing </listitem>'s
	* gtk/tmpl/gtksignal.sgml (signal): dos2unix, missing </para>'s
	* gtk/tmpl/gtkmarshal.sgml: Missing </refsect2>
2000-01-05 15:04:23 +00:00
Jesus Bravo Alvarez
ad41b4ff94 Updated Galician translation 2000-01-04 01:07:53 +00:00
Kjartan Maraas
19fd09725a A little script that lets people update the .pot file without makefiles
2000-01-04  Kjartan Maraas  <kmaraas@online.no>

	* update.sh: A little script that lets people
	update the .pot file without makefiles etc.
2000-01-03 23:55:33 +00:00
Tor Lillqvist
fe3cc85202 Add credits for finding the bug fixed a couple of days ago. 2000-01-02 15:53:48 +00:00
Tor Lillqvist
d475580348 Clean up some more leftovers from before Owen's reorganization: Don't have
2000-01-02  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c: Clean up some more leftovers from
before Owen's reorganization: Don't have queued_events and
queued_tail statics in this file, but use gdk_queued_events and
gdk_queued_tail. This makes exposure event compression work again.

(gdk_WindowProc): Comment out a posting of gdk_ping_msg, doesn't
seem to be needed?
2000-01-02 11:03:12 +00:00
Federico Mena Quintero
6e3522ab2c Added reference counting to animations. A web browser may want to share a
2000-01-01  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/gdk-pixbuf.h (GdkPixbufAnimation): Added reference
	counting to animations.  A web browser may want to share a single
	copy of an animated GIF if it appears multiple times in a web
	page, for example.

	* gdk-pixbuf/gdk-pixbuf-animation.c: New file.  Moved the
	animation functions here.
	(gdk_pixbuf_animation_new_from_file): Prettified.  Return a NULL
	animation if the loader does not support multiframe loading and
	the single-frame load returned NULL.  Check that the filename is
	not NULL.  Updated inline documentation.
	(gdk_pixbuf_animation_ref): New function.
	(gdk_pixbuf_animation_unref): New function.
	Removed gdk_pixbuf_animation_destroy() in favor of reference
	counting.

	* gdk-pixbuf/gdk-pixbuf-io.c (gdk_pixbuf_new_from_file):
	Prettified.  Made ref_count assertion more paranoid.  Check that
	the filename is not NULL.
	(gdk_pixbuf_get_module): Use guchar * and guint for buffer and
	size, respectively.
	(gdk_pixbuf_new_from_xpm_data): Changed the "data" argument to
	const char **.

	* gdk-pixbuf/io-gif.c (image_load_animation): Create the animation
	with a reference count of 1.

	* gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_SOURCES): Added
	gdk-pixbuf-animation.c.

	* doc/tmpl/animation.sgml: Populated.  It is still missing a
	description of the overlay modes.

	* doc/gdk-pixbuf-sections.txt: Added the animation section.  Moved
	the canvas item section to the end, as it will be moved later to
	gnome-libs.

	* doc/gdk-pixbuf.sgml: Added the animation section.

	* doc/Makefile.am (tmpl_sources): Added tmpl/animation.sgml.
2000-01-02 03:59:22 +00:00
Tor Lillqvist
605c562ffb gdk/win32/gdkprivate-win32.h gdk/win32/gdkevents-win32.c
1999-12-30  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkevents-win32.c
* gdk/win32/gdkinput-win32.c
* gdk/win32/gdkwindow-win32.c: Remove the superfluous
extension_events field in the GdkWindowWin32Data struct. Use only
the extension_events field in GdkWindowPrivate. Previously one was
set, and the other one tested, which broke tablet functionality.
1999-12-30 00:07:48 +00:00
Tor Lillqvist
68a6e7befb If we don't HAVE_XCONVERTCASE we must #include gdkkeysyms.h to get the
1999-12-30  Tor Lillqvist  <tml@iki.fi>

* gdk/gdk.c: If we don't HAVE_XCONVERTCASE we must #include
gdkkeysyms.h to get the GDK_* keysym constants that are needed by
gdk_keyval_convert_case(). Otherwise, gdk_keyval_convert_case()
doesn't do anything.

* gdk/gdk.def: Add gdk_xid_table_insert.
1999-12-29 23:08:52 +00:00
Peter Teichman
3cc0db6440 add $(LIBTIFF) to libpixbuf_tiff_la_LIBADD, proxying for mmarker. This
* gdk-pixbuf/Makefile.am (libpixbuf_tiff_la_LIBADD): add
        $(LIBTIFF) to libpixbuf_tiff_la_LIBADD, proxying for
	mmarker. This closes bug #4676.
1999-12-27 05:00:42 +00:00
Havoc Pennington
e4ce74f5b7 Stuff that should have been set to NULL here (specifically
1999-12-23  Havoc Pennington  <hp@pobox.com>

	* gdk-pixbuf/io-gif.c (image_load): Stuff that should have been
		set to NULL here (specifically context->animation) was not being
			set to NULL. use g_new0() to alloc the struct.
1999-12-24 02:21:33 +00:00
Fatih Demir
39e00cbdf2 Added the Turkish translation . 1999-12-23 14:49:16 +00:00
Jonathan Blandford
8c510f2ecf finished work to make animated gifs load correctly. Progressive loading
1999-12-20  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/io-gif.c: finished work to make animated gifs load
	correctly.  Progressive loading needs some work, but that all
	needs doing from the gdk-pixbuf-loader end, not here.
1999-12-20 22:51:05 +00:00
Damon Chaplin
5ea5e527cd GTK+ General section started, from Torsten Landschoff <torsten@debian.org>
GTK+ General section started, from Torsten Landschoff <torsten@debian.org>
1999-12-19 21:08:48 +00:00
Tor Lillqvist
0733eb725d When handling a single character (text length == 1), don't handle it as if
1999-12-18  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkfont-win32.c (gdk_text_size, gdk_text_extents):
When handling a single character (text length == 1), don't handle
it as if it was UTF-8.
1999-12-18 02:03:13 +00:00
Jonathan Blandford
7b93fcab55 shut up, CVS 1999-12-17 21:43:39 +00:00
Jonathan Blandford
d3a63c533a forgot this 1999-12-17 21:43:04 +00:00
Jonathan Blandford
d4984ede33 moved the file here. It seems natural to put this function here, as that's
1999-12-17  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-io.c (gdk_pixbuf_animation_new_from_file):
	moved the file here.  It seems natural to put this function here,
	as that's where the gdk_pixbuf_new_from_file function is, but it's
	still a little convoluted.  The source files might be played with
	in a bit.
1999-12-17 21:42:47 +00:00
Vladimir Vuksan
cd5f174a7e Changes 1999-12-17 05:59:52 +00:00
Federico Mena Quintero
8dae68fbb3 Added notice about initializing GdkRGB before using the GdkPixbuf
1999-12-16  Federico Mena Quintero  <federico@redhat.com>

	* doc/tmpl/rendering.sgml: Added notice about initializing GdkRGB
	before using the GdkPixbuf rendering functions.  Thanks to Joe
	Shaw <joe@off.net> for pointing this out.
1999-12-17 01:21:28 +00:00
Elliot Lee
24c7df792f make it build when gdk-pixbuf is not already installed 1999-12-16 16:35:23 +00:00
Jonathan Blandford
73fc0b0ecd shut up, CVS 1999-12-13 22:49:48 +00:00
Fatih Demir
48fbaf72b5 Fixed tr.po .
Fixed tr.po .
1999-12-13 11:49:34 +00:00
Federico Mena Quintero
f66ae10389 Use a conditional to see whether to link $(GNOME_LIBS) or not.
1999-12-12  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_LDFLAGS): Use a
	conditional to see whether to link $(GNOME_LIBS) or not.
1999-12-12 06:38:57 +00:00
Federico Mena Quintero
6c33d4dcec Renamed arguments to width_in_pixels, height_in_pixels, x_in_pixels,
1999-12-13  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gnome-canvas-pixbuf.c
	(gnome_canvas_pixbuf_class_init): Renamed arguments to
	width_in_pixels, height_in_pixels, x_in_pixels, y_in_pixels, for
	consistency with the new canvas.
	(PixbufPrivate): Do the same renaming in the structure fields, for
	consistency.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Updated for new argument names.
1999-12-12 06:38:57 +00:00
Federico Mena Quintero
715902025d Use a conditional to see whether to link $(GNOME_LIBS) or not.
1999-12-12  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_LDFLAGS): Use a
	conditional to see whether to link $(GNOME_LIBS) or not.
1999-12-12 06:38:57 +00:00
Tor Lillqvist
7df755b181 More tweaks. Check only if at least one of those Unicode subrange bits we
1999-12-11  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkfont-win32.c (check_unicode_subranges): More
tweaks. Check only if at least one of those Unicode subrange bits
we care for is set. If no code page bits are set, guess (wildly)
based on the charset.
1999-12-12 01:32:53 +00:00
Tor Lillqvist
4f5b014220 gdk/Makefile.am Distribute Win32 files.
1999-12-11  Tor Lillqvist  <tml@iki.fi>

* gdk/Makefile.am
* gdk/win32/Makefile.am: Distribute Win32 files.

* gdk/makefile.msc: New file.

* gdk/gdk.c (gdk_arg_context_parse): Fix gccism (no statement
after label).

* gdk/win32/makefile.msc: Update.
1999-12-11 23:41:46 +00:00
Tor Lillqvist
913cb7cd85 Distribute README.win32.
1999-12-11  Tor Lillqvist  <tml@iki.fi>

* Makefile.am: Distribute README.win32.

* gdk/Makefile.am
* gdk/win32/Makefile.am: Distribute gdk/win32.
1999-12-11 23:18:12 +00:00
Tor Lillqvist
9c00803e19 Must mark also gdk_error_warnings and gdk_error_code as GDKVAR, as they
1999-12-11  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkprivate.h: Must mark also gdk_error_warnings and
gdk_error_code as GDKVAR, as they are referred outside GDK.

* gdk/win32/gdkinput-win32.c: Remove debugging leftover.

* gdk/win32/gdkwindow-win32.c (gdk_window_new): Assure title is
non-NULL.

* gtk/gtkdnd.c
* gtk/gtklayout.c
* gtk/gtkplug.c
* gtk/gtkselection.c
* gtk/gtksocket.c
* gtk/gtkwindow.c: Include x11/gdkx.h *or* win32/gdkwin32.c as
appropriate. There must be a cleaner way to handle this?

* gtk/gtkrc.c: Must include windows.h on Win32.

* gtk/testgtk.c: No need to include gdkx.h.

* gtk/makefile.cygwin: Correct invokation of genmarshal.pl.
1999-12-11 23:04:55 +00:00
Jonathan Blandford
d723183795 thinking about the new loading API.
1999-12-10  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-io.h: thinking about the new loading API.

	* gdk-pixbuf/gdk-pixbuf-drawable.c (gdk_pixbuf_get_from_drawable):
	make a warning go away.
1999-12-11 00:21:27 +00:00
Jonathan Blandford
0b0ebee941 make a warning go away.
1999-12-10  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-drawable.c (gdk_pixbuf_get_from_drawable):
	make a warning go away.

	* gdk-pixbuf/gdk-pixbuf.h: added new prototypes for animations.

	* gdk-pixbuf/gdk-pixbuf-loader.h: added new prototypes for
	animations.
1999-12-10 23:15:20 +00:00
Michael Zucchi
a44d2e2e2c Enable gdk_pixbuf_get_from_drawable() api call.
1999-12-09  Michael Zucchi  <zucchi@zedzone.mmc.com.au>

        * gdk-pixbuf/gdk-pixbuf.h: Enable gdk_pixbuf_get_from_drawable()
        api call.
1999-12-09 02:27:38 +00:00
Michael Zucchi
757fc193c4 Should now handle all formats, slow routine used where optimised
ones can't be.

1999-12-09  Michael Zucchi  <zucchi@zedzone.mmc.com.au>

        * gdk-pixbuf/gdk-pixbuf-drawable.c
        (convert_real_slow): New function - should convert ANY visual/data
        format properly, but it aint fast.  Used as a fallback when an
        optimised routine wont match.
        (rgbconvert): Do very specific tests on the data format to verify
        properly if the optimised version will do, otherwise use the
        fallback function for all other data formats.
1999-12-09 01:50:18 +00:00
Michael Zucchi
6b23587aef Filled in body of function. (rgbconvert): Added GdkColormap parameter, and
1999-12-09  Michael Zucchi  <zucchi@zedzone.mmc.com.au>

	* gdk-pixbuf/gdk-pixbuf-drawable.c (gdk_pixbuf_get_from_drawable):
	Filled in body of function.
	(rgbconvert): Added GdkColormap parameter, and to all conversion
	functions also.

	* gdk-pixbuf/Makefile.am: Re-enabled building of
	textpixbuf-drawable.

	* gdk-pixbuf/testpixbuf-drawable.c (main): Changed to use
	gdk_pixbuf_get_from_drawable().
1999-12-09 00:43:53 +00:00
Arjan van de Ven
880f5ade6b Fixed the red/green/red bug on two occasions. Changed from the custom
1999-12-08  Arjan van de Ven
<arjan@fenrus.demon.nl>

* gdk-pixbuf/gdk-pixbuf-drawable.c : Fixed
  the red/green/red bug on two occasions.
* gdk-pixbuf/io-ras.c: Changed from the custom
  be32_to_cpu function to the generic glib one.
1999-12-08 21:37:17 +00:00
Federico Mena Quintero
c6f25c2de8 Fix includes. (gdk_pixbuf_get_from_drawable): Implemented the zillion
1999-12-08  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-drawable.c: Fix includes.
	(gdk_pixbuf_get_from_drawable): Implemented the zillion sanity
	checks and API definition.  The body needs filling in and it needs
	to do the Right Thing(tm) for pixmaps plus the given colormap and
	windows and their own colormaps.

	* gdk-pixbuf/gdk-pixbuf.h: Added prototype for
	gdk_pixbuf_get_from_drawable().  Killed gdk-pixbuf-drawable.h.

	* gdk-pixbuf/Makefile.am: Re-added the gdk-pixbuf-drawable sources.

	* doc/tmpl/from-drawables.sgml: Populated.

	* doc/gdk-pixbuf.sgml: Added the from-drawables section.

	* doc/Makefile.am (tmpl_sources): Added tmpl/from-drawables.sgml.

	* doc/gdk-pixbuf-sections.txt: Added a section for getting pixbufs
	from drawables.
1999-12-08 21:17:53 +00:00
Federico Mena Quintero
a70843bab2 Renamed arguments to width_in_pixels, height_in_pixels, x_in_pixels,
1999-12-13  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gnome-canvas-pixbuf.c
	(gnome_canvas_pixbuf_class_init): Renamed arguments to
	width_in_pixels, height_in_pixels, x_in_pixels, y_in_pixels, for
	consistency with the new canvas.
	(PixbufPrivate): Do the same renaming in the structure fields, for
	consistency.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Updated for new argument names.
1999-12-08 21:17:52 +00:00
Federico Mena Quintero
e7b2454ce3 Fix includes. (gdk_pixbuf_get_from_drawable): Implemented the zillion
1999-12-08  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-drawable.c: Fix includes.
	(gdk_pixbuf_get_from_drawable): Implemented the zillion sanity
	checks and API definition.  The body needs filling in and it needs
	to do the Right Thing(tm) for pixmaps plus the given colormap and
	windows and their own colormaps.

	* gdk-pixbuf/gdk-pixbuf.h: Added prototype for
	gdk_pixbuf_get_from_drawable().  Killed gdk-pixbuf-drawable.h.

	* gdk-pixbuf/Makefile.am: Re-added the gdk-pixbuf-drawable sources.

	* doc/tmpl/from-drawables.sgml: Populated.

	* doc/gdk-pixbuf.sgml: Added the from-drawables section.

	* doc/Makefile.am (tmpl_sources): Added tmpl/from-drawables.sgml.

	* doc/gdk-pixbuf-sections.txt: Added a section for getting pixbufs
	from drawables.
1999-12-08 21:17:52 +00:00
Birger Langkjer/danish translations
71223ba41b Modified Files: balsa/po/da.po bonobo/po/da.po gedit/po/da.po
Modified Files:
 	balsa/po/da.po bonobo/po/da.po gedit/po/da.po
 	gfloppy/gfloppy.desktop gfloppy/po/da.po ggv/po/da.po
 	gtk+/po/da.po
1999-12-08 20:20:11 +00:00
Federico Mena Quintero
a56ec79881 Added clarification about reference counting for GdkPixbuf structures.
1999-12-07  Federico Mena Quintero  <federico@redhat.com>

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Added clarification about
	reference counting for GdkPixbuf structures.
1999-12-08 05:18:41 +00:00
Martin Baulig
4460746adc Conditionally include $(GNOME_LIBS) here.
1999-12-07  Martin Baulig  <martin@home-of-linux.org>

	* gdk-pixbuf/Makefile.am (testpixbuf_LDADD): Conditionally
	include $(GNOME_LIBS) here.
1999-12-07 18:56:46 +00:00
Arjan van de Ven
f2b649691a Added missing "include <string.h>" to: gdk-pixbuf/io-ras.c
1999-12-05  Arjan van de Ven
<arjan@fenrus.demon.nl>

Added missing "include <string.h>" to:
* gdk-pixbuf/io-ras.c
* gdk-pixbuf/io-bmp.c
* gdk-pixbuf/io-ico.c
1999-12-07 18:17:01 +00:00
Tor Lillqvist
6817444e14 Fix string measurement code. For now, the rbearing is set to the same as
1999-12-07  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkfont-win32.c: Fix string measurement code. For now,
the rbearing is set to the same as the width, but this should be
fixed.
1999-12-06 23:48:08 +00:00
Federico Mena Quintero
cd1870cc83 Renamed arguments to width_in_pixels, height_in_pixels, x_in_pixels,
1999-12-13  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gnome-canvas-pixbuf.c
	(gnome_canvas_pixbuf_class_init): Renamed arguments to
	width_in_pixels, height_in_pixels, x_in_pixels, y_in_pixels, for
	consistency with the new canvas.
	(PixbufPrivate): Do the same renaming in the structure fields, for
	consistency.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Updated for new argument names.
1999-12-06 18:57:03 +00:00
Federico Mena Quintero
e506cf37cb Patch from Arjan to fix an initializer.
1999-12-06  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-io.c (file_formats): Patch from Arjan to
	fix an initializer.
1999-12-06 18:57:03 +00:00
Federico Mena Quintero
8a02827e39 Add back $(GNOME_LIBS). This must compile outside of gnome-libs. If you
1999-12-05  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/Makefile.am (testpixbuf_LDADD): Add back
	$(GNOME_LIBS).  This must compile outside of gnome-libs.  If you
	want, send me a patch to do the conditional stuff properly.
	Otherwise, please read the GNOME Programming Guidelines,
	especially the "CVS policies" section.
1999-12-06 00:22:29 +00:00
Tor Lillqvist
0f5c8e857c New function. Guesstimate what Unicode subranges a font covers based on
1999-12-06  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkfont-win32.c (check_unicode_subranges): New
function. Guesstimate what Unicode subranges a font covers based
on the codepages. Windows tells us it covers. This will hopefully
help those Windows versions or fonts that don't give us any useful
Unicode subrange information with GetTextCharsetInfo. Call this
function in gdk_font_load_internal.

* gdk/win32/{gdkdnd,gdkimage,gdkpixmap,gdkprivate}-win32.c: Misc
minor changes.
1999-12-05 23:26:46 +00:00
Jaka Mocnik
3f00a28b6c removed GNOME_LIBS from testpixbuf_LDADD.
1999-12-05  Jaka Mocnik  <jaka.mocnik@kiss.uni-lj.si>

	* gdk-pixbuf/Makefile.am: removed GNOME_LIBS from testpixbuf_LDADD.
1999-12-05 21:48:35 +00:00
Arjan van de Ven
a03ac28c6e Bug in palet-size calculation fixed
1999-12-05  Arjan van de Ven
     <arjan@fenrus.demon.nl>

* gdk-pixbuf/io-ico.c: Bug in palet-size
   calculation fixed
1999-12-05 13:47:26 +00:00
Arjan van de Ven
631f507f58 Major cleanup, added support for 32 bpp and 4 bpp (uncompressed) images,
1999-12-04  Arjan van de Ven <arjan@fenrus.demon.nl>

	* gdk-pixbuf/io-bmp.c: Major cleanup, added support for
	32 bpp and 4 bpp (uncompressed) images, fixed 1bpp.

	* gdk-pixbuf/io-ras.c: Minor cleanup, ran through lclint

	* gdk-pixbuf/io-ico.c: Minor cleanup, fixed 1bpp icons,
 	ran through lclint.

	* gdk-pixbuf/gdk-pixbuf-io.c: Added detection of .CUR files
	(Windows Cursor files). These are identical to .ICO files,
	except for the signature and 2 extra fields for the hotspot.
1999-12-04 18:17:52 +00:00
Jonathan Blandford
d8b35eab3e added a comment to explain this function better.
1999-12-03  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/io-gif.c (gif_fill_in_lines): added a comment to
	explain this function better.
1999-12-03 21:57:07 +00:00
Owen Taylor
a3bf693cd4 Change only_if_exists argument of gdk_atom_intern to bool.
Wed Dec  1 22:35:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkproperty.h x11/gdkproperty.c: Change
	only_if_exists argument of gdk_atom_intern to
	bool.
1999-12-03 20:16:04 +00:00
Owen Taylor
16502247df New function, long needed.
Fri Dec  3 14:09:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkoptionmenu.[ch] (gtk_option_menu_get_history):
	New function, long needed.

Wed Dec  1 22:35:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkproperty.h x11/gdkproperty.c: Change
	only_if_exists argument of gdk_atom_intern to
	bool.
1999-12-03 20:15:32 +00:00
Arturo Espinosa
e5c1456525 Start of the new test program - Federico 1999-12-02 23:57:25 +00:00
Fatih Demir
1586dd5703 Added tr to ALL_LINGUAS 1999-12-02 23:11:06 +00:00
Federico Mena Quintero
72868800d7 Source files moved from src/ to gdk-pixbuf/, to be consistent with other
1999-12-02  Federico Mena Quintero  <federico@redhat.com>

	Source files moved from src/ to gdk-pixbuf/, to be consistent with
	other libraries.

	* doc/Makefile.am: Modified for the new source directory.

	* configure.in: Likewise.

	* Makefile.am: Likewise.

	* autogen.sh: Likewise.

	* gdk-pixbuf/Makefile.am: Likewise.
1999-12-02 23:02:56 +00:00
Fatih Demir
d6f51967de Added tr.po to Gtk+ tree 1999-12-02 21:12:00 +00:00
Federico Mena Quintero
25a8142429 #include <config.h>, and fix includes.
1999-12-02  Federico Mena Quintero  <federico@redhat.com>

	* src/testpixbuf.c: #include <config.h>, and fix includes.

	* src/testpixbuf-drawable.c: #include <config.h>, and fix includes.

	* src/io-xpm.c: Fix includes.

	* src/io-tiff.c: Fix includes.

	* src/io-ras.c: Fix includes, and do not include more stuff than needed.

	* src/io-pnm.c: Fix inlcudes, and do not include more stuff than needed.

	* src/io-png.c: Fix includes.

	* src/io-ico.c: Fix includes, and do not include more stuff than needed.

	* src/io-gif.c: Fix includes, and do not include more stuff than needed.

	* src/io-bmp.c: Fix includes, and do not include more stuff than needed.

	* src/gnome-canvas-pixbuf.c: Fix includes.

	* src/gdk-pixbuf.c: Fix includes.

	* src/gdk-pixbuf-util.c: Fix includes.

	* src/gdk-pixbuf-render.c: Fix includes.

	* src/gdk-pixbuf-io.h: Fix includes.

	* src/gdk-pixbuf-drawable.c: Fix includes.

	* src/gdk-pixbuf-drawable.h: Use angle brackets for the gdk-pixbuf
	include files.

	* src/gdk-pixbuf-data.c: Fix includes.

	* src/gdk-pixbuf-loader.c: #include <config.h>

	* src/gdk-pixbuf-loader.h: Use angle brackets for the gdk-pixbuf
	include files.

	* src/Makefile.am: Commented out the gdk-pixbuf-drawable stuff,
	since it is not finished.
1999-12-02 20:44:43 +00:00
Federico Mena Quintero
21f0dff4cd Removed unused transformation prototypes.
1999-12-02  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf.h: Removed unused transformation prototypes.
1999-12-02 20:10:22 +00:00
Federico Mena Quintero
e026570571 New file with utility and convenience functions for pixbufs.
1999-12-02  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-util.c: New file with utility and convenience
	functions for pixbufs.

	* src/Makefile.am (libgdk_pixbuf_la_SOURCES): Added gdk-pixbuf-util.c.

	* doc/gdk-pixbuf-sections.txt: Added section for utility functions.

	* doc/Makefile.am (tmpl_sources): Added tmpl/util.sgml.

	* doc/gdk-pixbuf.sgml: Added the utilities section.

	* doc/tmpl/util.sgml: Documentation for the utility functions.
1999-12-02 17:45:47 +00:00
Owen Taylor
bfa345c338 Keep the mask around until after we draw ... since the GC changes aren't
1999-11-29  Owen Taylor  <otaylor@redhat.com>

	* src/gdk-pixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
	Keep the mask around until after we draw ... since
	the GC changes aren't flushed to the X server until we
	draw, destroying it before that may result in BadPixmap
	errors.
1999-11-30 17:56:02 +00:00
Havoc Pennington
1284c3fc42 Add AM_CONDITIONAL for inside gnome-libs
1999-11-30  Havoc Pennington  <hp@pobox.com>

* configure.in: Add AM_CONDITIONAL for inside gnome-libs

* src/Makefile.am: conditionalize GnomeCanvasPixbuf
1999-11-30 17:53:02 +00:00
Jonathan Blandford
3a1f89dcf5 more work on the ico loader 1999-11-29 22:00:45 +00:00
Owen Taylor
4d37cd3eed added missing file 1999-11-29 21:28:04 +00:00
Federico Mena Quintero
f5b3df2956 Uncomment the GnomeCanvasPixbuf sources. This should be made conditional,
1999-11-29  Federico Mena Quintero  <federico@redhat.com>

	* src/Makefile.am: Uncomment the GnomeCanvasPixbuf sources.  This
	should be made conditional, not blindly commented out.
1999-11-29 20:36:55 +00:00
Jonathan Blandford
4aae90b5b1 Added another loader from Arjan to handle .ico files. Cool.
1999-11-29  Jonathan Blandford  <jrb@redhat.com>

        * src/Makefile.am (ICO_LIB): Added another loader from Arjan to
	handle .ico files.  Cool.
1999-11-29 16:49:39 +00:00
Tor Lillqvist
f0e6c2b1f3 Temp debugging function prototype left in by mistake. 1999-11-25 00:48:46 +00:00
Tor Lillqvist
72fc042792 Fix two copy&paste errors.
1999-11-25  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkgc.c (gdk_gc_set_ts_origin, gdk_gc_set_clip_origin):
Fix two copy&paste errors.

* gdk/makefile.cygwin: Also rebuild DLL when the static archive in
win32 has changed.

* gdk/win32/gdkprivate-win32.h: Don't need CPINFO in the
GdkWin32SingleFont struct.

* gdk/win32/gdkfont-win32.c: Some more debugging: Print Unicode
subranges of loaded fonts. Clear font signature first, in case
GetTextCharsetInfo fails. Pretend SYMBOL_CHARSET fonts have
ASCII+Basic Latin (i.e. 0x40--0xFF) as they are single-byte.

* gdk/win32/gdkgc-win32.c: Improved logging. (gdk_gc_postdraw):
Unoffset clip region.
1999-11-25 00:27:11 +00:00
Jonathan Blandford
119a9f33ca new patch from Arjan to handle compressed bmps.
1999-11-24  Jonathan Blandford  <jrb@redhat.com>

	* src/io-bmp.c (OneLine24): new patch from Arjan to handle
	compressed bmps.
1999-11-24 21:12:24 +00:00
Szabolcs Ban
1f6e4e7336 Shooby Ban <bansz@szif.hu>
* Updated Hungarian translations
1999-11-24 18:23:04 +00:00
Pablo Saratxaga
b85d11b3b7 Included newer versions of some po files from stable branch 1999-11-24 17:03:27 +00:00
James Henstridge
104c12d28e libart must be built before gdk-pixbuf.
1999-11-24  James Henstridge  <james@daa.com.au>

	* Makefile.am (SUBDIRS): libart must be built before gdk-pixbuf.

[ in gdk-pixbuf ]
1999-11-24  James Henstridge  <james@daa.com.au>

	* configure.in (AC_OUTPUT): altered hack to place the symlink in the
	top builddir rather than src.  This still builds fine, and does not
	get gtk-doc into an infinite loop when trying to find all the source
	files.
1999-11-24 14:32:49 +00:00
Federico Mena Quintero
b990b30723 Create the temporary buffer to the size of the interesction of the
1999-11-22  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_draw): Create the
	temporary buffer to the size of the interesction of the bounding
	box and the expose area, not the whole expose area.  This speeds
	up things a lot.

	* src/gdk-pixbuf-render.c (gdk_pixbuf_render_threshold_alpha): Do
	not paint black on the mask, since we already cleared it in a
	single gdk_draw_rectangle() operation.
1999-11-24 08:19:58 +00:00
Tor Lillqvist
0b793d2cc8 set event->any.window before calling filter functions.
1999-11-23  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c (gdk_event_translate): set
event->any.window before calling filter functions.
1999-11-23 22:38:50 +00:00
Elliot Lee
2421aab193 Uniquify the strings to save some memory. Make it build. No imlib! Include
* libgnomeui/gnome-stock-ids.[ch],libgnomeui/gnome-init.[ch],libgnome/gnomelib-init*.[ch]:
  Uniquify the strings to save some memory.
* test-gnome/*.c: Make it build.
* configure.in: No imlib!
* libgnomeui/libgnomeui.h: Include gnome-druid-page-edge.h, not -start.h
1999-11-23 20:03:14 +00:00
Jonathan Blandford
43bbf78a29 Removed #PRAGMA } from headers. Also, make compile if you don't have it
1999-11-23  Jonathan Blandford  <jrb@redhat.com>

	* Removed #PRAGMA } from headers.  Also, make compile if you don't
	have it installed, already.
1999-11-23 16:04:13 +00:00
Elliot Lee
c8df698460 Try to fix gdk-pixbuf a bit better.
Try to fix gdk-pixbuf a bit better.
1999-11-23 01:25:28 +00:00
Raja R Harinath
68f5479eb0 Fix for srcdir != builddir.
* configure.in (GDK_PIXBUF_DIR): Fix for srcdir != builddir.
1999-11-22 23:59:49 +00:00
Havoc Pennington
1bfdff1dcb Patch from Paul Fisher <pnfisher@redhat.com> adds all -lgdk-pixbuf and all
1999-11-22  Havoc Pennington  <hp@pobox.com>

* src/Makefile.am (GDK_PIXBUF_LIBS): Patch from Paul Fisher
<pnfisher@redhat.com> adds all -lgdk-pixbuf and all other
dependencies to LIBADD variables for loadable modules. Necessary
for a Java dynamic loading thing to be able to figure it out.
1999-11-22 23:11:05 +00:00
Havoc Pennington
4cbca90747 Call the update_area callback depending on the number of rows loaded in
1999-11-22  Havoc Pennington  <hp@pobox.com>

* src/io-png.c (image_load_increment): Call the update_area
callback depending on the number of rows loaded in this increment.

* src/testpixbuf.c (main): slow down the progressive load demo
1999-11-22 23:04:52 +00:00
Raja R Harinath
33da844e70 Adapt cast macros to standard.
Fri Nov 19 10:34:41 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkgamma.h: Adapt cast macros to standard.

[ Merges from 1.2 ]

Tue Nov 16 10:15:54 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkitemfactory.c (gtk_item_factory_parse_path):
	If translation does not include a '/', use entire
	translation instead of crashing.

Sun Oct 31 22:21:11 1999  Tim Janik  <timj@gtk.org>

	* docs/gtk_tut.sgml:
	s/gtk_accel_group_attach/gtk_window_add_accel_group/.

Sat Oct 30 09:09:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c (gtk_target_list_remove): Use
	g_list_remove_link, not g_list_remove.

	[ From Geert Bevin <gbevin@thunderstorms.org> ]

Sun Oct 24 07:41:40 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkclist.c (real_undo_selection): commented out g_print()
	statement upon unselection (how the heck did that slip in?).

Sat Oct 23 03:03:08 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtktext.c (gtk_text_freeze):
	(gtk_text_thaw): undraw/draw cursor here to avoid unnecessary scrolling
	in frozen state (and aparently crashes). patch provided by Anders
	Melchiorsen <and@kampsax.dtu.dk>.

Sat Oct 23 02:53:20 1999  Tim Janik  <timj@gtk.org>

	* fix insensitive default/focus widget activation,
	reported by Matt Goodall <mgg@isotek.co.uk>.

	* gtk/gtkwindow.c (gtk_window_key_press_event):
	(gtk_window_activate_default):
	(gtk_window_activate_focus):
	return handled=FALSE for actiavtion of insensitive default
	widgets. return handled=TRUE for activation of insensitive
	focus widgets. don't activate in either case.

Tue Oct 19 09:55:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk-config.in (lib_gtk): Switch order of @x_cflags@
	and $glib_cflags to match library order and in the
	theory that an old version of GLib is more likely to
	be in the include directory for X then vice-versa.
	(Bug #2776)

Tue Oct 19 09:46:49 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_init): Always use LC_CTYPE
	to determine the locale for fontsets, not LC_MESSAGES;
	the user may want English messages with a handling
	for non-English languages. (LC_CTYPE=ru_RU LC_MESSAGES=fr_FR
	will still be broken) (Bug #2891)

Tue Oct 19 20:36:42 1999  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* gtk/gtkrc.ko: Fixed the wrong number of "*"'s.

Tue Oct 19 12:15:13 1999  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* gtk/gtkrc.ko: Changed the Korean default fontset.

Fri Oct  8 02:32:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c (gtk_layout_adjustment_changed): Fix bug
	where when scrolling to the left or top double exposes
	were done, causing major slowdowns.

Thu Oct  7 18:31:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_init): Always normalize codeset
	names to lowercase and alphanumeric, before looking
	them up.

	* gtk/Makefile.am: Install codeset variant gtkrc files
	with normalized names.

Thu Oct  7 22:52:42 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even
	popup menus when the menu is already visible, but its parent
	is still hidden, (happens after tornoff window got hidden).

Thu Oct  7 11:09:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (install-data-local): Fix
	a typo where gtkrc.vi_VN.tcvn5712 wasn't getting
	deleted, causing error messages on install.

Thu Oct  7 11:03:06 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtk[hv]paned.c (gtk_{h,v}paned_draw): Redraw
	the handle as well, since we now sometimes ignore
	exposes on the handle while resizing.

Wed Oct  6 18:02:31 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_append_default_pixmap_path): Fix stupid
	extra g_free introduced in one of the last one or two
	commits.

Wed Oct  6 16:38:36 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am gtk/gtkrc*: Make naming of gtkrc files
	consistent, put each style that a gtkrc.* file creates
	in a unique namespace, remove old files before installing.

Wed Oct  6 14:31:16 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_init): Avoid leaking memory when
	gtk_rc_init is called multiple times. (Yes, people who
	do that have bugs in their code.)

Tue Oct  5 11:36:57 PDT 1999 Manish Singh <yosh@gimp.org>

	* gtk/Makefile.am: listing gtkrc in gtkconf_DATA seems to barf.
	Remove it since it's generated by the Makefile anyway

Tue Oct  5 02:43:41 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkinputcommon.h (gdk_input_device_new): Free
	device->info.axes for core pointer.

Thu Sep 30 13:55:25 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (destroy_idle_test): Rename idle to
	idle_id, to deal with obsolete, broken C libraries.

Mon Sep 27 02:50:15 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkvscale.c (gtk_vscale_draw): Don't add in
	allocation->x/y twice!

	* gtk/gtkhscale.c: Make usage of gtk_hscale_pos_trough()
	consistent with gtk_vscale_pos_trough().

Sun Sep 26 19:44:34 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcontainer.c (gtk_container_queue_resize): We may
	be queueing a resize on a toplevel container between
	the time we show it and when we map it. So, we need
	to test GTK_WIDGET_VISIBLE() for toplevels, and only
	use GTK_WIDGET_DRAWABLE() for child windows.

Thu Sep 23 16:41:03 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (LDADDS): Add GDK_WLIBS to LDADDS
	(fixes bug #2144)

Fri Sep 24 00:51:45 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkcontainer.c (gtk_container_queue_resize): check for
	container DRAWABLE (instead of VISIBLE), so we don't queue
	resizes on non-toplevel containers.

Sun Sep 19 18:13:31 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.[ch]: Make the data argument
	const guchar *.

Sat Sep 18 21:27:40 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c: Try to behave sensibly if
	the focus widget is the window itself. (Should
	we allow this at all?)

Fri Sep 17 09:57:15 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_set_sensitive):
	* gtk/gtknotebook.c (gtk_notebook_set_scrollable):
	* gtk/gtknotebook.c (gtk_notebook_set_show_border):
	* gtk/gtkclist.c (gtk_notebook_set_show_border): make gboolean args
	in prototypes and implementations consistent (Tomas Ogren).

	* gtk/gtklayout.c (gtk_layout_remove): unset GTK_IS_OFFSCREEN flag
	before the widget is unparented (reported by damon).

	* gtk/gtkdnd.c: make the cursor and icon data _unsigned_ char,
	since we provide unsigned data anyways.

Thu Sep 16 21:32:01 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktooltips.c (gtk_tooltips_set_tip): Delay
	the call to gtk_tooltips_layout_text() until later.

	* gtk/gtktooltips.c (gtk_tooltips_draw_tips):
	Call gtk_widget_ensure_style() before using the style.

Wed Sep 15 02:52:19 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_event): Added workaround
	for old widgets that don't propagate draws to all
	children. (Namely gnome-dock for gnome-libs <= 1.0.16)

Tue Sep 14 19:22:19 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_queue_resize): don't queue the parent
	for a redraw but just the widget that requested the resize.

Tue Sep 14 18:29:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkcontainer.c: added new widget level method
	gtk_container_set_reallocate_redraws() and a GtkContainer flag
	reallocate_redraws : 1 to reflect the setting, exported this through
	the argument system as a boolean ::reallocate_redraws.

	* gtk/gtkwidget.c (gtk_widget_size_allocate): when queueing redraws
	on the widget because the allocation changes, do so as well for
	widget->parent if the parent has reallocate_redraws set to TRUE.
	with that containers requesting reallocation redraws get automatically
	redrawn if their children changed allocation (this unfortunately
	affects also other children that didn't change allocation, but we
	cannot work around that before 1.3).

Tue Sep 14 18:23:01 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_idle_draw): only emit ::draw if width
	_and_ height are >0 (not _or_).

	* gtk/gtktable.c (gtk_table_remove): use gtk_widget_queue_resize()
	instead of gtk_container_queue_resize(), which is a core gtk internal
	function (must have been on crack when i queued that).

	* gtk/gtkprivate.h: added new private flag GTK_FULLDRAW_PENDING, so
	we can check more reliably if we want to discard expose events.
	* gtk/gtkwidget.c: added setting/unsetting of the GTK_FULLDRAW_PENDING
	flag.

	* gtk/gtkwidget.c (gtk_widget_event): don't discard synthesized exposes,
	we simply trust these events. for deciding whether to discard exposes,
	check GTK_FULLDRAW_PENDING instead of RESIZE_PENDING.

Mon Sep 13 15:01:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
	queues of areas that are completely off screen.

	* gtk/gtkwidget.c (gtk_widget_idle_draw): Fix broken
	logic for handleboxes.

	* gtk/gtkwidget.c (gtk_widget_queue_draw_data): Add santity
	check on width/height.

Mon Sep 13 02:22:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/Makefile.am: backed out Raja's recent VPATH build "improvements",
	we are fine with using $@ the way we do (if we actually encounter
	brokeness with $@ in VPATH builds because of additional path prefixes,
	we need to use $(@F) actually).

Mon Sep 13 01:34:53 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtksignal.c: renamed two variables, hopefully didn't introduce
	short lived bugs, that would allow language bindings to do surgeries
	to our guts.

Fri Sep 10 15:22:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_size_allocate): Fix typo
	where comparison was being done against an uninitialized
	value causing intermittant results depending on
	compiler flags. Also make it clearer that we aren't
	ever initializing the child as 0x0 (though this will
	be caught in gtk_widget_size_allocate())

Fri Sep 10 10:06:56 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_set_transient_for): Move
	gtk_window_unset_transient_for() call after we do checks
	involving the old transient parent.
	[ From Lance Capser <lmc@cyberhighway.net> ]

1999-09-07  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (gtk.defs): Go back to using `touch' to create
	an empty file.

Mon Sep  6 00:11:56 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (gtk_ctree_is_ancestor): return FALSE if node has
	no children. (Reported by: Chris Rogers <gandalf@pobox.com>)

1999-09-03  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (gen_sources): Improve VPATH builds.
	`$@' is valid only in the build dir, not after we've done
	`cd $srcdir'.  Also use `test -f' instead of less portable
	`test -e'.

Fri Sep  3 15:59:56 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c (correct_cache_insert): Rewrite
	 for simplicity, and hopefully correctness.
	 (Fixes bug #1322, which was a segfault when
	  on some insertions with the properties around
	  the insertion set up just wrong.)

	* gtk/gtktext.c (gtk_text_adjustment): When we receive
	 a "changed" signal, clamp the new value to the adjustment
	 bounds to avoid segfaulting if someone tries to change
	 the adjustment to a bogus value. (Bug #1795)

Thu Sep  2 16:33:59 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c: Ignore unexpected destroy notifies
	for children, for toplevel windows handle them
	like delete_event.

	* gtk/gtkplug.c: Add an unrealize handler so that
	we unref plug->socket_window when we are done
	with it.

Fri Sep  3 14:52:54 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c (clear_area): Fix stupid signedness
	 problem that was causing background to sometimes
	 be misaligned.

Fri Sep  3 12:26:33 1999  Owen Taylor  <otaylor@redhat.com>

	[ Fixes pointed out by Ettore Perazzoli <ettore@comm2000.it> ]

	* gtk/gtkmenu.c (gtk_menu_position): Make
	 sure we never position menus with negative x, y,
	 since gtk_widget_set_uposition() can't handle that.

	* gtk/gtkmenuitem.c (gtk_menu_item_position_menu):
	 Modify the positioning code a bit so that we always
	 put the top-left corner onscreen. (This is for
	 UI reasons, gtk_menu_position() now takes care of
	 gtk_widet_set_uposition() brokeness.)

Fri Sep  3 03:06:30 1999  Tim Janik  <timj@gtk.org>

	* gtk/Makefile.am: fixed up things for -jx, x > 1.

Sun Sep  5 08:48:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_modify_style): Ref the
	  RC style that is passed in. The lack of the ref
	  before was a bug. If people worked around this
	  bug, this will introduce a slight memory leak
	  in their code. The code should typically look like:

	    rc_style = gtk_rc_style_new ();
	    [...]
	    gtk_widget_modify_style (widget, rc_style);
	    gtk_rc_style_unref (rc_style);

	* gtk/gtkwidget.c (gtk_widget_modify_style): Reset
	  the style if it was already set.

	* gtk/gtkwidget.c (gtk_widget_set_name): Only set the
	  style if it was set before.

Thu Sep  2 19:02:37 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (main): Add a check to see if we
	  are being run from the correct directory and
	  to quit nicely if we are not.

	* gtk/gtkrc.c (gtk_rc_slist_remove_all): Make function
	  static.

Thu Sep  2 23:00:03 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkenums.h (GtkWindowPosition): added GTK_WIN_POS_CENTER_ALWAYS.

	* gtk/gtkwindow.c:
	queue resizes unconditionally (gtk_widget_queue_resize will figure
	what to do if the window is not realized).
	(gtk_window_move_resize): only recenter the window
	for GTK_WIN_POS_CENTER_ALWAYS.
	(gtk_window_compute_reposition): handle GTK_WIN_POS_CENTER_ALWAYS in
	the same way as GTK_WIN_POS_CENTER.

Thu Sep  2 22:39:27 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_reposition): check for the last position
	with (!(info->last_flags & GDK_HINT_POS)) instead of
	(!info->last_flags & GDK_HINT_POS).

	* gtk/gtkwindow.c (gtk_window_move_resize): constrain new_width and
	new_height unconditionally, because we use these values even if
	!default_size_changed && !hints_changed.
	comented the (default_size_changed || hints_changed) case with
	respect to resize rejects from the window manager.

	* gtk/gtkwindow.c (gtk_window_move_resize): save info->last values
	in the zvt condition hack, since this includes the window hints, set
	the hints after the handling_resize case.

	* gtk/gtkwindow.c (gtk_window_show): constrain the default size that a
	window is initially shown with to the geometry.

Thu Sep  2 07:38:56 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_move_resize):
	s/size_changed/default_size_changed/g so i know what's
	really going on (frying brain on smaller flame now).

Thu Sep  2 05:47:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_move_resize): queue a new resize if
	we have size_changed upon handling_resize. this is a gross
	workaround for the broken zvt widget and should be removed in
	1.3 again (search for FIXME).
	Owen provided an accurate comment for this:

        /* We could be here for two reasons
         *  1) We coincidentally got a resize while handling
         *     another resize.
         *  2) Our computation of size_changed was completely
         *     screwed up, probably because one of our children
         *     is broken. It's probably a zvt widget.
         *
         * For 1), we could just go ahead and ask for the
         * new size right now, but doing that for 2)
         * might well be fighting the user (and can even
         * trigger a loop). Since we really don't want to
         * do that, we requeue a resize in hopes that
         * by the time it gets handled, the child has seen
         * the light and is willing to go along with the
         * new size. (this happens for the zvt widget, since
         * the size_allocate() above will have stored the
         * requisition corresponding to the new size in the
         * zvt widget)
         *
         * This doesn't buy us anything for 1), but it shouldn't
         * hurt us too badly, since it is what would have
         * happened if we had gotten the configure event before
         * the new size had been set.
         */

Wed Sep  1 20:46:11 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c: deal properly with the fact that RC
	  style lists may include rc styles more than once.

	* gtk/gtkrc.c (gtk_rc_append_pixmap_path): Removed
	  unused static function.

	* gtk/gtkrc.c (gtk_rc_find_pixmap_in_path): Keep a
	  stack of directories of RC files currently being
	  parsed and implicitely add them to pixmap path.

	  This fixes a bug where the directory would get
	  appended then overwritten by pixmap_path declarations.

	  (bug #1462, from Peter Wainright <prw@wainpr.demon.co.uk>)

	* gtk/gtkthemes.c (gtk_theme_engine_unref): Call
	  theme's exit function. (Patch from Peter Wainwright,
	  bug #1454)

	* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy):
	  Add a destroy() handler to take care of removing
	  group for menu item. (Fixes bug #1197)

	* gtk/gtkwidget.c (gtk_widget_size_request): Fixed thinko
	  in warning message.

Wed Sep  1 21:27:42 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_move_resize): don't require a server
	roundtrip to figure window's width and height, since we know that
	anyways from widget->allocation.

Wed Sep  1 12:37:44 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_move_resize): Compute
	  the hints after we request the new size.

Wed Sep  1 10:38:37 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_compute_hints): Removed
	  GTK_WIDGET_REALIZED() assertion - we can compute the
	  hints before we are realized.

	* gtk/gtkwindow.c (gtk_window_move_resize): Reorder
	  hint changing so that we have a value of hints_changed
	  when we decide whether to constrain the window size.

	* gtk/gtkwindow.c (gtk_window_move_resize): Spelling fix.

	* gtk/gtkwindow.c (gtk_window_constrain_size): cleanups,
	change back to G_MAXINT.

Wed Sep  1 06:54:59 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_get_geometry_info): zero initialize
	new GtkWindowGeometryInfo, so fields like GdkGeometry geometry
	contain uncluttered values.
	(gtk_window_compute_hints): simply assert that window is realized
	and that geometry_info is valid, since we rely on this anyways.
	(gtk_window_constrain_size): major cleanups to the code.
	if (flags & GDK_HINT_BASE_SIZE) use geometry's base width and height
	for the base size, instead of the minimums. use 32767 as max width
	and height (like in gtkwindow.c) instead of G_MAXINT.

Wed Sep  1 04:41:25 1999  Tim Janik  <timj@gtk.org>

	* cleaned up the GtkContainer.need_resize flag handling mess, we
	only need to force resize requests when we were prematurely
	realized, or our widget tree was modified when we were temporarily
	hidden. handling these cases directly upon showing the window (i.e.
	while the GdkWindow is still unmapped) avoids the need to wait for
	a configure event response and therefore makes the GUI more snappier
	and avoids blank windows during the roundtrip.

	* gtk/gtkwidget.c:
	(gtk_widget_hide):
	(gtk_widget_show): don't queue resizes on toplevels, they know how
	to deal with matters.

	* gtk/gtkcontainer.c (gtk_container_queue_resize): set the ->need_resize
	flag directly for not visible resize containers and spare us unecessary
	signal emissions.

	* gtk/gtkwindow.c:
	(gtk_window_realize): if we need to enforce premature size allocation,
	queue a container resize so we are correctly resized later on.
	(gtk_window_init):
	(gtk_window_size_request):
	don't freak around with the ->need_resize flag,
	gtk_container_queue_resize() will care about that.
	(gtk_window_show):
	handle initial resizing issues here, we can handle matters better in
	this place, especially since we know that our GdkWindow is still
	unmapped.
	(gtk_window_move_resize):
	don't care about ->need_resize at all.
	handle size changes properly that occoured while we waited for a
	configure event.

Tue Aug 31 15:58:46 1999  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwidget.c (gtk_widget_set_uposition):
        * gtk/gtkwindow.[hc] (gtk_window_reposition):
        Move the hint setting code from gtk_widget_set_uposition
        to here; set the hints so that we respect any previously
        set geometry hints.

        * gtk/gtkwindow.c (gtk_window_compute_reposition): Don't
        change the window hints here or move the window here,
        let that happen in gtk_window_move_resize().

Tue Aug 31 06:58:52 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_event): when discarding exposes due
	to already queued resizes (and therefore redraws) on a widget, check
	its anchestry as well.

	* gtk/gtkcontainer.c:
	(gtk_container_queue_resize): clear resize widgets for resize
	containers before aborting prematurely. this is especially important
	for toplevels which may need imemdiate processing or their resize
	handler to be queued.
	(gtk_container_dequeue_resize_handler): added new internal function for
	gtkwindow.c.

	* gtk/gtkwindow.c (gtk_window_move_resize): if we are resizing due to a
	configure event, take possible changes in window position into account
	as well.
	if we request a new window size, queue up a resize handler that will
	last until the configure event response arrives.
	combined the ->need_resize case (initial show) with the general size
	(hints) changed case and added even more comments.
	if !auto_shrink, only revert to the old allocation if the new size
	is smaller than the current allocation.

Tue Aug 31 11:55:20 1999  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwindow.c (gtk_window_set_arg, gtk_window_set_policy,
                           gtk_window_set_geometry_hints
                           gtk_window_set_default_size):
        When hints are set, queue a resize so that the hints will
        be eventually reset on the toplevel.

        * gtk/gtkwindow.c (gtk_window_show): Use
        gtk_window_compute_default_size(). Clear the need_resize flag
        on the initail map so that we don't unnecessarily trigger the
        resize code.

        * gtk/gtkwindow.c (gtk_window_move_resize): Split apart
        into separate functions. Compare the hints we are setting
        with what we set last time so that we can accurately
        tell when we need to reset the hints.

        * gtk/gtkwindow.c (gtk_window_compute_default_size): New
        function to figure out the size from requisition
        and default_size.

        * gtk/gtkwindow.c (gtk_window_constrain_size): Function
        from fvwm to constrain a size to the geometry hints.

        * gtk/gtkwindow.c (gtk_window_compare_hints): New function
        to compare two sets of geometry hints.

        * gtk/gtkwindow.c (gtk_window_compute_hints): Renamed
        from gtk_window_set_hints(), just compute the hints,
        don't set them.

        * gtk/gtkwindow.c (gtk_window_compute_reposition): Move
        code from gtk_window_move_resize() to separate function,
        rationalize a bit.

Tue Aug 31 13:05:03 1999  Owen Taylor  <otaylor@redhat.com>

	* gtkrc.h: Move the ref_count member out of the GtkRcStyle
	structure into a new private structure.

	* gtkrc.c: Split GtkRcStyle into public/private.
	In the private part, add a list of pointers to the
	RcStyle lists this RcStyle participates in.

	* gtkrc.c: When a RcStyle is free, remove all
	lists referencing it from the
	realized_style_ht hash, and free those lists.

	* gtk/gtkrc.c (gtk_rc_clear_styles): Don't call
	gtk_rc_init(), since that adds the default styles
	to the list of parsed RC files again.

	* gtk/gtkrc.c: Use gtk_rc_style_find() consistently.

Thu Aug 26 14:14:42 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_size_allocate): reactivated the sanity
	checks that ensure that a widget's allocation is at least 1 in width
	and height. (GNOME note: this doesn't affect old panel code anymore,
	because GtkSocket will request width and height of at least 1 since
	Fri Jul 23).

	* gtk/gtkwindow.c (gtk_window_realize): if the widget hasn't been
	allocated yet (happens if the user realizes the window prematurely),
	size request and allocate it.
	(gtk_window_size_allocate): guard against guint underflows.

Wed Aug 25 19:01:36 1999  Lars Hamann  <lars@gtk.org>

	* gtk/Makefile.am (gtk_built_sources): reordered stamp-gtk.defs
 	in gtk_built_sources, so gtk.defs gets built prior to all other
 	sources.

Mon Aug 23 19:11:17 1999  Tim Janik  <timj@gtk.org>

	* gtk/Makefile.am:
	invoke indent on gtkmarshal.*.
	rewrote source generation rules, use COPYING as oldest source tag for
	a piggyback rule to generate all sources from (don't touch it ;).
	major cleanups, strip spaces on build rules for GNU Make.

	* gtk/genmarshal.pl: don't operate on hardcoded filenames but take
	source and target files from commandline arguments. don't invoke indent.

Sat Aug 21 14:07:36 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_real_switch_page): queue_resize
	notebook after switch to avoid drawing problems.
	(Bug#856 Reported by: Theodore Roth <troth@netmagic.net>)

	(gtk_notebook_pages_allocate): don't map not visible tab_labels,
	show them instead.
	(Bug#1805 Reported by: Dave Cole <dave@dccs.com.au>)

Sat Aug 21 14:07:36 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_real_switch_page): queue_resize
	notebook after switch to avoid drawing problems.
	(Bug#856 Reported by: Theodore Roth <troth@netmagic.net>)

	(gtk_notebook_pages_allocate): don't map not visible tab_labels,
	show them instead.
	(Bug#1805 Reported by: Dave Cole <dave@dccs.com.au>)

Wed Aug 18 09:20:10 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c:
	we use window->need_resize from configure_event now, to indicate that
	the gtkwindow should keep its allocation (e.g. because the user resized
	the window through window manager handles). resize_count is now reliably
	used to figure whether we got the allocation we requested from the
	window manager.
	configure events get queued as resizes now, the real stuff (size
	computation and allocation) now only goes on in gtk_window_move_resize().
	GtkWindow's requisition now contains its *real* requisition (like all
	other widgets), *not* taking usize into account.
	geometry_info->last_{width|height} is now updated from set_hints() only
	so it always contains the last hints we set for the window manager.
	made some event handlers return TRUE instead of FALSE.
	the overall code should be much more straight forward now, and the
	significant code portions are accompanied by comments now.
	(gtk_window_set_hints):
	removed requisition argument and made it
	fetch the requisition through gtk_widget_get_child_requisition.
	we also don't move the gdkwindow here anymore, gtk_window_move_resize()
	does that now.
	(gtk_window_show):
	ensure that the widget is realized before calling
	gtk_container_check_resize() (and thus gtk_window_move_resize()), also
	ensure that we got properly size requested and allocated before
	realization.
	(gtk_window_configure_event):
	ignore plain window moves, or reallocate the widget tree through the
	resize queue otherwise.
	(gtk_window_move_resize):
	mostly rewrote this function to figure window manager hints more
	reliably, coalesce window moves and resizes to reduce configure events
	and do actuall size allocations.

Tue Aug 17 07:43:04 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_event): discard expose events for widgets
	that have a resize pending, because a redraw is already queued for them.

	* gtk/gtkcontainer.c: removed ugly connect_to ::size_allocate signal
	hack to clear resize_widgets.

	* gtk/gtkwidget.c (gtk_widget_size_allocate): call clear_resize_widgets
	for resize containers prior to size allocation. (this is also a bit
	ugly, but avoids side effects for stopped emissions and is thus more
	reliable).
	(gtk_widget_unparent): removed disconnect call for clear_resize_widgets.

	* gtk/gtktooltips.c (gtk_tooltips_paint_window): renamed this
	function from gtk_tooltips_expose, as we connect to ::expose_event
	*and* ::draw now.

1999-08-18  Federico Mena Quintero  <federico@redhat.com>

	* gtk/gtkselection.c (gtk_target_list_ref): Added missing sanity
	checks.
	(gtk_target_list_unref): Likewise.

	* gtk/gtkthemes.c (gtk_theme_engine_unref): Likewise.

Tue Aug 17 15:47:07 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c (gtk_color_selection_draw_value_bar):
	guard against division by zero. (Fixes bug #1339)

Tue Aug 17 10:56:49 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_move_{forward,backward}_word):
	Prevent the trivial leak of information of allowing
	word motion when the entry is not visible.

Tue Aug 17 10:28:52 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (gtk_file_selection_fileop_error): Propagate
	modality to error dialog as well as confirmation dialogs.
	(Bug #1803, reported by Rosanna Wing Sze Yuen)

Wed Aug 11 01:04:57 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktreeitem.c (gtk_tree_item_draw_lines): Honor
	tree->view_lines.
	(gtk-guy-990611-3.patch: Guy Harris <guy@netapp.com>)

	* gtk/Makefile.am (install-data-local): Solaris apparently
	has various troubles with ln -f; use rm first instead.
	(gtk-guy-990611-2.patch: Guy Harris <guy@netapp.com>)

1999-07-30  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (stamp-m): Don't `mv' from builddir to srcdir,
	use `cp' followed by `rm' (the `rm' was already there).

July 30, 1999 Elliot Lee <sopwith@redhat.com>

	* configure.in: Fix autoconf warnings about cross compilation by
	trying to provide sane defaults for AC_TRY_RUN.
	* gtk/Makefile.am: If we refer to gtkmarshal.[ch] in $(srcdir),
	put them into $(srcdir) when generated. Also add a dependency of
	gtksignal.h on gtkmarshal.h for -j builds.
	* gtk/gtk(dnd,style,gamma).c: Minor warning fixes.

Wed Jul 28 09:29:19 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_main_iteration_do): Added missing
	GDK_THREADS_{LEAVE,ENTER} pair.
	(From Paul Fisher <pnfisher@redhat.com>)

Fri Jul 23 01:00:15 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtksocket.c (gtk_socket_size_request): asure that the requested
	width and height are always >0 (owen).

Fri Jul 23 00:00:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_size_allocate): backed out my recent
	change that assured that a widget's allocated with and height are
	always >1, since this breaks *buggy* panel code. unfortunately this
	back-breaks the gimp's color selector.

	* gtk/gtkdrawingarea.c (gtk_drawing_area_size_allocate): asure that our
	allocation is always >0 in width and height, before sending the
	configure event; this is a *gross* hack to get the gimp back to work.

	* marked both cases with TODO-1.3

Wed Jul 21 15:47:39 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c: Don't display wrap indicators when
	text is not editable and word wrap is on.

Wed Jul 21 08:21:40 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkitemfactory.c (gtk_item_factory_create_item): special case
	option menus here as they are not derived from menu shell, assure that
	the option menu has a menu we can add items to.

Tue Jul 20 23:29:48 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_page_allocate): convert allocation->
	width/height to (gint) before calculations and check against < 0 to
	avoid guint wraparounds.

Sun Jul 18 00:35:49 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_size_allocate): ensure that the allocated
	width and height is never zero. sanity check both dimensions against
	32767 and issue a warning if the allocation is greater than that.

Wed Jul  7 15:03:30 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_events_pending): Unlock around call
	to g_main_pending() as well.

Wed Jul  7 14:59:01 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_main_iteration): Unlock around
	call to g_main_iteration() - since that will regrab
	GTK+ lock to process events.

Thu Jul  1 15:01:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c
	- Regularize with the rest of GTK+ by making widget->requisition
	  not reflect the set_usize()
	- Always recompute geometry hints, then check if they
	  changed before sending them to the X server. The
	  previous checks for changes would fail in a number
	  of circumstances.

Thu Jul  1 11:55:59 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.c: Include <stdlib.h> for strcmp().

Wed Jun 30 19:26:36 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c:
	- Code cleanups
	- Instantaneously update on modifier key presses
	- Allow cancellation of the drag with Escape.

Tue Jun 29 17:04:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (create_handle_box): Set the policy
	to auto_shrink - otherwise the appearance is rather
	strange when flipping between horizontal and vertical.

Mon Jun 28 09:29:52 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c: add ::default_width and ::default_height arguments.
	(gtk_window_set_default_size): don't change a value if it's < 0.
	queue a resize.

Sun Jun 27 11:00:33 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtktext.c (gtk_text_insert): don't segfault on NULL inserts.

Mon Jun 28 12:08:25 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (cmpl_completion_fullname): Don't
	add an extra "/" when concating "/" + filename.
	(From Matt Grossman <mattg@oz.net>)

Mon Jun 28 10:57:12 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkctree.c (draw_cell_pixmap): Reset clip mask
	for fg_gc if we set it for drawing pixmap.

Tue Jun 15 12:45:12 1999  Owen Taylor  <otaylor@redhat.com>

        Fixes from Peter Wainwright <prw@wainpr.demon.co.uk>

	* gtk/gtkrc.c (gtk_rc_parse_engine): If rc_style->engine is
	already set, call old engine's destroy function and
	unref the old engine.

Thu Jun 10 17:59:38 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkdrawingarea.c (gtk_drawing_area_size): queue a resize.

Wed Jun  9 15:13:16 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkaccelgroup.h: mark certain functions as internal.

Wed Jun  9 13:48:28 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkpreview.c (gtk_preview_set_expand): queue a resize if the
        expand behaviour changed.

        * gtk/gtklabel.c (gtk_label_set_pattern):
        (gtk_label_set_justify):
        (gtk_label_set_line_wrap):
        don't bother invoking queue_clear, the reallocation does
        that for us, always free_words so the upcoming resize will
        relayout the label's contents.

Wed Jun  9 12:50:48 1999  Tim Janik  <timj@gtk.org>

        * applied argument implementation patches from Elena Devdariani
        <elena@cogent.ca>.

        * gtk/gtktoolbar.c: ::orientation, ::toolbar_style, ::space_size,
        ::space_style, ::relief
        * gtk/gtkruler.c: ::lower, ::upper, ::position, ::max_size
        * gtk/gtkpreview.c: ::expand
        * gtk/gtkpaned.c: ::handle_size, ::gutter_size
        * gtk/gtknotebook.c: ::homogeneous
        * gtk/gtklabel.c: ::wrap
        * gtk/gtklist.c: ::selection_mode
        * gtk/gtkhandlebox.c: ::handle_position, ::snap_edge
        * gtk/gtkcurve.c: ::curve_type, ::min_x, ::max_x, ::min_y, ::max_y
        * gtk/gtkcolorsel.c: ::update_policy, ::use_opacity
        * gtk/gtkclist.c: ::sort_type
        * gtk/gtkcheckmenuitem.c: ::active, ::show_toggle
        * gtk/gtkaspectframe.c: ::xalign, ::yalign, ::ratio, ::obey_child

Tue Jun  1 23:38:38 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.c: Removed ill-thought-out part of last
	comment.

Tue Jun  1 23:30:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.c (gtk_style_attach): Get the reference
	counting right when we have to attach a new style
	for a different visual. (Chi-Deok Hwang <cdhwang@sr.hei.co.kr>)

	* gtk/gtkstyle.c: Documented the refcounting
	peculularities of gtk_style_attach.

1999-06-01  Tim Janik  <timj@dhcpd7.redhat.com>

	* gtk/gtkwindow.c (gtk_window_new): added return if fail for invalid
	window types.

	* examples/packer/pack.c (main): use GTK_WINDOW_TOPLEVEL instead
	of GTK_TOPLEVEL for creating the window.

1999-06-01  Tim Janik  <timj@dhcpd7.redhat.com>

	* gtk/gtkmain.c (gtk_init_check): don't segfault when --gtk-module is
	the last argument (reported by Per Winkvist).

Tue May 25 13:13:12 1999  Owen Taylor  <otaylor@redhat.com>

        Fixes for invisible XOR lines (Frank Loemker
	<floemker@TechFak.Uni-Bielefeld.DE>)

	* gtk/gtkclist.c (gtk_clist_realize): Always use
	a non-zero pixel for GDK_XOR.

	* gtk/gtkvpaned.c gtk/gtkhpaned.c:
	Use GDK_INVERT instead of GDK_XOR.

Wed May 12 21:56:40 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (adjust_adjustments): signal emit value_changed
	signals if h/voffsets differ from adjustment values.
	Reportet by Jerome Bolliet <bolliet@in2p3.fr>

Mon May 10 04:20:41 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkmenushell.c (gtk_menu_shell_activate_item): propagate
	::selection-done emissions up to the topmost menu shell.

Fri May  7 10:15:14 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_set_scrollable): Unset
	the user data on the window before destroying it.

	* gtk/gtknotebook.c (gtk_notebook_unrealize): Add an
	unrealize handler to take care of destroying
	notebook->panel properly.
	(Bug #1198 - Morten Welinder <terra@diku.dk>)

	* gtk/gtktext.c (expand_scratch_buffer): Fix reversal
	of g_new and g_realloc to stop memory leak. (Actually,
	we could just use g_realloc(), but I'm not 100% sure
	that is portable).
	(Bug #1196 - Morten Welinder <terra@diku.dk>)

Wed Apr 21 00:42:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkplug.h: Removed stray GtkPlugButton declaration.

	* gdk/gdkfont.c (gdk_text_measure): Fix the return value
        for fontsets.

	* gtk/gtkbutton.c (gtkbutton_expose): Fix warning
	with bin/button confusion.

Thu May  6 04:53:26 1999  Tim Janik  <timj@gtk.org>

	* gtk/testgtk.c: in the ItemFactory test, link radio items together,
	and show how preselection of radio items is done.

Sun May  2 13:31:14 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtktreeitem.c (gtk_tree_item_set_subtree):
	* gtk/gtktree.c (gtk_tree_add) (gtk_tree_insert):
	* gtk/gtktoolbar.c (gtk_toolbar_insert_element):
	* gtk/gtkpaned.c (gtk_paned_pack2) (gtk_paned_pack1):
	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_add):
	* gtk/gtktable.c (gtk_table_attach):
	* gtk/gtklist.c (gtk_list_insert_items):
	* gtk/gtkmenushell.c (gtk_menu_shell_insert):
	* gtk/gtknotebook.c (gtk_notebook_insert_page_menu):
	* gtk/gtkpacker.c (gtk_packer_add_defaults) (gtk_packer_add):
	* gtk/gtkbin.c (gtk_bin_add):
	* gtk/gtkbox.c (gtk_box_pack_start) (gtk_box_pack_end):
	* gtk/gtkfixed.c (gtk_fixed_put):
	* gtk/gtklayout.c (gtk_layout_put):
	general fixups to container_add logic. always realize child if
	child->parent is realized, only map the child and queue a resize
	if child and child->parent are both visible.

Fri Apr 30 09:02:28 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_real_unrealize): use gtk_container_forall
	instead of gtk_container_foreach to walk and unrealize children, so
	composite children get also unrealized.
	(gtk_widget_real_show): don't call gtk_widget_map() if we don't need to.
	(gtk_widget_map): assert that the widget is visible (basic constrain).
	(gtk_widget_real_map): assert that the widget is realized (basic
	constrain).

Fri Apr 29 00:53:20 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkbindings.c (gtk_pattern_spec_init): plugged a memory leak.

Tue May  4 09:32:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am gtk/gtkrc.iso-8859-2: Add a gtkrc
	file for iso-8859-2 locales.

	* configure.in (ALL_LINGUAS): ALL_LINGUAS update.

Tue Apr 27 16:38:32 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am: Fix typo of static_sources for static_SOURCES.
	 (Pointed out by andy@rz.uni-karlsruhe.de and others).
	 Remove some suspicious and useless lines.

Tue May  4 08:44:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkclist.c (gtk_clist_draw, draw_rows): Use
	width,height = 0, 0 to mean - here to edge of window,
	instead of -1, -1, since the former is all we support.

Tue May  4 08:34:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_main): Correctly free list nodes
	when removing from quit_functions list.

Tue Apr 27 14:17:16 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkpacker.c (gtk_packer_size_request): remove unused variable.

Tue Apr 27 18:23:35 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable):
	 When redrawing characters on non-visible entry, use appropriate
	 '*' character. (Bug #1130 - Jean-Marc Jacquet <jm@littleigloo.org>)

Tue Apr 27 01:31:40 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (drag_dest_cell): compute destination cell
	from drag coordinates.
	(gtk_clist_drag_data_received) (gtk_clist_drag_motion):
 	use drag_dest_cell.

	* gtk/gtktree (drag_dest_cell)
	(gtk_ctree_drag_data_received) (gtk_ctree_drag_motion): likewise.
	(Bug #1129)

Wed Apr 21 21:26:11 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkitemfactory.c (gtk_item_factory_init): properly initialize
	translate_* fields.
	(gtk_item_factory_finalize): invoke translate_notify independant from
	translate_data.
	(gtk_item_factory_set_translate_func): likewise.
	(gtk_item_factory_destroy): only remove ifactory pointer from those
	widgets that belong to us (stupid me).

Mon Apr 19 12:05:31 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_style_init): Fixed leak of
	rc_style list when lookup succeeeds.

Thu Apr 15 01:11:24 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (resync_selection):
	* gtk/gtkclist.c (resync_selection): fixed undo_selection bug.
	* gtk/gtkclist.c (gtk_clist_button_release): fixed resync_selection
 	bug.

Fri Apr  9 19:22:19 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c gtk/gtkdnd.c gtk/gtkmenuitem.c:
	Add some missing GDK_THREADS_ENTER()/LEAVE around
	timeouts. (Patches from Sebastian Wilhelmi <wilhelmi@ira.uka.de>)

Thu Apr  8 20:10:33 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkentry.c (gtk_entry_key_press): use gtk_widget_activate()
	rather than emit_by_name.

	* gtk/gtkeditable.c (gtk_editable_insert_text): keep a reference
	on the widget across multiple signal emissions.
	(gtk_editable_delete_text): same here.
	(gtk_editable_class_init): set widget_class->activate_signal after
	editable_signals[ACTIVATE] has been created.

Wed Apr  7 22:59:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkpaned.c (gtk_paned_set_position): Don't clamp
	position here prematurely -- we might not have the
	right ->min_position and ->max_position yet.

Tue Apr  6 16:38:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c gdk/gdkselection.c: (gtk_selection_request):
	Add error traps so if the other end of the connection
	dies, we survive.

	* gtk/gtkselection.c (gtk_selection_notify): Clean
	up properly when selection property retrieval fails.

	* gtk/gtkselection.c (gtk_selection_request): Correctly
	reject SelectionRequest notifies where the handler
	returns no data.

Tue Apr  6 12:24:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_dest_leave): Only unhighlight
	when we've previously highlighted.

	* gtk/gtkdnd.c (gtk_drag_dest_handle_event): Don't
	emit two "drag_leave" signals for Motif drops.

	* gtk/gtkdnd.c (gtk_drag_source_handle_event): Send
	back the correct status messages when dropping from
	Motif onto a proxy window that is rejecting the
	drop.

Sat Mar 27 23:32:13 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkarg.[hc]: added functions from GLE, gtk_arg_reset() to free
	the value and reset type to GTK_TYPE_INVALID, and gtk_arg_values_equal()
	to compare two argument values. added gtk_arg_to_valueloc() to set a
	variable from an arg through its location (pointer).

	* gtk/gtkobject.[hc]: implemented gtk_object_get() in terms of
	gtk_object_arg_get() and gtk_arg_to_valueloc(), floats are collected
	as gfloat*, uchars are collected as guchar*, ints are collected as
	gint*, etc...

Mon Mar 29 17:45:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkaccelgroup.c gtk/gtkgtkbindings.c:
	Include <string.h> instead of <strings.h>.

	* gtk/gtkstyle.c: Fix double include of gtkthemes.h
	(actually, a lot more duplicate includes occur if
	 you trace through the sequence of #include's)
	gtk-jbb-990320-0: John Bley, jbb6@acpub.duke.edu

Mon Mar 29 17:02:58 1999  Owen Taylor  <otaylor@redhat.com>

        Patches from Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>
	gtk-a-higuti-990322-[0-3]

	* configure.in: Fix confusion between GTK_LOCALE_[C]FLAGS
	that was causing -DX_LOCALE not	to work.

	* gtk/gtkrc.c (gtk_rc_init):
	X_LOCALE will never have LC_MESSAGES defined

Thu Mar 25 12:38:31 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkrc.c (gtk_rc_append_default_module_path): get $HOME from
	g_get_home_dir() (gtk-pmc-990123-0.patch.gz).

	* gtk/gtkwindow.c (gtk_window_key_press_event): feature keypad up/down/
	left/right as well (gtk-michael-980726-0.patch.gz).

	* gtk/gtklabel.[hc]: bunch of miscellaneous cleanups, such as s/0/NULL/
	for pointer values, use gchar instead of char. fixed uline allocation
	leaks, changed the allocation pattern so we use G_ALLOC_AND_FREE mem
	chunks instead of G_ALLOC_ONLY.
	(gtk_label_size_request): always alter requisition as passed and leave
	widget->requisition alone.
	(gtk_label_set_text): allow NULL strings.
	(gtk_label_new): likewise.

Wed Mar 24 09:24:03 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkdrawingarea.[hc]: type/macro fixups.

Mon Mar 22 05:51:34 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkbin.c (gtk_bin_draw): only redraw children that are visible
	*and* mapped (i.e. drawable).
	(gtk_bin_expose): only send exposes to drawable children.

	* gtk/gtkbox.c (gtk_box_draw): only redraw children that are drawable.
	(gtk_box_expose): only send exposes to drawable children.

	* gtk/gtkhscale.c (gtk_hscale_draw):
	* gtk/gtkvscale.c (gtk_vscale_draw):
	hm, this is an ugly one. we first compute the size of our trough area
	here (window relative) and then check intersection with the draw_area
	which is parent relative because we're a NO_WINDOW widget, so we need
	to offset the trough area by allocation.x and allocation.y before the
	check. (this must not be done for the background area though, since
	that's already computed parent relative).

Mon Mar 22 00:41:39 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (gtk_clist_unrealize): unmap clist if neccessary,
	unrealize title buttons.

Fri Mar 19 00:00:22 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (gtk_clist_column_title_passive)
	(gtk_clist_column_title_active):
	only connect/disconnect to GtkWidgetClass::event to block mouse events.

	* gtk/gtkclist.c (vertical_timeout) (horizontal_timeout):
	zero initialize event, removed superfluous gdk_window_get_pointer call

	* gtk/gtklist.c (gtk_list_vertical_timeout)
	(gtk_list_horizontal_timeout): removed superfluous
 	gdk_window_get_pointer call

Wed Mar 17 09:00:00 1999  Tim Janik  <timj@gtk.org>

	* plugging problems reported by "Bruce Mitchener, Jr."
	<bruce@puremagic.com> due to a purify session.

	* gtk/gtkstyle.c:
	(gtk_style_ref):
	(gtk_style_unref): assert ref_count to be > 0.

	* gtk/gtkclist.c (gtk_clist_set_cell_style): { 0 } initilaize
	the requisition.
	(gtk_clist_set_shift): likewise.

	* gtk/gtklayout.c: introduce gtk_layout_finalize() to unref the
	adjustments.

	* gtk/gtklist.c (gtk_list_horizontal_timeout): zero initialize the
	event before sending it and set send_event to TRUE (which needs to
	be done for *all* synthesized events).
	(gtk_list_vertical_timeout): likewise.

	* gtk/gtktipsquery.c (gtk_tips_query_destroy): plug small memory
	leaks.

	* gtk/gtkdrawingarea.c (gtk_drawing_area_send_configure): set send_event
	to TRUE when synthesizing events.

[ *** end of merges from 1.2 *** ]
1999-11-22 21:52:50 +00:00
Jonathan Blandford
14237d13e2 make the symlink. Does not work for srcdir != buildir != . Beats me why; I
1999-11-22  Jonathan Blandford  <jrb@redhat.com>

	* configure.in (GDK_PIXBUF_DIR): make the symlink.  Does not work
	for srcdir != buildir != .  Beats me why; I can't figure it out.
	AC_OUTPUT_COMMANDS doesn't seem to let me substitute it correctly.
1999-11-22 20:43:58 +00:00
Jonathan Blandford
89e63f0595 more changes 1999-11-22 18:46:20 +00:00
Tor Lillqvist
143002cac5 Remove, as this is a file generated by configure (or copied from
1999-11-21  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkconfig.h: Remove, as this is a file generated by configure
(or copied from gdkconfig.h.win32 on Win32, sigh).

* gdk/gdkprivate.h: Mark gdk_parent_root for export from DLL.

* gdk/gdkgc.c (gdk_gc_alloc): Remove duplicated line.
1999-11-21 22:56:37 +00:00
Jonathan Blandford
0652653292 added io-bmp from Arjan <arjan@fenrus.demon.nl>
1999-11-21  Jonathan Blandford  <jrb@redhat.com>

        * src/gdk-pixbuf-io.c: added io-bmp from Arjan
        <arjan@fenrus.demon.nl>
1999-11-21 21:28:28 +00:00
Tor Lillqvist
7944e647c6 Fix typo.
1999-11-21  Tor Lillqvist  <tml@iki.fi>

* gdk/gdk.c (gdk_keyval_convert_case): Fix typo.

* gdk/gdkconfig.h.win32: New file.

* gdk/win32/makefile.cygwin: Build just a static archive here.

* gdk/makefile.cygwin: New file. Get the win32-specific stuff
for the DLL from the static archive built above.

* gdk/gdk.def: Moved here from the win32 subdirectory.

* gdk/win32/*: Adapt for the changed private struct organisation.

* gtk/makefile.{cygwin,msc}: Get gdk library from ../gdk now.
1999-11-21 21:21:58 +00:00
Stefan Jeske
09240118e1 Added support for wheel mice (buttons 4 and 5).
Sun Nov 21 16:44:35 1999  Stefan Jeske  <stefan@gtk.org>

        * gtk/gtkspinbutton.c (gtk_spin_button_button_press): Added support
        for wheel mice (buttons 4 and 5).
1999-11-21 15:55:45 +00:00
Michael Zucchi
7b4d53a529 Rework/reorder of the code. Each case has been separated into another
1999-11-20  Michael Zucchi  <zucchi@zedzone.mmc.com.au>

        * src/gdk-pixbuf-drawable.c (gdk_pixbuf_from_drawable_core):
        Rework/reorder of the code.  Each case has been separated into
        another function; its big but it should be quick.
        gdk_pixbuf_rgba_from_drawable() will now return a pixbuf with
        opaque alpha information.  Not all depths/formats have been
        tested, but 8, 15/16 and 24 (alinged 32) should work ok.
1999-11-20 05:39:54 +00:00
Tor Lillqvist
8e06c4d7f4 Further hacking. Now actually compiles. Haven't tried yet whether
actually does anything useful... Time for bed.
1999-11-20 01:22:57 +00:00
Tor Lillqvist
b6524a84f5 Intermediate commit. 1999-11-19 01:09:13 +00:00
Tor Lillqvist
c00a9a84ea Also for truecolor drawables use just the pixel field in the foreground
1999-11-18  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkgc-win32.c (gdk_gc_predraw): Also for truecolor
drawables use just the pixel field in the foreground and
background GdkColor of the GdkGC.

gdk_gc_set_{fore,back}ground() are called in the GIMP with
GdkColors containing uninitialized (red,green,blue) fields, and
just the pixel field filled in, and furthermore in the
visual-dependent format as returned by gdk_rgb_xpixel_from_rgb().
It thus turns out that we really don't need to have the full
GdkColor for fg and bg in GdkGCWin32Data after all. Will change
it later to have just the pixel values.

(Note that this version of gdkgc-win32.c still is the old gdkgc.c,
it won't compile in the reorganised directory structure.)
1999-11-18 22:03:24 +00:00
Larry Ewing
36a27c6759 implement the bounds method correctly. (compute_viewport_affine): compute
1999-11-17  Larry Ewing  <lewing@gimp.org>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_bounds):
	implement the bounds method correctly.
	(compute_viewport_affine): compute the affine need to fit the
	image within the viewport given by the args.
	(compute_render_affine): call compute_viewport_affine.
1999-11-17 23:21:34 +00:00
Jonathan Blandford
974e54fc9a patch from arjan to work better with ras files. 1999-11-17 21:02:33 +00:00
Tor Lillqvist
eec6970fe2 Intermediate commit. I go to bed now. 1999-11-17 00:45:37 +00:00
Havoc Pennington
3a330a3d6b Use includes from the current directory, not the system directory.
1999-11-16  Havoc Pennington  <hp@pobox.com>

* src/gdk-pixbuf-drawable.h: Use includes from the current
directory, not the system directory.
1999-11-16 23:30:51 +00:00
George Lebl
705168dab0 use includes from the current directory rather then from the system
Mon Nov 15 17:18:28 1999  George Lebl <jirka@5z.com>

	* src/testpixbuf-drawable.c: use includes from the current directory
	  rather then from the system include directory as gdk-pixbuf
	  includes are not yet installed when this is compiled.
1999-11-16 01:18:53 +00:00
Damon Chaplin
3a202479a8 fixed minor error - using <em>.
1999-11-16  Damon Chaplin  <damon@karuna.freeserve.co.uk>

	* gtk/tmpl/gtkmenubar.sgml: fixed minor error - using <em>.

	* gtk/tmpl/gtknotebook.sgml:
	* gtk/tmpl/gtklist.sgml: new sections from
	Nicolas George <george@clipper.ens.fr>, with help from
	"Bob Springett"	<bobspringett@claranet.fr>.

	* gtk/tmpl/gtkobject.sgml:
	* gtk/tmpl/gtkarg.sgml: new sections from
	David Benson <daveb@idealab.com>.

	* gtk/tmpl/gtkvbox.sgml:
	* gtk/tmpl/gtkhbox.sgml: fixed line endings.

	* gtk/tmpl/gtkvbbox.sgml: update from Lee Mallabone
	<lee0@callnetuk.com>

	* gdk/tmpl/drawing.sgml: fixed error in gdk_draw_arc() @angle2 param
	- it is relative to @angle1 rather than from the 3 o'clock position.

	* gtk/tmpl/gtkfontseldlg.sgml: changed enums to use @ fields.

	* gtk/tmpl/gtkcolorsel.sgml:
	* gtk/tmpl/gtkcolorseldlg.sgml:
	* gtk/tmpl/gtkprogress.sgml:
	* gtk/tmpl/gtkprogressbar.sgml: new sections from Tom Martone
	<tom@martoneconsulting.com>

	* gtk/tmpl/gtkclist.sgml: partially written documentation from
	Paul Schifferer <isengard@geocities.com> who won't be able to finish it
1999-11-16 00:33:10 +00:00
GMT 1999 Tony Gale
f3fcdb4e0e s/gtk_main_iteration/g_main_iteration/
Mon Nov 15 17:17:51 GMT 1999 Tony Gale  <gale@gtk.org>
        * docs/gtkfaq.sgml: s/gtk_main_iteration/g_main_iteration/
1999-11-15 17:20:43 +00:00
Owen Taylor
e4a2092603 More renames at the request of tml 1999-11-15 15:31:28 +00:00
GMT 1999 Tony Gale
ee3d137660 threads example from Erik Mouw. New question on GtkLabel background
Sat Nov 13 22:30:29 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/gtkfaq.sgml: threads example from Erik Mouw.
        New question on GtkLabel background colors.

        * docs/gtk_tut.sgml:
          - Correct the example code callback
            function definitions.
          - Update the gtkdial example code, from Frans van Schaik.
          - Update setselection.c to current API.

        * examples/Makefile examples/*/*.c: Update to code
        listed in tutorial.
1999-11-13 23:06:46 +00:00
Cody Russell
e4df9fa95b Added testpixbuf-drawable test program 1999-11-13 17:28:11 +00:00
Cody Russell
9599825ea9 Applying Michael Zucchi's changes to significantly speed up pixbuf from drawable code. 1999-11-13 01:27:21 +00:00
Tor Lillqvist
28bcddaca2 *** empty log message *** 1999-11-12 21:56:29 +00:00
Owen Taylor
af73e9d21b cvs remove the old files after copying the files over to the -win32 names in the repository 1999-11-12 16:06:39 +00:00
Tor Lillqvist
be83b5c9d3 re-adding 1999-11-11 22:15:09 +00:00
Tor Lillqvist
638ebcee70 re-adding for manual rename of repository files. 1999-11-11 22:12:27 +00:00
Tor Lillqvist
7ca8753ac5 *** empty log message *** 1999-11-11 22:01:55 +00:00
Tor Lillqvist
aee96e5e1b Re-adding removed files, in order for the renaming to *-win32
to be done manually in the repository.
1999-11-11 21:58:21 +00:00
Michael Fulbright
7e52fb900e Fixed typo.
Dr Mike <drmike@redhat.com>
1999-11-11 15:52:19 +00:00
Martin Norback
25ae5a77a2 Added some information about sorting 1999-11-11 11:20:00 +00:00
Federico Mena Quintero
cfb0266518 Populated.
1999-11-10  Federico Mena Quintero  <federico@redhat.com>

	* doc/tmpl/gdk-pixbuf-loader.sgml: Populated.

	* doc/gdk-pixbuf.signals: Put in the real names of signal
	arguments.

	* src/gdk-pixbuf-loader.c: Improved documentation comments.
1999-11-10 22:48:46 +00:00
Tor Lillqvist
23b50343c6 Fix a couple of bugs. The Unicode subrange table (from the "Developing
1999-11-10  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkfont-win32.c: Fix a couple of bugs. The Unicode
subrange table (from the "Developing International Software for
Windows 95 and Windows NT" book) was missing the Hangul syllable
block... Get the loaded font's charset correctly.

(Note that this, and the other *-win32.c files, still really are
the old ones, the win32 subdirectory is not ready for compilation
yet after the reorg.)
1999-11-10 21:37:48 +00:00
Jonathan Blandford
827c4c6d21 forgot this 1999-11-10 21:11:26 +00:00
Jonathan Blandford
19b42c342f emit the closed signal.
1999-11-10  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_close): emit the
	closed signal.
1999-11-10 21:06:40 +00:00
Michael Fulbright
16aa7c4316 Make default loading speed 40kB/s.
Dr Mike
1999-11-10 18:54:07 +00:00
Jonathan Blandford
d23b21018c Now can handle indexing correctly. Patch from Arjan to do so.
1999-11-10  Jonathan Blandford  <jrb@redhat.com>

	* src/io-ras.c (OneLineMapped_file): Now can handle indexing
	correctly.  Patch from Arjan to do so.
1999-11-10 18:47:39 +00:00
Michael Fulbright
d2bfbdb99e Fixed loading of ASCII PNM files.
1999-11-10  Michael Fulbright  <drmike@redhat.com>

        * src/io-pnm.c (pnm_ascii_read_scanline): Fixed loading of ASCII PNM
	files.

	* src/testpixbuf.c: Added final queued draw when done loading image.
1999-11-10 17:43:49 +00:00
Jonathan Blandford
12474a79ae removed spurious print statements.
1999-11-10  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-io.c (gdk_pixbuf_load_module): removed spurious
	print statements.
1999-11-10 17:30:13 +00:00
GMT 1999 Tony Gale
57d2bf74a6 Fix off-by-one bug in parameter check.
Wed Nov 10 17:26:49 GMT 1999 Tony Gale  <gale@gtk.org>

        * gtk/gtkclist.c: Fix off-by-one bug in parameter
        check.
1999-11-10 17:28:59 +00:00
Michael Fulbright
95d923f661 cleanup to remove warnings.
Dr Mike <drmike@redhat.com>
1999-11-10 17:17:17 +00:00
Owen Taylor
5a63c9488d Call XFreeDeviceState() on results of XQueryDeviceState().
Wed Nov 10 12:12:03 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkinput-{x11,xfree}.c: Call XFreeDeviceState()
	on results of XQueryDeviceState().
1999-11-10 17:15:58 +00:00
Arturo Espinosa
a3a4606eab Warning fixes - Federico 1999-11-10 15:45:24 +00:00
Federico Mena Quintero
b835084dfa Added documentation.
1999-11-10  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Added
	documentation.
1999-11-10 06:40:12 +00:00
Tor Lillqvist
84477de7fc Just renamed the Win32 backend files to *-win32. 1999-11-10 00:04:17 +00:00
Michael Fulbright
78141c328f Fixed up testpixbuf.c to simulate downloading at certain speed, set
env var TBF_KBPS=n to get n kBytes/sec.

Dr Mike
1999-11-09 23:51:35 +00:00
Michael Fulbright
39bb0d649c Possible unsigned int error.
Dr Mike
1999-11-09 23:35:41 +00:00
Michael Fulbright
87a2044934 Doh.
Dr Mike
1999-11-09 23:22:51 +00:00
Michael Fulbright
c9a347c8e9 Slight cosmetic cleanup.
1999-11-09  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpeg.c: Slight cosmetic cleanup.

	* src/io-pnm.c: Fixed raw PNM loading bug. Also discovered that ASCII
        PBM loading has a similar problem and will address tomorrow.
1999-11-09 23:21:08 +00:00
Havoc Pennington
9495faccfc build the gdk-pixbuf-drawable stuff.
1999-11-09  Havoc Pennington  <hp@pobox.com>

* src/Makefile.am (libgdk_pixbuf_la_SOURCES): build the
gdk-pixbuf-drawable stuff.
1999-11-09 22:23:35 +00:00
Arturo Espinosa
f9615262f2 0.4 - Federico 1999-11-09 21:38:26 +00:00
Arturo Espinosa
a1a2b8f0eb Added args and signals data files - Federico 1999-11-09 20:59:30 +00:00
Federico Mena Quintero
6c57e51ac9 Renamed arguments to width_in_pixels, height_in_pixels, x_in_pixels,
1999-12-13  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gnome-canvas-pixbuf.c
	(gnome_canvas_pixbuf_class_init): Renamed arguments to
	width_in_pixels, height_in_pixels, x_in_pixels, y_in_pixels, for
	consistency with the new canvas.
	(PixbufPrivate): Do the same renaming in the structure fields, for
	consistency.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Updated for new argument names.
1999-11-09 20:59:29 +00:00
Arturo Espinosa
aa09cabb94 Added args and signals data files - Federico 1999-11-09 20:59:29 +00:00
Michael Fulbright
5de53804a1 Figured out problem with loading Progressive JPEG's progressively (say
1999-11-09  Michael Fulbright  <drmike@redhat.com>

* src/io-jpeg.c (image_load_increment): Figured out problem with
loading Progressive JPEG's progressively (say that 10 times fast).
Currently for Progressive JPEG's the entire image is loaded before
it is displayed. libjpeg supports a fancier mechanism which I may
implement later.

With these changes all JPEG formats appear to load properly for me.
1999-11-09 17:24:15 +00:00
Michael Fulbright
665096fcdf Finished progressive PNM loading code. Should handle all types of PNM
1999-11-09  Michael Fulbright  <drmike@redhat.com>

	* src/io-pnm.c : Finished progressive PNM loading code. Should handle
	all types of PNM files now.
1999-11-09 16:38:31 +00:00
Owen Taylor
43529d911c Substitute gdkx.h => gdkprivate.h since we need to accesss only
Mon Nov  8 16:40:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c: Substitute gdkx.h => gdkprivate.h since
	we need to accesss only ->children. We need an accessor
	for the children.

	* gtk/gtkhandlebox.c gtk/testgtk.c: Substitute G
	DK_ROOT_PARENT() => NULL, in call to gtk_window_get_pointer()
	to get rid of gdkx.h include.

	* gtk/gtkctree.c: Get rid of #include <gdk/gdkx.h>
	and random references to 'None'.

	* gtk/gtkclist.c gtk/gtkeditable.c gtk/gtkpreview.c
	Get rid of unused #include <gdk/gdkx.h>

	* gtk/gtkrc.c gtk/gtkmain.c: Get rid of #include <gdk/gdkx.h>
	gdkx.h is _X_ specific stuff. GDK_WINDOWING comes from
	gdkconfig.h.
1999-11-08 22:33:28 +00:00
Tor Lillqvist
b5f414a1a5 gdk/win32/gdkdraw.c gdk/win32/gdkfont.c Various minor cleanups and
1999-11-08  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkdraw.c
* gdk/win32/gdkfont.c
* gdk/win32/gdkgc.c: Various minor cleanups and bugfixes
following yesterday's changes. (Unrelated to Owen's reorg.)
1999-11-08 21:34:06 +00:00
Owen Taylor
5491cd971d Add missing include, fix GdkWindowPrivate => GdkDrawablePrivate.
Mon Nov  8 16:18:25 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkinput-gxi.c: Add missing include,
	  fix GdkWindowPrivate => GdkDrawablePrivate.

	* gdk/x11/gdkinputprivate.h: include <X11/Xlib.h>.

	* gdk/x11/Makefile.am (xinput_sources): Add missing
	backslash to fix building with --with-xinput=none
1999-11-08 21:25:04 +00:00
Owen Taylor
e9b6bfcc01 Move all X specific code into the x11/ directory. Aside from shuffling
Mon Nov  8 14:47:04 1999  Owen Taylor  <otaylor@redhat.com>

	Move all X specific code into the x11/ directory.
	Aside from shuffling things around, did the following:

       * gdk/gdkprivate.h gdk/gdk.h gdk/x11/gdkmain-x11.h: Add
	 gdk_arg_context_* - a simple argument parsing system
	 in the style of popt.

       * gdk/gdkdrawable.[ch] gdk/gdkprivate.h gdk/gdkwindow.[ch]
	 gdk/x11/gdkprivate-x11.h:
	 Remove X specific stuff from GdkDrawable and GdkWindowPrivate -
	 add ->klass and ->klass_data fields. The klass_data
	 field points to an auxilliary structure that is
	 windowing system dependent.

       * gdk/gdkfont.c: Make most of the measurement functions
	 simply wrappers around gdk_text_extents().

       * gdk/gdkfont.c gdk/gdkprivate.h gdk/x11/gdkfont-x11.c: Add a
	 _gdk_font_strlen() function that hides the weird
	 behavior in gtk+-1.[02] where a string is interpreted
	 differently for 8-bit and 16-bit fonts.

       * gdk/gdkevents.c: Add a new function gdk_event_button_generate()
	 to store common code for synthesizing double/triple
	 press events.

       * gdk/gdkgc.[ch]: Virtualize in the same way as gdkdrawable.h.
	 Make all the function that modify an existing GC
	 simply wrappers around gdk_gc_set_values().

       * gdk/gdkcc.[ch]: Moved into x11/ directory in preparation
	 for throwing out later.

       * gdk/gdkfont.c gdk/gdkimage.c gdk/gdkcolor.c: Change GdkFontPrivate,
	 GdkImagePrivate and GdkColormapPrivate to have a
	 windowing system dependent part (GdkFontPrivateX etc.)
	 that "derives" from the system-independent part.

       * configure.in gdk/x11/Makefile.in gdk/x11/gdkinput*.c:
	 Got rid of the included-source-files for XInput in
	 favor of automake conditionals. (Which didn't exist
	 when XInput support was originally added.)

       * gdk/gdkrgb.c: Remove the visual id from the debugging
	 statements since that is X11 specific; print out
	 type/depth info instead.
1999-11-08 20:14:59 +00:00
Jonathan Blandford
cd02981bf2 Final patch from Arjan. Seems to do progressive loading.
1999-11-08  Jonathan Blandford  <jrb@redhat.com>

	* src/io-ras.c (image_load_increment): Final patch from Arjan.
	Seems to do progressive loading.
1999-11-08 19:37:45 +00:00
Michael Fulbright
ce83490d75 Fixed so we do not create a separate pixel buffer when reading in image -
1999-11-08  Michael Fulbright  <drmike@redhat.com>

	* src/io-pnm.c image_load (): Fixed so we do not create a separate
	pixel buffer when reading in image - we reuse the pixel data in
	the GdkPixbuf structure instead.
1999-11-08 19:02:58 +00:00
Michael Fulbright
6ef7f093d4 Added support for ASCII PNM files. Note I haven't tested loaded ASCII PBM
1999-11-08  Michael Fulbright  <drmike@redhat.com>

	* src/io-pnm.c pnm_read_ascii_scanline (): Added support for
	ASCII PNM files. Note I haven't tested loaded ASCII PBM files because
	I can't seem to find a utility to convert into this format.
	Next is to add progressive loading support for the PNM format.
1999-11-08 17:15:19 +00:00
Federico Mena Quintero
e11f22b55e Finished detailed explanation of the width, height, x, and y setting and
1999-11-07  Federico Mena Quintero  <federico@redhat.com>

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Finished detailed explanation
	of the width, height, x, and y setting and pixels arguments.
1999-11-08 04:19:34 +00:00
Tor Lillqvist
0ad4aa57d6 New font private structures, related to fontsets.
1999-11-07  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkprivate.h: New font private structures, related to
fontsets.

* gdk/win32/gdkfont.c: New functions gdk_font_list_new() and
gdk_font_list_free(). On X11, will just be wrappers to
XListFonts() and XFreeFontNames(). On Win32, the code previously
in gtkfontsel.c is now here.

New function gdk_font_xlfd_create(). On X11 will get the FONT
property of the font (for GDK_FONT_FONTs), or call
XBaseFontNameListOfFontSet (for GDK_FONT_FONTSETs), on Win32
builds a XLFD style name from the font information in the LOGFONT
struct(s).

New function gdk_font_xlfd_free(), which correspondingly frees the
string returned by gdk_font_xlfd_create().

Implement fontsets on Win32. Add a function that iterates over a
wide char string and calls a callback function for each substring
of wide chars from the same Unicode subrange (and thus probably
available in the same real font).

Improve the XLFD emulation a bit.

* gdk/win32/gdkim.c (gdk_nmbstowchar_ts): Small bugfix.

* gdk/win32/gdkevents.c: Workaround for suspected bug on Win2k
Beta3, WM_IME_CHAR messages don't seem to contain the composed
multi-byte char as with the Active IMM on Win9x. Oh well, handle
WM_IME_COMPOSITION with GCS_RESULTSTR instead, use
ImmGetCompositionStringW() to get the composed Unicode chars.

* gdk/win32/gdkgc.c
* gdk/win32/gdkdraw.c: Changes needed because of the font private
struct changes.

* gdk/win32/gdk.def: Add the new functions.
1999-11-08 00:09:29 +00:00
Federico Mena Quintero
559a8c8691 Removed gdk-pixbuf-io, since it is for internal use only.
1999-11-05  Federico Mena Quintero  <federico@redhat.com>

	* doc/gdk-pixbuf-sections.txt: Removed gdk-pixbuf-io, since it is
	for internal use only.

	* doc/gdk-pixbuf.sgml: Likewise.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Finished docs.
1999-11-05 23:58:23 +00:00
Michael Fulbright
66d02a986a Implemented support for reading raw PBM/PGM/PPM files from a file. Next
1999-11-05  Michael Fulbright  <drmike@redhat.com>

	* src/io-pnm.c: Implemented support for reading raw PBM/PGM/PPM
	files from a file. Next step is support for ASCII files, and
	then incremental loading.
1999-11-05 23:17:35 +00:00
Jonathan Blandford
8db40e177c third patch. Now it seems to load.
1999-11-05  Jonathan Blandford  <jrb@redhat.com>

	* src/io-ras.c (image_load): third patch.  Now it seems to load.
1999-11-05 22:42:17 +00:00
Jonathan Blandford
9ab8dfc3e4 second patch Arjan van de Ven <arjan@fenrus.demon.nl> to autodetect/load
1999-11-05  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-io.c: second patch Arjan van de Ven
	<arjan@fenrus.demon.nl> to autodetect/load the sunras files.
1999-11-05 21:29:33 +00:00
Jonathan Blandford
b71e53b222 new file from Arjan van de Ven <arjan@fenrus.demon.nl> to begin the ras
1999-11-05  Jonathan Blandford  <jrb@redhat.com>

	* src/io-ras.c (image_load): new file from Arjan van de Ven
	<arjan@fenrus.demon.nl> to begin the ras loader.
1999-11-05 20:37:08 +00:00
Federico Mena Quintero
155f3e05e2 Added doc to SUBDIRS.
1999-11-04  Federico Mena Quintero  <federico@redhat.com>

	* Makefile.am: Added doc to SUBDIRS.
1999-11-05 01:58:54 +00:00
Michael Fulbright
01fcce4cf9 Prettied up code slightly. Start of pnm loader (from file and
999-11-04  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpeg.c: Prettied up code slightly.
	* src/io-pnm.c:  Start of pnm loader (from file and progressively).
	                 Doesn't do much yet (will finish tomorrow).
	* src/gdk-pixbuf-io.c: Added pnm to structure of known types.
1999-11-05 00:16:10 +00:00
Tor Lillqvist
f527b8909f Don't define HAVE_DIMM_H if MSC, as you have to get the Platform SDK to
1999-11-04  Tor Lillqvist  <tml@iki.fi>

* config.h.win32: Don't define HAVE_DIMM_H if MSC, as you have to
get the Platform SDK to get <dimm.h>.

* gdk/win32/gdkevents.c: More event handling fixes and
simplification. Never generate motion events with is_hint true. We
used to do that on bogus grounds earlier. Windows sends
WM_MOUSEMOVE messages on button events even if the mouse hasn't
moved, ignore these.

* gdk/win32/gdkfont.c: Load all fonts as (pretended) fontsets.

* gdk/win32/gdkglobals.c
* gdk/win32/gdkprivate.h: Define a typedef for the pointer to
the TrackMouseEvent function, and use it.

* gdk/win32/gdkwindow.c: Terminate widechar string with a zero
char before calling WideCharToMultiByte in order to get a string
for the window title.

* gdk/win32/gdkdnd.c: Some more random hacking, ifdeffed out.

* gdk/win32/gdk.def: Remove obsolete functions.

* gdk/win32/makefile.{cygwin,msc}: Remove gdkcompat.{o,obj}. Add
/nodefaultlib and /defaultlib switches.

* gtk/gtkrc.c: s/gwin_getlocale/g_win32_getlocale/.
1999-11-04 23:42:51 +00:00
Arturo Espinosa
9d8da16ee9 More docs work - Federico 1999-11-04 21:52:08 +00:00
Jonathan Blandford
76f716cec7 added the update_func ability
1999-11-04  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (gif_get_lzw): added the update_func ability
1999-11-04 20:34:24 +00:00
Havoc Pennington
085a27d330 In docs, explain what a dither offset is for.
1999-11-04  Havoc Pennington  <hp@pobox.com>

* src/gdk-pixbuf-render.c (gdk_pixbuf_render_to_drawable): In
docs, explain what a dither offset is for.
(gdk_pixbuf_render_to_drawable_alpha): Explain why you would use
this function vs. gdk_pixbuf_render_to_drawable().
1999-11-04 20:16:17 +00:00
Havoc Pennington
38abc0dee0 Use libart-config correctly; find gnome-config separately. Fix GNOME_LIBS
1999-11-04  Havoc Pennington  <hp@pobox.com>

* configure.in: Use libart-config correctly; find gnome-config
separately. Fix GNOME_LIBS to be correct in "no gnome installed
yet" case.

* src/Makefile.am: Link to GNOME_LIBS instead of a hardcoded
library list.

Patch untested in the inside-gnome-libs case, I need to commit
then check out to the gnome-libs I'm using.
1999-11-04 20:04:02 +00:00
Michael Fulbright
4107506f65 Add update_func callback. Call updated callback when new graphic data
1999-11-04  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpeg.c (image_begin_load): Add update_func callback.
	* src/io-jpeg.c (image_load_increment): Call updated callback when
	new graphic data decoded.
1999-11-04 20:02:37 +00:00
Jonathan Blandford
5d0e9b4a2e fix .tiff loader.
add a testcase for the "updated_area"
1999-11-04 19:22:45 +00:00
Jonathan Blandford
d0ed72ee14 handle the actual update. add a update_func callback. add a update_func
1999-11-04  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_update): handle the
	actual update.
	* src/io-png.c (image_begin_load): add a update_func callback.
	* src/io-gif.c (image_begin_load): add a update_func callback.
	* src/io-tiff.c (image_begin_load): add a update_func callback.
1999-11-04 18:18:07 +00:00
Federico Mena Quintero
567305020d Populated.
1999-11-04  Federico Mena Quintero  <federico@redhat.com>

	* doc/tmpl/gdk-pixbuf.sgml: Populated.

	* doc/tmpl/refcounting.sgml: Populated.

	* doc/tmpl/file-loading.sgml: Populated.

	* src/gdk-pixbuf.c: Added documentation comments.

	* src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_file): Added
	documentation comments.
1999-11-04 08:14:32 +00:00
Federico Mena Quintero
e9cebcd36a Finished integrating the documentation framework.
1999-11-04  Federico Mena Quintero  <federico@redhat.com>

	* doc/: Finished integrating the documentation framework.
1999-11-04 07:30:04 +00:00
Arturo Espinosa
6a3f4d81e9 Eek - Federico 1999-11-04 07:03:10 +00:00
Arturo Espinosa
d5015025ba Integrate gtk-doc, part 1; need to finish it at home - Federico 1999-11-04 01:10:05 +00:00
Arturo Espinosa
e03c0632ad Sync - Federico 1999-11-03 23:58:37 +00:00
Jonathan Blandford
58e68f9683 minor packing change 1999-11-03 23:39:58 +00:00
Jonathan Blandford
7cdf9176e1 renamed ReadOK to gif_read. Added a lot of comments to the file.
1999-11-03  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (gif_read): renamed ReadOK to gif_read.
	Added a lot of comments to the file.
1999-11-03 23:22:27 +00:00
Jonathan Blandford
5ee4989714 Remove dependency on lib*gif!!!!
1999-11-03  Jonathan Blandford  <jrb@redhat.com>

	* src/Makefile.am (libpixbuf_gif_la_LIBADD): Remove dependency on
	lib*gif!!!!

Also, some code cleanups to io-gif
1999-11-03 22:27:59 +00:00
Jonathan Blandford
5869210788 set the transparency to the right val.
1999-11-03  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (gif_get_lzw): set the transparency to the right
          val.
1999-11-03 22:19:42 +00:00
Michael Fulbright
317e8b06ae Further removal of bugginess in local buffering code. Handles grayscale
1999-11-03  Michael Fulbright  <msf@redhat.com>

	* src/io-jpeg.c (image_load_increment): Further removal of
	bugginess in local buffering code. Handles grayscale jpegs
	correctly now.

	* src/io-jpeg.c (image_load_stop): Was freeing local context
	for jpeg library before calling jpeg_decompres_finish ().
1999-11-03 22:00:27 +00:00
Jonathan Blandford
677a78b56a now handle arbitrary buffer sizes.
1999-11-03  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (image_load_increment): now handle arbitrary buffer
	sizes.
1999-11-03 21:52:16 +00:00
Federico Mena Quintero
0b0e66db4b Initiailize the x and y fields. (gnome_canvas_pixbuf_destroy): Queue a
1999-11-03  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_init):
	Initiailize the x and y fields.
	(gnome_canvas_pixbuf_destroy): Queue a redraw upon destruction.
	(PixbufPrivate): Renamed need_size_update to need_xform_update.
	(recompute_bounding_box): Do not use temporary values.
1999-11-03 21:26:52 +00:00
Jonathan Blandford
87a9022b72 new state. Fixes un-compressed gifs.
1999-11-03  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (set_gif_lzw_clear_code): new state.  Fixes
	un-compressed gifs.

	* src/gnome-canvas-pixbuf.c (recompute_bounding_box): remove
	unneeded x,y,h,w vars.
1999-11-03 21:22:38 +00:00
Larry Ewing
d0e4efb401 adjust render_affine calculation for x,y offsets.
1999-11-03  Larry Ewing  <lewing@gimp.org>

	* src/gnome-canvas-pixbuf.c (compute_render_affine): adjust
	render_affine calculation for x,y offsets.
	(gnome_canvas_pixbuf_set_arg): add x,y args.
	(gnome_canvas_pixbuf_get_arg): add x,y args.
	(recompute_bounding_box): simply code using ArtDrect and the
	render_affine.  Removed compute_xform_vectors as it was no longer
	needed.
1999-11-03 20:57:04 +00:00
Federico Mena Quintero
80ce14813b I'm a doofus. Return a distance, not a boolean, for opaque images.
1999-11-03  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_point): I'm a
	doofus.  Return a distance, not a boolean, for opaque images.
1999-11-03 20:39:27 +00:00
Federico Mena Quintero
ba718c979c Do proper rounding of bounding box coordinates.
1999-11-03  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (recompute_bounding_box): Do proper
	rounding of bounding box coordinates.
	(gnome_canvas_pixbuf_bounds): Implemented the ::bounds() method.
	(gnome_canvas_pixbuf_draw): Use the correct alpha threshold value.
1999-11-03 20:26:32 +00:00
Jonathan Blandford
6e0687de46 forgot this 1999-11-03 17:45:41 +00:00
Jonathan Blandford
a8ec2c3b9f s/lwz/lzw/g
1999-11-03  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (gif_prepare_lzw): s/lwz/lzw/g
1999-11-03 17:45:24 +00:00
Michael Fulbright
3d5a2b1230 Fixed code which moved buffer around as new data comes in to work
1999-11-03  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpg.c image_load_increment(): Fixed code which moved
	buffer around as new data comes in to work properly. JPEG progressive
	loading should be working now except for grayscale JPEG's, which I
1999-11-03 17:17:32 +00:00
Michael Fulbright
afed181c0a changelog 1999-11-03 17:17:11 +00:00
Jonathan Blandford
66bf26d42d initialize a variable; kill a bug 1999-11-03 16:40:43 +00:00
Elliot Lee
5a3e3916f5 A GtkFunction needs to return a value for deterministic behaviour. Also
A GtkFunction needs to return a value for deterministic behaviour. Also put dot printing back in.
1999-11-03 15:57:16 +00:00
3
59ab307a62 Read 'til the next empty block correctly, now.
1999-11-03    <jrb@redhat.com>

	* src/io-gif.c (gif_get_extension): Read 'til the next empty block
	correctly, now.
1999-11-03 05:12:02 +00:00
Arturo Espinosa
1c1e3424c1 Sync to laptop - Federico 1999-11-03 03:16:21 +00:00
Cody Russell
8e6f4fc803 src/gdk-pixbuf-drawable.c: Changed the behavior to return NULL if part of
the requested image is offscreen, rather than clipping the image.
1999-11-03 00:37:40 +00:00
Jonathan Blandford
1588285e3a Fill in the gif's blank areas for interlacing and progressive loading.
1999-11-02  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (gif_fill_in_lines): Fill in the gif's blank areas
	for interlacing and progressive loading.
1999-11-03 00:20:27 +00:00
Cody Russell
07c656cdf1 src/gdk-pixbuf-drawable.c (gdk_pibxuf_from_drawable_core): Now calls
gdk_pixbuf_new_from_art_pixbuf() instead of gdk_pixbuf_new().
1999-11-02 23:59:03 +00:00
Jonathan Blandford
53d5c49dbb Now progressive gif loading works! It's a little slow though. )-:
1999-11-02  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (gif_main_loop): Now progressive gif loading works!
	It's a little slow though. )-:
1999-11-02 23:49:22 +00:00
Elliot Lee
587d91caad Make the arguments to the write/load_increment operations const-correct.
* src/gdk-pixbuf-loader.[ch], src/gdk-pixbuf-io.h: Make the arguments to the
write/load_increment operations const-correct.
1999-11-02 23:44:32 +00:00
Federico Mena Quintero
cacae33871 Implemented the ::point() method. We do a simple containment test instead
1999-11-02  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_point):
	Implemented the ::point() method.  We do a simple containment test
	instead of a full distance calculation since the canvas is going
	to change to that scheme, anyways.
1999-11-02 23:11:09 +00:00
Elliot Lee
d611593ffd Allow using $TBF_READLEN to specify the size of the chunks that are read
* src/testpixbuf.c: Allow using $TBF_READLEN to specify the size of the chunks that are read from
the input file.
1999-11-02 22:01:43 +00:00
Elliot Lee
b953e64bc6 Always return the amount eaten, rather than the full header size.
Always return the amount eaten, rather than the full header size.
1999-11-02 21:49:46 +00:00
Elliot Lee
966ae7b613 Return TRUE if all the data got eaten by header_buf, instead of FALSE.
Return TRUE if all the data got eaten by header_buf, instead of FALSE.
1999-11-02 20:20:05 +00:00
Larry Ewing
9efff07116 add aa render function. (gnome_canvas_pixbuf_class_init): add
1999-11-02  Larry Ewing  <lewing@gimp.org>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_render): add aa
	render function.
	(gnome_canvas_pixbuf_class_init): add gnome_canvas_pixbuf_render
	to class.
1999-11-02 19:43:48 +00:00
Arturo Espinosa
0dcfd50a96 Sync for Larry - Federico 1999-11-02 19:31:11 +00:00
Michael Fulbright
dc999ba470 changelog 1999-11-02 18:26:51 +00:00
Elliot Lee
97688fd28e revert 1999-11-02 17:17:00 +00:00
Elliot Lee
bf146c95a1 Reorganize gdk_pixbuf_loader_write into three functions, and eliminate
* src/gdk-pixbuf-loader.c: Reorganize gdk_pixbuf_loader_write into three functions, and eliminate
duplication of code from write() and close(). Also fix bug where the 128-byte header was being
written twice.
1999-11-02 16:10:25 +00:00
Federico Mena Quintero
8c361eed9c Fixed bounding box computation.
1999-11-01  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (recompute_bounding_box): Fixed
	bounding box computation.
1999-11-02 02:17:06 +00:00
Arturo Espinosa
d39cbe9c2b Sync - Federico 1999-11-02 01:50:41 +00:00
Federico Mena Quintero
69fb59dd3b Start of the pixbuf canvas item. Drawing affines seem to work. Bounding
1999-11-01  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c: Start of the pixbuf canvas item.
	Drawing affines seem to work.  Bounding box is fubared.  ::point()
	is not implemented.  This is a work in progress.

	* src/Makefile.am: Added gnome-canvas-pixbuf.[ch] to the list of
	sources.

	* configure.in: Sigh.  We need to link in libgnomeui for the
	canvas stuff.  This mess will disappear when gdk-pixbuf gets
	folded into gnome-libs.
1999-11-02 01:50:06 +00:00
Jonathan Blandford
5dcc2ddd51 lots of lots of work. USE AT YOUR OWN RISK 1999-11-02 01:17:41 +00:00
Arturo Espinosa
c3b9b0f7f4 Sync to desktop - Federico 1999-11-01 19:09:20 +00:00
Jonathan Blandford
827b818ed1 much more work on the progressive loader.
somewhere, some how, I broke something, )-: so all you get is a black
image.  Hopefully, we can load the real image later.
1999-11-01 13:26:03 +00:00
Tor Lillqvist
00c5e83871 Add new keysyms from X11R6.4 (including EuroSign).
1999-10-31  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkkeysyms.h: Add new keysyms from X11R6.4 (including
EuroSign).

* gdk/gdktypes.h: Add note about wchar_t not necessarily being the
same type as GdkWChar, especially on Win32.

* gdk/win32/*.c: Change gdk_root_parent to be a pointer.

* gdk/win32/*.c: Assume all strings are UTF-8. Convert to Unicode
before passing to Windows GDI for drawing etc. Convert to the
system default codepage before passing to Windows as window
titles.

* gdk/win32/gdkprivate.h: Add more fields to GdkWindowPrivate to
support changing input locale on the fly.

* gdk/win32/gdkevent.c: Support input language (keyboard locale)
on-the-fly changes. Convert incoming characters from the current
codepage to Unicode (and then to a UTF-8 multi-byte string) based
on the current input language. Use keysym<->Unicode mapping tables
and functions borrowed from xterm sources.

Support IMEs (Input Method Editors) for CJK languages. On non-CJK
editions of Win9x, use the ActiveX-based Active IMM (Input Method
Manager) if available. IMEs and the Active IMM are available under
the disguise of Chinese, Korean and Japanese support for IE and
Outlook Express from "Windows Update" for Win98. On Win2k, the CJK
support is present in all editions (as long as you install it).

Call DispatchMessage from gdk_events_queue() (and thus
gdk_WindowProc()), instead of duplicating the code in
gdk_WindowProc().

Reworked the grab handling and propagation code, factored out
duplicated code snippets into separate functions. Other cleanups,
too.

* gdk/win32/surrogate-dimm.h: Provide just the bits we need from
the <dimm.h> header describing the Active IMM.

* gdk/win32/gdkfont.c: Pretend to support fontsets, but so far
just do the same as for "single" fonts.

* gdk/win32/gdk.c: Call CoInitialize() (COM initialisation) from
gdk_init_check, and CoUninitialize() from gdk_exit_func. Handle
the new keysyms from gdkkeysyms.h.

* gtk/gtkfontsel.c (Win32): Load the font for the preview as a
fontset, so that gtkentry uses wide characters.

* gtk/gtkrc.c (Win32): Get the locale with gwin_getlocale(). Call
GTk+'s system directory "gtk+", not "gtk".
1999-10-31 21:35:39 +00:00
Tor Lillqvist
241f9c9dab Comments. 1999-10-31 20:30:20 +00:00
Tor Lillqvist
896d8ff3ce New file for building the message catalogs on Win32. Generic, used also in
1999-10-31  Tor Lillqvist  <tml@iki.fi>

* makefile.cygwin: New file for building the message catalogs on
Win32. Generic, used also in GIMP's po and po-plug-ins
directories. On Win32 we use UTF-8, and we convert the .po files
to UTF-8 in two passes using the useful native2ascii tool from the
JDK.
1999-10-31 20:28:23 +00:00
Jonathan Blandford
f3a218acc0 now gif loading works. Time to de-stiticify it and move onto progressive loading 1999-10-31 01:13:25 +00:00
Jonathan Blandford
4adda6ef1f quick hack to restore wotrkingness to regular gifs. Creates a RGBA buffer independent of the gif type. I'll try to get it right later. 1999-10-30 23:17:06 +00:00
0
bcad6d8598 (ReadImage): lets get the offset right. This will let transparent gifs
1999-10-30    <jrb@redhat.com>

	(ReadImage): lets get the offset right.  This will let transparent
	gifs work.


Right now, gifs with transparency, both interlaced and non-interlaced,
seem to work perfectly fine.  I haven't tried grayscale gifs yet, and I
seem to be getting offset in my RGB buffer with non-alpha gifs. )-:
This leads to pretty, but incorrect, images.

-Jonathan
1999-10-30 23:07:18 +00:00
0
bcf6c51c4c Some more work. Now it generates a gdk_pixbuf of the right size, at a
1999-10-30    <jrb@redhat.com>

	* src/io-gif.c: Some more work.  Now it generates a gdk_pixbuf of
	the right size, at a minimum, even if the image is squished and
	the wrong color.
1999-10-30 22:04:27 +00:00
Jonathan Blandford
2a2a599120 First run at the new gif format. Shouldn't work, unfortunately. 1999-10-30 19:28:53 +00:00
BST 1999 Tony Gale
a44d5aeaab FAQ update
Sat Oct 30 13:17:18 BST 1999 Tony Gale <gale@gtk.org>

        * docs/gtkfaq.sgml: FAQ update
1999-10-30 12:02:43 +00:00
Michael Fulbright
fcdf947205 Fixed small oopsie with grayscale jpeg handling - still not working for progressive 1999-10-29 23:07:23 +00:00
Michael Fulbright
40dfa38a36 Removed erroneous comments.
Dr Mike <drmike@redhat.com>
1999-10-29 22:54:02 +00:00
Michael Fulbright
05505d6a1d image_load_increment(): Fixed bug when image width was not a multiple of 4
1999-10-29  Michael Fulbright  <drmike@redhat.com>

        * src/io-jpeg.c: image_load_increment(): Fixed bug when
        image width was not a multiple of 4 - always use the
        gdk_pixbuf rowstride to increment pointers!
1999-10-29 22:43:51 +00:00
Michael Fulbright
a4a876d70e Added first cut at progressive jpeg loading. Currently does not handle
999-10-29  Michael Fulbright  <drmike@redhat.com>

        * src/io-jpeg.c: Added first cut at progressive jpeg loading.
        Currently does not handle either progressive jpeg files (jpeg
        files with multiple scans at different quality settings), but
        I plan on adding this support soon. These are fairly rare in
        my experience, so it shouldn't slow people down too much.
        Grayscale jpegs also don't work but that should be easy to fix.
1999-10-29 22:37:27 +00:00
Michael Fulbright
a3fd5f8d9a Added title to windows so you can identify progressive and file windows.
1999-10-29  Michael Fulbright  <drmike@redhat.com>

	* src/testpixbuf.c: Added title to windows so you can identify
	progressive and file windows.
1999-10-29 22:32:47 +00:00
Michael Fulbright
5749f310e4 Actually load the image handler when we determine the image type.
1999-10-29  Michael Fulbright  <drmike@redhat.com>

        * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): Actually
        load the image handler when we determine the image type.

        * src/gdk-pixbuf-io.[ch] (gdk_pixbuf_load_module): Changed the
        previously static function load_image_handler () to
        a public function gdk_pixbuf_load_module (). It is needed in
        gdk-pixbuf-loader.c to load image handler modules.  This function
        is different from gdk_pixbuf_get_module (), which only returns
        a reference to the required handler, because it actually loads
        the handler into memory. Both actions should possibly be combined
        in a convenience function since one w/o the other doesn't seem to
        make much sense.
1999-10-29 19:27:51 +00:00
Federico Mena Quintero
ece5ac121a New function to render a portion of a pixbuf to a drawable. Ignores alpha
1999-10-28  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-render.c (gdk_pixbuf_render_to_drawable): New
	function to render a portion of a pixbuf to a drawable.  Ignores
	alpha information and takes in a GC.
	(gdk_pixbuf_render_to_drawable_alpha): New function to render a
	portion of a pixbuf to a drawable.  It automatically creates a GC
	and a clipping mask for alpha pixbufs.
1999-10-28 23:25:02 +00:00
Jonathan Blandford
7e96137070 don't send a 0 length buffer.
1999-10-28  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): don't send a
	0 length buffer.
1999-10-28 19:30:11 +00:00
Jonathan Blandford
9a1c50c961 turned convenience macros into convenience
1999-10-28  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf.h: turned convenience macros into convenience
1999-10-28 19:00:02 +00:00
Jonathan Blandford
0a810f950f *src/io-tiff.c (image_begin_load): Finished the incremental loader.
1999-10-28  Jonathan Blandford  <jrb@redhat.com>

	*src/io-tiff.c (image_begin_load): Finished the incremental loader.
1999-10-28 16:40:15 +00:00
Arturo Espinosa
941167e6d8 Sync to desktop - Federico 1999-10-28 16:13:49 +00:00
Jonathan Blandford
5a8b538ee1 started work on the tiff non-incremental loader.
1999-10-28  Jonathan Blandford  <jrb@redhat.com>

	* src/io-tiff.c (image_load_increment): started work on the tiff
	non-incremental loader.

	* src/io-gif.c (image_load_increment): started work on the gif
	incremental loader.

	* src/gdk-pixbuf-io.h: Changed ModuleType to GdkPixbufModule.
1999-10-28 14:46:46 +00:00
Arturo Espinosa
53ffebed19 Sync to laptop - Federico 1999-10-28 00:34:59 +00:00
Federico Mena Quintero
0eb096334e New function to threshold a pixbuf's alpha channel into a bitmap.
1999-10-27  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-render.c (gdk_pixbuf_render_threshold_alpha): New
	function to threshold a pixbuf's alpha channel into a bitmap.

	* src/gdk-pixbuf.c (gdk_pixbuf_new): Fixed so that it will
	contemplate future extensions to ArtPixBuf's formats.

	* src/io-png.c (png_info_callback): Use the new API of gdk_pixbuf_new().

	* src/gdk-pixbuf.h (gdk_pixbuf_get_height): Added some convenience
	macros to fetch the ArtPixBuf's fields.
1999-10-27 23:36:44 +00:00
Havoc Pennington
3176b6b3ea blank space cleanups 1999-10-27 20:16:37 +00:00
Havoc Pennington
be374ad560 Display the progressive load
1999-10-27  Havoc Pennington  <hp@pobox.com>

* src/testpixbuf.c (main): Display the progressive load

* src/io-png.c (setup_png_transformations): Break transformation
code into separate function
(png_info_callback): Use setup_png_transformations
1999-10-27 19:42:34 +00:00
Arturo Espinosa
9ee4ff5eee Make it build - Federico 1999-10-27 19:15:37 +00:00
Havoc Pennington
54f017171f Check properly whether the XPM module has already been loaded
1999-10-27  Havoc Pennington  <hp@pobox.com>

* src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Check
properly whether the XPM module has already been loaded
(gdk_pixbuf_new_from_file): Check properly if loader module
was already loaded (was checking if load symbol was present
in order to decide whether to re-load; should check module !=
NULL, then load != NULL)
(image_handler_load): Check in present working directory,
makes it easier to debug for now
(file_formats): This array initializer was seriously on crack,
was assigning a function pointer to a GModule*

* src/testpixbuf.c (main): Change type of pixbuf_loader to GdkPixbufLoader*

* src/io-png.c: Progressive loading stuff compiles, untested.
1999-10-27 18:55:00 +00:00
Havoc Pennington
2ec115ea80 oops 1999-10-27 18:24:20 +00:00
Havoc Pennington
5ebe49fdbd Fix typo that prevented compilation (gdk_pixbuf_loader_destroy): ditto
1999-10-27  Havoc Pennington  <hp@pobox.com>

* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_finalize):
Fix typo that prevented compilation
(gdk_pixbuf_loader_destroy): ditto
1999-10-27 18:24:05 +00:00
Federico Mena Quintero
23b0f15ee8 Return a GdkPixbufLoader, not a GtkObject.
1999-10-27  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_new): Return a
	GdkPixbufLoader, not a GtkObject.
	(gtk_marshal_NONE__INT_INT_INT_INT): Made static.
	(gdk_pixbuf_loader_get_type): Documented.
	(gdk_pixbuf_loader_class_init): Initialize the parent class
	correctly.
	(gdk_pixbuf_loader_destroy): Added sanity checks. Call the parent
	class destroy function.
	(gdk_pixbuf_loader_new): Documented.
	(gdk_pixbuf_loader_finalize): Call the parent class finalize
	function.
	(gdk_pixbuf_loader_write): Use size_t for count.
1999-10-27 17:31:07 +00:00
Havoc Pennington
1a0a5d0399 New function to create a blank pixbuf.
1999-10-27  Havoc Pennington  <hp@pobox.com>

* src/gdk-pixbuf.c (gdk_pixbuf_new): New function to create a
blank pixbuf.

* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): Check all
three progressive load funcs are non-NULL, rather than checking
begin_load three times. Also, check whether begin_load returns
NULL on failure.
1999-10-27 17:28:44 +00:00
Michael Fulbright
e8242a24eb Fixed logic so we only try to close loader if it wasn't previously closed.
1999-10-27  Michael Fulbright  <msf@redhat.com>

        * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_destroy): Fixed
        logic so we only try to close loader if it wasn't previously closed.
1999-10-27 17:08:21 +00:00
Michael Fulbright
95e048c863 changelog 1999-10-27 17:08:10 +00:00
Michael Fulbright
929c608714 Incremental loader tweaks.
Dr Mike <drmike@redhat.com>
1999-10-27 16:43:22 +00:00
Michael Fulbright
14cb9e710a gdk-pixbuf-loader.c: Fixed init function to properly initialize all
structure members.

testpixbuf.c: Added call to close and destroy pixbuf loader properly.
1999-10-27 16:41:44 +00:00
Jonathan Blandford
a9c16bfabd forgot this 1999-10-27 15:44:41 +00:00
Arturo Espinosa
3f4bad9332 Sync to laptop - Federico 1999-10-26 23:29:59 +00:00
Jonathan Blandford
eacb3ad51f load the vtable fully.
1999-10-26  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-io.c (image_handler_load): load the vtable fully.
1999-10-26 23:26:16 +00:00
Jonathan Blandford
2ff92119aa Finished initial cut at the object.
1999-10-26  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-loader.c: Finished initial cut at the object.
1999-10-26 23:19:49 +00:00
Havoc Pennington
3589986260 fix signals
1999-10-26  Havoc Pennington  <hp@pobox.com>

* src/gdk-pixbuf-loader.h: fix signals

* src/gdk-pixbuf-io.h: add new vtable fields
1999-10-26 22:04:29 +00:00
Owen Taylor
bfd0c12798 Added information about widget paths and pattern matching.
Tue Oct 26 16:50:15 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/tmpl/gtkrc.sgml: Added information about widget
	paths and pattern matching.
1999-10-26 20:59:31 +00:00
Jonathan Blandford
e5dfd2f5da more work on the incremental loading 1999-10-26 20:43:39 +00:00
Jonathan Blandford
c84756cf38 New Class. Beginning of progrssive loading.
1999-10-26  Jonathan Blandford  <jrb@redhat.com>

	* src/gdk-pixbuf-loader.h: New Class.  Beginning of progrssive
	loading.
1999-10-26 16:26:00 +00:00
Jonathan Blandford
cfc2866019 started work on the loader 1999-10-26 03:42:14 +00:00
Arturo Espinosa
4c9ee0caa9 *** empty log message *** 1999-10-26 02:19:43 +00:00
Arturo Espinosa
e35d4c6d65 Sync to laptop - Federico 1999-10-25 23:43:04 +00:00
Federico Mena Quintero
5f0ea34beb Patch from Uwe Koloska <koloska@Rcs1.urz.tu-dresden.de> to fix a stupid
1999-10-25  Federico Mena Quintero  <federico@redhat.com>

	* configure.in (CFLAGS): Patch from Uwe Koloska
	<koloska@Rcs1.urz.tu-dresden.de> to fix a stupid typo of mine.
1999-10-25 19:26:13 +00:00
Arturo Espinosa
143d11f435 Sync to laptop - Federico 1999-10-23 00:06:10 +00:00
Havoc Pennington
c3c9c72281 Clean up stupid increment-inside-array-dereference thing
1999-10-22  Havoc Pennington  <hp@pobox.com>

* src/io-xpm.c (mem_buffer): Clean up stupid
increment-inside-array-dereference thing

* src/testpixbuf.c: Add XPM data tests.

* src/io-xpm.c: Make the XPM data buffer const, fix const
correctness throughout the code.
1999-10-22 23:26:22 +00:00
Havoc Pennington
5cf2775f46 Export gdk_pixbuf_new_from_xpm_data()
1999-10-22  Havoc Pennington  <hp@pobox.com>

* src/gdk-pixbuf.h: Export gdk_pixbuf_new_from_xpm_data()
1999-10-22 21:06:36 +00:00
Havoc Pennington
5f3ae6ad67 Export this symbol for loading an XPM from memory.
1999-10-22  Havoc Pennington  <hp@pobox.com>

* src/io-xpm.c (image_load_xpm_data): Export this symbol for
loading an XPM from memory.

* src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): New
function, loads pixbuf from xpm data
(image_handler_load): Add g_return_if_fail() to ensure the same
module isn't loaded twice. Add g_module_symbol() to scan for XPM
loader function.
1999-10-22 21:05:16 +00:00
Arturo Espinosa
a3551cc3d0 Comment fixes - Federico 1999-10-22 16:19:59 +00:00
Federico Mena Quintero
9de0d0c9c3 Patch from Kristian Hogsberg Kristensen <hogsberg@daimi.au.dk> to avoid
1999-10-22  Federico Mena Quintero  <federico@redhat.com>

	* src/io-png.c (image_load): Patch from Kristian Hogsberg
	Kristensen <hogsberg@daimi.au.dk> to avoid allocating extra row
	buffers; the rows can be read in directly into the main pixel
	buffer.
1999-10-22 15:18:03 +00:00
Federico Mena Quintero
04823f40c4 Free path.
1999-10-20  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-io.c (image_handler_load): Free path.
1999-10-21 00:37:21 +00:00
Tor Lillqvist
b1c28ea656 Add more font private data.
1999-10-21  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkprivate.h: Add more font private data.

* gdk/win32/gdkfont.c
* gdk/win32/gdkdraw.c: Revamped handling of multi-byte charset
fonts and strings. Now works much better. You still have to
have a correct font selected, though. No fontset emulation yet.
1999-10-20 22:58:37 +00:00
Federico Mena Quintero
d8ce1977dd Bumped version number to 0.3.
1999-10-20  Federico Mena Quintero  <federico@redhat.com>

	* configure.in: Bumped version number to 0.3.

	* src/Makefile.am (lbgdk_pixbuf_la_LDFLAGS): Added a libtool
	version number for the library.
1999-10-20 22:15:13 +00:00
Federico Mena Quintero
7ef5dec32d Removed the unref_fn field. Now all memory management of the buffer is
1999-10-20  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf.h (GdkPixbuf): Removed the unref_fn field.  Now
	all memory management of the buffer is done by libart.

	* src/gdk-pixbuf.c (gdk_pixbuf_unref): Do destruction here.
	Removed gdk_pixbuf_destroy, gdk_pixbuf_duplicate.

	* src/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Implemented in
	terms of the libart functions.  Removed the old code.

	* src/gdk-pixbuf-io.c (image_handler_load): Removed the save
	symbols.  Saving will not be implemented in GdkPixbuf.

	* src/io-gif.c: Removed the saving stub.
	(image_load): Fixed memory management to fail gracefully if we run
	out of memory while loading the image.  Close the gif file when we
	are done.  This still needs more error handling for the DGif
	functions.

	* src/io-jpeg.c (image_load): Some robustness fixes.

	* src/io-png.c: Removed the saving stuff.
	(image_load): Some memory management fixes.

	* src/io-tiff.c (image_load): Ditto.

	* src/io-xpm.c (pixbuf_create_from_xpm): Ditto.
1999-10-20 21:20:49 +00:00
Tor Lillqvist
46da5c2bec Use G_OS_WIN32.
1999-10-19  Tor Lillqvist  <tml@iki.fi>

* gtk/maketypes.awk: Use G_OS_WIN32.

* gtk/gtk.def: Add some missing entry points. Also some non-public
ones, but PyGTK porter claims to need them.

* gtk/makefile.{cygwin,msc}: Drop some unneeded headers from the
built-in type generation.
1999-10-19 21:52:55 +00:00
Havoc Pennington
65c1e7458d New name for macros/autogen.sh
1999-10-18  Havoc Pennington  <hp@pobox.com>

* subautogen.sh: New name for macros/autogen.sh

* autogen.sh: use subautogen.sh
1999-10-18 19:32:25 +00:00
Federico Mena Quintero
74268afdeb Reindented to use the GNOME Indentation.
1999-10-18  Federico Mena Quintero  <federico@redhat.com>

	* src/*: Reindented to use the GNOME Indentation.
1999-10-18 19:29:45 +00:00
Havoc Pennington
3b9835b5bb Use AM_PATH_GLIB instead of glib-config directly
1999-10-18  Havoc Pennington  <hp@pobox.com>

* configure.in: Use AM_PATH_GLIB instead of glib-config directly

* src/Makefile.am: Re-enable testpixbuf with GTK_CFLAGS/GTK_LIBS
1999-10-18 19:11:35 +00:00
Havoc Pennington
556f481ce9 didn't get in there or something 1999-10-18 18:58:36 +00:00
Havoc Pennington
748c5c5f0c Remove "macros"
1999-10-18  Havoc Pennington  <hp@pobox.com>

* Makefile.am (SUBDIRS): Remove "macros"

* configure.in: Don't use GNOME_INIT, handle case where we are
inside gnome-libs. AM_PATH_GTK for the GIF test

* src/Makefile.am: Change flags to work without libgnomeui,
comment out testpixbuf for now
1999-10-18 18:58:15 +00:00
Federico Mena Quintero
da95365f93 Use $GTK_LIBS as the extra libs when checking for libgif/libungif, as they
1999-10-18  Federico Mena Quintero  <federico@redhat.com>

	* configure.in: Use $GTK_LIBS as the extra libs when checking for
	libgif/libungif, as they need the X libraries.  Fixes bug #2472.
1999-10-18 18:47:17 +00:00
Tor Lillqvist
018d098240 Don't use TextOutW for GDK_FONT_FONT fonts (which is all we have for now,
1999-10-14  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkdraw.c (gdk_draw_text_wc): Don't use TextOutW for
GDK_FONT_FONT fonts (which is all we have for now, we don't
emulate fontsets). The X11 version uses plain XDrawString in that
case, too. The string passed to gdk_draw_text_wc seems to be in
fact (at least, when used by gtkentry and gtktext) either in a
single-byte charset, or a DBCS. Not Unicode.

This fixes the problem in gtkfontsel, where even if you had
selected a font with a non-Latin1 charset (windows-greek, for
instance), the preview still used Latin-1 glyphs.

* gdk/win32/gdkfont.c (gdk_text_width_wc): Similar change. Don't
use GetTextExtentPoint32W, use GetTextExtentPoint32A.
(gdk_font_load): Recognize the demibold etc weights, even if we
don't have the corresponding constants in the headers.
(gdk_font_hash_insert): Use same hash mechanism as in the X11
version. Should save font resources a bit, when we don't have
multiple HFONTs for the same font.

* gdk/win32/gdkprivate.h: Add the names field as in the X11
version.
1999-10-13 21:46:33 +00:00
ÉRDI Gergo
b39839820b (since noone objected on gtk-devel)
Passing 0 to XBell allows GDK to use the default X values which can be
set by the user via the xset command (e.g. to turn it off, or to
modify pitch/length/volume, etc)
1999-10-11 20:13:49 +00:00
Cody Russell
a4013d86fb Changed 'pixbuf' variable to 'art_pixbuf' in the core function.
Core function now determines whether the requested geometry is on screen
or not. If part of it is not then the request is clamped to geometry that
is on the screen.
1999-10-10 07:20:37 +00:00
ÉRDI Gergo
2501ca70d6 Added documentation for GtkToolbar changes (horizontal icon/text layout) 1999-10-09 14:47:09 +00:00
Michael Fulbright
b55008d197 Added support for loading pixbuf from rgb data in memory. Augmented
test program to demonstrate its use.

Need to add support for an alpha channel next.

Dr Mike <drmike@redhat.com>
1999-10-08 23:01:05 +00:00
Jesus Bravo Alvarez
5a4cc5a6b1 Updated Galician .po file 1999-10-07 20:58:57 +00:00
Cody Russell
c512d3864c Changed the functions to return GdkPixBuf* instead of ArtPixBuf*. 1999-10-07 18:20:16 +00:00
Cody Russell
2453bc3cca I've temporarily disabled compilation of the gdk-pixbuf-drawable module.
Federico pointed out some problems with it. It'll be re-enabled when those
are fixed.
1999-10-07 18:04:04 +00:00
Cody Russell
e41dd6a199 Added #include "gdk-pixbuf-drawable.h" to the top. This fixes remaining
compile error.
1999-10-07 06:22:21 +00:00
Cody Russell
4649192c7a Added a missing semicolon to a function declaration so everything compiles
correctly.
1999-10-07 06:17:20 +00:00
Cody Russell
bab6969765 Added gdk-pixbuf-drawable to Makefile.am so it is compiled into
libgdk_pixbuf.
1999-10-07 06:16:16 +00:00
Arturo Espinosa
e29e536d20 Added files from Cody Russell 1999-10-07 05:11:27 +00:00
Manish Singh
4f771b6d26 s/G_HAVE_CYGWIN/G_WITH_CYGWIN/
-Yosh
1999-10-06 19:47:24 +00:00
Stanislav Brabec
bdcba96639 Updated.
1999-10-06  Stanislav Brabec  <utx@penguin.cz>

        * cs.po: Updated.
1999-10-06 14:41:19 +00:00
Jesus Bravo Alvarez
ed48ad3344 Added Galician translation (modifying ChangeLogs) 1999-10-05 21:40:59 +00:00
Tor Lillqvist
d23e3848a9 Corresponding changes as in X11 backend.
1999-10-05  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/*.[ch]: Corresponding changes as in X11 backend.

* gdk/win32/gdkcompat.c: New file, actually provide an
implementation for the deprecated functions. (Just temporarily.)

* gtk/gtkfilesel.c: Fix an #ifdef syntax botch.

* gtk/makefile.{cygwin,msc}: Update gdk_headers.

* gdk/win32/gdk.def gtk/gtk.def: Updates.
1999-10-05 19:04:48 +00:00
Sergey I. Panov
069932c2a8 ru.po: Updated translation. 1999-10-05 18:43:16 +00:00
Jesus Bravo Alvarez
0e8115218e Added Galician (gl) to ALL_LINGUAS 1999-10-05 16:36:54 +00:00
Jesus Bravo Alvarez
6dc73a6184 Added Galician Translation 1999-10-05 16:34:44 +00:00
Kjartan Maraas
b31b2734be Added Ukrainian translation from Yuri Syrota <yuri@renome.rovno.ua>.
1999-10-05  Kjartan Maraas  <kmaraas@online.no>

	* uk.po: Added Ukrainian translation from Yuri
	Syrota <yuri@renome.rovno.ua>.
1999-10-05 09:10:46 +00:00
Manish Singh
3b348f74e9 correct checking for BeOS check
* configure.in: correct checking for BeOS check

* gdk/gdktypes.h
* gtk/fnmatch.c
* gtk/gtkfilesel.c
* gtk/gtkitemfactory.c
* gtk/gtkmain.[ch]
* gtk/gtkrc.c: use G_OS_WIN32 and G_HAVE_CYGWIN #defines

-Yosh
1999-10-04 19:03:05 +00:00
Pablo Saratxaga
0fef3d2f6d added new gtkrc.* files for new encodings 1999-10-04 14:23:50 +00:00
Owen Taylor
a8d8872c0c Started compatibility header for renames.
Sun Oct  3 23:09:06 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkcompat.h: Started compatibility header
        for renames.
1999-10-04 02:59:52 +00:00
Owen Taylor
91f7a92ecd Added a .cvsignore 1999-10-03 22:13:50 +00:00
Owen Taylor
f903bdf1a7 Fix a reference to window_private->destroyed.
Sun Oct  3 18:13:44 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_reset_shapes_recurse):
	Fix a reference to window_private->destroyed.

	* gtk/gtkplug.c (gtk_plug_realize): Fix up a direct
	(ugly) setting of an internal GdkWindow member to use
	a _slightly_ cleaner macro.

	* gdk/gdkprivate.h: Split GdkWindowPrivate into
	GdkDrawablePrivate and GdkWindowPrivate.
	Add extra macros for accessing GDK_DRAWABLE_ components.

	* *.[ch]: Massive adjustments for the above, use the
	new macros in a lot of places.
1999-10-03 22:12:41 +00:00
Owen Taylor
344e8000a2 Move files into x11 subdirectory.
Sun Oct  3 14:26:15 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gxid* gdk/x11/gxid*: Move files into x11 subdirectory.
1999-10-03 18:17:59 +00:00
Owen Taylor
9c2dea004f create x-specific subdirectory.
* configure.in gdk/Makefile.am x11/: create x-specific subdirectory.

	* docs/gtk-config.1: Now autogenerated.
	* docs/Changes-1.4.txt: started
1999-10-03 18:10:43 +00:00
Owen Taylor
ef088b50ab Include gdk/gdkdrawable.h with gdk/ prefix. (Pointed out by
Sun Oct  3 14:16:23 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdrawable.h: Include gdk/gdkdrawable.h with
	gdk/ prefix. (Pointed out by chak@is.tsukuba.ac.jp)

	* x11/: create x-specific subdirectory.
1999-10-03 18:09:00 +00:00
Tor Lillqvist
4c84db87d9 A few includes added for the picky MSVC compiler. 1999-10-02 22:53:45 +00:00
Tor Lillqvist
c50941c82d Change GDK_WINDOWING_WIN32 usage to #ifdef also here.
1999-10-03  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkimage.h gdk/gdkpixmap.h: Change GDK_WINDOWING_WIN32 usage
to #ifdef also here.

* gdk/win32/*.h gdk/win32/*.c: Make corresponding changes as those
Owen did to the X11 backend.

* gdk/win32/gdkdraw.c (gdk_draw_pixmap): Fix it again, don't use
ScrollWindowEx when blitting inside a window, it can't be correct
in the general case.

* gdk/win32/gdkevents.c: Don't handle WM_SIZING, handling
WM_GETMINMAXINFO is easier.

* gdk/win32/gdkimage.c (gdk_image_new): Create new image with
depth equal to the bitspixel value, not the visual's depth.

* gdk/win32/gdkvisual.c (gdk_visual_init): Set the visual's depth
to 24 even if the bitspixel value is 32.

* gdk/gdkrgb.c (gdk_rgb_select_conv): After the above change, no
need to check for depth==32 when bpp==32, depth will always be 24.
1999-10-02 22:42:58 +00:00
ÉRDI Gergo
b196167dbc This is an implementation of Idea #13 from
http://www.jcinteractive.com/gnome-ui/software/widgets/
basically, layouting the toolbar icon and label horizontally.
1999-10-02 17:13:09 +00:00
Owen Taylor
637a466d5c Started
Fri Oct  1 18:03:36 1999  Owen Taylor  <otaylor@redhat.com>

        * docs/Changes-1.4.txt: Started

	* gtk/Makefile.am (gdk_headers): Include all the new headers.

        * gdk/*.h gdk/*.c: Split gdk.h into lots of itty-bitty little pieces.

	* gdk/gdkprivate.h gdk/gdkcc.c: Moved GdkColorContext private
	into C file.

	* gdkinput.h gdkinputprivate.h - renamed the internal gdkinput
	header to gdkinputprivate.h.

	* gdk/gdk.h gdk/gdk.c: Removed gdk_time* functions which have been
	unused since before 1.2.
1999-10-01 23:18:30 +00:00
Tor Lillqvist
74d88d870a On Win32, expand possible hex escapes in the font family (put there by
1999-09-30  Tor Lillqvist  <tml@iki.fi>

* gtk/gtkfontsel.c (gtk_font_selection_get_xlfd_field): On Win32,
expand possible hex escapes in the font family (put there by
logfont_to_xlfd if the font name isn't a legal XLFD font family,
mainly if it contains slashes). (gtk_font_selection_create_xlfd):
On Win32, add hex escapes here, too.
1999-09-30 16:59:08 +00:00
Owen Taylor
41be586333 Changed from #if GDK_WINDOWING == GDK_WINDOWING_X11 to #ifdef
Wed Sep 29 19:55:35 1999  Owen Taylor  <otaylor@redhat.com>

	* */*.[ch]: Changed from #if GDK_WINDOWING == GDK_WINDOWING_X11
	to #ifdef GDK_WINDOWING_X11.
1999-09-29 23:47:22 +00:00
Jorge Godoy
f73d6ee34a update pt_BR 1999-09-29 20:54:11 +00:00
Federico Mena Quintero
95b3f3e460 [ Merges from gtk-1-2 ]
Wed Sep  8 07:13:29 1999  Tim Janik  <timj@gtk.org>

	* configure.in: fixed "GNU Make" check to pass with new make version
	3.77.95.

Fri Sep  3 16:04:41 1999  Tim Janik  <timj@gtk.org>

	* gtk-config.in (--version): don't echo @GTK_VERSION@, but
	@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@, so the
	AM_PATH_GTK() macros don't get confused by the -pre1.

Thu Sep  2 19:02:37 1999  Owen Taylor  <otaylor@redhat.com>

	* configure.in (REBUILD): Change check for perl5
	  to check explicitely for v >= 5.002. (5.001
	  does not work with our scripts.)

Wed Aug 25 15:45:46 1999  Tim Janik  <timj@gtk.org>

	* configure.in: evaluate $PERL for the perl version check. added
	--disable-rebuilds to give the user an option to completely disable
	any source autogeneration rules.

Mon Aug 23 23:16:14 1999  Tim Janik  <timj@gtk.org>

	* configure.in: evaluate $ac_make when checking for GNU Make.

Mon Aug 23 19:11:17 1999  Tim Janik  <timj@gtk.org>

	* docs/Makefile.am: added generation.txt.

	* Makefile.am: require automake 1.4, build README from README.in and
	INSTALL from INSTALL.in in dist-hook.

	* README.in:
	* INSTALL.in: new files to autogenerate README and INSTALL from.

	* configure.in: figure whether we have GNU Make

	* docs/generation.txt: minor additions/corrections.

Wed Aug 11 13:38:26 BST 1999 Tony Gale  <gale@gtk.org>

	* docs/gtkfaq.sgml: FAQ Update

July 30, 1999 Elliot Lee <sopwith@redhat.com>

	* configure.in: Fix autoconf warnings about cross compilation by
	trying to provide sane defaults for AC_TRY_RUN.

Fri Jul 16 22:20:21 PDT 1999 Manish Singh <yosh@gimp.org>

	* ltconfig
	* ltmain.sh: upgrade to libtool 1.3.3

Thu Jul  8 11:30:18 1999  Owen Taylor  <otaylor@redhat.com>

	* INSTALL: Indicate that the --with-glib= configure
	time flag is unsupported.

Mon Jul  5 20:36:03 1999  Owen Taylor  <otaylor@redhat.com>

	* docs/generation.txt: Added a file that gives
	documenation about the autogeneration process for
	various autogenerated files.

Tue Jun 29 15:59:25 1999  Owen Taylor  <otaylor@redhat.com>

	* configure.in (LIBS): Look for libgmodule in the
	right location.

Thu Jun 17 13:57:31 1999  Owen Taylor  <otaylor@redhat.com>

	* docs/gtk_tut.sgml: Removed references to
	code examples in my directory on gtk.org as
	they should all be in the tutorial now.

	* docs/gtk_tut.sgml: Added sources for dial-test
	and scribble-xinput programs that were previously
	missing.

Fri Jun  4 00:08:59 1999  Owen Taylor  <otaylor@redhat.com>

	* TODO: Added entry about menu keyboard navigation, removed
	some finished items.

Mon May 31 00:11:24 1999  Owen Taylor  <otaylor@redhat.com>

	* acinclude.m4: Standardize on func_dgettext
	not func_gettext, so that the checks for dgettext
	actually are paid attention to.

Wed May  5 10:47:54 1999  Owen Taylor  <otaylor@redhat.com>

	* configure.in (LIBS): Add $INTLLIBS into $LIBS
	directly, rather than repeating the checks for
	gettext.

	* INSTALL: Added information about gettext and
	NLS support.

	* acinclude.m4 (LIBM): Check for dgettext, not
	just gettext. This should hopefully fix things wrt
	systems with old versions of GNU gettext installed.

Tue Jun 29 15:59:25 1999  Owen Taylor  <otaylor@redhat.com>

	* configure.in (LIBS): Look for libgmodule in the
	right location.

Thu Apr  1 16:58:10 PST 1999 Manish Singh <yosh@gimp.org>

	* autogen.sh: add --enable-maintainer-mode

	* configure.in: set ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

Wed Mar 24 23:03:49 CST 1999 Shawn T. Amundson <amundson@gtk.org>

	* docs/gtk-config.1.in:
	  docs/Makefile.am:
	  configure.in: gtk-config is now generated.

	* docs/gtk-config.1: Removed, now generated.

Thu Sep 23 17:59:59 1999  Tim Janik  <timj@gtk.org>

        * gdk/gdkevents.c (gdk_event_translate): grr, even if Gdk doesn't
        handle CreateNotify itself, still put out a debuging message for
        --gdk-debug=events. made the ReparentNotify debugging message more
        verbose.
        wrap xcoords translation for ConfigureEvents into an error trap,
        a destroy event may already be pending, and in that case, the
        actuall coordinate values are not at all critical.

Sat Sep 18 22:24:15 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkcc.c: Stop leaking the color_hash all over
	the place. Simplify and improve the logic.

Fri Sep 17 09:57:15 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdk.h, gdk/gdkcolor.c: make return types (gint or gboolean)
	for prototypes and function implementations consistent (reported
	by Tomas Ogren).

Tue Sep 14 18:23:01 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkevents.c (gdk_event_translate): tell if expose events have
	send_event set in debugging output.
	(gdk_compress_exposures): default initialize the event so we don't
	operate on bogus values (namely send_event).

Thu Sep  2 16:33:59 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c: When we receive an unexpected
	destroy notify on one of our windows, don't just
	warn about it, also mark our windows as destroyed.

Sun Sep  5 08:10:53 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkfont.c (gdk_font_hash_insert): Add
	  name => font and name => fontset hashes. The
	  name => fontset hash is a _big_ win since we
	  weren't previously caching fontsets at all and loading
	  fontsets is expensive. The name => font hash
	  is less of a win, but it does save us from doing
	  repeated XQueryFont calls on the same font.

	* gdk/gdkprivate.h (struct _GdkFontPrivate): Add a names
	  list so we can remove font/fontset from hash.

Thu Sep  2 19:02:37 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkproperty.c (gdk_atom_intern): Remove useless
	  and slightly confusing test. [ XInternAtom (,,TRUE)
	  will never return None ].

Sat Sep  4 08:39:26 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_set_geometry_hints)
	  gdk/gdkwindow.c (gdk_window_set_hints):

	Don't omit setting the properties if flags == 0 -
	there may be an existing set of properties there
	already. (Very old bug. Would it be better to
	delete the property instead?)

	* gdk/gdkselection.c (gdk_selection_property_get): Fix
	  spelling error in comment.

Wed Sep  1 14:05:30 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkimage.c (gdk_image_new): Use gdk_error_trap_push()
	  to avoid stomping over gdk_error_warnings.

	* gdk/gdkimage.c (gdk_image_new): compute image->bpp
	  as (bits_per_pixel + 7) / 8. This gives the same
	  result as before for multiples of 8, but actually
	  a "reasonable" value for 1bit or 4bit displays.

Mon Aug 23 19:11:17 1999  Tim Janik  <timj@gtk.org>

	* gdk/Makefile.am: minor cleanups, strip spaces on build rules for
	GNU Make.

Tue Aug 17 07:43:04 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkevents.c (gdk_event_translate): give a debugging note when
	discarding configure events.

1999-08-18  Federico Mena Quintero  <federico@redhat.com>

	* gdk/gdkpixmap.c (gdk_pixmap_unref): g_return_if_fail() the
	refcount is greater than zero.

	* gdk/gdkwindow.c (gdk_window_unref): Likewise.

	* gdk/gdkfont.c (gdk_font_unref): Likewise.

	* gdk/gdkgc.c (gdk_gc_unref): Likewise.

	* gdk/gdkdnd.c (gdk_drag_context_unref): Likewise.

Wed Aug 11 01:04:57 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkproperty.c (gdk_property_get): Fix assumption
	that format 32 => sizeof(item) == 4. It really is
	sizeof(long).

Tue Jun 29 23:02:42 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.c (gdk_x_error / gdk_x_io_error): Don't
	core dump at all on X IO errors, only core dump
	if --enable-debug for X errors.

Thu Jun 24 17:06:23 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkevents.c (gdk_event_translate): removed old ""Got event for
	unknown window:" message. disabled ConfigureNotify discarding code,
	because it led to events being processed out of order.

Thu Jun 24 12:22:02 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkglobals.c: preinitialize gdk_error_code to 0.

	* gdk/gdkevents.c (gdk_event_send_client_message_to_all_recurse): since
	we export this function, supress error warnings and don't reset the
	error code in the first half of this function.

	* gdk/gdk.c (gdk_x_error): set gdk_error_code to the actuall X error
	code (instead of just -1) so gdk_error_trap_pop() reveals something
	actually informative about the error that happened.

	* gdk/*.c:
	don't rely on gdk_error_code being -1 if an error occoured, but just
	gdk_error_code != 0.

Thu Jun 24 11:50:07 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkevents.c (gdk_event_apply_filters): advance the filter list
	pointer *before* invoking the filter function, so we at least don't
	crash if a filter is removed that is currently executed. window filters
	*really* need to be made truely reentrant at some point.

Mon Jun 14 11:10:15 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkevents.c (gdk_event_translate): print the atom name in the
	PropertyNotify debug messages.

Wed May  5 22:51:06 1999  Owen Taylor  <otaylor@redhat.com>

        Patch from Sung-Hyun Nam <namsh@lgic.co.kr>

	* gdk/gdkim.c: Fix cut-and-paste errors for
	x/y and PreeditAttributes/StatusAttributes.

Wed May  5 22:24:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_set_geometry_hints): Change
	G_MAXINT to 2^16 to alleviate overflow problems in
	various window managers.

Wed Apr 21 00:42:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkfont.c (gdk_text_measure): Fix the return value
        for fontsets.

Wed May  5 12:42:01 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_set_geometry_hints):
	Initialize size_hints.x and size_hints.y because kwm
	brokenly pays attention to them.
	(Bug #1181 -  Lars Heete <hel@admin.de>)

Wed May  5 11:38:56 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkrgb.c (gdk_rgb_choose_visual): Free the
	return value of gdk_list_visuals().
	(Bug #1193 - Morten Welinder <terra@diku.dk>)

Tue May  4 11:12:56 PDT 1999 Manish Singh <yosh@gimp.org>

	* gdk/gdkim.c (gdk_im_real_open): cast the return value of
	XSetIMValues to (void *) when comparing to NULL, to workaround
	the problem of some compilers barfing since older X headers don't
	have the prototype for it.

Mon Apr 19 10:11:12 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkcolor.c (gdk_colormap_new): Fix memory leak
	for pseudocolor where colormap->colors was double
	allocated.

	* gdk/gdkcolor.c (gdk_colormap_alloc1): Store the
	color value in the hash table with the pixel filled
	in so when we do later hash table lookups, the color
	value is correct.

Sun May  2 15:29:45 PDT 1999 Manish Singh <yosh@gimp.org>

	* gdk/gdkdraw.c (gdk_draw_lines): check private->destroyed before
	making the call

Tue Apr 27 11:17:35 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdnd.c (xdnd_set_{targets,actions}): Fix leak
	pointed out by Morten Welinder <terra@diku.dk>.

Wed Apr 21 14:20:22 1999  George Lebl  <jirka@5z.com>

	* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
	  default filter from the list

Wed Apr 21 14:20:22 1999  George Lebl  <jirka@5z.com>

	* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
	  default filter from the list

Fri Apr 16 20:41:43 PDT 1999 Manish Singh <yosh@gimp.org>

	* gdk/gdk.c: #include "gdkkeysyms.h" for gdk_XConvertCase #defines

	* gtk/gtkfontsel.c (gtk_font_selection_create_xlfd): use
	g_strdup_printf instead of calcing the length separately

Tue Apr 13 02:49:33 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c: removed some silly #ifdef HAVE_CONFIG
	that we don't do in many other places. (Fixing duplicate
	#include of config.h)

	* gdk/gdkevents.c: include gdkinput.h _after_ config.h.
	Otherwise, #ifndef XINPUT_NONE check in the latter
	doesn't work. (Bug #546)

Sun Apr 11 14:38:03 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkpixmap.c (_gdk_pixmap_create_from_xpm): check for color
	"None" case insensitive.

Tue Apr  6 16:38:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkselection.c:
	Add error traps so if the other end of the connection
	dies, we survive.

Tue Apr  6 12:24:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdnd.c (gdk_drag_motion): Separate out the
	dest_xid field into two fields - one for the window
	to send in messages, one to indicate the last looked
	up window for caching purposes. This is needed, so
	that Leave messages get the correct window.

Mon Apr  5 13:21:30 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkevents.c (gdk_event_check, gdk_event_prepare):
	Fix warning created by people mucking around
	with the gsource API.

	* gdk/gdkevents.c (gdk_io_invoke, gdk_input_add_full):
	Change mapping between GIOCondition and GdkInputCondition
	to match the way the Linux kernel does it. This should
	fix problems where closed pipes were no longer signalling
	GDK_INPUT_READ on systems with a native poll().

Mon Apr  5 17:11:57 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkpixmap.c (_gdk_pixmap_create_from_xpm): Check
	explicitly for the string "None" - it is in the XPM
	spec and some servers treat unknown colors in odd ways
	(like asking the user!)

Thu Apr  1 16:58:10 PST 1999 Manish Singh <yosh@gimp.org>

	* gdk/gdkevents.c: made "->" into a "." of previous change so
	it compiles

Thu Apr  1 18:41:25 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkevents.c (gdk_compress_exposures): Set the
	window field of the event structure before calling
	user filters.

1999-03-31  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdk/gdk.c (gdk_init_check): Use False as the last argument to
	XInternAtom() here.  This is a particularly Old And Nasty(tm) bug.

Mon Mar 29 17:31:52 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkim.c (gdk_mbstowcs): Free the value of the
	intermediate text property - prevents major memory
        leak when gdk_use_mb.
	gtk-d3august-990311-0: Bj|rn Augustsson <d3august@dtek.chalmers.se>

Mon Mar 29 17:02:58 1999  Owen Taylor  <otaylor@redhat.com>

        Patches from Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>
	gtk-a-higuti-990322-[0-3]

	* gdk/gdkfont.c (gdk_text_extents_wc): Make  work when
	sizeof(wchar_t) != sizeof (GdkWChar)

	* configure.in: Fix confusion between GTK_LOCALE_[C]FLAGS
	that was causing -DX_LOCALE not	to work.

	* gtk/gtkrc.c (gtk_rc_init):
	X_LOCALE will never have LC_MESSAGES defined

	* gdk/gdk.c (gdk_init_check):
	Remove --xim-preedit and --xim-status from argv properly.

	* gdk/gdkim.c (gdk_ic_real_new): Add a gdk_flush() so
	that the client window is present on the X server
	before we pass it to the input method.

Tue Mar  9 10:46:49 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdnd.c (motif_find_drag_window): Fix bug where
	if --display is specified on the command line, than
	the drag window will not be created on that display.

Tue Mar  9 10:38:24 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkproperty.c (gdk_atom_intern): Fixed bug where
	lookups with only_if_exists == TRUE were inserting
	bogus values into the atom cache.

Wed Mar 17 09:00:00 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkselection.c (gdk_selection_property_get): first XFree(t),
	then reset it to NULL.

	* gdk/gdkcolor.c:
	(gdk_colors_free):
	(gdk_colormap_free_colors): use colormap->colors[in_pixels[i]] as the
	key for g_hash_table_remove() in both functions, this prevents us
	from accessing possibly uninitialized portions of a GdkColor structure
	where we are only interested in its pixel value.

Tue Mar  9 01:01:28 1999  Tim Janik  <timj@gtk.org>

	* gdk/gdkfont.c (gdk_font_load): first lookup the xfont ID in our
	font hash table, if we have a GdkFontPrivate entry for this font
	already, simply increment its reference count, provided by Olaf Dietsche
	<olaf.dietsche+list.gtk@netcologne.de>.

1999-09-21  Tor Lillqvist  <tml@iki.fi>
1999-09-28 20:19:13 +00:00
Damon Chaplin
c3e01fe599 partially written documentation from Paul Schifferer
1999-09-24  Damon Chaplin  <damon@karuna.freeserve.co.uk>

        * gtk/tmpl/gtkclist.sgml: partially written documentation from
        Paul Schifferer <isengard@geocities.com> who won't be able to finish it
1999-09-25 09:20:23 +00:00
Tomasz Kłoczko
442712ba50 - retrived last changes. This bad ide fixing this kind problems on gtk+
level (sorry).
1999-09-25 07:27:10 +00:00
Arturo Espinosa
b11177d6b0 DEPENDENCIES is not needed for the test program - Federico 1999-09-23 04:58:55 +00:00
Tomasz Kłoczko
9df3375f61 This important fix and will be god to incude this to 1.2.5.
Fix default font list name. Now on initializing gtk+ look for:
first: -*-aplos-medium-r-normal--12-*-*-*-*-*-iso8859-2 (this is biznet font),
second: -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-2,
third: -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1.

Now all translated text to EE languages are displayed with correct font on
system with installed biznet iso8859-2 pixmap fonts (many Linux
distribution).
1999-09-23 04:41:32 +00:00
Michael Meeks
6c13b03a45 Add pixbuf_duplicate,
Fix 'scale' API,
Add gdk_pixbuf_new,
clean io modules a tad.
1999-09-22 22:30:51 +00:00
Damon Chaplin
372c4d2627 ran make templates, to fix problems with structs.
1999-09-22  Damon Chaplin  <damon@karuna.freeserve.co.uk>

	* gtk/tmpl/*.sgml: ran make templates, to fix problems with structs.

	* gtk/gtk-sections.txt: rearranged GtkCombo section.

	* gtk/tmpl/gtkvseparator.sgml:
	* gtk/tmpl/gtkhseparator.sgml:
	* gtk/tmpl/gtkgc.sgml:
	* gtk/tmpl/gtkfeatures.sgml:
	* gtk/tmpl/gtktipsquery.sgml:
	* gtk/tmpl/gtkitem.sgml:
	* gtk/tmpl/gtkinvisible.sgml:
	* gtk/tmpl/gtkgamma.sgml:
	* gtk/tmpl/gtkdata.sgml:
	* gtk/tmpl/gtkcurve.sgml:
	* gtk/tmpl/gtkcombo.sgml:
	* gtk/tmpl/gtkaccellabel.sgml: documented.
1999-09-22 21:30:57 +00:00
ÉRDI Gergo
9e7433487b Font information translations 1999-09-21 20:28:45 +00:00
Tor Lillqvist
de1cf2ecba Delete the gdk_DC when exiting, just to be sure.
1999-09-21  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdk.c (gdk_exit_func): Delete the gdk_DC when exiting,
just to be sure.

* gdk/win32/gdkvisual.c (gdk_visual_init): Remove a couple of
unused variables, leftovers from the X11 version.

* gdk/win32/rc/*.cur: Better cursors provided by Bernd Herd.

* gtk/gtkfontsel.c (gtk_font_selection_get_xlfd_field): Only
downcase fields on X11.
1999-09-21 19:12:50 +00:00
Dave Mason
be9abde533 first pass at gtkmenubar... not complete
David Mason
dcm@redhat.com
1999-09-20 18:50:12 +00:00
Dave Mason
6822cce08d David Mason dcm@redhat.com
David Mason
dcm@redhat.com
1999-09-20 15:46:56 +00:00
Dave Mason
4a9a849acb first pass at gtkimage... not complete
David Mason
dcm@redhat.com
1999-09-20 15:46:35 +00:00
Pablo Saratxaga
033bb597de added pt_BR file 1999-09-20 12:25:19 +00:00
Tor Lillqvist
4850edb29b Add gdk_threads_mutex.
1999-09-17  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdk.def: Add gdk_threads_mutex.

* gtk/makefile.msc: Correct path to libintl.

Thanks to Tomi Ollila and Bernd Herd: Fix some inconsistencies in
use of gint vs. int, and gint vs. gboolean in headers and
definitions. Use GtkType for the *_get_type functions. Note that
these changes preserve binary compatibility.

* gdk/gdk.c
* gdk/win32/gdk.c
* gdk/gdk.h: Fix inconsistencies: gint vs int.

* gtk/gtkmain.c
* gtk/gtkclist.c
* gtk/gtkmenufactory.c
* gtk/gtknotebook.c
* gtk/gtkwidget.c: Fix inconsistencies, also gint
vs. gboolean.

* gtk/gtkcolorsel.[ch]
* gtk/gtkcombo.[ch]
* gtk/gtkdrawingarea.[ch]
* gtk/gtkgamma.[ch]
* gtk/gtkhandlebox.[ch]
* gtk/gtkhpaned.[ch]
* gtk/gtkhruler.[ch]
* gtk/gtkplug.[ch]
* gtk/gtkpreview.[ch]
* gtk/gtkruler.[ch]
* gtk/gtksocket.[ch]
* gtk/gtkstatusbar.[ch]
* gtk/gtktoolbar.[ch]
* gtk/gtkvbbox.[ch]
* gtk/gtkvpaned.[ch]
* gtk/gtkvruler.[ch]: Always use type GtkType for the *_get_type
functions.

* gtk/gtkgamma.h: Fix bug, missing () in call of
gtk_gamma_curve_get_type() in GTK_GAMMA_CURVE_CLASS.
1999-09-17 18:17:20 +00:00
Kjartan Maraas
08f1c75cf1 Updated translation.
1999-09-17  Kjartan Maraas  <kmaraas@online.no>

	* no.po: Updated translation.
1999-09-17 09:00:57 +00:00
Federico Mena Quintero
66779b9b26 Set the initial ref_count to 1.
1999-09-17  Federico Mena Quintero  <federico@redhat.com>

	* src/io-bmp.c (image_load): Set the initial ref_count to 1.

	* src/io-gif.c (image_load): Likewise.

	* src/io-jpeg.c (image_load): Likewise.

	* src/io-png.c (image_load): Likewise.

	* src/io-tiff.c (image_load): Likewise.

	* src/io-xpm.c (_pixbuf_create_from_xpm): Likewise.

	* src/gdk-pixbuf-io.c (gdk_pixbuf_load_image): Added an assertion
	for the ref_count to be != 0.
1999-09-17 07:57:25 +00:00
Federico Mena Quintero
6fce115b98 Be more paranoid with sanity checking. (gdk_pixbuf_unref): Fix incorrect
1999-09-17  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf.c (gdk_pixbuf_ref): Be more paranoid with sanity
	checking.
	(gdk_pixbuf_unref): Fix incorrect sanity check and comparison.
1999-09-17 05:59:53 +00:00
Tor Lillqvist
04f5c2a1e7 gdk/gdkcolor.c (gdk_colormap_new) Fix memory leak: colormap->colors was
1999-09-14  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkcolor.c (gdk_colormap_new)
* gdk/win32/gdkcolor.c (gdk_colormap_new): Fix memory leak:
colormap->colors was allocated twice.

* gdk/win32/gdk.c: Remove some unused stuff.

* gdk/win32/gdkcolor.c (gdk_colormap_sync): Initialize all of the
colormap.

* gtk/gtkfontsel.c (gtk_font_selection_dialog_get_type)
* gtk/gtklabel.h (gtk_label_get_type)
* gtk/gtktipsquery.c (gtk_tips_query_get_type)
* gtk/gtktypeutils.h (gtk_type_name): : Use GtkType
in a couple of places, not guint.
1999-09-13 22:06:11 +00:00
Pablo Saratxaga
ad8f893e60 updated dansih file 1999-09-11 00:14:57 +00:00
Pablo Saratxaga
fc3c4005c4 added Estonian language file 1999-09-10 19:38:14 +00:00
Pablo Saratxaga
0d0ce95c9a updated da file 1999-09-06 09:48:52 +00:00
Chyla Zbigniew
50778c9ad5 Updated polish translation 1999-09-03 03:02:42 +00:00
Pablo Saratxaga
6050aecef6 added da file 1999-09-01 12:41:47 +00:00
Pablo Saratxaga
d79f54c4ec update-po 1999-08-30 17:40:10 +00:00
Pablo Saratxaga
2b91a5b73f update 1999-08-30 12:22:13 +00:00
Pablo Saratxaga
60d735cdf2 update-po 1999-08-30 12:21:10 +00:00
BST 1999 Tony Gale
d5facc4cc6 Minor FAQ Update
Sun Aug 29 13:38:59 BST 1999 Tony Gale <gale@gtk.org>

	Minor FAQ Update
1999-08-29 12:29:19 +00:00
Damon Chaplin
fc3cd85675 new section from Lee Mallabone.
1999-08-28  Damon Chaplin  <damon@karuna.freeserve.co.uk>

	* gtk/tmpl/gtkbbox.sgml: new section from Lee Mallabone.

	* gdk/gdk-sections.txt: rearranged rgb, regions, and drawing sections.

	* gdk/tmpl/rgb.sgml: new section from Raph Levien, with a few changes
	by me, including a little example app.

	* gdk/tmpl/regions.sgml:
	* gdk/tmpl/event_structs.sgml:
	* gdk/tmpl/drawing.sgml: my first attempt.
	* gdk/tmpl/cursors.sgml: tiny changes.
1999-08-28 20:47:33 +00:00
Tony Gale
411e9361c2 Commit the correct version.
Commit the correct version.
1999-08-28 13:44:42 +00:00
BST 1999 Tony Gale
17cb4bb2e6 FAQ update
Sat Aug 28 14:34:37 BST 1999 Tony Gale <gale@gtk.org>

        * docs/gtkfaq.sgml: FAQ update
1999-08-28 13:25:28 +00:00
Tor Lillqvist
aafd722b21 Win32: Philippe Colantoni <colanton@aris.ss.uci.edu> suggests a way to get
1999-08-27  Tor Lillqvist  <tml@iki.fi>

Win32: Philippe Colantoni <colanton@aris.ss.uci.edu> suggests a
way to get window contents continually refreshed while resizing. I
didn't like the effects myself, so it's not on by default.

* gdk/win32/gdkprivate.h: New flag variable
gdk_event_func_from_window_proc, FALSE by default.

* gdk/win32/gdk.c (gdk_init_check): Set above flag if the
environment variable GDK_EVENT_FUNC_FROM_WINDOW_PROC is set, or we
are passed --gdk-event-func-from-window-proc.

* gdk/win32/gdkevents.c (gdk_WindowProc): If above flag is set,
and we have am event_func, call it instead of enqueing the event.
1999-08-26 22:22:03 +00:00
Pablo Saratxaga
6ebe59ced3 updated ga file 1999-08-26 16:29:30 +00:00
Pablo Saratxaga
24976900cf added ga language, and add back sk and sl from gtk+ 1.2.3 1999-08-25 15:27:04 +00:00
Karsten Weiss
6c8ca48237 Typo fix.
1999-08-24  Karsten Weiss  <karsten@addx.au.s.shuttle.de>

        * de.po: Typo fix.
1999-08-24 15:43:43 +00:00
Manish Singh
75ca8715c7 file COPYING was initially added on branch gtk-1-2. 1999-08-23 19:21:25 +00:00
Tor Lillqvist
cf451eb447 Fix from Simon Kelley: Set expose_count in GdkEventExposes correctly.
* gdk/win32/gdkevents.c (gdk_event_translate): Fix from Simon
Kelley: Set expose_count in GdkEventExposes correctly.

* gdk/win32/gdkwindow.c: Remove dead code (#ifdef
MULTIPLE_WINDOW_CLASSES).

* gdk/win32/gdkdraw.c (gdk_draw_line): Workaround from Hans Breuer
for bug in NT, apparently NT *does* draw the end pixel, too, in
LineTo with a one-pixel pen, so we don't have to do it ourselves.
1999-08-23 18:53:11 +00:00
Tor Lillqvist
b52072a7f8 Improvements by Hans Breuer:
* gdk/win32/gdkwindow.c (RegisterGdkClass): New function

	* gdk/win32/gdkwindow.c (gdk_window_new): Use it. Don't set the
	CS_?REDRAW flags as they cause lots of (late) redraws when "show
	window contents while dragging" is turned on. Allocate at least
	one unique class for every GdkWindowType. If support for single
	window-specific icons is ever needed (eg. Dialog specific), every
	such window should get its own class.
1999-08-21 00:41:24 +00:00
Dave Mason
3c67e83bb5 changed gtk_ruler_draw_ticks and gtk_ruler_draw_pos to private
David Mason
dcm@redhat.com
1999-08-20 19:53:16 +00:00
Dave Mason
f66547c880 wrote gtkruler - changed gtk_ruler_draw_tick and gtk_ruler_draw_pos to private
David Mason
dcm@redhat.com
1999-08-20 19:52:36 +00:00
Tor Lillqvist
29b00ba8e5 Fix a cut&paste error that caused crashes.
* gdk/win32/gdkgc.c (gdk_gc_new_with_values): Fix a cut&paste
	error that caused crashes.
1999-08-19 19:10:26 +00:00
Tor Lillqvist
70372ba8bd When blitting inside one window, use ScrollWindowEx, and call
* gdk/win32/gdkdraw.c (gdk_draw_pixmap): When blitting inside one
	window, use ScrollWindowEx, and call UpdateWindow. This prevents
	bugs when for instance part of the window was outside the
	display. Thanks to Philippe Colantoni for finding and fixing this.
1999-08-17 17:47:14 +00:00
Owen Taylor
f29407afe8 .cvsignore updates 1999-08-17 13:11:21 +00:00
Owen Taylor
a45a5dedba Fix corrupted end tag.
Tue Aug 17 09:14:01 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/tmpl/gtktypeutils.sgml: Fix corrupted end tag.

	* gtk/tmpl/gtkselection.sgml gtk/tmpl/gtkrc.sgml
	  gtk/tmpl/gtkdnd.sgml gtk/tmpl/gtkarrow.sgml
	  gtk/tmpl/gtkpaned.sgml gtk/tmpl/gtkmisc.sgml
	  gtk/tmpl/gtkhandlebox.sgml gtk/tmpl/gtkctree.sgml:
	Added missing close tags.
1999-08-17 13:10:00 +00:00
Owen Taylor
f7a50c4dc2 Added section. (Written a while ago but fell through the cracks)
Thu Aug 19 14:43:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/tmpl/gcs.sgml gdk/gdk-sections.txt: Added section.
	  (Written a while ago but fell through the cracks)

	* gtk/gtk-docs.sgml: Add a &hash; entity here as a
	  temporary hack. (There is no standard entity
	  for '#', and no way of escaping '#' in gtk-doc)

	* gtk/tmpl/gtkrc.sgml: Use the above to fix up #rrggbb
	  string literals.

	* gtk/tmpl/gtkdrawingarea.sgml: Fixed a couple
	  of errors in the example. (pointed out by
	  Nick Lamb)
1999-08-17 09:39:58 +00:00
Owen Taylor
0072dd5508 Documented
Mon Aug 16 6:60:53 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/tmpl/properties.sgml
	  gdk/tmpl/selections.sgml
	  gdk/tmpl/input_devices.sgml: Documented

	* gdk/gdk-sections.txt: Moved around types for
	  input devices properties and selections, marked
	  a few functions as private.
1999-08-16 22:52:53 +00:00
Owen Taylor
6b126f35b1 Added .cvsignore files. 1999-08-16 19:02:02 +00:00
Owen Taylor
e809774014 Initial import of GTK+ reference docs 1999-08-16 18:51:52 +00:00
Owen Taylor
91a5956707 Initial revision 1999-08-16 18:51:52 +00:00
Tor Lillqvist
0455fa3029 Fix start and end radial endpoint calculations which were totally wrong.
* gdk/win32/gdkdraw.c (gdk_draw_arc): Fix start and end radial
	endpoint calculations which were totally wrong. (A little RTFMing
	helps a lot ;-)

	* gtk/makefile.{cygwin,msc}: Use libintl extracted from glibc
	from a separate directory, not from gettext, because of licensing
	issues (we want to use the LGPL version).

	* README.win32: Mention the intl from glibc vs from gettext issue.
1999-08-16 04:45:01 +00:00
Mikko Rauhala
0139b4a3dc Updated finnish translations (mainly just duplicating entries for
better statistics).
1999-08-13 20:48:31 +00:00
Tor Lillqvist
60fbf3800b Fix a couple of bugs in the key event handling: Now AltGr chars work
* gdk/win32/gdkevents.c (gdk_event_translate): Fix a couple of bugs
	in the key event handling: Now AltGr chars work again. Also,
	now Alt-digits are passed up as well as Control-digits.
	Pass keypad plus and minus as normal plus and minus.
1999-08-12 21:44:22 +00:00
BST 1999 Tony Gale
fa53582fef FAQ Update
Wed Aug 11 13:38:26 BST 1999 Tony Gale  <gale@gtk.org>
        * docs/gtkfaq.sgml: FAQ Update
1999-08-11 12:43:04 +00:00
Federico Mena Quintero
49ca2615f8 Fixed compiler warnings. Fixed write to unallocated memory (row_ptr), and
1999-08-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* src/io-png.c (image_save): Fixed compiler warnings.  Fixed write
	to unallocated memory (row_ptr), and fixed its type as well.  Take
	into account the ArtPixbuf's rowstride when assigning the row
	pointers.

	* src/gdk-pixbuf.c: Fixup includes.

	* src/gdk-pixbuf-io.c: Likewise.
1999-08-09 06:09:24 +00:00
Owen Taylor
ecef1e1f2f Added a file describing some upcoming and more
distant major changes to GDK.
1999-08-09 02:11:54 +00:00
Tor Lillqvist
0775c02e08 A couple of minor fixes, not worth any ChangeLog entry (?). 1999-08-06 19:13:08 +00:00
Pablo Saratxaga
e8f8e0d484 updated wa & es files 1999-08-01 22:38:37 +00:00
Daniel Veillard
91cb3bb665 Fixed 2 C syntax bugs, Daniel 1999-07-31 17:20:49 +00:00
Mark Crichton
0899b4718b For some wierd reason, the commit yesterday didn't get everything. (99% of
For some wierd reason, the commit yesterday didn't get everything. (99% of
the added code was MISSING)

Wierd.

Mark
1999-07-30 15:34:18 +00:00
Mark Crichton
3d679818a0 Added some first steps for file saving. Big thing is that a
Added some first steps for file saving.  Big thing is that a gdk_pixbuf_save
function needs to be setup.

Mark
1999-07-29 21:17:40 +00:00
Michael Zucchi
61f0ede138 Only build the relevant loaders which require extra libraries if we
1999-07-26  Michael Zucchi  <mzucchi@denr.sa.gov.au>

        * src/Makefile.am (*_LIB): Only build the relevant loaders which
        require extra libraries if we actually have those libraries.
1999-07-26 06:39:39 +00:00
Tor Lillqvist
6af18860b6 Edit some of the cursors a bit to look better on white background.
* gdk/win32/rc/cursor*.cur: Edit some of the cursors a bit to look
 	better on white background.
1999-07-25 22:57:20 +00:00
Tor Lillqvist
51046a9fbf README.win32 Add HAVE_WINTAB. Undefine it if bulding without the Wintab
* README.win32
	* config.h.win32: Add HAVE_WINTAB. Undefine it if bulding without
 	the Wintab SDK.

	* gdk/win32/gdkinput.c: Hack some more. Still doesn't quite work
 	OK, but getting closer. Guard against bogus tilt data from Wacom
 	ArtPad II with the 3.40 driver. Add ifdefs for HAVE_WINTAB to
 	enable easier building without Wintab.

	* gdk/win32/gdkinput.h
	* gdk/win32/gdkevents.c
	* gdk/win32/gdkwindow.c: Minor changes related related to above.

	* gdk/win32/gdkvisual.c: Simplify a lot, remove leftovers from X11
 	code. As we have just one visual on Win32, no sense to have it in a
 	table, and no need for the hash table.
1999-07-25 20:02:21 +00:00
Karsten Weiss
b0a2c890a7 Updated.
1999-07-25  Karsten Weiss  <karsten@addx.au.s.shuttle.de>

        * de.po: Updated.
1999-07-25 12:47:10 +00:00
Richard Hestilow
8681f36261 Include glib.h as it uses g* datatypes Added for gnome-config
1999-07-23  Richard Hestilow  <hestgray@ionet.net>

        * src/gdk-pixbuf.h: Include glib.h as it uses g* datatypes
        * gdk_pixbufConf.sh.in: Added for gnome-config
        * Makefile.am:
        * configure.in: Modified to generate gdk_pixbufConf.sh
1999-07-24 03:50:12 +00:00
Sergey I. Panov
28fbb33386 ru.po: Update 1999-07-23 16:32:07 +00:00
Tor Lillqvist
45a3396064 Update gcc build instructions. Mention gettext is GPL.
* README.win32: Update gcc build instructions. Mention gettext is
 	GPL.

	* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Get correct
 	supported cursor size with GetSystemMetrics.

	* gdk/win32/gdkfont.c
	* gtk/gtkfontsel.c: Guard against some font weight and charset
 	symbols being undefined (in mingw32 headers).

	* gdk/win32/makefile.cygwin
	* gtk/makefile.cygwin
	* gtk/gtkthemes.c: No longer need to have differently named
	gcc-built DLLs when using gcc-2.95 and -fnative-struct.
1999-07-21 19:27:25 +00:00
Vincent Renardias
0a07d3ba1f Updated.
* Updated.
1999-07-21 17:28:27 +00:00
Spiros Papadimitriou
1f20f4ddca - Added Greek (el) locale. 1999-07-21 07:38:58 +00:00
Spiros Papadimitriou
accce610ae - Added Greek (el) locale. 1999-07-21 04:46:17 +00:00
Mark Crichton
276ec82df5 More fixes to the rotation code. It really works well now. Now we need to
More fixes to the rotation code.  It really works well now.  Now we need
to fix the "clipping when rotating" problem if it is a real issue.

Mark
1999-07-20 19:30:08 +00:00
Mark Crichton
8194b3483b Added translation to the rotate
Added translation to the rotate
1999-07-20 18:59:39 +00:00
Larry Ewing
e0fe931832 Fix a few memory leaks in the, most of them in error cases but one or two
1999-07-18  Larry Ewing  <lewing@gimp.org>

	* src/io-xpm.c:
	* src/io-gif.c:
	* src/io-png.c:
	* src/io-jpeg.c: Fix a few memory leaks in the, most of them in
	error cases but one or two in the common case.  There are probably
	a few small ones left.
1999-07-19 04:21:09 +00:00
Mark Crichton
6423183a63 Ok minor changes.
Ok minor changes.

No longer make a version.h, and cleaned up some code here and there, and added
a quickie dirty-hack rotation function.  However, it rotates at the origin.
Is this what we want?  Or do we want a rotate w.r.t. the center of the pixbuf?

Anyone.

Mark
1999-07-19 02:13:34 +00:00
Larry Ewing
e9ed2c18a7 reverted the expose everything changes, I'm not sure why these went in.
1999-07-16  Larry Ewing  <lewing@gimp.org>

	* src/testpixbuf.c (expose_func): reverted the expose everything
	changes, I'm not sure why these went in.
	(config_func): bring this up to date with the new pixbuf_scale
	semantics.

	* src/gdk-pixbuf-io.c: added a couple of warnings to the module
	loading code so that poeple can diagnose problems better.

	* src/gdk-pixbuf.c (gdk_pixbux_scale): fix the borkedness, also it
	no longer allocates a new pixbuf, which make things nicer for the
	rest of the code.  Unfortunately there is still a problem with
	scaling rgba images.
1999-07-17 20:03:34 +00:00
Mark Crichton
f12fbc1b32 Fixed up the scaling routine.
Fixed up the scaling routine.
1999-07-17 03:00:10 +00:00
Mark Crichton
96ba724fc5 Added scaling of pixmaps. Currently doesn't work, however, since I'm
Added scaling of pixmaps.  Currently doesn't work, however, since I'm guessing
how art_rgb_affine really works.

Mark
1999-07-16 20:35:21 +00:00
BST 1999 Tony Gale
1922a3ed01 Long awaited FAQ update.
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>

        * docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 12:40:48 +00:00
Larry Ewing
bd943182b7 add raph@gimp.org's fix to the jpeg indexing routine
1999-07-15  Larry Ewing  <lewing@gimp.org>

	* src/io-jpeg.c (image_load): add raph@gimp.org's fix to the jpeg
	indexing routine

	* src/testpixbuf.c (main): fix up the file routines a little so
	that you can load multiple files given the file names
1999-07-15 06:42:42 +00:00
Mark Crichton
de2313faf3 More fixes. See ChangeLog
More fixes.  See ChangeLog
1999-07-15 04:58:39 +00:00
Tor Lillqvist
38aa9a941b Implement it. Obscure bit manipulation needed.
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
 	it. Obscure bit manipulation needed.

	* gdk/win32/gdkevents.c: Logging.

	* gtk/gtkthemes.c (gtk_theme_engine_get): (Win32) Use new DLL naming
	style (file name include compiler name) for theme engines.
1999-07-14 23:30:15 +00:00
Pablo Saratxaga
7d03e87069 updated spanish language file 1999-07-14 17:35:32 +00:00
Mark Crichton
9b462c6024 configure.in: Fixed GIF check. Actually works now! src/gdk-pixbuf.c: More
configure.in: Fixed GIF check.  Actually works now!
src/gdk-pixbuf.c: More scaling work.
1999-07-13 07:01:08 +00:00
Mark Crichton
1d146b0d58 Doh. Forgot the libgif check. Also, slowly adding the scaling support That
Doh.  Forgot the libgif check.  Also, slowly adding the scaling support
That will be the next commit.

I also hope I got the configure.in right...

M
1999-07-13 06:21:40 +00:00
Mark Crichton
6992607bb0 Ok, we'll try this again.
Ok, we'll try this again.

io-xpm.c: Fixed.  Now actually loads XPMs instead of a big black blob.

configure.in : yes, I know it was broken.  It wasn't finished quite yet (I
always have larger fish to fry)

Oh, and if anyone touches this module again without emailing the people in
AUTHORS, I will go ballistic (after spending precious time figuring out why
this commit never happened the 1st time I tried...)
1999-07-13 01:01:14 +00:00
Tor Lillqvist
e3c310e538 Less logging verbiage.
* gdk/win32/gdkdraw.c (gdk_draw_pixmap): Less logging verbiage.

	* gdk/win32/gdkevents.c: Fix long-standing bug in key
 	events. The key.string wasn't zero-terminated, still we strdup'ed
 	it in gdk_event_copy(). Synthesize crossing events for button
 	events before possible propagation.

	* gdk/win32/gdkwindow.c: Log gdk_window_set_title.

	* gdk/win32/makefile.cygwin
	* gtk/makefile.cygwin: Use new DLL naming style for the
 	GCC-compiled ones.

	* gdk/win32/makefile.msc
	* gtk/makefile.msc: Cosmetics mostly.

	* gtk/gtk.def: Add missing entry points.

	* gtk/gtksocket.c: Add dummy gtk_socket_get_type() for Win32.
1999-07-12 23:12:39 +00:00
Raja R Harinath
af663f9a3a Remove spurious `,'.
* configure.in (AC_OUTPUT): Remove spurious `,'.
1999-07-12 21:14:27 +00:00
Manish Singh
967288262c shut up cvs
-Yosh
1999-07-12 20:53:40 +00:00
Manish Singh
06c4493ef6 Fun automake fixins
-Yosh
1999-07-12 20:52:05 +00:00
Mark Crichton
834de2994e Still working on getting the system working. Nearing release, and one
Still working on getting the system working.  Nearing release, and one little
xpm bug to hunt down still.
1999-07-12 20:27:50 +00:00
Mark Crichton
38f428304e Some changes to do a "proper" install.
Some changes to do a "proper" install.

Makefile doesnt work, however.
1999-07-12 05:40:02 +00:00
Mark Crichton
7befe28245 Fixed crash-on-loading bug (width and height are not set until
Fixed crash-on-loading bug (width and height are not set until decompression
starts)

Mark
1999-07-12 04:55:16 +00:00
Tomas Ogren
451d40642c Updated
1999-07-10  Tomas Ogren  <stric@ing.umu.se>

* sv.po: Updated
1999-07-10 21:39:00 +00:00
Tor Lillqvist
c38f5f88eb Typo. 1999-07-10 00:29:00 +00:00
Tor Lillqvist
c9b2958b6c Don't draw anything if width or height is zero. Don't print a warning if
* gdk/win32/gdkdraw.c (gdk_draw_arc): Don't draw anything if width
 	or height is zero. Don't print a warning if Pie or Arc fails, they
	always fail (?) for very narrow ellipses.

	* gdk/win32/gdkdraw.c (gdk_draw_pixmap): Call InvalidateRgn for
 	the part or the destination window corresponding to source area
 	outside of the source drawable's boundary.

	* gdk/win32/gdkdraw.c (gdk_draw_lines, gdk_draw_polygon): Don't do
 	anything if less than two points.

	* gdk/win32/gdkselection.c (gdk_selection_owner_get): Always
 	return NULL. Gtk cut-and-paste inside a single program works
 	better this way. (It always gets the clipboard contents from
 	Windows, not from its own copy, which is cleared anyway. I can't
 	say I fully understand what happens... Emulating the X selection
 	and property stuff is a bit of a mess.)

	* gdk/win32/gdkevents.c
	* gdk/win32/gdkproperty.c: A bt more verbose logging.

	* gdk/win32/gdkregion.c: Fix some memory leaks (temporary regions
 	that never got deleted). Revamp gdk_region_shrink.

	* gdk/win32/gdkregion.c: Fix memory leak, delete temporary regions
 	after use.

	* gtk/gtk.def: Add some missing entry points.

	* gtk/gtkrc.c: Strip trailing directory separator from pixmap path
 	component.
1999-07-10 00:26:54 +00:00
Mark Crichton
68f895bd68 Massive update...
Massive update...

gdk-pixbuf-io.c: Fixed to compile and run in a very crippled state.

io-bpm.c: Rough start on a WIN/OS2 BMP loader

testpixbuf.c: Really crude test program for gdk-pixbuf

io-gif.c: Fixed some boneheaded uninitalized variables causing the
loader to choke
1999-07-08 16:04:16 +00:00
Pablo Saratxaga
b10feaf1e9 updated euskara language file 1999-07-07 21:34:36 +00:00
Pablo Saratxaga
8c2c39529a little fix, added version of file 1999-07-06 01:08:15 +00:00
Pablo Saratxaga
359820b98c added euskara language file 1999-07-06 00:56:26 +00:00
Tor Lillqvist
5363075ebd Handle Control-digits specially.
* gdk/win32/gdkevents.c (gdk_event_translate): Handle
 	Control-digits specially.
1999-07-03 23:31:50 +00:00
Tor Lillqvist
d5d599c229 New pthreads version. Use gettext.
* gtk/makefile.{cygwin,msc}: New pthreads version. Use gettext.
1999-07-03 02:13:51 +00:00
Tor Lillqvist
f178fb5bb7 Add a missing entry point. 1999-07-02 09:26:11 +00:00
Mark Crichton
d38c27bda1 Shut some thing up for cvs, and fixed AM_INSTALL macro.
Shut some thing up for cvs, and fixed AM_INSTALL macro.
1999-07-01 07:00:43 +00:00
Mark Crichton
8d072a4f58 Now we have very rudimentary tiff support.
Now we have very rudimentary tiff support.

I should use the loading logic in the GIMP plugin...
1999-07-01 06:59:07 +00:00
Mark Crichton
6cf7477093 Added some io-* loaders to the Makefile.am
Added some io-* loaders to the Makefile.am
1999-07-01 03:45:59 +00:00
Mark Crichton
feb9789e64 io-gif.c, io-png.c: Actually put the licencing terms in the code now...
io-gif.c, io-png.c: Actually put the licencing terms in the code now...
io-xpm.c: XPM parser baed off of gdk's, but this does something with the
transparent colors.
1999-06-30 15:28:43 +00:00
Michael Zucci
a0b1a437cc Added loader for jpeg->RGB.
Based really loosely on imlib's io-jpeg.c
1999-06-29 11:13:31 +00:00
Mark Crichton
42311804a4 io-png.c: changed g_malloc call for pixles to art_alloc (to be "correct")
io-png.c: changed g_malloc call for pixles to art_alloc (to be "correct")

io-gif.c: implemented GIF file loading.
1999-06-29 06:07:14 +00:00
Mark Crichton
a83f00d89e Ok, now it determines if it has an alpha channel. If it does, load it, if
Ok, now it determines if it has an alpha channel.  If it does, load it, if
not, don't make one.
1999-06-29 02:54:16 +00:00
Mark Crichton
8854db3c4f Redid io-png for gdk-pixbuf. Note that it'll add an opaque alpha channel
Redid io-png for gdk-pixbuf.  Note that it'll add an opaque alpha channel
to any png that doesn't have one, and will convert greyscale PNGs to RGBA.
1999-06-29 02:36:03 +00:00
Tor Lillqvist
fee33a543d bpl was set wrong for bitmaps, should be multiple of 4. (Thanks to Hans
* gdk/win32/gdkimage.c (gdk_image_get): bpl was set wrong for
 	bitmaps, should be multiple of 4. (Thanks to Hans Breuer for
 	finding this.)
1999-06-28 07:06:01 +00:00
Tor Lillqvist
b385831d65 Fix some typos (mine). 1999-06-28 06:39:20 +00:00
Pablo Saratxaga
127bfb203e moved gtkrc.zh_TW to gtkrc.zh_TW.Big5 1999-06-25 22:21:15 +00:00
Pablo Saratxaga
ab49789a33 updated spanish language file 1999-06-24 19:27:38 +00:00
Pablo Saratxaga
29e22ec9bd changed 'ln' to '$(LN_S)' in the Makefile.am (it should be $(LN) but I don't
knwo how to make it available trough aoutoconf).
And removed various now redundant gtkrc.* files
1999-06-24 06:57:49 +00:00
Pablo Saratxaga
59f1b1cb96 updated walloon language file 1999-06-23 10:53:30 +00:00
Pablo Saratxaga
e002a729ca added gtkrc.* files for all encodings I know 1999-06-23 10:50:31 +00:00
Jose H Mercado
ecafc70e02 Final specfile cleanups from the honorable Jose Mercado.
1999-06-01  Jose H Mercado  <jmercado@mit.edu>

	* gtk+.spec.in: Corrected some typos in files section.
1999-06-21 23:12:26 +00:00
Pablo Saratxaga
1882f67a30 updated walloon language file 1999-06-21 22:26:11 +00:00
Pablo Saratxaga
b60ff5b695 updated walloon language file 1999-06-18 13:15:33 +00:00
Tor Lillqvist
a6afd23c5b Mention using GNU gettext. Enable NLS stuff. Use GNU gettext. Minor header
* README.win32: Mention using GNU gettext.
	* config.h.win32: Enable NLS stuff.
	* gtk/makefile.msc: Use GNU gettext.
	* gdk/win32/gdkdnd.c: Minor header reorg.
	* gdk/win32/{gdkevents,gdkwindow}.c: No semantic changes, mainly
	cosmetics.
	* gtk/gtkrc.c (Win32): Make get_gtk_sysconf_directory() public.
	* gtk/gtkmain.c (Win32): Use it in bindtextdomain() call.
1999-06-14 21:43:53 +00:00
Yuan-Chung Cheng
64c648d866 zh_TW.Big5.po 1999-06-11 11:56:22 +00:00
Yuan-Chung Cheng
92cff811a1 updated forzh_TW.Big5 po file 1999-06-11 11:54:15 +00:00
Pablo Saratxaga
e89ffda44e updated walloon language file 1999-06-10 16:19:14 +00:00
Kjartan Maraas
5134c92df6 Updated translation.
1999-06-09  Kjartan Maraas  <kmaraas@online.no>

		* no.po: Updated translation.
1999-06-09 11:06:43 +00:00
Vincent Renardias
f43e47dddc Complete translation.
* Complete translation.
1999-06-09 09:39:02 +00:00
Manish Singh
eefbd04215 upgrade to libtool 1.3.2 (BeOS changes merged)
-Yosh
1999-06-02 18:45:22 +00:00
Pablo Saratxaga
1d375ea289 updated walloon file 1999-06-01 00:02:12 +00:00
Pablo Saratxaga
7b8b856639 updated walloon file 1999-05-31 12:01:44 +00:00
Tor Lillqvist
16d002d074 AdjustWindowRectEx2 renamed to SafeAdjustWindowRectEx. Don't override all
* gdk/win32/gdkwindow.c: AdjustWindowRectEx2 renamed to
 	SafeAdjustWindowRectEx. Don't override all calls to
 	AdjustWindowRectEx by it, but use it only in two places: When
 	creating a new top-level window and when moving a top-level
 	window.

	Use screen coordinate rectangle, not client rectangle, in
 	gdk_window_move. Thus SafeAdjustWindowRectEx will do its job only
 	when we try to place a window so that the decoration (mainly,
 	title bar) isn't visible.

	These changes fix the bug that showed up for instance as the
 	GIMP's saved top-level windows moving right and down (by an amount
 	equal to the window decoration) for each session. This bug showed
 	up also in testgtk's "Saved Position".

	gdk_window_resize also redone a bit.
1999-05-30 02:15:33 +00:00
lukka
e060cbf62a Update fi.po 1999-05-26 21:19:29 +00:00
Neil Vachharajani
76c28cbbad Fixed a forgotten period after a @xref. 1999-05-26 04:55:57 +00:00
Tor Lillqvist
34c2f20968 Add (commented out) Windows-style theme include line.
* gtk/testgtkrc: Add (commented out) Windows-style theme
	include line.

	* gdk/win32/gdk.def,gtk/gtk.def: Add some missing entry points.
1999-05-25 04:03:14 +00:00
Tor Lillqvist
1c73fc83a2 Typo. 1999-05-18 22:26:58 +00:00
Tor Lillqvist
330dd2f7c3 Copy our gdkprivate.h and gdkx.h to a gdk subdirectory, so that
* gdk/win32/makefile.{cygwin,msc}: Copy our gdkprivate.h and
 	gdkx.h to a gdk subdirectory, so that applications can include
 	these with <gdk/*.h> without trouble.

	* gdk/win32/gdkimage.c (gdk_image_new_with_depth): Code simplified.
	(gdk_image_destroy): Plugged resource leak, some GdkImages didn't
	have their bitmap destroyed.

	* gdk/win32/gdk.def: Add gdk_root_parent.
1999-05-18 22:23:23 +00:00
CDT 1999 Shawn T. Amundson
45dc3bcf82 changes to compile nicely (with xlib) on BeOS
Wed May 12 03:00:56 CDT 1999 Shawn T. Amundson <amundson@gtk.org>

        * configure.in
          gtk-config.in
          ltconfig
          ltmain.sh
          gtk/Makefile.am: changes to compile nicely (with xlib)
          on BeOS
1999-05-12 08:06:07 +00:00
Pablo Saratxaga
bf21aecc91 updated spanish language file 1999-05-06 01:14:50 +00:00
Manish Singh
f30c006cbb libtool 1.3
-Yosh
1999-05-01 22:20:16 +00:00
Lars Hamann
a313506013 merges from gtk-1-2
Fri Apr 30 13:38:16 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c:
	* gtk/gtkctree.c: merges from gtk-1-2
1999-04-30 11:48:42 +00:00
Tor Lillqvist
1c84483f3e Support added for building using a GNU toolchain on Win32,
gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.

	* gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
	* config.h.win32: Changes for gcc.
	* gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
	* gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
	* gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
	* gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
	Protect shl stuff unavaiilable with mingw32 headers.
	* gdk/win32/gdkevents.c: Fix typo.
	* gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
	* gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
	* gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
	* gdk/win32/gdkprivate.h: Make up for some stuff missing from
	the mingw32 headers.
	* gdk/win32/makefile.msc: Use latest Wintab kit and glib.
	* gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
	definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
	* gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
	Test for NATIVE_WIN32, not _MSC_VER.
	* gtk/gtkmain.c: No use warning about developer version on Win32,
	there aren't any non-developer versions anyhow.
	* gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
	* gtk/makefile.msc: Use pthread from another directory. Minor other
	changes.
1999-04-25 21:55:05 +00:00
Changwoo Ryu
eedec945df Updated Korean translation
1999-04-24  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* ko.po: Updated Korean translation
1999-04-24 14:25:57 +00:00
Pablo Saratxaga
05c3a18b37 added gtkrc.?? files for various iso-8859-2 languages,
for greek (iso-8859-7), hebrew (iso-8859-8), serbian (iso-8859-5),
turkish (iso-8859-9), esperanto (iso-8859-3) and armenian (armscii-8)
1999-04-23 04:24:41 +00:00
George Lebl
ff0ec3ac91 correctly remove the default filter from the list
Wed Apr 21 14:20:22 1999  George Lebl  <jirka@5z.com>

        * gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
          default filter from the list
1999-04-21 21:30:39 +00:00
Drazen Kacar
a76ae0cc9a *** empty log message *** 1999-04-16 23:42:35 +00:00
Drazen Kacar
c1ba0be318 Added Croatian translation. 1999-04-16 23:40:15 +00:00
Vincent Renardias
e2d3078d3c completed/updated translation. 1999-04-15 14:52:01 +00:00
Owen Taylor
b76c1c7bd2 Add a warning when gtk_widget_grab_default() is called for a widget that
Mon Mar  8 12:52:53 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_grab_default): Add a warning
	 when gtk_widget_grab_default() is called for a widget that
	 is not within a GtkWindow.
1999-04-13 05:13:20 +00:00
BST 1999 Tony Gale
9ccee8a3fc use a scrolled window in the clist example. Minor tutorial fixes.
Sat Apr 10 13:52:54 BST 1999  Tony Gale <gale@gtk.org>

        * docs/gtk_tut.sgml, examples/clist.c: use a
          scrolled window in the clist example. Minor
          tutorial fixes.
1999-04-10 12:55:24 +00:00
Pablo Saratxaga
42e38e41f7 added catalan language file 1999-04-08 22:55:14 +00:00
Pablo Saratxaga
578d91f381 updated spanish & walloon language files,
and completed i18n of font selector
1999-04-05 16:20:24 +00:00
Pablo Saratxaga
d05cf752dc updated spanish language file and added walloon language file 1999-04-05 05:17:55 +00:00
Pablo Saratxaga
ef68de7b87 updated spanish language file 1999-04-05 04:06:31 +00:00
Pawe Dziekoski
4ca8d37b82 Merge PLD cvs tree:
Merge PLD cvs tree:

1999-04-02  Pawe Dziekoski  <dziekons@pld.org.pl>

        * gtk+.pl.po: Kilka nowych tumacze.
1999-04-02 15:11:40 +00:00
BST 1999 Tony Gale
900944ab01 Style check from David King <dking@youvegotmail.net>
Fri Apr  2 09:19:20 BST 1999  Tony Gale <gale@gtk.org>

        * docs/gtk_tut.sgml: Style check from David King
          <dking@youvegotmail.net>
1999-04-02 08:21:07 +00:00
Pavel Machek
57afb2b588 Make code compile with unknown value of GDK_WINDOWING
1999-03-30  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>

	* gtk/gtkfontsel.c (gtk_font_selection_get_fonts): Make code
	compile with unknown value of GDK_WINDOWING
1999-03-30 12:06:00 +00:00
Yukihiro Nakai
0dfcb2d2be ja.po update.
ja.po update.
1999-03-30 11:33:28 +00:00
Yukihiro Nakai
8125476783 ja.po update from Yasuhiro SHIRASAKI<yasuhiro@awa.tohoku.ac.jp>
ja.po update from Yasuhiro SHIRASAKI<yasuhiro@awa.tohoku.ac.jp>
1999-03-30 11:31:10 +00:00
Raja R Harinath
32f6e0a4ce Make sure `gdkconfig.h' exists after the rule is fired.
* gdk/Makefile.am (gdkconfig.h): Make sure `gdkconfig.h' exists
after the rule is fired.
(install-exec-local): Install gdkconfig.h only if the contents are
different from the currently installed gdkconfig.h.

Rationale:
`make install-exec' is meant to install files that go into
$exec_prefix, which includes `gdkconfig.h'.  However, developers use
`make install-exec' when they know that none of the headers have
changed, to prevent needless recompiles of other packages.  My
previous change of installing `*config.h' during `make install-exec'
undermines this, even though it is the right thing to do.  So, in the
spirit of "do the right thing first, optimize later", here's the
optimization.
1999-03-29 00:15:02 +00:00
Raja R Harinath
55a5d2144d Fix type in log entry. 1999-03-28 19:58:37 +00:00
Raja R Harinath
65204240f9 Rename from configincludedir so that glibconfig.h will be installed as
* gdk/Makefile.am (configexecincludedir): Rename from
configincludedir so that glibconfig.h will be installed
as part of `make install-exec'.
1999-03-26 21:07:36 +00:00
Tomasz Kłoczko
733c5614e5 - added gtkrc.pl.
- added gtkrc.pl.
1999-03-26 04:03:44 +00:00
Tomasz Kłoczko
8de14d3353 - more pl translations.
- more pl translations.
1999-03-25 23:50:11 +00:00
Szabolcs Ban
993d986ee2 Shooby Ban <bansz@szif.hu>
* updated hungarian translations
1999-03-24 10:39:25 +00:00
Elliot Lee
f03d0014a3 *** empty log message *** 1999-03-21 19:40:49 +00:00
Manish Singh
d2922401e5 acinclude.m4 config.guess config.sub ltconfig upgrade to libtool 1.2f
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.2f

* autogen.sh: libtool is not required to autogen gtk+

* acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly needed)

-Yosh
1999-03-20 00:52:36 +00:00
Tor Lillqvist
f3e95348be Include gdkprivate.h withouh gdk/ path, as it shouldn't be in the common
* gtk/simple.c gtk/makeenums.h: Include gdkprivate.h withouh gdk/
 	path, as it shouldn't be in the common gdk directory.

	* gtk/gtkcompat.h.win32: New file.

	* gtk/gtkfeatures.h.win32: Removed.

	* gtk/makefile.msc: Make gtkcompat.h from gtkcompat.h.win32. Use
 	gdk library from correct (../gdk/win32) directory.
1999-03-18 18:44:04 +00:00
Tor Lillqvist
0b4d29fd6e Merge in Win32 version: Define macro GDKVAR for declaring gdk variables
* gdk/gdktypes.h: Merge in Win32 version: Define macro GDKVAR for
declaring gdk variables exported/imported from the DLL. New image
type enum, GDK_IMAGE_SHARED_PIXMAP, for gdk_imlib. New drag and
drop protocol enums, GDK_DRAG_PROTO_WIN32_DROPFILES and
GDK_DRAG_PROTO_OLE2.

* gdk/gdk.h: Merge in Win32 version: Two new functions,
gdk_pixmap_create_on_shared_image and gdk_image_bitmap_new. So far
declared only for the Win32 version, but could be in the X11
version as well. (Needed for a Xlib-less gdk_imlib.)
gdk_color_hash should have only one parameter. Declare
gdk_threads_mutex with GDKVAR.

* gdk/gdkcolor.c (gdk_color_hash): As a hash function should have
just one parameter.

* gdk/gdkimage.c (gdk_image_get): Initialize bpp correctly. Bytes
per pixel, not bits.

* gdk/gdkrgb.c: Mingle includes somewhat. (gdk_rgb_select_conv):
Fetch bpp (which means bits-per-pixel here) from another place on
Win32. Accept also depth==32 (which we might get on Win32) with
bpp==32.

* gtk/{gtkclist,gtkctree,gtkdnd,gtkditable,gtkfontsel,
gtkhandlebox,gtklayout,gtkmain,gtkplug,gtkpreview,gtkrc,
gtkselection,gtksocket,gtkstyle,gtkwidget,gtkwindow}.c:
Include gdx.h from "gdkx.h", not "gdk/gdkx.h", as gdkx.h will be
in the backend-dependent directory, not in the common gdk
directory.

* gtk/testgtk.c: Ditto. Also, don't use ../gdk patchs to gdk
headers.
1999-03-17 23:02:10 +00:00
Tor Lillqvist
d142187b38 Fixes to the win32 backend to actually be able to compile within a
directory hierarchy like this, with common gdk.h and gdktypes.h
for all backends. gdkrectangles.c and gdkrgb.c is copied before
compilation from the x11 backed (which still is in .., but
eventually will be in ..\x11).
1999-03-17 20:12:47 +00:00
Tim Janik
9f513b1840 tell people that they don't really want to use the Gtk+ devel version
Wed Mar 17 05:06:49 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init_check): tell people that they don't really
        want to use the Gtk+ devel version (which is true, and yes - even i am
        currently working with the 1.2.x branch). so everyone reading this, you
        probably want to issue
        cvs checkout -r glib-1-2 glib
        and
        cvs checkout -r gtk-1-2 gtk+
        as your next two comands.
1999-03-17 04:18:47 +00:00
Stuart Parmenter
95931e18aa merges from stable branch 1999-03-17 03:42:22 +00:00
Tim Janik
2d49bbb044 build gtkcompat.h from gtkcompat.h.in instead of gtkfeatures.h from
Wed Mar 17 02:49:32 1999  Tim Janik  <timj@gtk.org>

        * configure.in: build gtkcompat.h from gtkcompat.h.in instead of
        gtkfeatures.h from gtkfeatures.h.in, require GLib 1.3.0.

        * gtk/gtkcompat.h.in: combined gtkcompat.h and gtkfeatures.in in this
        file. strongly deprecated the GTK_HAVE_* macros, we provide
        GTK_CHECK_VERSION() for people that need to check for certain
        Gtk+ versions.

        * gtk/gtkcompat.h: removed this from CVS.
        * gtk/gtkfeatures.h.in: removed this from CVS, gtkfeatures.h was a bad
        idea right from the start, it just didn't seem like that back then.
1999-03-17 02:43:20 +00:00
Tim Janik
f045ba415a Tue Mar 16 17:43:33 1999 Tim Janik <timj@gtk.org>
Wed Mar 17 01:46:28 1999  Tim Janik  <timj@gtk.org>

        * merges from gtk-1-2:

Tue Mar 16 17:43:33 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.c (gtk_item_factory_parse_rc_string): ensure the
        item factory class has been created.
        (gtk_item_factory_parse_rc): likewise.

        * gtk/gtkmenu.c:
        keep proper references for old_active_menu_item.
        (gtk_menu_reparent): unset the usize of the new parent,
        so the menu can sanely be size requested and we don't get nasty screen
        artefacts upon next reparentation.
        (gtk_menu_motion_notify): set send_event to TRUE if we synthesize an
        enter notify. only synthesize enter notifies if the pointer really is
        inside the event window.
        (gtk_menu_popdown): use gtk_menu_shell_deselect().
        (gtk_menu_popup): move the background setting stuff into
        gtk_menu_tearoff_bg_copy() so it can be called from other places as well.

        * gtk/gtkmenushell.c (gtk_menu_shell_button_press): use
        gtk_menu_shell_select_item() to select the new item.
        (gtk_menu_shell_deselect): export this function, so gtkmenu.c can
        do the right thing for deselection as well.

Sat Mar 15 20:10:33 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.[hc]:
        (gtk_widget_accelerators_locked): return whether a widget's accelerators
        are locked.

        * gtk/gtkmenu.c (gtk_menu_key_press): don't remove or install new or
        existing accelerators if the widget's accelerators are locked.

Sat Mar 14 19:44:05 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.[hc]: allow managing of foreign menu items.

        * gtk/gtkmenu.c: truely forward key press and key release events to
        the menu widget from the toplevel or tearoff window. we can't simply
        connect to that, we need to stop further processing of the events as
        well.

Sat Mar 13 13:14:17 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenu.c:
        (gtk_menu_key_press): pass event->keyval, event->state to
        gtk_accelerator_valid, instead of event->keyval twice.
        refuse to install single letter accelerators for menus that use
        single letter shortcuts.

        * gtk/gtkitemfactory.c (gtk_item_factory_create_item): use
        gtk_menu_ensure_uline_accel_group().

        * gtk/gtkmenu.[hc]: added gtk_menu_ensure_uline_accel_group()
        which will always return an uline accel group, made
        gtk_menu_get_uline_accel_group() return NULL if the group isn't
        yet created.

Mon Mar 15 01:03:27 1999  Lars Hamann  <lars@gtk.org>

        * gtk/gtkclist.h (struct _GtkCListColumn): added button_passive flag.

        * gtk/gtkclist.c (gtk_clist_column_title_passive):
        Leave button sensitive, trap  button_press, button_release,
        motion_notify, enter_notify and leave_notify events instead.
        (gtk_clist_column_title_active): disconnect event handler.
        (gtk_clist_drag_data_get): fixed memory leak. Reported by
        Guillaume Laurent <glaurent@worldnet.fr>

Wed Mar 10 23:49:55 1999  Lars Hamann  <lars@gtk.org>

        * gtk/gtklayout.c (gtk_layout_adjustment_changed): fixed a few
        width/height mixups.

        * gtk/gtkctree.c (tree_delete): emit an tree_unselect_row signal
        if needed.

Wed Mar 10 00:11:32 1999  Tim Janik  <timj@gtk.org>

        * gtk/testgtk.c (create_item_factory): unref the item factory after
        window's destruction.

        * gtk/gtkmenushell.c (gtk_menu_shell_activate_item): keep a reference
        count on the menu shell around the menu item's activation, since the
        signal emission may cause menu shell destruction.

        * gtk/gtkitemfactory.c:
        the previous code leaked one accel group per menu. we use
        gtk_menu_get_uline_accel_group() now to fix that, and with that
        also create the underline accelerator group of the menus only if
        required (i.e. an underline accelerator has been specified).
        (gtk_item_factory_construct):
        (gtk_item_factory_create_item): removed code that would create an
        extra accel group for the menu (and leak references).
        (gtk_item_factory_create_item): adapted the underline accelerator
        installation code to properly feature gtk_menu_get_uline_accel_group().

        * gtk/gtkmenu.[hc]: added gtk_menu_get_accel_group() to retrive
        menu->accel_group, this may return NULL if the accelerator group
        hasn't been set yet.
        added gtk_menu_get_uline_accel_group() to retrive the underline
        accelerator group of the menu, this will be created on demand
        and proper care is taken about its reference count.

        * gtk/gtkitemfactory.h:
        * gtk/gtkitemfactory.c:
        dumped the approach of keeping a widgets by action list on the
        factory since the factory<->widget destroy negotiation didn't work
        and would be hard to get going at all. instead we keep a list of
        GtkItemFactoryItem items on the factory (GtkItemFactoryItems are
        persistant throughout a program's life time).
        also, i removed the static const gchar *key_* variables, and made
        them inline strings (they weren't actually used anyways).
        (gtk_item_factory_add_item): update ifactory->items.
        (gtk_item_factory_destroy): destroy ifactory->items (and remove
        the item factory pointer from the remaining ifactory widgets).
        (gtk_item_factory_get_widget_by_action): walk the GtkItemFactoryItem
        list to find the widget.
        (gtk_item_factory_get_item): new function that works around
        gtk_item_factory_get_widget() limitations, this function will only
        return menu items, even for <Branch> entries.

Tue Mar  9 01:01:28 1999  Tim Janik  <timj@gtk.org>

        * gdk/gdkfont.c (gdk_font_load): first lookup the xfont ID in our
        font hash table, if we have a GdkFontPrivate entry for this font
        already, simply increment its reference count, provided by Olaf Dietsche
        <olaf.dietsche+list.gtk@netcologne.de>.

        * gtk/gtkstyle.c (gtk_style_copy): plug a GdkFont reference leak, fix
        provided by Olaf Dietsche <olaf.dietsche+list.gtk@netcologne.de>.

Sun Mar  7 06:13:29 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c:
        (gtk_container_add_with_args):
        (gtk_container_addv):
        (gtk_container_add): before adding a child to a conatiner, make sure
        it is (default) constructed, this is neccessary because under certain
        circumstances the child will get relized and mapped immediatedly, in
        which case it has to be constructed already.

Mon Mar  1 17:58:21 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_connect_by_type): count object_signal
        values > 1 as TRUE also.
1999-03-17 01:39:42 +00:00
Tor Lillqvist
db30076b0b Check for lstat.
* configure.in: Check for lstat.

* config.h.win32: Add non-definition of HAVE_LSTAT, just for
completeness.

* gtk/gtkrc.c: If don't HAVE_LSTAT, use stat.

* gtk/gtk.def: Removed CRs.

* gtk/makefile.msc: Correct include path to Win32 GDK version (in
..\gdk\win32).

* gdk/win32/makefile.msc: Correct upwards relative paths.
1999-03-16 20:03:50 +00:00
Tor Lillqvist
8599979585 Actually change <strings.h> to <string.h> as I already said in the
ChangeLog, but had not done after all.
1999-03-15 17:48:28 +00:00
Mikko Rauhala
43ab625770 Added a Finnish translation of gtk+. 1999-03-15 13:29:33 +00:00
George Lebl
cb8adfba87 swap the gtk_drag_highlight_expose and gtk_drag_highlight_paint since it
Mon Mar 15 03:38:34 1999  George Lebl  <jirka@5z.com>

        * gtk/gtkdnd.c: (gtk_drag_highlight) swap the
          gtk_drag_highlight_expose and gtk_drag_highlight_paint since
          it was connecting a void function to expose_event and the int
          returning function to the draw signal
1999-03-15 11:42:44 +00:00
Jeff Garzik
90d69893fd Use correct path to libgmodule.la when ref'ing uninstalled copy of glib.
1999-03-14  Jeff Garzik  <jgarzik@pobox.com>

        * configure.in:
        Use correct path to libgmodule.la when ref'ing uninstalled copy
        of glib.  (Already in stable branch, Bug #417)
1999-03-15 03:26:12 +00:00
Tor Lillqvist
0a23dccde4 Forgot to document maketypes.awk change in ChangeLog. Added gdk.def file. 1999-03-15 00:08:22 +00:00
Tor Lillqvist
c65508d272 This might seem like a large patch, but it isn't that bad, and nothing
should break on Unix/X11.

Win32 merge and general portability stuff:

* acconfig.h,configure.in: Check for <sys/time.h>.

* gdk/win32: New directory (actually, been there for a while).

* gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
NATIVE_WIN32, and use these. Always case fold on Win32. No
backslashed escapes on native Win32.

* gtk/{gtk.def,makefile.msc}: New files.

* gtk/Makefile.am: Add above new files.

* gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
instead of <strings.h>.

* gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
<unistd.h> appropriately.

* gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
Use ABS() (from <glib.h>) instead of abs().

* gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
of gtk (and thus glib) headers, so that WIN32 will be
defined. With MS C, include <direct.h> for mkdir prototype.

* gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
some casts, needed by MS C.

* gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
implemented).

* gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
<X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
G_SEARCHPATH_SEPARATOR_S and g_module_build_path.

* gtk/gtkmain.h: Mark variables for export/import on Win32.

* gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
the event is not a hint, or its window is not the slider. Needed
on Win32, at least.

* gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
a subdirectory of the Windows directory as gtk system
configuration directory.

* gtk/gtkselection.c: No chunks on Win32.

* gtk/gtksocket.c: Not implemented on Win32.

* gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.

* gtk/makeenums.h: Include gdkprivate.h after gdk.h.

* gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
1999-03-15 00:03:37 +00:00
Raja R Harinath
044fd2db47 Move widechar tests from `glib' to here, since those were meant only for
1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>

	* configure.in (gdk_wc): Move widechar tests from `glib' to here,
	since those were meant only for gdki18n.h.
	* gdk/gdki18n.h: Include gdkconfig.h and use GDK_* instead of G_*
	for widechar tests.
	* gtk/Makefile.am (INCLUDES): Add -I../gdk for gdkconfig.h.
1999-03-14 03:27:33 +00:00
Tor Lillqvist
a3c5d33f26 Configure now generates a gdkconfig.h file, in similar way as GLib's
configure generates glibconfig.h. Currently it only defines what
windowing API GDK uses, and on Unix (where configure scripts are
used), it's always X11...

Include gdkconfig.h in gdktypes.h.

gdkconfig.h is installed in @libdir@/gtk+/include (like glibconfig.h
is in @libdir@/glib/include). (This might be debatable?) Add that to
gtk-config --cflags.

Merge in Win32 changes to gtkfontsel.c
1999-03-13 16:40:24 +00:00
Tor Lillqvist
0d81100af3 Don't append a * to the pattern to complete if the user entered one
herself.  This way one can complete *.h and don't get matches on any
.help files, for instance.
1999-03-13 01:24:10 +00:00
Tor Lillqvist
b82992851f Check for dirent.h and pwd.h.
* configure.in acconfig.h: Check for dirent.h and pwd.h.

* gtk/gtkfilesel.c: Use g_get_current_dir(). Merge in Win32
version: Use G_DIR_SEPARATOR, g_path_is_absolute, no tilde
expansion (based on HAVE_PWD_H), allow for drive letters UNC
names not handled yet. Also, code from Craig Setera's port to
Win32 that uses cygwin.dll
1999-03-13 01:14:19 +00:00
Tor Lillqvist
700891684e Check for NULL parameter in gdk_font_load. Plug a memory leak in gdkim.c. 1999-03-12 20:12:58 +00:00
Tim Janik
0c178e965c first lookup the xfont ID in our font hash table, if we have a
Tue Mar  9 01:01:28 1999  Tim Janik  <timj@gtk.org>

        * gdk/gdkfont.c (gdk_font_load): first lookup the xfont ID in our
        font hash table, if we have a GdkFontPrivate entry for this font
        already, simply increment its reference count, provided by Olaf Dietsche
        <olaf.dietsche+list.gtk@netcologne.de>.

        * gtk/gtkstyle.c (gtk_style_copy): plug a GdkFont reference leak, fix
        provided by Olaf Dietsche <olaf.dietsche+list.gtk@netcologne.de>.
1999-03-10 01:15:03 +00:00
Federico Mena Quintero
ac7b6805f4 Significantly reduced the number of calls to gdk_draw_point() (and thus to
1999-03-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkstyle.c (gtk_default_draw_handle): Significantly reduced
	the number of calls to gdk_draw_point() (and thus to X) by
	clipping the points by hand.

	* gtk/gtkhandlebox.c (draw_textured_frame): Actually make use of
	the clip parameter.
	(gtk_handle_box_paint): Only paint the handle if the expose area
	intersects it.
1999-03-09 21:26:57 +00:00
Tor Lillqvist
91ed4f809f Some bug fixes and improvements to the Win32 GDK. 1999-03-07 22:25:54 +00:00
Asbjørn Pettersen
6cda2a2021 add dll suffix 1999-03-07 17:48:02 +00:00
Asbjørn Pettersen
ee03faee2a add gen_8_3_dll_name() 1999-03-07 10:46:34 +00:00
Tor Lillqvist
fd1b869a35 cur files are binary. Changed to -kb and committed the correct versions,
previously (in text mode) had been cut off at a ^Z by the Windows CVS client...
1999-03-06 08:45:07 +00:00
Tor Lillqvist
17dd9e43dc cur files are binary. cvs admin -kb and recommit. 1999-03-06 08:42:03 +00:00
Tor Lillqvist
9f3b82e178 Win32 version of GDK source files and resource files (cursors and icons). 1999-03-05 19:53:56 +00:00
Asbjørn Pettersen
ced58eb136 open in text mode 1999-03-05 08:18:09 +00:00
Stefan Jeske
209f5d5cd4 Added two new signals to GtkSpinButton, "input" and "output", to make the
* gtk/gtkspinbutton.[c,h] gtk/testgtk.c: Added two new signals to
	GtkSpinButton, "input" and "output", to make the output more flexible.
 	The user has to provide a mapping between adjustment->value and the
 	output string (and vice versa, if the spin button is editable).
	See testgtk for examples.
1999-02-28 16:04:47 +00:00
Tim Janik
e84df313c4 merging minor fix from gtk+-1-2 1999-02-27 00:38:52 +00:00
Tim Janik
78bb15f61e moved old ChangeLog to ChangeLog.pre-1-2, and started new one.
Sat Feb 27 01:18:47 1999  Tim Janik  <timj@gtk.org>

        * ChangeLog: moved old ChangeLog to ChangeLog.pre-1-2, and started
        new one.

        * configure.in: set gtk+ version to 1.3.0.
1999-02-27 00:26:30 +00:00
Pablo Saratxaga
81161cd723 upgraded spanish language file 1999-02-27 00:03:42 +00:00
CST 1999 Shawn T. Amundson
996f8e931a Incremented version to 1.2.0. -Shawn <amundson@gtk.org>
Incremented version to 1.2.0.  -Shawn <amundson@gtk.org>

Also:

Wed Feb 24 05:26:20 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * gtk/gtkitemfactory.h: added a dummy gpointer to
          GtkItemFactoryClass for Tim Janik.

Mon Feb 22 21:22:11 1999  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkcontainer.h gtk/gtkwidget.h: Added some
          padding to class structures to allow addition
          of signals without breaking binary compatibility.
1999-02-25 21:39:14 +00:00
Tim Janik
2a4c97f3b3 still request the extra width or height if the corresponding scrollbar is
Thu Feb 25 13:38:38 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): still
        request the extra width or height if the corresponding scrollbar is
        already visible (the change from 09:50 needs to apply to policy ==
        GTK_POLICY_AUTOMATIC only).
1999-02-25 14:08:50 +00:00
Tim Janik
473e31208e updates, i left the text widget related portions in there, to serve as a
Thu Feb 25 11:27:36 1999  Tim Janik  <timj@gtk.org>

        * TODO: updates, i left the text widget related portions in there,
        to serve as a guide line for things to watch out for when it gets
        reimplemented.
1999-02-25 10:29:38 +00:00
Tim Janik
3a3a0ef97b don't add extra width or height if the requested size is mandatory (i.e.
Thu Feb 25 09:50:38 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): don't add
        extra width or height if the requested size is mandatory (i.e. set
        through child->usize).
1999-02-25 08:58:23 +00:00
CST 1999 Shawn T. Amundson
cf7888fdaf New function gtk_menu_reorder_child() from Tim Janik.
Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson <amundson@gtk.org>

	* gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child()
	  from Tim Janik.

This will be used in GIMP, so it is tested there.
1999-02-25 08:17:13 +00:00
Tim Janik
c9cda15e70 removed bogus line 1999-02-25 06:53:27 +00:00
Owen Taylor
b515672a1e Don't access *bitmapped_sizes if nbitmapped_sizes == 0. (Pointed out by
Thu Feb 25 00:48:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfontsel.c: Don't access *bitmapped_sizes
	if nbitmapped_sizes == 0. (Pointed out by
	zucchi@zedzone.fsi.com.au (Michael Zucchi))
1999-02-25 05:52:00 +00:00
Owen Taylor
b1135416f2 Make prototypes for drag_data_get and drag_data_received handlers match
Wed Feb 24 23:12:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.h gtk/gtkclist.c: Make prototypes
	for drag_data_get and drag_data_received handlers
	match the types used for gtk_singal_new; time needs
	to be a uint, not a uint32.
1999-02-25 04:06:15 +00:00
Owen Taylor
f9a27ad6fd Changed bug reporting instructions to describe using the GNOME bug
Wed Feb 24 20:34:59 1999  Owen Taylor  <otaylor@redhat.com>

	* README: Changed bug reporting instructions to
	describe using the GNOME bug tracking system.
1999-02-25 01:28:31 +00:00
Owen Taylor
da219872d8 Unset the clip mask for the GC if we set it. (Patch from Lars Hamann
Wed Feb 24 19:08:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkclist.c (draw_cell_pixmap): Unset the clip
	mask for the GC if we set it. (Patch from
	Lars Hamann <lars@gtk.org>)
1999-02-25 00:04:18 +00:00
Tim Janik
6333998df4 added function to check if a specific signal handler connection exists
Thu Feb 24 23:58:44 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_handler_pending_by_id): added function
        to check if a specific signal handler connection exists (similar to
        gtk_signal_handler_pending_by_func). and yes, this is a neccessary
        addition, since without this function, signal handlers can not be
        (un)blocked or disconnected in a generic fashion without producing
        g_warnings().
        made gtk_signal_get_handlers() an inline function since it's used in
        a lot of places, especially within signal emission.
1999-02-24 23:34:14 +00:00
Kjartan Maraas
59c4671866 Updated translation. (monospaced is still missing)
1999-02-25  Kjartan Maraas  <kmaraas@fib.hl.no>

		* Updated translation. (monospaced is still missing)
1999-02-24 23:23:06 +00:00
Tim Janik
3ae4d004ca if the widget is not editable, don't silently eat up GDK_Return, GDK_Home
Wed Feb 24 19:35:15 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtktext.c (gtk_text_key_press): if the widget is not editable,
        don't silently eat up GDK_Return, GDK_Home and GDK_End, return FALSE
        instead so the user can still hook up key bindings.
1999-02-24 18:47:49 +00:00
Tim Janik
c4fe78345e warn about &widget->requisition, even for toplevels.
Wed Feb 24 11:19:12 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_size_request): warn about
        &widget->requisition, even for toplevels.

        * gtk/gtkwindow.c (gtk_window_move_resize): request size into an
        automatic variable and check if our size has changed.
        when we decide to reallocate everything, we need to resize our
        own GdkWindow as well.

        * gtk/gtkmain.c:
        * gtk/gtkobject.c: hack time, make --gtk-debug=objects work even
        after gtk_type_init(), this is to "fix" gnome's arg parsing oddities.

        * gtk/gtktypeutils.h: don't segfault in GTK_CHECK_CLASS_TYPE and
        GTK_CHECK_TYPE upon NULL pointers.

        * gtk/gtklayout.c: removed bogus prototypes of gtk_layout_gravity_works,
        gtk_layout_set_static_gravity, gtk_layout_add_child_cb and
        gtk_layout_remove_child_cb to shut up compiler.

        * gtk/Makefile.am: added an empty rule
        gtkrc:
                :
        so make doesn't try to "update" gtkrc from gtkrc.c.
1999-02-24 16:29:47 +00:00
CST 1999 Shawn T. Amundson
082c0c8975 removed gtkrc rule added by Sergey Panov, because GTK+ no longer built. We
Wed Feb 24 05:53:15 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * gtk/Makefile.am: removed gtkrc rule added by
          Sergey Panov, because GTK+ no longer built.  We
          don't need to install an empty gtkrc anyway.
1999-02-24 11:56:10 +00:00
CST 1999 Shawn T. Amundson
279e878bdd Added notice to look in AUTHORS and ChangeLog files for a list of changes.
Wed Feb 24 01:22:39 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * *.[ch]: Added notice to look in AUTHORS and ChangeLog files
	  for a list of changes.
1999-02-24 07:37:18 +00:00
Tim Janik
26ffb00362 fix implicit branch creation, we need the *real* parent path for this and
Tue Feb 23 17:52:37 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.c (gtk_item_factory_create_item): fix implicit
        branch creation, we need the *real* parent path for this and
        gtk_item_factory_parse_path() only returns the parent path with "_?"
        stripped off.
1999-02-23 19:42:53 +00:00
Pavel Machek
e3eedba2f9 You don't need to check one variable twice (trivial bugfix). 1999-02-23 14:18:38 +00:00
Owen Taylor
148e766334 When sending events to windows with a proxy, set the window field in the
Mon Feb 22 19:06:30 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdnd.c (xdnd_send_*): When sending events to
	 windows with a proxy, set the window field in the
	 sent event to the original window, not to the proxy.
	 (This gives consistency with Motif, and also provides
	  information to the destination that it wouldn't have
	  otherwise).

	* gtk/gtkdnd.c: Fixed some refcount leaks for windows.

	* gdk/gdkdnd.c (xdnd_send_xevent): When sending
	 Xdnd event to the root window, set the event mask
	 to ButtonPressMask. Hopefully, this should give us
	 compatibility with kfm, if it uses the Qt style
	 of root window drops.
1999-02-23 00:43:26 +00:00
GMT 1999 Tony Gale
d5aed59bbc - Complete the ProgressBar API - Fix the CList example code
Mon Feb 22 08:45:10 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
          - Complete the ProgressBar API
          - Fix the CList example code

        * examples/clist/clist.c, examples/progressbar/progressbar.c:
           Update from tutorial
1999-02-22 08:51:02 +00:00
Owen Taylor
619ca57c5a Removed check-y/check-n backgrounds - the effect looked like a bug.
Sun Feb 21 17:44:52 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtkrc: Removed check-y/check-n backgrounds -
	 the effect looked like a bug.
1999-02-21 22:38:59 +00:00
Owen Taylor
16561707f8 Always set the max width or height to at least 1, since 0 triggers bugs in
Sun Feb 21 17:14:44 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_set_geometry_hints): Always
	 set the max width or height to at least 1, since 0
	 triggers bugs in some window managers. (The window
	"pops out" of the frame in fvwm)
1999-02-21 22:12:00 +00:00
Owen Taylor
039d738e3b Changed warnings from g_message() to g_warning().
Sun Feb 21 16:16:22 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkscrolledwindow.c gdk/gdkfont.c gdk/gdkim.c:
	 Changed warnings from g_message() to g_warning().

	* gdk/gdkim.c (gdk_ic_destroy): Changed g_print
	 to g_message within GDK_NOTE()

	* gtk/gtkcolorsel.c  gtk/gtkhandlebox.c:
	 Removed some leftover debugging printfs.
1999-02-21 21:24:02 +00:00
Michael Fulbright
f3f493abbb I've made the spec file autogenerated and I updated the file list
Dr Mike <drmike@redhat.com>
1999-02-21 21:00:23 +00:00
Owen Taylor
25cdbd3560 Account for the fact that Xlib expects format == 32 to be a long, even on
Sun Feb 21 15:59:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/MwmUtil.h gdk/gdkwindow.c: Account for the
	fact that Xlib expects format == 32 to be a long,
	even on 64-bit architectures.

	[ patch from George Lebl (jirka@5z.com) ]
1999-02-21 20:55:04 +00:00
Owen Taylor
295e763b4d removed debugging statements about embedded XID's. They could have been
Sun Feb 21 14:21:46 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c: removed debugging statements
	about embedded XID's. They could have been
	moved to the new PLUGSOCKET debug key, but they weren't
	really useful anyways.

	* gdk/gdk.h: Added gdk_error_trap_push/pop to provide
	a clean interface to the gdk_error_code functionality
	of trapping X errors.

	* gtk/gtkplug.c gtk/gtksocket.c: Add error
	traps around accesses to foreign windows.
1999-02-21 19:25:53 +00:00
Tim Janik
e8cfe9062f marked gtk_window_set_focus, gtk_window_set_default,
Sun Feb 21 15:37:25 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwindow.h: marked gtk_window_set_focus, gtk_window_set_default,
        gtk_window_remove_embedded_xid and gtk_window_add_embedded_xid as
        internal functions.
1999-02-21 19:01:08 +00:00
Owen Taylor
58e63f08ae Revise algorithm for scrolling backwards. This one might actually work
Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c (find_line_containing_point): Revise
	algorithm for scrolling backwards. This one might actually
	work with one-line-high	Text widgets.

	* gtk/gtkmain.c: Removed a misplaced comment, a few
	formatting cleanups.
1999-02-21 18:02:14 +00:00
Tim Janik
b0558e089e hm, set_modal doesn't really work with random gtk_grab_add/gtk_grab_remove
Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
        gtk_grab_add/gtk_grab_remove calls. either the window user uses
        the set_modal interface or he places grab_add/grab_remove on his own.
        (gtk_window_set_modal): enforce modality state either way.
        (gtk_window_hide): revert previous change.
1999-02-20 20:11:23 +00:00
Tim Janik
32b008bf56 increment years and months by two not three on double clicks, patch
Sat Feb 20 20:04:48 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkcalendar.c (gtk_calendar_button_press): increment years and
        months by two not three on double clicks, patch provided by Nick Lamb
        <njl98r@ecs.soton.ac.uk>.
1999-02-20 19:09:21 +00:00
Tim Janik
e0e893da8f added ::modal argument. (gtk_window_hide): reset window->modal from the
Sat Feb 20 19:44:36 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwindow.c: added ::modal argument.
        (gtk_window_hide): reset window->modal from the current grab state
        (this is only relevant when grab_add/grab_remove is called on the
        window by bypassing gtk_window_set_modal).
        (gtk_window_remove_embedded_xid):
        (gtk_window_add_embedded_xid): don't use g_print() but g_message()
        within #ifdef G_ENABLE_DEBUG. when the hack got these functions
        added (ChangeLog doesn't know them)?
1999-02-20 19:00:53 +00:00
Sergey I. Panov
af1efabafb Collecttion of the locale dependent gtkrc files and
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
        gtk/gtkrc.ru: Collecttion of the locale dependent
        gtkrc files and

        * gtk/Makefile.am: patched to get that collection
        installed in to $(prefix)/etc/gtk/
1999-02-19 20:09:53 +00:00
Tim Janik
03d9f983de grouped function names into application-level, widget-level and
Fri Feb 19 17:52:28 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.h: grouped function names into application-level,
        widget-level and non-public.

        * gtk/gtktreeitem.c (gtk_tree_item_size_request): use auto
        pix_requisition instead of item->pixmaps_box->requisition.
1999-02-19 18:07:29 +00:00
Owen Taylor
b60c8a83d7 When queueing clears relative to widget->window, actually store
Thu Feb 18 17:26:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_queue_clear_area):
	 When queueing clears relative to widget->window,
	 actually store widget->window so we know that
	 the coordinates are window-relative.
1999-02-18 22:36:40 +00:00
Owen Taylor
213c516091 Fix glib_config_args gtk_config_args confusion. (pointed out by Roland
Thu Feb 18 11:46:57 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk.m4: Fix glib_config_args gtk_config_args
	  confusion. (pointed out by
	  Roland Dreier <droland@mail.math.okstate.edu>)

	* gtk/gtksocket.c gtk/gtkmain.c gtk/gtkdebug.h
	  (gtk_socket_filter_func): Move the plug-socket
	  debugging code to a new "plugsocket" debug keys
	  from the previous hardcoded DPRINTF.
1999-02-18 16:43:42 +00:00
Tim Janik
63e669a75f added widget arg ::titles_active.
Thu Feb 18 00:54:46 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkclist.c: added widget arg ::titles_active.
1999-02-18 00:35:11 +00:00
Tim Janik
432be67c9d only translate widget relative coordinates to window relative if the
Thu Feb 18 00:27:46 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_queue_clear_area): only translate widget
        relative coordinates to window relative if the widget is not a toplevel
        (i.e. it has ->parent != NULL), otherwise the area size gets screwed up
        for toplevels.
1999-02-17 23:31:34 +00:00
Szabolcs Ban
cb54775dab Shooby Ban <bansz@szif.hu>
* Commited missing Changelog entry
1999-02-17 07:19:53 +00:00
Nuno Ferreira
666bb6e1bf Updated.
1999-02-17  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>

	* pt.po: Updated.
1999-02-17 01:25:37 +00:00
Szabolcs Ban
b46aed94c3 Shooby Ban <bansz@szif.hu>
* Added lang hu
1999-02-16 22:25:54 +00:00
Szabolcs Ban
db2f396bfc Shooby Ban <bansz@szif.hu>
* Added hungarian translations
1999-02-16 22:08:54 +00:00
CST 1999 Shawn T. Amundson
f15ea7024b version = 1.1.16
Tue Feb 16 14:25:44 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * INSTALL
          README
          configure.in
          gtk+.spec
          docs/gtk-config.1: version = 1.1.16

        * Makefile.am: removed colorsel example since it
          doesn't actually exist.

        * Released GTK+ 1.1.16
1999-02-16 21:25:25 +00:00
Vincent Renardias
89b9ff8b2b Tue, 16 Feb 1999 12:51:56 +0100
* Complete translation + some contributed fixes.
1999-02-16 11:51:41 +00:00
Owen Taylor
bf39d4cda9 Use a ScrolledWindow test how Text widgets work within ScrolledWindow.
Mon Feb 15 23:55:27 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (create_text): Use a ScrolledWindow
	 test how Text widgets work within ScrolledWindow.
	 (POLICY_AUTOMATIC drew very badly, so it uses
	  POLICY_ALWAYS for the vscrollbar)

	* gtk/gtktext.c (gtk_text_unrealize): Free the cache
	 in the unrealize handler. Some code in gtktext.c
	 assumes that if text->line_start_cache is non-NULL,
	 the widget is realized. We'll recompute it again
	 anyways if we later re-realize.
1999-02-16 04:52:21 +00:00
Owen Taylor
fd2c0c5651 When setting styles, remove unecessary explicits draws and clears.
Fri Feb 12 15:47:20 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcalender.c gtk/gtkentry.c gtk/gtkhandlebox.c
	  gtk/gtknotebook.c gtk/gtktext.c  gtk/gtkviewport.c
	  gtk/gtkwidget.c:

	 When setting styles, remove unecessary explicits draws
	 and clears.

	* gtk/gtkrange.c: Ugly fix so the steps get the
	 correct background.
1999-02-16 04:29:00 +00:00
Owen Taylor
3a5883b7e4 Updated for 1.1.16.
Mon Feb 15 22:55:50 1999  Owen Taylor  <otaylor@redhat.com>

	* NEWS: Updated for 1.1.16.
1999-02-16 03:50:09 +00:00
Owen Taylor
0101a46dcd Free label->label_wc.
Mon Feb 15 19:36:57 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklabel.c (gtk_label_finalize): Free
	 label->label_wc.
1999-02-16 00:31:24 +00:00
Owen Taylor
f1a61ecc75 Some coding style fixups.
Mon Feb 15 18:02:22 1999  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkdnd.c: Some coding style fixups.

	* gtk/gtkdnd.c (gtk_drag_set_icon_pixmap): Set a flag
	 so that we destroy the icon window that we created
	 when the drag ends.
1999-02-16 00:19:13 +00:00
Owen Taylor
0c9af82e97 When we find a match, stop searching. (Because we assume pspec != NULL in
Thu Feb 11 18:43:12 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkbindings.c (gtk_binding_set_add_path): When
	  we find a match, stop searching. (Because we
	  assume pspec != NULL in the search).

Wed Feb 10 01:18:22 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkhandlebox.c (gtk_handle_box_draw_ghost): Fix
	  up painting of "ghosts".

	* gtk/gtkhandlebox.c (gtk_handle_box_button_changed):
	  Add double-click reattachment.

	* gtk/gtkhandlebox.c: Grab on widget->window,
	  not on handlebox->bin_window. This means we don't
	  have to worry about ungrabbing while reparenting.

	  Don't make a GTK+ grab - that wasn't necessary.

	* gtk/gtkhandlebox.c: Only compute the root -> desk
	  offset once, when starting the drag, instead
	  of continuously. This should solve the *Bad Window*
	  errors that were occurring because of race conditions
	  with the WM.

	* gtk/gtkhandlebox.c: Completely reworked the
	  the logic of reattachment. We introduce the
	  concept of the "snap edge", which is an edge
	  that needs to be aligned for reattachmed.
	  We set a reasonable default from
	  handlebox->handle_position, but an application
	  might want to change this in some circumstances.

	* gtk/gtkhandlebox.[ch]: Add settors:
            gtk_handle_box_set_handle_position  ();
            gtk_handle_box_set_snap_edge        ();
1999-02-15 21:05:51 +00:00
Owen Taylor
063bad00a2 gtk/gtkwidget.c (gtk_widget_real_grab_focus):
Mon Feb 15 11:13:01 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_set_focus):
	  gtk/gtkwidget.c (gtk_widget_real_grab_focus):

	If the focus widget is the same, but does not currently
	have the focus, call gtk_window_set_focus(). This is needed
	so that click focusing with GtkPlug works correctly.
1999-02-15 20:50:47 +00:00
Tim Janik
3d23ab250e default to yes for development trees.
Mon Feb 15 07:45:28 1999  Tim Janik  <timj@gtk.org>

        * configure.in (--enable-debug): default to yes for development trees.
1999-02-15 06:51:28 +00:00
Lars Hamann
1f85d83ef3 don't autoselect focus_row in case of GTK_SELECTION_EXTENDED
Fri Feb 12 00:08:01 1999  Lars Hamann  <lars@gtk.org>

        * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect
        focus_row in case of GTK_SELECTION_EXTENDED

        * gtk/testgtk.c : few changes in list example.

        * gtk/gtklistitem.c (gtk_list_item_class_init):
        * gtk/gtkctree.c (gtk_ctree_class_init):
        * gtk/gtkclist.c (gtk_clist_class_init):
        fixed indentation, removed unused key bindings
1999-02-11 23:47:48 +00:00
Pablo Saratxaga
ed219818b1 updated spanis hlanguage file 1999-02-11 01:15:42 +00:00
Lars Hamann
6475974086 don't autoselect focus_row in case of GTK_SELECTION_EXTENDED
Wed Feb 10 01:02:46 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (real_remove_row):
	* gtk/gtkctree.c (gtk_ctree_remove_node): don't autoselect focus_row
	in case of GTK_SELECTION_EXTENDED

	* gtk/testgtk.c : few changes in clist/ctree examples.
1999-02-10 23:15:26 +00:00
Tim Janik
1183c0ea69 applied patch from Paolo Molaro to fix GTK_TYPE_POINTER args of
Wed Feb 10 15:49:16 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwindow.c (gtk_window_class_init):
        * gtk/gtkctree.c (gtk_ctree_class_init): applied patch from Paolo
        Molaro to fix GTK_TYPE_POINTER args of ::tree_collapse and
        ::set_focus signals.

        * docs/gtk_tut.sgml: s/menufactory/itemfactory, minor fixups
        to the item factory example.
1999-02-10 16:37:09 +00:00
Owen Taylor
d8eb880d7d Reverted coding style "fixups"
Wed Feb 10 11:05:53 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c: Reverted coding style "fixups"
1999-02-10 16:01:48 +00:00
Owen Taylor
c9312d02a4 Supplement the existing WMNormalHints, don't overwrite them.
Wed Feb 10 10:43:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_set_icon, gdk_window_set_group):
	 Supplement the existing WMNormalHints, don't
	 overwrite them.
1999-02-10 15:45:19 +00:00
Tim Janik
88c112cde8 asure that ->value_buf always points to an allocated area.
Wed Feb 10 08:35:36 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkcolorsel.c (gtk_color_selection_draw_value_bar): asure that
        ->value_buf always points to an allocated area.
        (gtk_color_selection_drag_end): new function hooked up to drag_end to
        destroy the drag_window.

        * gtk/gtkdnd.c: some coding style fixups.

Wed Feb 10 06:47:17 1999  Tim Janik  <timj@gtk.org>

        * gdk/gdkwindow.c: various indentation fixes.

        * gdk/gdkevents.c: coding style fixups.
        NULL initialize event_func, event_notify and event_chunk.
        (expose_predicate): made this function static.
        (gdk_event_handler_set): perform destroy notification even if no
        event_func is set.

        * gdk/gdkrectangle.c (gdk_rectangle_union): added g_return_if_fail
        statements.
1999-02-10 08:06:30 +00:00
Owen Taylor
d1bda8d562 Fixed some bugs with set_default_size.
Sun Feb  7 19:49:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_move_resize): Fixed some
	  bugs with set_default_size.

Sat Feb  6 13:23:51 1999  Owen Taylor  <otaylor@redhat.com>

	* docs/Changes-1.2.txt: Added information about
	 the change to gtk_widget_size_request().

	* gtk/gtkentry.c: Call gtk_widget_get_child_requisition
	 explicitely since we differentiate between the usize
	 set by the user and what we got. (Ugh)

	* gtk/gtkwidget.[ch] (gtk_widget_get_child_requisition):
	 New function to return the effective size of a widget
	 as it looks to its parent.

	* gtk/gtkwidget.c (gtk_widget_size_request): Leave
	 widget->requisition set to exactly what the widget
	 asked for, and then make a copy of that into
	 the requisition argument. Allow a NULL requisition
	 argument, and, if G_ENABLE_DEBUG, warn if
	 requisition == &widget->requisition.

	* gtkalignment.c gtkaspectframe.c gtkbutton.c gtkclist.c
	  gtkcontainer.c gtkentry.c gtkeventbox.c gtkfixed.c
	  gtkframe.c gtkhandlebox.c gtkhbox.c gtkhpaned.c
	  gtklayout.c gtklist.c gtklistitem.c gtkmenu.c
	  gtkmenubar.c gtkmenuitem.c gtknotebook.c
	  gtkoptionmenu.c gtkpacker.c gtkscrolledwindow.c
	  gtktable.c gtktoolbar.c gtktree.c gtktreeitem.c
	  gtkvbox.c gtkviewport.c gtkvpaned.c gtkwindow.c

	 Avoid calling gtk_widget_size_request with
	 requisition == widget->requisition; use
	 gtk_widget_get_child_requisition to get the
	 size of children.
1999-02-10 02:35:09 +00:00
Owen Taylor
84d9f5f9a1 Removed extraneous line that crept in in previous commit.
Tue Feb  9 19:49:46 1999  Owen Taylor  <otaylor@redhat.com>

	* configure.in (LDFLAGS): Removed extraneous line
	  that crept in in previous commit.
1999-02-10 00:47:02 +00:00
Owen Taylor
c3a4205cfa Moved entry->visible into editable class. (Leave it behind deprecated for
Tue Feb  9 19:39:32 1999  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkentry.[ch] gtk/gtkeditable.h: Moved
	  entry->visible into editable class. (Leave it
	  behind deprecated for compatibility)

	* gtk/gtkeditable.c: If not editable->visible,
	  return *'s for clipboard and selection.
1999-02-10 00:39:49 +00:00
Owen Taylor
72d5843898 If we can't find helvetica, fall back to "fixed". If we can't find
Tue Feb  9 19:11:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.c (gtk_style_new): If we can't find
	  helvetica, fall back to "fixed". If we can't
	  find "fixed", exit cleanly.
1999-02-10 00:21:09 +00:00
Changwoo Ryu
782ad2e7d2 Updated.
1999-02-09  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* ko.po: Updated.
1999-02-09 21:15:13 +00:00
Owen Taylor
0bb249746f Added a style_set() function so that word lengths get recomputed on style
Tue Feb  9 15:35:13 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklabel.c (gtk_label_style_set): Added
	  a style_set() function so that word lengths get
	  recomputed on style change.
1999-02-09 20:50:47 +00:00
Lars Hamann
b43de0cbda changed to 64 (gtk_clist_draw_focus) (hadjustment_value_changed)
Mon Feb  8 21:00:20 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (CLIST_OPTIMUM_SIZE): changed to 64
	(gtk_clist_draw_focus) (hadjustment_value_changed) (draw_row):
 	few fixes to respect GTK_CAN_FOCUS flag.

	* gtk/gtkctree.c (draw_row):
 	respect GTK_CAN_FOCUS flag.
1999-02-08 21:03:54 +00:00
Sergey I. Panov
e95b3635e8 Small corrections. 1999-02-08 20:57:16 +00:00
GMT 1999 Tony Gale
f0d09615c1 missing from the CVS for some reason
Mon Feb  8 19:22:27 GMT 1999 Tony Gale  <gale@gtk.org>

        * example/colorsel/*: missing from the CVS for some reason
1999-02-08 19:23:42 +00:00
Sergey I. Panov
b89e32d980 Changed translation of two strings. For consistancy only. 1999-02-08 19:18:55 +00:00
GMT 1999 Tony Gale
2277c72c41 add SpinButton example
Mon Feb  8 13:08:51 GMT 1999 Tony Gale  <gale@gtk.org>

        * examples/Makefile: add SpinButton example
1999-02-08 13:10:10 +00:00
GMT 1999 Tony Gale
6e13f7bd2b - Heavily edited GtkCombo section initially from Christopher T. Lansdown
Mon Feb  8 12:50:06 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
          - Heavily edited GtkCombo section initially from
            Christopher T. Lansdown <lansdoct@screech.cs.alfred.edu>.

          - Cleanups and some glib stuff from
            David Wheeler <wheeler@ida.org>

        * Makefile.am: update to include the latest Tutorial examples.
1999-02-08 12:59:21 +00:00
Pablo Saratxaga
2b4a42497b updated spanish language file 1999-02-08 03:53:17 +00:00
Guillaume Laurent
18046d9000 Changed a remaining "menufactory" to "itemfactory" 1999-02-07 22:35:48 +00:00
Owen Taylor
39e2943650 Add the entire draw_data_list back to the free list, not just the last
Sat Feb  6 11:20:16 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_idle_draw): Add the
	entire draw_data_list back to the free list, not
	just the last element.
1999-02-06 16:14:45 +00:00
Tim Janik
c13e6db019 fix comment 1999-02-06 03:07:01 +00:00
Lars Hamann
af30000afe search last visible column instead of using clist->columns.
Sat Feb  6 00:21:14 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (draw_row):
	* gtk/gtkclist.c (draw_row) (new_column_width) (scroll_horizontal)
	(title_focus): search last visible column instead of
	using clist->columns.
1999-02-06 00:21:56 +00:00
Owen Taylor
eb437560d3 Adjust saved positions of children when resizing a guffaw_gravity = TRUE
Fri Feb  5 13:23:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_move_resize): Adjust
	saved positions of children when resizing a
	guffaw_gravity = TRUE window.

	* gtk/gtkdnd.c (gtk_drag_highlight): Rework the
	 highlighting so that it is done in callbacks for
	 draw and expose. This should solve problems with
         multiple highlights for the same GdkWindow.

	* gtk/gtkdnd.c (gtk_drag_highlight): Fix bug where
	the highlight was being drawn with an incorrect
	width/height for !NO_WINDOW widgets.
1999-02-05 18:40:14 +00:00
Owen Taylor
915f2c5e59 Don't assume any more that the gtkwidget.c code will queue a redraw on us
1999-02-05  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtk[hv]paned.c (gtk_[hv]paned_size_allocate):
	Don't assume any more that the gtkwidget.c code
	will queue a redraw on us during a size_allocate -
	queue clear/draws as appropriate for our groove.
1999-02-05 15:48:25 +00:00
Owen Taylor
674b23e434 Fixes to account for the changed structure of the windows of range
Tue Feb  2 11:06:02 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrange.c (gtk_range_style_set): Fixes
	 to account for the changed structure of the windows
	 of range widgets.
1999-02-04 16:12:35 +00:00
Nam SungHyun
189ee72781 fix typos 1999-02-04 14:53:53 +00:00
Christopher Blizzard
7a2363134e change my email address 1999-02-04 14:13:24 +00:00
CST 1999 Shawn T. Amundson
7db6313ab5 version=1.1.15
Thu Feb  4 05:42:34 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * INSTALL
          NEWS
          README
          configure.in
          gtk+.spec
          docs/gtk-config.1: version=1.1.15

        * Makefile.am: example files where incorrect for
          menu directory.

        * Released GTK+ 1.1.15
1999-02-04 13:32:14 +00:00
Manish Singh
7f4ba91800 spelling fix in comment from joey@kuolema.Infodrom.North.DE (Martin
* gtk/gtkclist.h: spelling fix in comment from
joey@kuolema.Infodrom.North.DE (Martin Schulze)

-Yosh
1999-02-04 02:35:32 +00:00
Owen Taylor
902de9d413 Make sure we set the icon window position before it is shown to prevent
Tue Feb  2 12:39:42 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c: Make sure we set the icon window position
	 before it is shown to prevent annoying flicking to 0,0.
	 Make it consistent that info->cur_x/y do not include
	 info->hot_x/y displacement.
1999-02-02 18:40:47 +00:00
GMT 1999 Tony Gale
7e68d71fd2 new sections on Layout and SpinButton [nice widget]
Tue Feb  2 08:59:16 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml: new sections on Layout and
          SpinButton [nice widget]

        * examples/spinbutton/*: example code
1999-02-02 10:12:52 +00:00
Owen Taylor
22a54ddf81 Put in some information about 'gtk-config --libs gthread'.
Mon Feb  1 19:25:54 1999  Owen Taylor  <otaylor@redhat.com>

	* docs/gtk-config.txt (testinput_SOURCES): Put
	in some information about 'gtk-config --libs gthread'.

	* docs/Changes-1.2.txt: Updated section on threads.
1999-02-02 02:35:11 +00:00
Lars Hamann
a19e373baa in case of GTK_SELECTION_BROWSE select first inserted row.
Tue Feb  2 00:28:44 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (gtk_ctree_insert_node): in case of
	GTK_SELECTION_BROWSE select first inserted row.
	(resync_selection): select rows in correct order.

	* gtk/gtkclist.c (real_insert_row): in case of GTK_SELECTION_BROWSE
 	select first inserted row.
	(resync_selection): select rows in correct order.

	* gtk/gtklist.c (gtk_list_end_selection): select rows in correct order.
1999-02-02 01:57:11 +00:00
Manish Singh
fb00e9bbb8 Autogenned file removal
-Yosh
1999-02-01 23:29:51 +00:00
Owen Taylor
49ff13e5e1 Pass gthread on to gtk-config.
Mon Feb  1 16:47:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk.m4: Pass gthread on to gtk-config.

	* configure.in gtk-config.in: Support gthread flag to
	  add thread cflags/libraries into the output of
	  gtk-config.
1999-02-01 23:17:39 +00:00
Manish Singh
b3184736de Remove autogenned files
-Yosh
1999-02-01 22:50:07 +00:00
Owen Taylor
377b72968d Update from Paul Siegmann <pauls@euronet.nl>
Mon Feb  1 16:37:29 1999  Owen Taylor  <otaylor@redhat.com>

	* nl.po: Update from Paul Siegmann <pauls@euronet.nl>
1999-02-01 22:35:49 +00:00
Owen Taylor
78ab1ea3fc Fixed problem with uints resulting in huge child allocations.
Mon Feb  1 15:14:56 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkoptionmenu.c (gtk_option_menu_size_allocate):
	 Fixed problem with uints resulting in huge child
	 allocations.
1999-02-01 21:55:49 +00:00
Owen Taylor
a512f0b841 Cast uints to ints in geometry calculations. This should prevent FP
Mon Feb  1 14:54:28 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklabel.c (gtk_label_expose): Cast uints
	  to ints in geometry calculations. This should
	  prevent FP exceptions on FreeBSD when quantities
	  become negative. [ Actually, this is probably
	  a workaround with a gcc bug with handling of
	  bitfields, according to Ben Jackson <ben@ben.com> ]
1999-02-01 21:05:32 +00:00
Sergey I. Panov
2e2d959bff Corrected shamefull spelling errors. 1999-02-01 18:28:40 +00:00
Tony Gale
6c3513fa24 Try and spell my own name right - Tony
Try and spell my own name right - Tony
1999-02-01 15:03:05 +00:00
GMT 1999 Tony Gale
7402d68c8f update to new examples
Mon Feb  1 13:35:14 GMT 1999 Tony Gale  <gale@gtk.org>

        * examples/Makefile: update to new examples

        * examples/menu/itemfactory.c: I must have forgotten to
          'cvs add' this file
1999-02-01 14:47:05 +00:00
GMT 1999 Tony Gale
5ef056ea94 - Complete documentation of Label widget API - New sections for the
Mon Feb  1 09:16:03 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
          - Complete documentation of Label widget API
          - New sections for the following:
                * Arrows
                * Alignment
                * Button Boxes
                * Viewports

        * examples/arrow/*, examples/buttonbox/*, examples/label/*
          - New code examples
1999-02-01 10:44:36 +00:00
GMT 1999 Tony Gake
c39dffed55 examples/fixed/*, examples/frame/* - Examples from the Tutorial
Fri Jan 29 09:44:37 GMT 1999 Tony Gake  <gale@gtk.org>

        * examples/fixed/*, examples/frame/*
          - Examples from the Tutorial
1999-01-29 09:53:14 +00:00
GMT 1999 Tony Gale
e735ac6c86 - New sections on the Fixed and Frame containers - Rearrange the
Fri Jan 29 09:18:41 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
          - New sections on the Fixed and Frame containers
          - Rearrange the Containers section so the easier ones
            are first
          - Move the List widget section to an appendix
1999-01-29 09:29:02 +00:00
GMT 1999 Tony Gale
1cf5a13b08 script to convert and package up the tutorial - stick it here so I don't
Thu Jan 28 12:14:12 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/package_tutorial.sh: script to convert and
          package up the tutorial - stick it here so I don't lose
          it when I accidentally delete it again.
1999-01-28 12:22:36 +00:00
GMT 1999 Tony Gale
a2dafdfc88 - Replace all uses of deprecated functions. - Replace menufactory example
Thu Jan 28 10:16:28 GMT 1999 Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
          - Replace all uses of deprecated functions.
          - Replace menufactory example with itemfactory example
            from Nick Scott <mendigo@geocities.com>
          - Minor bug fixes in the examples.
1999-01-28 10:35:40 +00:00
Sebastian Wilhelmi
a700058737 s/XIM_INSTANTIATE_IS_MISSING_OR_STRANGE/XIM_INST_IS_MISSING_OR_STRANGE/
1999-01-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gdk/gdkim.c:
	s/XIM_INSTANTIATE_IS_MISSING_OR_STRANGE/XIM_INST_IS_MISSING_OR_STRANGE/
1999-01-28 10:05:52 +00:00
CST 1999 Shawn T. Amundson
b36903b1b6 version=1.1.14
Thu Jan 28 01:57:06 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * INSTALL
          NEWS
          README
          configure.in
          gtk+.spec
          docs/gtk-config.1: version=1.1.14

        * Released GTK+ 1.1.14
1999-01-28 08:24:17 +00:00
Owen Taylor
f9807a643c When translating N_() strings, use _(), not gettext(), since we really
Thu Jan 28 01:34:29 1999  Owen Taylor  <otaylor@redhat.com>

	* gtkfontsel.c gtkcolorsel.c: When translating
	N_() strings, use _(), not gettext(), since we
	really need to call dgettext().
1999-01-28 06:30:57 +00:00
Manish Singh
bb16a5d331 Xsed isn't valid here, don't use it
* acinclude.m4: Xsed isn't valid here, don't use it

* ltmain.sh
* ltconfig: better file magic regexp for Linux libs

-Yosh
1999-01-28 04:58:01 +00:00
Owen Taylor
5e836af884 Move gravity_works back to a static global variable, since it is a global
Wed Jan 27 23:05:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.[ch] (gtk_layout_realize): Move
	gravity_works back to a static global variable,
	since it is a global constant, and this way we
	keep structure sizes uniform.

CV: ---------------------------------------------------------------------- CVS: Enter Log.  Lines beginning with `CVS: ' are removed automatically
1999-01-28 04:12:58 +00:00
Owen Taylor
a29d25821e Move gtkintl.h from $source_headers to $static_sources since it should not
Wed Jan 27 22:59:07 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (static_SOURCES): Move gtkintl.h
	from $source_headers to $static_sources since
	it should not be installed.
1999-01-28 03:56:37 +00:00
Owen Taylor
99b9ce9de6 Allow exposure compression across GravityNotify events to improve the
Wed Jan 27 22:51:23 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkevents.c (expose_predicate): Allow exposure
	 compression across GravityNotify events to improve
 	 the appearance of a GTK+ window unshading.
1999-01-28 03:48:04 +00:00
Owen Taylor
b2c8fed880 [ patch from Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp> ]
Wed Jan 27 21:56:07 1999  Owen Taylor  <otaylor@redhat.com>

        [ patch from Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp> ]

	* acconfig.h configure.in gdk/gdkim.c: Add configure
	flag for disabling XRegisterIMInstantiateCallback(), default
	it to off for Solaris. Always try to open the
	input method immediately, and only if that fails,
	register than instantiate callback.

	* gdk/gdkentry.c: Some tweaks to make sure that we
	only get and set the IC attributes when appropriate.
1999-01-28 03:38:58 +00:00
Stuart Parmenter
a472efda2d remove another g_print("\n"); 1999-01-28 01:59:29 +00:00
Owen Taylor
d541b30482 Patch from Sebastian Wilhelmi <wilhelmi@ira.uka.de> to use
Wed Jan 27 20:08:54 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (open_user_dir): Patch from
	Sebastian Wilhelmi  <wilhelmi@ira.uka.de> to
	use g_get_home_dir() instead of calling getpwuid()
	ourselves.
1999-01-28 01:04:38 +00:00
Owen Taylor
77e99440df Change signatures for gdk_drag_begin() and gdk_drag_motion() so that the
Wed Jan 27 18:57:57 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.h gdk/gdkdnd.c: Change signatures for
	gdk_drag_begin() and gdk_drag_motion() so that the set
	of possible actions is passed on each motion, not just at
	the beginning of the drag. We do this so that
	we can restrict the set of possible drag events
	when the user presses a modifier key during a
	drag.

	* gdk/gdkdnd.c: Send a motif Operation-changed
	message when the set of possible actions change,
	as well as when the suggested action change.

	* gdk/gdkdnd.c: Change the XdndActionList whenever
	the set of actions change.

	* gdk/gdkdnd.c: Add a filter to catch changes to
	the XdndActionList property for the source widget.

	* gtk/gtkdnd.c: Change the set of possible actions
	when the user presses Control, Shift, or Control-Shift,
	to only include the corresponding action.

	* gtk/gtkdnd.c (gtk_drag_button_release_cb):
	Disconnect button signals before we possibly
	free info structure.
1999-01-28 01:03:15 +00:00
Owen Taylor
4998934dcb Removed some g_print()'s
Wed Jan 27 20:06:06 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c (gtk_layout_adjustment_changed):
	Removed some g_print()'s
1999-01-28 01:02:09 +00:00
Owen Taylor
9e5e63f0a1 Hack scrollwheel support into the eventloop, by treating button 4-5
Wed Jan 27 18:40:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_main_do_event): Hack scrollwheel
	support into the eventloop, by treating button 4-5
	presses on scrolled windows and scrollbars specially.
	Put it here to keep the ugliness small and confined.
	(We need to intercept the normal propagation in any case
	to have this work reliably right now, since some
	subwidgets will trap the button presses)

	* gtk/gtkviewport.c (gtk_viewport_realize): Select for
	BUTTON_PRESS to	support the above hack.
1999-01-28 00:57:18 +00:00
Owen Taylor
7934cf9aea Remove TimJ's checks for already being mapped or hidden. See the ICCCM's
Tue Jan 26 14:02:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_show/hide): Remove TimJ's
	checks for already being mapped or hidden. See
	the ICCCM's section on state changes for why this
	is a bad idea.
1999-01-27 23:49:34 +00:00
Owen Taylor
607949ed5e Separate out GLIB_LIBS and GLIB_DEPLIBS. This may fix the --with-glib
Wed Jan 27 17:05:40 1999  Owen Taylor  <otaylor@redhat.com>

	* Separate out GLIB_LIBS and GLIB_DEPLIBS. This
	may fix the --with-glib option. GLIB_LIBS are
	the libs to link example programs against, while
	GLIB_DEPLIBS are dependency libraries.
1999-01-27 22:08:46 +00:00
Stuart Parmenter
342e557c58 add GTK_HAVE_FEATURES_1_1_14 1999-01-27 20:56:34 +00:00
Owen Taylor
1472462639 Use floor() instead of truncating to integer values so we get translation
Wed Jan 20 11:19:00 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklabel.c: Use floor() instead of truncating
	to integer values so we get translation invariance.

	* gtk/gtklayout.c (gtk_layout_size_allocate): Set upper
	and lower values for adjustments in size_allocate().

	* gdk/gdkwindow.c gdk/gdk.h gdk/gdkprivate.h: New
	function gdk_window_set_static_gravities() to set
	up a window for guffaw scrolling.

	* gdk/gdkwindow.c (gdk_window_internal_destroy): Set flags
	indicating destroyed state before cleanup.

	* gtk/gtkprivate.h gtk/gtkwidget.c: Add a new
	private flag IS_OFFSCREEN. If set, this indicates
	to GTK+ that the widget is not to be considered
	viewable regardless of its map state. Queued draws
	on offscreen widgets are suppressed.

	Added new function static gtk_widget_is_offscreen() to
	check this flag on a widget and its ancestors.

	* gtk/gtklayout.[ch]: Major revisions.

	- Use gdk_window_set_static_gravities to set static gravity
	on all child windows, and thus avoid having to create a window
	for NO_WINDOW children.

	- Adjust allocations of children as we scroll them
	so queued draws work correctly.

	- Don't allocate our children directly in a put()
	or move(); just queue a resize() like every other
	widget.

	* gtk/testgtk.c: Make the arrows on the scrollbars
	work, create a larger and more demanding test.
1999-01-27 18:21:20 +00:00
Tim Janik
90c7ea0b91 assert ref_count>0.
Wed Jan 27 09:19:07 1999  Tim Janik  <timj@gtk.org>

        * gdk/gdkcolor.c (gdk_colormap_unref): assert ref_count>0.
1999-01-27 08:53:36 +00:00
Owen Taylor
8e979f59b4 New functions to set the colormap or visual of an existing widget. These
Mon Jan 25 20:05:22 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_set_{visual,colormap}):
	New functions to set the colormap or visual
	of an existing widget. These functions should not
	be called on a widget that has previosly been
	realized.
1999-01-26 01:18:13 +00:00
Owen Taylor
84c1a71045 Changed log 1999-01-26 01:17:30 +00:00
Owen Taylor
df403d5908 New functions to set the colormap or visual of an existing widget. These
Mon Jan 25 20:05:22 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_set_{visual,colormap}):
	New functions to set the colormap or visual
	of an existing widget. These functions should not
	be called on a widget that has previosly been
	realized.

	* gtk/gtkcolorsel.c (gtk_color_selection_dialog_init):
	Set the visual and colormap on the toplevel dialog,
	then push them for the child widgets. As opposed
	to push/pop in _new(), this way, things will work
	properly with gtk_widget_new().
1999-01-26 01:15:47 +00:00
Owen Taylor
65dd58ffa3 Queue a redraw on the tab area when a tab changes size. (Includes
Mon Jan 25 19:41:56 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
	a redraw on the tab area when a tab changes size.
	(Includes improvements from Lars Hamann)
1999-01-26 00:37:58 +00:00
Owen Taylor
d355451c51 Back out the last solution to updating problem. And try a different one
Mon Jan 25 19:00:13 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
	 Back out the last solution to updating problem. And
	 try a different one that is less dependent on
	 the state of the widget. Just redraw the value_marker
	 when it gets mapped. Somebody needs to analyze
	 this widget more carefully and figure out
1999-01-26 00:28:13 +00:00
Owen Taylor
08f1e8098f Removed some GTK_WIDGET_DRAWABLE() tests - we need to update the value
Mon Jan 25 17:48:03 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c: Removed some GTK_WIDGET_DRAWABLE()
	tests - we need to update the value bar's contents
	even when the widget is unmapped.
1999-01-25 22:43:50 +00:00
Owen Taylor
7d5e1b0ccf Don't define ENABLE_NLS unless we have a working NLS. (This should keep
Mon Jan 25 15:47:46 1999  Owen Taylor  <otaylor@redhat.com>

	* acinclude.m4 (ac_result): Don't define ENABLE_NLS
	 unless we have a working NLS. (This should keep
	 libintl.h from being included when it doesn't
	 exist).
1999-01-25 21:11:13 +00:00
George Lebl
4b8095d525 set RECEIVES_DEFAULT on init, and a button press on the widget doesn't
Mon Jan 25 11:05:10 1999  George Lebl  <jirka@5z.com>

        * gtk/gtkbutton.c: set RECEIVES_DEFAULT on init, and a
          button press on the widget doesn't grab default anymore

        * gtk/gtkcheckbutton.c,gtk/gtkoptionmenu.c,gtk/gtkradiobutton.c:
          unset RECEIVES_DEFAULT on init

        * gtk/gtkwidget.[ch]: add a RECEIVES_DEFAULT flag to widget
          flags

        * gtk/gtkwindow.c,gtk/gtkplug.c: on pressing <enter>, activate
          the focused widget if it is a RECEIVES_DEFAULT widget,
          no matter what the current default_widget is

        * gtk/gtkwindow.c: on focus change, migrate the HAS_DEFAULT
          flag to CAN_DEFAULT widgets if they RECEIVE_DEFAULT as well
          or migrate it back to the default_widget if the focus widget
          doesn't "RECEIVE_DEFAULT"
1999-01-25 19:05:58 +00:00
Owen Taylor
8ac2b1dda6 Byteswap
Sun Jan 24 18:09:24 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdnd.c (motif_read_initiator_info): Byteswap
1999-01-24 23:07:33 +00:00
Owen Taylor
a1cc053be2 Fix reversed assertion. (Pointed out by Austin Donnelly
Sun Jan 24 12:17:39 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkcolor.c (gdk_colormap_real_destroy): Fix
	 reversed assertion.
	 (Pointed out by Austin Donnelly <austin@greenend.org.uk>)

	* gtk/gtkruler.c (gtk_ruler_expose): Remove unecessary
	 and harmful call to gtk_paint_box(). We are going
	 to paint onto the backing store later anyways.
1999-01-24 17:19:21 +00:00
Sergey I. Panov
42ffb3727e tiny style corrections 1999-01-24 16:12:22 +00:00
Owen Taylor
79fbe48242 X expects longs, not uint32 for XChangeProperty, when format == 32.
Sat Jan 23 11:15:39 1999  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkdnd.c (gdk_window_register_dnd): X expects
	 longs, not uint32 for XChangeProperty, when
	 format == 32.

	* gdk/gdkdnd.c (motif_read_initiator_info): Byte-swap
	 the MotifInitiatorInfo structure if necessary.

 	* gdk/gdkdnd.c: When extracting and constructing
         Motif DND messages, don't use data.s[], data.l[]
	 since on 64bit architectures, these won't necessarily
	 be in the same place with data.b[].

 	* gtk/testdnd.c (target_drag_drop): Return TRUE for
	 drag_drop within the drop zone.

	* gtk/gtkdnd.c (gtk_drag_dest_handle_event): Only send
	 a XmTRANSFER_FAILURE if no drop site is found, not
	 on every drop!
1999-01-23 20:32:20 +00:00
Owen Taylor
6a690c6d3f Add flags field to GtkTargetEntry table.
Fri Jan 22 19:22:39 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkeditable.c: Add flags field to
	 GtkTargetEntry table.

	* gdk/gdkwindow.c (gdk_window_is_viewable): Treat foreign
	 windows as always viewable, since we can't track their
	 map-state reliably without speed problems. (Fixes
	 problem where updating didn't occur properly within
	 GtkPlug)
1999-01-23 20:31:42 +00:00
Jeff Garzik
0e9b9e32db Don't search selection list twice. (real_select_row): Remove extra ';',
Sat Jan 23 13:41:00 1999  Jeff Garzik  <jgarzik@pobox.com>

        * gtk/gtkctree.c
        (tree_delete): Don't search selection list twice.
        (real_select_row): Remove extra ';', add default for clarity.
1999-01-23 18:44:36 +00:00
Lars Hamann
f37d395c4f removed extra gtk_spin_button_update calls again. unblock dnd signal
Sat Jan 23 01:44:43 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkspinbutton.c (gtk_spin_button_get_value_as_int)
	(gtk_spin_button_get_value_as_float): removed extra
 	gtk_spin_button_update calls again.
	* gtk/gtkclist.c (gtk_clist_unmap): unblock dnd signal handler if
	neccessary
	* gtk/gtknotebook.c (gtk_notebook_button_press): grab_focus before
	switch_page
	(gtk_notebook_set_shape): don't use cur_page if it's NULL.
1999-01-23 01:04:33 +00:00
Jeff Garzik
ad987142c1 Fix recent change to match existing coding style.
Fri Jan 22 12:20:54 1999  Jeff Garzik  <jgarzik@pobox.com>

        * gtk/gtktooltips.c:
        Fix recent change to match existing coding style.
1999-01-22 17:23:55 +00:00
Tim Janik
060c32e4e0 take value_spacing into account for GTK_POS_LEFT.
Fri Jan 22 07:33:44 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkvscale.c (gtk_vscale_pos_trough): take value_spacing into
        account for GTK_POS_LEFT.

        * gtk/gtkradiobutton.c (gtk_radio_button_set_group): use
        gtk_toggle_button_set_active () to set the new state.
        (gtk_radio_button_new): only _set_group if group != NULL.
        (gtk_radio_button_clicked): reference the widget.
        (gtk_radio_button_init): make radio buttons active upon
        startup.
1999-01-22 08:12:00 +00:00
Sergey I. Panov
cb4bf0657c A few updates. 1999-01-22 03:59:16 +00:00
Jeff Garzik
ba58aa201d Check args for NULL. (gtk_selection_default_handler): Replace manual list
Thu Jan 21 17:13:12 1999  Jeff Garzik  <jgarzik@pobox.com>

        * gtk/gtkselection.c:
        (gtk_selection_property_notify): Check args for NULL.
        (gtk_selection_default_handler):
        Replace manual list count with call to g_list_length.
        Remove signedness of temp var 'count' to agree with usage.
        Slight spacing adjustment for readability.

        * gtk/gtkbox.c, gtk/gtklayout.c, gtk/gtkselection.c:
        Init a few ptrs to NULL, to quiet warnings.
1999-01-21 22:29:58 +00:00
Manish Singh
cb2eb293e6 Shut up cvs
-Yosh
1999-01-21 21:52:53 +00:00
Owen Taylor
a0fa647a64 [ Tried to commit wrong file last time ]
Thu Jan 21 16:03:02 1999  Owen Taylor  <otaylor@redhat.com>


	* gtk/gtktreeitem.c: Add a paint routine, fix up bugs
	in drawing where if the expose area was contained
	completely in the right side of the tree the background
	wasn't redraw, etc.
1999-01-21 21:09:03 +00:00
Owen Taylor
6878910ad4 Code cleanup.
Thu Jan 21 16:03:02 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkbutton.c (gtk_button_expose): Code cleanup.

	* gtk/gtktree.c: Add a paint routine, fix up bugs
	in drawing where if the expose area was contained
	completely in the right side of the tree the background
	wasn't redraw, etc.

	* gtk/gtkwidget.c (gtk_widget_clip_rect): Fix a bug
	in clipping draw regions while propagating them
	upwards.
1999-01-21 21:06:13 +00:00
Owen Taylor
d1d9c5bf04 Pushing and popping the visual/cmap in the init() function does no good,
Thu Jan 21 12:20:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c (gtk_color_selection_dialog_new):
	Pushing	and popping the visual/cmap in the init()
	function does no good, because the window itself needs
	to be create with that visual/cmap.

	So do it in the new() function instead.

	This will require people doing gtk_widget_new() to do
	the push/pop themselves, but I don't see any way around
	it other than digging in and tweaking the window
	widget's colormap and visual ourselves, which
	is highly non-kosher, but would be safe...
1999-01-21 17:27:23 +00:00
Tristan Tarrant
a46ac625c9 Updated Italian texts 1999-01-21 15:16:06 +00:00
Timur Bakeyev
7cef937760 It was reported by Owen Taylor <otaylor@redhat.com>, that LC_ALL produce
Thu Jan 21 16:04:35 1999  Timur Bakeyev <mc@bat.ru>

	* gtk/gtkrc.c (gtk_rc_init): It was reported by Owen Taylor
	<otaylor@redhat.com>, that LC_ALL produce unparsable garbage
	on some glibc'ed systems and HP/UX. So, falling to LC_CTYPE.
1999-01-21 13:26:35 +00:00
Owen Taylor
fea53a95f8 Set and read the XdndActionList property defined in the Xdnd spec. We do
Thu Jan 21 02:11:44 1999  Owen Taylor  <otaylor@redhat.com>

	* Set and read the XdndActionList property defined
	in the Xdnd spec. We do this always, not just for
	XdndActionAsk like the spec says, but if we don't
	find it, we fall back to actions = suggested_action,
	which is compatible with the language of the spec.
1999-01-21 07:08:25 +00:00
Jeff Garzik
8dc58cb2d3 Move not-null assertion before pointer de-ref.
* gdk/gdkdnd.c (gdk_drag_context_unref):
        Move not-null assertion before pointer de-ref.

        * gdk/gdkevents.c (gdk_event_queue_find_first):
        Fix infinite loop bug.  Someone should look at this further to
        make sure the events_pending tests are correct.
1999-01-21 06:24:09 +00:00
Owen Taylor
e7b04a53ac Default handling for drops should be keyed on GTK_DRAG_DEFAULT_DROP not
Thu Jan 21 00:44:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_dest_drop): Default handling
	for drops should be keyed on GTK_DRAG_DEFAULT_DROP
	not GTK_DRAG_DEFAULT_MOTION.
1999-01-21 05:59:04 +00:00
Jeff Garzik
a646da3f1e Don't search entire row list twice for element being removed.
* gtk/gtkclist.c (real_remove_row):
        Don't search entire row list twice for element being removed.

        * gtk/gtkmenushell.c (gtk_menu_shell_insert):
        Replaced hand-coded implementation of g_list_insert with
        call to g_list_insert.

        * gtk/gtktooltips.c
          (gtk_tooltips_destroy_data, gtk_tooltips_layout_text):
        tooltipsdata->row test not-null test now properly encompasses
        both g_list_* calls.
1999-01-21 03:46:32 +00:00
Lars Hamann
1a58d9b3cf few cleanups. (gtk_notebook_key_press): call select page function for
Thu Jan 21 02:47:36 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_focus): few cleanups.
	(gtk_notebook_key_press): call select page function for
	GDK_DOWN key in case of tab_pos == TOP. Changed other
	positions accordingly.
1999-01-21 02:13:13 +00:00
Owen Taylor
21993dcb10 Start off with the cursor for "no drop" since if we'll get a status if we
Wed Jan 20 19:57:14 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_begin): Start off with the
	cursor for "no drop" since if we'll get a status
	if we are over a drag window, but none if we aren't
	over one.
1999-01-21 01:03:27 +00:00
Jeff Garzik
6e3e247b9a . Free 'nprefix', closing a memory leak. Spaced out the code a bit to make
.
        * gtk/gtkcombo.c (gtk_combo_entry_key_press):
        Free 'nprefix', closing a memory leak.
        Spaced out the code a bit to make it more readable.

        * gtk/gtkhbox.[ch] (gtk_hbox_new),
          gtk/gtkvbox.[ch] (gtk_vbox_new):
        Change 'homogenous' arg from gint to gboolean.

        * gtk/gtktogglebutton.[ch]:
        New function gtk_toggle_button_get_active().
1999-01-21 00:37:48 +00:00
Federico Mena Quintero
df21a7064f Allow button 2 to act as GDK_ACTION_ASK. Also, allow MOD1 to specify
1999-01-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkdnd.c (gtk_drag_get_event_action): Allow button 2 to act
	as GDK_ACTION_ASK.  Also, allow MOD1 to specify GDK_ACTION_ASK
	only if that action is enabled in the actions argument.
1999-01-20 23:53:29 +00:00
Raja R Harinath
255005f0e9 New variable. Define to $prefix/$DATADIRNAME/locale. This will point to
* configure.in (gtklocaledir): New variable.  Define to
	$prefix/$DATADIRNAME/locale.  This will point to the directory
	where po/Makefile actually installs the message translation
	tables.
	* gtk/Makefile.am (INCLUDES): Define GTK_LOCALEDIR to
	$(gtklocaledir) rather than $prefix/share/locale.
1999-01-20 23:43:08 +00:00
Timur I. Bakeyev
5ce6bea660 Under some systems (notably, BSDI), there is no LC_MESSAGES category in
Under some systems (notably, BSDI), there is no LC_MESSAGES category in
locale.h. In this case it is good guess to relay on the value of LC_ALL
(in fact, LC_CTYPE will be more precise).
1999-01-20 18:35:53 +00:00
Owen Taylor
6205bbbf65 Instead of drawing a background pixmap in with gdk_draw_pixmap(), set it
Wed Jan 20 13:06:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.[ch] (clear_[focus_]area): Instead of drawing
	a background pixmap in with gdk_draw_pixmap(), set
	it as a tile pixmap for a GC. This should speed
	up things considerably and also will hide a bug
	where text->first_onscreen_ver_pixel is being
	corrupted, causing the bg pixmap drawing code to generate
	graphics exposes.
1999-01-20 18:06:31 +00:00
Lars Hamann
0543c806f9 only call grab_add if pointer_grab succeeds. (gtk_list_unmap): remove
Tue Jan 19 22:15:10 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtklist.c
	(gtk_list_button_press):  only call grab_add if pointer_grab succeeds.
	(gtk_list_unmap): remove pointer/widget grabs if needed.
	(gtk_list_signal_focus_lost): removed.
	(gtk_list_focus) (gtk_list_set_focus_child): set last_focus_child.
	(gtk_list_remove_items_internal) (gtk_list_clear_items): unset
 	undo_focus_child if necessary. In case of SELECTION_BROWSE/EXTENDED
 	select a new item if selection is empty.
1999-01-20 01:09:16 +00:00
Tim Janik
17127d2c6d add compatibility define for gtk_ctree_set_reorderable.
Tue Jan 19 00:21:15 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkcompat.h: add compatibility define for
        gtk_ctree_set_reorderable.
1999-01-18 23:51:43 +00:00
Lars Hamann
abb7ed1cea add a sanity check [from Todd Dukes <todddukes@netscape.net>]
Tue Jan 19 00:02:10 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
	add a sanity check [from Todd Dukes <todddukes@netscape.net>]
1999-01-18 23:09:50 +00:00
Lars Hamann
28df7201ca only call grab_add if pointer_grab succeeds. (gtk_clist_unmap): remove
Mon Jan 18 22:54:11 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (gtk_clist_button_press): only call grab_add
	if pointer_grab succeeds.
	(gtk_clist_unmap): remove pointer/widget grabs if needed.
1999-01-18 23:02:08 +00:00
Owen Taylor
03f25c7ade Initialize label->label_wc. (We allocate labels from a memchunk)
Mon Jan 18 15:46:14 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklabel.c (gtk_label_init): Initialize
	label->label_wc. (We allocate labels from
	a memchunk)
1999-01-18 20:46:51 +00:00
Tim Janik
4ee10fdefa CLAMP digits into a meaningfull range (we need to stay below a certain
Mon Jan 18 18:53:08 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkscale.c (gtk_scale_set_digits): CLAMP digits into a
        meaningfull range (we need to stay below a certain limit anyways
        to avoid string buffer overflows).

        * gtk/gtkvscale.c (gtk_vscale_pos_background): fixed up background
        area calculations for GTK_POS_RIGHT and GTK_POS_BOTTOM.
        * gtk/gtkhscale.c (gtk_hscale_pos_background): likewise.
        (gtk_hscale_draw_value): safety CLAMP the value's x position for
        GTK_POS_TOP and GTK_POS_BOTTOM, so we don't paint strings outside of
        our allocation.

        * gtk/gtkscale.c: implemented GtkScale::digits, GtkScale::draw_value
        and GtkScale::value_pos arguments.
1999-01-18 19:42:59 +00:00
Owen Taylor
7709c1d12d Some editing, a little more detail.
Mon Jan 18 14:26:17 1999  Owen Taylor  <otaylor@redhat.com>

	* docs/Changes-1.2.txt: Some editing, a little more
	detail.
1999-01-18 19:27:43 +00:00
Owen Taylor
e260fd6a2b Added gtk_menu_set_title() to set the title of a menu in the torn-off
Mon Jan 18 13:25:14 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmenu.[ch]: Added gtk_menu_set_title() to
	set the title of a menu in the torn-off state.

	* gtk/gtkthemes.c (gtk_theme_engine_get): When loading
	of theme engine fails, just warn and do without -
	don't error out.

	* gtk/gtkmain.c (gtk_check_version): s/to/too/.
1999-01-18 18:48:09 +00:00
Sergey I. Panov
deb20a3cd0 add Russian translations 1999-01-18 05:47:11 +00:00
Sergey I. Panov
60c57e3e37 First draft of the Russian translations. 1999-01-18 05:45:41 +00:00
Lars Hamann
4551382631 fixed auto resize bug.
Mon Jan 18 01:21:03 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (draw_row): fixed auto resize bug.
1999-01-18 00:36:33 +00:00
CST 1999 Shawn T. Amundson
d225ffbc5b Released GTK+ 1.1.13
Sun Jan 17 17:35:28 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 1.1.13

        * README:
          INSTALL:
          docs/gtk-config.1: ver=1.1.13
1999-01-18 00:27:59 +00:00
Tim Janik
fae75219e6 added a section about GtkArgGetFunc and GtkArgSetFunc 1999-01-17 23:54:22 +00:00
Lars Hamann
c9a2b79176 block drag source signal handler during column resizes.
Mon Jan 18 00:22:54 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (gtk_clist_button_press) (gtk_clist_button_release):
	block drag source signal handler during column resizes.
	(gtk_clist_set_column_visibility): resize clist if needed.
	(gtk_clist_map): raise resize windows to make resize
 	cursor visible again.
1999-01-17 23:44:18 +00:00
Tim Janik
e65030aaed removed deprecated functions: gtk_clist_set_border,
Sun Jan 17 22:47:15 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.[hc]:
        * gtk/gtkspinbutton.[hc]:
        * gtk/gtkscrolledwindow.[hc]:
        * gtk/gtkprogressbar.[hc]:
        * gtk/gtkpreview.[hc]:
        * gtk/gtkobject.[hc]:
        * gtk/gtkentry.[hc]:
        * gtk/gtkctree.[hc]:
        * gtk/gtkcontainer.[hc]:
        * gtk/gtkclist.[hc]:
        removed deprecated functions: gtk_clist_set_border,
        gtk_container_block_resize, gtk_container_unblock_resize,
        gtk_container_need_resize, gtk_ctree_set_reorderable,
        gtk_ctree_show_stub, gtk_ctree_set_use_drag_icons,
        gtk_entry_adjust_scroll, gtk_object_class_add_user_signal,
        gtk_preview_put_row, gtk_progress_bar_construct,
        gtk_scrolled_window_construct, gtk_spin_button_construct,
        gtk_widget_freeze_accelerators, gtk_widget_thaw_accelerators.

        * gtk/gtkcheckmenuitem.c: removed binary variant of
        gtk_check_menu_item_set_state, this is still defined in gtkcompat.h
        though.

        * docs/Changes-1.2.txt:
        removed section about gtk_idle_remove_by_data vs.
        gtk_timeout_remove_by_data, we actually don't even provide a
        gtk_timeout_remove_by_data() function.
        added a table with removed functions and their replacements.

        * NEWS: updates for 1.1.13.
1999-01-17 23:12:18 +00:00
Owen Taylor
1adaa231c8 Patch from Felix Bellaby <felix@pooh.u-net.com>
Sun Jan 17 17:56:33 1999  Owen Taylor  <otaylor@redhat.com>

	Patch from Felix Bellaby <felix@pooh.u-net.com>

	* gdk/gdk.c: Use XmbSetWMProperties to set
	the class/command on the loader window so that the
	client machine is also set in the same place.
	(For X11R5 sesssion management compatibility)

	* gdk/gdk.c: (gdk_set_sm_client_id) Implementation
	of function to set the session manager client ID.

	* gdk/gdkwindow.c (gdk_window_new): Set
	WM_CLIENT_LEADER propertiy on all windows pointing
	back to GDK's leader window.
1999-01-17 22:58:59 +00:00
Owen Taylor
2aca4b0a80 Allow a bg_pixmap of "<none>", as there was no way to set the background
Sun Jan 17 12:01:57 1999  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkrc.c (gtk_rc_style_init): Allow a bg_pixmap
	of "<none>", as there was no way to set the background
	on all widget but some widgets. This is important
	because Text widgets with background images are
	slow and possibly ugly.
1999-01-17 22:38:05 +00:00
Guillaume Laurent
5af447fa07 Added a g_return_val_if_fail() in gtk_label_parse_uline() to
prevent from 'string' arg being NULL.
1999-01-17 19:02:53 +00:00
Nat Friedman
377579c2ef New macro. Changed the spacing from 5 to 3.
1999-01-17  Nat Friedman  <nat@nat.org>

	* gtk/gtkscrolledwindow.c (DEFAULT_SCROLLBAR_SPACING): New macro.
  	Changed the spacing from 5 to 3.

	* gtk/gtkmenubar.c (BORDER_SPACING): Changed the extra spacing on
 	the menubar from 2 to 0.
1999-01-17 19:01:49 +00:00
Christopher Blizzard
01457a0230 s/1.1.3/1.1.13/ 1999-01-17 17:06:21 +00:00
Tim Janik
7e3af7c078 - GNU autoconf 2.13 - GNU automake 1.4 (Beta releases are at
- GNU autoconf 2.13
        - GNU automake 1.4
                (Beta releases are at ftp://ftp.cygnus.com/pub/tromey)
        - GNU libtool 1.2d
        - indent (GNU indent 1.9.1 is known good)
        - GNU gettext 10.35
                Available in ftp://alpha.gnu.org/gnu
1999-01-17 16:54:58 +00:00
Owen Taylor
529bd529ef Fix typo [ gtk-mailund-990116-0: Thomas Mailund Jensen
Sun Jan 17 11:51:17 1999  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktext.c (gtk_text_move_cursor): Fix typo
	[ gtk-mailund-990116-0: Thomas Mailund Jensen <mailund@daimi.au.dk> ]
1999-01-17 16:51:20 +00:00
Christopher Blizzard
3aba370dad Update to version 1.1.3, change packager address.
Sun Jan 17 11:15:05 1999 Christopher Blizzard  <blizzard@appliedtheory.com>

        * gtk+.spec: Update to version 1.1.3, change packager address.
1999-01-17 16:25:20 +00:00
Tim Janik
65ef495712 deprecated gtk_check_menu_item_set_state, people should use
Sun Jan 17 14:52:29 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkcompat.h:
        * gtk/gtkcheckmenuitem.[hc]:
        deprecated gtk_check_menu_item_set_state, people should use
        gtk_check_menu_item_set_active instead.

        * gtk/testgtk.c:
         s/gtk_check_menu_item_set_state/gtk_check_menu_item_set_active/.
1999-01-17 14:52:22 +00:00
Tim Janik
9c5dfcd3ae incremented version number to 1.1.13, bin age 0, interface age 0.
Sun Jan 17 05:19:14 1999  Tim Janik  <timj@gtk.org>

        * configure.in: incremented version number to 1.1.13, bin age 0,
        interface age 0.

        * gtk/gtkmain.c (gtk_idle_remove_by_data): use g_idle_remove_by_data to
        remove idles, so `data' cannot conflict with other sources.

        * gtk/gtkcompat.h: define gtk_style_apply_default_pixmap here.

        * gtk/gtkstyle.[hc]: removed gtk_style_apply_default_pixmap.
        (struct _GtkStyle): reordered GtkStyleClass*klass; member.
1999-01-17 04:50:13 +00:00
George Lebl
2daaea2f98 for NO_WINDOW widgets, add their allocation.y to the position of the
Sat Jan 16 19:42:48 1999  George Lebl  <jirka@5z.com>

        * gtk/gtktooltips.c: for NO_WINDOW widgets, add their allocation.y
          to the position of the tooltip. This fixes tooltip positioning
          problems with some widgets such as a checkbox.
1999-01-17 03:49:31 +00:00
Tomas Ogren
ad4983713f Updated.
1999-01-17  Tomas Ogren  <stric@ing.umu.se>

* sv.po: Updated.
1999-01-17 03:04:45 +00:00
Nam SungHyun
0e46fffa45 updated 1999-01-17 02:19:33 +00:00
Vincent Renardias
df4598d582 Sat, 16 Jan 1999 23:32:33 +0100 [Vincent]
* fr.po: Updated.
1999-01-16 21:32:10 +00:00
Stuart Parmenter
1eb7f7367d check for child widget being NULL
Sat Jan 16 14:01:53 1999  Stuart Parmenter <pavlov@gtk.org>

	* gtk/gtklayout.c (gtk_layout_put): check for child widget being NULL
1999-01-16 19:04:06 +00:00
Lars Hamann
5c7acbbf42 fixed double click bug.
Sat Jan 16 05:02:22 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (gtk_clist_button_press): fixed double click bug.
1999-01-16 04:21:46 +00:00
Manish Singh
b35b174773 Mention libtool 1.2d
-Yosh
1999-01-16 03:44:08 +00:00
Kjartan Maraas
251e586236 Updated translation.
1999-01-16  Kjartan Maraas  <kmaraas@fib.hl.no>

		* Updated translation.
1999-01-15 23:59:44 +00:00
Tim Janik
87620764ae define GTK_DISABLE_COMPAT_H for compilation of gtk code.
Fri Jan 15 19:16:42 1999  Tim Janik  <timj@gtk.org>

        * gtk/Makefile.am: define GTK_DISABLE_COMPAT_H for compilation of gtk
        code.

        * gtk/gtkrc.c (gtk_rc_style_unref): added an assertment.

        * gtk/gtkcompat.h:
        * gtk/gtklabel.h:
        don't provide compatibility defines if GTK_DISABLE_COMPAT_H is defined.

        * gtk/gtkstyle.h:
        * gtk/gtkstyle.c: coding style, indentation and alignment fixups.
        (gtk_draw_string):
        (gtk_paint_string):
        (gtk_draw_polygon):
        (gtk_style_set_background): fixed assertments.
        (gtk_default_draw_ramp):
        (gtk_default_draw_cross):
        (gtk_default_draw_oval): issue warnings since these functions aren't
        yet implemented.

        * gdk/gdkwindow.c:
        (gdk_window_hide): only unmap window if already mapped.
        (gdk_window_show): only map window if !mapped.
        (gdk_window_internal_destroy): destroyed windows can't be mapped.

        * gtk/gtkwidget.c (gtk_widget_event): don't ignore expose events just
        because a resize is queued on a widget, we rely on the expose events
        now.
1999-01-15 18:41:43 +00:00
Owen Taylor
2e99e7713d nparams for selection_get should be 3, not 2. [ From Damon Chaplin
Fri Jan 15 10:22:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_class_init):
	nparams for selection_get should be 3, not 2.
	[ From Damon Chaplin <damon@karuna.freeserve.co.uk> ]

	* gtk/gtkeventbox.c (gtk_event_box_paint): Add a paint
	routine so queued redraws work inside event boxes.

Thu Jan 14 17:47:37 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable): Only
 	 redraw character under cursor when not displaying
	highlighted selection.

	* gdk/gdkrgb.c (gdk_rgb_init): Add in a cast to
	gpointer to make IRIX cc happy.

Thu Jan 14 12:29:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcheckbutton.c (gtk_check_button_draw): Restructure
	the drawing code to remove a bit of duplication -
	and to remove a call to gtk_widget_draw_focus()
	that queues a redraw when an expose occurs.

	* gtk/gtklabel.c (gtk_label_expose): Fix up handling
	  of ypadding.

	* gtk/gtknotebook.c (gtk_notebook_draw): If we redraw
	  the whole widget, also redraw the corresponding
	  areas of the child widget. (have_visible_child
	  still has some problems)

	* gdk/gdkpixmap.c: Change some g_new's to g_new0 so
	  that fields unused for pixmaps get initialzized
	  sanely.

        * gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: Add new calls
	  gdk_window_is_visible() and gdk_window_is_viewable()
	  and a mapped flag to the window private structure.

        * gtk/gtkbin.c gtk/gtkclist.c gtk/gtkfixed.c gtk/gtkitem.c
	  gtk/gtklayout.c gtk/gtklist.c gtk/gtkmenushell.c
	  gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtktree.c
	  gtk/gtktreeitem.c gtk/gtkviewport.c:
	Map windows after mapping children.

	* gtk/gtkwidget.c (gtk_widget_clip_rect): Handle
	rectangles completely clipped away correctly.

	* gtk/gtkwidget.c (gtk_widget_idle_draw): Don't
	call gtk_widget_draw if width or height is 0.

	* gtk/gtkwidget.c (gtk_widget_idle_draw): Don't
	rely on GTK_REDRAW_PENDING after we've cleared
	it. (This was causing draw-combining to not
	happen at all).

	* gtk/gtkbin.c gtk/gtkscale.c: Remove uneccessary calls
	to gtk_widget_queue_draw() when mapping.
1999-01-15 16:00:39 +00:00
Owen Taylor
3bba843968 Make MOD1-drag also do action ask.
Thu Jan 14 11:29:53 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_get_event_action): Make
	MOD1-drag also do action ask.

	* gtk/gtkdnd.c (gtk_drag_button_release_cb): Send the
	button-release event we simulate to get grabs released,
	with a window of GDK_ROOT_PARENT instead of the actual
	widget. This is a bad hack in some sense, but seems
	to work nicely. (It's sort of like what you would
	if you grabbed on button press, then the user
	released outside of the widget.)
1999-01-15 15:58:17 +00:00
Owen Taylor
eb7c4e4589 Do all event processing in dispatch() instead of prepare() and check().
Thu Jan 14 19:19:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkevents.c: Do all event processing in
	dispatch() instead of prepare() and check().
1999-01-15 15:56:32 +00:00
Owen Taylor
40f9670464 Change copy_area => !set_bg. Use tile instead of gdk_window_copy_area when
Thu Jan 14 20:29:16 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.[ch] (gtk_style_apply_default_background):
	Change copy_area => !set_bg. Use tile instead of
	gdk_window_copy_area when drawing without !set_bg.

	This does mess up timj's neat check-button example,
	but is consistent with how we interpret background
	pixmaps everywhere else in the default scheme.

	Restructure code for clarity.
1999-01-15 15:54:39 +00:00
Owen Taylor
467e0fcb24 gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkhandlebox.c gtk/gtkframe.c
Wed Jan 13 22:34:29 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkhandlebox.c
	gtk/gtkframe.c gtk/gtk[hv]box.c gtk[hv]paned.c gtk/gtklist.c
	gtkmenu.c gtkmenuitem.c gtkmenubar.c gtknotebook.c
	gtk/gtkscrolledwindow.c gtk/gtktable.c gtk/gtktree.c
	gtk/gtktreeeitem.c gtk/gtkviewport.c

	Fix up comparisons of signed and unsigned ints to avoid
	assigning negative widths/heigths.
1999-01-14 06:04:55 +00:00
Owen Taylor
c8ae0b92ca Unset CATOBJEXT so that the macros and Makefiles correctly handle
Wed Jan 13 21:18:41 1999  Owen Taylor  <otaylor@redhat.com>

	* acinclude.m4 (ac_result): Unset CATOBJEXT so
	that the macros and Makefiles correctly handle
	disabling NLS when no gettext is found.
1999-01-14 02:16:49 +00:00
Tim Janik
52a441445c in comparisions with GTK_TYPE_STRING, use the fundamental type to catch
Wed Jan 13 20:14:32 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkarg.c (gtk_arg_copy): in comparisions with GTK_TYPE_STRING, use
        the fundamental type to catch GTK_TYPE_IDENTIFIER as well.

        * gtk/gtkmenushell.c:
        (gtk_real_menu_shell_activate_current):
        (gtk_menu_shell_button_release): asure that we only activate sensitive
        menu items, reported by Dave Cole <dave@dccs.com.au>.
1999-01-13 20:36:23 +00:00
Pablo Saratxaga
aca733c310 updated spanish language file 1999-01-13 19:24:20 +00:00
Jeff Garzik
07cc384be1 cvs be quiet 1999-01-13 19:17:08 +00:00
Tim Janik
55b365d76d eliminate queue_clears or queue_draws where we know that expose events
Wed Jan 13 13:28:00 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c: eliminate queue_clears or queue_draws where we know
        that expose events will be generated.
        (gtk_widget_map): only queue_draw for NO_WINDOW widgets.
        (gtk_widget_unmap): only queue_clear_child for NO_WINDOW widgets.
        (gtk_widget_size_allocate): we don't need a queue_clear on changing
        allocations of !NO_WINDOW widgets, we do still need a full redraw for
        them though.

        * gtk/gtklabel.c (gtk_label_set_text): check whether the new string
        actually differs from the original.
1999-01-13 12:39:17 +00:00
Manish Singh
de7ffb4a1c remove autogened files
-Yosh
1999-01-13 08:52:03 +00:00
Manish Singh
38e44202bd Doah. libtool isn't the only thing in here.
-Yosh
1999-01-13 08:44:21 +00:00
Manish Singh
6790905309 acinclude.m4 ltconfig upgrade to libtool 1.2d (with fixes for irix6 and
* acinclude.m4
* ltconfig
* ltmain.sh: upgrade to libtool 1.2d (with fixes for irix6 and osf)

-Yosh
1999-01-13 06:53:26 +00:00
Stuart Parmenter
9da0be6730 add GTK_HAVE_FEATURES_1_1_13 for the toggle button name changes 1999-01-13 03:34:53 +00:00
Tomas Ogren
fa75646110 Updated, did make update-po
1999-01-13  Tomas Ogren  <stric@ing.umu.se>

* sv.po: Updated, did make update-po
1999-01-13 02:30:55 +00:00
Owen Taylor
24f6d8b887 Add a drag_data_received handler for the label.
Tue Jan 12 18:30:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testdnd.c (label_drag_data_received): Add
	a drag_data_received handler for the label.

Tue Jan 12 15:01:50 1999  Owen Taylor  <otaylor@redhat.com>

        * gdk/gdkevents.c: Removed the putback_events queue,
	since it was causing problems with event ordering -
	just keep a single queue. If we need it, we can
	add priorities to events.

	* gdk/gdkevents.c: Annotate events with flags - we allocate
	a GdkEventPrivate structure in gdk_event_new() and use these
	flags to mark an event being translated as "pending" -
	I.e., not yet ready to be dequeued. So we can put
	the event on the queue and get the order of the
	events right. (This solves the double-click problems)

	* gdk/gdk.h gdk/gdkevents.h: Add gdk_event_peek() to get a copy
	of the next event on the event queue.

	* gtk/gtkmain.c (gtk_main_do_event): Use gdk_event_peek()
	to check the next event without causing event queue
	reordering.
1999-01-12 23:27:30 +00:00
Owen Taylor
5a86cbd116 Minor fix to handling of misc->[x/y]pad
Tue Jan 12 15:41:20 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklabel.c (gtk_label_expose): Minor fix
	to handling of misc->[x/y]pad
1999-01-12 20:45:37 +00:00
Owen Taylor
bef538cc7e Add back as wrapper function to restore source/binary compatibility.
Tue Jan 12 14:31:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.[ch] (gtk_style_apply_default_pixmap):
	Add back as wrapper function to restore source/binary
	compatibility. grrrr.
1999-01-12 19:40:21 +00:00
Tim Janik
9619e45aa7 updates 1999-01-12 19:35:00 +00:00
Tim Janik
d7bd87f2ea reworked the redrawing heuristics somewhat, this fixed a bunch of existing
Tue Jan 12 13:47:07 1999  Tim Janik  <timj@gtk.org>

        * reworked the redrawing heuristics somewhat, this fixed a bunch of
        existing redrawing problems and majorly reduces overall redrawing needs
        during normal operation. basically we now only queue redraws when
        neccessary and much rely on the draw_area coalescing code in gtkwidget.c
        to optimize the queued portions. widgets will now upon reallocation only
        get redrawed if their allocation has changed. upon hide/show only the
        area allocated by the child will be queued for the parent, this has the
        side effect that parents which change their appearance in dependance on
        the numer of visible children have to keep track of their children's
        visiblity and eventually fully redraw themselves. this is a minor
        constrain with great benefits in terms of redraw reduction, and only got
        triggered by the notebook widget.

        * gtk/gtkwidget.c:
        (gtk_widget_queue_clear): don't bother if width and height == 0.
        (gtk_widget_queue_clear_child): new static function to queue a redraw of
        the area obscured by a child on a parent.
        (gtk_widget_queue_resize): queue_clear the widget if it is drawable.
        (gtk_widget_show): queue resize on the widget before showing.
        (gtk_widget_hide): queue resize on the widget after hiding.
        (gtk_widget_map): queue_draw the widget after mapping.
        (gtk_widget_unmap): queue_clear_child the widget.
        (gtk_widget_size_allocate): queue_clear_child and queue_draw if the
        widget's allocation changed.
        (gtk_widget_unparent): queue_clear_child so the parent redraws obscured
        portions.
        (gtk_widget_real_show):
        (gtk_widget_real_hide):
        (gtk_widget_real_map):
        (gtk_widget_real_unmap):
        (gtk_widget_real_size_allocate): don't bother with redraw queueing,
        descendants that override these functions don't do either and we handle
        all redrawing/resizing related stuff before or after the signal emission
        now.

        * gtk/gtkcontainer.c:
        (gtk_container_resize_children): don't bother about redrawing anymore
        since gtk_widget_size_allocate handles that for us now.

        * gtk/gtknotebook.h:
        * gtk/gtknotebook.c:
        added a flag have_visible_child to indicate whether we need to draw
        non child related portions at all, e.g. shadows etc.
        (gtk_notebook_draw): if have_visible_child changed, do a full paint
        instead of updating a small area only.

Mon Jan 11 20:44:35 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkstyle.c: changed gtk_style_apply_default_pixmap to
        gtk_style_apply_default_background which takes an extra argument
        copy_area to determine NO_WINDOW widget pixmap copying.
        changed callers accordingly.

        * gtk/gtktogglebutton.c:
        (gtk_toggle_size_allocate):
        (gtk_toggle_button_expose):
        (gtk_toggle_button_paint): avoid messing with our parent's window if
        toggle_button->draw_indicator == TRUE and we are a NO_WINDOW widget.

        * gtk/gtkcheckbutton.c (gtk_real_check_button_draw_indicator): draw
        the draw_indicator with GTK_STATE_ACTIVE if the toggle button is active.

        * gtk/check-n.xpm:
        * gtk/check-y.xpm:
        * gtk/testgtkrc: set pixmaps for ACTIVE and NORMAL check button
        bg_pixmaps.
1999-01-12 15:12:14 +00:00
Lars Hamann
8b0955954c end drag selections if necessary.
Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtklist.c (gtk_list_signal_drag_begin)
	(gtk_list_drag_begin): end drag selections if necessary.

	* gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
	public. Manually force synchronization of spin button text and
 	adjustment value.
1999-01-11 23:24:41 +00:00
Tim Janik
d2e69a89d4 eliminated some queue_draws when invoking gtk_widget_set_state, since that
Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
        gtk_widget_set_state, since that cares about redrawing already.
        some code cleanups.

        * gtk/gtktogglebutton.[hc]:
        * gtk/gtkfontsel.c:
        * gtkgamma.c:
        s/gtk_toggle_button_set_state/gtk_toggle_button_set_active/ since
        set_state is already taken by gtkwidget.h.

        * gtk/gtkcompat.h: #define gtk_toggle_button_set_state
        gtk_toggle_button_set_active.

        * gtk/gtkstyle.c: some indentation cleanups.
1999-01-11 18:49:54 +00:00
Owen Taylor
0b84fc2742 Only remove handlers for motion/button_release at drop, remove
Mon Jan 11 10:45:28 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c: Only remove handlers for motion/button_release
	at drop, remove "selection_get" handler later.
1999-01-11 16:07:47 +00:00
Tim Janik
983335243b removed Paolo Molaro's type creation hooks again, since they 1) don't care
Mon Jan 11 13:31:49 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.[hc]: removed Paolo Molaro's type creation hooks
        again, since they 1) don't care about infinite recursion (likely
        to achive), 2) we are in feature freeze for 1.2. this definitely
        deserves a sane implementation in 1.3 though (but without a hook
        return value, without seq_id hackery and with recursion checks).
1999-01-11 12:43:07 +00:00
Tim Janik
e3ee9e9d7d only pass key events to the focus widget if it is sensitive.
Mon Jan 11 13:18:37 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwindow.c:
        (gtk_window_key_release_event):
        (gtk_window_key_press_event): only pass key events to the focus widget
        if it is sensitive.

        * gtk/gtkmenuitem.c (gtk_menu_item_select_timeout): don't popup the
        submenu if it isn't sensitive.
        (gtk_menu_item_paint): state_type doesn't need to be reset to
        GTK_STATE_INSENSITIVE if the widget is insensitive anyways.

        * gtk/gtkcontainer.c (gtk_container_real_focus):
        * gtk/gtklist.c (gtk_list_focus):
        * gtk/gtkmenushell.c (gtk_menu_shell_move_selected):
        * gtk/gtknotebook.c (gtk_notebook_focus):
        s/GTK_WIDGET_SENSITIVE/GTK_WIDGET_IS_SENSITIVE/ since a widgets
        sensitivity is determined through the parent as well,
        GTK_WIDGET_SENSITIVE is only of interest inside gtkwidget.c, everywhere
        else GTK_WIDGET_IS_SENSITIVE (widget) needs to be used to check for
        sensitivity.

        * gtk/gtkaccelgroup.c (gtk_accel_group_activate): don't activate
        object if it is an insensitive widget.
1999-01-11 12:22:52 +00:00
Paolo Molaro
f3af00f450 Mon, 11 Jan 1999 08:09:08 +0100 Paolo Molaro <lupus@debian.org>
* gtk/gtktypeutils.[ch]: add gtk_type_{add,remove}_creation_hook().
        You can have a notification when a type is created.
1999-01-11 07:09:07 +00:00
Tim Janik
b6714d9ad1 added an assertement.
1999-01-11  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_propagate_event): added an assertement.
1999-01-11 06:35:41 +00:00
Owen Taylor
05e714d6d1 Fixed cut and paste bug when comparing text property bg colors. [ Matt
Sun Jan 10 14:45:37 1999  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktext.c (text_properties_equal): Fixed
	cut and paste bug when comparing text property
	bg colors.
	[ Matt Aubury <Matt.Aubury@comlab.ox.ac.uk> ]
1999-01-10 19:49:24 +00:00
Tim Janik
bcbe6f4885 if the lookup failed, try to initialize the object class and reattempt the
1999-01-10  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_lookup): if the lookup failed, try
        to initialize the object class and reattempt the lookup, reported
        by Paolo Molaro <lupus@lettere.unipd.it>.
1999-01-10 19:05:36 +00:00
Pablo Saratxaga
a24e14ceb4 added spanish language file 1999-01-10 18:32:14 +00:00
Owen Taylor
3bd19e15ea Added cs to ALL_LINGUAS.
Sat Jan  9 17:36:20 1999  Owen Taylor  <otaylor@redhat.com>

	* configure.in (ALL_LINGUAS): Added cs to ALL_LINGUAS.

Sat Jan  9 17:27:49 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (gtk_file_selection_populate):
	Mark another string for internationalization.
	[ Stanislav Brabec <utx@k332.feld.cvut.cz> ]
1999-01-09 22:34:28 +00:00
Owen Taylor
71adaddfa7 Added Czech translation by Stanislav Brabec <utx@k332.feld.cvut.cz>
Sat Jan  9 17:35:19 1999  Owen Taylor  <otaylor@redhat.com>

	* cs.po: Added Czech translation by
	  Stanislav Brabec <utx@k332.feld.cvut.cz>
1999-01-09 22:32:58 +00:00
Owen Taylor
a40fd787da Set name "gtk-tooltips" on tip window so that a style can be set for
Sat Jan  9 14:02:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktooltips.c (gtk_tooltips_force_window): Set
	name "gtk-tooltips" on tip window so that a style
	can be set for tooltips.
1999-01-09 19:02:06 +00:00
Nuno Ferreira
a646c4b4d0 More strings translated. Not finished yet.
1999-01-09  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>

	* pt.po: More strings translated. Not finished yet.
1999-01-09 13:08:32 +00:00
Owen Taylor
95843529d1 Fixed some list-manipulation breakage.
Fri Jan  8 19:00:17 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdnd.c (gdk_window_cache_filter): Fixed
	some list-manipulation breakage.

	* gdk/gdkdnd.c (gdk_window_cache_destroy): Free
	window cache structure.

	* gtk/gtkdnd.c (gtk_drag_set_icon_pixmap): Set an
	event mask on the drag window so clicking on it
	doesn't pop up root menus, etc.

	* gtk/gtkdnd.c (gtk_drag_button_release_cb): Remove
	signal handlers at button release.
1999-01-09 00:21:37 +00:00
Lars Hamann
b56693d114 call gtk_spin_button_update before returning a value
Fri Jan  8 00:42:00 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkspinbutton.c (gtk_spin_button_get_value_as_int)
	(gtk_spin_button_get_value_as_float): call gtk_spin_button_update
	before returning a value

	* gtk/gtkclist.c (gtk_clist_motion): don't allow 'drag selections'
	if clist is a drag source.
	(gtk_clist_drag_begin): remove pointer grabs, end ongoing selections.

	* gtk/gtkctree.c (remove_grab): copy of clist function.
	(gtk_ctree_drag_begin): let clists drag_begin method set the
	source info struct.
1999-01-08 00:21:36 +00:00
Owen Taylor
41604dd844 Fixes to drawing the background of the bin window so that clearing and
Thu Jan  7 19:10:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkviewport.c (gtk_viewport_style_set): Fixes
	to drawing the background of the bin window
	so that clearing and redrawing of child
	widgets work properly.

	* gtk/gtkwidget.c (gtk_widget_idle_draw): Juggle around
	data so that if somebody triggers more redraw queuing
	from a expose_event handler, it doesn't confuse the
	heck out of GTK+. (But is highly liable to cause
	an infinite loop...)
1999-01-08 00:12:43 +00:00
Owen Taylor
bedab705f2 Fix some more memory leaks.
Thu Jan  7 12:31:41 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c (gtk_target_list_unref): Fix some
	more memory leaks.
1999-01-07 20:17:15 +00:00
Lars Hamann
f28c909c58 fix for dnd bug reported by Bertrand Guiheneuf. Don't return FALSE if
Wed Jan  6 23:14:19 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (gtk_ctree_drag_motion): fix for dnd bug reported
	by Bertrand Guiheneuf. Don't return FALSE if source widget != dest.
	widget.
1999-01-06 22:26:03 +00:00
Tristan Tarrant
216d83587f Added Italian texts 1999-01-06 09:09:04 +00:00
George Lebl
234d762ec3 free the event that was returned to us by gtk_get_current_event
Tue Jan 05 21:18:00 1999  George Lebl  <jirka@5z.com>

        * gtk/gtkmenu.c,gtk/gtkmenuitem.c,gtk/gtkeditable.c: free the
          event that was returned to us by gtk_get_current_event
1999-01-06 05:19:15 +00:00
Owen Taylor
52601eae08 Free memory allocated for target lists.
Tue Jan  5 11:31:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c (gtk_target_list_unref): Free
	memory allocated for target lists.
1999-01-06 00:43:29 +00:00
Owen Taylor
0a411980ef Push GdkRGB's visual and colormap around the color selection dialog so
Tue Jan  5 19:01:18 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c (gtk_color_selection_dialog_init): Push
	GdkRGB's visual and colormap around the color selection
	dialog so that the window and the previews have the
	same colormap. If an app adds things to the colorsel
	dialog, it will have to take care of them itself.
1999-01-06 00:41:04 +00:00
Owen Taylor
5126b13c0a When redrawing the under-cursor character, don't redraw the terminating
Tue Jan  5 11:51:32 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable):
	When redrawing the under-cursor character, don't
	redraw the terminating NULL.
	[ From: dov@imagic.weizmann.ac.il (Dov Grobgeld) ]
1999-01-05 23:46:49 +00:00
Owen Taylor
1fd7a6e491 Make gtk_propagate_event() non-static, we need it in gtkdnd.c so that the
Tue Jan  5 15:03:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_propagate_event): Make
	gtk_propagate_event() non-static, we need it in gtkdnd.c
	so that the button-release we synthesize gets propagated
	correctly.

	* gtk/gtkdnd.c: Use gtk_propagate_event() so
	release gets to a GtkList. But we can't really
	get this right without access to the windows
	event masks and doing X-style propagation ourselves.

Tue Jan  5 11:31:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c (gtk_target_list_unref): Free
	memory allocated for target lists.

	* gtk/gtkdnd.c (gtk_drag_drop_finished): Release
	selections before destroying info structure.

	* gdk/gdkdnd.c gdktypes.h (gdk_drag_get_protocol): Add
	new value GDK_DRAG_PROTO_NONE, use it for non-drag
	targets, to quiet Purify.

	* gdk/gdkdnd.c (gdk_window_register_dnd): Set size
	of property properly.
1999-01-05 23:45:21 +00:00
Arturo Espinosa
ce87813af6 Stuff I did last night while watching TV 1999-01-05 21:27:07 +00:00
Arturo Espinosa
f876ca2681 Loading framework done, start of PNG loader 1999-01-05 04:31:03 +00:00
962 changed files with 293548 additions and 107417 deletions

View File

@@ -1,6 +1,7 @@
*.lo
config.log
config.h
config.h.in
libtool
config.status
stamp-h
@@ -11,4 +12,9 @@ configure
gtk-config
config.cache
ABOUT-NLS
intl
intl
stamp-h.in
gtk+.spec
missing
install-sh
mkinstalldirs

10
AUTHORS
View File

@@ -4,20 +4,26 @@ Peter Mattis <petm@xcf.berkeley.edu>
Spencer Kimball <spencer@xcf.berkeley.edu>
Josh MacDonald <jmacd@xcf.berkeley.edu>
Please do not mail the original authors asking questions about this
version of GTK+.
The GTK+ Team (in alphabetical order)
-------------------------------------
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@in2p3.fr>
Jerome Bolliet <bolliet@gtk.org>
Damon Chaplin <damon@gtk.org>
Tony Gale <gale@gtk.org>
Jeff Garzik <jgarzik@gtk.org>
Lars Hamann <lars@gtk.org>
Raja R Harinath <harinath@gtk.org>
Carsten Haitzler <raster@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Raph Levien <raph@gtk.org>
Ian Main <imain@gtk.org>
Federico Mena <quartic@gtk.org>
Paolo Molaro <lupus@lettere.unipd.it>
Paolo Molaro <lupus@gtk.org>
Jay Painter <jpaint@gtk.org>
Manish Singh <manish@gtk.org>
Owen Taylor <otaylor@gtk.org>

11625
ChangeLog

File diff suppressed because it is too large Load Diff

9106
ChangeLog.pre-1-2 Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
If you want to hack on the Gtk+ project, it will make you life easier
to have the following packages installed:
- GNU autoconf 2.12
- GNU automake 1.3
- GNU autoconf 2.13
- GNU automake 1.4
(Beta releases are at ftp://ftp.cygnus.com/pub/tromey)
- GNU libtool 1.2b
- GNU libtool 1.2d
- indent (GNU indent 1.9.1 is known good)
- GNU gettext 10.35
Available in ftp://alpha.gnu.org/gnu

51
INSTALL
View File

@@ -7,12 +7,12 @@ you got this package.
Simple install procedure
========================
% gzip -cd gtk+-1.1.12.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.1.12 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
% gzip -cd gtk+-1.2.7.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.2.7 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
% make install # install GTK
% make install # install GTK
The Nitty-Gritty
================
@@ -43,6 +43,13 @@ which form of support to use:
For more information, follow the link from http://www.gtk.org
* --disable-nls do not use Native Language Support
If this flag is not specified, GTK+ will try to find
and use the gettext() set of functions to provide translations
of the strings in the standard dialogs into the
user's native language.
* --enable-xim support XIM [default=yes]
Specifying --disable-xim will disable support for entering
@@ -50,7 +57,7 @@ internationalized text using X Input Methods. This will give some
slight savings in speed and memory use and might be necessary
with older versions of X.
* --with-locale=LOCALE locale name you want to use
* --with-locale=LOCALE locale name you want to use
The --with-locale options is used to determine if your operating
system has support for the locale you will be using. If not, X's
@@ -84,19 +91,43 @@ or,
setenv CFLAGS -O2 ; ./configure # csh and variants
Native-Language Support and gettext()
=====================================
Using an uninstalled copy of GLIB
=================================
To provide native-language support (NLS) GTK+ uses the
gettext() set of functions. These functions are found
in the C library on many systems, such as the Solaris
C library and the GNU C Library, version 2.
If your C library does not provide the necessary functionality,
you may wish to install the GNU gettext package. You'll
need version 0.10.35 or better. Version 0.10.35 is
available from ftp://alpha.gnu.org/pub/gnu
Generally, GTK+ will properly detect what is installed
on your system and enable or disable NLS as appropriate.
However, in rare cases, it may be necessary to disable
NLS manually to get GTK+ to compile. You can do this
by specifying the --disable-nls flag when configuring
GTK+.
Using an uninstalled copy of GLIB [ Unsupported ]
=================================================
You can compile GTK+ against a copy of GLIB that you have not
yet installed. To do this, give the --with-glib=DIR options
to ./configure. For instance:
./configure --with-glib=../glib-1.1.12
./configure --with-glib=../glib-1.2.7
This, however, will not work if you built GLIB with different
source and build directories.
It is recommended that you install GLIB before compiling
GTK+. The --with-glib option is not regularly tested
and may not function correctly. In addition,
inter-library dependencies won't be generated when
using --with-glib=.
Installation directories
========================
@@ -126,7 +157,7 @@ For complete details, see the file docs/gtk-config.txt
Notes for using XIM support for Japanese input
==============================================
* There is a bug in older versions of kinput2 that will cause GTK
* There is a bug in older versions of kinput2 that will cause GTK+
to hang when destroying a text entry. The latest versions of
kinput is available from:

187
INSTALL.in Normal file
View File

@@ -0,0 +1,187 @@
Prerequisites
=============
GTK+ requires the GLIB library, available at the same location as
you got this package.
Simple install procedure
========================
% gzip -cd gtk+-@GTK_VERSION@.tar.gz | tar xvf - # unpack the sources
% cd gtk+-@GTK_VERSION@ # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
% make install # install GTK
The Nitty-Gritty
================
The 'configure' script can be given a number of options to enable
and disable various features. For a complete list, type:
./configure --help
A few of the more important ones:
* --prefix=PREFIX install architecture-independent files in PREFIX
[ Defaults to /usr/local ]
* --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[ Defaults to the value given to --prefix ]
* --with-xinput=[no/gxi/xfree] support XInput [default=no]
The --with-xinput flag specifies whether to compile with support
for the XInput extension (mainly used for graphics tablets), and
which form of support to use:
no : no support
gxi : Use generic XInput support
xfree : Use special features in the Wacom drivers in XFree86 3.3.1
and later.
For more information, follow the link from http://www.gtk.org
* --disable-nls do not use Native Language Support
If this flag is not specified, GTK+ will try to find
and use the gettext() set of functions to provide translations
of the strings in the standard dialogs into the
user's native language.
* --enable-xim support XIM [default=yes]
Specifying --disable-xim will disable support for entering
internationalized text using X Input Methods. This will give some
slight savings in speed and memory use and might be necessary
with older versions of X.
* --with-locale=LOCALE locale name you want to use
The --with-locale options is used to determine if your operating
system has support for the locale you will be using. If not, X's
built in locale support will be used.
Because of bugs in autoconf, it is necessary to specify this
option even if your LANG environment variable is correctly set.
This option does not determine which locale GTK will use at
runtime. That will be determined from the usual environment
variables. If you will be using multiple locales with GTK,
specify the one for which your operating system has the worst
support for the --with-locale option.
Options can be given to the compiler and linker by setting
environment variables before running configure. A few of the more
important ones:
CC : The C compiler to use
CPPFLAGS : Flags for the C preprocesser such as -I and -D
CFLAGS : C compiler flags
The most important use of this is to set the
optimization/debugging flags. For instance, to compile with no
debugging information at all, run configure as:
CFLAGS=-O2 ./configure # Bourne compatible shells (sh/bash/zsh)
or,
setenv CFLAGS -O2 ; ./configure # csh and variants
Native-Language Support and gettext()
=====================================
To provide native-language support (NLS) GTK+ uses the
gettext() set of functions. These functions are found
in the C library on many systems, such as the Solaris
C library and the GNU C Library, version 2.
If your C library does not provide the necessary functionality,
you may wish to install the GNU gettext package. You'll
need version 0.10.35 or better. Version 0.10.35 is
available from ftp://alpha.gnu.org/pub/gnu
Generally, GTK+ will properly detect what is installed
on your system and enable or disable NLS as appropriate.
However, in rare cases, it may be necessary to disable
NLS manually to get GTK+ to compile. You can do this
by specifying the --disable-nls flag when configuring
GTK+.
Using an uninstalled copy of GLIB [ Unsupported ]
=================================================
You can compile GTK+ against a copy of GLIB that you have not
yet installed. To do this, give the --with-glib=DIR options
to ./configure. For instance:
./configure --with-glib=../glib-@GTK_VERSION@
This, however, will not work if you built GLIB with different
source and build directories.
It is recommended that you install GLIB before compiling
GTK+. The --with-glib option is not regularly tested
and may not function correctly. In addition,
inter-library dependencies won't be generated when
using --with-glib=.
Installation directories
========================
The location of the installed files is determined by the --prefix
and --exec-prefix options given to configure. There are also more
detailed flags to control individual directories. However, the
use of these flags is not tested.
One particular detail to note, is that the architecture-dependent
include file glibconfig.h is installed in:
$exec_pref/lib/glib/include/
if you have a version in $prefix/include, this is out of date
and should be deleted.
A shell script gtk-config is created during the configure
process, and installed in the bin/ directory
($exec_prefix/bin). This is used to determine the location of GTK
when building applications. If you move GTK after installation,
it will be necessary to edit this file.
For complete details, see the file docs/gtk-config.txt
Notes for using XIM support for Japanese input
==============================================
* There is a bug in older versions of kinput2 that will cause GTK+
to hang when destroying a text entry. The latest versions of
kinput is available from:
ftp://ftp.sra.co.jp/pub/x11/kinput2
* The locale information file for the ja_JP EUC locale
distributed with some recent versions of X11 specifies to use the
C library multibyte functions. Unless your C library has support
for Japanese locales, this is incorrect, and will cause problems
for GTK's internationalization.
(In particular, this occurs with GNU libc 2.0 in which
the multibyte functions always translate to and from UTF-8; but
the problem may occur for other C libraries, and other operating
systems as well.)
To fix this, change the line:
use_stdc_env True
to
use_stdc_env False
in the file /usr/X11R6/lib/X11/locale/ja_JP/XLC_LOCALE.

View File

@@ -1,33 +1,40 @@
## Process this file with automake to produce Makefile.in
## Makefile.am for GTK+
SRC_SUBDIRS = gdk gtk
SUBDIRS = po $(SRC_SUBDIRS) docs
bin_SCRIPTS = gtk-config
# require automake 1.4
AUTOMAKE_OPTIONS = 1.4
EXTRA_DIST = \
HACKING \
gtk+.spec \
gtk+.spec.in \
gtk.m4 \
makecopyright \
TODO \
NEWS.pre-1-0 \
ChangeLog.pre-1-0 \
README.cvs-commits \
README.win32 \
intl/libgettext.h \
intl/po2tbl.sed.in \
examples/Makefile \
examples/README.1ST \
examples/extract.awk \
examples/extract.sh \
examples/aspectframe/Makefile \
examples/aspectframe/aspectframe.c \
examples/base/Makefile \
examples/base/base.c \
examples/Makefile \
examples/README.1ST \
examples/extract.awk \
examples/extract.sh \
examples/base/Makefile \
examples/base/base.c \
examples/buttons/Makefile \
examples/buttons/buttons.c \
examples/buttons/info.xpm \
examples/clist/clist.c \
examples/calendar/Makefile \
examples/calendar/calendar.c \
examples/clist/Makefile \
examples/clist/clist.c \
examples/entry/Makefile \
examples/entry/entry.c \
examples/eventbox/Makefile \
@@ -46,16 +53,13 @@ EXTRA_DIST = \
examples/list/list.c \
examples/menu/Makefile \
examples/menu/menu.c \
examples/menu/menufactory.c \
examples/menu/menufactory.h \
examples/menu/mfmain.c \
examples/menu/mfmain.h \
examples/menu/itemfactory.c \
examples/notebook/Makefile \
examples/notebook/notebook.c \
examples/packer/Makefile \
examples/packer/pack.c \
examples/packbox/Makefile \
examples/packbox/packbox.c \
examples/packer/Makefile \
examples/packer/pack.c \
examples/paned/Makefile \
examples/paned/paned.c \
examples/pixmap/Makefile \
@@ -64,6 +68,8 @@ EXTRA_DIST = \
examples/progressbar/progressbar.c \
examples/radiobuttons/Makefile \
examples/radiobuttons/radiobuttons.c \
examples/rangewidgets/Makefile \
examples/rangewidgets/rangewidgets.c \
examples/rulers/Makefile \
examples/rulers/rulers.c \
examples/scribble-simple/Makefile \
@@ -77,14 +83,32 @@ EXTRA_DIST = \
examples/statusbar/statusbar.c \
examples/table/Makefile \
examples/table/table.c \
examples/text/Makefile \
examples/text/text.c \
examples/tictactoe/Makefile \
examples/tictactoe/tictactoe.c \
examples/tictactoe/tictactoe.h \
examples/tictactoe/ttt_test.c \
examples/tree/Makefile \
examples/tree/tree.c \
examples/wheelbarrow/Makefile \
examples/wheelbarrow/wheelbarrow.c \
examples/fixed/fixed.c \
examples/fixed/Makefile \
examples/frame/frame.c \
examples/frame/Makefile \
examples/spinbutton/spinbutton.c \
examples/spinbutton/Makefile \
examples/find-examples.sh
dist-hook: gtk+.spec
if test -e $(srcdir)/INSTALL.in && test -e $(srcdir)/README.in ; then \
CONFIG_FILES="INSTALL:$(srcdir)/INSTALL.in README:$(srcdir)/README.in" \
CONFIG_HEADERS= \
$(SHELL) config.status \
&& cp INSTALL README $(distdir) ; \
fi \
&& cp gtk+.spec $(distdir)
m4datadir = $(datadir)/aclocal
m4data_DATA = gtk.m4

188
NEWS
View File

@@ -1,3 +1,191 @@
Overview of Changes in GTK+ 1.2.6:
* container queue_resize fixes
* gtk[vh]scale: minor fixups
* rename idle to idle_id in testgtk to avoid conflicts with
broken libs
* More consistant naming of gtkrc files
* Added language support: ro, uk
Overview of Changes in GTK+ 1.2.5:
* more GtkCTree and GtkWindow bug fixes.
* more redraw/resize queue fixes, better expose event
discarding code.
* more miscellaneous bugs fixed
* new configure.in option --disable-rebuilds to completely disable
rebuilds of autogenerated sources.
* check for 5.002 now, to avoid failing autogeneration build rules due
to old perl versions.
* fonts (and fontsets) are cached now.
* more autogeneration make rules and dependancy fixups, we should be
save with autogeneration up to make -j12 now ;)
* new window position GTK_WIN_POS_CENTER_ALWAYS, which will recenter the
GtkWindow on every size change.
* major rework of window manager hints handling code, fixed a bunch of
races with the new resizing code.
* the new wm hints and resizing code is absolutely perfect and bug free now,
it only lacks testing ;)
* fixed up various rc style memory prolems.
* gtk_widget_modify_style() now properly changes the style of realized widgets
and references the style passed into it. if people worked around this bug,
this will introduce a slight memory leak in their code.
The code should typically look like:
GtkRcStyle *rc_style = gtk_rc_style_new ();
[...]
gtk_widget_modify_style (widget, rc_style);
gtk_rc_style_unref (rc_style);
* fix problems with positioning menus offscreen.
* GtkText fixes for some crashes and drawing errors.
* Better handling for unexpected window destroys in GDK and GTK+.
This should make it possible to use a GtkPlug and catch the
case where its parent socket is randomly killed.
* FAQ updates.
* FileSelection i18n patches, RadioButton fixups.
* many translation improvements.
* miscellaneous other bugs fixed.
Overview of Changes in GTK+ 1.2.4:
* DnD improvements (drags can be canceled with Esc now).
* suppressed configure event reordering in Gdk.
* rewrite of Gtk's configure event handling.
* major improvements for the object argument system (Elena Devdariani).
* major bugfixes for threading, GtkNotebook, GtkItemFactory, GtkCList and
GtkCTree.
* tutorial/FAQ updates, new file generation.txt on autogenerated sources.
* configure's --with-glib= is "officially" unsupported.
* upgrade to libtool 1.3.3.
* various buglets fixed.
Overview of Changes in GTK+ 1.2.3:
* Upgrade to libtool 1.3
* Check for dgettext (for systems with old versions of GNU Gettext)
* Many bug fixes (see ChangeLog for details)
Overview of Changes in GTK+ 1.2.2:
* Improved Dnd behaviour with Motif applications.
* Bug fixes for the Gtk selection code.
* Minor bug fixes to the Gdk Atom cache and Dnd code (with --display option).
* Bug fixes and leak plugs for the Gdk IM code.
* Added gtk_object_get() facility to retrive object arguments easily.
The var args list expects ("arg-name", &value) pairs.
* Fixed mapping for GdkInputCondition<->GIOCondition, this should fix
problems where closed pipes were no longer signalling GDK_INPUT_READ on
systems with a native poll().
* Some cleanups to GtkLabel's memory allocation code (shouldn't leak memory
anymore).
* We don't attempt to lookup xpm color "None" anymore, this should prevent
eXodus (commercial X windows server) from popping up a color dialog every
time a transparent pixmap is created.
* Fixed bug where Gtk timout/idle handlers would execute without the global
Gdk lock being held.
* Other minor bug fixes.
Overview of Changes in GTK+ 1.2.1:
* Many Bug fixes have been applied to the menu and accelerator code.
* GtkItemFactory can "adopt" foreign menu items now and manage their
accelerator installation. This is often required to get GtkItemFactory
like accelerator propagation between different windows with the same
menu heirarchy and for centralized parsing and saving of accelerators.
* GtkCList/GtkCTree buttons should always display correctly now.
* Miscellaneous other bug fixes.
What's New in GTK+ 1.2.0 (since 1.0.x):
* New widgets: GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree,
GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket
* Many new features and robustness for existing widgets
* Theme support
* New DND implementation
* Internationalization of standard dialogs
* New key binding system
* Tearoff menus and menu accelerators
* Wide character support for entry and text
* Resizing code has been overhauled
* Queued redraws of partial areas
* Far better support for object arguments
* Speed optimizations
* Runtime loading of dynamic modules
* Support for GLib log domains
* Tutorial improvements
* A bug fix or two
Overview of Changes in GTK+ 1.1.16:
* Major fixes and improvements for handlebox
* A change to the way widget->requisition works. Now,
widget->requisition is always what the widget requested,
unmodified by the usize. See Changes-1.2.txt for details.
This correct various bugs with gtk_widget_set_usize().
* Fixes for XIM on X11R5 systems
* Don't allow cut-and-paste of text in password-style entries
* --enable-debug is now on by default for the development releaes.
(When compiling for "production", use --enable-debug=minimum)
* Handle systems where Helvetica is not present more gracefully
* Fixes for memory leaks
* CList and CTree fixes
* Bug fixes for drawing problems.
* Miscellaneous bug fixes to GtkLabel, GtkCList, GtkCTree,
GtkColorsel, Focusing, DND
* Tutorial improvements
Overview of Changes in GTK+ 1.1.15:
* Tutorial Updates
* Added --libs gthread to gtk-config
* Bug fixes
What is new in GTK+ 1.1.14:
* Additions to docs/Changes-1.2.txt
* Just warn when loading theme engine fails
* CLAMP GtkScale digits to a meaningful range
* GTK_LOCALDIR is now defined in a better fashion
* New functions (feature freeze, we know...):
gtk_menu_set_title()
gtk_toggle_button_get_active()
* Some locale fixups in gtkrc code
* Fixes to make gtk_radio_button_set_group() keep only
one radio button in the group active
* Foreign windows are now always treated as viewable; this fixes
a problem where updating didn't occure properly in GtkPlug
* DND fixes for 64 bit architectures, and for specifying operations
with modifier keys.
* Major revisions to GtkLayout: avoid having to create window
for NO_WINDOW children, adjust allocations of children as
scrolled so queued draws work, and a resize is queued instead
of allocating directly in a put() or move()
What is new in GTK+ 1.1.13:
* Dnd and selection bug fixes and memory purification.
* Widget sensitivity fixups.
* Tooltips windows are now named "gtk-tooltips" so rc file rules
can match tooltips windows. Fixed interaction of tooltips and NO_WINDOW
widgets.
* Spin buttons now update their values upon value retrival.
* Overhaul of the resizing vs. redrawing logic to reduce redrawing needs
a lot. Gtk makes full use of the draw_area coalescing code now, which
got minorly improved as well.
* Containers map their Gdk windows after their children now to reduce
expose event generation.
* Gdk event queue fixups, this solves the double-click problems people were
recently having.
* Account for the fact that GSource's are only properly reentrant from
within dispatch(), thus we don't do Gdk event processing from within
check() or prepare() anymore.
* Rc files feature a bg_pixmap value of "<none>" now.
* Improved session management support in Gdk.
* Automatic disabling of NLS if no gettext is found should work now.
* Removed deprecated functions, docs/Changes-1.2.txt gives an overview.
* Gtk+ development now requires GNU autoconf 2.13, GNU automake 1.4
and GNU libtool 1.2d.
* More bug fixes all over the place.
What is new in GTK+ 1.1.12:
* Korean translation added

38
README
View File

@@ -1,7 +1,7 @@
General Information
===================
This is GTK+ version 1.1.12. GTK+, which stands for the Gimp ToolKit,
This is GTK+ version 1.2.7. GTK+, which stands for the Gimp ToolKit,
is a library for creating graphical user interfaces for the X Window
System. It is designed to be small, efficient, and flexible. GTK+ is
written in C with a very object-oriented approach.
@@ -26,13 +26,23 @@ See the file 'INSTALL'
How to report bugs
==================
To report a bug, send mail either to gtk-list, as mentioned
above, or to gtk-bugs@gtk.org. If you send mail to gtk-list, you
must be subscribed yourself.
Bugs should be reported to the GNOME bug tracking
system. (http://bugs.gnome.org). To report a problem
about GTK+, send mail to submit@bugs.gnome.org.
In the mail include:
The subject of the mail should describe your problem.
In the body of the mail, you should first include
a "pseudo-header" that gives the package and
version number. This should be separated by a blank
line from the actual headers.
* The version of GTK
Package: gtk+
Version: 1.2.7
[ Please substitute 1.2.7 with the version of GTK+ that
you have installed ]
Then describe the bug. Include:
* Information about your system. For instance:
@@ -64,6 +74,22 @@ In the mail include:
is produced running the test program with the --sync command
line option.
An example of a bug report:
====
To: submit@bugs.gnome.org
From: yourname@your.address.org
Subject: handlebox test in testgtk is misnamed.
Package: gtk+
Version: 1.2.7
When I run gtk/testgtk, the button "handle box"
is misnamed. There are multiple handle boxes in
the demo, so it should be "handle boxes", to
be like "buttons" or "check buttons".
===
Patches
=======

101
README.in Normal file
View File

@@ -0,0 +1,101 @@
General Information
===================
This is GTK+ version @GTK_VERSION@. GTK+, which stands for the Gimp ToolKit,
is a library for creating graphical user interfaces for the X Window
System. It is designed to be small, efficient, and flexible. GTK+ is
written in C with a very object-oriented approach.
The official ftp site is:
ftp://ftp.gtk.org/pub/gtk
The official web site is:
http://www.gtk.org/
A mailing list is located at:
gtk-list@redhat.com
To subscribe: mail -s subscribe gtk-list-request@redhat.com < /dev/null
(Send mail to gtk-list-request@redhat.com with the subject "subscribe")
Installation
============
See the file 'INSTALL'
How to report bugs
==================
Bugs should be reported to the GNOME bug tracking
system. (http://bugs.gnome.org). To report a problem
about GTK+, send mail to submit@bugs.gnome.org.
The subject of the mail should describe your problem.
In the body of the mail, you should first include
a "pseudo-header" that gives the package and
version number. This should be separated by a blank
line from the actual headers.
Package: gtk+
Version: @GTK_VERSION@
[ Please substitute @GTK_VERSION@ with the version of GTK+ that
you have installed ]
Then describe the bug. Include:
* Information about your system. For instance:
- What operating system and version
- What version of X
- For Linux, what version of the C library
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with the testgtk program that is built
in the gtk/ subdirectory, that will be most convenient. Otherwise,
please include a short test program that exhibits the behavior.
As a last resort, you can also provide a pointer to a larger piece
of software that can be downloaded.
(Bugs that can be reproduced within the GIMP are almost as good
as bugs that can be reproduced in testgtk. If you are reporting a
bug found with the GIMP, please include the version number of the GIMP
you are using)
* If the bug was a crash, the exact text that was printed out
when the crash occured.
* Further information such as stack traces may be useful, but
is not necessary. If you do send a stack trace, and the error
is an X error, it will be more useful if the stacktrace
is produced running the test program with the --sync command
line option.
An example of a bug report:
====
To: submit@bugs.gnome.org
From: yourname@your.address.org
Subject: handlebox test in testgtk is misnamed.
Package: gtk+
Version: @GTK_VERSION@
When I run gtk/testgtk, the button "handle box"
is misnamed. There are multiple handle boxes in
the demo, so it should be "handle boxes", to
be like "buttons" or "check buttons".
===
Patches
=======
Patches can be uploaded to the incoming/ directory on
ftp.gtk.org. Please follow the instructions there, and include
your name and email address in the README file.
If the patch fixes a bug, it is usually a good idea to include
all the information described in "How to Report Bugs".

154
README.nanox Normal file
View File

@@ -0,0 +1,154 @@
Gtk port to nano-X
STATUS
Once upon a time I got a few apps working, then started merging
the new features added by Owen (32 bit sizes for windows and buffering).
Since then I haven't found the time to work on it:-/
TODO
Finish internal window manager abstraction or add proper support in nano-X.
Fix event polling.
Implement GdkImage, GdkRgb stuff.
Put generic region code in generic gdk and/or use the region code from nano-X.
Fix ugly automake stuff for make dist.
TODO in nano-X
We need to be able to clip and change the background of windows at runtime
for apps to not look so ugly!
Fonts: wait for better nano-X font implementation.
Properties on windows.
If you want to work on this port or get additional informnation, get in
touch with me.
To get the beast to compile you also need to apply the patch below
(any auto* wizard here?): the issue of having two gtk libraries in the
system needs to be addressed too, maybe use libgtk-x11-1.4.so and
libgtk-nanox-1.4.so ...
Paolo Molaro
lupus@linuxcare.com
Index: acconfig.h
===================================================================
RCS file: /cvs/gnome/gtk+/acconfig.h,v
retrieving revision 1.16
diff -u -r1.16 acconfig.h
--- acconfig.h 1999/03/20 00:52:29 1.16
+++ acconfig.h 2000/05/06 11:52:38
@@ -49,6 +49,8 @@
/* Most machines will be happy with int or void. IRIX requires '...' */
#undef SIGNAL_ARG_TYPE
+#undef USE_NANOX
+
/* #undef PACKAGE */
/* #undef VERSION */
Index: configure.in
===================================================================
RCS file: /cvs/gnome/gtk+/configure.in,v
retrieving revision 1.142
diff -u -r1.142 configure.in
--- configure.in 2000/05/04 00:29:46 1.142
+++ configure.in 2000/05/06 11:52:38
@@ -99,6 +99,8 @@
AC_ARG_WITH(locale, [ --with-locale=LOCALE locale name you want to use ])
AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ])
+AC_ARG_ENABLE(nanox, [ --enable-nanox use nano-X instead of X11 [default=no]],
+ , enable_nanox="no")
if test "x$enable_debug" = "xyes"; then
test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
@@ -322,6 +324,8 @@
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"
+if text "x$enable_nanox" = "xno"; then
+
CFLAGS="$CFLAGS $X_CFLAGS"
LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
@@ -465,6 +469,13 @@
GTK_LOCALE_FLAGS="-DX_LOCALE"
fi
+else
+AC_CHECK_LIB(nano-X, GrOpen)
+LIBS="-lnano-X $LIBS"
+ AC_DEFINE(USE_NANOX)
+AM_CONDITIONAL(USE_NANOX, test x$enable_nanox = xyes)
+fi # if enable_nanox
+
# Checks for header files.
AC_HEADER_STDC
@@ -602,8 +613,13 @@
esac
],[
# Currently we always use X11 on those systems where we run configure...
+if test x$enable_nanox = xno; then
gdk_windowing='
#define GDK_WINDOWING_X11'
+else
+gdk_windowing='
+#define GDK_WINDOWING_NANOX'
+fi
if test x$gdk_wchar_h = xyes; then
gdk_wc='
#define GDK_HAVE_WCHAR_H 1'
@@ -629,6 +645,7 @@
docs/Makefile
gdk/Makefile
gdk/x11/Makefile
+gdk/nanox/Makefile
gdk/win32/Makefile
gtk/Makefile
gtk/gtkfeatures.h
Index: gdk/Makefile.am
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/Makefile.am,v
retrieving revision 1.41
diff -u -r1.41 Makefile.am
--- gdk/Makefile.am 2000/04/05 04:11:10 1.41
+++ gdk/Makefile.am 2000/05/06 11:52:38
@@ -1,6 +1,10 @@
## Makefile.am for gtk+/gdk
+if USE_NANOX
+SUBDIRS=win32 nanox
+else
SUBDIRS=x11 win32
+endif
EXTRA_DIST = \
gdkconfig.h.win32 \
@@ -36,8 +40,13 @@
-lm \
@STRIP_END@
+if USE_NANOX
libgdk_la_LIBADD = \
+ nanox/libgdk-nanox.la
+else
+libgdk_la_LIBADD = \
x11/libgdk-x11.la
+endif
#
# setup source file variables
@@ -138,3 +147,8 @@
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
+
+noinst_PROGRAMS = simple
+simple_DEPENDENCIES = libgdk.la simple.c
+simple_LDADD = libgdk.la
+

45
README.win32 Normal file
View File

@@ -0,0 +1,45 @@
The Win32 port of GTk+ is a work in progress, and not as stable or
correct as the Unix/X11 version. For more information about the Win32
port, see http://www.gimp.org/tml/gimp/win32/ or
http://www.iki.fi/tml/gimp/win32/ .
The current (CVS) version of the Win32 backend is *not* as stable as it
was before the no-flicker branch was merged. A zipfile with that
version is available from http://www.gimp.org/win32/. That should be
use by "production" code until this CVS version is usable. (But note,
the Win32 backend has never been claimed to be "production quality".)
To build GTk+ on Win32, you need either the Microsoft compiler and
tools, or gcc-2.95 or later. The mingw setup of gcc is preferred, but
you can run gcc also under cygwin-b20.1 or later. Compile in
gdk\win32, gdk and gtk with `nmake -f makefile.msc` or `make -f
makefile.cygwin`. The name makefile.cygwin is misleading, it should
really be called makefile.mingw.
See the README.win32 file in the GLib distribution for instructions
how to build with gcc.
To use GTk+ on Win32, you also need either of the above mentioned
compilers. Other compilers might work, but don't count on it. The
same instructions on how to set up a correct version of gcc should
also be followed if you want to build applications that use GTk+ with
gcc.
The tablet support uses the Wintab API. The Wintab development kit can
be downloaded from http://www.pointing.com. If you don't care for
that, undefine HAVE_WINTAB in config.h.win32 and remove references to
the wntab32x library from the makefile before building.
GTk+ wants to be built with the GNU "intl" library for
internationalisation (i18n). Get the version ported to Win32 (not a
very big deal) from tml's web site mentioned above. We build the
"intl" library as a DLL called gnu-intl.dll (the "gnu" prefix is used
to reduce name clash risks). If you don't want any i18n stuff,
undefine ENABLE_NLS, HAVE_GETTEXT and HAVE_LIBINTL in the
config.h.win32 file, and remove references to the gnu-intl library
from the makefiles.
Note that while the GNU gettext package is under the GPL, the "intl"
part of it which is distributed with GNU libc is under the LGPL (like
GTk+ or GLib). We want the LGPL one, even if they are the same, more
or less.

96
TODO
View File

@@ -1,68 +1,25 @@
For 1.2.0 release:
- remove deprecated functions from *.[hc] files.
- finish composite child stuff.
- implement constructor functionality for all widgets.
Bugs:
* Change bitfields to guints from enums, or vice versa?
* MappingNotify events produce warnings.
Outstanding items:
* the type system (gtktypeutils.c) has to handle creations of fundamental
types seperatedly from derived types, so we don't screw foreign
fundamental types with an already extensively increased seqno.
* A filter function which destroys the GDK window it is filtering
events on is bad news.
Additions:
* focus handling for GtkOptionMenu (needs the previous)
* implement gtk_default_draw_oval and other missing things in gtkstyle.c.
* Lists should scroll to center the recently selected item if it isn't
visible.
* enforce invariants on *_RESIZE* and *_REDRAW* flags.
* GtkToolTips:
allocate GtkTooltipsData from memchunks
look into incorporation of outdated/gtk-dairiki-971208-[01].patch.gz
* GtkToolTips: allocate GtkTooltipsData from memchunks
* Make all widget attributes configurable after the widget is created (timj).
* Widgets dervied from GtkButton need to be able to override
GtkButtonClass.paint. e.g. redrawing of GtkToggleButton with CAN_DEFAULT
is messed up otheriwse. This does in fact not only apply to (toggle)buttons,
we should introduce a common paint member for the GtkWidgetClass.
* Radio buttons need to display CAN/HAS_DEFAULT correctly.
* Radio buttons need to display CAN/HAS_DEFAULT correctly, if draw_inidicator
is TRUE. (Radio buttons do not need to CAN_DEFAULT! OWT)
* Seperate GtkObject, type and signaling system from Gdk dependancies,
by moving them into a seperate libgtkobj.
* move *_input_add (wrappers for select(2)) mechanism into glib.
* gdk_expose_compress: ala-Xt, this would really help for opaque moves and
such
* Entry should have a password mode (and it should show stars
for user feedback).
* Entry should allow set_usize to work better, and should compute
a different width when a maximum length is used.
* More dialogs: Print, GtkFontSelector, maybe others...
* More dialogs: Print, maybe others...
* make the gtk_main callbacks consistent in their add/remove behaviour.
* More work on Documentation
* Check return values on all calls to XIC[Get/Set]Values
* Rewrite the interface to the i18n stuff so GTK widgets don't need to
retrieve X values, and so they don't have to know the value of the
XNxxx character constants.
* The "--geometry" option should be supported
- Having gdk_init() parse the geometry option. (putting it into
@@ -85,58 +42,32 @@ Additions:
( You'd have to extend gdk_window_set_hints to accept the
window gravity option to get it right. )
? Allow moving the separator for paned widgets by dragging
* Allow moving the separator for paned widgets by dragging
it directly instead of using the handle.
? Mark public use of gtk_tree_remove_item as deprecated - it should be used
as:
gtk_container_remove (GTK_CONTAINER(tree), widget);
* Standardize that all strings should be passed as gchar *, not
guchar *. But what about non-string data? (gdk_property_change,
gtk_selection_data_set) X makes these sort of things guchar...
* Check into XAddConnectionWatch - is this needed for XIM?
* Places where a _full variant is needed:
gtk_clist_set_row_data
gtk_init_add
gtk_menu_popup
gtk_toolbar_prepend_element
gtk_toolbar_insert_element
gtk_widget_dnd_data_set (should be guchar * with a copy?
shouldn't be there at all...)
* Try to rationally deal with someone else deleting one of our
windows??? This would mean keeping track of our window heirarchy
ourselves, for one thing, and will never be safe, because of
race conditions.
* If a window spontaneously resizes itself N times before any
ConfigureNotify events are received, then due to the interaction
of the ConfigureNotify compression code in GDK and the resize
count used for the window, the window will be size_allocated
the next N-1 times it is moved.
Fix: Only send GDK_EVENT_CONFIGURE when the window is resized,
create a new event type for toplevel motion. (GDK_EVENT_REPOSITION?)
and eliminate the resize count in GtkWindow.
* Generic ScrolledWindow interface, which provide automatic scrollbar
capability to Viewport, Text, and CList widgets.
* GTK_POLICY_NEVER for scrolled windows.
* Consider caching more state in GdkWindowPrivate. Currently,
every widget realization involves a XGetGeometry and a
XGetWindowAttributes. And every GdkWindow destruction
involves a XQueryTree.
* Should all the default handlers really return FALSE? This can
cause confusing presses to be sent to containers that actually
want to get events on themselves.
* The menu code should skip separators during keyboard navigation,
whether they are sensitive or insensitive.
* OwnerButtonPressGrab needs to go!
Text/Edit widget:
Bugs:
@@ -146,7 +77,7 @@ Text/Edit widget:
Improvements:
- Unify the key binding support in some fashion between the
Entry and Text widget widgets (???)
Entry and Text widget widgets, use GtkBindings for this.
- Figure out a way not to recompute the geometry on insertions/deletions
which are large, but not a significant fraction of the
@@ -254,7 +185,7 @@ DND
- Use a cursor instead of an ICON when over Motif windows,
to get rid of the current junk that Motif leaves because
of it's XCopyArea stupidity for doing highlighting.
of its XCopyArea stupidity for doing highlighting.
- Add a GTK_DRAG_VERIFY target flag and a "drag_data_verify"
signal so that apps can easily check if a, say,
@@ -267,4 +198,3 @@ DND
- Send synthetic motion events on structure changes so
drag_enter/leave get sent properly. (See the popup
in testdnd)

739
TODO.xml Normal file
View File

@@ -0,0 +1,739 @@
<!-- This is used to generate the online TODO list for GTK+ using
the script docs/make-todo. Whenever a change to this file is
committed to CVS,the file is run through make-todo and the online
version updated. If you modify this file, you should check for
parse errors by running:
$ docs/make-todo TODO.xml > /dev/null
before committing, or you may screw up the online version -->
<todo logourl="gtk-logo-rgb.gif">
<title>GTK+ TODO list</title>
<section>
<title>GDK</title>
<entry size="medium" status="70%" target="1.4">
<title>Add backing store support</title>
<description>
<p>
GTK+'s drawing model involves clearing to a background, and
then drawing widgets on top of this. Without having
backing-store support, this results in flickering in various
situations. Backing store cannot be added widget-by-widget,
because the drawing in a particular window is not confined
to a single widget. Instead it needs to be added per GDK
window.
</p>
<p>
The way this is done is by having
<tt>gdk_window_begin_paint()</tt>
and <tt>gdk_window_end_paint()</tt> functions that
redirect all drawing to a particular window to an offscreen
pixmap, and then copy that offscreen pixmap back onto the
screen when the paint operation is done. The implementation
of this is mostly complete in the <tt>gtk-no-flicker</tt> branch of
GTK+.
</p>
</description>
<url>http://www.gtk.org/~otaylor/gtk/1.4/gdk-drawing.html</url>
<contact>Owen Taylor &lt;otaylor@redhat.com&gt;</contact>
</entry>
<entry size="medium" status="70%" target="1.4">
<title>32 Bit Coordinates</title>
<description>
<p>
GTK+-1.2 and earlier share X's limitation on the
size of coordinates and restrict all dimensions
to 16 bit quantities. By clever use of X it is
possible to lift this restriction and present a
full 32-bit space to the user.
</p>
<p>
There are some difficulties with performance in this
approach - mostly because scrolling can involve mapping and
unmapping lots of widgets, but in general, current
trials in this area seem to work pretty well.
</p>
</description>
<url>http://www.gtk.org/~otaylor/gtk/1.4/gdk-drawing.html</url>
<contact>Owen Taylor &lt;otaylor@redhat.com&gt;</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Customizable double-click timeout</title>
<description>
<p>
The current fixed double-click timeout in GTK+
is too small for some users. This needs to be
customizable
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
<bugs>#3958</bugs>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Make color handling more convenient</title>
<description>
<p>
Add some color convenience functions; such as a way to get an
allocated GdkColor from GdkRGB, and export functions from gtkstyle.c
that lighten/darken a given color, and set a color from HSV in
addition to RGB. Also, consider having static variables that contain
preallocated common colors (gdk_blue, gdk_red, etc.), the problem
being colormap issues.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Cursors</title>
<description>
<p>
Two tasks: 1) move the cursors in the cursor font that people actually
care about to the top of the gdkcursor.h header file, and put a nice
list of the 15 cursors people actually care about in the docs 2) if
the cursor font lacks some commonly-useful cursors (like magnifying
glass), add these cursors to gdkcursor.h and then emulate them in
gdk_cursor_new by transparently creating the cursor from a bitmap.
The list of Qt cursors is worth http://doc.trolltech.com/qcursor.html
looking at for this task.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="1.4">
<title>Make GdkRGB work on any visual</title>
<description>
<p>
GdkRGB should be able to render to an arbitrary visual
(i.e. the visual shouldn't be fixed at gdk_rgb_init()
time). This will break gdk_rgb_gc_set_foreground() and
friends, though.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
</section> <!-- GDK -->
<section>
<title>Internationalization</title>
<entry size="big" status="70%" target="1.4">
<title>Integrate Pango</title>
<description>
<p>
The purpose of the Pango project is to provide a system for
layout and rendering of internationalized text. It handles
most of the issues necessary to
</p>
</description>
<url>http://www.pango.org</url>
<contact>gtk-i18n-list@redhat.com</contact>
</entry>
<entry size="medium" status="80%" target="1.4">
<title>Switch to using UTF-8</title>
<description>
<p>
This is closely related to Pango integration. Pango deals
with all strings in terms of UTF-8; by switching GTK+ over
to UTF-8 we make it considerably simpler for developers to
support multiple languages properly while still retaining
a large degree of compatibility with existing programs.
</p>
<p>
Some work has already been done on this as part of the Win32
port, since the Win32 port is currently using UTF-8 for all
strings. In general, this should be an easy job; the hardest
parts are places like GtkFileSelection, cut and paste, and
input method support where there is interaction between GTK+
and the operating system.
</p>
</description>
<contact>gtk-i18n-list@redhat.com</contact>
</entry>
<entry size="big" status="40%" target="1.4">
<title>Rewrite Input Method Support</title>
<description>
<p>
Support for Input Methods is GTK+-1.2 is done via XIM, with
supported styles being over-the-spot and the root-window
styles. However, the over-the-spot style is not going to
work well with the Pango integration, since it relies on the
text rendering in the program being done in the standard
Xlib style, so it will be necessary to also support
on-the-spot input. On-the-spot input is done by supplying a
set of callbacks that are invoked by the input methods.
</p>
<p>
GTK+-1.4 will have a new system with loadable input method
modules. These modules can either be implemented using XIM,
or written from scratch.
</p>
</description>
<contact>gtk-i18n-list@redhat.com</contact>
</entry>
</section> <!-- i18n -->
<section>
<title>GTK+ Core</title>
<entry size="big" status="5%" target="1.4">
<title>GLib based object and type system</title>
<description>
<p>
The GTK+ object system is already in use in quite a few different
non-GUI applications; it would be desirable for these uses
to have the object and type systems separated from the GUI portions
of GTK+ and be generalized for non-GUI usage.
</p>
</description>
<contact>Tim Janik &lt;timj@gtk.org&gt;</contact>
</entry>
<entry size="big" status="1%" target="1.4">
<title>Overall callback improvements</title>
<description>
<p>
The GTK+ type and signal systems need significant improvements to
allow signal creation with default handlers from language bindings
and to aid language bindings in deriving new objects.
One aspect of this is the Closure support, recently suggested by
Karl Nelson &lt;kenelson@ece.ucdavis.edu&gt;, but this also
requires a GLib based type and parameter system (ties in with
"GLib based object and type system").
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="big" status="0%" target="1.4">
<title>State change notification</title>
<description>
<p>
GTK+ objects emit various types of signals, some to perform
arbitrary actions, some to allow customization from user code,
and some signals are emitted to notify of certain changes
of an object. For the latter, what really is required is a
gneneric signal that can be used to monitor *any* kind of object
changes. For that, all object changes need to be routed through
a central point (otherwise the signal emissions are spread all
over the object implementation), i.e. an object argument setter.
The state change notification signal doesn't need to be emitted
syncronously, in fact, it's probably most effective to always
emit this asynchronously, so subsequent changes are accumulated.
</p>
</description>
<contact>Tim Janik &lt;timj@gtk.org&gt;</contact>
</entry>
<entry size="big" status="5%" target="1.4">
<title>Widget as sensitivity/grab state machine</title>
<description>
<p>
Maintenance of pointer and keybnoard grabs is currently very
tedious and error-prone, most widget's cook up their own stuff
in this regard.
By moving the general concept of "Grabs" to the GTK+ level as
a widget state, and providing a new signal for alterations of
a widget's state ("visible", "visible+insensitive",
"visible+grab", "hidden", "hidden+insensitive", etc.), things
can be unified and more stabelize. A couple of bugs, such as
insensitive widgets still holding a grab, or buttons that
still think they are depressed when hidden, will be squeezed
automatically with that.
</p>
</description>
<contact>Tim Janik &lt;timj@gtk.org&gt;</contact>
</entry>
<entry size="big" status="0%" target="1.4">
<title>Allow argument customization</title>
<description>
<p>
Many types of object arguments (expander style in the CList,
default padding in button boxes, etc), conceptually go with
the theme, or as user preferences; they should not be set by
a particular program.
</p>
<p>
There needs to be a mechanism for themes to be able to
control these arguments from the RC file.
</p>
</description>
</entry>
<entry size="medium" status="0%" target="1.4">
<title>Allow global customization</title>
<description>
<p>
There are a number of global parameters in GTK+ and GDK that should be
customizable by the user, such as the double-click timeout,
or whether widgets should be backing-stored by default.
</p>
<p>
If we had argument customization from an RC file, it might
be possible to do this simply with a global object with
arguments for the various global parameters that was
customized in the same fashion as object arguments.
</p>
</description>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Gtk+ Modules installation directory</title>
<description>
<p>
Gtk+ needs to support an extra lib/ directory, to search
for dynamically loadable modules, it also needs to support
an environment variable to specify module search paths.
This has quite some cross-platform issues with the GModule
code (especially on AIX).
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Convenient widget setup</title>
<description>
<p>
Make it simpler to set all the basic attributes of a widget. Might
want set_tooltip(), set_accel(), set_color(FOREGROUND, color),
set_min_size() (usize does this, but needs a rename), set_whatsthis(),
etc. set_accel() may not work for all widgets, may need a convenience
API for button and label accelerators specifically.
</p>
<p>
The idea is that it should be easy, out of the box, to set up a widget
with all the nice touches and features the widget really should
have. Users shouldn't need to do their own convenience functions for
this.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="> 1.4">
<title>Make selections/clipboard more convenient</title>
<description>
<p>
Make GtkSelectionData more like the MIME blobs in Swing and Qt.
Consider a GtkClipboard object to simplify cut-and-paste handling.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="50%" target="1.4">
<title>Stock label/icon system</title>
<description>
<p>
A system like GnomeStock for getting a standard labels/icons
for menus and toolbars. Should be extensible by themes, and
by libgnomeui. Some work already done on this.
</p>
</description>
<contact>hp@redhat.com</contact>
</entry>
<entry size="big" status="0%" target="> 1.4">
<title>Session Management</title>
<description>
<p>
Look in to session management. Consider whether to use
X11R6 SM, or some custom spec shared with KDE. Create
GTK+ API for this.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="big" status="0%" target="> 1.4">
<title>Online help enhancements</title>
<description>
<p>
Look at a small "What's This" popup widget,
and a What's This system in general (this part
could maybe be done for 1.4). A more difficult, probably
a post-1.4 task, is to integrate a very simple little
help browser gizmo into GTK.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="1.4">
<title>GUI-editable means of user configuration</title>
<description>
<p>
Need to be able to set double click time, whether cursors
blink, etc., from a control panel type of deal.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
</section> <!-- Core -->
<section>
<title>GTK+ Widgets</title>
<entry size="small" status="50%" target="1.4">
<title>Make GtkFrame use a label</title>
<description>
<p>
The title of a frame should simply be another child widget
which, by default, holds a label widget. This will important
with Pango where proper text behavior will be more complex to
implement, but is also useful for certain user-interface
designs. (It can be useful, for example, to put a checkbutton
in that slot.)
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="big" status="75%" target="1.4">
<title>Replace GtkText Widget</title>
<description>
<p>
The GtkText widget is badly in need of replacement, since it
is buggy and insufficiently feature rich. This is being done
using Havoc Pennington's port of the Tk Text widget.
</p>
<p>
As part of this job <a href="http://www.pango.org">Pango</a>
support is being added to the replacement. The structure of
the Tk text widget port is suited to this as it works
paragraph-by-paragraph, and Pango works at a sub-paragraph
scale. The main remaining tasks here are to implement
incremental reflow to make performance acceptable and to
implement embedded pixmaps and widgets.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Improve Radio/Checkbutton Look</title>
<description>
<p>
The default look for the radio and checkbuttons is both
unattractive and not friendly to the user . Motif did not
get this one right, and we should not keep on following the
Motif look. The right thing here is probably to copy the
Windows appearance for these controls fairly closely. This
will fit in with well with the rest of the GTK+ look.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Improve Submenu Navigation</title>
<description>
<p>
Navigating through a deep menu tree in GTK+ is currently
quite tricky, because as soon as one leaves a menu item,
the submenu disappears. The way that the Macintosh is
reputed to handle this is that to pop down the current
submenu, you have to leave the triangle defined by the
upper left hand corner of the menu item and right
side of the submenu.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4 ?">
<title>Improve Spinbutton Look</title>
<description>
<p>
Spinbuttons currently appear to have lumpy boundaries,
because sides of the arrows aren't at an angle that
meshes well with the pixel grid. However, fixing this
would require making the spinbuttons narrower and
harder to hit. This points out a general problem with
the spinbutton (and the arrows on the scrollbars) - the
target area for clicks actually the bounding box of the
arrows, but the user thinks that they must click on the
arrows themselves. It would probably be more friendly
to use a square button with an arrow drawn on top instead
of a arrow-shaped button, the approach taken by most other
windowing systems.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="big" status="90%" target="1.4">
<title>Supply horizontable/vertical wrapping boxes</title>
<description>
<p>
An often requested feature are wrapping containers, at this
point, gimp's development version already uses such widgets:
horizontable/vertical wrap boxes, that need to go into 1.4
proper at some point.
</p>
</description>
<contact>Tim Janik &lt;timj@gtk.org&gt;</contact>
</entry>
<entry size="medium" status="90%" target="1.4">
<title>Improved generic combo support</title>
<description>
<p>
Gtk+'s combo box has several drawbacks in design and
implementation. An new attempt at providing the combo box
functionality with improved flexibility has been made with
the GtkClueHunter widget, sitting in the CVS module "gle".
</p>
</description>
<contact>Tim Janik &lt;timj@gtk.org&gt;</contact>
</entry>
<entry size="big" status="0%" target="> 1.4">
<title>Add unified set of List/Tree/Grid widgets</title>
<description>
<p>
Currently, GTK+ has a large number of list and tree widgets
(GtkList, GtkTree, GtkCList, GtkCTree), none of which are
ideal. The GtkList and GtkTree widgets perform badly on large
number of items. (GtkTree widget is also quite buggy.) GtkCList
and GtkCTree mostly solve the size problem, but are quite
complex and, despite that, not very flexible. They are limited to
displaying pixmaps and text, and can neither support arbitrary
widgets nor custom drawing functions.
</p>
<p>
In addition to list and tree widgets, a closely related need
is a sheet widget that displays a (possibly editable) 2-D grid.
It would be desirable to have a complete set of widgets that
could be presented as the one-true-solution for these needs.
Model/View techniques could be used effectively to increase
both the simplicity and power of the interfaces.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>GtkPixbuf</title>
<description>
<p>
gdk-pixbuf is moving to become a GTK+ dependency, a new image-display
widget is thus needed.
</p>
</description>
<contact>hp@redhat.com</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Attempt to fix GtkStatusbar</title>
<description>
<p>
GtkStatusbar is too inconvenient to use.
The only non-breakage-inducing fix we could
come up with is to permit 0 as a context ID, so you
don't have to use gtk_statusbar_get_context_id().
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="95%" target="1.4">
<title>Decruft GtkProgress, GtkProgressbar</title>
<description>
<p>UPDATE: this is done, just need to apply the patch.
</p>
<p>
This interface is just a disaster of overcomplexity;
it should pretty much just be set_percentage(),
pulse() (to move during activity mode), and set_text().
There's no reason that there are two objects, should
just be one interface. Almost all the functions
that currently exist should be deprecated.
</p>
</description>
<contact>hp@redhat.com</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Entry validation hooks</title>
<description>
<p>
Simple hooks for validation in a GtkEntry. Pretty much just a
"validate" callback which takes a string (current entry contents) and
returns either VALID, INVALID, or COULDBEVALID. Then the
GtkEntry calls this function if it's set, and does the appropriate
UI things. GTK should come with validators for int and float,
see GtkSpinButton where these are already implemented.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="big" status="0%" target="> 1.4">
<title>pseudo-MDI Widget</title>
<description>
<p>
Add a widget that lets you rearrange various views (similar to many
IDEs, like Visual SlickEdit or JBuilder). Basically there should be a
central slot and 4 slots around the sides; each slot holds one or more
views. If two views are dropped in the same slot, then a notebook is
created displaying both views. If a view is dropped outside the
application window, it becomes a standalone window. It should be
possible to restrict whether a view can be dropped on the sides,
horizontal/vertical sides only, in the central content area, or in
any of those places.
</p>
<p>
(Havoc has a proposed interface for this, mail hp@redhat.com)
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="> 1.4">
<title>Icon List Widget</title>
<description>
<p>
A simple icon list widget, suitable for creating a file selector or
the like.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="> 1.4">
<title>Dock widget</title>
<description>
<p>
Add a widget like GnomeDock (perhaps based on GnomeDock)
that allows people to put rearrangeable toolbars, menubars, etc.
around a central content area. The widget should have hooks for
saving the current positions of the various docked bars.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="big" status="0%" target="> 1.4">
<title>Canvas widget</title>
<description>
<p>
Figure out how to get GnomeCanvas or a derived work into GTK+ itself.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="1.4">
<title>Menu scroll</title>
<description>
<p>
When menus are bigger than the screen, allow scrolling
as on the Mac.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="1.4">
<title>Toolbar/menubar wrap</title>
<description>
<p>
When toolbars and menubars are too wide, do some sort of
wrapping or drop-down deal. (See Windows/Mac apps for examples.)
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Blink cursor in GtkEntry</title>
<description>
<p>
Make the cursor optionally blink in GtkEntry. Beware, the entry code
is somewhat in flux; mail Owen and ask.
</p>
</description>
<contact>otaylor@redhat.com</contact>
</entry>
<entry size="small" status="100%" target="1.4">
<title>Don't highlight first menu item when menus come up</title>
<description>
<p>
Keep GtkMenu from prelighting the first menu item.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="95%" target="1.4">
<title>Integrate new color selector</title>
<description>
<p>
There's a new color selector in CVS (module gnome-colorsel),
it needs to be folded in to GTK and any remaining issues resolved.
(This new selector is API-compatible with the old one, and
still called GtkColorSelector).
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="medium" status="0%" target="1.4">
<title>Write new font selector</title>
<description>
<p>
Pango introduces a new font handling system,
replacing the XLFD system. Need a font selector for this.
The XLFD selector should probably remain, for apps where
it makes sense (like gnome-terminal probably).
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Stack Widget</title>
<description>
<p>
Jonathan has a widget like a tabless/frameless notebook, used for
something like the GNOME control center where you want to toggle which
widget is visible to the user. Needs to be cleaned up and considered
for GTK.
</p>
</description>
<contact>gtk-devel-list@gnome.org, jrb@redhat.com</contact>
</entry>
<entry size="small" status="0%" target="1.4">
<title>Clean up GtkNotebook</title>
<description>
<p>
GtkNotebook currently breaks GTK invariants about
mapping/visibility/etc., needs fixing.
</p>
</description>
<contact>gtk-devel-list@gnome.org</contact>
</entry>
</section> <!-- GTK+ -->
</todo>

View File

@@ -19,22 +19,25 @@
#undef GTK_COMPILED_WITH_DEBUGGING
#undef HAVE_CATGETS
#undef HAVE_DIRENT_H
#undef HAVE_GETTEXT
#undef HAVE_IPC_H
#undef HAVE_LC_MESSAGES
#undef HAVE_PWD_H
#undef HAVE_SHM_H
#undef HAVE_STPCPY
#undef HAVE_XSHM_H
#undef HAVE_SHAPE_EXT
#undef HAVE_SYS_SELECT_H
#undef HAVE_SYS_TIME_H
#undef HAVE_XCONVERTCASE
#undef NO_FD_SET
#undef RESOURCE_BASE
/* Define to enable POSIX threading awareness */
#undef USE_PTHREADS
/* Define to use X11R6 additions to XIM */
#undef USE_X11R6_XIM
#undef XINPUT_NONE
#undef XINPUT_GXI

View File

@@ -1,6 +1,6 @@
## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
## Copyright (C) 1996-1998 Free Software Foundation, Inc.
## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
## Copyright (C) 1996-1999 Free Software Foundation, Inc.
## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -21,32 +21,75 @@
## configuration script generated by Autoconf, you may include it under
## the same distribution terms that you use for the rest of that program.
# serial 24 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AM_ENABLE_SHARED])dnl
AC_REQUIRE([AM_ENABLE_STATIC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AM_PROG_LD])dnl
AC_REQUIRE([AM_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
# serial 40 AC_PROG_LIBTOOL
AC_DEFUN(AC_PROG_LIBTOOL,
[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
# Save cache, so that ltconfig can load it
AC_CACHE_SAVE
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
|| AC_MSG_ERROR([libtool configure failed])
# Reload cache, that may have been modified by ltconfig
AC_CACHE_LOAD
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl
# Redirect the config.log output again, so that the ltconfig log is not
# clobbered by the next message.
exec 5>>./config.log
])
AC_DEFUN(AC_LIBTOOL_SETUP,
[AC_PREREQ(2.13)dnl
AC_REQUIRE([AC_ENABLE_SHARED])dnl
AC_REQUIRE([AC_ENABLE_STATIC])dnl
AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_PROG_LD])dnl
AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
case "$target" in
NONE) lt_target="$host" ;;
*) lt_target="$target" ;;
esac
# Check for any special flags to pass to ltconfig.
libtool_flags=
libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
[libtool_flags="$libtool_flags --enable-dlopen"])
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
[libtool_flags="$libtool_flags --enable-win32-dll"])
AC_ARG_ENABLE(libtool-lock,
[ --disable-libtool-lock avoid locking (might break parallel builds)])
test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case "$host" in
case "$lt_target" in
*-*-irix6*)
# Find out which ABI we are using.
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
@@ -68,30 +111,42 @@ case "$host" in
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
[AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
if test x"$lt_cv_cc_needs_belf" != x"yes"; then
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
CFLAGS="$SAVE_CFLAGS"
fi
;;
esac
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
[*-*-cygwin* | *-*-mingw*)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
;;
])
esac
])
# AM_ENABLE_SHARED - implement the --enable-shared flag
# Usage: AM_ENABLE_SHARED[(DEFAULT)]
# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
# AC_ENABLE_SHARED - implement the --enable-shared flag
# Usage: AC_ENABLE_SHARED[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_SHARED,
[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_DEFUN(AC_ENABLE_SHARED, [dnl
define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(shared,
changequote(<<, >>)dnl
<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT]
<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
changequote([, ])dnl
[ --enable-shared=PKGS only build shared libraries if the current package
appears as an element in the PKGS list],
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_shared=yes ;;
@@ -108,29 +163,23 @@ no) enable_shared=no ;;
IFS="$ac_save_ifs"
;;
esac],
enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
])
# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
AC_DEFUN(AM_DISABLE_SHARED,
[AM_ENABLE_SHARED(no)])
# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_ENABLE_SHARED(no)])
# AM_DISABLE_STATIC - set the default static flag to --disable-static
AC_DEFUN(AM_DISABLE_STATIC,
[AM_ENABLE_STATIC(no)])
# AM_ENABLE_STATIC - implement the --enable-static flag
# Usage: AM_ENABLE_STATIC[(DEFAULT)]
# AC_ENABLE_STATIC - implement the --enable-static flag
# Usage: AC_ENABLE_STATIC[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_STATIC,
[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_DEFUN(AC_ENABLE_STATIC, [dnl
define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(static,
changequote(<<, >>)dnl
<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT]
<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
changequote([, ])dnl
[ --enable-static=PKGS only build shared libraries if the current package
appears as an element in the PKGS list],
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_static=yes ;;
@@ -147,26 +196,73 @@ no) enable_static=no ;;
IFS="$ac_save_ifs"
;;
esac],
enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
])
# AC_DISABLE_STATIC - set the default static flag to --disable-static
AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_ENABLE_STATIC(no)])
# AM_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AM_PROG_LD,
# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(fast-install,
changequote(<<, >>)dnl
<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
changequote([, ])dnl
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_fast_install=yes ;;
no) enable_fast_install=no ;;
*)
enable_fast_install=no
# Look at the argument we got. We use all the common list separators.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "X$p"; then
enable_fast_install=yes
fi
done
IFS="$ac_save_ifs"
;;
esac],
enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
])
# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_ENABLE_FAST_INSTALL(no)])
# AC_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AC_PROG_LD,
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
ac_prog=ld
if test "$ac_cv_prog_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
/* | [A-Za-z]:\\*)
test -z "$LD" && LD="$ac_prog"
;;
# Accept absolute paths.
changequote(,)dnl
[\\/]* | [A-Za-z]:[\\/]*)
re_direlt='/[^/][^/]*/\.\./'
changequote([,])dnl
# Canonicalize the path of ld
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
done
test -z "$LD" && LD="$ac_prog"
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
@@ -183,10 +279,10 @@ else
fi
AC_CACHE_VAL(ac_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog"; then
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
@@ -194,7 +290,7 @@ AC_CACHE_VAL(ac_cv_path_LD,
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
test "$with_gnu_ld" != no && break
else
test "$with_gnu_ld" != yes && break
test "$with_gnu_ld" != yes && break
fi
fi
done
@@ -209,11 +305,10 @@ else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
AM_PROG_LD_GNU
AC_PROG_LD_GNU
])
AC_DEFUN(AM_PROG_LD_GNU,
AC_DEFUN(AC_PROG_LD_GNU,
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
@@ -223,41 +318,117 @@ else
fi])
])
# AM_PROG_NM - find the path to a BSD-compatible name lister
AC_DEFUN(AM_PROG_NM,
# AC_PROG_NM - find the path to a BSD-compatible name lister
AC_DEFUN(AC_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
[case "$NM" in
/* | [A-Za-z]:\\*)
ac_cv_path_NM="$NM" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
[if test -n "$NM"; then
# Let the user override the test.
ac_cv_path_NM="$NM"
else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/nm; then
if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -B"
ac_cv_path_NM="$ac_dir/nm -B"
break
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -p"
ac_cv_path_NM="$ac_dir/nm -p"
break
else
ac_cv_path_NM="$ac_dir/nm"
ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
continue # so that we can try to find one that supports BSD flags
fi
break
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
;;
esac])
fi])
NM="$ac_cv_path_NM"
AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])
# AC_CHECK_LIBM - check for math library
AC_DEFUN(AC_CHECK_LIBM,
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
LIBM=
case "$lt_target" in
*-*-beos* | *-*-cygwin*)
# These system don't have libm
;;
*-ncr-sysv4.3*)
AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
;;
*)
AC_CHECK_LIB(m, main, LIBM="-lm")
;;
esac
])
# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
# the libltdl convenience library, adds --enable-ltdl-convenience to
# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
# to be `${top_builddir}/libltdl'. Make sure you start DIR with
# '${top_builddir}/' (note the single quotes!) if your package is not
# flat, and, if you're not using automake, define top_builddir as
# appropriate in the Makefiles.
AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
case "$enable_ltdl_convenience" in
no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
"") enable_ltdl_convenience=yes
ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
esac
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
])
# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
# the libltdl installable library, and adds --enable-ltdl-install to
# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
# to be `${top_builddir}/libltdl'. Make sure you start DIR with
# '${top_builddir}/' (note the single quotes!) if your package is not
# flat, and, if you're not using automake, define top_builddir as
# appropriate in the Makefiles.
# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_CHECK_LIB(ltdl, main,
[test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
[if test x"$enable_ltdl_install" = xno; then
AC_MSG_WARN([libltdl not installed, but installation disabled])
else
enable_ltdl_install=yes
fi
])
if test x"$enable_ltdl_install" = x"yes"; then
ac_configure_args="$ac_configure_args --enable-ltdl-install"
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
else
ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
LIBLTDL="-lltdl"
INCLTDL=
fi
])
dnl old names
AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
dnl This is just to silence aclocal about the macro not being used
ifelse([AC_DISABLE_FAST_INSTALL])dnl
# Macro to add for using GNU gettext.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
@@ -285,7 +456,7 @@ AC_DEFUN(AM_GTK_WITH_NLS,
dnl If we use NLS figure out what method
if test "$USE_NLS" = "yes"; then
AC_DEFINE(ENABLE_NLS)
# AC_DEFINE(ENABLE_NLS)
# AC_MSG_CHECKING([whether included gettext is requested])
# AC_ARG_WITH(included-gettext,
# [ --with-included-gettext use the GNU gettext library included here],
@@ -305,22 +476,26 @@ AC_DEFUN(AM_GTK_WITH_NLS,
CATOBJEXT=NONE
AC_CHECK_HEADER(libintl.h,
[AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
[AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
[AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
[AC_TRY_LINK([#include <libintl.h>], [return (int) dgettext ("","")],
gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no)])
if test "$gt_cv_func_gettext_libc" != "yes"; then
if test "$gt_cv_func_dgettext_libc" != "yes"; then
AC_CHECK_LIB(intl, bindtextdomain,
[AC_CACHE_CHECK([for gettext in libintl],
gt_cv_func_gettext_libintl,
[AC_CHECK_LIB(intl, gettext,
gt_cv_func_gettext_libintl=yes,
gt_cv_func_gettext_libintl=no)],
gt_cv_func_gettext_libintl=no)])
[AC_CACHE_CHECK([for dgettext in libintl],
gt_cv_func_dgettext_libintl,
[AC_CHECK_LIB(intl, dgettext,
gt_cv_func_dgettext_libintl=yes,
gt_cv_func_dgettext_libintl=no)],
gt_cv_func_dgettext_libintl=no)])
fi
if test "$gt_cv_func_gettext_libc" = "yes" \
|| test "$gt_cv_func_gettext_libintl" = "yes"; then
if test "$gt_cv_func_dgettext_libintl" = "yes"; then
LIBS="$LIBS -lintl";
fi
if test "$gt_cv_func_dgettext_libc" = "yes" \
|| test "$gt_cv_func_dgettext_libintl" = "yes"; then
AC_DEFINE(HAVE_GETTEXT)
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
@@ -340,8 +515,8 @@ AC_DEFUN(AM_GTK_WITH_NLS,
fi
# Added by Martin Baulig 12/15/98 for libc5 systems
if test "$gt_cv_func_gettext_libc" != "yes" \
&& test "$gt_cv_func_gettext_libintl" = "yes"; then
if test "$gt_cv_func_dgettext_libc" != "yes" \
&& test "$gt_cv_func_dgettext_libintl" = "yes"; then
INTLLIBS=-lintl
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
fi
@@ -392,7 +567,9 @@ AC_DEFUN(AM_GTK_WITH_NLS,
if test "$nls_cv_use_gnu_gettext" != "yes"; then
AC_DEFINE(ENABLE_NLS)
# else
else
# Unset this variable since we use the non-zero value as a flag.
CATOBJEXT=
# dnl Mark actions used to generate GNU NLS library.
# INTLOBJS="\$(GETTOBJS)"
# AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,

View File

@@ -20,14 +20,6 @@ DIE=0
DIE=1
}
(libtool --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have libtool installed to compile $PROJECT."
echo "Get ftp://alpha.gnu.org/gnu/libtool-1.2b.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have automake installed to compile $PROJECT."
@@ -84,11 +76,11 @@ aclocal $ACLOCAL_FLAGS
# optionally feature autoheader
(autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader
automake $am_opt
automake -a $am_opt
autoconf
cd $ORIGDIR
$srcdir/configure "$@"
$srcdir/configure --enable-maintainer-mode "$@"
echo
echo "Now type 'make' to compile $PROJECT."

389
config.guess vendored
View File

@@ -1,6 +1,7 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
# Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -23,6 +24,7 @@
# Written by Per Bothner <bothner@cygnus.com>.
# The master version of this file is at the FSF in /home/gd/gnu/lib.
# Please send patches to <autoconf-patches@gnu.org>.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
@@ -35,6 +37,20 @@
# (but try to keep the structure clean).
#
# Use $HOST_CC if defined. $CC may point to a cross-compiler
if test x"$CC_FOR_BUILD" = x; then
if test x"$HOST_CC" != x; then
CC_FOR_BUILD="$HOST_CC"
else
if test x"$CC" != x; then
CC_FOR_BUILD="$CC"
else
CC_FOR_BUILD=cc
fi
fi
fi
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 8/24/94.)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
@@ -46,7 +62,8 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
dummy=dummy-$$
trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
# Note: order is significant - the case branches are not exclusive.
@@ -59,7 +76,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
cat <<EOF >dummy.s
cat <<EOF >$dummy.s
.globl main
.ent main
main:
@@ -76,9 +93,9 @@ main:
ret \$31,(\$26),1
.end main
EOF
${CC-cc} dummy.s -o dummy 2>/dev/null
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
./$dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
@@ -97,8 +114,14 @@ EOF
;;
esac
fi
rm -f dummy.s dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
rm -f $dummy.s $dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
@@ -112,6 +135,9 @@ EOF
amiga:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
exit 0 ;;
arc64:OpenBSD:*:*)
echo mips64el-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
@@ -130,6 +156,9 @@ EOF
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
@@ -139,7 +168,7 @@ EOF
SR2?01:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
@@ -147,9 +176,12 @@ EOF
echo pyramid-pyramid-bsd
fi
exit 0 ;;
NILE:*:*:dcosx)
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit 0 ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
@@ -195,6 +227,32 @@ EOF
atari*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit 0 ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit 0 ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit 0 ;;
sun3*:NetBSD:*:*)
echo m68k-sun-netbsd${UNAME_RELEASE}
exit 0 ;;
@@ -216,6 +274,9 @@ EOF
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
macppc:NetBSD:*:*)
echo powerpc-apple-netbsd${UNAME_RELEASE}
exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit 0 ;;
@@ -225,12 +286,16 @@ EOF
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
2020:CLIX:*:*)
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
sed 's/^ //' << EOF >dummy.c
int main (argc, argv) int argc; char **argv; {
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
@@ -245,10 +310,10 @@ EOF
exit (-1);
}
EOF
${CC-cc} dummy.c -o dummy \
&& ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm dummy.c dummy && exit 0
rm -f dummy.c dummy
$CC_FOR_BUILD $dummy.c -o $dummy \
&& ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
@@ -266,15 +331,18 @@ EOF
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
echo m88k-dg-dgux${UNAME_RELEASE}
else
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
else echo i586-dg-dgux${UNAME_RELEASE}
fi
exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
@@ -300,7 +368,7 @@ EOF
exit 0 ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
sed 's/^ //' << EOF >dummy.c
sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
@@ -311,8 +379,8 @@ EOF
exit(0);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
@@ -321,7 +389,8 @@ EOF
fi
exit 0 ;;
*:AIX:*:4)
if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
@@ -354,18 +423,50 @@ EOF
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
9000/[3478]??:HP-UX:*:*)
9000/[34678]??:HP-UX:*:*)
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
9000/8?? ) HP_ARCH=hppa1.0 ;;
9000/[678][0-9][0-9])
sed 's/^ //' << EOF >$dummy.c
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
rm -f $dummy.c $dummy
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
3050*:HI-UX:*:*)
sed 's/^ //' << EOF >dummy.c
sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
@@ -390,8 +491,8 @@ EOF
exit (0);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -400,6 +501,9 @@ EOF
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit 0 ;;
*9??*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit 0 ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit 0 ;;
@@ -416,6 +520,9 @@ EOF
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit 0 ;;
hppa*:OpenBSD:*:*)
echo hppa-unknown-openbsd
exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit 0 ;;
@@ -448,11 +555,14 @@ EOF
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*T3E:*:*:*)
echo alpha-cray-unicosmk${UNAME_RELEASE}
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
exit 0 ;;
F300:UNIX_System_V:*:*)
FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;;
@@ -465,26 +575,47 @@ EOF
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
i?86:BSD/386:*:* | *:BSD/OS:*:*)
i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
if test -x /usr/bin/objformat; then
if test "elf" = "`/usr/bin/objformat`"; then
echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
exit 0
fi
fi
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;;
*:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin32
echo ${UNAME_MACHINE}-pc-cygwin
exit 0 ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i386-pc-interix
exit 0 ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin32
echo powerpcle-unknown-cygwin
exit 0 ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -493,15 +624,11 @@ EOF
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
# uname on the ARM produces all sorts of strangeness, and we need to
# filter it out.
case "$UNAME_MACHINE" in
arm* | sa110*) UNAME_MACHINE="arm" ;;
esac
# The BFD linker knows what the default object file format is, so
# first see if it will tell us.
ld_help_string=`ld --help 2>&1`
# first see if it will tell us. cd to the root directory to prevent
# problems with other programs or directories called `ld' in the path.
ld_help_string=`cd /; ld --help 2>&1`
ld_supported_emulations=`echo $ld_help_string \
| sed -ne '/supported emulations:/!d
s/[ ][ ]*/ /g
@@ -509,16 +636,74 @@ EOF
s/ .*//
p'`
case "$ld_supported_emulations" in
i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;;
*ia64)
echo "${UNAME_MACHINE}-unknown-linux"
exit 0
;;
i?86linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
exit 0
;;
i?86coff)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit 0
;;
sparclinux)
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
exit 0
;;
armlinux)
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
exit 0
;;
elf32arm*)
echo "${UNAME_MACHINE}-unknown-linux-gnu"
exit 0
;;
armelf_linux*)
echo "${UNAME_MACHINE}-unknown-linux-gnu"
exit 0
;;
m68klinux)
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
exit 0
;;
elf32ppc)
# Determine Lib Version
cat >$dummy.c <<EOF
#include <features.h>
#if defined(__GLIBC__)
extern char __libc_version[];
extern char __libc_release[];
#endif
main(argc, argv)
int argc;
char *argv[];
{
#if defined(__GLIBC__)
printf("%s %s\n", __libc_version, __libc_release);
#else
printf("unkown\n");
#endif
return 0;
}
EOF
LIBC=""
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
if test "$?" = 0 ; then
./$dummy | grep 1\.99 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
fi
rm -f $dummy.c $dummy
echo powerpc-unknown-linux-gnu${LIBC}
exit 0
;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
sed 's/^ //' <<EOF >dummy.s
sed 's/^ //' <<EOF >$dummy.s
.globl main
.ent main
main:
@@ -536,9 +721,9 @@ EOF
.end main
EOF
LIBC=""
${CC-cc} dummy.s -o dummy 2>/dev/null
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
./$dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
@@ -555,22 +740,23 @@ EOF
16)
UNAME_MACHINE="alphaev6"
;;
esac
esac
objdump --private-headers dummy | \
objdump --private-headers $dummy | \
grep ld.so.1 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
fi
rm -f dummy.s dummy
fi
rm -f $dummy.s $dummy
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
elif test "${UNAME_MACHINE}" = "mips" ; then
cat >dummy.c <<EOF
main(argc, argv)
int argc;
char *argv[];
{
cat >$dummy.c <<EOF
#ifdef __cplusplus
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#ifdef __MIPSEB__
printf ("%s-unknown-linux-gnu\n", argv[1]);
#endif
@@ -580,8 +766,8 @@ main(argc, argv)
return 0;
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
else
# Either a pre-BFD a.out linker (linux-gnuoldld)
# or one that does not give us useful --help.
@@ -600,12 +786,13 @@ EOF
;;
esac
# Determine whether the default compiler is a.out or elf
cat >dummy.c <<EOF
cat >$dummy.c <<EOF
#include <features.h>
main(argc, argv)
int argc;
char *argv[];
{
#ifdef __cplusplus
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
@@ -622,8 +809,8 @@ main(argc, argv)
return 0;
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
fi ;;
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
# are messed up and put the nodename in both sysname and nodename.
@@ -639,10 +826,20 @@ EOF
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit 0 ;;
i?86:*:5:7*)
# Fixed at (any) Pentium or better
UNAME_MACHINE=i586
if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i?86:*:3.2:*)
@@ -654,6 +851,10 @@ EOF
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
@@ -700,7 +901,7 @@ EOF
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
i?86:LynxOS:2.*:*)
i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
@@ -712,6 +913,9 @@ EOF
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit 0 ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit 0 ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit 0 ;;
@@ -742,19 +946,43 @@ EOF
news*:NEWS-OS:*:6*)
echo mips-sony-newsos6
exit 0 ;;
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit 0 ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit 0 ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit 0 ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit 0 ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit 0 ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
exit 0 ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:QNX:*:4*)
echo i386-qnx-qnx${UNAME_VERSION}
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
cat >dummy.c <<EOF
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
@@ -792,7 +1020,10 @@ main ()
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
@@ -852,8 +1083,8 @@ main ()
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
# Apollos put the system type in the environment.

View File

@@ -1,155 +0,0 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
/* Define if using alloca.c. */
#undef C_ALLOCA
/* Define to empty if the keyword does not work. */
#undef const
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
This function is required for alloca.c support on those systems. */
#undef CRAY_STACKSEG_END
/* Define if you have alloca, as a function or macro. */
#undef HAVE_ALLOCA
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
#undef HAVE_ALLOCA_H
/* Define if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define as __inline if that's what the C compiler calls it. */
#undef inline
/* Define to `long' if <sys/types.h> doesn't define. */
#undef off_t
/* Define if you need to in order for stat and other things to work. */
#undef _POSIX_SOURCE
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Define to `unsigned' if <sys/types.h> doesn't define. */
#undef size_t
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown
*/
#undef STACK_DIRECTION
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
/* Other stuff */
#undef ENABLE_NLS
#undef GTK_COMPILED_WITH_DEBUGGING
#undef HAVE_CATGETS
#undef HAVE_GETTEXT
#undef HAVE_IPC_H
#undef HAVE_LC_MESSAGES
#undef HAVE_SHM_H
#undef HAVE_STPCPY
#undef HAVE_XSHM_H
#undef HAVE_SHAPE_EXT
#undef HAVE_SYS_SELECT_H
#undef HAVE_XCONVERTCASE
#undef NO_FD_SET
#undef XINPUT_NONE
#undef XINPUT_GXI
#undef XINPUT_XFREE
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Define if you have the __argz_count function. */
#undef HAVE___ARGZ_COUNT
/* Define if you have the __argz_next function. */
#undef HAVE___ARGZ_NEXT
/* Define if you have the __argz_stringify function. */
#undef HAVE___ARGZ_STRINGIFY
/* Define if you have the broken_wctype function. */
#undef HAVE_BROKEN_WCTYPE
/* Define if you have the dcgettext function. */
#undef HAVE_DCGETTEXT
/* Define if you have the getcwd function. */
#undef HAVE_GETCWD
/* Define if you have the getpagesize function. */
#undef HAVE_GETPAGESIZE
/* Define if you have the munmap function. */
#undef HAVE_MUNMAP
/* Define if you have the putenv function. */
#undef HAVE_PUTENV
/* Define if you have the setenv function. */
#undef HAVE_SETENV
/* Define if you have the setlocale function. */
#undef HAVE_SETLOCALE
/* Define if you have the stpcpy function. */
#undef HAVE_STPCPY
/* Define if you have the strcasecmp function. */
#undef HAVE_STRCASECMP
/* Define if you have the strchr function. */
#undef HAVE_STRCHR
/* Define if you have the strdup function. */
#undef HAVE_STRDUP
/* Define if you have the <argz.h> header file. */
#undef HAVE_ARGZ_H
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define if you have the <nl_types.h> header file. */
#undef HAVE_NL_TYPES_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define if you have the <wctype.h> header file. */
#undef HAVE_WCTYPE_H
/* Define if you have the i library (-li). */
#undef HAVE_LIBI
/* Define if you have the intl library (-lintl). */
#undef HAVE_LIBINTL

192
config.h.win32 Executable file
View File

@@ -0,0 +1,192 @@
/* config.h.win32. Handcrafted for Microsoft C and gcc -mno-cygwin */
#if ! (defined(_MSC_VER) || defined(__GNUC__))
#error Unrecognized Win32 compiler, edit config.h.win32 by hand
#endif
/* Define if using alloca.c. */
/* #undef C_ALLOCA */
/* Define to empty if the keyword does not work. */
/* #undef const */
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
This function is required for alloca.c support on those systems. */
/* #undef CRAY_STACKSEG_END */
/* Define if you have alloca, as a function or macro. */
#define HAVE_ALLOCA 1
#ifdef _MSC_VER
#define alloca _alloca
#elif defined (__GNUC__)
#define alloca __builtin_alloca
#endif
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
/* #undef HAVE_ALLOCA_H */
/* Define if you have a working `mmap' system call. */
/* #undef HAVE_MMAP */
/* Define to empty, or __inline if that's what your compiler wants. */
#define inline __inline
/* Define to `long' if <sys/types.h> doesn't define. */
/* #undef off_t */
/* Define if you need to in order for stat and other things to work. */
/* #undef _POSIX_SOURCE*/
/* Define as the return type of signal handlers (int or void). */
#define RETSIGTYPE void
/* Define to `unsigned' if <sys/types.h> doesn't define. */
/* #undef size_t */
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown
*/
/* #undef STACK_DIRECTION */
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Other stuff */
#define ENABLE_NLS 1
#define GTK_COMPILED_WITH_DEBUGGING "minimum"
/* #undef HAVE_CATGETS */
/* #undef HAVE_DIRENT_H */
#define HAVE_GETTEXT 1
/* #undef HAVE_IPC_H */
/* #undef HAVE_LC_MESSAGES */
/* #undef HAVE_PWD_H */
/* #undef HAVE_SHM_H */
/* #undef HAVE_STPCPY */
/* #undef HAVE_XSHM_H */
#define HAVE_SHAPE_EXT 1
/* #undef HAVE_SYS_SELECT_H */
/* #undef HAVE_SYS_TIME_H */
/* #undef HAVE_XCONVERTCASE */
/* #undef NO_FD_SET */
/* #undef XINPUT_NONE */
/* #undef XINPUT_GXI */
/* #undef XINPUT_XFREE */
#define XINPUT_WIN32 1
/* Define as the return type of signal handlers (int or void). */
#define RETSIGTYPE void
/* Define if you have the __argz_count function. */
/* #undef HAVE___ARGZ_COUNT */
/* Define if you have the __argz_next function. */
/* #undef HAVE___ARGZ_NEXT */
/* Define if you have the __argz_stringify function. */
/* #undef HAVE___ARGZ_STRINGIFY */
/* Define if you have the broken_wctype function. */
/* #undef HAVE_BROKEN_WCTYPE */
/* Define if you have the dcgettext function. */
/* #undef HAVE_DCGETTEXT */
/* Define if you have the getcwd function. */
#define HAVE_GETCWD 1
/* Define if you have the getpagesize function. */
#define HAVE_GETPAGESIZE 1
/* Define if you have the lstat function. */
/* #undef HAVE_LSTAT */
/* Define if you have the munmap function. */
/* #undef HAVE_MUNMAP */
/* Define if you have the putenv function. */
#define HAVE_PUTENV 1
#define putenv _putenv
/* Define if you have the setenv function. */
/* #undef HAVE_SETENV */
/* Define if you have the setlocale function. */
#define HAVE_SETLOCALE 1
/* Define if you have the stpcpy function. */
/* #undef HAVE_STPCPY */
/* Define if you have the strcasecmp function. */
#define HAVE_STRCASECMP 1
#define strcasecmp _stricmp
/* Define if you have the strchr function. */
#define HAVE_STRCHR 1
/* Define if you have the strdup function. */
#define HAVE_STRDUP 1
/* Define if you have the <argz.h> header file. */
/* #undef HAVE_ARGZ_H */
/* Define if you have the <dirent.h> header file. */
/* #undef HAVE_DIRENT_H */
/* Define if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
/* Define if you have the <malloc.h> header file. */
#define HAVE_MALLOC_H 1
/* Define if you have the <nl_types.h> header file. */
/* #undef HAVE_NL_TYPES_H */
/* Define if you have the <pwd.h> header file. */
/* #undef HAVE_PWD_H */
/* Define if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define if you have the <sys/param.h> header file. */
/* #undef HAVE_SYS_PARAM_H */
/* Define if you have the <sys/time.h> header file. */
/* #undef HAVE_SYS_TIME_H */
/* Define if you have the <unistd.h> header file. */
/* #undef HAVE_UNISTD_H */
/* Define if you have the <wchar.h> header file. */
#define HAVE_WCHAR_H 1
/* Define if you have the <wctype.h> header file. */
#ifdef _MSC_VER
#define HAVE_WCTYPE_H 1
#endif /* _MSC_VER */
/* Define if you have the i library (-li). */
/* #undef HAVE_LIBI */
/* Define if you have the intl library (-lintl). */
#define HAVE_LIBINTL 1
/* define if compiled symbols have a leading underscore */
/* #undef WITH_SYMBOL_UNDERSCORE */
/* Define if you have the Wintab programmer's kit */
#define HAVE_WINTAB 1
/* Define if you have the <dimm.h> header file
* (available in the Platform SDK)
*/
/* #define HAVE_DIMM_H 1 */

340
config.sub vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Configuration validation subroutine script, version 1.1.
# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
# Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
@@ -98,11 +98,21 @@ case $os in
os=
basic_machine=$1
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
;;
-scout)
;;
-wrs)
os=-vxworks
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco5)
os=sco3.2v5
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
@@ -121,6 +131,9 @@ case $os in
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-udk*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -143,22 +156,33 @@ case $os in
-psos*)
os=-psos
;;
-mint | -mint[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 \
| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
| alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
| i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
| mips64 | mipsel | mips64el | mips64orion | mips64orionel \
| mipstx39 | mipstx39el \
| sparc | sparclet | sparclite | sparc64 | v850)
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
| alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
| mips64vr5000 | miprs64vr5000el | mcore \
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
| thumb | d10v | fr30)
basic_machine=$basic_machine-unknown
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@@ -171,27 +195,45 @@ case $basic_machine in
exit 1
;;
# Recognize the basic CPU types with company name.
vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
# FIXME: clean up the formatting here.
vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
| xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \
| alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
| ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
| xmp-* | ymp-* \
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
| alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
| clipper-* | orion-* \
| sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
| sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mipstx39-* | mipstx39el-* \
| f301-*)
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
| mipstx39-* | mipstx39el-* | mcore-* \
| f301-* | armv*-* | t3e-* \
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
| thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=i386-unknown
os=-bsd
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
a29khif)
basic_machine=a29k-amd
os=-udi
;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
@@ -221,6 +263,10 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
os=-bsd
;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -297,6 +343,10 @@ case $basic_machine in
encore | umax | mmax)
basic_machine=ns32k-encore
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
os=-ose
;;
fx2800)
basic_machine=i860-alliant
;;
@@ -315,6 +365,14 @@ case $basic_machine in
basic_machine=h8300-hitachi
os=-hms
;;
h8300xray)
basic_machine=h8300-hitachi
os=-xray
;;
h8500hms)
basic_machine=h8500-hitachi
os=-hms
;;
harris)
basic_machine=m88k-harris
os=-sysv3
@@ -330,13 +388,30 @@ case $basic_machine in
basic_machine=m68k-hp
os=-hpux
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
hp9k6[0-9][0-9] | hp6[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
basic_machine=hppa1.1-hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
@@ -345,9 +420,16 @@ case $basic_machine in
hppa-next)
os=-nextstep3
;;
hppaosf)
basic_machine=hppa1.1-hp
os=-osf
;;
hppro)
basic_machine=hppa1.1-hp
os=-proelf
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
os=-mvs
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i[34567]86v32)
@@ -366,6 +448,25 @@ case $basic_machine in
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
i386mach)
basic_machine=i386-mach
os=-mach
;;
i386-vsta | vsta)
basic_machine=i386-unknown
os=-vsta
;;
i386-go32 | go32)
basic_machine=i386-unknown
os=-go32
;;
i386-mingw32 | mingw32)
basic_machine=i386-unknown
os=-mingw32
;;
i386-qnx | qnx)
basic_machine=i386-qnx
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
@@ -394,6 +495,10 @@ case $basic_machine in
miniframe)
basic_machine=m68000-convergent
;;
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
mipsel*-linux*)
basic_machine=mipsel-unknown
os=-linux-gnu
@@ -408,10 +513,30 @@ case $basic_machine in
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
monitor)
basic_machine=m68k-rom68k
os=-coff
;;
msdos)
basic_machine=i386-unknown
os=-msdos
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
netbsd386)
basic_machine=i386-unknown
os=-netbsd
;;
netwinder)
basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
@@ -424,6 +549,10 @@ case $basic_machine in
basic_machine=mips-sony
os=-newsos
;;
necv70)
basic_machine=v70-nec
os=-sysv
;;
next | m*-next )
basic_machine=m68k-next
case $os in
@@ -449,9 +578,25 @@ case $basic_machine in
basic_machine=i960-intel
os=-nindy
;;
mon960)
basic_machine=i960-intel
os=-mon960
;;
np1)
basic_machine=np1-gould
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
;;
os68k)
basic_machine=m68k-none
os=-os68k
;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
@@ -469,19 +614,19 @@ case $basic_machine in
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | nexen)
pentium | p5 | k5 | k6 | nexen)
basic_machine=i586-pc
;;
pentiumpro | p6 | k6 | 6x86)
pentiumpro | p6 | 6x86)
basic_machine=i686-pc
;;
pentiumii | pentium2)
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | nexen-*)
pentium-* | p5-* | k5-* | k6-* | nexen-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | k6-* | 6x86-*)
pentiumpro-* | p6-* | 6x86-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-*)
@@ -505,12 +650,20 @@ case $basic_machine in
ps2)
basic_machine=i386-ibm
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
;;
rm[46]00)
basic_machine=mips-siemens
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
sa29200)
basic_machine=a29k-amd
os=-udi
;;
sequent)
basic_machine=i386-sequent
;;
@@ -518,6 +671,10 @@ case $basic_machine in
basic_machine=sh-hitachi
os=-hms
;;
sparclite-wrs)
basic_machine=sparclite-wrs
os=-vxworks
;;
sps7)
basic_machine=m68k-bull
os=-sysv2
@@ -525,6 +682,13 @@ case $basic_machine in
spur)
basic_machine=spur-unknown
;;
st2000)
basic_machine=m68k-tandem
;;
stratus)
basic_machine=i860-stratus
os=-sysv4
;;
sun2)
basic_machine=m68000-sun
;;
@@ -569,6 +733,10 @@ case $basic_machine in
basic_machine=i386-sequent
os=-dynix
;;
t3e)
basic_machine=t3e-cray
os=-unicos
;;
tx39)
basic_machine=mipstx39-unknown
;;
@@ -586,6 +754,10 @@ case $basic_machine in
basic_machine=a29k-nyu
os=-sym1
;;
v810 | necv810)
basic_machine=v810-nec
os=-none
;;
vaxv)
basic_machine=vax-dec
os=-sysv
@@ -609,6 +781,14 @@ case $basic_machine in
basic_machine=a29k-wrs
os=-vxworks
;;
w65*)
basic_machine=w65-wdc
os=-none
;;
w89k-*)
basic_machine=hppa1.1-winbond
os=-proelf
;;
xmp)
basic_machine=xmp-cray
os=-unicos
@@ -616,6 +796,10 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
;;
none)
basic_machine=none-none
os=-none
@@ -623,6 +807,15 @@ case $basic_machine in
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k)
basic_machine=hppa1.1-winbond
;;
op50n)
basic_machine=hppa1.1-oki
;;
op60c)
basic_machine=hppa1.1-oki
;;
mips)
if [ x$os = x-linux-gnu ]; then
basic_machine=mips-unknown
@@ -645,7 +838,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
sparc)
sparc | sparcv9)
basic_machine=sparc-sun
;;
cydra)
@@ -657,6 +850,16 @@ case $basic_machine in
orion105)
basic_machine=clipper-highlevel
;;
mac | mpw | mac-mpw)
basic_machine=m68k-apple
;;
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
c4x*)
basic_machine=c4x-none
os=-coff
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
@@ -710,13 +913,21 @@ case $os in
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv*)
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
| -macos* | -mpw* | -magic* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
@@ -726,6 +937,9 @@ case $os in
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
;;
-osfrose*)
os=-osfrose
;;
@@ -741,6 +955,9 @@ case $os in
-acis*)
os=-aos
;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
@@ -760,6 +977,9 @@ case $os in
-oss*)
os=-sysv3
;;
-qnx)
os=-qnx4
;;
-svr4)
os=-sysv4
;;
@@ -772,9 +992,18 @@ case $os in
# This must come after -sysvr4.
-sysv*)
;;
-ose*)
os=-ose
;;
-es1800*)
os=-ose
;;
-xenix)
os=-xenix
;;
-*mint | -*MiNT)
os=-mint
;;
-none)
;;
*)
@@ -800,6 +1029,9 @@ case $basic_machine in
*-acorn)
os=-riscix1.2
;;
arm*-rebel)
os=-linux
;;
arm*-semi)
os=-aout
;;
@@ -821,15 +1053,36 @@ case $basic_machine in
# default.
# os=-sunos4
;;
m68*-cisco)
os=-aout
;;
mips*-cisco)
os=-elf
;;
mips*-*)
os=-elf
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
sparc-* | *-sun)
os=-sunos4.1.1
;;
*-be)
os=-beos
;;
*-ibm)
os=-aix
;;
*-wec)
os=-proelf
;;
*-winbond)
os=-proelf
;;
*-oki)
os=-proelf
;;
*-hp)
os=-hpux
;;
@@ -893,6 +1146,18 @@ case $basic_machine in
f301-fujitsu)
os=-uxpv
;;
*-rom68k)
os=-coff
;;
*-*bug)
os=-coff
;;
*-apple)
os=-macos
;;
*-atari*)
os=-mint
;;
*)
os=-none
;;
@@ -914,9 +1179,15 @@ case $basic_machine in
-aix*)
vendor=ibm
;;
-beos*)
vendor=be
;;
-hpux*)
vendor=hp
;;
-mpeix*)
vendor=hp
;;
-hiux*)
vendor=hitachi
;;
@@ -932,7 +1203,7 @@ case $basic_machine in
-genix*)
vendor=ns
;;
-mvs*)
-mvs* | -opened*)
vendor=ibm
;;
-ptx*)
@@ -944,6 +1215,15 @@ case $basic_machine in
-aux*)
vendor=apple
;;
-hms*)
vendor=hitachi
;;
-mpw* | -macos*)
vendor=apple
;;
-*mint | -*MiNT)
vendor=atari
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;

View File

@@ -1,9 +1,24 @@
# Process this file with autoconf to produce a configure script.
AC_INIT(gdk/gdktypes.h)
# In the following, there are a the following variants
# of GLib cflags and libs variables
#
# GLIB_CFLAGS: cflags for compiling libraries and example progs
# GLIB_LIBS: libraries for linking example programs
# GLIB_DEPLIBS: libraries for linking libraries against
# glib_cflags: cflags to store in gtk-config
# glib_libs: libs to store in gtk-config
# glib_thread_cflags: cflags to store in gtk-config for gtk-config gthread
# glib_thread_libs: libs to store in gtk-config for gtk-config gthread
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
dnl we to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
dnl are available for $ac_help expansion (don't we all *love* autoconf?)
AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
#
# Making releases:
# GTK_MICRO_VERSION += 1;
# GTK_INTERFACE_AGE += 1;
@@ -13,11 +28,14 @@ cflags_set=${CFLAGS+set}
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
#
GTK_MAJOR_VERSION=1
GTK_MINOR_VERSION=1
GTK_MICRO_VERSION=12
GTK_INTERFACE_AGE=1
GTK_BINARY_AGE=1
GTK_MINOR_VERSION=3
GTK_MICRO_VERSION=0
GTK_INTERFACE_AGE=0
GTK_BINARY_AGE=0
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
dnl
AC_DIVERT_POP()dnl
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
@@ -56,14 +74,28 @@ AM_MAINTAINER_MODE
AC_CANONICAL_HOST
dnl figure debugging default, prior to $ac_help setup
dnl
AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
if test `expr $GTK_MINOR_VERSION \% 2` = 1 ; then
debug_default=yes
else
debug_default=minimum
fi
AC_DIVERT_POP()dnl
dnl declare --enable-* args and collect ac_help strings
AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
AC_ARG_ENABLE(shm, [ --enable-shm support shared memory if available [default=yes]],
echo $enable_shm, enable_shm="yes")
AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=minimum]],,enable_debug=minimum)
AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]],
, enable_ansi=no)
AC_ARG_WITH(glib, [ --with-glib=DIR Use uninstalled copy of glib])
AC_ARG_ENABLE(xim, [ --enable-xim support XIM [default=yes]],
, enable_xim="yes")
AC_ARG_ENABLE(xim_inst, [ --disable-xim-inst does not use xim instantiate callback],
, enable_xim_inst="maybe")
AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,enable_rebuilds=yes)
AC_ARG_WITH(locale, [ --with-locale=LOCALE locale name you want to use ])
AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ])
@@ -112,6 +144,9 @@ if test "x$GCC" = "xyes"; then
fi
changequote([,])dnl
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
# define a MAINT-like variable REBUILD which is set if Perl
# and awk are found, so autogenerated sources can be rebuilt
@@ -122,20 +157,40 @@ AC_CHECK_PROGS(PERL, perl5 perl)
AC_CHECK_PROG(INDENT, indent, indent)
REBUILD=\#
if test -n "$PERL" && perl -v | grep 'version 5.' > /dev/null ; then
if test -n "$AWK" ; then
REBUILD=
fi
if test "x$enable_rebuilds" = "xyes" && \
test -n "$PERL" && \
$PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
test -n "$AWK" ; then
REBUILD=
fi
AC_SUBST(REBUILD)
AC_CHECK_FUNCS(lstat)
AC_MSG_CHECKING(whether make is GNU Make)
STRIP_BEGIN=
STRIP_END=
if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
STRIP_END=')'
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
STRIP_DUMMY=
AC_SUBST(STRIP_DUMMY)
AC_SUBST(STRIP_BEGIN)
AC_SUBST(STRIP_END)
# i18n stuff
ALL_LINGUAS="de fr nl pt ja sv pl no ko"
ALL_LINGUAS="ca cs da de el es et eu fi fr ga gl hr hu it ja ko lt nl no pl pt pt_BR ro ru sk sl sv tr uk wa zh_TW.Big5 zh_CN.GB2312"
AM_GTK_GNU_GETTEXT
AC_CHECK_FUNC(gettext,
,
AC_CHECK_LIB(intl, gettext)
)
LIBS="$LIBS $INTLLIBS"
# AM_GTK_GNU_GETTEXT above substs $DATADIRNAME
# this is the directory where the *.{mo,gmo} files are installed
gtklocaledir='${prefix}/${DATADIRNAME}/locale'
AC_SUBST(gtklocaledir)
dnl The DU4 header files don't provide library prototypes unless
dnl -std1 is given to the native cc.
@@ -154,11 +209,29 @@ AC_TRY_RUN([#include <math.h>
AC_MSG_RESULT()
CFLAGS=$gtk_save_CFLAGS
AC_MSG_WARN(
[No ANSI prototypes found in library. (-std1 didn't work.)])
)
[No ANSI prototypes found in library. (-std1 didn't work.)]),
true
),
AC_MSG_RESULT(none needed)
)
LIBS=$gtk_save_LIBS
MATH_LIB=-lm
GTK_LIBS_EXTRA=
AC_MSG_CHECKING(for the BeOS)
case $host in
*-*-beos*)
AC_MSG_RESULT(yes)
GTK_LIBS_EXTRA="-L\$(top_builddir_full)/gdk/.libs -lgdk"
MATH_LIB=
;;
*)
AC_MSG_RESULT(no)
;;
esac
AC_SUBST(MATH_LIB)
AC_SUBST(GTK_LIBS_EXTRA)
dnl NeXTStep cc seems to need this
AC_MSG_CHECKING([for extra flags for POSIX compliance])
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
@@ -179,16 +252,19 @@ fi
if test x$with_glib = x ; then
# Look for separately installed glib
AM_PATH_GLIB(1.1.12,,
AM_PATH_GLIB(1.3.1,,
AC_MSG_ERROR([
*** GLIB 1.1.12 or better is required. The latest version of GLIB
*** is always available from ftp://ftp.gtk.org.]),
gmodule gthread)
*** GLIB 1.3.0 or better is required. The latest version of GLIB
*** is always available from ftp://ftp.gtk.org/.]),
gobject gmodule gthread)
# we do not want to make all gtk progs to link to thread libraries.
glib_cflags=`$GLIB_CONFIG glib gmodule --cflags`
glib_libs=`$GLIB_CONFIG glib gmodule --libs`
glib_cflags=`$GLIB_CONFIG glib gobject gmodule --cflags`
glib_thread_cflags="$GLIB_CFLAGS"
glib_libs=`$GLIB_CONFIG glib gobject gmodule --libs`
glib_thread_libs="$GLIB_LIBS"
GLIB_LIBS="$glib_libs"
GLIB_DEPLIBS="$glib_libs"
else
# Use uninstalled glib (assume they got the version right)
@@ -201,7 +277,9 @@ else
# For use in gtk-config
glib_cflags=`$GLIB_CONFIG --cflags gmodule`
glib_thread_cflags=`$GLIB_CONFIG --cflags gmodule gthread`
glib_libs=`$GLIB_CONFIG --libs gmodule`
glib_thread_libs=`$GLIB_CONFIG --libs gmodule gthread`
glib_release=`$GLIB_CONFIG --version | sed 's%\\.[[0-9]]*$%%'`
@@ -215,8 +293,9 @@ else
;;
esac
GLIB_CFLAGS="-I$glib_dir"
GLIB_LIBS=$glib_dir/libglib-$glib_release.la
GLIB_CFLAGS="-I$glib_dir -I$glib_dir/gmodule"
GLIB_LIBS="$glib_dir/libglib.la $glib_dir/gmodule/libgmodule.la"
GLIB_DEPLIBS=
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
@@ -224,6 +303,13 @@ fi
AC_SUBST(glib_cflags)
AC_SUBST(glib_libs)
AC_SUBST(glib_thread_cflags)
AC_SUBST(glib_thread_libs)
AC_SUBST(GLIB_DEPLIBS)
AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H))
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
# Find the X11 include and library directories
AC_PATH_X
@@ -283,11 +369,29 @@ AC_CHECK_LIB(X11, XConvertCase,
AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
: ,
enable_xim=no,
enable_xim_inst="no",
$x_libs)
# On Solaris, calling XRegisterIMInstantiateCallback seems to
# cause an immediate segfault, so we disable it, unless
# the user specifically forces it to be on.
if test x$enable_xim_inst = xmaybe ; then
case host in
*-*-solaris*)
enable_xim_inst="no"
;;
*)
enable_xim_inst="yes"
;;
esac
fi
if test "x$enable_xim" = "xyes"; then
GTK_XIM_FLAGS="-DUSE_XIM"
if test "x$enable_xim_inst" = "xyes"; then
AC_DEFINE(USE_X11R6_XIM)
fi
fi
x_cflags="$X_CFLAGS"
@@ -306,6 +410,9 @@ else
AC_DEFINE(XINPUT_NONE)
fi
AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi)
AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree)
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"
@@ -350,11 +457,12 @@ main ()
return setlocale (LC_ALL, "${with_locale}") == NULL;
}],
need_x_locale=no,
need_x_locale=yes)
need_x_locale=yes,
need_x_locale=no)
AC_MSG_RESULT($need_x_locale)
if test $need_x_locale = yes; then
GTK_LOCALE_CFLAGS="-DX_LOCALE"
GTK_LOCALE_FLAGS="-DX_LOCALE"
fi
# Checks for header files.
@@ -384,40 +492,29 @@ else
fi
fi
# Duplicate `widechar' tests from `glib'.
# Check for wchar.h
if test x = y; then
# will not be executed
# hack so as not to update `acconfig.h'
AC_CHECK_HEADERS(wchar.h wctype.h)
AC_CHECK_FUNCS(broken_wctype)
fi
# `widechar' tests for gdki18n.h
AC_MSG_CHECKING(for wchar.h)
AC_TRY_CPP([#include <wchar.h>], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = yes; then
ac_kludge=HAVE_WCHAR_H
AC_DEFINE($ac_kludge)
AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
if test $gdk_wchar_h = yes; then
AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
fi
AC_MSG_RESULT($gtk_ok)
AC_MSG_RESULT($gdk_wchar_h)
# Check for wctype.h (for iswalnum)
AC_MSG_CHECKING(for wctype.h)
AC_TRY_CPP([#include <wctype.h>], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = yes; then
ac_kludge=HAVE_WCTYPE_H
AC_DEFINE($ac_kludge)
AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
if test $gdk_wctype_h = yes; then
AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
fi
AC_MSG_RESULT($gtk_ok)
AC_MSG_RESULT($gdk_wctype_h)
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
# The following is necessary for Linux libc-5.4.38
oLIBS="$LIBS"
LIBS="$LIBS $GDK_WLIBS"
# The following is necessary for Linux libc-5.4.38
AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
AC_TRY_LINK([#include <stdlib.h>],[
#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
@@ -432,27 +529,108 @@ AC_TRY_LINK([#include <stdlib.h>],[
# define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
#endif
iswalnum((wchar_t) 0);
], gtk_ok=yes, gtk_ok=no)
], gdk_working_wctype=yes, gdk_working_wctype=no)
LIBS="$oLIBS"
if test $gtk_ok = no; then
ac_kludge=HAVE_BROKEN_WCTYPE
AC_DEFINE($ac_kludge)
if test $gdk_working_wctype = no; then
AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
GDK_WLIBS=
fi
AC_MSG_RESULT($gtk_ok)
AC_MSG_RESULT($gdk_working_wctype)
AC_SUBST(GDK_WLIBS)
AC_SUBST(GTK_DEBUG_FLAGS)
AC_SUBST(GTK_XIM_FLAGS)
AC_SUBST(GTK_LOCALE_FLAGS)
AC_OUTPUT_COMMANDS([
## Generate `gdk/gdkconfig.h' in two cases
## 1. `config.status' is run either explicitly, or via configure.
## Esp. not when it is run in `Makefile' to generate makefiles and
## config.h
## 2. CONFIG_OTHER is set explicitly
##
## Case 1 is difficult. We know that `automake' sets one of
## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works
## only when AM_CONFIG_HEADER is set, however.
if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
# Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
CONFIG_OTHER=${CONFIG_OTHER:-gdk/gdkconfig.h}
fi
case "$CONFIG_OTHER" in
*gdk/gdkconfig.h*)
echo creating gdk/gdkconfig.h
outfile=gdkconfig.h-tmp
cat > $outfile <<\_______EOF
/* gdkconfig.h
*
* This is a generated file. Please modify `configure.in'
*/
#ifndef GDKCONFIG_H
#define GDKCONFIG_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
_______EOF
cat >>$outfile <<_______EOF
$gdk_windowing
$gdk_wc
_______EOF
cat >>$outfile <<_______EOF
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* GDKCONFIG_H */
_______EOF
if cmp -s $outfile gdk/gdkconfig.h; then
echo gdk/gdkconfig.h is unchanged
rm -f $outfile
else
mv $outfile gdk/gdkconfig.h
fi ;;
esac
],[
# Currently we always use X11 on those systems where we run configure...
gdk_windowing='
#define GDK_WINDOWING_X11'
if test x$gdk_wchar_h = xyes; then
gdk_wc='
#define GDK_HAVE_WCHAR_H 1'
fi
if test x$gdk_wctype_h = xyes; then
gdk_wc="\$gdk_wc
#define GDK_HAVE_WCTYPE_H 1"
fi
if test x$gdk_working_wctype = xno; then
gdk_wc="\$gdk_wc
#define GDK_HAVE_BROKEN_WCTYPE 1"
fi
])
AC_OUTPUT([
gtk+.spec
docs/gtk-config.1
Makefile
gtk-config
po/Makefile.in
docs/Makefile
gdk/Makefile
gdk/x11/Makefile
gdk/win32/Makefile
gtk/Makefile
gtk/gtkfeatures.h
gtk/gtkcompat.h
], [chmod +x gtk-config])

475
demos/testanimation.c Normal file
View File

@@ -0,0 +1,475 @@
/* testpixbuf -- test program for gdk-pixbuf code
* Copyright (C) 1999 Mark Crichton, Larry Ewing
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <gtk/gtk.h>
#include "gdk-pixbuf.h"
#include "gdk-pixbuf-loader.h"
typedef struct {
FILE *imagefile;
GdkPixbufLoader *loader;
GtkWidget **rgbwin;
guchar *buf;
guint timeout;
guint readlen;
} ProgressFileStatus;
#define DEFAULT_WIDTH 24
#define DEFAULT_HEIGHT 24
static const unsigned char default_image[] = {
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
};
static void
quit_func (GtkWidget *widget, gpointer dummy)
{
gtk_main_quit ();
}
static void
expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
if (gdk_pixbuf_get_has_alpha (pixbuf)) {
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,
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));
} 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,
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));
}
}
static void
config_func (GtkWidget *drawing_area, GdkEventConfigure *event, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
#if 0
if (((event->width) != gdk_pixbuf_get_width (pixbuf)) ||
((event->height) != gdk_pixbuf_get_height (pixbuf)))
gdk_pixbuf_scale(pixbuf, event->width, event->height);
#endif
}
static GtkWidget*
new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
{
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *temp_box;
GtkWidget *button;
GtkWidget *drawing_area;
gint w, h;
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
window = gtk_widget_new (gtk_window_get_type (),
"GtkObject::user_data", NULL,
"GtkWindow::type", GTK_WINDOW_TOPLEVEL,
"GtkWindow::title", "testrgb",
"GtkWindow::allow_shrink", TRUE,
NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
(GtkSignalFunc) quit_func, NULL);
vbox = gtk_vbox_new (FALSE, 0);
if (title)
gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new (title),
TRUE, TRUE, 0);
drawing_area = gtk_drawing_area_new ();
temp_box = gtk_hbox_new (FALSE, 0);
gtk_drawing_area_size (GTK_DRAWING_AREA(drawing_area), w, h);
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);
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);
gtk_object_set_data (GTK_OBJECT(drawing_area), "pixbuf", pixbuf);
gtk_widget_show (drawing_area);
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));
gtk_widget_show (button);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show_all (vbox);
gtk_widget_show (window);
return window;
}
#if 0
static gint
update_timeout(gpointer data)
{
ProgressFileStatus *status = data;
gboolean done;
done = TRUE;
if (!feof(status->imagefile)) {
gint nbytes;
nbytes = fread(status->buf, 1, status->readlen,
status->imagefile);
done = !gdk_pixbuf_loader_write (GDK_PIXBUF_LOADER (status->loader), status->buf, nbytes);
}
if (done) {
gtk_widget_queue_draw(*status->rgbwin);
gdk_pixbuf_loader_close (GDK_PIXBUF_LOADER (status->loader));
gtk_object_destroy (GTK_OBJECT(status->loader));
fclose (status->imagefile);
g_free (status->buf);
}
return !done;
}
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 */
*retloc = new_testrgb_window(pixbuf, "Progressive");
return;
}
static void
progressive_updated_callback(GdkPixbufLoader* loader, guint x, guint y, guint width, guint height, gpointer data)
{
GtkWidget** window_loc = data;
/* g_print ("progressive_updated_callback:\n\t%d\t%d\t%d\t%d\n", x, y, width, height); */
if (*window_loc != NULL)
gtk_widget_queue_draw_area(*window_loc,
x, y, width, height);
return;
}
#endif
static int readlen = 4096;
int
main (int argc, char **argv)
{
int i;
int found_valid = FALSE;
GdkPixbufAnimation *animation;
gtk_init (&argc, &argv);
gdk_rgb_set_verbose (TRUE);
gdk_rgb_init ();
gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
gtk_widget_set_default_visual (gdk_rgb_get_visual ());
{
char *tbf_readlen = getenv("TBF_READLEN");
if(tbf_readlen) readlen = atoi(tbf_readlen);
}
{
char *tbf_bps = getenv("TBF_KBPS");
guint bps;
if (tbf_bps) {
bps = atoi(tbf_bps);
g_print ("Simulating %d kBytes/sec\n", bps);
readlen = (bps*1024)/10;
}
}
i = 1;
if (argc == 1) {
g_print ("USAGE: testanimation FILE1 ...\n");
return 0;
} else {
for (i = 1; i < argc; i++) {
animation = gdk_pixbuf_animation_new_from_file (argv[i]);
if (animation) {
gint i = 0;
GList *listptr;
for (listptr = gdk_pixbuf_animation_get_frames (animation);
listptr;
listptr = listptr->next) {
GdkPixbufFrame *frame;
GdkPixbuf *pixbuf;
gchar *title;
frame = listptr->data;
pixbuf = gdk_pixbuf_frame_get_pixbuf (frame);
title = g_strdup_printf ("Frame %d", i);
g_print ("Frame %d x:%d y:%d width:%d height:%d\n",
i,
gdk_pixbuf_frame_get_x_offset (frame),
gdk_pixbuf_frame_get_y_offset (frame),
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
new_testrgb_window (pixbuf, title);
g_free (title);
i++;
}
found_valid = TRUE;
}
}
#if 0
{
GtkWidget* rgb_window = NULL;
ProgressFileStatus status;
GdkPixbufLoader *pixbuf_loader;
pixbuf_loader = gdk_pixbuf_loader_new ();
status.loader = pixbuf_loader;
status.rgbwin = &rgb_window;
status.buf = g_malloc (readlen);
gtk_signal_connect(GTK_OBJECT(pixbuf_loader),
"area_prepared",
GTK_SIGNAL_FUNC(progressive_prepared_callback),
&rgb_window);
gtk_signal_connect(GTK_OBJECT(pixbuf_loader),
"area_updated",
GTK_SIGNAL_FUNC(progressive_updated_callback),
&rgb_window);
status.imagefile = fopen (argv[1], "r");
g_assert (status.imagefile != NULL);
status.readlen = readlen;
status.timeout = gtk_timeout_add(100, update_timeout, &status);
}
#endif
}
if (found_valid)
gtk_main ();
return 0;
}

113
demos/testpixbuf-drawable.c Normal file
View File

@@ -0,0 +1,113 @@
#include <config.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include "gdk-pixbuf.h"
int close_app(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
return TRUE;
}
int expose_cb(GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *) gtk_object_get_data(GTK_OBJECT(drawing_area),
"pixbuf");
if(gdk_pixbuf_get_has_alpha (pixbuf))
{
gdk_draw_rgb_32_image(drawing_area->window,
drawing_area->style->black_gc,
evt->area.x, evt->area.y,
evt->area.width,
evt->area.height,
GDK_RGB_DITHER_MAX,
gdk_pixbuf_get_pixels (pixbuf) +
(evt->area.y * gdk_pixbuf_get_rowstride (pixbuf)) +
(evt->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
gdk_pixbuf_get_rowstride (pixbuf));
}
else
{
gdk_draw_rgb_image(drawing_area->window,
drawing_area->style->black_gc,
evt->area.x, evt->area.y,
evt->area.width,
evt->area.height,
GDK_RGB_DITHER_NORMAL,
gdk_pixbuf_get_pixels (pixbuf) +
(evt->area.y * gdk_pixbuf_get_rowstride (pixbuf)) +
(evt->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
gdk_pixbuf_get_rowstride (pixbuf));
}
return FALSE;
}
int configure_cb(GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *) gtk_object_get_data(GTK_OBJECT(drawing_area),
"pixbuf");
g_print("X:%d Y:%d\n", evt->width, evt->height);
if(evt->width != gdk_pixbuf_get_width (pixbuf) || evt->height != gdk_pixbuf_get_height (pixbuf))
{
GdkWindow *root;
GdkPixbuf *new_pixbuf;
root = GDK_ROOT_PARENT();
new_pixbuf = gdk_pixbuf_get_from_drawable(NULL, root, NULL,
0, 0, 0, 0, evt->width, evt->height);
gtk_object_set_data(GTK_OBJECT(drawing_area), "pixbuf", new_pixbuf);
gdk_pixbuf_unref(pixbuf);
}
return FALSE;
}
int main(int argc, char **argv)
{
GdkWindow *root;
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *drawing_area;
GdkPixbuf *pixbuf;
gtk_init(&argc, &argv);
gdk_rgb_set_verbose(TRUE);
gdk_rgb_init();
gtk_widget_set_default_colormap(gdk_rgb_get_cmap());
gtk_widget_set_default_visual(gdk_rgb_get_visual());
root = GDK_ROOT_PARENT();
pixbuf = gdk_pixbuf_get_from_drawable(NULL, root, NULL,
0, 0, 0, 0, 150, 160);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(close_app), NULL);
gtk_signal_connect(GTK_OBJECT(window), "destroy",
GTK_SIGNAL_FUNC(close_app), NULL);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);
drawing_area = gtk_drawing_area_new();
gtk_drawing_area_size(GTK_DRAWING_AREA(drawing_area),
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
gtk_signal_connect(GTK_OBJECT(drawing_area), "expose_event",
GTK_SIGNAL_FUNC(expose_cb), NULL);
gtk_signal_connect(GTK_OBJECT(drawing_area), "configure_event",
GTK_SIGNAL_FUNC(configure_cb), NULL);
gtk_object_set_data(GTK_OBJECT(drawing_area), "pixbuf", pixbuf);
gtk_box_pack_start(GTK_BOX(vbox), drawing_area, TRUE, TRUE, 0);
gtk_widget_show_all(window);
gtk_main();
return 0;
}

156
demos/testpixbuf-scale.c Normal file
View File

@@ -0,0 +1,156 @@
#include <gtk/gtk.h>
#include "gdk-pixbuf.h"
#include <stdio.h>
GdkInterpType interp_type = GDK_INTERP_BILINEAR;
int overall_alpha = 255;
GdkPixbuf *pixbuf;
GtkWidget *darea;
void
set_interp_type (GtkWidget *widget, gpointer data)
{
interp_type = GPOINTER_TO_UINT (data);
gtk_widget_queue_draw (darea);
}
void
overall_changed_cb (GtkAdjustment *adjustment, gpointer data)
{
if (adjustment->value != overall_alpha)
{
overall_alpha = adjustment->value;
gtk_widget_queue_draw (darea);
}
}
gboolean
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
GdkPixbuf *dest;
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
gdk_pixbuf_composite_color (pixbuf, dest,
0, 0, event->area.width, event->area.height,
-event->area.x, -event->area.y,
(double) widget->allocation.width / gdk_pixbuf_get_width (pixbuf),
(double) widget->allocation.height / gdk_pixbuf_get_height (pixbuf),
interp_type, overall_alpha,
event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
gdk_pixbuf_render_to_drawable (dest, widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
0, 0, event->area.x, event->area.y,
event->area.width, event->area.height,
GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
gdk_pixbuf_unref (dest);
return TRUE;
}
int
main(int argc, char **argv)
{
GtkWidget *window, *vbox;
GtkWidget *menuitem, *optionmenu, *menu;
GtkWidget *alignment;
GtkWidget *hbox, *label, *hscale;
GtkAdjustment *adjustment;
GtkRequisition scratch_requisition;
gtk_init (&argc, &argv);
gdk_rgb_init ();
if (argc != 2) {
fprintf (stderr, "Usage: testpixbuf-scale FILE\n");
exit (1);
}
pixbuf = gdk_pixbuf_new_from_file (argv[1]);
if (!pixbuf) {
fprintf (stderr, "Cannot load %s\n", argv[1]);
exit(1);
}
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
menu = gtk_menu_new ();
menuitem = gtk_menu_item_new_with_label ("NEAREST");
gtk_signal_connect (GTK_OBJECT (menuitem), "activate",
GTK_SIGNAL_FUNC (set_interp_type),
GUINT_TO_POINTER (GDK_INTERP_NEAREST));
gtk_widget_show (menuitem);
gtk_container_add (GTK_CONTAINER (menu), menuitem);
menuitem = gtk_menu_item_new_with_label ("BILINEAR");
gtk_signal_connect (GTK_OBJECT (menuitem), "activate",
GTK_SIGNAL_FUNC (set_interp_type),
GUINT_TO_POINTER (GDK_INTERP_BILINEAR));
gtk_widget_show (menuitem);
gtk_container_add (GTK_CONTAINER (menu), menuitem);
menuitem = gtk_menu_item_new_with_label ("TILES");
gtk_signal_connect (GTK_OBJECT (menuitem), "activate",
GTK_SIGNAL_FUNC (set_interp_type),
GUINT_TO_POINTER (GDK_INTERP_TILES));
gtk_container_add (GTK_CONTAINER (menu), menuitem);
menuitem = gtk_menu_item_new_with_label ("HYPER");
gtk_signal_connect (GTK_OBJECT (menuitem), "activate",
GTK_SIGNAL_FUNC (set_interp_type),
GUINT_TO_POINTER (GDK_INTERP_HYPER));
gtk_container_add (GTK_CONTAINER (menu), menuitem);
optionmenu = gtk_option_menu_new ();
gtk_option_menu_set_menu (GTK_OPTION_MENU (optionmenu), menu);
gtk_option_menu_set_history (GTK_OPTION_MENU (optionmenu), 1);
alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0);
hbox = gtk_hbox_new (FALSE, 4);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
label = gtk_label_new ("Overall Alpha:");
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (overall_alpha, 0, 255, 1, 10, 0));
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
GTK_SIGNAL_FUNC (overall_changed_cb), NULL);
hscale = gtk_hscale_new (adjustment);
gtk_scale_set_digits (GTK_SCALE (hscale), 0);
gtk_box_pack_start (GTK_BOX (hbox), hscale, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (alignment), optionmenu);
gtk_widget_show_all (vbox);
/* Compute the size without the drawing area, so we know how big to make the default size */
gtk_widget_size_request (vbox, &scratch_requisition);
darea = gtk_drawing_area_new ();
gtk_box_pack_start (GTK_BOX (vbox), darea, TRUE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT (darea), "expose_event",
GTK_SIGNAL_FUNC (expose_cb), NULL);
gtk_window_set_default_size (GTK_WINDOW (window),
gdk_pixbuf_get_width (pixbuf),
scratch_requisition.height + gdk_pixbuf_get_height (pixbuf));
gtk_widget_show_all (window);
gtk_main ();
return 0;
}

587
demos/testpixbuf.c Normal file
View File

@@ -0,0 +1,587 @@
/* testpixbuf -- test program for gdk-pixbuf code
* Copyright (C) 1999 Mark Crichton, Larry Ewing
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <gtk/gtk.h>
#include "gdk-pixbuf.h"
#include "gdk-pixbuf-loader.h"
typedef struct {
FILE *imagefile;
GdkPixbufLoader *loader;
GtkWidget **rgbwin;
guchar *buf;
guint timeout;
guint readlen;
} ProgressFileStatus;
#define DEFAULT_WIDTH 24
#define DEFAULT_HEIGHT 24
static const unsigned char default_image[] = {
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
};
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
};
static void
quit_func (GtkWidget *widget, gpointer dummy)
{
gtk_main_quit ();
}
static void
expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
if (gdk_pixbuf_get_has_alpha (pixbuf)) {
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,
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));
} 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,
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));
}
}
static void
config_func (GtkWidget *drawing_area, GdkEventConfigure *event, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
g_print("X:%d Y:%d\n", event->width, event->height);
#if 0
if (((event->width) != gdk_pixbuf_get_width (pixbuf)) ||
((event->height) != gdk_pixbuf_get_height (pixbuf)))
gdk_pixbuf_scale(pixbuf, event->width, event->height);
#endif
}
static GtkWidget*
new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
{
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *temp_box;
GtkWidget *button;
GtkWidget *drawing_area;
gint w, h;
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
window = gtk_widget_new (gtk_window_get_type (),
"GtkObject::user_data", NULL,
"GtkWindow::type", GTK_WINDOW_TOPLEVEL,
"GtkWindow::title", "testrgb",
"GtkWindow::allow_shrink", TRUE,
NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
(GtkSignalFunc) quit_func, NULL);
vbox = gtk_vbox_new (FALSE, 0);
if (title)
gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new (title),
TRUE, TRUE, 0);
drawing_area = gtk_drawing_area_new ();
temp_box = gtk_hbox_new (FALSE, 0);
gtk_drawing_area_size (GTK_DRAWING_AREA(drawing_area), w, h);
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);
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);
gtk_object_set_data (GTK_OBJECT(drawing_area), "pixbuf", pixbuf);
gtk_widget_show (drawing_area);
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));
gtk_widget_show (button);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show_all (vbox);
gtk_widget_show (window);
return window;
}
static gint
update_timeout(gpointer data)
{
ProgressFileStatus *status = data;
gboolean done;
done = TRUE;
if (!feof(status->imagefile)) {
gint nbytes;
nbytes = fread(status->buf, 1, status->readlen,
status->imagefile);
done = !gdk_pixbuf_loader_write (GDK_PIXBUF_LOADER (status->loader), status->buf, nbytes);
}
if (done) {
gtk_widget_queue_draw(*status->rgbwin);
gdk_pixbuf_loader_close (GDK_PIXBUF_LOADER (status->loader));
gtk_object_destroy (GTK_OBJECT(status->loader));
fclose (status->imagefile);
g_free (status->buf);
}
return !done;
}
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 */
*retloc = new_testrgb_window(pixbuf, "Progressive");
return;
}
static void
progressive_updated_callback(GdkPixbufLoader* loader, guint x, guint y, guint width, guint height, gpointer data)
{
GtkWidget** window_loc = data;
/* g_print ("progressive_updated_callback:\n\t%d\t%d\t%d\t%d\n", x, y, width, height); */
if (*window_loc != NULL)
gtk_widget_queue_draw_area(*window_loc,
x, y, width, height);
return;
}
static int readlen = 4096;
int
main (int argc, char **argv)
{
int i;
int found_valid = FALSE;
GdkPixbuf *pixbuf;
GdkPixbufLoader *pixbuf_loader;
gtk_init (&argc, &argv);
gdk_rgb_set_verbose (TRUE);
gdk_rgb_init ();
gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
gtk_widget_set_default_visual (gdk_rgb_get_visual ());
{
char *tbf_readlen = getenv("TBF_READLEN");
if(tbf_readlen) readlen = atoi(tbf_readlen);
}
{
char *tbf_bps = getenv("TBF_KBPS");
guint bps;
if (tbf_bps) {
bps = atoi(tbf_bps);
g_print ("Simulating %d kBytes/sec\n", bps);
readlen = (bps*1024)/10;
}
}
i = 1;
if (argc == 1) {
const gchar*** xpmp;
pixbuf = gdk_pixbuf_new_from_data (default_image, GDK_COLORSPACE_RGB, FALSE, 8,
DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_WIDTH * 3,
NULL, NULL);
new_testrgb_window (pixbuf, NULL);
xpmp = xpms;
while (*xpmp) {
pixbuf = gdk_pixbuf_new_from_xpm_data (*xpmp);
new_testrgb_window (pixbuf, NULL);
++xpmp;
}
found_valid = TRUE;
} else {
for (i = 1; i < argc; i++) {
pixbuf = gdk_pixbuf_new_from_file (argv[i]);
#if 0
pixbuf = gdk_pixbuf_rotate(pixbuf, 10.0);
#endif
if (pixbuf) {
new_testrgb_window (pixbuf, "File");
found_valid = TRUE;
}
}
#if 1
{
GtkWidget* rgb_window = NULL;
ProgressFileStatus status;
pixbuf_loader = gdk_pixbuf_loader_new ();
status.loader = pixbuf_loader;
status.rgbwin = &rgb_window;
status.buf = g_malloc (readlen);
gtk_signal_connect(GTK_OBJECT(pixbuf_loader),
"area_prepared",
GTK_SIGNAL_FUNC(progressive_prepared_callback),
&rgb_window);
gtk_signal_connect(GTK_OBJECT(pixbuf_loader),
"area_updated",
GTK_SIGNAL_FUNC(progressive_updated_callback),
&rgb_window);
status.imagefile = fopen (argv[1], "r");
g_assert (status.imagefile != NULL);
status.readlen = readlen;
status.timeout = gtk_timeout_add(100, update_timeout, &status);
}
#endif
}
if (found_valid)
gtk_main ();
return 0;
}

View File

@@ -18,3 +18,5 @@ Makefile.in
*.vrs
html
text
texinfo.tex
gtk-config.1

View File

@@ -3,12 +3,99 @@ Incompatible Changes from GTK+-1.0 to GTK+-1.2:
* GtkAcceleratorTable has been replaced with GtkAccelGroup
* GtkMenuFactory has been replaced with GtkItemFactory, although
a version of GtkMenuFactory is provided to ease compatibility.
a version of GtkMenuFactory is currently still provided to ease
the migration phase.
* GtkButton has been changed to derive from GtkBin.
* The GtkTypeInfo structures used in the gtk_*_type_init() functions have
changed a bit, the old format:
GtkTypeInfo bin_info =
{
"GtkBin",
sizeof (GtkBin),
sizeof (GtkBinClass),
(GtkClassInitFunc) gtk_bin_class_init,
(GtkObjectInitFunc) gtk_bin_init,
(GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL,
};
needs to be converted to:
static const GtkTypeInfo bin_info =
{
"GtkBin",
sizeof (GtkBin),
sizeof (GtkBinClass),
(GtkClassInitFunc) gtk_bin_class_init,
(GtkObjectInitFunc) gtk_bin_init,
/* reserved_1 */ NULL,
/* reserved_2 */ NULL,
(GtkClassInitFunc) NULL,
};
the GtkArgSetFunc and GtkArgGetFunc functions are not supported from the
type system anymore, and you should make sure that your code only fills
in these fields with NULL and doesn't use the deprecated function typedefs
(GtkArgSetFunc) and (GtkArgGetFunc) anymore.
* A number of Gtk functions were renamed. For compatibility, gtkcompat.h
#define's the old 1.0.x function names in terms of the new names.
To assure your Gtk program doesn't rely on outdated function
variants, compile your program with -DGTK_DISABLE_COMPAT_H to disable
the compatibility aliases.
Here is the list of the old names and replacements:
Old: Replacement:
gtk_accel_label_accelerator_width gtk_accel_label_get_accel_width
gtk_check_menu_item_set_state gtk_check_menu_item_set_active
gtk_container_border_width gtk_container_set_border_width
gtk_label_set gtk_label_set_text
gtk_notebook_current_page gtk_notebook_get_current_page
gtk_packer_configure gtk_packer_set_child_packing
gtk_paned_gutter_size gtk_paned_set_gutter_size
gtk_paned_handle_size gtk_paned_set_handle_size
gtk_scale_value_width gtk_scale_get_value_width
gtk_style_apply_default_pixmap gtk_style_apply_default_background (1)
gtk_toggle_button_set_state gtk_toggle_button_set_active
gtk_window_position gtk_window_set_position
To access a button's child, use GTK_BIN (button)->child, instead
of the old GTK_BUTTON (button)->child.
(1) gtk_style_apply_default_background() has an additional
argument, gboolean set_bg. This parameter should be FALSE if
the background is being set for a NO_WINDOW widget, otherwise
true.
* During the development phase of the 1.1.x line of Gtk certain functions
were deprecated and later removed. Functions affected are:
Removed: Replacement:
gtk_clist_set_border gtk_clist_set_shadow_type
gtk_container_block_resize gtk_container_set_resize_mode
gtk_container_unblock_resize gtk_container_set_resize_mode
gtk_container_need_resize gtk_container_check_resize
gtk_ctree_show_stub gtk_ctree_set_show_stub
gtk_ctree_set_reorderable gtk_clist_set_reorderable
gtk_ctree_set_use_drag_icons gtk_clist_set_use_drag_icons
gtk_entry_adjust_scroll (1)
gtk_object_class_add_user_signal gtk_object_class_user_signal_new
gtk_preview_put_row gtk_preview_put
gtk_progress_bar_construct gtk_progress_set_adjustment
gtk_scrolled_window_construct gtk_scrolled_window_set_{h|v}adjustment
gtk_spin_button_construct gtk_spin_button_configure
gtk_widget_thaw_accelerators gtk_widget_unlock_accelerators
gtk_widget_freeze_accelerators gtk_widget_lock_accelerators
(1) This function is no longer needed as GtkEntry should automatically
keep the scroll adjusted properly.
* Additionally, all gtk_*_interp functions were removed.
gtk_*_full versions were provided as of GTK+-1.0 and should
be used instead.
* GtkButton has been changed to derive from GtkBin.
To access a button's child, use GTK_BIN (button)->child, instead
of the old GTK_BUTTON (button)->child.
* The selection API has been slightly modified:
@@ -90,13 +177,6 @@ Incompatible Changes from GTK+-1.0 to GTK+-1.2:
been provided. However, you may want to consider migrating
your code to use the GLib main loop directly.
Minor known incompatibilities:
- gtk_idle_remove_by_data() and gtk_timeout_remove_by_data() now
work from a common pool of "input sources", so
gtk_idle_remove_by_data() will remove timeouts and
vice-versa.
* the GTK_BASIC flag was removed, and with it the corresponding
macro and function GTK_WIDGET_BASIC() and gtk_widget_basic().
@@ -126,13 +206,13 @@ Incompatible Changes from GTK+-1.0 to GTK+-1.2:
This means:
- You must call g_thread_init(), then gtk_thread_init()
in a threaded GTK+ program.
- You must call g_thread_init() before executing any
other GTK+ or GDK functions in a threaded GTK+ program.
- Idles, timeouts, and input functions are executed outside
of the main GTK+ lock. So, if you need to call GTK+
inside of such a callback, you must surround the callback
with a gtk_thread_enter()/gtk_thread_leave() pair.
with a gdk_threads_enter()/gdk_threads_leave() pair.
[ However, signals are still executed within the main
GTK+ lock ]
@@ -141,6 +221,10 @@ Incompatible Changes from GTK+-1.0 to GTK+-1.2:
that might be used in threaded programs, you _must_
surround timeouts and idle functions in this matter.
As always, you must also surround any calls to GTK+
not made within a signal handler with a
gdk_threads_enter()/gdk_threads_leave() pair.
- There is no longer a special --with-threads configure
option for GTK+. To use threads in a GTK+ program, you
must:
@@ -154,8 +238,37 @@ Incompatible Changes from GTK+-1.0 to GTK+-1.2:
gtk-config --libs gthread
* All functions matching g_message* are deprecated
and use the cflags from:
* Functions *_interp are deprecated, *_full variants are available
instead
gtk-config --cflags gthread
You can get these CFLAGS and LIBS by passing gthread
as the fourth parameter to the AM_PATH_GTK automake
macro.
* Prior to GTK+-1.2, there were two conflicting interpretations
of widget->requistion. It was either taken to be
the size that the widget requested, or that size
modified by calls to gtk_widget_set_usize(). In GTK+-1.2,
it is always interpreted the first way.
Container widgets are affected in two ways by this:
1) Container widgets should not pass widget->requisition
as the second parameter to gtk_widget_size_request().
Instead they should call it like:
GtkRequisition child_requisition;
gtk_widget_size_request (widget, &child_requisition);
2) Container widgets should not access child->requisition
directly. Either they should use the values returned
by gtk_widget_size_request(), or they should call
the new function:
void gtk_widget_get_child_requisition (GtkWidget *widget,
GtkRequisition *requisition);
which returns the requisition of the given widget, modified
by calls to gtk_widget_set_usize().

108
docs/Changes-1.4.txt Normal file
View File

@@ -0,0 +1,108 @@
Incompatible Changes from GTK+-1.2 to GTK+-1.4:
* The gdk_time* functions have been removed. This functionality
has been unused since the main loop was moved into GLib
prior to 1.2.
* The signature for GtkPrintFunc (used for gtk_item_factory_dump_items)
has been changed to take a 'const gchar *' instead of 'gchar *', to
match what we do for glib, and other similar cases.
* The detail arguments in the GtkStyleClass structure are now 'const gchar *'.
* gtk_paned_set_gutter_size() has been removed, since the small handle tab
has been changed to include the entire area previously occupied by
the gutter.
* GDK no longer selects OwnerGrabButtonMask for button presses. This means
that the automatic grab that occurs when the user presses a button
will have owner_events = FALSE, so all events are redirected to the
grab window, even events that would normally go to other windows of the
window's owner.
* GtkColorSelectionDialog has now been moved into it's own set of files,
gtkcolorseldialog.c and gtkcolorseldialog.h.
* gtk_widget_shape_combine_mask() now keeps a reference count on the
mask pixmap that is passed in.
* Type system changes:
- GTK_TYPE_OBJECT is not a fundamental type anymore. Type checks of the
style (GTK_FUNDAMENTAL_TYPE (some_type) == GTK_TYPE_OBJECT)
will not work anymore. As a replacement, (GTK_TYPE_IS_OBJECT (some_type))
can be used now.
- The following types vanished: GTK_TYPE_ARGS, GTK_TYPE_CALLBACK,
GTK_TYPE_C_CALLBACK, GTK_TYPE_FOREIGN. The corresponding GtkArg
fields and field access macros are also gone.
- The following type aliases vanished: GTK_TYPE_FLAT_FIRST,
GTK_TYPE_FLAT_LAST, GTK_TYPE_STRUCTURED_FIRST, GTK_TYPE_STRUCTURED_LAST.
- The type macros GTK_TYPE_MAKE() and GTK_TYPE_SEQNO() vanished, use of
GTK_FUNDAMENTAL_TYPE() is discouraged. Instead, the corresponding GType
API should be used: G_TYPE_FUNDAMENTAL(), G_TYPE_DERIVE_ID(),
G_TYPE_BRANCH_SEQNO(). Note that the GLib type system doesn't build new
type ids based on a global incremental sequential number anymore, but
numbers new type ids sequentially per fundamental type branch.
- The following type functions vanished/were replaced:
Old Function Replacement
gtk_type_query() - being investigated -
gtk_type_set_varargs_type() -
gtk_type_get_varargs_type() -
gtk_type_check_object_cast() g_type_check_instance_cast()
gtk_type_check_class_cast() g_type_check_class_cast()
gtk_type_describe_tree() -
gtk_type_describe_heritage() -
gtk_type_free() -
gtk_type_children_types() g_type_children()
gtk_type_set_chunk_alloc() GTypeInfo.n_preallocs
gtk_type_register_enum() g_enum_register_static()
gtk_type_register_flags() g_flags_register_static()
gtk_type_parent_class() g_type_parent() / g_type_class_peek_parent()
Use of g_type_class_ref() / g_type_class_unref() and g_type_class_peek()
is recommended over usage of gtk_type_class().
Use of g_type_register_static() / g_type_register_dynamic() is recommended
over usage of gtk_type_unique().
* Object system changes:
GtkObject derives from GObject, so is not the basic object type anymore.
This imposes the following source incompatible changes:
- GtkObject has no klass field anymore, an object's class can be retrived
with the object's coresponding GTK_<OBJECT>_GET_CLASS (object) macro.
- GtkObjectClass has no type field anymore, a class's type can be retrived
with the GTK_CLASS_TYPE (class) macro.
- GtkObjectClass does not introduce the finalize() and shutdown() methods
anymore. While shutdown() is intended for GTK+ internal use only, finalize()
is required by a variety of object implementations. GObjectClass.finalize
should be overriden here, e.g.:
static void gtk_label_finalize (GObject *gobject)
{
GtkLabel *label = GTK_LABEL (gobject);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void gtk_label_class_init (GtkLabelClass *class)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
gobject_class->finalize = gtk_label_finalize;
}
- the GtkObject::destroy signal can now be emitted multiple times on an object.
::destroy implementations should check that make sure that they take this
into account, by checking to make sure that resources are there before
freeing them. For example:
if (object->foo_data)
{
g_free (object->foo_data);
object->foo_data = NULL;
}
Also, ::destroy implementations have to release object references that
the object holds. Code in finalize implementations such as:
if (object->adjustment)
{
gtk_object_unref (object->adjustment);
object->adjustment = NULL;
}
have to be moved into the ::destroy implementations. The reason for doing
this is that all object reference cycles should be broken at destruction
time.

View File

@@ -101,36 +101,7 @@ FAQ_FILES=html/gtkfaq.html \
html/gtkfaq-7.html \
text/gtkfaq.txt
EXTRA_DIST = \
gtk-config.1 \
texinfo.tex \
macros.texi \
gtkdocs_fix \
gtkfaq.sgml \
gtk-config.txt \
gtk_tut.sgml \
gtk_tut_it.sgml \
gtk_tut_fr.sgml \
debugging.txt \
developers.txt \
refcounting.txt \
styles.txt \
text_widget.txt \
widget_system.txt \
gtk_tut_packbox1.gif \
gtk_tut_packbox2.gif \
html/gtk_tut_table.gif \
html/gtk_tut_packbox1.gif \
html/gtk_tut_packbox2.gif \
gtk_tut_table.gif \
html/gdk.html \
html/gdk_toc.html \
html/gtk.html \
html/gtk_toc.html \
$(TUTORIAL_FILES) \
$(TUTORIAL_FR_FILES) \
$(TUTORIAL_IT_FILES) \
$(FAQ_FILES)
html/gtk_tut_table.gif: gdk.html gtk.html
.PHONY: html htmldir faq tutorial tutorial_it tutorial_fr files
@@ -195,3 +166,36 @@ files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
EXTRA_DIST += \
Changes-1.2.txt \
debugging.txt \
developers.txt \
refcounting.txt \
styles.txt \
text_widget.txt \
widget_system.txt \
generation.txt \
gtk-config.txt \
gtk-config.1.in \
texinfo.tex \
macros.texi \
gtkdocs_fix \
gtkfaq.sgml \
gtk_tut.sgml \
gtk_tut_it.sgml \
gtk_tut_fr.sgml \
gtk_tut_packbox1.gif \
gtk_tut_packbox2.gif \
html/gtk_tut_table.gif \
html/gtk_tut_packbox1.gif \
html/gtk_tut_packbox2.gif \
gtk_tut_table.gif \
html/gdk.html \
html/gdk_toc.html \
html/gtk.html \
html/gtk_toc.html \
$(TUTORIAL_FILES) \
$(TUTORIAL_FR_FILES) \
$(TUTORIAL_IT_FILES) \
$(FAQ_FILES)

338
docs/defsformat.txt Normal file
View File

@@ -0,0 +1,338 @@
The overall syntax is:
(type-of-thing-being-defined name-used-to-refer-to-this-thing
(attribute-name attribute-value-depending-on-the-attribute)
(attribute-name attribute-value-depending-on-the-attribute)
(attribute-name attribute-value-depending-on-the-attribute))
Some definitions can have a c-declaration field that gives the C code
we parsed to arrive at the definition. The c-declaration is a quoted
string because it can contain parentheses and such.
Defined types and their attributes:
===
(module module-name
(submodule-of module-name)) ;; submodule is optional
Ex: (module Gtk)
Ex: (module Rgb
(submodule-of Gdk))
modules are later referred to with a list of module names, like
(Gdk Rgb) or (Gtk)
Object and boxed type definitions automatically create a submodule.
For example, GtkCList creates the module (module CList (submodule-of
(Gtk))) which is referred to as module (Gtk CList).
===
(type
(alias some-unique-identifier)
(in-module module-name) ;; optional, gchar* is not in a module
(gtk-type-id gtk-type-system-id) ;; optional, absent if this is not
;; in the type system
(is-parametric boolean) ;; optional default to #f
(in-c-name name-of-symbol-in-C)
(out-c-name name-of-symbol-in-C)
(inout-c-name name-of-symbol-in-C))
Ex: (type
(alias string)
(gtk-type-id GTK_TYPE_STRING)
(in-c-name "const gchar*")
(out-c-name "gchar**") ;; actually I'm not sure how strings work out/inout
(inout-c-name "gchar*"))
(type
(alias list)
(gtk-type-id GTK_TYPE_POINTER)
(is-parametric #t)
(in-c-name "GList*")
(out-c-name "GList**")
(inout-c-name "GList**"))
;; This one would be implied by the (object) def for GtkWidget I
;; think - (type) is only required for types that are not implied
;; by other definitions, such as int/boolean/etc.
(type
(alias GtkWidget)
(in-module (Gtk))
(gtk-type-id GTK_TYPE_WIDGET)
(in-c-name "GtkWidget*")
(inout-c-name "GtkWidget*")
(out-c-name "GtkWidget**"))
"Type" bindings are automatically assumed for objects, boxed types,
etc. as defined below.
The alias field is used to refer to the type later on.
Whenever a type alias can be used, it is also possible to use the
keyword "native", which implies that the type in question is too
C-specific to represent. Then a c-declaration will typically be
available for use.
C types containing [] or () are function pointers or arrays. For
arrays that don't specify a size, we just treat them as pointers. For
function pointers, we need special (type) syntax/attributes of some
kind, but since there basically aren't any of these right now in the
libs we care about we can just ignore them. For arrays that specify a
size ditto, you would handle them by adding an (array-size) attribute
or something or using the "native" keyword and skipping the (type)
stuff.
===
(object object-name
(in-module module-name-list)
(parent object-name optional-module-name-if-different)
(abstract boolean-is-abstract-class) ;; omit for default of #f
(c-name name-of-the-object-in-C)
(field (type-and-name type-alias-of-struct-field name-of-struct-field)
(access read-or-write-or-readwrite)))
Ex: (object Widget
(in-module (Gtk))
(parent Object) ;; could say (parent Object (Gtk))
(abstract #t)
(c-name GtkWidget)
(field (type-and-name GdkWindow* window) (access read)))
An "object" declaration automatically implies the type definition:
(type
(alias concat-module-elements-and-object-name)
(in-c-name pointer-to-c-name)
(out-c-name pointer-to-pointer-to-c-name)
(inout-c-name pointer-to-c-name))
Ex:
(type (alias GtkWidget)
(in-c-name GtkWidget*)
(out-c-name GtkWidget**)
(inout-c-name GtkWidget*))
It also implies a module that is the name broken into parts:
(module CTree
(submodule-of Gtk))
===
(function function-name
(in-module module-name-list) ;; "static methods" go in their
;; object's module
(is-constructor-of object-type-alias) ;; optional, marks a constructor
(c-name function-name)
(return-type return-value-type) ;; defaults to void
(caller-owns-return boolean-value) ;; defaults to #f
(can-return-null boolean-value) ;; defaults to #t
(parameter in-or-out-or-inout
(type-and-name parameter-type-alias parameter-name)
(type-parameter name-of-contained-type) ;; optional, requires parametric type
(c-declaration "c-type-and-name")) ;; c-declaration only required
;; if the type alias is "native"
(varargs #t) ;; has varargs at the end
)
Ex:
(function init
(in-module (Gdk Rgb)
(c-name gdk_rgb_init)))
Ex:
(function new
(in-module (Gdk Rgb Cmap))
(is-constructor-of GdkRgbCmap)
(c-name gdk_rgb_cmap_new)
(return-type GdkRgbCmap)
(caller-owns-return #t) ;; perhaps this could be implied by is-constructor-of
(parameter in (type-and-name array-of-guint32 colors))
(parameter in (type-and-name gint n_colors)))
Ex:
(function config_set_set_handler
(in-module (Gnome))
(c-name gnome_config_set_set_handler)
(parameter in (type-and-name native func)
(c-declaration "void (*func)(void*)"))
(parameter in (type-and-name gpointer data)))
===
(method method-name
(of-object object-name module-name)
;; retval/arg attributes as for (function), but with first parameter
;; omitted for non-constructors
)
Ex:
(method set_text
(of-object Label (Gtk))
(parameter (type-and-name const-gchar* str)))
===
(object-argument arg-name
(of-object object-we-are-an-argument-of optional-objects-module)
(type-id argument-type) ;; GTK_TYPE_OBJECT etc.
;; flags all default to #f
(readable bool-value)
(writeable bool-value)
(construct-only bool-value))
Ex:
(object-argument label
(of-object Label (Gtk))
(type GTK_TYPE_STRING)
(readable #t)
(writeable #t))
===
(signal signal-name
(run-action bool-value)
(run-first bool-value)
(run-last bool-value)
(of-object object-we-are-a-signal-of optional-objects-module)
;; return value and parameters as for a function, omitting the object
;; and user data parameters
;; what other properties matter for a signal?
)
Ex:
(signal select_row
(of-object CList (Gtk))
(run-first #t)
;; return type defaults to void
(parameter in (type-and-name gint row))
(parameter in (type-and-name gint column))
(parameter in (type-and-name GdkEvent* event)))
===
(enum enum-name
(in-module modname)
(c-name name-in-c)
(value (nick value-name-noprefixes-hyphen-lowercase) (c-name value-c-name)))
Ex:
(enum DirectionType
(in-module Gtk)
(c-name GtkDirectionType)
(value (nick tab-forward) (c-name GTK_DIR_TAB_FORWARD))
(value (nick tab-backward) (c-name GTK_DIR_TAB_BACKWARD))
(value (nick up) (c-name GTK_DIR_UP))
(value (nick down) (c-name GTK_DIR_DOWN))
(value (nick left) (c-name GTK_DIR_LEFT))
(value (nick right) (c-name GTK_DIR_RIGHT)))
(enum Pos
(in-module (Gtk CTree))
(c-name GtkCTreePos)
(value (nick before) (c-name GTK_CTREE_POS_BEFORE))
(value (nick as-child) (c-name GTK_CTREE_POS_AS_CHILD))
(value (nick after) (c-name GTK_CTREE_POS_AFTER)))
===
(flags) is just like enum, but some bindings may wrap enums and flags differently.
===
(boxed boxed-name
(in-module modname)
(c-name c-name)
(ref-func func-to-increase-refcount)
(copy-func func-to-copy)
(release-func func-to-destroy-or-decrement-refcount)
(field (type-and-name type-alias-of-struct-field name-of-struct-field) (access access-rule)))
It is never OK to use memcpy() to copy a boxed type, or use
malloc()/free() to alloc/free one.
Ex:
(boxed Pixmap
(in-module (Gdk))
(c-name GdkPixmap)
(ref-func pixmap_ref)
(release-func pixmap_unref))
An "object" declaration automatically implies the type definition:
(type
(alias concat-module-elements-and-boxed-name)
(in-c-name pointer-to-c-name)
(out-c-name pointer-to-pointer-to-c-name)
(inout-c-name pointer-to-c-name))
Ex:
(type (alias GdkPixmap)
(in-c-name GdkPixmap*)
(out-c-name GdkPixmap**)
(inout-c-name GdkPixmap*))
===
(struct struct-name
(in-module modname)
(c-name c-name)
(field (type-and-name type-alias-of-struct-field name-of-struct-field) (access access-rule)))
Unlike a boxed type, a struct type can be copied with memcpy() and
allocated on the stack or with g_malloc().
Ex:
(struct Rectangle
(in-module (Gdk))
(c-name GdkRectangle)
(field (type-and-name gint16 x) (access readwrite))
(field (type-and-name gint16 y) (access readwrite))
(field (type-and-name guint16 width) (access readwrite))
(field (type-and-name guint16 height) (access readwrite)))
Implies GdkRectangle type alias:
(type (alias GdkRectangle)
(in-c-name GdkRectangle*)
(out-c-name GdkRectangle*) ;; note - not the same as boxed types
(inout-c-name GdkRectangle*))
===
(user-function name
(in-module module)
(c-name c-typedef-name)
;; return-type and parameters as for (function)
)
Ex:
(user-function PrintFunc
(in-module (Gtk))
(parameter in (type-and-name gpointer func_data))
(parameter in (type-and-name gchar* str)))
===
(typedef new-name
(in-module module)
(c-name c-full-name)
(orig-type alias-of-orig-type))
Ex:
(typedef Type
(in-module (Gtk))
(c-name GtkType)
(orig-type guint))

103
docs/es/gtk.html Normal file
View File

@@ -0,0 +1,103 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ</TITLE>
<LINK HREF="gtkfaq-es-1.html" REL=next>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-1.html">Next</A>
Previous
Contents
<HR NOSHADE>
<H1>GTK+ FAQ</H1>
<H2>Nathan Froyd, Tony Gale, Shawn T. Amundson.</H2>Seis de Julio de 1998
<P><HR NOSHADE>
<EM>La intención de este documento es dar respuesta a las preguntas
realizadas con más frecuencia por parte de los programadores que utilizan GTK+ o simplemente por personas que desean utilizar GTK+. </EM>
<HR NOSHADE>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="gtkfaq-es-1.html">Información General</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-1.html#ss1.1">1.1 Autores</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.2">1.2 ¿Qué es GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.3">1.3 ¿Qué es el + en GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.4">1.4 ¿La G en GTK+ significa General, Gimp, o GNU?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.5">1.5 ¿Dónde está la documentación para GTK?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.6">1.6 ¿Hay alguna lista de correo (o archivo de lista de correo) para GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.7">1.7 ¿La lista gtk-list no ha tenido tráfico alguno por días,</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.8">1.8 Cómo conseguir ayuda con GTK+</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.9">1.9 Cómo reportar errores en GTK+</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.10">1.10 ¿Qué aplicaciones se han escrito con GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.11">1.11 Estoy buscando una aplicación que escribir en GTK+. ¿Qué tal un cliente IRC?</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="gtkfaq-es-2.html">Cómo encontrar, configurar, instalar y comprobar GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-2.html#ss2.1">2.1 ¿Qué necesito para correr GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.2">2.2 ¿Dónde puedo conseguir GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.3">2.3 ¿Cómo configuro/compilo GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.4">2.4 Cuando compilo GTK+ obtengo un error como: <CODE>make: file `Makefile' line 456: Syntax error</CODE></A>
<LI><A HREF="gtkfaq-es-2.html#ss2.5">2.5 ¡He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con él!</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.6">2.6 Cuando compilo programas con GTK+, obtengo mensajes de error del compilador diciendo que no es capaz de encontrar <CODE>"glibconfig.h"</CODE>.</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.7">2.7 Cuando instalo El GIMP, configure reporta que no puede encontrar GTK.</A>
</UL>
<P>
<H2><A NAME="toc3">3.</A> <A HREF="gtkfaq-es-3.html">Desarrollo de GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-3.html#ss3.1">3.1 ¿Qué es esta cosa CVS de la cual todo el mundo habla, y cómo puedo acceder a ella?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.2">3.2 ¿Cómo puedo contribuír a GTK+?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.3">3.3 ¿Cómo averiguo si mi parche fue aplicado, y si no, por qué no?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.4">3.4 ¿Cuál es la política sobre la incorporación de nuevos <EM>widgets</EM> en la librería?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.5">3.5 ¿Hay alguien trabajando en atamientos para otros lenguajes distintos a C?</A>
</UL>
<P>
<H2><A NAME="toc4">4.</A> <A HREF="gtkfaq-es-4.html">Desarrollo con GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-4.html#ss4.1">4.1 ¿Cómo empiezo?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.2">4.2 ¿Qué <EM>widgets</EM> existen en GTK?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.3">4.3 ¿GTK+ es seguro ante múltiples hilos?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.4">4.4 ¿Cómo puedo prevenir el redibujar y reacomodar tamaños mientras cambio múltiples <EM>widgets</EM>?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.5">4.5 ¿Cómo atrapo un evento de doble tecleo (en un <EM>widget</EM> de lista, por ejemplo)?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.6">4.6 ¿Cómo puedo averiguar cuál es la selección de un GtkList?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.7">4.7 ¿Acaso es posible desplegar un texto que se recorte para que quepa dentro del lugar que tenga asignado?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.8">4.8 ¿Por qué el contenido de un botón no se mueve al presionar el botón? Aquí les envío un parche para que funcione de esa forma...</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.9">4.9 ¿Cómo puedo definir una línea de separación como en un menú?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.10">4.10 ¿Cómo puedo darle justificación a la derecha a un menú, como Help, cuando utilizo MenuFactory?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.11">4.11 ¿Cómo hago mi ventana modal? / ¿Cómo hago una sóla ventana activa?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.12">4.12 ¿Por qué mi <EM>widget</EM> (ej. progressbar) no se actualiza?</A>
</UL>
<P>
<H2><A NAME="toc5">5.</A> <A HREF="gtkfaq-es-5.html">Acerca de gdk</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-5.html#ss5.1">5.1 ¿Qué es gdk?</A>
<LI><A HREF="gtkfaq-es-5.html#ss5.2">5.2 ¿Cómo utilizo la asignación de colores?</A>
</UL>
<P>
<H2><A NAME="toc6">6.</A> <A HREF="gtkfaq-es-6.html">Acerca de glib</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-6.html#ss6.1">6.1 ¿Qué es glib?</A>
<LI><A HREF="gtkfaq-es-6.html#ss6.2">6.2 ¿Por qué utilizar g_print, g_malloc, g_strdup y funciones compañeras de glib?</A>
</UL>
<P>
<H2><A NAME="toc7">7.</A> <A HREF="gtkfaq-es-7.html">Contribuciones al GTK+ FAQ, Mantenedores y Copyright</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-7.html#ss7.1">7.1 Nota del Traductor</A>
</UL>
<HR NOSHADE>
<A HREF="gtkfaq-es-1.html">Next</A>
Previous
Contents
</BODY>
</HTML>

192
docs/es/gtkfaq-es-1.html Normal file
View File

@@ -0,0 +1,192 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ: Información General</TITLE>
<LINK HREF="gtkfaq-es-2.html" REL=next>
<LINK HREF="gtkfaq-es.html#toc1" REL=contents>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-2.html">Next</A>
Previous
<A HREF="gtkfaq-es.html#toc1">Contents</A>
<HR NOSHADE>
<H2><A NAME="s1">1. Información General</A></H2>
<H2><A NAME="ss1.1">1.1 Autores</A>
</H2>
<P>Los autores de GTK+ son:
<P>
<UL>
<LI>Peter Mattis (petm@xcf.berkeley.edu)</LI>
<LI>Spencer Kimball (spencer@xcf.berkeley.edu)</LI>
<LI>Josh MacDonald (jmacd@xcf.berkeley.edu)</LI>
</UL>
GTK+ se ditribuye bajo la licencia de Librería Pública General de GNU
<P>
<H2><A NAME="ss1.2">1.2 ¿Qué es GTK+?</A>
</H2>
<P>GTK+ es un pequeño y eficiente conjunto de <EM>widgets</EM>, diseñados
con un aspecto y sentir general a Motif. Contiene <EM>widgets</EM> comúnes
y algúnos <EM>widgets</EM> más complejos como una selección de
archivos, y <EM>widgets</EM> de selección de colores.
<P>GTK+ proporciona algunas características únicas. (No tengo conocimiento
de otra librería de <EM>widge>
<HR><H3>Transfer interrupted!</H3>
enos).
Por ejemplo, un botón no contiene una etiqueta, contiene un <EM>widget</EM>
hijo, que en muchas instancias será una etiqueta. Sin embargo, el
<EM>widget</EM> hijo también puede ser un <EM>pixmap</EM> (mapa de pixels),
imagén o cualquier combinación posible que desee el programador. Toda la
librería es así de flexible.
<P>
<H2><A NAME="ss1.3">1.3 ¿Qué es el + en GTK+?</A>
</H2>
<P>Peter Mattis informó a la lista de correo gtk:
<BLOCKQUOTE>
"Escribí originalmente gtk el cual incluía tres librerías,
libglib, libgdk y libgtk. Era caracterizado por una jerarquía de
<EM>widget</EM> plana. O sea, no podías derivar un nuevo
<EM>widget</EM> de uno ya existente. Contenía un mecanismo de
<EM>callback</EM> (llamada) más estándar en lugar del mecanismo
de señales ahora presente en gtk+. El + fue agregado para distinguir
entre la versión original de gtk y la nueva versión. Pueden pensar
en ello como una ampliación al gtk original que agrega características
orientadas o objetos."
</BLOCKQUOTE>
<P>
<H2><A NAME="ss1.4">1.4 ¿La G en GTK+ significa General, Gimp, o GNU?</A>
</H2>
<P>Peter Mattis informó a la lista de correo gtk:
<BLOCKQUOTE>
"Pienso que la última vez que Spencer y yo hablamos al respecto nos
decidimos por GTK = Gimp ToolKit. Pero no estoy seguro. Sin embargo,
definitivamente no es GNU."
</BLOCKQUOTE>
<P>
<H2><A NAME="ss1.5">1.5 ¿Dónde está la documentación para GTK?</A>
</H2>
<P>
En el directorio doc/ de la distribución de GTK+ encontrarás
el material de referencia para GTK y GDK, este FAQ y el tutor de GTK.
<P>Adicionalmente, puedes encontrar enlaces a versiones HTML de estos
documentos al ir a
<A HREF="http://www.gtk.org/">http://www.gtk.org/</A>.
<P>El Tutor y el FAQ también se pueden encontrar en
<A HREF="http://www.geocities.com/ResearchTriangle/Lab/4299/">http://www.geocities.com/ResearchTriangle/Lab/4299/</A>.
<P>
<H2><A NAME="ss1.6">1.6 ¿Hay alguna lista de correo (o archivo de lista de correo) para GTK+?</A>
</H2>
<P>Hay dos listas de correo:
<UL>
<LI>Una lista de correo para la discusión del desarrollo de aplicaciones
basadas en GTK se hospeda en gtk-app-devel-list@redhat.com. Para suscribirse
envíe un correo electrónico a
<A HREF="mailto:gtk-app-devel-list-request@redhat.com">gtk-app-devel-list-request@redhat.com</A> con <EM>subscribe</EM> en el
campo <B>subject</B>.
<P>
</LI>
<LI>Una lista de correo para la discusión del desarrollo de GTK se hospeda
en gtk-list@redhat.com. Para suscribirse envíe un correo electrónico
a
<A HREF="mailto:gtk-list-request@redhat.com">gtk-list-request@redhat.com</A> con <EM>subscribe</EM>
en el campo <B>subject</B>.
<P>Un archivo escudriñable de la lista de correo puede ser encontrado en
<A HREF="http://archive.redhat.com/gtk-list">http://archive.redhat.com/gtk-list</A></LI>
</UL>
<H2><A NAME="ss1.7">1.7 ¿La lista gtk-list no ha tenido tráfico alguno por días,</A>
está muerta?</H2>
<P>No, todos están ocupados codificando.
<P>
<H2><A NAME="ss1.8">1.8 Cómo conseguir ayuda con GTK+</A>
</H2>
<P>Primero, asegúrate que tu pregunta no esté respondida en la
documentación, este FAQ o el tutor. ¿Hecho? ¿Estás seguro de que
lo has hecho, verdad? En ese caso, el mejor lugar para hacer preguntas es
la lista de correo de GTK+.
<P>
<H2><A NAME="ss1.9">1.9 Cómo reportar errores en GTK+</A>
</H2>
<P>Los reportes de errores se deben enviar a la lista de correo de GTK+.
<P>
<H2><A NAME="ss1.10">1.10 ¿Qué aplicaciones se han escrito con GTK+?</A>
</H2>
<P>Algunas aplicaciones que utilizan GTK+ son:
<UL>
<LI>GIMP (
<A HREF="http://www.XCF.Berkeley.EDU/~gimp/">http://www.XCF.Berkeley.EDU/~gimp/</A> ),
un programa de manipulación de imágenes</LI>
<LI>Gsumi (
<A HREF="http://www.msc.cornell.edu/~otaylor/gsumi/gsumi.html">http://www.msc.cornell.edu/~otaylor/gsumi/gsumi.html</A>),
un divertido programa para rayar en blanco y negro con soporte para
XInput.</LI>
<LI>GUBI (
<A HREF="http://www.SoftHome.net/pub/users/timj/gubi/index.htm">http://www.SoftHome.net/pub/users/timj/gubi/index.htm</A>),
un constructor de interface de usuario</LI>
<LI>Gzilla (
<A HREF="http://www.levien.com/gzilla/">http://www.levien.com/gzilla/</A>),
un navegador del web</LI>
<LI>SANE (
<A HREF="http://www.azstarnet.com/~axplinux/sane/">http://www.azstarnet.com/~axplinux/sane/</A> ),
una interface universal para <EM>scanner</EM></LI>
<LI>XQF (
<A HREF="http://www.botik.ru/~roma/quake/">http://www.botik.ru/~roma/quake/</A>),
un lanzador y navegador de servidores de QuakeWorld/Quake2</LI>
<LI>ElectricEyes (
<A HREF="http://www.labs.redhat.com/ee.shtml">http://www.labs.redhat.com/ee.shtml</A>),
un visor de imágenes que se dirige a ser un reemplazo libre de xv</LI>
<LI>GPK - the General Proxy Kit (
<A HREF="http://www.humanfactor.com/gpk/">http://www.humanfactor.com/gpk/</A>),
una librería agregable que permite accesso seguro a GTK+
ante múltiples hilos</LI>
<LI>GCK - the General Convenience Kit (
<A HREF="http://www.ii.uib.no/~tomb/gck.html">http://www.ii.uib.no/~tomb/gck.html</A>),
funciones misceláneas cuya intención es facilitar el manejo de
colores, construcción de IU (interfaces de usuario), operaciones
vectoriales, y funciones matemáticas</LI>
<LI>GDK Imlib (
<A HREF="http://www.labs.redhat.com/imlib/">http://www.labs.redhat.com/imlib/</A>),
una librería de manipulación y carga rápida de imágenes para
GDK </LI>
</UL>
<P>Adicionalmente a lo de arriba, el proyecto GNOME
(
<A HREF="http://www.gnome.org">http://www.gnome.org</A>)
utiliza GTK+ para construír un escritorio libre para Linux. Muchos más
programas pueden ser encontrados ahí.
<P>
<H2><A NAME="ss1.11">1.11 Estoy buscando una aplicación que escribir en GTK+. ¿Qué tal un cliente IRC?</A>
</H2>
<P>
<P>Pregunte en gtk-list para sugerencias. Actualmente hay por lo menos cuatro
clientes IRC endesarrollo.
<P>
<UL>
<LI>girc. (Incluído con GNOME)</LI>
<LI>Bezerk (
<A HREF="http://www.gtk.org/~trog/">http://www.gtk.org/~trog/</A>)</LI>
<LI>gsirc. (¿Localización?)</LI>
<LI>Gnirc. (
<A HREF="http://www.imaginet.fr/~dramboz/gnirc">http://www.imaginet.fr/~dramboz/gnirc</A>)</LI>
</UL>
<P>
<P>
<HR NOSHADE>
<A HREF="gtkfaq-es-2.html">Next</A>
Previous
<A HREF="gtkfaq-es.html#toc1">Contents</A>
</BODY>
</HTML>

195
docs/es/gtkfaq-es-2.html Normal file
View File

@@ -0,0 +1,195 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ: Cómo encontrar, configurar, instalar y comprobar GTK+</TITLE>
<LINK HREF="gtkfaq-es-3.html" REL=next>
<LINK HREF="gtkfaq-es-1.html" REL=previous>
<LINK HREF="gtkfaq-es.html#toc2" REL=contents>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-3.html">Next</A>
<A HREF="gtkfaq-es-1.html">Previous</A>
<A HREF="gtkfaq-es.html#toc2">Contents</A>
<HR NOSHADE>
<H2><A NAME="s2">2. Cómo encontrar, configurar, instalar y comprobar GTK+</A></H2>
<H2><A NAME="ss2.1">2.1 ¿Qué necesito para correr GTK+?</A>
</H2>
<P>Para compilar GTK+, todo lo que necesita es un compilador de C (gcc) y
el Sistema X Windows y librerías asociadas en su sistema.
<P>
<H2><A NAME="ss2.2">2.2 ¿Dónde puedo conseguir GTK+?</A>
</H2>
<P>El sitio canónico es:
<PRE>
ftp://ftp.gtk.org/pub/gtk
</PRE>
Por supuesto, cualquier espejo de ftp.gtk.org debe tener las últimas
versiones también.
<P>
<H2><A NAME="ss2.3">2.3 ¿Cómo configuro/compilo GTK+?</A>
</H2>
<P>Por lo general, todo lo que necesita es emititir los comandos:
<PRE>
./configure
make
</PRE>
en el directorio gtk+-version/.
<P>
<H2><A NAME="ss2.4">2.4 Cuando compilo GTK+ obtengo un error como: <CODE>make: file `Makefile' line 456: Syntax error</CODE></A>
</H2>
<P>Asegúrese de que utiliza GNU make (verifique con <CODE>make -v</CODE>). Hay
varias versiones extrañas y maravillosas de make por ahí, y no todas
manejan los <EM>Makefiles</EM> generados automáticamente.
<P>
<P>
<H2><A NAME="ss2.5">2.5 ¡He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con él!</A>
</H2>
<P>Este problema se encuentra comúnmente cuando las librerías GTK+ no pueden
ser localizadas o tienen la versión incorrecta. Generalmente, el compilador
se quejará de un 'unresolved symbol' (símbolo no resuelto). Hay dos cosas
que necesita verificar:
<P>
<UL>
<LI>Asegúrese de que las librerías pueden ser encontradas. Usted desea editar
/etc/ld.so.conf para incluír los directorios que contienen las librerías
GTK, de manera que luzca como:
<PRE>
/usr/X11R6/lib
/usr/local/lib
</PRE>
Luego necesita correr /sbin/ldconfig como root. Puede encontrar que directorio
utiliza GTK al ejecutar
<PRE>
gtk-config --libs
</PRE>
Si su sitema no utiliza ld.so para encontrar librerías (como Solaris),
entonces tendrá que utilizar la variable de ambiente LD_LIBRARY_PATH
(o compilar el camino en su programa, lo cual no voy a cubrir aquí). Así
que, con un shell tipo Bourne usted puede hacer (si sus librerías GTK
están en /usr/local/lib):
<PRE>
export LD_LIBRARY_PATH=/usr/local/lib
</PRE>
y en un csh, usted puede hacer:
<PRE>
setenv LD_LIBRARY_PATH /usr/local/lib
</PRE>
</LI>
<LI>Asegúrese de que el enlazador está ha encontrado el conjunto correcto de
librerías. Si tiene una distribución de Linux que instala GTK+ (ej.
RedHat 5.0) entonces esta versión anterior puede ser utilizada. Ahora
(asumiendo que tiene un sistema RedHat), emita el comando
<PRE>
rpm -e gtk gtk-devel
</PRE>
También puede querer remover los paquetes que dependen de gtk (rpm le
dirá cuáles son). Si no tiene un sistema Linux RedHat, verifique
para estar seguro que ni
<PRE>
/usr/lib
</PRE>
ni
<PRE>
/usr/local/lib
</PRE>
contengan alguna de las librerías libgtk, libgdk, libglib, or libgck.
Si existen, elimínelas (y cualquier archivo <EM>include</EM>, como
/usr/include/gtk y /usr/include/gdk) y reinstale gtk+.</LI>
</UL>
<P>
<H2><A NAME="ss2.6">2.6 Cuando compilo programas con GTK+, obtengo mensajes de error del compilador diciendo que no es capaz de encontrar <CODE>"glibconfig.h"</CODE>.</A>
</H2>
<P>El archivo de encabezado "glibconfig.h" se movió al directorio
$exec_prefix/lib/glib/include/. $exec_prefix es el directorio que fue
especificado al dar la bandera --exec-prefix a ./configure cuando se
compiló GTK+. Va por omisión a $prefix, (especificado con --prefix),
que en su lugar va por omisión a /usr/local/.
<P>Ésto se hizo asi porque "glibconfig.h" incluye información
dependiente de la arquitectura, y el resto de los archivos <EM>include</EM>
se colocan en $prefix/include, el cual puede ser compartido entre distintas
arquitecturas.
<P>GTK+ incluye un guión para el intérprete de comandos,
<CODE>gtk-config</CODE>, el cual hace fácil
encontrar los caminos correctos de inclusión. El tutor de GTK+ incluye
un ejemplo de como utilizar <CODE>gtk-config</CODE> para una compilación simple
desde la línea de comandos. Para información sobre configuraciones más
complicadas, vea el archivo docs/gtk-config.txt en la distribución de GTK+.
<P>Si está intentando compilar un programa viejo, puede bordear el problema
al configurarlo con una línea de comando como:
<P>
<BLOCKQUOTE><CODE>
<PRE>
CPPFLAGS="-I/usr/local/include/glib/include" ./configure
</PRE>
</CODE></BLOCKQUOTE>
<P>para intérpretes de comandos compatibles con Bourne como bash, o para
variantes csh:
<P>
<BLOCKQUOTE><CODE>
<PRE>
setenv CPPFLAGS "-I/usr/local/include/glib/include"
./configure
</PRE>
</CODE></BLOCKQUOTE>
<P>(Sustituya el valor apropiado de $exec_prefix para /usr/local.)
<P>
<H2><A NAME="ss2.7">2.7 Cuando instalo El GIMP, configure reporta que no puede encontrar GTK.</A>
</H2>
<P>Hay varias razones comúnes para esto:
<UL>
<LI>Usted tiene una versión vieja de GTK instalada en algún lugar.
RedHat 5.0, por ejemplo, instala una copia anterior de GTK que no funcinará
con las últimas veriones de GIMP. Debe eliminar esta copia vieja, pero
observe que en el caso de RedHat 5.0 esto dañará las aplicaciones
<CODE>control-panel</CODE>.
<P>
</LI>
<LI><CODE>gtk-config</CODE> (u otro componente de GTK) no se encuentra en el camino
(<EM>path</EM>),
o hay una versión vieja en su sistema. Teclee:
<PRE>
gtk-config --version
</PRE>
para verificar ambos casos. Ésto debe devolver un valor de por lo menos
0.99.8 para que las cosas funcionen correctamente con GIMP 0.99.23. Si
devuelve un valor distinto a lo que usted espera, entonces tiene una versión
vieja de GTK en su sistema.
<P>
</LI>
<LI>El guión ./configure no puede encontrar las librerías GTK. Como
./configure compila varios programas de prueba, necesita poder encontrar las
librerías GTK. Revise la pregunta anterior para obtener más ayuda al
respecto.</LI>
</UL>
<P>Si nada de lo anterior ayuda, entonces revise config.log, el cual es
generado por ./configure cuando corre. Al final estará la última
acción tomada antes de fallar. Si es una sección de código fuente,
copie el código fuente a un archivo y compilelo con la línea
jústamente arriba de él en config.log. Si la compilación tiene
éxito, intente ejecutarlo.
<P>
<HR NOSHADE>
<A HREF="gtkfaq-es-3.html">Next</A>
<A HREF="gtkfaq-es-1.html">Previous</A>
<A HREF="gtkfaq-es.html#toc2">Contents</A>
</BODY>
</HTML>

198
docs/es/gtkfaq-es-3.html Normal file
View File

@@ -0,0 +1,198 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ: Desarrollo de GTK+</TITLE>
<LINK HREF="gtkfaq-es-4.html" REL=next>
<LINK HREF="gtkfaq-es-2.html" REL=previous>
<LINK HREF="gtkfaq-es.html#toc3" REL=contents>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-4.html">Next</A>
<A HREF="gtkfaq-es-2.html">Previous</A>
<A HREF="gtkfaq-es.html#toc3">Contents</A>
<HR NOSHADE>
<H2><A NAME="s3">3. Desarrollo de GTK+</A></H2>
<H2><A NAME="ss3.1">3.1 ¿Qué es esta cosa CVS de la cual todo el mundo habla, y cómo puedo acceder a ella?</A>
</H2>
<P>CVS es el Concurrent Version System (Sistema de Versión Concurrente) y es
un medio muy popular de control de versión para proyectos de software.
Está diseñado para permitir que múltiples autores puedan operar de
manera simultánea en el mismo árbol fuente. Este árbol fuente es
mantenido centralizadamente, pero cada desarrollador tiene una réplica local
de este repositorio en el cual hacen sus cambios.
<P>Los desarrolladores de GTK+ utilizan un repositorio CVS para almacenar la
copia maestra de la actual versión en desarrollo de GTK+. Como tal,
la gente que desea contribuír con parches a GTK+ deben generarlos para la
versión del CVS. La gente normal debe utilizar los paquetes liberados.
<P>El conjunto de herramientas CVS está disponible como paquetes RPM en los
sitios usuales de RedHat. La última versión está disponible en
<A HREF="http://download.cyclic.com/pub/">&lt;http://download.cyclic.com/pub/&gt;</A><P>Cualquiera puede bajar la última versión CVS de GTK+ utilizando
acceso anónimo con los siguientes pasos:
<UL>
<LI> En un descendiente del intérprete de comandos bourne (ej. bash)
teclee:
<PRE>
export CVSROOT=':pserver:anonymous@anoncvs.gimp.org:/debian/home/gnomecvs'
</PRE>
</LI>
<LI>Luego, la primera vez que el árbol fuente se retira, se necesita
un <EM>login</EM> cvs.
<PRE>
cvs login
</PRE>
Ésto hará que se le solicite una clave de acceso. No hay clave de
acceso para cvs.gimp.org, así que solo ingrese un retorno de carro.</LI>
<LI>Para conseguir el árbol y colocarlo en un subdirectorio de su
directorio de trabajo actual, emita el comando:
<PRE>
cvs -z3 get gtk+
</PRE>
Observe que con el árbol GTK+ 1.1, glib se ha movido a un módulo CVS
separado, de manera que si no tiene glib instalado necesitará conseguirlo
igualmente:
<PRE>
cvs -z3 get glib
</PRE>
</LI>
</UL>
<H2><A NAME="ss3.2">3.2 ¿Cómo puedo contribuír a GTK+?</A>
</H2>
<P>Es simple. Si algo no funciona en un programa como usted piensa que debería,
revise la documentación para asegurarse de que no ha pasado algo por alto.
Si es un verdadero error o característica perdida, rastréelo en el
fuente de GTK+, cámbielo, y entonces genere un parche en la forma de un
'diff de contexto'. Esto puede hacerse utilizando un comando como
<CODE>diff -ru &lt;oldfile&gt; &lt;newfile&gt;</CODE>. Entonces envíe el archivo
de parche a:
<PRE>
ftp://ftp.gtk.org/incoming
</PRE>
junto a un archivo README. ¡Asegúrese de seguir las convenciones de
asignación de nombres o su parche será borrado! Los archivos deben ser
de esta forma:
<PRE>
gtk-&lt;username>-&lt;date yymmdd-n>.patch.gz
gtk-&lt;username>-&lt;date yymmdd-n>.patch.README
</PRE>
La "n" en la fecha indica un número único (empezando de 0)
de parches que subió ese día. Debe ser 0, a menos que envíe más de
un parche en el mismo día.
<P>Example:
<PRE>
gtk-gale-982701-0.patch.gz
gtk-gale-982701-0.patch.README
</PRE>
Una vez que usted envía <EM>lo que sea</EM>, envíe el README a
ftp-admin@gtk.org
<P>
<H2><A NAME="ss3.3">3.3 ¿Cómo averiguo si mi parche fue aplicado, y si no, por qué no?</A>
</H2>
<P>Los parches enviados se mandarán a
<CODE>ftp://ftp.gtk.org/pub/gtk/patches</CODE>
donde uno del equipo de desarrollo de GTK+ los recogerá. Si son aplicados,
serán movidos a <CODE>/pub/gtk/patches/old</CODE>.
<P>Los parches que no son aplicados, por cualquier razón, se mandarán a
<CODE>/pub/gtk/patches/unapplied</CODE> o <CODE>/pub/gtk/patches/outdated</CODE>.
En este punto puede preguntar en la lista de correo <CODE>gtk-list</CODE> el porqué
su parche no fué aplicado. Hay muchas razones posibles por las cuales un
parche no se aplica, pasando desde que no se puede aplicar limpiamente, hasta
que no es correcto. No se rinda si no logró que su parche se aplicase a la
primera.
<P>
<H2><A NAME="ss3.4">3.4 ¿Cuál es la política sobre la incorporación de nuevos <EM>widgets</EM> en la librería?</A>
</H2>
<P>Esto corresponde a los autores, de manera que tendrá que preguntarles
al terminar su <EM>widget</EM>. Como una guía general, los <EM>widgets</EM>
que por lo general son útiles, funcionan, y no son una desgracia al conjunto
de <EM>widgets</EM> serán incluídos con mucho gusto.
<P>
<H2><A NAME="ss3.5">3.5 ¿Hay alguien trabajando en atamientos para otros lenguajes distintos a C?</A>
</H2>
<P>Sí. Existe
<UL>
<LI>una envoltura de C++ para GTK+ llamada gtk--. Puede encontrar el su
página hogar en:
<A HREF="http://www.cs.tut.fi/~p150650/gtk/gtk--.html">http://www.cs.tut.fi/~p150650/gtk/gtk--.html</A>.
El sitio FTP es
<A HREF="ftp://ftp.gtk.org/pub/gtk/gtk--">ftp://ftp.gtk.org/pub/gtk/gtk--</A>.
<P>
<P>
</LI>
<LI>Hay dos ataduras para Objective-C en desarrollo:
<UL>
<LI>El paquete elegido por el
<A HREF="http://www.gnome.org/">proyecto GNOME</A> es obgtk. Objgtk se basa en la clase Object y es
mantenido por
<A HREF="mailto:sopwith@cuc.edu">Elliot Lee</A>.
Aparentemente, objgtk se está aceptando como el atamiento `estándar'
de Objective-C para GTK+.
</LI>
<LI> Si usted está más inclinado al
<A HREF="http://www.gnustep.org/">proyecto GNUstep</A>,
puede que quiera revisar GTKKit por
<A HREF="mailto:helge@mdlink.de">Helge He&szlig;</A>.
La intención es crear un atamiento GTK+ utilizando FoundationKit.
GTKKit incluye linduras como escribir un archivo con una plantilla tipo
XML para construír una interface GTK+.
</LI>
</UL>
<P>
</LI>
<LI>Atamientos Perl
<A HREF="ftp://ftp.gtk.org/pub/gtk/perl">ftp://ftp.gtk.org/pub/gtk/perl</A>
<P>
</LI>
<LI>Atamientos Guile. La página hogar se encuentra en
<A HREF="http://www.ping.de/sites/zagadka/guile-gtk">http://www.ping.de/sites/zagadka/guile-gtk</A>.
Por cierto, Guile es la implantación del Proyecto GNU de Scheme R4RS (el
estándar). Si le gusta Scheme, querrá darle un vistazo a éste.
<P>
<P>
</LI>
<LI>David Monniaux informa:
<BLOCKQUOTE>
He empezado un sistema de atamiento gtk-O'Caml. Las bases del sistema,
incluyendo <EM>callbacks</EM>, funcionan bien.
El desarrollo actual se encuentra en
<A HREF="http://www.ens-lyon.fr/~dmonniau/arcs">http://www.ens-lyon.fr/~dmonniau/arcs</A></BLOCKQUOTE>
</LI>
<LI>Se han hecho varios atamientos para python:
<P>
<UL>
<LI>pygtk se encuentra en
<A HREF="http://www.daa.com.au/~james/pygtk">http://www.daa.com.au/~james/pygtk</A> y
<A HREF="ftp://ftp.gtk.org/pub/gtk/python">ftp://ftp.gtk.org/pub/gtk/python</A></LI>
<LI>python-gtk se encuentra en
<A HREF="http://www.ucalgary.ca/~nascheme/python-gtk">http://www.ucalgary.ca/~nascheme/python-gtk</A></LI>
</UL>
<P>
</LI>
<LI>Hay un <EM>widget</EM> disponible para GTK+. Agárrelo en
<A HREF="http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html">http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html</A>
</LI>
</UL>
<P>
<HR NOSHADE>
<A HREF="gtkfaq-es-4.html">Next</A>
<A HREF="gtkfaq-es-2.html">Previous</A>
<A HREF="gtkfaq-es.html#toc3">Contents</A>
</BODY>
</HTML>

435
docs/es/gtkfaq-es-4.html Normal file
View File

@@ -0,0 +1,435 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ: Desarrollo con GTK+</TITLE>
<LINK HREF="gtkfaq-es-5.html" REL=next>
<LINK HREF="gtkfaq-es-3.html" REL=previous>
<LINK HREF="gtkfaq-es.html#toc4" REL=contents>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-5.html">Next</A>
<A HREF="gtkfaq-es-3.html">Previous</A>
<A HREF="gtkfaq-es.html#toc4">Contents</A>
<HR NOSHADE>
<H2><A NAME="s4">4. Desarrollo con GTK+</A></H2>
<H2><A NAME="ss4.1">4.1 ¿Cómo empiezo?</A>
</H2>
<P>Después de que ha instalado GTK+, hay un par de cosas que pueden
facilitarle el desarrollo de aplicaciones con él. Está el Tutor de
GTK+
<A HREF="http://www.gtk.org/tutorial/">&lt;http://www.gtk.org/tutorial/&gt;</A>, el cual está en desarrollo
activo. Este tutorial le introducirá en la escritura de aplicaciones
utilizando C.
<P>El Tutor no contiene (todavía) información sobre todos los
<EM>widgets</EM> que existen en GTK+. Para código de ejemplo sobre la
utilización básica de todos los <EM>widgets</EM> de GTK+, debe ver
el archivo gtk/testgtk.c (y archivos fuentes asociados) en la distribución
GTK+. Ver estos ejemplos le dará una buena base sobre lo que pueden hacer
los <EM>widgets</EM>.
<P>
<H2><A NAME="ss4.2">4.2 ¿Qué <EM>widgets</EM> existen en GTK?</A>
</H2>
<P>El Tutor de GTK+ lista los siguientes <EM>widgets</EM>:
<PRE>
GtkObject
+GtkData
| +GtkAdjustment
| `GtkTooltips
`GtkWidget
+GtkContainer
| +GtkBin
| | +GtkAlignment
| | +GtkEventBox
| | +GtkFrame
| | | `GtkAspectFrame
| | +GtkHandleBox
| | +GtkItem
| | | +GtkListItem
| | | +GtkMenuItem
| | | | `GtkCheckMenuItem
| | | | `GtkRadioMenuItem
| | | `GtkTreeItem
| | +GtkViewport
| | `GtkWindow
| | +GtkColorSelectionDialog
| | +GtkDialog
| | | `GtkInputDialog
| | `GtkFileSelection
| +GtkBox
| | +GtkButtonBox
| | | +GtkHButtonBox
| | | `GtkVButtonBox
| | +GtkHBox
| | | +GtkCombo
| | | `GtkStatusbar
| | `GtkVBox
| | +GtkColorSelection
| | `GtkGammaCurve
| +GtkButton
| | +GtkOptionMenu
| | `GtkToggleButton
| | `GtkCheckButton
| | `GtkRadioButton
| +GtkCList
| `GtkCTree
| +GtkFixed
| +GtkList
| +GtkMenuShell
| | +GtkMenuBar
| | `GtkMenu
| +GtkNotebook
| +GtkPaned
| | +GtkHPaned
| | `GtkVPaned
| +GtkScrolledWindow
| +GtkTable
| +GtkToolbar
| `GtkTree
+GtkDrawingArea
| `GtkCurve
+GtkEditable
| +GtkEntry
| | `GtkSpinButton
| `GtkText
+GtkMisc
| +GtkArrow
| +GtkImage
| +GtkLabel
| | `GtkTipsQuery
| `GtkPixmap
+GtkPreview
+GtkProgressBar
+GtkRange
| +GtkScale
| | +GtkHScale
| | `GtkVScale
| `GtkScrollbar
| +GtkHScrollbar
| `GtkVScrollbar
+GtkRuler
| +GtkHRuler
| `GtkVRuler
`GtkSeparator
+GtkHSeparator
`GtkVSeparator
</PRE>
<P>
<H2><A NAME="ss4.3">4.3 ¿GTK+ es seguro ante múltiples hilos?</A>
</H2>
<P>Aunque GTK+, como la mayoría de los juegos de herramientas para X,
no es seguro ante múltiples hilos, esto no prohibe el desarrollo de
aplicaciones con múltiples hilos con GTK+.
<P>Rob Browning (rlb@cs.utexas.edu) describe técnicas de hilamiento
que pueden utilizarse con GTK+ (levemente modificado):
<P>Básicamente existen dos enfoques principales, el primero es sencillo,
y el segundo complicado. En el primero, simplemente hay que asegurarse
de que todas las interacciones de GTK+ (o X) se manejan por un, y solo un,
hilo. Cualquier otro hilo que desee dibujar algo tiene que notificarlo de
alguna manera al hilo "GTK+", y dejarlo que maneje el trabajo real.
<P>El segundo enfoque le permite llamar funciones de GTK+ (o X) desde cualquier
hilo, pero requiere sincronización cuidadosa. La idea básica es crear
una exclusión mutua de protección para X, de manera que nadie haga
llamadas X sin primero adquirir esta exclusión mutua.
<P>Observe que se trata de un pequeño esfuerzo, pero que le permitirá ser
potencialmente más eficiente que un GTK+ completamente seguro ante
múltiples hilos. Usted decide la granularidad del bloqueo de hilos.
También debe asegurarse que el hilo que llama a gtk_main mantiene la
cerradura cuando llama a gtk_main.
<P>Lo siguiente por lo que hay que preocuparse ya que se tenía agarrada
la exclusión mutua global cuando se entró a gtk_main, es que todos
los <EM>callbacks</EM> también la tendrán. Esto significa que el
<EM>callback</EM> debe soltarla si va a llamar a cualquier otro código
que pueda readquirirla. De otra manera obtendrá un bloqueo mortal.
También hay que tener agarrada la exclusión mutua cuando finalmente
regresa del <EM>callback</EM>.
<P>Para permitir a otros hilos, además del que llama a gtk_main, tener
acceso a la exclusión mutua, necesitamos registrar una función de
trabajo con GTK que nos permita liberar la exclusión mutua
periódicamente.
<P>¿Por qué GTK+ no puede ser seguro ante múltiples hilos de
manera nativa?
<P>Complejidad, sobrecarga, y mano de obra. La proporción de programas
con hilos es todavía razonablemente pequeña, y conseguir seguridad
ante hilos es muy difícil y le quita tiempo valioso al trabajo
principal de obtener una buena librería gráfica terminada. Sería
muy agradable que GTK+ fuera seguro ante hilos "al sacarlo de la caja",
pero no es práctico ahora mismo, y haría a GTK+ sustancialmente menos
eficiente si no se maneja cuidadosamente.
<P>De cualquier manera, no es una prioridad esencial ya que existen remedios
relativamente buenos.
<P>
<H2><A NAME="ss4.4">4.4 ¿Cómo puedo prevenir el redibujar y reacomodar tamaños mientras cambio múltiples <EM>widgets</EM>?</A>
</H2>
<P>
Utilize gtk_container_disable_resize y gtk_container_enable_resize alrededor
del código donde quiere cambiar varias cosas. Esto resultará en mayor
velocidad ya que prevendrá tener que darle el tamaño otra vez a la
jerarquía de <EM>widget</EM> por completo.
<P>
<H2><A NAME="ss4.5">4.5 ¿Cómo atrapo un evento de doble tecleo (en un <EM>widget</EM> de lista, por ejemplo)?</A>
</H2>
<P>Tim Janik escribió a la lista gtk-list (ligeramente modificado):
<P>Defina un manejador de señal:
<P>
<BLOCKQUOTE><CODE>
<PRE>
gint
signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data)
{
if (GTK_IS_LIST_ITEM(widget) &amp;&amp;
(event->type==GDK_2BUTTON_PRESS ||
event->type==GDK_3BUTTON_PRESS) ) {
printf("I feel %s clicked on button %d\",
event->type==GDK_2BUTTON_PRESS ? "double" : "triple",
event->button);
}
return FALSE;
}
</PRE>
</CODE></BLOCKQUOTE>
<P>Y conecte el manejador a su objeto:
<P>
<BLOCKQUOTE><CODE>
<PRE>
{
/* lista, asuntos de inicializacion de articulos de lista */
gtk_signal_connect(GTK_OBJECT(list_item),
"button_press_event",
GTK_SIGNAL_FUNC(signal_handler_event),
NULL);
/* y/o */
gtk_signal_connect(GTK_OBJECT(list_item),
"button_release_event",
GTK_SIGNAL_FUNC(signal_handler_event),
NULL);
/* algo mas */
}
</PRE>
</CODE></BLOCKQUOTE>
<P>y, Owen Taylor escribió:
<P>Observe que se recibirá la pulsación del botón de antemano, y
si está haciendo esto para un botón, también obtendrá una señal
de "tecleado" para el botón. (Esto es cierto para cualquier juego de
herramientas, ya que las computadoras no son buenas para leer la mente de
cada quien.)
<P>
<H2><A NAME="ss4.6">4.6 ¿Cómo puedo averiguar cuál es la selección de un GtkList?</A>
</H2>
<P>
<P>Consiga la selección con algo como esto:
<BLOCKQUOTE><CODE>
<PRE>
GList *sel;
sel = GTK_LIST(list)->selection;
</PRE>
</CODE></BLOCKQUOTE>
<P>Así es como GList está definido (sacado de glist.h):
<BLOCKQUOTE><CODE>
<PRE>
typedef struct _GList GList;
struct _GList
{
gpointer data;
GList *next;
GList *prev;
};
</PRE>
</CODE></BLOCKQUOTE>
<P>Una estructura GList es simplemente una estructura para listas doblemente
enlazadas. Existen varias funciones g_list_*() para modificar una lista
enlazada en glib.h. Sin embargo, la selección GTK_LIST(MyGtkList)->selection
es mantenida por las funciones gtk_list_*() y no deben ser modificadas.
<P>El selection_mode del GtkList determina las facilidades de selección de un
GtkList y por lo tanto los contenidos de GTK_LIST(AnyGtkList)->selection:
<P>
<PRE>
selection_mode GTK_LIST()->selection contents
------------------------------------------------------
GTK_SELECTION_SINGLE) la selección es NULL
o contiene un puntero GList*
para un artículo seleccionado individualmente
GTK_SELECTION_BROWSE) la selección es NULL si la lista
no contiene widgets, de otra manera
contiene un puntero GList*
para una estructura GList.
GTK_SELECTION_MULTIPLE) la selección es NULL si no se seleccionan
listitems para un apuntador GList*
para el primer artículo seleccionado. Eso en
su lugar apunta a una estructura GList para el
segundo artículo seleccionado y continúa
GTK_SELECTION_EXTENDED) la selección es NULL.
</PRE>
<P>El campo data de la estructura GList GTK_LIST(MyGtkList)->selection apunta
al primer GtkListItem que es seleccionado. De manera que si quiere determinar
cuales listitems están seleccionados debe hacer esto:
<P>Durante la in>
<HR><H3>Transfer interrupted!</H3>
>
{
gchar *list_items[]={
"Item0",
"Item1",
"foo",
"last Item",
};
guint nlist_items=sizeof(list_items)/sizeof(list_items[0]);
GtkWidget *list_item;
guint i;
list=gtk_list_new();
gtk_list_set_selection_mode(GTK_LIST(list), GTK_SELECTION_MULTIPLE);
gtk_container_add(GTK_CONTAINER(AnyGtkContainer), list);
gtk_widget_show (list);
for (i = 0; i &lt; nlist_items; i++)
{
list_item=gtk_list_item_new_with_label(list_items[i]);
gtk_object_set_user_data(GTK_OBJECT(list_item), (gpointer)i);
gtk_container_add(GTK_CONTAINER(list), list_item);
gtk_widget_show(list_item);
}
}
</PRE>
</CODE></BLOCKQUOTE>
<P>Para tener conocimiento de la inicialización:
<BLOCKQUOTE><CODE>
<PRE>
{
GList *items;
items=GTK_LIST(list)->selection;
printf("Selected Items: ");
while (items) {
if (GTK_IS_LIST_ITEM(items->data))
printf("%d ", (guint)
gtk_object_get_user_data(items->data));
items=items->next;
}
printf("\n");
}
</PRE>
</CODE></BLOCKQUOTE>
<H2><A NAME="ss4.7">4.7 ¿Acaso es posible desplegar un texto que se recorte para que quepa dentro del lugar que tenga asignado?</A>
</H2>
<P>El comportamiento de GTK+ (sin recorte) es una consecuencia de sus intentos
para conservar recursos de X. Los <EM>widgets</EM> etiqueta (entre otros) no
tienen su propia ventana X - simplemente dibujan su contenido en la ventana
de su padre. Aunque sería posible hacer que ocurran recortes al establecer
la máscara de recorte antes de dibujar el texto, esto podría causar una
penalización substancial en el rendimiento.
<P>Es posible que, a largo plazo, la mejor solución a tales problemas sea
simplemente cambiar gtk para que le de ventanas X a las etiquetas. Un remedio
a corto plazo es poner el <EM>widget</EM> de etiqueta dentro de otro
<EM>widget</EM> que sí obtiene su propia ventana - un candidato posible puede ser el <EM>widget</EM> <EM>viewport</EM>.
<P>
<BLOCKQUOTE><CODE>
<PRE>
viewport = gtk_viewport (NULL, NULL);
gtk_widget_set_usize (viewport, 50, 25);
gtk_viewport_set_shadow_type (GTK_VIEWPORT(viewport), GTK_SHADOW_NONE);
gtk_widget_show(viewport);
label = gtk_label ("a really long label that won't fit");
gtk_container_add (GTK_CONTAINER(viewport), label);
gtk_widget_show (label);
</PRE>
</CODE></BLOCKQUOTE>
<P>Si estuviera haciendo esto para un montón de <EM>widgets</EM>, querrá
copiar gtkviewport.c y arrancar la funcionalidad de sombra y ajuste (tal vez
quiera llamarlo GtkClipper).
<P>
<H2><A NAME="ss4.8">4.8 ¿Por qué el contenido de un botón no se mueve al presionar el botón? Aquí les envío un parche para que funcione de esa forma...</A>
</H2>
<P>De: Peter Mattis
<P>La razón por la cuál los botones no mueven a su hijo abajo y a la derecha
cuando son presionados es porque no me parece que eso es lo que ocurre
visualmente. Mi visión de los botonos es que los miras de manera recta.
O sea, la interface de usuario tiende sobre un plano y tú estás sobre
él observándolo de manera recta. Cuando un botón es presionado se
mueve directamente lejos de tí. Para ser absolutamente correcto supongo
que el hijo debería encojerse un poquito. Pero no veo por qué el hijo
debería moverse abajo y a la izquierda. Recurda, el hijo se supone que
está pegado a la superficie del botón. No es bueno que luzca como si
el hijo se resbala sobre la superficie del botón.
<P>En una nota más práctica, ya implanté esto una vez y determiné
que no se veía bien y lo quité.
<P>
<H2><A NAME="ss4.9">4.9 ¿Cómo puedo definir una línea de separación como en un menú?</A>
</H2>
<P>Revise el
<A HREF="http://www.gtk.org/tutorial/">Tutor</A> para información sobre como crear menús.
<P>Sin embargo, para crear una línea de separación en un menú,
simplemente inserte un artículo de menú vacío:
<P>
<BLOCKQUOTE><CODE>
<PRE>
menuitem = gtk_menu_item_new();
gtk_menu_append(GTK_MENU(menu), menuitem);
gtk_widget_show(menuitem);
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss4.10">4.10 ¿Cómo puedo darle justificación a la derecha a un menú, como Help, cuando utilizo MenuFactory?</A>
</H2>
<P>Utilice algo como lo que sigue:
<P>
<BLOCKQUOTE><CODE>
<PRE>
menu_path = gtk_menu_factory_find (factory, "&lt;MyApp>/Help");
gtk_menu_item_right_justify(menu_path->widget);
</PRE>
</CODE></BLOCKQUOTE>
<H2><A NAME="ss4.11">4.11 ¿Cómo hago mi ventana modal? / ¿Cómo hago una sóla ventana activa?</A>
</H2>
<P>Después de haber creado su ventana, haga gtk_grab_add(my_window). Y
después de cerrar la ventana haga gtk_grab_remove(my_window).
<P>
<H2><A NAME="ss4.12">4.12 ¿Por qué mi <EM>widget</EM> (ej. progressbar) no se actualiza?</A>
</H2>
<P>
<P>Probablemente usted está haciendo todos los cambios dentro de una función
sin devolver el control a gtk_main. La mayoría de las actualizaciones de
dibujo se colocan simplemente en una cola, la cual es procesada dentro de
gtk_main. Puede forzar que se procese la cola de dibujado utilizando algo como:
<P>
<BLOCKQUOTE><CODE>
<PRE>
while (gtk_events_pending())
gtk_main_iteration();
</PRE>
</CODE></BLOCKQUOTE>
<P>dentro de la función que cambia el <EM>widget</EM>.
<P>Lo que el fragmento anterior hace es correr todos los eventos pendientes y
funciones ociosas de alta prioridad, luego regresa de inmediato (el dibujado
se realiza en una función ociosa de alta prioridad).
<P>
<HR NOSHADE>
<A HREF="gtkfaq-es-5.html">Next</A>
<A HREF="gtkfaq-es-3.html">Previous</A>
<A HREF="gtkfaq-es.html#toc4">Contents</A>
</BODY>
</HTML>

92
docs/es/gtkfaq-es-5.html Normal file
View File

@@ -0,0 +1,92 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ: Acerca de gdk</TITLE>
<LINK HREF="gtkfaq-es-6.html" REL=next>
<LINK HREF="gtkfaq-es-4.html" REL=previous>
<LINK HREF="gtkfaq-es.html#toc5" REL=contents>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-6.html">Next</A>
<A HREF="gtkfaq-es-4.html">Previous</A>
<A HREF="gtkfaq-es.html#toc5">Contents</A>
<HR NOSHADE>
<H2><A NAME="s5">5. Acerca de gdk</A></H2>
<H2><A NAME="ss5.1">5.1 ¿Qué es gdk?</A>
</H2>
<P>gdk es básicamente una envoltura alrededor de las llamadas a funciones
Xlib. Si estás familiarizado con Xlib, muchas de las funciones en gdk
requerirán poco o ningún tiempo para acostumbrarse.
Todas las funciones están escritas para proporcionar una manera fácil de
acceder a las funciones Xlib en una manera un poco más intuitiva.
Adicionalmente, ya que gdk utiliza glib (vea abajo), será más portable
y seguro de utilizar en
múltiples plataformas.
<P>
<P>
<H2><A NAME="ss5.2">5.2 ¿Cómo utilizo la asignación de colores?</A>
</H2>
<P>Una de las cosas agradables de GDK es que está basado sobre Xlib; esto
también es un problema, especialmente en el área de administración
de colores. Si usted quiere utilizar color en su programa (dibujando un
rectángulo o algo por el estilo, su código debe lucir algo así:
<P>
<BLOCKQUOTE><CODE>
<PRE>
{
GdkColor *color;
int width, height;
GtkWidget *widget;
GdkGC *gc;
...
/* primero, cree un GC (contexto grafico) en el cual dibujar */
gc = gdk_gc_new(widget->window);
/* encuentre las dimensiones correctas para el rectangulo */
gdk_window_get_size(widget->window, &amp;width, &amp;height);
/* el color que queremos utilizar */
color = (GdkColor *)malloc(sizeof(GdkColor));
/* rojo, verde y azul son valores pasados, indicando el trio RGB
* del color que queremos dibujar. Note que los valores de los componentes
* RGB dentro de GdkColor son tomados de 0 a 65535, no de 0 a 255.
*/
color->red = red * (65535/255);
color->green = green * (65535/255);
color->blue = blue * (65535/255);
/* el valor de pixel indica el indice en el mapa de colores del color.
* simplemente es una combinacion de los valores RGB colocados anteriormente
*/
color->pixel = (gulong)(red*65536 + green*256 + blue);
/* Sin embargo, el valor de pixel es solo valido en dispositivos de 24-bit
* (color verdadero). Por lo tanto, esta llamada es requerida para que GDK
* y X puedan darnos el color mas cercano disponible en el mapa de colores
*/
gdk_color_alloc(gtk_widget_get_colormap(widget), color);
/* colocar la parte delantera a nuestro color */
gdk_gc_set_foreground(gc, color);
/* dibujar el rectangulo*/
gdk_draw_rectangle(widget->window, gc, 1, 0, 0, width, height);
...
}
</PRE>
</CODE></BLOCKQUOTE>
<P>
<HR NOSHADE>
<A HREF="gtkfaq-es-6.html">Next</A>
<A HREF="gtkfaq-es-4.html">Previous</A>
<A HREF="gtkfaq-es.html#toc5">Contents</A>
</BODY>
</HTML>

64
docs/es/gtkfaq-es-6.html Normal file
View File

@@ -0,0 +1,64 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ: Acerca de glib</TITLE>
<LINK HREF="gtkfaq-es-7.html" REL=next>
<LINK HREF="gtkfaq-es-5.html" REL=previous>
<LINK HREF="gtkfaq-es.html#toc6" REL=contents>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-7.html">Next</A>
<A HREF="gtkfaq-es-5.html">Previous</A>
<A HREF="gtkfaq-es.html#toc6">Contents</A>
<HR NOSHADE>
<H2><A NAME="s6">6. Acerca de glib</A></H2>
<H2><A NAME="ss6.1">6.1 ¿Qué es glib?</A>
</H2>
<P>glib es una librería de funciones y definiciones útiles disponibles
para ser utilizadas cuando se crean aplicaciones GDK y GTK. Proporciona
reemplazos para algunas funciones estándar de libc, como malloc, las
cuales tienen errores en algunos sistemas.
<P>También proporciona rutinas para manejar:
<UL>
<LI>Listas Doblemente Enlazadas</LI>
<LI>Listas con Enlace Sencillo</LI>
<LI>Cronómetros</LI>
<LI>Manipulación de cadenas</LI>
<LI>Un Analizador Léxico</LI>
<LI>Funciones de Error</LI>
</UL>
<P>
<P>
<H2><A NAME="ss6.2">6.2 ¿Por qué utilizar g_print, g_malloc, g_strdup y funciones compañeras de glib?</A>
</H2>
<P>Gracias a Tim Janik que escribió a gtk-list: (ligeramente modificado)
<BLOCKQUOTE>
Con respecto a g_malloc(), g_free() y hermanos, estas funciones son más
seguras que sus equivalentes en libc. Por ejemplo, g_free() solo regresa si
se llama con NULL. También, si se define USE_DMALLOC, la definición para
estas funciones cambia (en glib.h) para utilizar MALLOC(), FREE() etc... Si
MEM_PROFILE o MEM_CHECK se definen, hay incluso pequeñas estadísticas
realizadas las cuales cuentan los tamaños de los bloques (mostrado por
g_mem_profile() / g_mem_check()).
<P>Considerando el hecho de que glib provee una interface para salvar espacio en
pedazos de memoria si se tiene varios bloques que son siempre del mismo
tamaño y para marcarlos ALLOC_ONLY si es necesario, es sencillo crear
una pequeña envoltura para salvar (revisable para errores) alrededor del
malloc/free normal asimismo - igual que gdk cubre Xlib. ;)
<P>Utilizar g_error() y g_warning() dentro de aplicaciones como GIMP las cuales
utilizan gtk por completo incluso da la oportunidad de hacer saltar una ventana
que muestre los mensajes dentro de una ventana gtk con tu propio handler
(utilizando g_set_error_handler()) con el mismo estilo que gtk_print()
(dentro de gtkmain.c).
</BLOCKQUOTE>
<P>
<HR NOSHADE>
<A HREF="gtkfaq-es-7.html">Next</A>
<A HREF="gtkfaq-es-5.html">Previous</A>
<A HREF="gtkfaq-es.html#toc6">Contents</A>
</BODY>
</HTML>

80
docs/es/gtkfaq-es-7.html Normal file
View File

@@ -0,0 +1,80 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ: Contribuciones al GTK+ FAQ, Mantenedores y Copyright</TITLE>
<LINK HREF="gtkfaq-es-6.html" REL=previous>
<LINK HREF="gtkfaq-es.html#toc7" REL=contents>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
Next
<A HREF="gtkfaq-es-6.html">Previous</A>
<A HREF="gtkfaq-es.html#toc7">Contents</A>
<HR NOSHADE>
<H2><A NAME="s7">7. Contribuciones al GTK+ FAQ, Mantenedores y Copyright</A></H2>
<P>Si desea hacer una contribución al FAQ, envíe a alguno de nosotros
un mensaje por correo electrónico con el texto exacto que cree que
debería ser incluído (pregunta y respuesta). ¡Con su ayuda, este
documento puede crecer y llegar a ser más útil!
<P>Este documento es mantenido por Nathan Froyd
<A HREF="mailto:maestrox@geocities.com">&lt;maestrox@geocities.com&gt;</A>
y Tony Gale
<A HREF="mailto:gale@gimp.org">&lt;gale@gimp.org&gt;</A>.
Este FAQ fue creado por Shawn T. Amundson
<A HREF="mailto:amundson@gimp.org">&lt;amundson@gimp.org&gt;</A> quien continúa dando soporte.
<P>El GTK+ FAQ está registrado Copyright (C) 1997, 1998 por Shawn T. Amundson,
Nathan Froyd y tony Gale.
<P>Se otorga permiso para hacer y distribuír copias textuales de este manual
siempre y cuando la información de copyright y este permiso se preserven en
todas las copias.
<P>Se otorga permiso para copiar y distribuir versiones modificados de este
documento bajo las condiciones para copiado textual, siempre y cuando esta
noticia de copyright se incluya exáctamente como en el original, y
que el trabajo resultante en su totalidad sea distribuído bajo los
términos de una noticia de permiso idéntica a esta.
<P>Se otorga permiso para copiar y distribuír traducciones de este documento
a otro lenguaje, bajo las condiciones anteriores de versiones modificadas.
<P>Si tiene intenciones de incorporar este documento en un trabajo publicado,
por favor contacte a uno de los mantenedores, y nos aseguraremos de que
obtenga la información más actual posible.
<P>No hay garantía de que este documento logre su propósito. Este documento
se proporciona simplemente como un recurso libre. Como tal, los autores y
mantenedores de la información proporcionada en él no pueden dar
garantía alguna de que la información es precisa.
<P>
<H2><A NAME="ss7.1">7.1 Nota del Traductor</A>
</H2>
<P>Esta traducción fue realizada por
<A HREF="http://www.talisman.com.pa">Ramsés Morales</A>.
He intentado hacer
la mejor adaptación posible de los términos técnicos, si tiene
alguna sugerencia o mejora a estos términos y mi español, o alguna
duda por causa de mi traducción, no dude en comunicármelo a
<A HREF="mailto:ramses@computer.org">&lt;ramses@computer.org&gt;</A><P>Gracias a
<A HREF="mailto: e98cuenc@criens.u-psud.fr">Joaquín Cuenca</A> por todas sus sugerencias para mejorar la
traducción, fueron de gran ayuda.
<P>--------------------------------------
<P>The GTK+ FAQ is Copyright (C) 1997,1998 by Shawn T. Amundson, Nathan Froyd and Tony Gale.
<P>Permission is granted to make and distribute verbatim copies of this manual provided the
copyright notice and this permission notice are preserved on all copies.
<P>Permission is granted to copy and distribute modified versions of this document under the conditions
for verbatim copying, provided that this copyright notice is included exactly as in the original,
and that the entire resulting derived work is distributed under the terms of a permission
notice identical to this one.
<P>Permission is granted to copy and distribute translations of this document into another language,
under the above conditions for modified versions.
<P>If you are intending to incorporate this document into a published work, please contact one of
the maintainers, and we will make an effort to ensure that you have the most up to date
information available.
<P>There is no guarentee that this document lives up to its intended
purpose. This is simply provided as a free resource. As such,
the authors and maintainers of the information provided within can
not make any guarentee that the information is even accurate.
<HR NOSHADE>
Next
<A HREF="gtkfaq-es-6.html">Previous</A>
<A HREF="gtkfaq-es.html#toc7">Contents</A>
</BODY>
</HTML>

103
docs/es/gtkfaq-es.html Normal file
View File

@@ -0,0 +1,103 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
<TITLE>GTK+ FAQ</TITLE>
<LINK HREF="gtkfaq-es-1.html" REL=next>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<A HREF="gtkfaq-es-1.html">Next</A>
Previous
Contents
<HR NOSHADE>
<H1>GTK+ FAQ</H1>
<H2>Nathan Froyd, Tony Gale, Shawn T. Amundson.</H2>Seis de Julio de 1998
<P><HR NOSHADE>
<EM>La intención de este documento es dar respuesta a las preguntas
realizadas con más frecuencia por parte de los programadores que utilizan GTK+ o simplemente por personas que desean utilizar GTK+. </EM>
<HR NOSHADE>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="gtkfaq-es-1.html">Información General</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-1.html#ss1.1">1.1 Autores</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.2">1.2 ¿Qué es GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.3">1.3 ¿Qué es el + en GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.4">1.4 ¿La G en GTK+ significa General, Gimp, o GNU?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.5">1.5 ¿Dónde está la documentación para GTK?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.6">1.6 ¿Hay alguna lista de correo (o archivo de lista de correo) para GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.7">1.7 ¿La lista gtk-list no ha tenido tráfico alguno por días,</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.8">1.8 Cómo conseguir ayuda con GTK+</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.9">1.9 Cómo reportar errores en GTK+</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.10">1.10 ¿Qué aplicaciones se han escrito con GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.11">1.11 Estoy buscando una aplicación que escribir en GTK+. ¿Qué tal un cliente IRC?</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="gtkfaq-es-2.html">Cómo encontrar, configurar, instalar y comprobar GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-2.html#ss2.1">2.1 ¿Qué necesito para correr GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.2">2.2 ¿Dónde puedo conseguir GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.3">2.3 ¿Cómo configuro/compilo GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.4">2.4 Cuando compilo GTK+ obtengo un error como: <CODE>make: file `Makefile' line 456: Syntax error</CODE></A>
<LI><A HREF="gtkfaq-es-2.html#ss2.5">2.5 ¡He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con él!</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.6">2.6 Cuando compilo programas con GTK+, obtengo mensajes de error del compilador diciendo que no es capaz de encontrar <CODE>"glibconfig.h"</CODE>.</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.7">2.7 Cuando instalo El GIMP, configure reporta que no puede encontrar GTK.</A>
</UL>
<P>
<H2><A NAME="toc3">3.</A> <A HREF="gtkfaq-es-3.html">Desarrollo de GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-3.html#ss3.1">3.1 ¿Qué es esta cosa CVS de la cual todo el mundo habla, y cómo puedo acceder a ella?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.2">3.2 ¿Cómo puedo contribuír a GTK+?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.3">3.3 ¿Cómo averiguo si mi parche fue aplicado, y si no, por qué no?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.4">3.4 ¿Cuál es la política sobre la incorporación de nuevos <EM>widgets</EM> en la librería?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.5">3.5 ¿Hay alguien trabajando en atamientos para otros lenguajes distintos a C?</A>
</UL>
<P>
<H2><A NAME="toc4">4.</A> <A HREF="gtkfaq-es-4.html">Desarrollo con GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-4.html#ss4.1">4.1 ¿Cómo empiezo?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.2">4.2 ¿Qué <EM>widgets</EM> existen en GTK?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.3">4.3 ¿GTK+ es seguro ante múltiples hilos?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.4">4.4 ¿Cómo puedo prevenir el redibujar y reacomodar tamaños mientras cambio múltiples <EM>widgets</EM>?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.5">4.5 ¿Cómo atrapo un evento de doble tecleo (en un <EM>widget</EM> de lista, por ejemplo)?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.6">4.6 ¿Cómo puedo averiguar cuál es la selección de un GtkList?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.7">4.7 ¿Acaso es posible desplegar un texto que se recorte para que quepa dentro del lugar que tenga asignado?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.8">4.8 ¿Por qué el contenido de un botón no se mueve al presionar el botón? Aquí les envío un parche para que funcione de esa forma...</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.9">4.9 ¿Cómo puedo definir una línea de separación como en un menú?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.10">4.10 ¿Cómo puedo darle justificación a la derecha a un menú, como Help, cuando utilizo MenuFactory?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.11">4.11 ¿Cómo hago mi ventana modal? / ¿Cómo hago una sóla ventana activa?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.12">4.12 ¿Por qué mi <EM>widget</EM> (ej. progressbar) no se actualiza?</A>
</UL>
<P>
<H2><A NAME="toc5">5.</A> <A HREF="gtkfaq-es-5.html">Acerca de gdk</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-5.html#ss5.1">5.1 ¿Qué es gdk?</A>
<LI><A HREF="gtkfaq-es-5.html#ss5.2">5.2 ¿Cómo utilizo la asignación de colores?</A>
</UL>
<P>
<H2><A NAME="toc6">6.</A> <A HREF="gtkfaq-es-6.html">Acerca de glib</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-6.html#ss6.1">6.1 ¿Qué es glib?</A>
<LI><A HREF="gtkfaq-es-6.html#ss6.2">6.2 ¿Por qué utilizar g_print, g_malloc, g_strdup y funciones compañeras de glib?</A>
</UL>
<P>
<H2><A NAME="toc7">7.</A> <A HREF="gtkfaq-es-7.html">Contribuciones al GTK+ FAQ, Mantenedores y Copyright</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-7.html#ss7.1">7.1 Nota del Traductor</A>
</UL>
<HR NOSHADE>
<A HREF="gtkfaq-es-1.html">Next</A>
Previous
Contents
</BODY>
</HTML>

File diff suppressed because it is too large Load Diff

177
docs/generation.txt Normal file
View File

@@ -0,0 +1,177 @@
Overview:
========
This file describes the way that autogeneration
works within the GTK+ source code.
The following files in the gdk/ subdirectory
are autogenerated:
gdkkeysyms.h
gdkcursors.h
The following files in the gtk/ subdirectory
are autogenerated:
gtk.defs
Description of GTK+ types (and some functions) in a lisp-style
format.
gtktypebuiltins.h
Header file including declarations for internal types
gtktypebuiltins_vars.c
Variables for type values for internal types.
gtktypebuiltins_ids.c
Arrays holding information about each internal type.
gtktypebuiltins_evals.c
Arrays holding mapping between enumeration values
and strings.
gtkmarshal.c
gtkmarshal.h
Autogenerated signal marshallers
GDK
===
gdkkeysyms.h and gdkcursors.h are generated from
the corresponding header files
X11/cursorfont.h
X11/keysymdef.h
by some simple sed scripts. These are not actually
run automatically because we want all the keysyms
even on systems with a limited set.
So the Gdk rule to generate both files (X-derived-headers)
only needs to be rerun for every new release of the X Window
System.
GTK+ - type definitions
=======================
The type definitions are generated from several sources:
gtk-boxed.defs - definitions for boxed types
GTK+ header files
GDK header files
The makeenums.pl script does a heuristic parse of
the header files and extracts all enumerations declarations.
It also recognizes a number of pseudo-comments in the
header files:
Two of these apply to individual enumeration values:
/*< skip >*/
This enumeration value should be skipped.
/*< nick=NICK >*/
The nickname for this value should NICK instead of the
normally guessed value. For instance:
typedef enum {
GTK_TARGET_SAME_APP = 1 << 0, /*< nick=same-app >*/
GTK_TARGET_SAME_WIDGET = 1 << 1 /*< nick=same-widget >*/
} GtkTargetFlags;
makes the nicks "same-app" and "same-widget", instead of
"app" and "widget" that would normally be used.
The other two apply to entire enumeration declarations.
/*< prefix=PREFIX >*/
Specifies the prefix to be removed from the enumeration
values to generate nicknames.
/*< flags >*/
Specifies that this enumeration is used as a bitfield.
(makenums.pl normally guesses this from the presence of values
with << operators). For instance:
typedef enum /*< flags >*/
{
GDK_IM_PREEDIT_AREA = 0x0001,
GDK_IM_PREEDIT_CALLBACKS = 0x0002,
[ ... ]
} GdkIMStyle;
makeenums.pl can be run into two modes:
1) Generate the gtktypebuiltins_eval.c file (this
contains arrays holding the mapping of
string <=> enumeration value)
2) Generate the enumeration portion of gtk.defs.
The enumearation portion is added to the boxed type
declarations in gtk-boxed.defs to create gtk.defs.
The makeetypes.awk program takes the gtk.defs file, and
from that generates various files depending on the
third parameter passed to it:
macros: gtktypebuiltins.h
variables: gtktypebuiltins_vars.c
entries: gtktypebuiltins_ids.c
GTK+ - marshallers
==================
The files gtkmarshal.c and gtkmarshal.h include declarations
and definitions for the marshallers needed inside of
GTK+. The marshallers to be generated are listed in
the file gtkmashal.list, which is processed
by genmarshal.pl.
The format of this file is a list of lines:
<retval-type>:<arg1-type>,<arg2-type>,<arg3-type>
e.g.:
BOOL:POINTER,STRING,STRING,POINTER
A marshaller is generated for each line in the file.
The possible types are:
NONE
BOOL
CHAR
INT
UINT
LONG
ULONG
FLOAT
DOUBLE
STRING
ENUM
FLAGS
BOXED
POINTER
OBJECT
FOREIGN (gpointer data, GtkDestroyNotify notify)
C_CALLBACK (GtkFunction func, gpointer func_data)
SIGNAL (GtkSignalFunc f, gpointer data)
ARGS (gint n_args, GtkArg *args)
CALLBACK (GtkCallBackMarshal marshall,
gpointer data,
GtkDestroyNotify Notify)
Some of these types map to multiple return values - these
are marked above with the return types in parantheses.
NOTES
=====
When autogenerating GTK+ files, the autogenerated
files are often rebuild resulting in the same result.
To prevent unecessary rebuilds of the entire directory, some files
that multiple other source files depend on are not actually written
to directly. Instead, an intermediate file is written, which
is then compared to the old file, and only if it is different
is it copied into the final location.

View File

@@ -1,4 +1,4 @@
.TH GTK+ 1 "25 October 1998" Version 1.1.12
.TH GTK+ 1 "25 October 1998" Version @VERSION@
.SH NAME
gtk-config - script to get information about the installed version of GTK+
.SH SYNOPSIS

View File

@@ -36,6 +36,14 @@ gtk-config takes the following flags:
If PREFIX is specified, overrides the configured value of $exec_prefix.
Otherwise, prints out the configured value of $exec_prefix
You may also add to the command line a list of additional
libraries that gtk-config should supply the CFLAGS and LIBS
for. The only currently supported library is 'gthread'.
As an example of this latter usage, you can get the
appropriate cflags for a threaded program with:
gtk-config --cflags gthread
Example of using gtk-config

View File

@@ -79,7 +79,7 @@ approved by Peter Mattis.
This is edition @value{edition} of the GTK documentation,
@w{@value{update-date}}.
@end ifinfo
@c FIXME: Do a introduction to the GTK?
@c FIXME: Do an introduction to the GTK?
@menu
* Copying:: Your rights.
@@ -288,7 +288,7 @@ form that is easier to parse. Tools for generating bindings of Gtk to
other languages can read these declarations and---because all the
important details are defined---automatically generate the bulk of the
needed glue code. It is also possible to feed these declarations into a
running application (a interface builder, say) and thus make it aware of
running application (an interface builder, say) and thus make it aware of
new widgets and functions without recompiling anything.
The run-time side of the type system is also somewhat introspective.
@@ -320,7 +320,7 @@ inherit these rules from their fundamental type. For example,
derive from @samp{GtkObject} and so the rules for @samp{GtkObject} apply
to all widgets as well.
This derivation defines a type hierachy, but this hierachy is not
This derivation defines a type hierarchy, but this hierarchy is not
completely general. You can't derive from @samp{int} for example, and
you can only have one level of derivation from @samp{enum}. The
fundamental type @samp{GtkObject}, however, is the basis for the large
@@ -382,7 +382,7 @@ to a fundamental type and thus there is no name for it.
@deftp {Data type} GtkType
The type @code{GtkType} holds the run-time representation of a type. It
is a integer of a certain size. The follwing macros are defined to
is an integer of a certain size. The follwing macros are defined to
access the basic properties of a @code{GtkType}:
@deftypefn {Macro} {unsigned int} GTK_TYPE_SEQNO (GtkType type)
@@ -461,7 +461,7 @@ always return @code{NULL}.
@item
The @code{class_init_func} and @code{base_class_init_func} fields are
callbacks which are used by the type mechanism to initialize class
specific fields. The single argument these function taks is a pointer to
specific fields. The single argument these functions take is a pointer to
a class structure. When you do not need one or both of them, set the
corresponding field to @code{NULL}. The @code{class_init_func} will be
called at most once, right after the class structure of size
@@ -1109,7 +1109,7 @@ opaque.
All widget creation routines in GTK return pointers to GtkWidget
structures. In reality, all widget creation routines create structures
that can be viewed as equivalent to the GtkWidget structure, but often
have contain additional information. @xref{Object Implementation}
have contain additional information. @xref{Object Implementation}.
The widgets available for use are implemented in a hierarchy. Several
widgets exist solely as common bases for more specific widgets. For

File diff suppressed because it is too large Load Diff

17638
docs/gtk_tut_12.es.sgml Executable file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

350
docs/make-todo Executable file
View File

@@ -0,0 +1,350 @@
#!/usr/bin/python
import xmllib;
import sys;
import string
import re
def html_subst(s):
if s.group(1) != None:
return s.group(0)
elif s.group(2) != None:
return '<a href="' + s.group(0) + '">' + s.group(0) + '</a>'
elif s.group(3) != None:
return '<a href="mailto:' + s.group(0) + '">' + s.group(0) + '</a>'
def htmlify(str):
return re.sub ("(<[^>]*>)|(http://[~.:/\w-]+)|([\w._!-]+@[\w_-]+).[\w_-]+", html_subst, str)
def bug_subst(s):
if s.group(1) != None:
return s.group(0)
else:
n = s.group(2)
return '<a href="http://bugs.gnome.org/db/%s/%s.html">#%s</a>' % (n[0:2], n, n)
def bugify(str):
str = re.sub ("(<[^>]*>)|#(\d+)", bug_subst, str)
return htmlify(str)
def make_id(str):
return re.sub ("[^a-z]","-", string.lower(str))
class ParseError (Exception):
pass
class Entry:
def __init__(self):
self.description = None
self.title = None
self.url = None
self.contact = None
self.bugs = None
def set_size(self, size):
size = string.lower(size)
if size == "small":
self.size = "Small"
elif size == "medium":
self.size = "Medium"
elif size == "big":
self.size = "Big"
else:
raise ParseError, 'size must be "small", "medium", or "big"'
def output(self):
if self.size == "Big":
bgcolor = "#88bb88"
elif self.size == "Medium":
bgcolor = "#b4d4b4"
else:
bgcolor = "#d0e0d0"
print '''<table cellspacing="0" cellpadding="2" width="97%%" border="0" bgcolor="#000000">
<tbody><tr><td colspan=2>
<table cellspacing="0" cellpadding="5" width="100%%" border="0" bgcolor="#ffffff">
<tbody>
<tr bgcolor="%s">
<td align="left"><font size="+1">%s</font></font></td>
<td align="left" width="20%%"><b>Size</b>: %s</td>
<td align="center" width="20%%"><b>Status</b>: %s</td>
<td align="right" width="20%%"><b>Target Version</b>: %s</td>
</tr>
<tr>
<td colspan=4>
%s
<table cellspacing="0" cellpadding="0">
<tbody>''' % (bgcolor, self.title, self.size, self.status, self.target, htmlify(self.description))
if self.url != None:
print '''<tr><td width="0"><b>More Info</b>:</td>
<td>%s</td>
</tr>''' % htmlify (self.url)
if self.bugs != None:
print '''<tr><td width="0"><b>Bug Reports</b>:</td>
<td>%s</td>
</tr>''' % bugify (self.bugs)
if self.contact != None:
print '''<tr><td width="0"><b>Contact</b>:</td>
<td>%s</td>
</tr>''' % htmlify (self.contact)
print '''</tbody>
</table>
</td>
</tr>
</tbody></table>
</td></tr></tbody></table>
'''
class Section:
def __init__(self):
self.title = None
self.entries = []
def output(self):
print '<h2><a name="%s">%s</a></h2>' % (make_id(self.title), self.title)
first = 1
for entry in self.entries:
if not first:
print "<br>"
first = 0
entry.output()
class TodoParser (xmllib.XMLParser):
def __init__(self):
xmllib.XMLParser.__init__(self)
self.in_todo = 0
self.in_data = 0
self.data = ""
self.section = None
self.entry = None
self.logourl = None
self.title = None
self.sections = []
self.entitydefs = {}
def start_todo(self,attributes):
if self.in_todo:
raise ParseError, "<todo> tags may not be nested"
if attributes.has_key ("logourl"):
self.logourl = attributes["logourl"]
self.in_todo = 1
def end_todo(self):
self.in_todo = 0
def start_section(self,attributes):
if self.section:
raise ParseError, "<section> tags may not be nested"
self.section = Section()
def end_section(self):
if self.section.title == None:
raise ParseError, "<section> requires <title>"
self.sections.append(self.section)
self.section = None
def start_title(self,attributes):
if not self.in_todo:
raise ParseError, "<title> tag must be in <todo>, <section> or <entry>"
if self.in_data:
raise ParseError, "Unexpected <title> tag in content"
self.in_data = 1
def end_title(self):
self.in_data = 0
if self.entry:
self.entry.title = self.data
elif self.section:
self.section.title = self.data
else:
self.title = self.data
self.data = ""
def start_description(self,attributes):
if not self.entry:
raise ParseError, "<description> tag must be in <entry>"
if self.in_data:
raise ParseError, "Unexpected <description> tag in content"
self.in_data = 1
def end_description(self):
self.in_data = 0
self.entry.description = self.data
self.data = ""
def start_url(self,attributes):
if not self.entry:
raise ParseError, "<url> tag must be in <entry>"
if self.in_data:
raise ParseError, "Unexpected <url> tag in content"
self.in_data = 1
def end_url(self):
self.in_data = 0
self.entry.url = self.data
self.data = ""
def start_contact(self,attributes):
if not self.entry:
raise ParseError, "<contact> tag must be in <contact>"
if self.in_data:
raise ParseError, "Unexpected <contact> tag in content"
self.in_data = 1
def end_contact(self):
self.in_data = 0
self.entry.contact = self.data
self.data = ""
def start_bugs(self,attributes):
if not self.entry:
raise ParseError, "<bugs> tag must be in <bugs>"
if self.in_data:
raise ParseError, "Unexpected <bugs> tag in content"
self.in_data = 1
def end_bugs(self):
self.in_data = 0
self.entry.bugs = self.data
self.data = ""
def start_entry(self,attributes):
if not self.section:
raise ParseError, "<entry> tag must be in <section>"
if self.entry:
raise ParseError, "<entry> tags may not be nested"
self.entry = Entry()
if not attributes.has_key("size"):
raise ParseError, '"size" attribute required for entry'
self.entry.set_size(attributes["size"])
if not attributes.has_key("status"):
raise ParseError, '"status" attribute (completion percentage) required for entry'
self.entry.status=attributes["status"]
if not attributes.has_key("target"):
raise ParseError, '"target" attribute (target version) required for entry'
self.entry.target=attributes["target"]
def end_entry(self):
if self.entry.title == None:
raise ParseError, "<entry> requires <title>"
if self.entry.description == None:
raise ParseError, "<entry> requires <description>"
self.section.entries.append(self.entry)
self.entry = None
def handle_data(self,data):
if self.in_data:
self.data = self.data + data
def unknown_starttag(self,tag,attributes):
if not self.in_data:
raise ParseError, "Unexpected start tag: " + tag
else:
self.data = self.data + "<" + tag
for (key,val) in attributes.items():
self.data = self.data + ' %s="%s"' % (key,val)
self.data = self.data + ">"
def unknown_endtag(self,tag):
if not self.in_data:
raise ParseError, "Unexpected end tag: " + tag
else:
self.data = self.data + "</%s>" % tag
def syntax_error(self, err):
if re.match("reference to unknown entity", err):
pass
else:
xmllib.XMLParser.syntax_error (self, err)
def unknown_entityref(self,ref):
if not self.in_data:
raise ParseError, "Unknown entity &" + ref + ";"
else:
self.data = self.data + "&" + ref + ";"
file = open(sys.argv[1])
parser = TodoParser()
lineno = 1
while 1:
line = file.readline()
if line == "":
break
try:
parser.feed(line)
except ParseError, err:
sys.stderr.write("Parse error at line " + `lineno` + ": " + err.__str__() + "\n")
sys.exit(1)
except RuntimeError, err:
sys.stderr.write(err.__str__() + "\n")
sys.exit(1)
lineno = lineno + 1
parser.close()
if parser.title == None:
sys.stderr.write ("<todo> Document must have a <title>\n")
sys.exit (1)
print '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>%s</title>
</head>
<body bgcolor="#ffffff">
<table width="100%%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr valign="top">
<td>
<h1>%s</h1>''' % (parser.title, parser.title)
for section in parser.sections:
ntasks = len(section.entries)
id = make_id (section.title)
if ntasks == 1:
print '<a href="#%s">%s</a> (1 item)<br>' % (id,section.title)
else:
print '<a href="#%s">%s</a> (%d items)<br>' % (id,section.title,ntasks)
print '''
</td>'''
if parser.logourl != None:
print ''' <td align="right">
<img src="%s" alt="Logo"></img>
</td>''' % parser.logourl
print '''
</tr>
</tbody>
</table>
'''
first = 1
for section in parser.sections:
if not first:
print "<br><br>"
first = 0
section.output()
print '''</body>
</html>'''

99
docs/package_tutorial.sh Executable file
View File

@@ -0,0 +1,99 @@
#! /bin/sh
# package_tutorial.sh - Package up the tutorial into various formats
# Copyright (C) Tony Gale 1999
# Contact: gale@gtk.org
#
# NOTE: This script requires the following to be installed:
# o SGML Tools
# o Latex
# o DVI tools
TARGET=`pwd`/gtk_tut.sgml
GIFS="`pwd`/*.gif"
EXAMPLES=`pwd`/../examples
PATH=`pwd`:$PATH
DATE=`date '+%y%m%d'`
# Check top level directory
if [ ! -d gtk_tutorial ]; then
if [ -e gtk_tutorial ]; then
echo "ERROR: gtk_tutorial is not a directory"
exit
fi
mkdir gtk_tutorial.$DATE
fi
cd gtk_tutorial.$DATE
# SGML Format
echo -n "Copy SGML and GIF's.... "
if [ ! -d sgml ]; then
if [ -e sgml ]; then
echo "ERROR: html is not a directory"
exit
fi
mkdir sgml
fi
(cd sgml ; cp $TARGET . ; cp $GIFS .)
echo "done"
# HTML Format
echo -n "Formatting into HTML.... "
if [ ! -d html ]; then
if [ -e html ]; then
echo "ERROR: html is not a directory"
exit
fi
mkdir html
fi
(cd html ; sgml2html $TARGET ; cp $GIFS .)
echo "done"
# Text Format
echo -n "Formatting into Text.... "
if [ ! -d txt ]; then
if [ -e txt ]; then
echo "ERROR: txt is not a directory"
exit
fi
mkdir txt
fi
(cd txt ; sgml2txt -f $TARGET 2>&1 > /dev/null )
echo "done"
# PS and DVI Format
echo -n "Formatting into PS and DVI.... "
if [ ! -d ps ]; then
if [ -e ps ]; then
echo "ERROR: ps is not a directory"
exit
fi
mkdir ps
fi
(cd ps ; sgml2latex --output=ps $TARGET > /dev/null)
(cd ps ; sgml2latex $TARGET > /dev/null)
echo "done"
# Copy examples
echo -n "Copying examples"
cp -R $EXAMPLES .
(cd examples ; make clean ; rm -rf CVS */CVS)
echo "done"
# Package it all up
echo -n "Creating packages.... "
cd ..
tar cvfz gtk_tutorial.$DATE.tar.gz gtk_tutorial.$DATE
echo "done"
rm -rf gtk_tutorial.$DATE
echo
echo Package gtk_tutorial.$DATE.tar.gz created.
echo

View File

@@ -15,7 +15,7 @@ functions that follow these conventions:
GtkObjects also provide the following functions:
*_destroy: Render an object `unusable', but as long as there are
references to it, it's allocated memory will not be freed.
references to it, its allocated memory will not be freed.
*_sink: Clear a GtkObjects `floating' state and decrement the
reference count by 1.
@@ -240,7 +240,7 @@ Taking care of proper referencing
---------------------------------
There are some cases where referencing of widgets from outside the toolkit
(on the application side is needed).
(on the application side) is needed.
Once the application performes an operation on a widget that will cause
its reference count to drop, if it wants to take further actions on the
widget, it needs to hold a reference to it.
@@ -248,7 +248,7 @@ widget, it needs to hold a reference to it.
Example code sequences that require reference wraps:
/* gtk_container_remove() will unparent the child and therefore
* cause it's reference count to be decremented by one.
* cause its reference count to be decremented by one.
*/
gtk_widget_ref (widget);
gtk_container_remove (container, widget);

7
docs/reference/AUTHORS Normal file
View File

@@ -0,0 +1,7 @@
Damon Chaplin <damon@karuna.freeserve.co.uk> and others.
See:
http://www.gtk.org/rdp/status.html
for a complete list.

30
docs/reference/COPYING Normal file
View File

@@ -0,0 +1,30 @@
This work may be reproduced and distributed in whole or in part, in
any medium, physical or electronic, so as long as this copyright
notice remains intact and unchanged on all copies. Commercial
redistribution is permitted and encouraged, but you may not
redistribute, in whole or in part, under terms more restrictive than
those under which you received it. If you redistribute a modified or
translated version of this work, you must also make the source code to
the modified or translated version available in electronic form
without charge. However, mere aggregation as part of a larger work
shall not count as a modification for this purpose.
All code examples in this work are placed into the public domain,
and may be used, modified and redistributed without restriction.
BECAUSE THIS WORK IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE WORK, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE WORK "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. SHOULD THE WORK PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY REPAIR OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE WORK AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
WORK, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

260
docs/reference/ChangeLog Normal file
View File

@@ -0,0 +1,260 @@
Sun May 28 12:16:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/tmpl/gtkaspectframe.sgml: Fix typo
pointed out by Gregory McLean.
2000-05-28 Damon Chaplin <damon@helixcode.com>
* gdk/tmpl/event_structs.sgml: typo.
2000-04-22 Damon Chaplin <damon@helixcode.com>
* gtk/tmpl/gtkenums.sgml: update from Lee Mallabone
<lee0@callnetuk.com>
2000-04-09 Damon Chaplin <damon@helixcode.com>
* gtk/tmpl/gtkmain.sgml: update from Torsten Landschoff
<t.landschoff@gmx.net>
* gdk/tmpl/input_methods.sgml:
* gdk/tmpl/general.sgml: fixed typos.
Tue Mar 14 14:17:46 2000 Raph Levien <raph@acm.org>
* gdk/tmpl/rgb.sgml: Better explanation of gdk_rgb_set_min_colors.
Thanks to Stric for spotting it.
2000-03-07 Damon Chaplin <damon@helixcode.com>
* gtk/tmpl/gtkclist.sgml: fix to gtk_clist_set_reorderable(). It
reorders rows, not columns. From Guy Harris <gharris@flashcom.net>.
2000-02-29 Damon Chaplin <damon@helixcode.com>
* gtk/tmpl/gtkmenuitem.sgml: minor fix from Nicolas GEORGE
<nicolas.george@ens.fr>.
2000-02-28 Damon Chaplin <damon@helixcode.com>
* gtk/tmpl/gtkradiomenuitem.sgml:
* gtk/tmpl/gtkmenuitem.sgml:
* gtk/tmpl/gtknotebook.sgml: new menu item sections and minor update to
notebook section from Nicolas GEORGE <nicolas.george@ens.fr>.
2000-02-18 Damon Chaplin <damon@helixcode.com>
* gtk/tmpl/gtktooltips.sgml: patch from
David Benson <daveb@idealab.com> to note that gtk_tooltips_set_colors()
does not work.
2000-02-09 Damon Chaplin <damon@helixcode.com>
* gdk/tmpl/input_methods.sgml: minor fix.
2000-02-03 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gdk/gdk-sections.txt: rearranged a bit.
* gdk/tmpl/event_structs.sgml: updated.
* gtk/gtk-sections.txt: added INCLUDE tag for Private Info section.
* gdk/tmpl/color_contexts.sgml: added note saying it is deprecated.
* gdk/tmpl/dnd.sgml: added note saying read the GTK+ DnD docs.
2000-02-02 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gdk/tmpl/*.sgml: ran make templates.
* gdk/gdk-docs.sgml: rearranged sections.
* gdk/tmpl/events.sgml: documented.
* gdk/tmpl/general.sgml: documented.
* gdk/tmpl/rgb.sgml: fixed a few '@' -> '#'.
* gdk/gdk-sections.txt: rearranged a few bits, including moving
GdkWChar and related functions from the input method section to the
font section, and GdkCapStyle etc. from Drawing Primitives to GCs.
* gdk/tmpl/images.sgml: documented.
* gdk/tmpl/drawing.sgml: updated.
* gdk/tmpl/regions.sgml: updated.
* gdk/tmpl/input_contexts.sgml: documented.
* gdk/tmpl/input_methods.sgml: documented.
* gdk/tmpl/selections.sgml: changed xref to a link since Jade says
a xref to a RefEntry is not supported.
2000-01-19 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/tmpl/gtkscrollbar.sgml: Started.
2000-01-08 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/tmpl/gtkclist.sgml: update from Paul Schifferer
<isengard@geocities.com>
Wed Jan 5 10:23:41 2000 Owen Taylor <otaylor@redhat.com>
* gtk/tmpl/gtkprogress.sgml: Missing </listitem>, remove extra <para>
* gtk/tmpl/gtkobject.sgml: dos2unix
* gtk/tmpl/gtkcurve.sgml: missing </para>
* gtk/tmpl/gtkarg.sgml: dos2unix, missing </para>
* gtk/tmpl/gtkcolorsel.sgml: Missing </listitem>'s
* gtk/tmpl/gtksignal.sgml (signal): dos2unix, missing </para>'s
* gtk/tmpl/gtkmarshal.sgml: Missing </refsect2>
1999-11-16 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/tmpl/gtkmenubar.sgml: fixed minor error - using <em>.
* gtk/tmpl/gtknotebook.sgml:
* gtk/tmpl/gtklist.sgml: new sections from
Nicolas George <george@clipper.ens.fr>, with help from
"Bob Springett" <bobspringett@claranet.fr>.
* gtk/tmpl/gtkobject.sgml:
* gtk/tmpl/gtkarg.sgml: new sections from
David Benson <daveb@idealab.com>.
* gtk/tmpl/gtkvbox.sgml:
* gtk/tmpl/gtkhbox.sgml: fixed line endings.
* gtk/tmpl/gtkvbbox.sgml: update from Lee Mallabone
<lee0@callnetuk.com>
* gdk/tmpl/drawing.sgml: fixed error in gdk_draw_arc() @angle2 param
- it is relative to @angle1 rather than from the 3 o'clock position.
* gtk/tmpl/gtkfontseldlg.sgml: changed enums to use @ fields.
* gtk/tmpl/gtkcolorsel.sgml:
* gtk/tmpl/gtkcolorseldlg.sgml:
* gtk/tmpl/gtkprogress.sgml:
* gtk/tmpl/gtkprogressbar.sgml: new sections from Tom Martone
<tom@martoneconsulting.com>
* gtk/tmpl/gtkclist.sgml: partially written documentation from
Paul Schifferer <isengard@geocities.com> who won't be able to finish it
1999-09-22 Martin Norbäck <d95mback@dtek.chalmers.se>
* gtk/tmpl/gtkclist.sgml: Added information about the sorting functions
Tue Oct 26 16:50:15 1999 Owen Taylor <otaylor@redhat.com>
* gtk/tmpl/gtkrc.sgml: Added information about widget
paths and pattern matching.
1999-09-22 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/tmpl/*.sgml: ran make templates, to fix problems with structs.
* gtk/gtk-sections.txt: rearranged GtkCombo section.
* gtk/tmpl/gtkvseparator.sgml:
* gtk/tmpl/gtkhseparator.sgml:
* gtk/tmpl/gtkgc.sgml:
* gtk/tmpl/gtkfeatures.sgml:
* gtk/tmpl/gtktipsquery.sgml:
* gtk/tmpl/gtkitem.sgml:
* gtk/tmpl/gtkinvisible.sgml:
* gtk/tmpl/gtkgamma.sgml:
* gtk/tmpl/gtkdata.sgml:
* gtk/tmpl/gtkcurve.sgml:
* gtk/tmpl/gtkcombo.sgml:
* gtk/tmpl/gtkaccellabel.sgml: documented.
1999-09-20 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/gtk-docs.sgml: added role="no-toc" to the GTK+ Widgets & Objects
chapter since we've created our own special contents page.
1999-09-19 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/tmpl/gtkmarshal.sgml:
* gtk/tmpl/gtksignal.sgml: new sections from
David Benson <daveb@idealab.com>.
* gtk/gtk-sections.txt: rearranged signal sections, and made most
marshallers private. Moved GtkSignalRunType to signals section.
* gtk/tmpl/gtkradiobutton.sgml: new section from Lee Mallabone.
1999-09-17 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/gtk-docs.sgml: removed menu factory and debugging sections.
* gtk/gtk-sections.txt: made menu factory stuff private since it is
deprecated. Also made debugging stuff private since it is only useful
within GTK+.
1999-09-14 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/tmpl/gtkfilesel.sgml: fixed mismatched parentheses.
1999-09-02 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gdk/tmpl/event_structs.sgml:
* gdk/tmpl/drawing.sgml: minor fixes.
1999-09-20 David C. Mason <dcm@redhat.com>
* gtk/tmpl/gtkimage.sgml: first pass at gtkimage... not complete
1999-08-28 Damon Chaplin <damon@karuna.freeserve.co.uk>
* gtk/tmpl/gtkbbox.sgml: new section from Lee Mallabone.
* gdk/gdk-sections.txt: rearranged rgb, regions, and drawing sections.
* gdk/tmpl/rgb.sgml: new section from Raph Levien, with a few changes
by me, including a little example app.
* gdk/tmpl/regions.sgml:
* gdk/tmpl/event_structs.sgml:
* gdk/tmpl/drawing.sgml: my first attempt.
* gdk/tmpl/cursors.sgml: tiny changes.
Tue Aug 17 09:14:01 1999 Owen Taylor <otaylor@redhat.com>
* gtk/tmpl/gtktypeutils.sgml: Fix corrupted end tag.
* gtk/tmpl/gtkselection.sgml gtk/tmpl/gtkrc.sgml
gtk/tmpl/gtkdnd.sgml gtk/tmpl/gtkarrow.sgml
gtk/tmpl/gtkpaned.sgml gtk/tmpl/gtkmisc.sgml
gtk/tmpl/gtkhandlebox.sgml gtk/tmpl/gtkctree.sgml:
Added missing close tags.
Thu Aug 19 14:43:08 1999 Owen Taylor <otaylor@redhat.com>
* gdk/tmpl/gcs.sgml gdk/gdk-sections.txt: Added section.
(Written a while ago but fell through the cracks)
* gtk/gtk-docs.sgml: Add a &hash; entity here as a
temporary hack. (There is no standard entity
for '#', and no way of escaping '#' in gtk-doc)
* gtk/tmpl/gtkrc.sgml: Use the above to fix up #rrggbb
string literals.
* gtk/tmpl/gtkdrawingarea.sgml: Fixed a couple
of errors in the example. (pointed out by
Nick Lamb)
Mon Aug 16 6:60:53 1999 Owen Taylor <otaylor@redhat.com>
* gdk/tmpl/properties.sgml
gdk/tmpl/selections.sgml
gdk/tmpl/input_devices.sgml: Documented
* gdk/gdk-sections.txt: Moved around types for
input devices properties and selections, marked
a few functions as private.

62
docs/reference/README Normal file
View File

@@ -0,0 +1,62 @@
This package contains the reference documentation
for GTK+. For more information about GTK+
see:
http://www.gtk.org
For information about contributing to the
GLib/GTK+ reference documentation project, see:
http://www.gtk.org/rdp/
The GTK+ reference documentation is freely redistributable,
see the file COPYING for details.
REQUIREMENTS
============
To build the documentation, you must have the gtk-doc
package installed. To rebuild the template files,
you must have the current version of the GTK+
header files installed.
BUILD
=====
First, run configure to generate the makefiles for this
module. There is one option specific to this package
--with-html-dir=DIR top of installed HTML documentation tree
The Makefiles in the gdk/ and gtk/ subdirs each define three targets:
templates:
Scan the headers and merge the results with the current
template files
sgml:
Generate SGML files using the DocBook DTD from
the template files
html:
Generate HTML from the SGML files.
To build the documentation, do:
make sgml
make html
You should only run the 'make templates' step if you
need to regenerate the templates for a more recent
version of the GTK+ sources.
INSTALLATION
============
make install

View File

@@ -0,0 +1,39 @@
Before making any changes to this module, please
contact:
Damon Chaplin <damon@karuna.freeserve.co.uk>
This will ensure that duplicate work does not occur,
and also make sure we know who has written what
parts of the documentation. See
http://www.gtk.org/rdp/
for more information.
By contributing work to the Reference Documentation
Project, you agree that it will be covered under the
license terms described in the file COPYING
included in this directory.
Other notes:
- Do not run 'make templates' unless you have
the latest cvs version of the gtk-1-2
branch of GTK+ and the latest CVS version
of gtk-doc.
(This is very important. Otherwise, the template
files may be come corrupted.)
Make sure that gtk-config --prefix points
to the correct version of GTK+.
- As always, ChangeLog entries should be made for
each commit. These can be really brief
"documented GHashTable"; but if you are editing
something someone else wrote, please be specific.
(Or better, send the changes to them for their
approval, first)

View File

@@ -0,0 +1,5 @@
Makefile
Makefile.in
html
sgml
gdk-pixbuf.html

View File

@@ -0,0 +1,110 @@
## Process this file with automake to produce Makefile.in
# The name of the module.
DOC_MODULE=gdk-pixbuf
# The top-level SGML file.
DOC_MAIN_SGML_FILE=gdk-pixbuf.sgml
# The directory containing the source code (if it contains documentation).
DOC_SOURCE_DIR=$(GDK_PIXBUF_DIR)/gdk-pixbuf
CFLAGS=`gnome-config --cflags gnomeui gdk_pixbuf gnomecanvaspixbuf`
LDFLAGS=`gnome-config --libs gnomeui gdk_pixbuf gnomecanvaspixbuf`
HTML_DIR=$(datadir)/gnome/html
TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
tmpl_sources = \
tmpl/animation.sgml \
tmpl/creating.sgml \
tmpl/file-loading.sgml \
tmpl/from-drawables.sgml \
tmpl/gdk-pixbuf-loader.sgml \
tmpl/gdk-pixbuf-unused.sgml \
tmpl/gdk-pixbuf.sgml \
tmpl/gnome-canvas-pixbuf.sgml \
tmpl/refcounting.sgml \
tmpl/rendering.sgml \
tmpl/scaling.sgml \
tmpl/util.sgml
gdk_pixbuf_docdir = $(HTML_DIR)
gdk_pixbuf_doc_DATA = \
gdk-pixbuf.html \
gdk-pixbuf.hierarchy \
gdk-pixbuf.types \
gdk-pixbuf-decl.txt \
gdk-pixbuf-sections.txt
content_files = \
compiling.sgml \
gdk-pixbuf.sgml
EXTRA_DIST = \
$(gdk_pixbuf_doc_DATA) \
$(content_files)
if ENABLE_GTK_DOC
gdk-pixbuf.html: html/book1.html
-cd $(srcdir) && cp html/book1.html gdk-pixbuf.html
else
gdk-pixbuf.html:
endif
html/book1.html: sgml/gdk-pixbuf-doc.bottom $(content_files)
$(MAKE) html
sgml/gdk-pixbuf-doc.bottom: $(tmpl_sources)
$(MAKE) sgml
scan:
-(cd $(srcdir) \
&& env CFLAGS=$(CFLAGS) LDFLAGS=$(LDFLAGS) \
gtkdoc-scanobj --module=$(DOC_MODULE) \
&& gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="pixops.h pixops-internal.h" )
templates: scan
cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
sgml:
cd $(srcdir) \
&& gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
html:
test -d $(srcdir)/html || mkdir $(srcdir)/html
-cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
clean-local:
rm -f *~ *.bak *.signals *-unused.txt
maintainer-clean-local: clean
cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
(installfiles=`echo $(srcdir)/html/*.html`; \
if test "$$installfiles" = '$(srcdir)/html/*.html'; \
then echo '-- Nothing to install' ; \
else \
for i in $$installfiles; do \
echo '-- Installing '$$i ; \
$(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
done; \
echo '-- Installing $(srcdir)/html/index.sgml' ; \
$(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
echo '-- Fixing Crossreferences' ; \
gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)|| true; \
fi)
dist-hook:
mkdir $(distdir)/html
mkdir $(distdir)/sgml
mkdir $(distdir)/tmpl
-cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
-cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
.PHONY : html sgml templates scan

View File

@@ -0,0 +1,109 @@
<appendix id="compiling">
<title>Compiling the <application>gdk-pixbuf</application>
library</title>
<para>
This appendix describes the special options you can use while
compiling the <application>gdk-pixbuf</application> library.
</para>
<sect1 id="building">
<title>Building the Library</title>
<para>
The <application>gdk-pixbuf</application> library uses the
standard GNU build system, using
<application>autoconf</application> for package configuration
and resolving portability issues,
<application>automake</application> for building makefiles
that comply with the GNU Coding Standards, and
<application>libtool</application> for building shared
libraries on multiple platforms. The normal sequence for
compiling and installing the
<application>gdk-pixbuf</application> library is thus:
<literallayout>
<userinput>./configure</userinput>
<userinput>make</userinput>
<userinput>make install</userinput>
</literallayout>
</para>
<para>
The standard options provided by <application>GNU
autoconf</application> may be passed to the
<command>configure</command> script. Please see the
<application>autoconf</application> documentation or run
<command>./configure --help</command> for information about
the standard options.
</para>
</sect1>
<sect1 id="extra-configuration-options">
<title>Extra Configuration Options</title>
<para>
In addition to the normal options, the
<command>configure</command> script in the
<application>gdk-pixbuf</application> library supports these
additional arguments:
<cmdsynopsis>
<command>configure</command>
<group>
<arg>--disable-modules</arg>
<arg>--enable-modules</arg>
</group>
<group>
<arg>--disable-gtk-doc</arg>
<arg>--enable-gtk-doc</arg>
</group>
</cmdsynopsis>
</para>
<formalpara>
<title><systemitem>--disable-modules</systemitem> and
<systemitem>--enable-modules</systemitem></title>
<para>
Normally <application>gdk-pixbuf</application> will try to
build the image file format loaders as little shared
libraries that are loaded on demand. The
<systemitem>--disable-modules</systemitem> argument
indicates that they should all be built statically into the
<application>gdk-pixbuf</application> library instead. This
is useful for people who need to produce statically-linked
binaries. If neither
<systemitem>--disable-modules</systemitem> nor
<systemitem>--enable-modules</systemitem> is specified, then
the <command>configure</command> script will try to
auto-detect whether shared modules work on your system.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-gtk-doc</systemitem> and
<systemitem>--enable-gtk-doc</systemitem></title>
<para>
By default the <command>configure</command> script will try
to auto-detect whether the
<application>gtk-doc</application> package is installed. If
it is, then it will use it to extract and build the
documentation for the <application>gdk-pixbuf</application>
library. These options can be used to explicitly control
whether gtk-doc should be used or not. If it is not used,
the distributed, pre-generated HTML files will be installed
instead of building them on your machine.
</para>
</formalpara>
</sect1>
</appendix>
<!--
Local variables:
mode: sgml
sgml-parent-document: ("gdk-pixbuf.sgml" "book" "book" "")
End:
-->

View File

@@ -0,0 +1,527 @@
<USER_FUNCTION>
<NAME>ModulePreparedNotifyFunc</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf, gpointer user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>ModuleUpdatedNotifyFunc</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf,
guint x, guint y,
guint width, guint height,
gpointer user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>ModuleFrameDoneNotifyFunc</NAME>
<RETURNS>void </RETURNS>
GdkPixbufFrame *frame,
gpointer user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>ModuleAnimationDoneNotifyFunc</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf,
gpointer user_data
</USER_FUNCTION>
<STRUCT>
<NAME>GdkPixbufModule</NAME>
</STRUCT>
<STRUCT>
<NAME>GdkPixbufModule</NAME>
struct GdkPixbufModule {
char *module_name;
gboolean (* format_check) (guchar *buffer, int size);
GModule *module;
GdkPixbuf *(* load) (FILE *f);
GdkPixbuf *(* load_xpm_data) (const char **data);
/* Incremental loading */
gpointer (* begin_load) (ModulePreparedNotifyFunc prepare_func,
ModuleUpdatedNotifyFunc update_func,
ModuleFrameDoneNotifyFunc frame_done_func,
ModuleAnimationDoneNotifyFunc anim_done_func,
gpointer user_data);
void (* stop_load) (gpointer context);
gboolean (* load_increment) (gpointer context, const guchar *buf, guint size);
/* Animation loading */
GdkPixbufAnimation *(* load_animation) (FILE *f);
};
</STRUCT>
<FUNCTION>
<NAME>gdk_pixbuf_get_module</NAME>
<RETURNS>GdkPixbufModule *</RETURNS>
guchar *buffer, guint size
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_load_module</NAME>
<RETURNS>void </RETURNS>
GdkPixbufModule *image_module
</FUNCTION>
<MACRO>
<NAME>GDK_TYPE_PIXBUF_LOADER</NAME>
#define GDK_TYPE_PIXBUF_LOADER (gdk_pixbuf_loader_get_type ())
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_LOADER</NAME>
#define GDK_PIXBUF_LOADER(obj) (GTK_CHECK_CAST ((obj), GDK_TYPE_PIXBUF_LOADER, GdkPixbufLoader))
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_LOADER_CLASS</NAME>
#define GDK_PIXBUF_LOADER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GDK_TYPE_PIXBUF_LOADER, GdkPixbufLoaderClass))
</MACRO>
<MACRO>
<NAME>GDK_IS_PIXBUF_LOADER</NAME>
#define GDK_IS_PIXBUF_LOADER(obj) (GTK_CHECK_TYPE ((obj), GDK_TYPE_PIXBUF_LOADER))
</MACRO>
<MACRO>
<NAME>GDK_IS_PIXBUF_LOADER_CLASS</NAME>
#define GDK_IS_PIXBUF_LOADER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GDK_TYPE_PIXBUF_LOADER))
</MACRO>
<STRUCT>
<NAME>GdkPixbufLoader</NAME>
</STRUCT>
<STRUCT>
<NAME>GdkPixbufLoader</NAME>
struct GdkPixbufLoader
{
GtkObject object;
/* < Private > */
gpointer private;
};
</STRUCT>
<STRUCT>
<NAME>GdkPixbufLoaderClass</NAME>
</STRUCT>
<FUNCTION>
<NAME>gdk_pixbuf_loader_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_loader_new</NAME>
<RETURNS>GdkPixbufLoader *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_loader_write</NAME>
<RETURNS>gboolean </RETURNS>
GdkPixbufLoader *loader,const guchar *buf,size_t count
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_loader_get_pixbuf</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
GdkPixbufLoader *loader
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_loader_get_animation</NAME>
<RETURNS>GdkPixbufAnimation *</RETURNS>
GdkPixbufLoader *loader
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_loader_close</NAME>
<RETURNS>void </RETURNS>
GdkPixbufLoader *loader
</FUNCTION>
<ENUM>
<NAME>GdkColorspace</NAME>
typedef enum {
GDK_COLORSPACE_RGB
} GdkColorspace;
</ENUM>
<STRUCT>
<NAME>GdkPixbuf</NAME>
</STRUCT>
<STRUCT>
<NAME>GdkPixbufFrame</NAME>
</STRUCT>
<STRUCT>
<NAME>GdkPixbufAnimation</NAME>
</STRUCT>
<USER_FUNCTION>
<NAME>GdkPixbufDestroyNotify</NAME>
<RETURNS>void </RETURNS>
guchar *pixels, gpointer data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>GdkPixbufLastUnref</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf, gpointer data
</USER_FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_ref</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_unref</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_set_last_unref_handler</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf,GdkPixbufLastUnref last_unref_fn,gpointer last_unref_fn_data
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_finalize</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_colorspace</NAME>
<RETURNS>GdkColorspace </RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_n_channels</NAME>
<RETURNS>int </RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_has_alpha</NAME>
<RETURNS>gboolean </RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_bits_per_sample</NAME>
<RETURNS>int </RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_pixels</NAME>
<RETURNS>guchar *</RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_width</NAME>
<RETURNS>int </RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_height</NAME>
<RETURNS>int </RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_rowstride</NAME>
<RETURNS>int </RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_new</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
GdkColorspace colorspace, gboolean has_alpha, int bits_per_sample,int width, int height
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_copy</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
const GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_new_from_file</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
const char *filename
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_new_from_data</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
const guchar *data,GdkColorspace colorspace,gboolean has_alpha,int bits_per_sample,int width, int height,int rowstride,GdkPixbufDestroyNotify destroy_fn,gpointer destroy_fn_data
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_new_from_xpm_data</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
const char **data
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_add_alpha</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
const GdkPixbuf *pixbuf, gboolean substitute_color,guchar r, guchar g, guchar b
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_copy_area</NAME>
<RETURNS>void </RETURNS>
const GdkPixbuf *src_pixbuf,int src_x, int src_y,int width, int height,GdkPixbuf *dest_pixbuf,int dest_x, int dest_y
</FUNCTION>
<ENUM>
<NAME>GdkPixbufAlphaMode</NAME>
typedef enum {
GDK_PIXBUF_ALPHA_BILEVEL,
GDK_PIXBUF_ALPHA_FULL
} GdkPixbufAlphaMode;
</ENUM>
<FUNCTION>
<NAME>gdk_pixbuf_render_threshold_alpha</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf, GdkBitmap *bitmap,int src_x, int src_y,int dest_x, int dest_y,int width, int height,int alpha_threshold
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_render_to_drawable</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf,GdkDrawable *drawable, GdkGC *gc,int src_x, int src_y,int dest_x, int dest_y,int width, int height,GdkRgbDither dither,int x_dither, int y_dither
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_render_to_drawable_alpha</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf, GdkDrawable *drawable,int src_x, int src_y,int dest_x, int dest_y,int width, int height,GdkPixbufAlphaMode alpha_mode,int alpha_threshold,GdkRgbDither dither,int x_dither, int y_dither
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_render_pixmap_and_mask</NAME>
<RETURNS>void </RETURNS>
GdkPixbuf *pixbuf,GdkPixmap **pixmap_return, GdkBitmap **mask_return,int alpha_threshold
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_from_drawable</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
GdkPixbuf *dest,GdkDrawable *src, GdkColormap *cmap,int src_x, int src_y,int dest_x, int dest_y,int width, int height
</FUNCTION>
<ENUM>
<NAME>GdkInterpType</NAME>
typedef enum {
GDK_INTERP_NEAREST,
GDK_INTERP_TILES,
GDK_INTERP_BILINEAR,
GDK_INTERP_HYPER
} GdkInterpType;
</ENUM>
<FUNCTION>
<NAME>gdk_pixbuf_scale</NAME>
<RETURNS>void </RETURNS>
const GdkPixbuf *src,GdkPixbuf *dest,int dest_x,int dest_y,int dest_width,int dest_height,double offset_x,double offset_y,double scale_x,double scale_y,GdkInterpType interp_type
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_composite</NAME>
<RETURNS>void </RETURNS>
const GdkPixbuf *src,GdkPixbuf *dest,int dest_x,int dest_y,int dest_width,int dest_height,double offset_x,double offset_y,double scale_x,double scale_y,GdkInterpType interp_type,int overall_alpha
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_composite_color</NAME>
<RETURNS>void </RETURNS>
const GdkPixbuf *src,GdkPixbuf *dest,int dest_x,int dest_y,int dest_width,int dest_height,double offset_x,double offset_y,double scale_x,double scale_y,GdkInterpType interp_type,int overall_alpha,int check_x,int check_y,int check_size,guint32 color1,guint32 color2
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_scale_simple</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
const GdkPixbuf *src,int dest_width,int dest_height,GdkInterpType interp_type
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_composite_color_simple</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
const GdkPixbuf *src,int dest_width,int dest_height,GdkInterpType interp_type,int overall_alpha,int check_size,guint32 color1,guint32 color2
</FUNCTION>
<ENUM>
<NAME>GdkPixbufFrameAction</NAME>
typedef enum {
GDK_PIXBUF_FRAME_RETAIN,
GDK_PIXBUF_FRAME_DISPOSE,
GDK_PIXBUF_FRAME_REVERT
} GdkPixbufFrameAction;
</ENUM>
<FUNCTION>
<NAME>gdk_pixbuf_animation_new_from_file</NAME>
<RETURNS>GdkPixbufAnimation *</RETURNS>
const char *filename
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_animation_ref</NAME>
<RETURNS>GdkPixbufAnimation *</RETURNS>
GdkPixbufAnimation *animation
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_animation_unref</NAME>
<RETURNS>void </RETURNS>
GdkPixbufAnimation *animation
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_animation_get_width</NAME>
<RETURNS>int </RETURNS>
GdkPixbufAnimation *animation
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_animation_get_height</NAME>
<RETURNS>int </RETURNS>
GdkPixbufAnimation *animation
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_animation_get_frames</NAME>
<RETURNS>GList *</RETURNS>
GdkPixbufAnimation *animation
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_animation_get_num_frames</NAME>
<RETURNS>int </RETURNS>
GdkPixbufAnimation *animation
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_frame_get_pixbuf</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
GdkPixbufFrame *frame
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_frame_get_x_offset</NAME>
<RETURNS>int </RETURNS>
GdkPixbufFrame *frame
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_frame_get_y_offset</NAME>
<RETURNS>int </RETURNS>
GdkPixbufFrame *frame
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_frame_get_delay_time</NAME>
<RETURNS>int </RETURNS>
GdkPixbufFrame *frame
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_frame_get_action</NAME>
<RETURNS>GdkPixbufFrameAction </RETURNS>
GdkPixbufFrame *frame
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_preinit</NAME>
<RETURNS>void </RETURNS>
gpointer app, gpointer modinfo
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_postinit</NAME>
<RETURNS>void </RETURNS>
gpointer app, gpointer modinfo
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_CANVAS_PIXBUF</NAME>
#define GNOME_TYPE_CANVAS_PIXBUF (gnome_canvas_pixbuf_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_CANVAS_PIXBUF</NAME>
#define GNOME_CANVAS_PIXBUF(obj) (GTK_CHECK_CAST ((obj), \
GNOME_TYPE_CANVAS_PIXBUF, GnomeCanvasPixbuf))
</MACRO>
<MACRO>
<NAME>GNOME_CANVAS_PIXBUF_CLASS</NAME>
#define GNOME_CANVAS_PIXBUF_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), \
GNOME_TYPE_CANVAS_PIXBUF, GnomeCanvasPixbufClass))
</MACRO>
<MACRO>
<NAME>GNOME_IS_CANVAS_PIXBUF</NAME>
#define GNOME_IS_CANVAS_PIXBUF(obj) (GTK_CHECK_TYPE ((obj), GNOME_TYPE_CANVAS_PIXBUF))
</MACRO>
<MACRO>
<NAME>GNOME_IS_CANVAS_PIXBUF_CLASS</NAME>
#define GNOME_IS_CANVAS_PIXBUF_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), \
GNOME_TYPE_CANVAS_PIXBUF))
</MACRO>
<STRUCT>
<NAME>GnomeCanvasPixbuf</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomeCanvasPixbufClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomeCanvasPixbuf</NAME>
struct GnomeCanvasPixbuf {
GnomeCanvasItem item;
/* Private data */
gpointer priv;
};
</STRUCT>
<FUNCTION>
<NAME>gnome_canvas_pixbuf_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>GDK_PIXBUF_MAJOR</NAME>
#define GDK_PIXBUF_MAJOR (0)
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_MINOR</NAME>
#define GDK_PIXBUF_MINOR (7)
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_MICRO</NAME>
#define GDK_PIXBUF_MICRO (0)
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_VERSION</NAME>
#define GDK_PIXBUF_VERSION "0.7.0"
</MACRO>
<VARIABLE>
<NAME>gdk_pixbuf_version</NAME>
extern const char *gdk_pixbuf_version;
</VARIABLE>
<STRUCT>
<NAME>GdkPixbuf</NAME>
struct GdkPixbuf {
/* Reference count */
int ref_count;
/* Color space */
GdkColorspace colorspace;
/* Number of channels, alpha included */
int n_channels;
/* Bits per channel */
int bits_per_sample;
/* Size */
int width, height;
/* Offset between rows */
int rowstride;
/* The pixel array */
guchar *pixels;
/* Destroy notification function; it is supposed to free the pixel array */
GdkPixbufDestroyNotify destroy_fn;
/* User data for the destroy notification function */
gpointer destroy_fn_data;
/* Last unref handler, determines whether the pixbuf should be finalized */
GdkPixbufLastUnref last_unref_fn;
/* User data for the last unref handler */
gpointer last_unref_fn_data;
/* Do we have an alpha channel? */
guint has_alpha : 1;
};
</STRUCT>
<STRUCT>
<NAME>GdkPixbufFrame</NAME>
struct GdkPixbufFrame {
/* The pixbuf with this frame's image data */
GdkPixbuf *pixbuf;
/* Offsets for overlaying onto the animation's area */
int x_offset;
int y_offset;
/* Frame duration in ms */
int delay_time;
/* Overlay mode */
GdkPixbufFrameAction action;
};
</STRUCT>
<STRUCT>
<NAME>GdkPixbufAnimation</NAME>
struct GdkPixbufAnimation {
/* Reference count */
int ref_count;
/* Number of frames */
int n_frames;
/* List of GdkPixbufFrame structures */
GList *frames;
/* bounding box size */
int width, height;
};
</STRUCT>

View File

@@ -0,0 +1,120 @@
<INCLUDE>gdk-pixbuf/gdk-pixbuf.h</INCLUDE>
<SECTION>
<FILE>gdk-pixbuf</FILE>
GdkColorspace
GdkPixbuf
gdk_pixbuf_get_colorspace
gdk_pixbuf_get_n_channels
gdk_pixbuf_get_has_alpha
gdk_pixbuf_get_bits_per_sample
gdk_pixbuf_get_pixels
gdk_pixbuf_get_width
gdk_pixbuf_get_height
gdk_pixbuf_get_rowstride
</SECTION>
<SECTION>
<FILE>refcounting</FILE>
GdkPixbufDestroyNotify
GdkPixbufLastUnref
gdk_pixbuf_ref
gdk_pixbuf_unref
gdk_pixbuf_set_last_unref_handler
gdk_pixbuf_finalize
</SECTION>
<SECTION>
<FILE>file-loading</FILE>
gdk_pixbuf_new_from_file
</SECTION>
<SECTION>
<FILE>creating</FILE>
gdk_pixbuf_new
gdk_pixbuf_new_from_data
gdk_pixbuf_new_from_xpm_data
gdk_pixbuf_copy
</SECTION>
<SECTION>
<FILE>rendering</FILE>
GdkPixbufAlphaMode
gdk_pixbuf_render_to_drawable_alpha
gdk_pixbuf_render_to_drawable
gdk_pixbuf_render_threshold_alpha
gdk_pixbuf_render_pixmap_and_mask
</SECTION>
<SECTION>
<FILE>from-drawables</FILE>
gdk_pixbuf_get_from_drawable
</SECTION>
<SECTION>
<FILE>util</FILE>
gdk_pixbuf_add_alpha
gdk_pixbuf_copy_area
</SECTION>
<SECTION>
<FILE>animation</FILE>
GdkPixbufFrameAction
GdkPixbufFrame
GdkPixbufAnimation
gdk_pixbuf_animation_new_from_file
gdk_pixbuf_animation_ref
gdk_pixbuf_animation_unref
gdk_pixbuf_animation_get_frames
gdk_pixbuf_animation_get_width
gdk_pixbuf_animation_get_num_frames
gdk_pixbuf_animation_get_height
gdk_pixbuf_frame_get_pixbuf
gdk_pixbuf_frame_get_action
gdk_pixbuf_frame_get_y_offset
gdk_pixbuf_frame_get_delay_time
gdk_pixbuf_frame_get_x_offset
</SECTION>
<SECTION>
<FILE>scaling</FILE>
GdkInterpType
gdk_pixbuf_scale
gdk_pixbuf_composite
gdk_pixbuf_composite_color
gdk_pixbuf_scale_simple
gdk_pixbuf_composite_color_simple
</SECTION>
<SECTION>
<FILE>gdk-pixbuf-loader</FILE>
GDK_PIXBUF_LOADER
<TITLE>GdkPixbufLoader</TITLE>
gdk_pixbuf_loader_new
gdk_pixbuf_loader_write
gdk_pixbuf_loader_get_pixbuf
gdk_pixbuf_loader_get_animation
gdk_pixbuf_loader_close
<SUBSECTION Standard>
GDK_TYPE_PIXBUF_LOADER
GDK_IS_PIXBUF_LOADER
gdk_pixbuf_loader_get_type
GDK_PIXBUF_LOADER_CLASS
GDK_IS_PIXBUF_LOADER_CLASS
<SUBSECTION Private>
GdkPixbufLoader
</SECTION>
<SECTION>
<FILE>gnome-canvas-pixbuf</FILE>
GNOME_CANVAS_PIXBUF
<TITLE>GnomeCanvasPixbuf</TITLE>
<SUBSECTION Standard>
GNOME_TYPE_CANVAS_PIXBUF
GNOME_IS_CANVAS_PIXBUF
gnome_canvas_pixbuf_get_type
GNOME_CANVAS_PIXBUF_CLASS
GNOME_IS_CANVAS_PIXBUF_CLASS
<SUBSECTION Private>
GnomeCanvasPixbuf
</SECTION>

View File

@@ -0,0 +1,66 @@
<ARG>
<NAME>GnomeCanvasPixbuf::pixbuf</NAME>
<TYPE>gpointer</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::width</NAME>
<TYPE>gdouble</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::width_set</NAME>
<TYPE>gboolean</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::width_in_pixels</NAME>
<TYPE>gboolean</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::height</NAME>
<TYPE>gdouble</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::height_set</NAME>
<TYPE>gboolean</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::height_in_pixels</NAME>
<TYPE>gboolean</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::x</NAME>
<TYPE>gdouble</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::x_in_pixels</NAME>
<TYPE>gboolean</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::y</NAME>
<TYPE>gdouble</TYPE>
<FLAGS>rw</FLAGS>
</ARG>
<ARG>
<NAME>GnomeCanvasPixbuf::y_in_pixels</NAME>
<TYPE>gboolean</TYPE>
<FLAGS>rw</FLAGS>
</ARG>

View File

@@ -0,0 +1,4 @@
GtkObject
GdkPixbufLoader
GnomeCanvasItem
GnomeCanvasPixbuf

View File

@@ -0,0 +1,64 @@
<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!entity gdk-pixbuf-gdk-pixbuf SYSTEM "sgml/gdk-pixbuf.sgml">
<!entity gdk-pixbuf-refcounting SYSTEM "sgml/refcounting.sgml">
<!entity gdk-pixbuf-file-loading SYSTEM "sgml/file-loading.sgml">
<!entity gdk-pixbuf-creating SYSTEM "sgml/creating.sgml">
<!entity gdk-pixbuf-rendering SYSTEM "sgml/rendering.sgml">
<!entity gdk-pixbuf-scaling SYSTEM "sgml/scaling.sgml">
<!entity gdk-pixbuf-from-drawables SYSTEM "sgml/from-drawables.sgml">
<!entity gdk-pixbuf-util SYSTEM "sgml/util.sgml">
<!entity gdk-pixbuf-animation SYSTEM "sgml/animation.sgml">
<!entity GdkPixbufLoader SYSTEM "sgml/gdk-pixbuf-loader.sgml">
<!entity GnomeCanvasPixbuf SYSTEM "sgml/gnome-canvas-pixbuf.sgml">
<!entity Compiling SYSTEM "compiling.sgml">
]>
<book>
<bookinfo>
<title>The <application>gdk-pixbuf</application> Library</title>
<authorgroup>
<author>
<firstname>Federico</firstname>
<surname>Mena Quintero</surname>
<affiliation>
<address>
<email>federico@gimp.org</email>
</address>
</affiliation>
</author>
</authorgroup>
<copyright>
<year>1999</year>
<holder>The Free Software Foundation</holder>
</copyright>
</bookinfo>
<reference>
<title>API Reference</title>
<partintro>
<para>
This part presents the class and function reference for the
<application>gdk-pixbuf</application> library. Classes are
described together with their methods; individual functions
are grouped by functional group.
</para>
</partintro>
&gdk-pixbuf-gdk-pixbuf;
&gdk-pixbuf-refcounting;
&gdk-pixbuf-file-loading;
&gdk-pixbuf-creating;
&gdk-pixbuf-rendering;
&gdk-pixbuf-scaling;
&gdk-pixbuf-from-drawables;
&gdk-pixbuf-util;
&gdk-pixbuf-animation;
&GdkPixbufLoader;
&GnomeCanvasPixbuf;
</reference>
&Compiling;
</book>

View File

@@ -0,0 +1,35 @@
<SIGNAL>
<NAME>GdkPixbufLoader::area-updated</NAME>
<RETURNS>void</RETURNS>
GdkPixbufLoader *gdkpixbufloader
gint arg1
gint arg2
gint arg3
gint arg4
</SIGNAL>
<SIGNAL>
<NAME>GdkPixbufLoader::area-prepared</NAME>
<RETURNS>void</RETURNS>
GdkPixbufLoader *gdkpixbufloader
</SIGNAL>
<SIGNAL>
<NAME>GdkPixbufLoader::frame-done</NAME>
<RETURNS>void</RETURNS>
GdkPixbufLoader *gdkpixbufloader
gpointer arg1
</SIGNAL>
<SIGNAL>
<NAME>GdkPixbufLoader::animation-done</NAME>
<RETURNS>void</RETURNS>
GdkPixbufLoader *gdkpixbufloader
</SIGNAL>
<SIGNAL>
<NAME>GdkPixbufLoader::closed</NAME>
<RETURNS>void</RETURNS>
GdkPixbufLoader *gdkpixbufloader
</SIGNAL>

View File

@@ -0,0 +1,7 @@
#include <gnome.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk-pixbuf/gdk-pixbuf-loader.h>
#include <gdk-pixbuf/gnome-canvas-pixbuf.h>
gdk_pixbuf_loader_get_type
gnome_canvas_pixbuf_get_type

View File

@@ -0,0 +1,164 @@
<!-- ##### SECTION Title ##### -->
Animations
<!-- ##### SECTION Short_Description ##### -->
Animations as multi-frame structures.
<!-- ##### SECTION Long_Description ##### -->
<para>
The <application>gdk-pixbuf</application> library provides a
simple mechanism to load and represent animations, primarily
animated GIF files. Animations are represented as lists of
#GdkPixbufFrame structures. Each frame structure contains a
#GdkPixbuf structure and information about the frame's overlay
mode and duration.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkPixbufLoader
</para>
<!-- ##### ENUM GdkPixbufFrameAction ##### -->
<para>
Each animation frame can have several things happen to it when the
next frame is displayed. The #GdkPixbufFrameAction determines
this. These are essentially the overlay modes supported by GIF
animations.
</para>
@GDK_PIXBUF_FRAME_RETAIN: The previous image should remain displayed,
and will potentially be occluded by the new frame.
@GDK_PIXBUF_FRAME_DISPOSE: The animation will be reverted to the state
before the frame was shown.
@GDK_PIXBUF_FRAME_REVERT: The animation will be reverted to the first
frame.
<!-- ##### STRUCT GdkPixbufFrame ##### -->
<para>
This structure describes a frame in a #GdkPixbufAnimation. Each
frame consists of a #GdkPixbuf, an offset of the frame within the
animation's bounding box, a duration, and an overlay mode or
action.
</para>
<!-- ##### STRUCT GdkPixbufAnimation ##### -->
<para>
This structure describes an animation, which is represented as a
list of #GdkPixbufFrame structures.
</para>
<!-- ##### FUNCTION gdk_pixbuf_animation_new_from_file ##### -->
<para>
</para>
@filename:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_animation_ref ##### -->
<para>
</para>
@animation:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_animation_unref ##### -->
<para>
</para>
@animation:
<!-- ##### FUNCTION gdk_pixbuf_animation_get_frames ##### -->
<para>
</para>
@animation:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_animation_get_width ##### -->
<para>
</para>
@animation:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_animation_get_num_frames ##### -->
<para>
</para>
@animation:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_animation_get_height ##### -->
<para>
</para>
@animation:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_frame_get_pixbuf ##### -->
<para>
</para>
@frame:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_frame_get_action ##### -->
<para>
</para>
@frame:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_frame_get_y_offset ##### -->
<para>
</para>
@frame:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_frame_get_delay_time ##### -->
<para>
</para>
@frame:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_frame_get_x_offset ##### -->
<para>
</para>
@frame:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,100 @@
<!-- ##### SECTION Title ##### -->
Image Data in Memory
<!-- ##### SECTION Short_Description ##### -->
Creating a pixbuf from image data that is already in memory.
<!-- ##### SECTION Long_Description ##### -->
<para>
The most basic way to create a pixbuf is to wrap an existing pixel
buffer with a #GdkPixbuf structure. You can use the
gdk_pixbuf_new_from_data() function to do this You need to specify
the destroy notification function that will be called when the
data buffer needs to be freed; this will happen when a #GdkPixbuf
is finalized by the reference counting functions If you have a
chunk of static data compiled into your application, you can pass
in #NULL as the destroy notification function so that the data
will not be freed.
</para>
<para>
The gdk_pixbuf_new() function can be used as a convenience to
create a pixbuf with an empty buffer. This is equivalent to
allocating a data buffer using malloc() and then wrapping it with
gdk_pixbuf_new_from_data(). The gdk_pixbuf_new() function will
compute an optimal rowstride so that rendering can be performed
with an efficient algorithm.
</para>
<para>
As a special case, you can use the gdk_pixbuf_new_from_xpm_data()
function to create a pixbuf from inline XPM image data.
</para>
<para>
You can also copy an existing pixbuf with the gdk_pixbuf_copy()
function. This is not the same as just doing a gdk_pixbuf_ref()
on the old pixbuf; the copy function will actually duplicate the
pixel data in memory and create a new #GdkPixbuf structure for it.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
gdk_pixbuf_finalize().
</para>
<!-- ##### FUNCTION gdk_pixbuf_new ##### -->
<para>
</para>
@colorspace:
@has_alpha:
@bits_per_sample:
@width:
@height:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_new_from_data ##### -->
<para>
</para>
@data:
@colorspace:
@has_alpha:
@bits_per_sample:
@width:
@height:
@rowstride:
@destroy_fn:
@destroy_fn_data:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_new_from_xpm_data ##### -->
<para>
</para>
@data:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_copy ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,43 @@
<!-- ##### SECTION Title ##### -->
File Loading
<!-- ##### SECTION Short_Description ##### -->
Loading a pixbuf from a file.
<!-- ##### SECTION Long_Description ##### -->
<para>
The <application>gdk-pixbuf</application> library provides a
simple mechanism for loading an image from a file in synchronous
fashion. This means that the library takes control of the
application while the file is being loaded; from the user's point
of view, the application will block until the image is done
loading.
</para>
<para>
This interface can be used by applications in which blocking is
acceptable while an image is being loaded. It can also be used to
load small images in general. Applications that need progressive
loading can use the #GdkPixbufLoader functionality instead.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkPixbufLoader.
</para>
<!-- ##### FUNCTION gdk_pixbuf_new_from_file ##### -->
<para>
</para>
@filename:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,43 @@
<!-- ##### SECTION Title ##### -->
Drawables to Pixbufs
<!-- ##### SECTION Short_Description ##### -->
Getting parts of a drawable's image data into a pixbuf.
<!-- ##### SECTION Long_Description ##### -->
<para>
The functions in this section allow you to take the image data
from a GDK drawable and dump it into a #GdkPixbuf. This can be
used for screenshots and other special effects. Note that these
operations can be expensive, since the image data has to be
transferred from the X server to the client program and converted.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
gdk_image_get().
</para>
<!-- ##### FUNCTION gdk_pixbuf_get_from_drawable ##### -->
<para>
</para>
@dest:
@src:
@cmap:
@src_x:
@src_y:
@dest_x:
@dest_y:
@width:
@height:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,70 @@
<!-- ##### SECTION Title ##### -->
gdk-pixbuf-io
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### USER_FUNCTION ModulePreparedNotifyFunc ##### -->
<para>
</para>
@pixbuf:
@user_data:
<!-- ##### USER_FUNCTION ModuleUpdatedNotifyFunc ##### -->
<para>
</para>
@pixbuf:
@user_data:
@x:
@y:
@width:
@height:
<!-- ##### STRUCT GdkPixbufModule ##### -->
<para>
</para>
@module_name:
@format_check:
@module:
@load:
@load_xpm_data:
@begin_load:
@stop_load:
@load_increment:
<!-- ##### FUNCTION gdk_pixbuf_get_module ##### -->
<para>
</para>
@buffer:
@size:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_load_module ##### -->
<para>
</para>
@image_module:

View File

@@ -0,0 +1,188 @@
<!-- ##### SECTION Title ##### -->
GdkPixbufLoader
<!-- ##### SECTION Short_Description ##### -->
Application-driven progressive image loading.
<!-- ##### SECTION Long_Description ##### -->
<para>
#GdkPixbufLoader provides a way for applications to drive the
process of loading an image, by letting them send the image data
directly to the loader instead of having the loader read the data
from a file. Applications can use this functionality instead of
gdk_pixbuf_new_from_file() when they need to parse image data in
small chunks. For example, it should be used when reading an
image from a (potentially) slow network connection, or when
loading an extremely large file.
</para>
<para>
To use #GdkPixbufLoader to load an image, just create a new one,
and call gdk_pixbuf_loader_write() to send the data to it. When
done, gdk_pixbuf_loader_close() should be called to end the stream
and finalize everything. The loader will emit two important
signals throughout the process. The first, "<link
linkend="GdkPixbufLoader-area-prepared">area_prepared</link>",
will be called as soon as the image has enough information to
determine the size of the image to be used. It will pass a
@GdkPixbuf in. If you want to use it, you can simply ref it. In
addition, no actual information will be passed in yet, so the
pixbuf can be safely filled with any temporary graphics (or an
initial color) as needed. You can also call the
gdk_pixbuf_loader_get_pixbuf() once this signal has been emitted
and get the same pixbuf.
</para>
<para>
The other signal, "<link
linkend="GdkPixbufLoader-area-updated">area_updated</link>" gets
called every time a region is updated. This way you can update a
partially completed image. Note that you do not know anything
about the completeness of an image from the area updated. For
example, in an interlaced image, you need to make several passes
before the image is done loading.
</para>
<refsect2>
<title>Loading an animation</title>
<para>
Loading an animation is a little more complex then loading an
image. In addition to the above signals, there is also a "<link
linkend="GdkPixbufLoader-frame-done">frame_done</link>" signal,
as well as an "<link
linkend="GdkPixbufLoader-animation-done">animation_done</link>"
signal. The first lets the application know that it is dealing
with an animation, instead of a static image. It also passes a
#GdkPixbufFrame in the signal. As before, if you want to keep
the frame, you need to ref it. Once the first "<link
linkend="GdkPixbufLoader-frame-done">frame_done</link>" signal
has been emitted, you can call gdk_pixbuf_loader_get_animation()
to get the #GdkPixbufAnimation struct. Each subsequent frame
goes through a similar lifecycle. For example "<link
linkend="GdkPixbufLoader-area-prepared">area_prepared</link>" is
re-emitted. Then "<link
linkend="GdkPixbufLoader-area-updated">area_updated</link>" is
emitted as many times as necessary. Finally, "<link
linkend="GdkPixbufLoader-animation-done">animation_done</link>"
is emitted as soon as all frames are done.
</para>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
gdk_pixbuf_new_from_file()
</para>
<!-- ##### MACRO GDK_PIXBUF_LOADER ##### -->
<para>
Casts a #GtkObject to a #GdkPixbufLoader.
</para>
@obj: A GTK+ object.
<!-- ##### FUNCTION gdk_pixbuf_loader_new ##### -->
<para>
</para>
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_loader_write ##### -->
<para>
</para>
@loader:
@buf:
@count:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_loader_get_pixbuf ##### -->
<para>
</para>
@loader:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_loader_get_animation ##### -->
<para>
</para>
@loader:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_loader_close ##### -->
<para>
</para>
@loader:
<!-- ##### SIGNAL GdkPixbufLoader::area-updated ##### -->
<para>
This signal is emitted when a significant area of the image being
loaded has been updated. Normally it means that a complete
scanline has been read in, but it could be a different area as
well. Applications can use this signal to know when to repaint
areas of an image that is being loaded.
</para>
@loader: Loader which emitted the signal.
@x: X offset of upper-left corner of the updated area.
@y: Y offset of upper-left corner of the updated area.
@width: Width of updated area.
@height: Height of updated area.
<!-- ##### SIGNAL GdkPixbufLoader::area-prepared ##### -->
<para>
This signal is emitted when the pixbuf loader has been fed the
initial amount of data that is required to figure out the size and
format of the image that it will create. After this signal is
emitted, applications can call gdk_pixbuf_loader_get_pixbuf() to
fetch the partially-loaded pixbuf.
</para>
@loader: Loader which emitted the signal.
<!-- ##### SIGNAL GdkPixbufLoader::frame-done ##### -->
<para>
This signal is emitted when a frame is done loading. It will be
emitted for each frame in an animation data stream.
</para>
@loader: Loader which emitted the signal.
@frame: Frame which just completed loading.
<!-- ##### SIGNAL GdkPixbufLoader::animation-done ##### -->
<para>
This signal is emitted when an animation is done loading.
</para>
@loader: Loader which emitted the signal.
<!-- ##### SIGNAL GdkPixbufLoader::closed ##### -->
<para>
This signal is emitted when gdk_pixbuf_loader_close() is called.
It can be used by different parts of an application to receive
notification when an image loader is closed by the code that
drives it.
</para>
@loader: Loader which emitted the signal.
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,130 @@
<!-- ##### FUNCTION gdk_pixbuf_load_module ##### -->
<para>
</para>
@image_module:
<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Short_Description ##### -->
<!-- ##### STRUCT GdkPixbufModule ##### -->
<para>
</para>
@module_name:
@format_check:
@module:
@load:
@load_xpm_data:
@begin_load:
@stop_load:
@load_increment:
<!-- ##### ARG GnomeCanvasPixbuf:x_set ##### -->
<para>
Determines whether the <link
linkend="GnomeCanvasPixbuf--x">x</link> argument is used to
translate the pixbuf from its logical origin in item-relative
coordinates.
</para>
<!-- ##### USER_FUNCTION ModulePreparedNotifyFunc ##### -->
<para>
</para>
@pixbuf:
@user_data:
<!-- ##### FUNCTION gdk_pixbuf_get_module ##### -->
<para>
</para>
@buffer:
@size:
@Returns:
<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_pixbuf_new_from_art_pixbuf ##### -->
<para>
</para>
@art_pixbuf:
@Returns:
<!-- ##### ARG GnomeCanvasPixbuf:height_pixels ##### -->
<para>
</para>
<!-- ##### ARG GnomeCanvasPixbuf:y_pixels ##### -->
<para>
</para>
<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Long_Description ##### -->
<para>
</para>
<!-- ##### USER_FUNCTION ModuleUpdatedNotifyFunc ##### -->
<para>
</para>
@pixbuf:
@user_data:
@x:
@y:
@width:
@height:
<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Title ##### -->
gdk-pixbuf-io
<!-- ##### ARG GnomeCanvasPixbuf:y_set ##### -->
<para>
Determines whether the <link
linkend="GnomeCanvasPixbuf--y">y</link> argument is used to
translate the pixbuf from its logical origin in item-relative
coordinates. Works in the same way as the <link
linkend="GnomeCanvasPixbuf--x-set">x_set</link> argument. The
default is %FALSE.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:x_pixels ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_pixbuf_get_format ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### ARG GnomeCanvasPixbuf:width_pixels ##### -->
<para>
</para>

View File

@@ -0,0 +1,112 @@
<!-- ##### SECTION Title ##### -->
The GdkPixbuf Structure
<!-- ##### SECTION Short_Description ##### -->
Information that describes an image.
<!-- ##### SECTION Long_Description ##### -->
<para>
The <structname>GdkPixbuf</structname> structure contains
information that describes an image in memory.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### ENUM GdkColorspace ##### -->
<para>
This enumeration defines the color spaces that are supported by
the <application>gdk-pixbuf</application> library. Currently only
RGB is supported.
</para>
@GDK_COLORSPACE_RGB: Indicates a red/green/blue additive color space.
<!-- ##### STRUCT GdkPixbuf ##### -->
<para>
This is the main structure in the
<application>gdk-pixbuf</application> library. It is used to
represent images. It contains information about the image's pixel
data, its color space, bits per sample, width and height, and the
rowstride or number of bytes between rows.
</para>
<!-- ##### FUNCTION gdk_pixbuf_get_colorspace ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_n_channels ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_has_alpha ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_bits_per_sample ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_pixels ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_width ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_height ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_rowstride ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,301 @@
<!-- ##### SECTION Title ##### -->
GnomeCanvasPixbuf
<!-- ##### SECTION Short_Description ##### -->
Canvas item to display #GdkPixbuf images.
<!-- ##### SECTION Long_Description ##### -->
<para>
This canvas item displays #GdkPixbuf images. It handles full
affine transformations in both GDK and antialiased modes, and also
supports the <ulink url="http://www.w3.org">W3C</ulink>'s <ulink
url="http://www.w3.org/Graphics/SVG/">SVG</ulink>-like scaling and
translation semantics for absolute pixel values.
</para>
<para>
#GdkPixbuf structures may be shared among different pixbuf canvas
items; the pixbuf item uses #GdkPixbuf's reference counting
functions for this.
</para>
<refsect2>
<title>Custom Scaling and Translation</title>
<para>
In addition to the normal affine transformations supported by
canvas items, the #GnomeCanvasPixbuf item supports independent
object arguments for scaling and translation. This is useful
for explicitly setting a size to which the pixbuf's image will
be scaled, and for specifying translation offsets that take
place in the item's local coordinate system.
</para>
<para>
By default, the pixbuf canvas item will attain the size in units
of the #GdkPixbuf it contains. If a #GnomeCanvasPixbuf is
configured to use a #GdkPixbuf that has a size of 300 by 200
pixels, then the pixbuf item will automatically obtain a size of
300 by 200 units in the item's local coordinate system. If the
item is transformed with a scaling transformation of (0.5, 2.0),
then the final image size will be of 150 by 400 pixels.
</para>
<para>
To set custom width and height values, you must set the <link
linkend="GnomeCanvasPixbuf--width-set">width_set</link> or <link
linkend="GnomeCanvasPixbuf--height-set">height_set</link>
arguments to %TRUE, and then set the <link
linkend="GnomeCanvasPixbuf--width">width</link> or <link
linkend="GnomeCanvasPixbuf--height">height</link> arguments to
the desired values. The former two arguments control whether
the latter two are used when computing the final image's size;
they are both %FALSE by default so that the pixbuf item will
attain a size in units equal to the size in pixels of the
#GdkPixbuf that the item contains.
</para>
<para>
The custom translation offsets are controlled by the <link
linkend="GnomeCanvasPixbuf--x">x</link> and <link
linkend="GnomeCanvasPixbuf--y">y</link> arguments. The logical
upper-left vertex of the image will be translated by the
specified distance, aligned with the item's local coordinate
system.
</para>
</refsect2>
<refsect2>
<title>Absolute Pixel Scaling and Translation</title>
<para>
The <ulink url="http://www.w3.org/Graphics/SVG/">Scalable Vector
Graphics</ulink> specification (SVG) of the <ulink
url="http://www.w3.org">World Wide Web Consortium</ulink> also
allows images to be translated and scaled by absolute pixel
values that are independent of an item's normal affine
transformation.
</para>
<para>
Normally, the pixbuf item's translation and scaling arguments
are interpreted in units, so they will be modified by the item's
affine transformation. The <link
linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>,
<link
linkend="GnomeCanvasPixbuf--height-in-pixels">height_in_pixels</link>,
<link
linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link>, and
<link
linkend="GnomeCanvasPixbuf--y-in-pixels">y_in_pixels</link>
object arguments can be used to modify this behavior. If one of
these arguments is %TRUE, then the corresponding scaling or
translation value will not be affected lengthwise by the pixbuf
item's affine transformation.
</para>
<para>
For example, consider a pixbuf item whose size is (300, 200).
If the item is modified with a scaling transformation of (0.5,
2.0) but the <link
linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
is set to %TRUE, then the item will appear to be (300, 400)
pixels in size. This means that in this case the item's affine
transformation only applies to the height value, while the width
value is kept in absolute pixels.
</para>
<para>
Likewise, consider a pixbuf item whose (<link
linkend="GnomeCanvasPixbuf--x">x</link>, <link
linkend="GnomeCanvasPixbuf--y">y</link>) arguments are set to
(30, 40). If the item is then modified by the same scaling
transformation of (0.5, 2.0) but the <link
linkend="GnomeCanvasPixbuf--y-in-pixels">y_in_pixels</link>
argument is set to %TRUE, then the image's upper-left corner
will appear to be at position (15, 40). In this case, the
affine transformation is applied only to the x offset, while the
y offset is kept in absolute pixels.
</para>
<para>
In short, these arguments control whether a particular dimension
of a pixbuf item is scaled or not in the normal way by the
item's affine transformation.
</para>
</refsect2>
<refsect2>
<title>Resource Management</title>
<para>
When you set the #GdkPixbuf structure that a #GnomeCanvasPixbuf
item will use by setting the <link
linkend="GnomeCanvasPixbuf--pixbuf">pixbuf</link> argument, a
reference count will be added to that #GdkPixbuf structure.
When the pixbuf item no longer needs the #GdkPixbuf structure,
such as when the item is destroyed or when a new pixbuf
structure is passed to it, then the old #GdkPixbuf structure
will be automatically unreferenced.
</para>
<para>
This means that if an application just needs to load a pixbuf
image and set it into a pixbuf canvas item, it can do the
following to &lsquo;forget&rsquo; about the pixbuf structure:
<programlisting>
GdkPixbuf *pixbuf;
GnomeCanvasItem *item;
pixbuf = gdk_pixbuf_new_from_file ("foo.png");
g_assert (pixbuf != NULL);
item = gnome_canvas_item_new (gnome_canvas_root (my_canvas),
gnome_canvas_pixbuf_get_type (),
"pixbuf", pixbuf,
NULL);
gdk_pixbuf_unref (pixbuf);
</programlisting>
</para>
<para>
After this happens, the reference count of the pixbuf structure
will be 1: the gdk_pixbuf_new_from_file() function creates it
with a reference count of 1, then setting the <link
linkend="GnomeCanvasPixbuf--pixbuf">pixbuf</link> argument of
the #GnomeCanvasPixbuf item increases it to 2, and then it is
decremented to 1 by the call to gdk_pixbuf_unref(). When the
canvas item is destroyed, it will automatically unreference the
pixbuf structure again, causing its reference count to drop to
zero and thus be freed.
</para>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
#GnomeCanvas, #GdkPixbuf
</para>
<!-- ##### MACRO GNOME_CANVAS_PIXBUF ##### -->
<para>
Casts a #GtkOjbect to a #GnomeCanvasPixbuf.
</para>
@obj: A GTK+ object.
<!-- ##### ARG GnomeCanvasPixbuf:pixbuf ##### -->
<para>
Contains a pointer to a #GdkPixbuf structure that will be used by
the pixbuf canvas item as an image source. When a pixbuf is set
its reference count is incremented; if the pixbuf item kept a
pointer to another #GdkPixbuf structure, the reference count of
this structure will be decremented. Also, the GdkPixbuf's
reference count will automatically be decremented when the
#GnomeCanvasPixbuf item is destroyed. When a pixbuf is queried, a
reference count will not be added to the return value; you must do
this yourself if you intend to keep the pixbuf structure around.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:width ##### -->
<para>
Indicates the width the pixbuf will be scaled to. This argument
will only be used if the <link
linkend="GnomeCanvasPixbuf--width-set">width_set</link> argument
is %TRUE. If the <link
linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
argument is %FALSE, the width will be taken to be in canvas units,
and thus will be scaled along with the canvas item's affine
transformation. If width_in_pixels is %TRUE, the width will be
taken to be in pixels, and will visually remain a constant size
even if the item's affine transformation changes.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:width_set ##### -->
<para>
Determines whether the <link
linkend="GnomeCanvasPixbuf--width">width</link> argument is taken
into account when scaling the pixbuf item. If this argument is
%FALSE, then the width value of the pixbuf will be used instead.
This argument is %FALSE by default.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:width_in_pixels ##### -->
<para>
If this argument is %TRUE, then the width of the pixbuf will be
considered to be in pixels, that is, it will not be visually
scaled even if the item's affine transformation changes. If this
is %FALSE, then the width of the pixbuf will be considered to be
in canvas units, and so will be scaled normally by affine
transformations. The default is %FALSE.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:height ##### -->
<para>
Indicates the height the pixbuf will be scaled to. This argument
will only be used if the <link
linkend="GnomeCanvasPixbuf--height-set">height_set</link> argument
is %TRUE. Works in the same way as the <link
linkend="GnomeCanvasPixbuf--width">width</link> argument.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:height_set ##### -->
<para>
Determines whether the <link
linkend="GnomeCanvasPixbuf--height">height</link> argument is
taken into account when scaling the pixbuf item. Works in the
same way as the <link
linkend="GnomeCanvasPixbuf--width-set">width_set</link> argument.
The default is %FALSE.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:height_in_pixels ##### -->
<para>
Works in the same way as the <link
linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
argument. The default is %FALSE.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:x ##### -->
<para>
Indicates the horizontal translation offset of the pixbuf item's
image. This offset may not actually appear horizontal, since it
will be affected by the item's affine transformation. The default
is 0.0.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:x_in_pixels ##### -->
<para>
If this argument is %TRUE, the pixbuf's translation with respect
to its logical origin in item-relative coordinates will be in
pixels, that is, the visible offset will not change even if the
item's affine transformation changes. If it is %FALSE, the
pixbuf's translation will be taken to be in canvas units, and thus
will change along with the item's affine transformation. The
default is %FALSE.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:y ##### -->
<para>
Indicates the vertical translation offset of the pixbuf item's
image. Works in the same way as the <link
linkend="GnomeCanvasPixbuf--x">x</link> argument. The default is
0.0.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:y_in_pixels ##### -->
<para>
Works in the same way as the <link
linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link>
argument, but controls whether the <link
linkend="GnomeCanvasPixbuf--y">y</link> translation offset is
scaled or not. The default is %FALSE.
</para>
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,128 @@
<!-- ##### SECTION Title ##### -->
Reference Counting and Memory Mangement
<!-- ##### SECTION Short_Description ##### -->
Functions to perform reference counting and memory management on a
#GdkPixbuf.
<!-- ##### SECTION Long_Description ##### -->
<para>
#GdkPixbuf structures are reference counted. This means that
an application can share a single pixbuf among many parts of the
code. When a piece of the program needs to keep a pointer to a
pixbuf, it should add a reference to it. When it no longer needs
the pixbuf, it should subtract a reference. The pixbuf will be
destroyed when its reference count drops to zero. Newly-created
#GdkPixbuf structures start with a reference count of one.
</para>
<para>
<emphasis>Finalizing</emphasis> a pixbuf means to free its pixel
data and to free the #GdkPixbuf structure itself. Most of the
library functions that create #GdkPixbuf structures create the
pixel data by themselves and define the way it should be freed;
you do not need to worry about those. The only function that lets
you specify how to free the pixel data is
gdk_pixbuf_new_from_data(). Since you pass it a pre-allocated
pixel buffer, you must also specify a way to free that data. This
is done with a function of type #GdkPixbufDestroyNotify. When a
pixbuf created with gdk_pixbuf_new_from_data() is finalized, your
destroy notification function will be called, and it is its
responsibility to free the pixel array.
</para>
<para>
As an extension to traditional reference counting, #GdkPixbuf
structures support defining a handler for the last unref
operation. If gdk_pixbuf_unref() is called on a #GdkPixbuf
structure that has a reference count of 1, i.e. its last
reference, then the pixbuf's last unref handler function will be
called. It is up to this function to determine whether to
finalize the pixbuf using gdk_pixbuf_finalize() or to just
continue execution. This can be used to implement a pixbuf cache
efficiently; please see the programmer's documentation for
details.
</para>
<!-- FIXME: link the last sentence above to the relevant section of
the programmer's docs.
-->
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkPixbuf, gdk_pixbuf_new_from_data().
</para>
<!-- ##### USER_FUNCTION GdkPixbufDestroyNotify ##### -->
<para>
A function of this type is responsible for freeing the pixel array
of a pixbuf. The gdk_pixbuf_new_from_data() function lets you
pass in a pre-allocated pixel array so that a pixbuf can be
created from it; in this case you will need to pass in a function
of #GdkPixbufDestroyNotify so that the pixel data can be freed
when the pixbuf is finalized.
</para>
@pixels: The pixel array of the pixbuf that is being finalized.
@data: User closure data.
<!-- ##### USER_FUNCTION GdkPixbufLastUnref ##### -->
<para>
A function of this type can be used to override the default
operation when a pixbuf loses its last reference, i.e. when
gdk_pixbuf_unref() is called on a #GdkPixbuf structure that has a
reference count of 1. This function should determine whether to
finalize the pixbuf by calling gdk_pixbuf_finalize(), or whether
to just resume normal execution. The last unref handler for a
#GdkPixbuf can be set using the
gdk_pixbuf_set_last_unref_handler() function. By default, pixbufs
will be finalized automatically if no last unref handler has been
defined.
</para>
@pixbuf: The pixbuf that is losing its last reference.
@data: User closure data.
<!-- ##### FUNCTION gdk_pixbuf_ref ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_unref ##### -->
<para>
</para>
@pixbuf:
<!-- ##### FUNCTION gdk_pixbuf_set_last_unref_handler ##### -->
<para>
</para>
@pixbuf:
@last_unref_fn:
@last_unref_fn_data:
<!-- ##### FUNCTION gdk_pixbuf_finalize ##### -->
<para>
</para>
@pixbuf:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,126 @@
<!-- ##### SECTION Title ##### -->
Rendering
<!-- ##### SECTION Short_Description ##### -->
Rendering a pixbuf to a GDK drawable.
<!-- ##### SECTION Long_Description ##### -->
<para>
The <application>gdk-pixbuf</application> library provides several
convenience functions to render pixbufs to GDK drawables. It uses
the GdkRGB to render the image data.
</para>
<para>
At this point there is not a standard alpha channel extension for
the X Window System, so it is not possible to use full opacity
information when painting images to arbitrary drawables. The
<application>gdk-pixbuf</application> convenience functions will
threshold the opacity information to create a bi-level clipping
mask (black and white), and use that to draw the image onto a
drawable.
</para>
<important>
<para>
Since these functions use GdkRGB for rendering, you must
initialize GdkRGB before using any of them. You can do this by
calling gdk_rgb_init() near the beginning of your program.
</para>
</important>
<!-- ##### SECTION See_Also ##### -->
<para>
GdkRGB
</para>
<!-- ##### ENUM GdkPixbufAlphaMode ##### -->
<para>
These values can be passed to
gdk_pixbuf_render_to_drawable_alpha() to control how the alpha
chanel of an image should be handled. This function can create a
bilevel clipping mask (black and white) and use it while painting
the image. In the future, when the X Window System gets an alpha
channel extension, it will be possible to do full alpha
compositing onto arbitrary drawables. For now both cases fall
back to a bilevel clipping mask.
</para>
@GDK_PIXBUF_ALPHA_BILEVEL: A bilevel clipping mask (black and white)
will be created and used to draw the image. Pixels below 0.5 opacity
will be considered fully transparent, and all others will be
considered fully opaque.
@GDK_PIXBUF_ALPHA_FULL: For now falls back to #GDK_PIXBUF_ALPHA_BILEVEL.
In the future it will do full alpha compositing.
<!-- ##### FUNCTION gdk_pixbuf_render_to_drawable_alpha ##### -->
<para>
</para>
@pixbuf:
@drawable:
@src_x:
@src_y:
@dest_x:
@dest_y:
@width:
@height:
@alpha_mode:
@alpha_threshold:
@dither:
@x_dither:
@y_dither:
<!-- ##### FUNCTION gdk_pixbuf_render_to_drawable ##### -->
<para>
</para>
@pixbuf:
@drawable:
@gc:
@src_x:
@src_y:
@dest_x:
@dest_y:
@width:
@height:
@dither:
@x_dither:
@y_dither:
<!-- ##### FUNCTION gdk_pixbuf_render_threshold_alpha ##### -->
<para>
</para>
@pixbuf:
@bitmap:
@src_x:
@src_y:
@dest_x:
@dest_y:
@width:
@height:
@alpha_threshold:
<!-- ##### FUNCTION gdk_pixbuf_render_pixmap_and_mask ##### -->
<para>
</para>
@pixbuf:
@pixmap_return:
@mask_return:
@alpha_threshold:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,199 @@
<!-- ##### SECTION Title ##### -->
Scaling
<!-- ##### SECTION Short_Description ##### -->
Scaling pixbufs and scaling and compositing pixbufs
<!-- ##### SECTION Long_Description ##### -->
<para>
The <application>gdk-pixbuf</application> contains functions to
scale pixbufs, to scale pixbufs and composite against an existing
image, and to scale pixbufs and composite against a solid color or
checkerboard. Compositing a checkerboard is a common way to show
an image with an alpha channel in image-viewing and editing
software.
</para>
<para>
Since the full-featured functions (gdk_pixbuf_scale(),
gdk_pixbuf_composite(), and gdk_pixbuf_composite_color()) are
rather complex to use and have many arguments, two simple
convenience functions are provided, gdk_pixbuf_scale_simple() and
gdk_pixbuf_composite_color_simple() which create a new pixbuf of a
given size, scale an original image to fit, and then return the
new pixmap.
</para>
<para>
The following example demonstrates handling an expose event by
rendering the appropriate area of a source image (which is scaled
to fit the widget) onto the widget's window. The source image is
rendered against a checkerboard, which provides a visual
representation of the alpha channel if the image has one. If the
image doesn't have an alpha channel, calling
gdk_pixbuf_composite_color() function has exactly the same effect
as calling gdk_pixbuf_scale().
</para>
<programlisting>
gboolean
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
GdkPixbuf *dest;
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
gdk_pixbuf_composite_color (pixbuf, dest,
0, 0, event->area.width, event->area.height,
-event->area.x, -event->area.y,
(double) widget->allocation.width / gdk_pixbuf_get_width (pixbuf),
(double) widget->allocation.height / gdk_pixbuf_get_height (pixbuf),
GDK_INTERP_BILINEAR, 255,
event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
gdk_pixbuf_render_to_drawable (dest, widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
0, 0, event->area.x, event->area.y,
event->area.width, event->area.height,
GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
gdk_pixbuf_unref (dest);
return TRUE;
}
</programlisting>
<!-- ##### SECTION See_Also ##### -->
<para>
GdkRGB
</para>
<!-- ##### ENUM GdkInterpType ##### -->
<para>
This enumeration describes the different interpolation modes that
can be used with the scaling functions.
<note>
<para>
Cubic filtering is missing from the list; hyperbolic
interpolation is just as fast and results in higher quality.
</para>
</note>
</para>
@GDK_INTERP_NEAREST: Nearest neighbor sampling; this is the fastest
and lowest quality mode.
@GDK_INTERP_TILES: This is an accurate simulation of the PostScript
image operator without any interpolation enabled. Each pixel is
rendered as a tiny parallelogram of solid color, the edges of which
are implemented with antialiasing. It resembles nearest neighbor for
enlargement, and bilinear for reduction.
@GDK_INTERP_BILINEAR: Bilinear interpolation. For enlargement, it is
equivalent to point-sampling the ideal bilinear-interpolated image.
For reduction, it is equivalent to laying down small tiles and
integrating over the coverage area.
@GDK_INTERP_HYPER: This is the slowest and highest quality
reconstruction function. It is derived from the hyperbolic filters in
Wolberg's "Digital Image Warping", and is formally defined as the
hyperbolic-filter sampling the ideal hyperbolic-filter interpolated
image (the filter is designed to be idempotent for 1:1 pixel mapping).
<!-- ##### FUNCTION gdk_pixbuf_scale ##### -->
<para>
</para>
@src:
@dest:
@dest_x:
@dest_y:
@dest_width:
@dest_height:
@offset_x:
@offset_y:
@scale_x:
@scale_y:
@interp_type:
<!-- ##### FUNCTION gdk_pixbuf_composite ##### -->
<para>
</para>
@src:
@dest:
@dest_x:
@dest_y:
@dest_width:
@dest_height:
@offset_x:
@offset_y:
@scale_x:
@scale_y:
@interp_type:
@overall_alpha:
<!-- ##### FUNCTION gdk_pixbuf_composite_color ##### -->
<para>
</para>
@src:
@dest:
@dest_x:
@dest_y:
@dest_width:
@dest_height:
@offset_x:
@offset_y:
@scale_x:
@scale_y:
@interp_type:
@overall_alpha:
@check_x:
@check_y:
@check_size:
@color1:
@color2:
<!-- ##### FUNCTION gdk_pixbuf_scale_simple ##### -->
<para>
</para>
@src:
@dest_width:
@dest_height:
@interp_type:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_composite_color_simple ##### -->
<para>
</para>
@src:
@dest_width:
@dest_height:
@interp_type:
@overall_alpha:
@check_size:
@color1:
@color2:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,52 @@
<!-- ##### SECTION Title ##### -->
Utilities
<!-- ##### SECTION Short_Description ##### -->
Utility and miscellaneous convenience functions.
<!-- ##### SECTION Long_Description ##### -->
<para>
These functions provide miscellaneous utilities for manipulating
pixbufs. The pixel data in pixbufs may of course be manipulated
directly by applications, but several common operations can be
performed by these functions instead.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkPixbuf
</para>
<!-- ##### FUNCTION gdk_pixbuf_add_alpha ##### -->
<para>
</para>
@pixbuf:
@substitute_color:
@r:
@g:
@b:
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_copy_area ##### -->
<para>
</para>
@src_pixbuf:
@src_x:
@src_y:
@width:
@height:
@dest_pixbuf:
@dest_x:
@dest_y:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->

View File

@@ -0,0 +1,6 @@
Makefile
Makefile.in
sgml
html
gdk-decl-list.txt
gdk-unused.txt

View File

@@ -0,0 +1,50 @@
## Process this file with automake to produce Makefile.in
# The name of the module.
DOC_MODULE=gdk
# The top-level SGML file.
DOC_MAIN_SGML_FILE=gdk-docs.sgml
# We could alternatively use this for using installed headers.
INCLUDE_DIR=`gtk-config --prefix`/include/gdk
TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
scan:
gtkdoc-scan --module=$(DOC_MODULE) $(INCLUDE_DIR)/gdk.h $(INCLUDE_DIR)/gdktypes.h $(INCLUDE_DIR)/gdkrgb.h
templates: scan
gtkdoc-mktmpl --module=$(DOC_MODULE)
sgml:
gtkdoc-mkdb --module=$(DOC_MODULE)
html:
if ! test -d html ; then mkdir html ; fi
-cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
clean-local:
rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt
maintainer-clean-local: clean
rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
install-data-local:
install -d -m 0755 $(TARGET_DIR)
install -m 0644 html/*.html $(TARGET_DIR)
install -m 0644 html/index.sgml $(TARGET_DIR)
gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)
EXTRA_DIST = \
$(DOC_MAIN_SGML_FILE) \
$(DOC_MODULE)-sections.txt \
gdk-overrides.txt \
gdk-decl.txt
dist-hook:
mkdir $(distdir)/tmpl
cp -p tmpl/*.sgml $(distdir)/tmpl
.PHONY : html sgml templates scan

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!entity gdk-General SYSTEM "sgml/general.sgml">
<!entity gdk-Bitmaps-and-Pixmaps SYSTEM "sgml/pixmaps.sgml">
<!entity gdk-Images SYSTEM "sgml/images.sgml">
<!entity gdk-GdkRGB SYSTEM "sgml/rgb.sgml">
<!entity gdk-Colormaps-and-Colors SYSTEM "sgml/colors.sgml">
<!entity gdk-Fonts SYSTEM "sgml/fonts.sgml">
<!entity gdk-Drawing-Primitives SYSTEM "sgml/drawing.sgml">
<!entity gdk-Graphics-Contexts SYSTEM "sgml/gcs.sgml">
<!entity gdk-Visuals SYSTEM "sgml/visuals.sgml">
<!entity gdk-Windows SYSTEM "sgml/windows.sgml">
<!entity gdk-Selections SYSTEM "sgml/selections.sgml">
<!entity gdk-Properties-and-Atoms SYSTEM "sgml/properties.sgml">
<!entity gdk-Input-Methods SYSTEM "sgml/input_methods.sgml">
<!entity gdk-Input-Contexts SYSTEM "sgml/input_contexts.sgml">
<!entity gdk-Color-Contexts SYSTEM "sgml/color_contexts.sgml">
<!entity gdk-Points-Rectangles-and-Regions SYSTEM "sgml/regions.sgml">
<!entity gdk-Threads SYSTEM "sgml/threads.sgml">
<!entity gdk-Key-Values SYSTEM "sgml/keys.sgml">
<!entity gdk-Input-Devices SYSTEM "sgml/input_devices.sgml">
<!entity gdk-Events SYSTEM "sgml/events.sgml">
<!entity gdk-Event-Structures SYSTEM "sgml/event_structs.sgml">
<!entity gdk-Cursors SYSTEM "sgml/cursors.sgml">
<!entity gdk-Input SYSTEM "sgml/input.sgml">
<!entity gdk-Drag-and-Drop SYSTEM "sgml/dnd.sgml">
]>
<book id="index">
<bookinfo>
<title>GDK Reference Manual</title>
</bookinfo>
<chapter id="gdk">
<title>GDK</title>
&gdk-General;
&gdk-Points-Rectangles-and-Regions;
&gdk-Graphics-Contexts;
&gdk-Drawing-Primitives;
&gdk-Bitmaps-and-Pixmaps;
&gdk-GdkRGB;
&gdk-Images;
&gdk-Colormaps-and-Colors;
&gdk-Color-Contexts;
&gdk-Visuals;
&gdk-Fonts;
&gdk-Cursors;
&gdk-Windows;
&gdk-Events;
&gdk-Event-Structures;
&gdk-Selections;
&gdk-Drag-and-Drop;
&gdk-Properties-and-Atoms;
&gdk-Threads;
&gdk-Input;
&gdk-Input-Devices;
&gdk-Key-Values;
&gdk-Input-Methods;
&gdk-Input-Contexts;
</chapter>
</book>

View File

@@ -0,0 +1,23 @@
# GdkPixmap, GdkBitmap and GdkDrawable are the same as GdkWindow.
<STRUCT>
<NAME>GdkPixmap</NAME>
struct GdkPixmap
{
gpointer user_data;
};
</STRUCT>
<STRUCT>
<NAME>GdkBitmap</NAME>
struct GdkBitmap
{
gpointer user_data;
};
</STRUCT>
<STRUCT>
<NAME>GdkDrawable</NAME>
struct GdkDrawable
{
gpointer user_data;
};
</STRUCT>

View File

@@ -0,0 +1,622 @@
<INCLUDE>gdk/gdk.h</INCLUDE>
<SECTION>
<TITLE>General</TITLE>
<FILE>general</FILE>
gdk_init
gdk_init_check
gdk_exit
gdk_set_locale
gdk_set_sm_client_id
<SUBSECTION>
gdk_get_display
<SUBSECTION>
gdk_flush
<SUBSECTION>
gdk_screen_width
gdk_screen_height
gdk_screen_width_mm
gdk_screen_height_mm
<SUBSECTION>
gdk_pointer_grab
gdk_pointer_ungrab
gdk_pointer_is_grabbed
<SUBSECTION>
gdk_keyboard_grab
gdk_keyboard_ungrab
<SUBSECTION>
gdk_key_repeat_disable
gdk_key_repeat_restore
<SUBSECTION>
gdk_beep
<SUBSECTION>
gdk_get_use_xshm
gdk_set_use_xshm
<SUBSECTION>
gdk_error_trap_push
gdk_error_trap_pop
<SUBSECTION Private>
GdkStatus
gdk_time_get
gdk_timer_get
gdk_timer_set
gdk_timer_enable
gdk_timer_disable
</SECTION>
<SECTION>
<TITLE>Bitmaps and Pixmaps</TITLE>
<FILE>pixmaps</FILE>
GdkPixmap
gdk_pixmap_new
gdk_bitmap_create_from_data
gdk_pixmap_create_from_data
gdk_pixmap_create_from_xpm
gdk_pixmap_colormap_create_from_xpm
gdk_pixmap_create_from_xpm_d
gdk_pixmap_colormap_create_from_xpm_d
gdk_pixmap_ref
gdk_pixmap_unref
GdkBitmap
gdk_bitmap_ref
gdk_bitmap_unref
</SECTION>
<SECTION>
<TITLE>Images</TITLE>
<FILE>images</FILE>
GdkImage
gdk_image_new
GdkImageType
gdk_image_new_bitmap
gdk_image_get
gdk_image_destroy
<SUBSECTION>
gdk_image_put_pixel
gdk_image_get_pixel
</SECTION>
<SECTION>
<TITLE>GdkRGB</TITLE>
<FILE>rgb</FILE>
gdk_rgb_init
<SUBSECTION>
gdk_draw_rgb_image
gdk_draw_rgb_image_dithalign
gdk_draw_indexed_image
gdk_draw_gray_image
gdk_draw_rgb_32_image
GdkRgbDither
<SUBSECTION>
gdk_rgb_cmap_new
gdk_rgb_cmap_free
GdkRgbCmap
<SUBSECTION>
gdk_rgb_gc_set_foreground
gdk_rgb_gc_set_background
gdk_rgb_xpixel_from_rgb
<SUBSECTION>
gdk_rgb_set_install
gdk_rgb_set_min_colors
gdk_rgb_get_visual
gdk_rgb_get_cmap
gdk_rgb_ditherable
gdk_rgb_set_verbose
</SECTION>
<SECTION>
<TITLE>Colormaps and Colors</TITLE>
<FILE>colors</FILE>
GdkColor
GdkColormap
gdk_colormap_new
gdk_colormap_ref
gdk_colormap_unref
gdk_colormap_get_system
gdk_colormap_get_system_size
gdk_colormap_change
gdk_colormap_alloc_colors
gdk_colormap_alloc_color
gdk_colormap_free_colors
gdk_colormap_get_visual
gdk_colors_store
gdk_color_copy
gdk_color_free
gdk_colors_alloc
gdk_colors_free
gdk_color_white
gdk_color_black
gdk_color_parse
gdk_color_alloc
gdk_color_change
gdk_color_equal
gdk_color_hash
</SECTION>
<SECTION>
<TITLE>Fonts</TITLE>
<FILE>fonts</FILE>
GdkFont
GdkFontType
gdk_font_load
gdk_fontset_load
gdk_font_ref
gdk_font_unref
gdk_font_id
gdk_font_equal
<SUBSECTION>
gdk_string_extents
gdk_text_extents
gdk_text_extents_wc
gdk_string_width
gdk_text_width
gdk_text_width_wc
gdk_char_width
gdk_char_width_wc
gdk_string_measure
gdk_text_measure
gdk_char_measure
gdk_string_height
gdk_text_height
gdk_char_height
<SUBSECTION>
GdkWChar
gdk_wcstombs
gdk_mbstowcs
</SECTION>
<SECTION>
<TITLE>Drawing Primitives</TITLE>
<FILE>drawing</FILE>
gdk_draw_point
gdk_draw_points
gdk_draw_line
gdk_draw_lines
gdk_draw_segments
GdkSegment
gdk_draw_rectangle
gdk_draw_arc
gdk_draw_polygon
<SUBSECTION>
gdk_draw_string
gdk_draw_text
gdk_draw_text_wc
<SUBSECTION>
gdk_draw_pixmap
gdk_draw_image
<SUBSECTION Private>
gdk_draw_bitmap
</SECTION>
<SECTION>
<TITLE>Graphics Contexts</TITLE>
<FILE>gcs</FILE>
GdkGC
GdkGCValues
GdkGCValuesMask
GdkFunction
gdk_gc_new
gdk_gc_new_with_values
gdk_gc_ref
gdk_gc_unref
gdk_gc_destroy
gdk_gc_get_values
gdk_gc_set_foreground
gdk_gc_set_background
gdk_gc_set_font
gdk_gc_set_function
gdk_gc_set_fill
GdkFill
gdk_gc_set_tile
gdk_gc_set_stipple
gdk_gc_set_ts_origin
gdk_gc_set_clip_origin
gdk_gc_set_clip_mask
gdk_gc_set_clip_rectangle
gdk_gc_set_clip_region
gdk_gc_set_subwindow
GdkSubwindowMode
gdk_gc_set_exposures
gdk_gc_set_line_attributes
GdkLineStyle
GdkCapStyle
GdkJoinStyle
gdk_gc_set_dashes
gdk_gc_copy
</SECTION>
<SECTION>
<TITLE>Visuals</TITLE>
<FILE>visuals</FILE>
GdkVisual
GdkVisualType
GdkByteOrder
gdk_query_depths
gdk_query_visual_types
gdk_list_visuals
gdk_visual_get_best_depth
gdk_visual_get_best_type
gdk_visual_get_system
gdk_visual_get_best
gdk_visual_get_best_with_depth
gdk_visual_get_best_with_type
gdk_visual_get_best_with_both
gdk_visual_ref
gdk_visual_unref
</SECTION>
<SECTION>
<TITLE>Windows</TITLE>
<FILE>windows</FILE>
GdkWindowAttr
GdkWindow
GdkWindowType
GdkWindowClass
GdkWindowAttributesType
GdkWindowHints
GdkGeometry
gdk_window_new
gdk_window_destroy
gdk_window_ref
gdk_window_unref
gdk_window_at_pointer
gdk_window_show
gdk_window_hide
gdk_window_is_visible
gdk_window_is_viewable
gdk_window_withdraw
gdk_window_move
gdk_window_resize
gdk_window_move_resize
gdk_window_reparent
gdk_window_clear
gdk_window_clear_area
gdk_window_clear_area_e
gdk_window_copy_area
gdk_window_raise
gdk_window_lower
gdk_window_register_dnd
gdk_window_set_user_data
gdk_window_set_override_redirect
gdk_window_add_filter
gdk_window_remove_filter
GdkFilterFunc
GdkFilterReturn
GdkXEvent
gdk_window_shape_combine_mask
gdk_window_set_child_shapes
gdk_window_merge_child_shapes
gdk_window_set_static_gravities
gdk_window_set_hints
gdk_window_set_title
gdk_window_set_background
gdk_window_set_back_pixmap
GDK_PARENT_RELATIVE
gdk_window_set_cursor
gdk_window_set_colormap
gdk_window_get_user_data
gdk_window_get_geometry
gdk_window_set_geometry_hints
gdk_window_get_position
gdk_window_get_root_origin
gdk_window_get_size
gdk_window_get_visual
gdk_window_get_colormap
gdk_window_get_type
gdk_window_get_origin
gdk_window_get_deskrelative_origin
gdk_window_get_pointer
GdkModifierType
gdk_window_get_parent
gdk_window_get_toplevel
gdk_window_get_children
gdk_window_get_events
gdk_window_set_events
gdk_window_set_icon
gdk_window_set_icon_name
gdk_window_set_transient_for
gdk_window_set_role
gdk_window_set_group
gdk_window_set_decorations
GdkWMDecoration
gdk_window_set_functions
GdkWMFunction
gdk_window_get_toplevels
GdkDrawable
gdk_drawable_set_data
</SECTION>
<SECTION>
<TITLE>Selections</TITLE>
<FILE>selections</FILE>
GdkSelection
GdkSelectionType
GdkTarget
gdk_selection_owner_set
gdk_selection_owner_get
gdk_selection_convert
gdk_selection_property_get
gdk_selection_send_notify
</SECTION>
<SECTION>
<TITLE>Properties and Atoms</TITLE>
<FILE>properties</FILE>
GdkAtom
GDK_NONE
gdk_text_property_to_text_list
gdk_free_text_list
gdk_string_to_compound_text
gdk_free_compound_text
gdk_atom_intern
gdk_atom_name
gdk_property_get
gdk_property_change
GdkPropMode
gdk_property_delete
</SECTION>
<SECTION>
<TITLE>Input Methods</TITLE>
<FILE>input_methods</FILE>
GdkIMStyle
gdk_im_ready
gdk_im_decide_style
gdk_im_set_best_style
<SUBSECTION>
gdk_im_begin
gdk_im_end
</SECTION>
<SECTION>
<TITLE>Input Contexts</TITLE>
<FILE>input_contexts</FILE>
GdkIC
gdk_ic_new
gdk_ic_destroy
gdk_ic_get_events
gdk_ic_get_style
gdk_ic_get_attr
gdk_ic_set_attr
<SUBSECTION>
GdkICAttr
GdkICAttributesType
gdk_ic_attr_new
gdk_ic_attr_destroy
</SECTION>
<SECTION>
<TITLE>Color Contexts</TITLE>
<FILE>color_contexts</FILE>
GdkColorContext
GdkColorContextDither
GdkColorContextMode
gdk_color_context_new
gdk_color_context_new_mono
gdk_color_context_free
gdk_color_context_get_pixel
gdk_color_context_get_pixels
gdk_color_context_get_pixels_incremental
gdk_color_context_query_color
gdk_color_context_query_colors
gdk_color_context_add_palette
gdk_color_context_init_dither
gdk_color_context_free_dither
gdk_color_context_get_pixel_from_palette
gdk_color_context_get_index_from_palette
</SECTION>
<SECTION>
<TITLE>Points, Rectangles and Regions</TITLE>
<FILE>regions</FILE>
GdkPoint
<SUBSECTION>
GdkRectangle
gdk_rectangle_intersect
gdk_rectangle_union
<SUBSECTION>
GdkRegion
gdk_region_new
gdk_region_polygon
GdkFillRule
gdk_region_destroy
<SUBSECTION>
gdk_regions_intersect
gdk_regions_union
gdk_regions_subtract
gdk_regions_xor
gdk_region_union_with_rect
gdk_region_offset
gdk_region_shrink
<SUBSECTION>
gdk_region_empty
gdk_region_equal
gdk_region_point_in
gdk_region_rect_in
GdkOverlapType
gdk_region_get_clipbox
</SECTION>
<SECTION>
<TITLE>Threads</TITLE>
<FILE>threads</FILE>
gdk_threads_mutex
GDK_THREADS_ENTER
GDK_THREADS_LEAVE
gdk_threads_enter
gdk_threads_leave
</SECTION>
<SECTION>
<TITLE>Key Values</TITLE>
<FILE>keys</FILE>
gdk_keyval_name
gdk_keyval_from_name
<SUBSECTION>
gdk_keyval_is_upper
gdk_keyval_is_lower
<SUBSECTION>
gdk_keyval_to_upper
gdk_keyval_to_lower
</SECTION>
<SECTION>
<TITLE>Input Devices</TITLE>
<FILE>input_devices</FILE>
GDK_CORE_POINTER
gdk_input_list_devices
GdkDeviceInfo
GdkDeviceKey
gdk_input_set_extension_events
GdkExtensionMode
gdk_input_set_source
GdkInputSource
gdk_input_set_mode
GdkInputMode
gdk_input_set_axes
GdkAxisUse
gdk_input_set_key
gdk_input_window_get_pointer
gdk_input_motion_events
GdkTimeCoord
<SUBSECTION Private>
gdk_input_init
gdk_input_exit
</SECTION>
<SECTION>
<TITLE>Events</TITLE>
<FILE>events</FILE>
GdkEventType
GdkEventMask
GDK_CURRENT_TIME
GDK_PRIORITY_EVENTS
<SUBSECTION>
gdk_events_pending
gdk_event_peek
gdk_event_get
gdk_event_get_graphics_expose
gdk_event_put
gdk_event_copy
gdk_event_free
gdk_event_get_time
<SUBSECTION>
gdk_event_handler_set
GdkEventFunc
<SUBSECTION>
gdk_event_send_client_message
gdk_event_send_clientmessage_toall
gdk_add_client_message_filter
<SUBSECTION>
gdk_get_show_events
gdk_set_show_events
</SECTION>
<SECTION>
<TITLE>Event Structures</TITLE>
<FILE>event_structs</FILE>
GdkEvent
<SUBSECTION>
GdkEventAny
GdkEventKey
GdkEventButton
GdkEventMotion
GdkEventExpose
GdkEventVisibility
GdkEventCrossing
GdkEventFocus
GdkEventConfigure
GdkEventProperty
GdkEventSelection
GdkEventDND
GdkEventProximity
GdkEventClient
GdkEventNoExpose
<SUBSECTION>
GdkVisibilityState
GdkCrossingMode
GdkNotifyType
GdkPropertyState
</SECTION>
<SECTION>
<TITLE>Cursors</TITLE>
<FILE>cursors</FILE>
GdkCursor
GdkCursorType
gdk_cursor_new
gdk_cursor_new_from_pixmap
gdk_cursor_destroy
</SECTION>
<SECTION>
<TITLE>Input</TITLE>
<FILE>input</FILE>
gdk_input_add_full
GdkInputCondition
GdkInputFunction
GdkDestroyNotify
gdk_input_add
gdk_input_remove
</SECTION>
<SECTION>
<TITLE>Drag and Drop</TITLE>
<FILE>dnd</FILE>
gdk_drag_get_selection
gdk_drag_abort
gdk_drop_reply
gdk_drag_context_new
gdk_drag_drop
gdk_drag_find_window
gdk_drag_context_ref
gdk_drag_begin
gdk_drag_motion
gdk_drop_finish
gdk_drag_get_protocol
GdkDragProtocol
gdk_drag_context_unref
GdkDragContext
GdkDragAction
gdk_drag_status
</SECTION>

View File

@@ -0,0 +1,207 @@
<!-- ##### SECTION Title ##### -->
Color Contexts
<!-- ##### SECTION Short_Description ##### -->
routines for allocating colors (deprecated).
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GdkColorContext type is used for allocating groups of colors.
</para>
<para>
It is now deprecated in favor of the gdk_colormap_*() functions described in
the <link linkend="gdk-Colormaps-and-Colors">Colormaps and Colors</link>
section.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GdkColorContext ##### -->
<para>
</para>
@visual:
@colormap:
@num_colors:
@max_colors:
@num_allocated:
@mode:
@need_to_free_colormap:
@std_cmap_atom:
@clut:
@cmap:
@color_hash:
@palette:
@num_palette:
@fast_dither:
<!-- ##### STRUCT GdkColorContextDither ##### -->
<para>
</para>
@fast_rgb:
@fast_err:
@fast_erg:
@fast_erb:
<!-- ##### ENUM GdkColorContextMode ##### -->
<para>
</para>
@GDK_CC_MODE_UNDEFINED:
@GDK_CC_MODE_BW:
@GDK_CC_MODE_STD_CMAP:
@GDK_CC_MODE_TRUE:
@GDK_CC_MODE_MY_GRAY:
@GDK_CC_MODE_PALETTE:
<!-- ##### FUNCTION gdk_color_context_new ##### -->
<para>
</para>
@visual:
@colormap:
@Returns:
<!-- ##### FUNCTION gdk_color_context_new_mono ##### -->
<para>
</para>
@visual:
@colormap:
@Returns:
<!-- ##### FUNCTION gdk_color_context_free ##### -->
<para>
</para>
@cc:
<!-- ##### FUNCTION gdk_color_context_get_pixel ##### -->
<para>
</para>
@cc:
@red:
@green:
@blue:
@failed:
@Returns:
<!-- ##### FUNCTION gdk_color_context_get_pixels ##### -->
<para>
</para>
@cc:
@reds:
@greens:
@blues:
@ncolors:
@colors:
@nallocated:
<!-- ##### FUNCTION gdk_color_context_get_pixels_incremental ##### -->
<para>
</para>
@cc:
@reds:
@greens:
@blues:
@ncolors:
@used:
@colors:
@nallocated:
<!-- ##### FUNCTION gdk_color_context_query_color ##### -->
<para>
</para>
@cc:
@color:
@Returns:
<!-- ##### FUNCTION gdk_color_context_query_colors ##### -->
<para>
</para>
@cc:
@colors:
@num_colors:
@Returns:
<!-- ##### FUNCTION gdk_color_context_add_palette ##### -->
<para>
</para>
@cc:
@palette:
@num_palette:
@Returns:
<!-- ##### FUNCTION gdk_color_context_init_dither ##### -->
<para>
</para>
@cc:
<!-- ##### FUNCTION gdk_color_context_free_dither ##### -->
<para>
</para>
@cc:
<!-- ##### FUNCTION gdk_color_context_get_pixel_from_palette ##### -->
<para>
</para>
@cc:
@red:
@green:
@blue:
@failed:
@Returns:
<!-- ##### FUNCTION gdk_color_context_get_index_from_palette ##### -->
<para>
</para>
@cc:
@red:
@green:
@blue:
@failed:
@Returns:

View File

@@ -0,0 +1,390 @@
<!-- ##### SECTION Title ##### -->
Colormaps and Colors
<!-- ##### SECTION Short_Description ##### -->
manipulation of colors and colormaps.
<!-- ##### SECTION Long_Description ##### -->
<para>
These functions are used to modify colormaps.
A colormap is an object that contains the mapping
between the color values stored in memory and
the RGB values that are used to display color
values. In general, colormaps only contain
significant information for pseudo-color visuals,
but even for other visual types, a colormap object
is required in some circumstances.
</para>
<para>
There are a couple of special colormaps that can
be retrieved. The system colormap (retrieved
with gdk_colormap_get_system()) is the default
colormap of the system. If you are using GdkRGB,
there is another colormap that is important - the
colormap in which GdkRGB works, retrieved with
gdk_rgb_get_cmap(). However, when using GdkRGB,
it is not generally necessary to allocate colors
directly.
</para>
<para>
In previous revisions of this interface, a number
of functions that take a #GdkColormap parameter
were replaced with functions whose names began
with "gdk_colormap_". This process will probably
be extended somewhat in the future -
gdk_color_white(), gdk_color_black(), and
gdk_color_change() will probably become aliases.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GdkColor ##### -->
<para>
The #GdkColor structure is used to describe an
allocated or unallocated color.
<informaltable pgwide=1 frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry><structfield>pixel</structfield></entry>
<entry>For allocated colors, the value used to
draw this color on the screen.</entry>
</row>
<row>
<entry><structfield>red</structfield></entry>
<entry>The red component of the color. This is
a value between 0 and 65535, with 65535 indicating
full intensitiy.</entry>
</row>
<row>
<entry><structfield>green</structfield></entry>
<entry>the blue component of the color.</entry>
</row>
<row>
<entry><structfield>blue</structfield></entry>
<entry>the green component of the color..</entry>
</row>
</tbody></tgroup></informaltable>
</para>
@pixel:
@red:
@green:
@blue:
<!-- ##### STRUCT GdkColormap ##### -->
<para>
The colormap structure contains the following public
fields.
<informaltable pgwide=1 frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry><structfield>size</structfield></entry>
<entry>For pseudo-color colormaps, the number of colors
in the colormap..</entry>
</row>
<row>
<entry><structfield>colors</structfield></entry>
<entry>An array containing the current values in the
colormap. This can be used to map from pixel values
back to RGB values. This is only meaningful for
pseudo-color colormaps.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
@size:
@colors:
<!-- ##### FUNCTION gdk_colormap_new ##### -->
<para>
Create a new colormap for the given visual.
</para>
@visual: a #GdkVisual.
@allocate: if %TRUE, the newly created colormap will be
a private colormap, and all colors in it will be
allocated for the applications use.
@Returns: the new #GdkColormap.
<!-- ##### FUNCTION gdk_colormap_ref ##### -->
<para>
Increase the reference count of a colormap.
</para>
@cmap: a #GdkColormap.
@Returns: @cmap
<!-- ##### FUNCTION gdk_colormap_unref ##### -->
<para>
Decrease the reference count of a colormap. If the
resulting reference count is zero, destroys the colormap.
</para>
@cmap: a #GdkColormap.
<!-- ##### FUNCTION gdk_colormap_get_system ##### -->
<para>
Returns the system's default colormap.
</para>
@Returns: the default colormap.
<!-- ##### FUNCTION gdk_colormap_get_system_size ##### -->
<para>
Returns the size of the system's default colormap.
(See the description of struct #GdkColormap for an
explanation of the size of a colormap.)
</para>
@Returns: the size of the system's default colormap.
<!-- ##### FUNCTION gdk_colormap_change ##### -->
<para>
Change the value of the first @ncolors in a private colormap
to match the values in the <structfield>colors</structfield>
array in the color map. This function is obsolete and
should not be used. See gdk_color_change().
</para>
@colormap: a #GdkColormap.
@ncolors: the number of colors to change.
<!-- ##### FUNCTION gdk_colormap_alloc_colors ##### -->
<para>
Allocates colors from a colormap.
</para>
@colormap: a #GdkColormap.
@colors: The color values to allocate. On return, the pixel
values for allocated colors will be filled in.
@ncolors: The number of colors in @colors.
@writeable: If %TRUE, the colors are allocated writeable
(their values can later be changed using gdk_color_change()).
Writeable colors cannot be shared between applications.
@best_match: If %TRUE, GDK will attempt to do matching against
existing colors if the colors cannot be allocated as
requested.
@success: An array of length @ncolors. On return, this
indicates whether the corresponding color in @colors was
sucessfully allocated or not.
@Returns: The number of colors that were not sucessfully
allocated.
<!-- ##### FUNCTION gdk_colormap_alloc_color ##### -->
<para>
Allocate a single color from a colormap.
</para>
@colormap: a #GdkColormap.
@color: the color to allocate. On return the
<structfield>pixel</structfield> field will be
filled in if allocation succeeds.
@writeable: If %TRUE, the color is allocated writeable
(their values can later be changed using gdk_color_change()).
Writeable colors cannot be shared between applications.
@best_match: If %TRUE, GDK will attempt to do matching against
existing colors if the color cannot be allocated as
requested.
@Returns: %TRUE if the allocation succeeded.
<!-- ##### FUNCTION gdk_colormap_free_colors ##### -->
<para>
Free previously allocated colors.
</para>
@colormap: a #GdkColormap.
@colors: the colors to free.
@ncolors: the number of colors in @colors.
<!-- ##### FUNCTION gdk_colormap_get_visual ##### -->
<para>
Return the visual for which a given colormap was created.
</para>
@colormap: a #GdkColormap.
@Returns: the visual of the colormap.
<!-- ##### FUNCTION gdk_colors_store ##### -->
<para>
Change the value of the first @ncolors colors in
a private colormap. This function is obsolete and
should not be used. See gdk_color_change().
</para>
@colormap: a #GdkColormap.
@colors: the new color values.
@ncolors: the number of colors to change.
<!-- ##### FUNCTION gdk_color_copy ##### -->
<para>
Make a copy of a color structure. The result
must be freed using gdk_color_free().
</para>
@color: a #GdkColor.
@Returns: a copy of @color.
<!-- ##### FUNCTION gdk_color_free ##### -->
<para>
Free a color structure created with
gdk_color_copy().
</para>
@color: a #GdkColor.
<!-- ##### FUNCTION gdk_colors_alloc ##### -->
<para>
Allocate colors from a colormap. This function
is obsolete. See gdk_colormap_alloc_colors().
For full documentation of the fields, see
the Xlib documentation for XAllocColorCells.
</para>
@colormap: a #GdkColormap.
@contiguous: if %TRUE, the colors should be allocated
in contiguous color cells.
@planes: an array in which to store the plane masks.
@nplanes: the number of planes to allocate. (Or zero,
to indicate that the color allocation should not be
planar.)
@pixels: an array into which to store allocated pixel
values.
@npixels: the number of pixels in each plane to allocate.
@Returns:
<!-- ##### FUNCTION gdk_colors_free ##### -->
<para>
Free colors allocated with gdk_colors_alloc(). This
function is obsolete. See gdk_colormap_free_colors().
</para>
@colormap: a #GdkColormap.
@pixels: the pixel values of the colors to free.
@npixels: the number of values in @pixels.
@planes: the plane masks for all planes to free, OR'd
together.
<!-- ##### FUNCTION gdk_color_white ##### -->
<para>
Return the white color for a given colormap. The resulting
value has already allocated been allocated.
</para>
@colormap: a #GdkColormap.
@color: the location to store the color.
@Returns: %TRUE if the allocation succeeded.
<!-- ##### FUNCTION gdk_color_black ##### -->
<para>
Return the black color for a given colormap. The resulting
value has already benn allocated.
</para>
@colormap: a #GdkColormap.
@color: the location to store the color.
@Returns: %TRUE if the allocation succeeded.
<!-- ##### FUNCTION gdk_color_parse ##### -->
<para>
Parse a textual specification of a color and fill in
the <structfield>red</structfield>,
<structfield>green</structfield>, and
<structfield>blue</structfield> fields of a
#GdkColor structure. The color is <emphasis>not</emphasis>
allocated, you must call gdk_colormap_alloc_color() yourself.
The text string can be in any of the forms accepted
by <function>XParseColor</function>; these include
name for a color from <filename>rgb.txt</filename>, such as
<literal>DarkSlateGray</literal>, or a hex specification
such as <literal>305050</literal>.
</para>
@spec: the string specifying the color.
@color: the #GdkColor to fill in
@Returns:
<!-- ##### FUNCTION gdk_color_alloc ##### -->
<para>
Allocate a single color from a colormap.
This function is obsolete. See gdk_colormap_alloc_color().
</para>
@colormap: a #GdkColormap.
@color: The color to allocate. On return, the
<structfield>pixel</structfield> field will be
filled in.
@Returns: %TRUE if the allocation succeeded.
<!-- ##### FUNCTION gdk_color_change ##### -->
<para>
Change the value of a color that has already
been allocated. If @colormap is not a private
colormap, then the color must have been allocated
using gdk_colormap_alloc_colors() with the
@writeable set to %TRUE.
</para>
@colormap: a #GdkColormap.
@color: a #GdkColor, with the color to change
in the <structfield>pixel</structfield> field,
and the new value in the remaining fields.
@Returns:
<!-- ##### FUNCTION gdk_color_equal ##### -->
<para>
Compare two colors.
</para>
@colora: a #GdkColor.
@colorb: another #GdkColor.
@Returns: %TRUE if the two colors compare equal
<!-- ##### FUNCTION gdk_color_hash ##### -->
<para>
A hash function suitable for using for a hash
table that stores #GdkColor's.
</para>
@colora: a #GdkColor.
@colorb: NOT USED.
@Returns: The hash function appled to @colora

View File

@@ -0,0 +1,99 @@
<!-- ##### SECTION Title ##### -->
Cursors
<!-- ##### SECTION Short_Description ##### -->
standard and pixmap cursors.
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GdkCursor ##### -->
<para>
</para>
@type:
<!-- ##### ENUM GdkCursorType ##### -->
<para>
The standard cursors available.
</para>
<!-- ##### FUNCTION gdk_cursor_new ##### -->
<para>
Creates a new standard cursor.
</para>
@cursor_type: the type of the cursor.
@Returns: a new #GdkCursor.
<!-- ##### FUNCTION gdk_cursor_new_from_pixmap ##### -->
<para>
Creates a new cursor from a given pixmap and mask. Both the pixmap and mask
must have a depth of 1 (i.e. each pixel has only 2 values - on or off).
The standard cursor size is 16 by 16 pixels.
</para>
<example><title>Creating a custom cursor.</title>
<programlisting>
/* This data is in X bitmap format, and can be created with the 'bitmap'
utility. */
#define cursor1_width 16
#define cursor1_height 16
static unsigned char cursor1_bits[] = {
0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x20,
0x82, 0x41, 0x41, 0x82, 0x41, 0x82, 0x82, 0x41, 0x04, 0x20, 0x08, 0x10,
0x10, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01};
static unsigned char cursor1mask_bits[] = {
0x80, 0x01, 0xc0, 0x03, 0x60, 0x06, 0x30, 0x0c, 0x18, 0x18, 0x8c, 0x31,
0xc6, 0x63, 0x63, 0xc6, 0x63, 0xc6, 0xc6, 0x63, 0x8c, 0x31, 0x18, 0x18,
0x30, 0x0c, 0x60, 0x06, 0xc0, 0x03, 0x80, 0x01};
GdkCursor *cursor;
GdkPixmap *source, *mask;
GdkColor fg = { 0, 65535, 0, 0 }; /* Red. */
GdkColor bg = { 0, 0, 0, 65535 }; /* Blue. */
source = gdk_bitmap_create_from_data (NULL, cursor1_bits,
cursor1_width, cursor1_height);
mask = gdk_bitmap_create_from_data (NULL, cursor1mask_bits,
cursor1_width, cursor1_height);
cursor = gdk_cursor_new_from_pixmap (source, mask, &amp;fg, &amp;bg, 8, 8);
gdk_pixmap_unref (source);
gdk_pixmap_unref (mask);
gdk_window_set_cursor (widget->window, cursor);
</programlisting>
</example>
@source: the pixmap specifying the cursor.
@mask: the pixmap specifying the mask, which must be the same size as @source.
@fg: the foreground color, used for the bits in the source which are 1.
The color does not have to be allocated first.
@bg: the background color, used for the bits in the source which are 0.
The color does not have to be allocated first.
@x: the horizontal offset of the 'hotspot' of the cursor.
@y: the vertical offset of the 'hotspot' of the cursor.
@Returns: a new #GdkCursor.
<!-- ##### FUNCTION gdk_cursor_destroy ##### -->
<para>
Destroys a cursor, freeing any resources allocated for it.
</para>
@cursor: a #GdkCursor.

View File

@@ -0,0 +1,194 @@
<!-- ##### SECTION Title ##### -->
Drag and Drop
<!-- ##### SECTION Short_Description ##### -->
functions for controlling drag and drop handling.
<!-- ##### SECTION Long_Description ##### -->
<para>
These functions provide a low level interface for drag and drop.
GDK supports both the Xdnd and Motif drag and drop protocols transparently.
</para>
<para>
GTK+ provides a higher level abstraction based on top of these functions,
and so they are not normally needed in GTK+ applications.
See the <link linkend="gtk-Drag-and-Drop">Drag and Drop</link> section of
the GTK+ documentation for more information.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_drag_get_selection ##### -->
<para>
</para>
@context:
@Returns:
<!-- ##### FUNCTION gdk_drag_abort ##### -->
<para>
</para>
@context:
@time:
<!-- ##### FUNCTION gdk_drop_reply ##### -->
<para>
</para>
@context:
@ok:
@time:
<!-- ##### FUNCTION gdk_drag_context_new ##### -->
<para>
</para>
@Returns:
<!-- ##### FUNCTION gdk_drag_drop ##### -->
<para>
</para>
@context:
@time:
<!-- ##### FUNCTION gdk_drag_find_window ##### -->
<para>
</para>
@context:
@drag_window:
@x_root:
@y_root:
@dest_window:
@protocol:
<!-- ##### FUNCTION gdk_drag_context_ref ##### -->
<para>
</para>
@context:
<!-- ##### FUNCTION gdk_drag_begin ##### -->
<para>
</para>
@window:
@targets:
@Returns:
<!-- # Unused Parameters # -->
@actions:
<!-- ##### FUNCTION gdk_drag_motion ##### -->
<para>
</para>
@context:
@dest_window:
@protocol:
@x_root:
@y_root:
@suggested_action:
@possible_actions:
@time:
@Returns:
<!-- # Unused Parameters # -->
@action:
<!-- ##### FUNCTION gdk_drop_finish ##### -->
<para>
</para>
@context:
@success:
@time:
<!-- ##### FUNCTION gdk_drag_get_protocol ##### -->
<para>
</para>
@xid:
@protocol:
@Returns:
<!-- ##### ENUM GdkDragProtocol ##### -->
<para>
</para>
@GDK_DRAG_PROTO_MOTIF:
@GDK_DRAG_PROTO_XDND:
@GDK_DRAG_PROTO_ROOTWIN:
@GDK_DRAG_PROTO_NONE:
<!-- ##### FUNCTION gdk_drag_context_unref ##### -->
<para>
</para>
@context:
<!-- ##### STRUCT GdkDragContext ##### -->
<para>
</para>
@protocol:
@is_source:
@source_window:
@dest_window:
@targets:
@actions:
@suggested_action:
@action:
@start_time:
<!-- ##### ENUM GdkDragAction ##### -->
<para>
</para>
@GDK_ACTION_DEFAULT:
@GDK_ACTION_COPY:
@GDK_ACTION_MOVE:
@GDK_ACTION_LINK:
@GDK_ACTION_PRIVATE:
@GDK_ACTION_ASK:
<!-- ##### FUNCTION gdk_drag_status ##### -->
<para>
</para>
@context:
@action:
@time:

View File

@@ -0,0 +1,239 @@
<!-- ##### SECTION Title ##### -->
Drawing Primitives
<!-- ##### SECTION Short_Description ##### -->
functions for drawing points, lines, arcs, and text.
<!-- ##### SECTION Long_Description ##### -->
<para>
These functions provide support for drawing points, lines, arcs and text
onto what are called 'drawables'. Drawables, as the name suggests, are things
which support drawing onto them, and are either #GdkWindow or #GdkPixmap
objects.
</para>
<para>
Many of the drawing operations take a #GdkGC argument, which represents a
graphics context. This #GdkGC contains a number of drawing attributes such
as foreground color, background color and line width, and is used to reduce
the number of arguments needed for each drawing operation. See the
<link linkend="gdk-Graphics-Contexts">Graphics Contexts</link> section for
more information.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_draw_point ##### -->
<para>
Draws a point, using the foreground color and other attributes of the #GdkGC.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@x: the x coordinate of the point.
@y: the y coordinate of the point.
<!-- ##### FUNCTION gdk_draw_points ##### -->
<para>
Draws a number of points, using the foreground color and other attributes of
the #GdkGC.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@points: an array of #GdkPoint structures.
@npoints: the number of points to be drawn.
<!-- ##### FUNCTION gdk_draw_line ##### -->
<para>
Draws a line, using the foreground color and other attributes of the #GdkGC.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@x1: the x coordinate of the start point.
@y1: the y coordinate of the start point.
@x2: the x coordinate of the end point.
@y2: the y coordinate of the end point.
<!-- ##### FUNCTION gdk_draw_lines ##### -->
<para>
Draws a series of lines connecting the given points.
The way in which joins between lines are draw is determined by the
#GdkCapStyle value in the #GdkGC. This can be set with
gdk_gc_set_line_attributes().
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@points: an array of #GdkPoint structures specifying the endpoints of the
lines.
@npoints: the size of the @points array.
<!-- ##### FUNCTION gdk_draw_segments ##### -->
<para>
Draws a number of unconnected lines.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@segs: an array of #GdkSegment structures specifying the start and end points
of the lines to be drawn,
@nsegs: the number of line segments to draw, i.e. the size of the @segs array.
<!-- ##### STRUCT GdkSegment ##### -->
<para>
Specifies the start and end point of a line for use by the gdk_draw_segments()
function.
</para>
@x1: the x coordinate of the start point.
@y1: the y coordinate of the start point.
@x2: the x coordinate of the end point.
@y2: the y coordinate of the end point.
<!-- ##### FUNCTION gdk_draw_rectangle ##### -->
<para>
Draws a rectangular outline or filled rectangle, using the foreground color
and other attributes of the #GdkGC.
</para>
<note>
<para>
A rectangle drawn filled is 1 pixel smaller in both dimensions than a rectangle
outlined. Calling gdk_draw_rectangle (window, gc, TRUE, 0, 0, 20, 20) results
in a filled rectangle 20 pixels wide and 20 pixels high. Calling
gdk_draw_rectangle (window, gc, FALSE, 0, 0, 20, 20) results in an outlined
rectangle with corners at (0, 0), (0, 20), (20, 20), and (20, 0), which
makes it 21 pixels wide and 21 pixels high.
</para>
</note>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@filled: TRUE if the rectangle should be filled.
@x: the x coordinate of the left edge of the rectangle.
@y: the y coordinate of the top edge of the rectangle.
@width: the width of the rectangle.
@height: the height of the rectangle.
<!-- ##### FUNCTION gdk_draw_arc ##### -->
<para>
Draws an arc or a filled 'pie slice'. The arc is defined by the bounding
rectangle of the entire ellipse, and the start and end angles of the part of
the ellipse to be drawn.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@filled: TRUE if the arc should be filled, producing a 'pie slice'.
@x: the x coordinate of the left edge of the bounding rectangle.
@y: the y coordinate of the top edge of the bounding rectangle.
@width: the width of the bounding rectangle.
@height: the height of the bounding rectangle.
@angle1: the start angle of the arc, relative to the 3 o'clock position,
counter-clockwise, in 1/64ths of a degree.
@angle2: the end angle of the arc, relative to @angle1, in 1/64ths of a degree.
<!-- ##### FUNCTION gdk_draw_polygon ##### -->
<para>
Draws an outlined or filled polygon.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@filled: TRUE if the polygon should be filled. The polygon is closed
automatically, connecting the last point to the first point if necessary.
@points: an array of #GdkPoint structures specifying the points making up the
polygon.
@npoints: the number of points.
<!-- ##### FUNCTION gdk_draw_string ##### -->
<para>
Draws a string of characters in the given font or fontset.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@font: a #GdkFont.
@gc: a #GdkGC.
@x: the x coordinate of the left edge of the text.
@y: the y coordinate of the baseline of the text.
@string: the string of characters to draw.
<!-- ##### FUNCTION gdk_draw_text ##### -->
<para>
Draws a number of characters in the given font or fontset.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@font: a #GdkFont.
@gc: a #GdkGC.
@x: the x coordinate of the left edge of the text.
@y: the y coordinate of the baseline of the text.
@text: the characters to draw.
@text_length: the number of characters of @text to draw.
<!-- ##### FUNCTION gdk_draw_text_wc ##### -->
<para>
Draws a number of wide characters using the given font of fontset.
If the font is a 1-byte font, the string is converted into 1-byte characters
(discarding the high bytes) before output.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@font: a #GdkFont.
@gc: a #GdkGC.
@x: the x coordinate of the left edge of the text.
@y: the y coordinate of the baseline of the text.
@text: the wide characters to draw.
@text_length: the number of characters to draw.
<!-- ##### FUNCTION gdk_draw_pixmap ##### -->
<para>
Draws a pixmap, or a part of a pixmap, onto another drawable.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@src: the source #GdkPixmap to draw.
@xsrc: the left edge of the source rectangle within @src.
@ysrc: the top of the source rectangle within @src.
@xdest: the x coordinate of the destination within @drawable.
@ydest: the y coordinate of the destination within @drawable.
@width: the width of the area to be copied, or -1 to make the area extend to
the right edge of the source pixmap.
@height: the height of the area to be copied, or -1 to make the area extend
to the bottom edge of the source pixmap.
<!-- ##### FUNCTION gdk_draw_image ##### -->
<para>
Draws a #GdkImage onto a drawable.
The depth of the #GdkImage must match the depth of the #GdkDrawable.
</para>
@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
@gc: a #GdkGC.
@image: the #GdkImage to draw.
@xsrc: the left edge of the source rectangle within @image.
@ysrc: the top of the source rectangle within @image.
@xdest: the x coordinate of the destination within @drawable.
@ydest: the y coordinate of the destination within @drawable.
@width: the width of the area to be copied, or -1 to make the area extend to
the right edge of @image.
@height: the height of the area to be copied, or -1 to make the area extend
to the bottom edge of @image.

View File

@@ -0,0 +1,368 @@
<!-- ##### SECTION Title ##### -->
Event Structures
<!-- ##### SECTION Short_Description ##### -->
data structures specific to each type of event.
<!-- ##### SECTION Long_Description ##### -->
<para>
The event structs contain data specific to each type of event in GDK.
</para>
<note>
<para>
A common mistake is to forget to set the event mask of a widget so that the
required events are received. See gtk_widget_set_events().
</para>
</note>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### UNION GdkEvent ##### -->
<para>
The #GdkEvent struct contains a union of all of the event structs,
and allows access to the data fields in a number of ways.
</para>
<para>
The event type is always the first field in all of the event structs, and
can always be accessed with the following code, no matter what type of event
it is:
<informalexample>
<programlisting>
GdkEvent *event;
GdkEventType type;
type = event->type;
</programlisting>
</informalexample>
</para>
<para>
To access other fields of the event structs, the pointer to the event can be
cast to the appropriate event struct pointer, or the union member name can be
used. For example if the event type is %GDK_BUTTON_PRESS then the x coordinate
of the button press can be accessed with:
<informalexample>
<programlisting>
GdkEvent *event;
gdouble x;
x = ((GdkEventButton*)event)->x;
</programlisting>
</informalexample>
or:
<informalexample>
<programlisting>
GdkEvent *event;
gdouble x;
x = event->button.x;
</programlisting>
</informalexample>
</para>
<!-- ##### STRUCT GdkEventAny ##### -->
<para>
Contains the fields which are common to all event structs.
Any event pointer can safely be cast to a pointer to a #GdkEventAny to access
these fields.
</para>
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
<!-- ##### STRUCT GdkEventKey ##### -->
<para>
Describes a key press or key release event.
</para>
@type: the type of the event (%GDK_KEY_PRESS or %GDK_KEY_RELEASE).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@time: the time of the event in milliseconds.
@state: a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See #GdkModifierType.
@keyval: the key that was pressed or released. See the &lt;gdk/gdkkeysym.h&gt;
header file for a complete list of GDK key codes.
@length: the length of @string.
@string: a null-terminated multi-byte string containing the composed characters
resulting from the key press. When text is being input, in a GtkEntry for
example, it is these characters which should be added to the input buffer.
When using <link linkend="gdk-Input-Methods"> Input Methods</link> to support
internationalized text input, the composed characters appear here after the
pre-editing has been completed.
<!-- ##### STRUCT GdkEventButton ##### -->
<para>
Used for button press and button release events. The
<structfield>type</structfield> field will be one of %GDK_BUTTON_PRESS,
%GDK_2BUTTON_PRESS, %GDK_3BUTTON_PRESS, and %GDK_BUTTON_RELEASE.
</para>
<para>
Double and triple-clicks result in a sequence of events being received.
For double-clicks the order of events will be:
<orderedlist>
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_2BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
</orderedlist>
Note that the first click is received just like a normal
button press, while the second click results in a %GDK_2BUTTON_PRESS being
received just after the %GDK_BUTTON_PRESS.
</para>
<para>
Triple-clicks are very similar to double-clicks, except that %GDK_3BUTTON_PRESS
is inserted after the third click. The order of the events is:
<orderedlist>
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_2BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_3BUTTON_PRESS</para></listitem>
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
</orderedlist>
</para>
<para>
For a double click to occur, the second button press must occur within 1/4 of
a second of the first. For a triple click to occur, the third button press
must also occur within 1/2 second of the first button press.
</para>
@type: the type of the event (%GDK_BUTTON_PRESS, %GDK_2BUTTON_PRESS,
%GDK_3BUTTON_PRESS or %GDK_BUTTON_RELEASE).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@time: the time of the event in milliseconds.
@x: the x coordinate of the mouse relative to the window.
@y: the y coordinate of the mouse relative to the window.
@pressure: the pressure of the button press, intended for input devices such
as graphics tablets. It defaults to 0.5.
@xtilt: the horizontal tilt of the input device. Defaults to 0.
@ytilt: the vertical tilt of the input device. Defaults to 0.
@state: a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See #GdkModifierType.
@button: the button which was pressed or released, numbered from 1 to 5.
Normally button 1 is the left mouse button, 2 is the middle button,
and 3 is the right button. On 2-button mice, the middle button can often
be simulated by pressing both mouse buttons together.
@source: the input device where the event came from, usually %GDK_SOURCE_MOUSE.
@deviceid: the input device ID, usually %GDK_CORE_POINTER but may be
different if touch screens or graphics tablets are being used.
@x_root: the x coordinate of the mouse relative to the root of the screen.
@y_root: the y coordinate of the mouse relative to the root of the screen.
<!-- ##### STRUCT GdkEventMotion ##### -->
<para>
</para>
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@time:
@x:
@y:
@pressure:
@xtilt:
@ytilt:
@state:
@is_hint:
@source:
@deviceid:
@x_root:
@y_root:
<!-- ##### STRUCT GdkEventExpose ##### -->
<para>
Generated when all or part of a window becomes visible and needs to be
redrawn.
</para>
@type: the type of the event (%GDK_EXPOSE).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@area: the area that needs to be redrawn.
@count: the number of contiguous %GDK_EXPOSE events following this one.
The only use for this is "exposure compression", i.e. handling all contiguous
%GDK_EXPOSE events in one go, though GDK performs some exposure compression
so this is not normally needed.
<!-- ##### STRUCT GdkEventVisibility ##### -->
<para>
Generated when the window visibility status has changed.
</para>
@type: the type of the event (%GDK_VISIBILITY_NOTIFY).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@state: the new visibility state (%GDK_VISIBILITY_FULLY_OBSCURED,
%GDK_VISIBILITY_PARTIAL or %GDK_VISIBILITY_UNOBSCURED).
<!-- ##### ENUM GdkVisibilityState ##### -->
<para>
Specifies the visiblity status of a window for a #GdkEventVisibility.
</para>
@GDK_VISIBILITY_UNOBSCURED: the window is completely visible.
@GDK_VISIBILITY_PARTIAL: the window is partially visible.
@GDK_VISIBILITY_FULLY_OBSCURED: the window is not visible at all.
<!-- ##### STRUCT GdkEventCrossing ##### -->
<para>
</para>
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@subwindow:
@time: the time of the event in milliseconds.
@x:
@y:
@x_root:
@y_root:
@mode:
@detail:
@focus:
@state:
<!-- ##### ENUM GdkCrossingMode ##### -->
<para>
</para>
@GDK_CROSSING_NORMAL:
@GDK_CROSSING_GRAB:
@GDK_CROSSING_UNGRAB:
<!-- ##### ENUM GdkNotifyType ##### -->
<para>
</para>
@GDK_NOTIFY_ANCESTOR:
@GDK_NOTIFY_VIRTUAL:
@GDK_NOTIFY_INFERIOR:
@GDK_NOTIFY_NONLINEAR:
@GDK_NOTIFY_NONLINEAR_VIRTUAL:
@GDK_NOTIFY_UNKNOWN:
<!-- ##### STRUCT GdkEventFocus ##### -->
<para>
Describes a change of keyboard focus.
</para>
@type: the type of the event (%GDK_FOCUS_CHANGE).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@in: TRUE if the window has gained the keyboard focus, FALSE if it has lost
the focus.
<!-- ##### STRUCT GdkEventConfigure ##### -->
<para>
Generated when a window size or position has changed.
</para>
@type: the type of the event (%GDK_CONFIGURE).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@x: the new x coordinate of the window, relative to its parent.
@y: the new y coordinate of the window, relative to its parent.
@width: the new width of the window.
@height: the new height of the window.
<!-- ##### STRUCT GdkEventProperty ##### -->
<para>
Describes a property change on a window.
</para>
@type: the type of the event (%GDK_PROPERTY_NOTIFY).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@atom: the property that was changed.
@time: the time of the event in milliseconds.
@state: whether the property was changed (%GDK_PROPERTY_NEW_VALUE) or
deleted (%GDK_PROPERTY_DELETE).
<!-- ##### ENUM GdkPropertyState ##### -->
<para>
Specifies the type of a property change for a #GdkEventProperty.
</para>
@GDK_PROPERTY_NEW_VALUE: the property value wan changed.
@GDK_PROPERTY_DELETE: the property was deleted.
<!-- ##### STRUCT GdkEventSelection ##### -->
<para>
</para>
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@selection:
@target:
@property:
@requestor:
@time: the time of the event in milliseconds.
<!-- ##### STRUCT GdkEventDND ##### -->
<para>
</para>
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@context:
@time: the time of the event in milliseconds.
@x_root:
@y_root:
<!-- ##### STRUCT GdkEventProximity ##### -->
<para>
</para>
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@time: the time of the event in milliseconds.
@source:
@deviceid:
<!-- ##### STRUCT GdkEventClient ##### -->
<para>
An event sent by another client application.
</para>
@type: the type of the event (%GDK_CLIENT_EVENT).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@message_type: the type of the message, which can be defined by the
application.
@data_format: the format of the data, given as the number of bits in each
data element, i.e. 8, 16, or 32. 8-bit data uses the b array of the data
union, 16-bit data uses the s array, and 32-bit data uses the l array.
<!-- ##### STRUCT GdkEventNoExpose ##### -->
<para>
Generated when the area of a #GdkDrawable being copied, with gdk_draw_pixmap()
or gdk_window_copy_area(), was completely available.
</para>
<para>
FIXME: add more here.
</para>
@type: the type of the event (%GDK_NO_EXPOSE).
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).

View File

@@ -0,0 +1,303 @@
<!-- ##### SECTION Title ##### -->
Events
<!-- ##### SECTION Short_Description ##### -->
functions for handling events from the window system.
<!-- ##### SECTION Long_Description ##### -->
<para>
This section describes functions dealing with events from the window system.
</para>
<para>
In GTK+ applications the events are handled automatically in
gtk_main_do_event() and passed on to the appropriate widgets, so these
functions are rarely needed. Though some of the fields in the
<link linkend="gdk-Event-Structures">Event Structures</link> are useful.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<variablelist>
<varlistentry>
<term><link linkend="gdk-Event-Structures">Event Structures</link></term>
<listitem><para>
The structs used for each type of event.
</para></listitem>
</varlistentry>
</variablelist>
</para>
<!-- ##### ENUM GdkEventType ##### -->
<para>
Specifies the type of the event.
</para>
<para>
Do not confuse these events with the signals that GTK+ widgets emit.
Although many of these events result in corresponding signals being emitted,
the events are often transformed or filtered along the way.
</para>
@GDK_NOTHING: a special code to indicate a null event.
@GDK_DELETE: the window manager has requested that the toplevel window be
hidden or destroyed, usually when the user clicks on a special icon in the
title bar.
@GDK_DESTROY: the window has been destroyed.
@GDK_EXPOSE: all or part of the window has become visible and needs to be
redrawn.
@GDK_MOTION_NOTIFY: the pointer (usually a mouse) has moved.
@GDK_BUTTON_PRESS: a mouse button has been pressed.
@GDK_2BUTTON_PRESS: a mouse button has been double-clicked (clicked twice
within a short period of time). Note that each click also generates a
%GDK_BUTTON_PRESS event.
@GDK_3BUTTON_PRESS: a mouse button has been clicked 3 times in a short period
of time. Note that each click also generates a %GDK_BUTTON_PRESS event.
@GDK_BUTTON_RELEASE: a mouse button has been released.
@GDK_KEY_PRESS: a key has been pressed.
@GDK_KEY_RELEASE: a key has been released.
@GDK_ENTER_NOTIFY: the pointer has entered the window.
@GDK_LEAVE_NOTIFY: the pointer has left the window.
@GDK_FOCUS_CHANGE: the keyboard focus has entered or left the window.
@GDK_CONFIGURE: the size, position or stacking order of the window has changed.
Note that GTK+ discards these events for %GDK_WINDOW_CHILD windows.
@GDK_MAP: the window has been mapped.
@GDK_UNMAP: the window has been unmapped.
@GDK_PROPERTY_NOTIFY: a property on the window has been changed or deleted.
@GDK_SELECTION_CLEAR: the application has lost ownership of a selection.
@GDK_SELECTION_REQUEST: another application has requested a selection.
@GDK_SELECTION_NOTIFY: a selection has been received.
@GDK_PROXIMITY_IN: an input device has moved into contact with a sensing
surface (e.g. a touchscreen or graphics tablet).
@GDK_PROXIMITY_OUT: an input device has moved out of contact with a sensing
surface.
@GDK_DRAG_ENTER: the mouse has entered the window while a drag is in progress.
@GDK_DRAG_LEAVE: the mouse has left the window while a drag is in progress.
@GDK_DRAG_MOTION: the mouse has moved in the window while a drag is in
progress.
@GDK_DRAG_STATUS: the status of the drag operation initiated by the window
has changed.
@GDK_DROP_START: a drop operation onto the window has started.
@GDK_DROP_FINISHED: the drop operation initiated by the window has completed.
@GDK_CLIENT_EVENT: a message has been received from another application.
@GDK_VISIBILITY_NOTIFY: the window visibility status has changed.
@GDK_NO_EXPOSE: indicates that the source region was completely available
when parts of a drawable were copied. This is not very useful.
<!-- ##### ENUM GdkEventMask ##### -->
<para>
A set of bit-flags to indicate which events a window is to receive.
Most of these masks map onto one or more of the #GdkEventType event types
above.
</para>
<para>
%GDK_POINTER_MOTION_HINT_MASK is a special mask which is used to reduce the
number of %GDK_MOTION_NOTIFY events received. Normally a %GDK_MOTION_NOTIFY
event is received each time the mouse moves. However, if the application
spends a lot of time processing the event (updating the display, for example),
it can easily lag behind the position of the mouse. When using the
%GDK_POINTER_MOTION_HINT_MASK the server will only send %GDK_MOTION_NOTIFY
events when the application asks for them, by calling gdk_window_get_pointer().
</para>
@GDK_EXPOSURE_MASK:
@GDK_POINTER_MOTION_MASK:
@GDK_POINTER_MOTION_HINT_MASK:
@GDK_BUTTON_MOTION_MASK:
@GDK_BUTTON1_MOTION_MASK:
@GDK_BUTTON2_MOTION_MASK:
@GDK_BUTTON3_MOTION_MASK:
@GDK_BUTTON_PRESS_MASK:
@GDK_BUTTON_RELEASE_MASK:
@GDK_KEY_PRESS_MASK:
@GDK_KEY_RELEASE_MASK:
@GDK_ENTER_NOTIFY_MASK:
@GDK_LEAVE_NOTIFY_MASK:
@GDK_FOCUS_CHANGE_MASK:
@GDK_STRUCTURE_MASK:
@GDK_PROPERTY_CHANGE_MASK:
@GDK_VISIBILITY_NOTIFY_MASK:
@GDK_PROXIMITY_IN_MASK:
@GDK_PROXIMITY_OUT_MASK:
@GDK_SUBSTRUCTURE_MASK:
@GDK_ALL_EVENTS_MASK: the combination of all the above event masks.
<!-- ##### MACRO GDK_CURRENT_TIME ##### -->
<para>
Represents the current time, and can be used anywhere a time is expected.
</para>
<!-- ##### MACRO GDK_PRIORITY_EVENTS ##### -->
<para>
This is the priority that events from the X server are given in the
<link linkend="glib-The-Main-Event-Loop">GLib Main Loop</link>.
</para>
<!-- ##### FUNCTION gdk_events_pending ##### -->
<para>
Checks if any events are waiting to be processed.
</para>
@Returns: TRUE if any events are pending.
<!-- ##### FUNCTION gdk_event_peek ##### -->
<para>
Gets a copy of the first #GdkEvent in the event queue.
(Note that this function will not get more events from the X server.
It only checks the events that have already been moved to the GDK event queue.)
</para>
@Returns: a copy of the first #GdkEvent on the event queue, or NULL if no
events are in the queue. The returned #GdkEvent should be freed with
gdk_event_free().
<!-- ##### FUNCTION gdk_event_get ##### -->
<para>
Gets the next #GdkEvent to be processed, fetching events from the X server if
necessary.
</para>
@Returns: the next #GdkEvent to be processed, or NULL if no events are pending.
The returned #GdkEvent should be freed with gdk_event_free().
<!-- ##### FUNCTION gdk_event_get_graphics_expose ##### -->
<para>
Waits for a GraphicsExpose or NoExpose event from the X server.
This is used in the #GtkText and #GtkCList widgets in GTK+ to make sure any
GraphicsExpose events are handled before the widget is scrolled.
</para>
@window: the #GdkWindow to wait for the events for.
@Returns: a #GdkEventExpose if a GraphicsExpose was received, or NULL if a
NoExpose event was received.
<!-- ##### FUNCTION gdk_event_put ##### -->
<para>
Appends a copy of the given event onto the front of the event queue.
</para>
@event: a #GdkEvent.
<!-- ##### FUNCTION gdk_event_copy ##### -->
<para>
Copies a #GdkEvent, copying or incrementing the reference count of the
resources associated with it (e.g. #GdkWindow's and strings).
</para>
@event: a #GdkEvent.
@Returns: a copy of @event. The returned #GdkEvent should be freed with
gdk_event_free().
<!-- ##### FUNCTION gdk_event_free ##### -->
<para>
Frees a #GdkEvent, freeing or decrementing any resources associated with it.
Note that this function should only be called with events returned from
gdk_event_peek(), gdk_event_get(), gdk_event_get_graphics_expose() and
gdk_event_copy().
</para>
@event: a #GdkEvent.
<!-- ##### FUNCTION gdk_event_get_time ##### -->
<para>
Gets the timestamp from a #GdkEvent.
</para>
@event: a #GdkEvent.
@Returns: the timestamp from @event, or #GDK_CURRENT_TIME if the event has
no timestamp.
<!-- ##### FUNCTION gdk_event_handler_set ##### -->
<para>
Sets the function to call to handle all events from GDK.
</para>
<para>
Note that GTK+ uses this to install its own event handler, so it is probably
not useful for GTK+ applications.
</para>
@func: the function to call to handle events from GDK.
@data: user data to pass to the function.
@notify: the function to call when the handler function is removed, i.e. when
gdk_event_handler_set() is called with another event handler.
<!-- ##### USER_FUNCTION GdkEventFunc ##### -->
<para>
Specifies the type of function passed to gdk_event_handler_set() to handle
all GDK events.
</para>
@event: the #GdkEvent to process.
@data: user data set when the event handler was installed with
gdk_event_handler_set().
<!-- ##### FUNCTION gdk_event_send_client_message ##### -->
<para>
Sends an X ClientMessage event to a given window.
</para>
<para>
This could be used for communicating between different applications,
though the amount of data is limited to 20 bytes.
</para>
@event: the #GdkEvent to send, which should be a #GdkEventClient.
@xid: the window to send the X ClientMessage event to.
@Returns: non-zero on success.
<!-- ##### FUNCTION gdk_event_send_clientmessage_toall ##### -->
<para>
Sends an X ClientMessage event to all toplevel windows.
</para>
<para>
Toplevel windows are determined by checking for the WM_STATE property, as
described in the Inter-Client Communication Conventions Manual (ICCCM).
If no windows are found with the WM_STATE property set, the message is sent
to all children of the root window.
</para>
@event: the #GdkEvent to send, which should be a #GdkEventClient.
<!-- ##### FUNCTION gdk_add_client_message_filter ##### -->
<para>
Adds a filter to be called when X ClientMessage events are received.
</para>
@message_type: the type of ClientMessage events to receive. This will be
checked against the <structfield>message_type</structfield> field of the
XClientMessage event struct.
@func: the function to call to process the event.
@data: user data to pass to @func.
<!-- ##### FUNCTION gdk_get_show_events ##### -->
<para>
Returns non-zero if event debugging output is enabled.
</para>
@Returns: non-zero if event debugging output is enabled.
<!-- ##### FUNCTION gdk_set_show_events ##### -->
<para>
Sets whether event debugging information is output.
Note that GTK+ must be compiled with debugging enabled, i.e. using the
'--enable-debug' configure option.
</para>
@show_events: TRUE to output event debugging information.

View File

@@ -0,0 +1,643 @@
<!-- ##### SECTION Title ##### -->
Fonts
<!-- ##### SECTION Short_Description ##### -->
loading and manipulating fonts
<!-- ##### SECTION Long_Description ##### -->
<para>
The GdkFont data type represents a font for drawing on
the screen. These functions provide support for
loading fonts, and also for determining the dimensions
of characters and strings when drawn with a particular
font.
</para>
<para>
Fonts in X are specified by a
<firstterm>X Logical Font Description</firstterm>.
The following description is considerably simplified.
For definitive information about XLFD's see the
X reference documentation. A X Logical Font Description (XLFD)
consists of a sequence of fields separated (and surrounded by) '-'
characters. For example, Adobe Helvetica Bold 12 pt, has the
full description:
<programlisting>
"-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"
</programlisting>
</para>
<para>
The fields in the XLFD are:
<informaltable pgwide=1 frame="none">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>Foundry</entry>
<entry>the company or organization where the font originated.</entry>
</row>
<row>
<entry>Family</entry>
<entry>the font family (a group of related font designs).</entry>
</row>
<row>
<entry>Weight</entry>
<entry>A name for the font's typographic weight
For example, 'bold' or 'medium').</entry>
</row>
<row>
<entry>Slant</entry>
<entry>The slant of the font. Common values are 'R' for Roman,
'I' for italoc, and 'O' for oblique.</entry>
</row>
<row>
<entry>Set Width</entry>
<entry>A name for the width of the font. For example,
'normal' or 'condensed'.</entry>
</row>
<row>
<entry>Add Style</entry>
<entry>Additional information to distinguish a font from
other fonts of the same family.</entry>
</row>
<row>
<entry>Pixel Size</entry>
<entry>The body size of the font in pixels.</entry>
</row>
<row>
<entry>Point Size</entry>
<entry>The body size of the font in 10ths of a point.
(A <firstterm>point</firstterm> is 1/72.27 inch) </entry>
</row>
<row>
<entry>Resolution X</entry>
<entry>The horizontal resolution that the font was designed for.</entry>
</row>
<row>
<entry>Resolution Y</entry>
<entry>The vertical resolution that the font was designed for .</entry>
</row>
<row>
<entry>Spacing</entry>
<entry>The type of spacing for the font - can be 'p' for proportional,
'm' for monospaced or 'c' for charcell.</entry>
</row>
<row>
<entry>Average Width</entry>
<entry>The average width of a glyph in the font. For monospaced
and charcell fonts, all glyphs in the font have this width</entry>
</row>
<row>
<entry>Charset Registry</entry>
<entry>The registration authority that owns the encoding for
the font. Together with the Charset Encoding field, this
defines the character set for the font.</entry>
</row>
<row>
<entry>Charset Encoding</entry>
<entry>An identifier for the particular character set encoding.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
<para>
When specifying a font via a X logical Font Description,
'*' can be used as a wildcard to match any portion of
the XLFD. For instance, the above example could
also be specified as
<programlisting>
"-*-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-1"
</programlisting>
It is generally a good idea to use wildcards for any
portion of the XLFD that your program does not care
about specifically, since that will improve the
chances of finding a matching font.
</para>
<para>
A <firstterm>fontset</firstterm> is a list of fonts
that is used for drawing international text that may
contain characters from a number of different character
sets. It is represented by a list of XLFD's.
</para>
<para>
The font for a given character set is determined by going
through the list of XLFD's in order. For each one, if
the registry and and encoding fields match the desired
character set, then that font is used, otherwise if
the XLFD contains wild-cards for the registry and encoding
fields, the registry and encoding for the desired character
set are subsituted in and a lookup is done. If a match is found
that font is used. Otherwise, processing continues
on to the next font in the list.
</para>
<para>
The functions for determining the metrics of a string
come in several varieties that can take a number
of forms of string input:
<variablelist>
<varlistentry>
<term>8-bit string</term>
<listitem><para>
When using functions like gdk_string_width() that
take a <type>gchar *</type>, if the font is of type
%GDK_FONT_FONT and is an 8-bit font, then each
<type>gchar</type> indexes the glyphs in the font directly.
</para></listitem>
</varlistentry>
<varlistentry>
<term>16-bit string</term>
<listitem><para>
For functions taking a <type>gchar *</type>, if the
font is of type %GDK_FONT_FONT, and is a 16-bit
font, then the <type>gchar *</type> argument is
interpreted as a <type>guint16 *</type> cast to
a <type>gchar *</type> and each <type>guint16</type>
indexes the glyphs in the font directly.
</para></listitem>
</varlistentry>
<varlistentry>
<term>Multibyte string</term>
<listitem><para>
For functions taking a <type>gchar *</type>, if the
font is of type %GDK_FONT_FONTSET, then the input
string is interpreted as a <firstterm>multibyte</firstterm>
encoded according to the current locale. (A multibyte
string is one in which each character may consist
of one or more bytes, with different lengths for different
characters in the string). They can be converted to and
from wide character strings (see below) using
gdk_wcstombs() and gdk_mbstowcs().) The string will
be rendered using one or more different fonts from
the fontset.
</para></listitem>
</varlistentry>
<varlistentry>
<term>Wide character string</term>
<listitem><para>
For a number of the text-measuring functions, GTK+
provides a variant (such as gdk_text_width_wc()) which
takes a <type>GdkWChar *</type> instead of a
<type>gchar *</type>. The input is then taken to
be a wide character string in the encoding of the
current locale. (A wide character string is a string
in which each character consists of several bytes,
and the width of each character in the string is
constant.)
</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
GDK provides functions to determine a number of different
measurements (metrics) for a given string. (Need diagram
here).
<variablelist>
<varlistentry>
<term>ascent</term>
<listitem><para>
The vertical distance from the origin of the drawing
opereration to the top of the drawn character.
</para></listitem>
</varlistentry>
<varlistentry>
<term>descent</term>
<listitem><para>
The vertical distance from the origin of the drawing
opereration to the bottom of the drawn character.
</para></listitem>
</varlistentry>
<varlistentry>
<term>left bearing</term>
<listitem><para>
The horizontal distance from the origin of the drawing
operation to the left-most part of the drawn character.
</para></listitem>
</varlistentry>
<varlistentry>
<term>right bearing</term>
<listitem><para>
The horizontal distance from the origin of the drawing
operation to the right-most part of the drawn character.
</para></listitem>
</varlistentry>
<varlistentry>
<term>width bearing</term>
<listitem><para>
The horizontal distance from the origin of the drawing
operation to the correct origin for drawing another
string to follow the current one. Depending on the
font, this could be greater than or less than the
right bearing.
</para></listitem>
</varlistentry>
</variablelist>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GdkFont ##### -->
<para>
The GdkFont structure represents a font or fontset. It
contains the following public fields. A new GdkFont
structure is returned by gdk_font_load() or gdk_fontset_load(),
and is reference counted with gdk_font_ref() and gdk_font_unref()
<informaltable pgwide=1 frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry><structfield>type</structfield></entry>
<entry>a value of type #GdkFontType which indicates
whether this font is a single font or a fontset.</entry>
</row>
<row>
<entry><structfield>ascent</structfield></entry>
<entry>the maximum distance that the font, when drawn,
ascends above the baseline.</entry>
</row>
<row>
<entry><structfield>descent</structfield></entry>
<entry>the maximum distance that the font, when drawn,
descends below the baseline.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
@type:
@ascent:
@descent:
<!-- ##### ENUM GdkFontType ##### -->
<para>
Indicates the type of a font. The possible values
are currently:
<informaltable pgwide=1 frame="none" role="enum">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>GDK_FONT_FONT</entry>
<entry>the font is a single font.</entry>
</row>
<row>
<entry>GDK_FONT_FONT</entry>
<entry>the font is a fontset.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
@GDK_FONT_FONT:
@GDK_FONT_FONTSET:
<!-- ##### FUNCTION gdk_font_load ##### -->
<para>
Loads a font.
</para>
<para>
Currently, this function will always return a new
font, however, in the future, it may be changed to
look up the font in a cache. You should make no
assumptions about the initial reference count.
</para>
@font_name: a XLFD describing the font to load.
@Returns: a #GdkFont, or NULL if the font could not be loaded.
<!-- ##### FUNCTION gdk_fontset_load ##### -->
<para>
Loads a fontset.
</para>
<para>
Currently this function will always return a new
font, however, in the future, it may be changed to
look up the font in a cache. You should make no
assumptions about the initial reference count.
</para>
@fontset_name: a comma-separated list of XLFDs describing
the component fonts of the fontset to load.
@Returns: a #GdkFont, or NULL if the fontset could not be loaded.
<!-- ##### FUNCTION gdk_font_ref ##### -->
<para>
Increase the reference count of a count by one.
</para>
@font: a #GdkFont
@Returns: @font
<!-- ##### FUNCTION gdk_font_unref ##### -->
<para>
Decrease the reference count of a count by one.
If the result is zero, destroys the font.
</para>
@font: a #GdkFont
<!-- ##### FUNCTION gdk_font_id ##### -->
<para>
Returns the X Font ID for the given font.
</para>
@font: a #GdkFont.
@Returns: the numeric X Font ID
<!-- ##### FUNCTION gdk_font_equal ##### -->
<para>
Compares two fonts for equality. Single fonts compare equal
if they have the same X font ID. This operation does
not currently work correctly for fontsets.
</para>
@fonta: a #GdkFont.
@fontb: another #GdkFont.
@Returns: %TRUE if the fonts are equal.
<!-- ##### FUNCTION gdk_string_extents ##### -->
<para>
Returns the metrics of a NULL-terminated string.
</para>
@font: a #GdkFont.
@string: the NULL-terminated string to measure.
@lbearing: the left bearing of the string.
@rbearing: the right bearing of the string.
@width: the width of the string.
@ascent: the ascent of the string.
@descent: the descent of the string.
<!-- ##### FUNCTION gdk_text_extents ##### -->
<para>
Returns the metrics of a string.
</para>
@font: a #GdkFont
@text: the text to measure
@text_length: the length of the text in bytes. (If the
font is a 16-bit font, this is twice the length
of the text in characters.)
@lbearing: the left bearing of the string.
@rbearing: the right bearing of the string.
@width: the width of the string.
@ascent: the ascent of the string.
@descent: the descent of the string.
<!-- ##### FUNCTION gdk_text_extents_wc ##### -->
<para>
Returns the metrics of a string of wide characters.
</para>
@font: a #GdkFont
@text: the text to measure.
@text_length: the length of the text in character.
@lbearing: the left bearing of the string.
@rbearing: the right bearing of the string.
@width: the width of the string.
@ascent: the ascent of the string.
@descent: the descent of the string.
<!-- ##### FUNCTION gdk_string_width ##### -->
<para>
Determine the width of a NULL-terminated string.
(The distance from the origin of the string to the
point where the next string in a sequence of strings
should be drawn)
</para>
@font: a #GdkFont
@string: the NULL-terminated string to measure
@Returns: the width of the string in pixels.
<!-- ##### FUNCTION gdk_text_width ##### -->
<para>
Determine the width of a given string.
</para>
@font: a #GdkFont
@text: the text to measure.
@text_length: the length of the text in bytes.
@Returns: the width of the string in pixels.
<!-- ##### FUNCTION gdk_text_width_wc ##### -->
<para>
Determine the width of a given wide-character string.
</para>
@font: a #GdkFont
@text: the text to measure.
@text_length: the length of the text in characters.
@Returns: the width of the string in pixels.
<!-- ##### FUNCTION gdk_char_width ##### -->
<para>
Determine the width of a given character.
</para>
@font: a #GdkFont
@character: the character to measure.
@Returns: the width of the character in pixels.
<!-- ##### FUNCTION gdk_char_width_wc ##### -->
<para>
Determine the width of a given wide character. (Encoded
in the wide-character encoding of the current locale).
</para>
@font: a #GdkFont
@character: the character to measure.
@Returns: the width of the character in pixels.
<!-- ##### FUNCTION gdk_string_measure ##### -->
<para>
Determines the distance from the origin to the rightmost
portion of a NULL-terminated string when drawn. This is not the
correct value for determining the origin of the next
portion when drawing text in multiple pieces.
See gdk_string_width().
</para>
@font: a #GdkFont
@string: the NULL-terminated string to measure.
@Returns: the right bearing of the string in pixels.
<!-- ##### FUNCTION gdk_text_measure ##### -->
<para>
Determines the distance from the origin to the rightmost
portion of a string when drawn. This is not the
correct value for determining the origin of the next
portion when drawing text in multiple pieces.
See gdk_text_width().
</para>
@font: a #GdkFont
@text: the text to measure.
@text_length: the length of the text in bytes.
@Returns: the right bearing of the string in pixels.
<!-- ##### FUNCTION gdk_char_measure ##### -->
<para>
Determines the distance from the origin to the rightmost
portion of a character when drawn. This is not the
correct value for determining the origin of the next
portion when drawing text in multiple pieces.
</para>
@font: a #GdkFont
@character: the character to measure.
@Returns: the right bearing of the character in pixels.
<!-- ##### FUNCTION gdk_string_height ##### -->
<para>
Determines the total height of a given NULL-terminated
string. This value is not generally useful, because you
cannot determine how this total height will be drawn in
relation to the baseline. See gdk_string_extents().
</para>
@font: a #GdkFont
@string: the NULL-terminated string to measure.
@Returns: the height of the string in pixels.
<!-- ##### FUNCTION gdk_text_height ##### -->
<para>
Determines the total height of a given string.
This value is not generally useful, because you cannot
determine how this total height will be drawn in
relation to the baseline. See gdk_text_extents().
</para>
@font: a #GdkFont
@text: the text to measure.
@text_length: the length of the text in bytes.
@Returns: the height of the string in pixels.
<!-- ##### FUNCTION gdk_char_height ##### -->
<para>
Determines the total height of a given character.
This value is not generally useful, because you cannot
determine how this total height will be drawn in
relation to the baseline. See gdk_text_extents().
</para>
@font: a #GdkFont
@character: the character to measure.
@Returns: the height of the character in pixels.
<!-- ##### TYPEDEF GdkWChar ##### -->
<para>
Specifies a wide character type, used to represent character codes.
This is needed since some native languages have character sets which have
more than 256 characters (Japanese and Chinese, for example).
</para>
<para>
Wide character values between 0 and 127 are always identical in meaning to
the ASCII character codes. The wide character value 0 is often used to
terminate strings of wide characters in a similar way to normal strings
using the char type.
</para>
<para>
An alternative to wide characters is multi-byte characters, which extend
normal char strings to cope with larger character sets. As the name suggests,
multi-byte characters use a different number of bytes to store different
character codes. For example codes 0-127 (i.e. the ASCII codes) often
use just one byte of memory, while other codes may use 2, 3 or even 4 bytes.
Multi-byte characters have the advantage that they can often be used in an
application with little change, since strings are still represented as arrays
of char values. However multi-byte strings are much easier to manipulate since
the character are all of the same size.
</para>
<para>
Applications typically use wide characters to represent character codes
internally, and multi-byte strings when saving the characters to a file.
The gdk_wcstombs() and gdk_mbstowcs() functions can be used to convert from
one representation to the other.
</para>
<para>
See the 'Extended Characters' section of the GNU C Library Reference Manual
for more detailed information on wide and multi-byte characters.
</para>
<!-- ##### FUNCTION gdk_wcstombs ##### -->
<para>
Converts a wide character string to a multi-byte string.
(The function name comes from an acronym of 'Wide Character String TO
Multi-Byte String').
</para>
@src: a wide character string.
@Returns: the multi-byte string corresponding to @src, or NULL if the
conversion failed. The returned string should be freed with g_free() when no
longer needed.
<!-- ##### FUNCTION gdk_mbstowcs ##### -->
<para>
Converts a multi-byte string to a wide character string.
(The function name comes from an acronym of 'Multi-Byte String TO Wide
Character String').
</para>
@dest: the space to place the converted wide character string into.
@src: the multi-byte string to convert, which must be null-terminated.
@dest_max: the maximum number of wide characters to place in @dest.
@Returns: the number of wide characters written into @dest, or -1 if the
conversion failed.

Some files were not shown because too many files have changed in this diff Show More