Compare commits

..

264 Commits

Author SHA1 Message Date
Owen Taylor cc87344c1f Really release 1.3.1
Fri Jul 14 20:30:25 2000  Owen Taylor  <otaylor@redhat.com>

        * Really release 1.3.1

	* gtk-config-2.0.in gtk-2.0.m4: Fix up to correspond to new
	include structure.
2000-07-15 01:07:42 +00:00
Owen Taylor 72fe20c132 Released 1.3.1
Fri Jul 14 18:40:39 2000  Owen Taylor  <otaylor@redhat.com>

	* Released 1.3.1
2000-07-14 22:41:09 +00:00
Owen Taylor 32784edafa include <string.h>.
Sun Jul  9 21:31:23 2000  Owen Taylor  <otaylor@redhat.com>

        * gdk/gdk-pixbuf.c gtk/gdk-pixbuf-loader.c gtk/gtktextview.c:
	include <string.h>.
2000-07-14 20:25:22 +00:00
Owen Taylor 0bcf86c032 use FALSE for size_only most of the time when calling
Fri Jul 14 16:21:26 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.c: use FALSE for size_only most
	of the time when calling gtk_text_layout_get_line_display()
	to avoid causing double reshapes when a redraw follows
	immediately after.

Tue Jul 11 11:13:40 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrange.c (gtk_range_default_[hv]slider_update): Invalidate
	appropriate region and gdk_window_process_updates() so trough
	updating doesn't lag behind the window being scrolled.

        * gdk/gdkgc.c: Make parent_class pointer static.

Sun Jul  9 21:31:23 2000  Owen Taylor  <otaylor@redhat.com>

        * gdk/gdk-pixbuf.c gtk/gdk-pixbuf-loader.c gtk/gtktextview.c:
	include <string.h>.

	* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): Fix
	cut-and-paste error in computing memory offset for 4 channels.
2000-07-14 20:24:14 +00:00
Owen Taylor ed7408e1ff Remove gtk_rc_append_default_pixmap_path(), since it wasn't adding an
Fri Jul 14 14:05:02 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_parse_pixmap_path_string): Remove
	gtk_rc_append_default_pixmap_path(), since it wasn't
	adding an interesting path and we don't have a meaningful
	default for this value.
2000-07-14 20:20:03 +00:00
Owen Taylor bb26890024 Move gtk-config to gtk-config-2.0 move gtk_.m4 to gtk-2.0.m4
Fri Jul 14 12:22:49 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in Makefile.am gtk-config.m4 gtk.m4: Move
	gtk-config to gtk-config-2.0 move gtk_.m4 to
	gtk-2.0.m4

	* Makefile.am gtk/Makefile.am gdk-pixbuf/Makefile.am
	gdk/Makefile.am demos/Makefile.am: Change
	library names to libgtk-1.3.la, etc, so that we
	can distinguish gtk-1.2 and gtk-2.0 on the linkline.

	* Makefile.am gtk/Makefile.am gdk-pixbuf/Makefile.am
	gdk/Makefile.am gdk/x11/Makfile.am
	Move include files into /usr/include/gtk-2.0,
	/usr/lib/gtk-2.0/include/

	* autogen.sh acconfig.h configure.in gtk/gtkmain.c
	gtk/gtkintl.h: Change package for gettext from
	gtk+ to gtk20. Put hack in autogen.sh to modify
	po/Makefile.in.in after gettextize to make this
	possible.

	* gtk+.spec: Some updates, not tested.

	* gdk-pixbuf/Makefile.am: Move loaders into
	$(libdir)/gtk-2.0/$(GTK_VERSION)/loaders.

	* gtk/Makefile.am gtk/gtkrc.c: Move RC file locations
	$(sysconfdir)/gtk-2.0 ~/.gtkrc-2.0; theme subdir
	to THEMENAME/gtk-2.0/. Move engine directory  to
	$(libdir)/gtk-2.0/$(GTK_VERSION)/engines.
2000-07-14 20:08:10 +00:00
Valek Frob 9332748007 Updated russian translation. 2000-07-14 07:48:58 +00:00
Kjartan Maraas e8afc471f9 Added gtkcolorseldialog.c Updated Norwegian translation.
2000-07-12  Kjartan Maraas  <kmaraas@gnome.org>

	* POTFILES.in: Added gtkcolorseldialog.c
	* no.po: Updated Norwegian translation.
2000-07-13 11:43:56 +00:00
Benedikt Roth 4b7246d9e9 de.po: Updated German translation
nl.po: Updated Dutch translation from Dennis Smit <synap@area101.penguin.nl>
2000-07-12 21:25:03 +00:00
Jorge Godoy 4e514e817e updated pt_BR translations 2000-07-12 16:36:48 +00:00
Tor Lillqvist 1f581a961e gdk/win32/gdkcolor-win32.c gdk/win32/gdkprivate-win32.h Changes to make
2000-07-12  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkcc-win32.c:
* gdk/win32/gdkcolor-win32.c
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
GDK object structure.
2000-07-11 22:39:34 +00:00
Tor Lillqvist 2823963703 Win32 changes, still doesn't build though.
2000-07-12  Tor Lillqvist  <tml@iki.fi>

Win32 changes, still doesn't build though.

* gdk/makefile.cygwin
* gdk/win32/makefile.cygwin
* gtk/makefile.cygwin: Updates.

* gdk/win32/gdkgc-win32.c (_gdk_win32_gc_new): Use the same
default values for fg and bg pixel as X11 does (0 and 1), not
black and white. Use PS_ENDCAP_FLAT and PS_JOIN_MITER by default.
Use 0 for pen width by default (treated as 1 anyway later, but for
apps that might check the value in the GdkGC).
(gdk_win32_hdc_get, gdk_win32_hdc_release): New functions, public
interface to gdk_gc_predraw and _postdraw.

* gdk/win32/gdkwin32.h
* gdk/gdk.def: Add gdk_win32_hdc_{get,release}.

* gdk/win32/gdkcolor-win32.c (gdk_colormap_alloc1): Remove
extraneous semicolon.

* gdk/win32/gdkdrawable-win32.c: Check also for pen_width == 0.

* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
not the Win32 bitspixel value.
2000-07-11 21:42:15 +00:00
Tim Janik 5fc106081f scratched notion of completely outdated email adress:
Tue Jul 11 20:59:35 2000  Tim Janik  <timj@gtk.org>

        * docs/tutorial/gtk_tut_12.es.sgml (name):
        * docs/tutorial/gtk_tut_it.sgml (name):
        * docs/tutorial/gtk_tut_fr.sgml (name):
        * docs/tutorial/gtk_tut.sgml (name): scratched notion of completely
        outdated email adress: s/timj@psynet.net/timj@gtk.org/.
2000-07-11 19:34:44 +00:00
BST 2000 Tony Gale 30973dd7a2 Cleanup indenting and various small changes.
Tue Jul 11 13:10:57 BST 2000  Tony Gale <gale@gtk.org>

        * docs/faq/gtk-faq.sgml: Cleanup indenting and various
          small changes.
2000-07-11 12:13:53 +00:00
Tim Janik fc5ee9256d eek, i've never seen a bug here, never been here and never fixed anything
Tue Jul 11 08:04:58 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtktree.c (gtk_real_tree_select_child): eek, i've never seen
        a bug here, never been here and never fixed anything ;(
        (don't segfault if tree->root_tree is NULL, which happens prior
        to widget realization, but puke instead).
2000-07-11 06:08:24 +00:00
Tim Janik 64911ddc44 add xthickness and ythickness to GtkRcStyle and add the necessary tokens.
Tue Jul 11 06:38:42 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtkrc.h: add xthickness and ythickness to GtkRcStyle and
        add the necessary tokens.

        * gtk/gtkrc.c (gtk_rc_style_init): properly initiality the rc style.
        (gtk_rc_style_to_style): copy thicknesses.
        (gtk_rc_init_style): apply thicknesses.
        (gtk_rc_parse_style): parse xthickness and ythickness.

        * gdk/x11/gdkdnd-x11.c: silence compiler in switch() statements.

        * gdk/x11/gdkwindow-x11.c (gdk_window_foreign_new):
        (gdk_window_new):
        (_gdk_windowing_window_init):
        * gdk/x11/gdkpixmap-x11.c (gdk_pixmap_foreign_new):
        (gdk_pixmap_create_from_data):
        (gdk_bitmap_create_from_data):
        (gdk_pixmap_new):
        * gdk/x11/gdkimage-x11.c (gdk_image_get):
        (gdk_image_new):
        * gdk/x11/gdkgc-x11.c (_gdk_x11_gc_new):
        * gdk/x11/gdkdnd-x11.c (gdk_drag_context_new):
        * gdk/x11/gdkcolor-x11.c (gdkx_colormap_get):
        (gdk_colormap_get_system):
        (gdk_colormap_new):
        * gdk/gdkwindow.c (gdk_window_init):
        * gtk/gtkstyle.c (gtk_style_new):
        * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done):
        * gdk/gdkpixmap.c (gdk_pixmap_init):
        * gtk/gtkrc.c (gtk_rc_style_new):
        use g_object_new() instead of g_type_create_instance() which
        is a private function for fundamental type implementations.

Tue Jul 11 06:20:14 2000  Tim Janik  <timj@gtk.org>

        * io-gif.c (gdk_pixbuf__gif_image_load_animation):
        * gdk-pixbuf-data.c (gdk_pixbuf_new_from_data):
        * gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file):
        use g_object_new() instead of g_type_create_instance() which
        is a private function for fundamental type implementations.
2000-07-11 04:46:11 +00:00
Jesus Bravo Alvarez 1e72328181 Updated Galician translation 2000-07-10 21:22:37 +00:00
Owen Taylor 06df244dd5 Add -Wall for gcc.
Sun Jul  9 18:15:58 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in (ACLOCAL): Add -Wall for gcc.

	* src/pixbuf-render.c (pixbuf_render): Fix problem
	using gdk_rectangle_intersect() from GTK+-1.2.

	* src/pixbuf-render.c src/pixbuf-draw.c: Remove
	direct access to pixbuf internals.
2000-07-09 22:18:21 +00:00
George Lebl c70fd21648 s/Liebl/Lebl/ :) 2000-07-07 18:54:12 +00:00
Owen Taylor 359307231a Add check for db2html
Thu Jul  6 16:12:14 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in: Add check for db2html

Thu Jul  6 14:53:05 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktypeutils.c (gtk_type_init): Add a temporary
	hack to set glib_debug_objects based on gtk_debug_flags.

Thu Jul  6 14:12:13 2000  Owen Taylor  <otaylor@redhat.com>

	* INSTALL.in: Update the Prerequisites section.

	* Makefile.am demos/Makefile.am docs/Makefile.am
	docs/tutorial/Makefile.am gdk/x11/Makefile.am
	gdk/linux-fb/Makefile.am: Dist fixes
2000-07-06 21:09:25 +00:00
Owen Taylor d375c92f6c 10,000 foot view of 1.3.1 changes.
Thu Jul  6 12:26:03 2000  Owen Taylor  <otaylor@redhat.com>

	* NEWS: 10,000 foot view of 1.3.1 changes.
2000-07-06 16:26:39 +00:00
Owen Taylor 0611f06b5a Patch from George Liebl to add a GdkGrabStatus enumeration to use as a
Thu Jul  6 11:54:03 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.h gdk/gdktypes.h gdk/linux-fb/gdkmain-fb.c
	gdk/nanox/gdkmain-nanox.c gdk/win32/gdkevents-win32.c
	gdk/win32/gdkinput-win32.c gdk/win32/gdkwin32.h
	gdk/x11/gdkmain-x11.c:

	Patch from George Liebl to add a GdkGrabStatus enumeration to use
	as a return value of gdk_*_grab(). Previously, we just
	returned the X11 values directly.
2000-07-06 16:20:45 +00:00
Owen Taylor f60e216527 Patch from George Liebl to install all the headers in the right place.
Thu Jul  6 11:27:44 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/Makefile.am: Patch from George Liebl to
	install all the headers in the right place.
2000-07-06 15:51:10 +00:00
Owen Taylor 166ba89af8 Use GTK+ version soname scheme for gdk-pixbuf.
Thu Jul  6 11:49:47 2000  Owen Taylor  <otaylor@redhat.com>

	* Makefile.am (libgdk_pixbuf_la_LDFLAGS): Use GTK+ version
	soname scheme for gdk-pixbuf.
2000-07-06 15:50:54 +00:00
BST 2000 Tony Gale f3d8cf9252 Add remaining sections. Completes initial conversion to DocBook.
Tue Jul  4 13:13:01 BST 2000  Tony Gale <gale@gtk.org>

	* docs/faq/gtk-faq.sgml: Add remaining sections. Completes
	  initial conversion to DocBook.
2000-07-04 12:14:41 +00:00
Valek Frob f3f6fa88a5 Updated russian translation. 2000-07-04 10:04:18 +00:00
Tor Lillqvist 186cc0624b Improve a bit.
2000-07-04  Tor Lillqvist  <tml@iki.fi>

* README.win32: Improve a bit.
2000-07-04 06:19:29 +00:00
Tor Lillqvist a1260f864d Handle also WM_SYSCHAR, and other changes to get handling of Alt+nnn or
2000-07-04  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c (gdk_event_translate): Handle also
WM_SYSCHAR, and other changes to get handling of Alt+nnn or
Alt+0nnn on the numpad (used to enter characters by numeric code
from current DOS or ANSI codepage) working correctly, as in other
Windows apps.

* gdk/win32/gdkcursor-win32.c (gdk_cursor_new_from_pixmap): Use
same argument validity tests as in X11 version.
(_gdk_cursor_destroy): Use DestroyCursor, not DestroyIcon.

* gdk/win32/gdkwin32.h: Add also WM_MOUSEWHEEL and CopyCursor
definitions in case missing from headers.

* gdk/win32/gdkwindow-win32.c (gdk_win32_window_destroy): ALso
destroy the window-specific cursor.
(RegisterGdkClass): Use the global gdk_ProgInstance instead of
calling GetModuleHandle(NULL).
(gdk_window_set_cursor): Reworked to always copy the passed cursor
with CopyCursor before setting it. It is OK for the caller to
destroy the GdkCursor (and thus also the Windows cursor) after
calling this function. Also, destroy any previous cursor for this
window.

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

* gdk/win32/gdkevents-win32.c (gdk_WindowProc): The local "event"
variable should be of type GdkEventPrivate.
2000-07-04 06:12:54 +00:00
Owen Taylor ceac1c16fd font charset is iso8859-1, not iso-8859-1.
Mon Jul  3 17:54:49 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale):
	font charset is iso8859-1, not iso-8859-1.
2000-07-03 21:56:27 +00:00
Owen Taylor 50b1a5a9dc Use g_get_charset() instead of g_get_codeset().
Mon Jul  3 17:08:14 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale):
	Use g_get_charset() instead of g_get_codeset().

	* gtk/gtkframe.[ch] gtkframe.h gtk/gtktextmark.h:
	Comment out some strdup'ing functions to keep timj
	happy until we finish fighting this out.
2000-07-03 21:21:25 +00:00
Owen Taylor 01212ce170 Ignore calls with <= width or height.
Mon Jul  3 14:24:16 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_draw): Ignore calls with
	<= width or height.

	* gtk/gtktable.c (gtk_table_attach): Fix missed merge
	from 1.2 for parent/child states.

	* gdk/gdkgc.c (gdk_gc_set_rgb_fg/bg_color): Fix a couple
	of typos.

	* gdk/gdkevents.[ch]: Remove press/xtilt/ytilt fields of
	event structures, replace with a generic axes field. Replace
	deviceid/source with GdkDevice *device.

	* gdk/gdkevents.[ch] (gdk_event_get_axis): Add function
	to extract particular axis use value from event. (Also
	can be used for normal X/Y.)

	* gdk/gdkinput.h gdk/x11/gdkinput*: Major revision;
	allow for arbitrary number of axes, namespace everything
	as gdk_device_*. Replace guint32 deviceid with GdkDevice *
	everywhere.

	* gdk/x11/{gdkmain-x11.c,gdkevent-x11.c,gdkinput*}:
	Get rid of the gdk_input_vtable setup if favor of simply
	defining the functions in gdkinput-none/gxi/xfree.c in
	a similar fashion to the way that the port structure is
	done.

	* gtk/gtkdnd.c: Fix fields of synthesized button press event
	for new event structures.

	* gtk/gtkinputdialog.c gtk/testinput.c: Revise to match
	new device interfaces.
2000-07-03 19:00:23 +00:00
Owen Taylor 0c2240ba37 Add a 'text' argument to set the initial text.
Sun Jul  2 18:19:50 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.[ch] (gtk_widget_create_pango_layout): Add a 'text' argument to
	set the initial text.

	* gtk/gtkaccellabel.c gtk/gtkcalendar.c gtk/gtkclist.c
	gtk/gtkentry.c gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c
	gtk/gtkprogressbar.c gtk/gtkscale.c gtk/gtkvruler.c
	gtk/gtkvscale.c: Adapt to new argument of create_pango_layout().

	* gtk/gtkclist.c (_gtk_clist_create_cell_layout): Use new
	pango_layout_set_font_description to simplify.
2000-07-02 22:30:54 +00:00
Owen Taylor 4e09f86e48 *** empty log message *** 2000-07-02 22:09:13 +00:00
Owen Taylor bf87b7c628 Use pango_layout_get_pixel_extents() to remove a large number of '/
Sun Jul  2 17:06:40 2000  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkcalendar.c gtk/gtkclist.c gtk/gtkctree.c gtk/gtkhscale.c
	gtk/gtkprogressbar.c gtk/gtkscale.c gtk/gtkvscale.c gtk/gtkaccellabel.c: Use
	pango_layout_get_pixel_extents() to remove a large number of '/ PANGO_SCALE'.

	* gtk/gtk[hv]ruler.c gtk/gtklabel.c: replace some / PANGO_SCALE with
	PANGO_PIXELS() macro.
2000-07-02 21:32:56 +00:00
Owen Taylor b02ebc65e4 Call gtk_widget_size_request() on reparented child, if one. Otherwise,
Sun Jul  2 14:37:58 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkoptionmenu.c (gtk_option_menu_size_request): Call
	gtk_widget_size_request() on reparented child, if one. Otherwise,
	queue_resize() on the child never results in it getting size-requested
	at all.

	* gtk/testgtk.c (build_option_menu): Remove silly radio-menu-items
	in option menus, so that (with luck) people won't copy it into
	their apps in the future.

	* gtk/gtkoptionmenu.c: Connect ::size_request on the menu
	to gtk_option_menu_calc_size. This isn't perfect, but should fix
	a lot of problems with changing the size of the menu's menu
	items after adding it to the option menu.

	* gtk/gtktexttag.c: Include gtkmain.h for gtk_get_default_language().

	* gtk/gtkwidget.[ch]: Add a ::direction_changed that triggers when
	the text direction for a widget changes.

	* gtk/gtk{entry.c,label.[ch],textview.[ch]} gtk/testgtk.c: Use
	::direction_changed to get rid of various hacks.
2000-07-02 18:41:29 +00:00
Owen Taylor d2058c2875 Move Changes-1.4.txt to the appropriate name.
Sun Jul  2 13:19:12 2000  Owen Taylor  <otaylor@redhat.com>

	* docs/Changes-2.0.txt: Move Changes-1.4.txt to the appropriate
	name.
2000-07-02 17:19:45 +00:00
Owen Taylor fe7fb8c62f Add a is_foreign flag to the structure. Do not call XFreePixmap on pixmaps
Sun Jul  2 13:06:26 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkpixmap-x11.[ch] Changes-1.4.txt: Add a is_foreign
	flag to the structure. Do not call XFreePixmap on pixmaps created
	by gdk_pixmap_foreign_new().
2000-07-02 17:16:54 +00:00
Owen Taylor 4f1ccca594 Add gdk_rgb_find_color() to get a pixel value using GdkRGB functionality
Sun Jul  2 12:45:50 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkrgb.[ch]: Add gdk_rgb_find_color() to get a pixel
	value using GdkRGB functionality given GdkColormap and GdkColor.
	(name not final, waiting for inspiration.)

	* gdk/gdkgc.[ch] (gdk_gc_set_rgb_fg/bg_color): New functions to
	set the foreground/background of a GC using the GC's colormap
	and GdkRGB. (name not final, waiting for inspiration.)

	* gdk/gdkcompat.h gdk/gdkrgb.c (gdk_rgb_get_colormap): Rename from
	gdk_rgb_get_cmap(), put #define in gdkcompat.h.

	* gtk/gtkwidget.[ch] gtkcompat.h: Make visuals for
	gtk_widget_get_visual(), gtk_widget_get_default_visual, etc,
	purely a function of the corresponding colormap. Make
	gtk_widget_set_visual(), etc, noop macros in gtkcompat.h.

	* gdk/gdkpixmap.c gdk/x11/gdkpixmap-c11.c: Rewrite
	gdk_pixbuf_*create_from_xpm_* in terms of
	gdk_pixbuf_new_from_xpm_data(), move into platform independent
	code.

	* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): Take
	advantage of the new draw_rgb_32_image_dithalign.

	* gdk/gdkrgb.c (gdk_draw_rgb_32_image_dithalign): Added.

	* gtk/gtkgc.c (gtk_gc_new): Set the appropriate colormap
	on each created GC.

	* gdk/gdkgc.[ch]: Add gdk_gc_get/set_colormap.

	* gdk/gdkgc.[ch]: Add a colormap field to the GdkGC structure
	which we initialize from the drawable when the GC is created,
	if the drawable has a colormap.

	* gdk/x11/gdkgc-x11.c: include string.h for memset.

	* gdk/x11/gdkinput-x11.c: include string.h for strlen, etc.

	* gtk/gtklayout.[ch]: Remove unsed configure serial member.
2000-07-02 17:03:21 +00:00
Owen Taylor 7164c0acb1 When actually returning expose events, make sure to set the count field
Sat Jul  1 16:28:32 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkevents-x11.c (gdk_event_translate): When
	actually returning expose events, make sure to set
	the count field properly.

	* gdk/x11/gdkgc-x11.c (gdk_x11_gc_values_to_xvalues): Fix
	accidentally reintroced bug which always cleared
	the graphics_exposures value.
2000-07-01 21:15:05 +00:00
BST 2000 Tony Gale a893dba084 Change DocBook layout slightly
Wed Jun 28 18:03:09 BST 2000  Tony Gale <gale@gtk.org>

        * docs/faq/gtk-faq.sgml: Change DocBook layout slightly
2000-06-28 17:06:30 +00:00
BST 2000 Tony Gale 09e06dffde Finish Section 6. Add Section 7.
Wed Jun 28 17:49:05 BST 2000  Tony Gale <gale@gtk.org>

        * docs/faq/gtk-faq.sgml: Finish Section 6. Add Section 7.
2000-06-28 16:52:06 +00:00
BST 2000 Tony Gale edacfcb766 Start of Section 6.
Wed Jun 28 13:31:55 BST 2000  Tony Gale <gale@gtk.org>

	* docs/faq/gtk-faq.sgml: Start of Section 6.
2000-06-28 12:34:56 +00:00
Owen Taylor c5c75ece06 Put 1.3.1 in warning message, not 1.3.0.
Mon Jun 26 19:37:04 2000  Owen Taylor  <otaylor@redhat.com>

        * configure.in: Put 1.3.1 in warning message, not 1.3.0.

        (Fixes problem with drawing childless frames. Pointed out
	by and a first patch from Anders)

	* gtk/gtkframe.c (gtk_frame_compute_child_allocation): Always
	compute a child_allocation, even if we don't have a child.

	* gtk/gtkaspectframe.c (gtk_aspect_frame_compute_child_allocation):
	Always chain to the parent's impl, even if we don't have a child.
2000-06-26 23:44:19 +00:00
Owen Taylor 2bb4bcff5d If possible, create only a single shm segment and use multiple parts of it
Mon Jun 26 18:53:31 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkrgb.c: If possible, create only a single shm segment and
	use multiple parts of it instead of creating a bunch of separate
	segments, since the maximum number of segments per system is not
	large. (This might be worth backporting to GTK+-1.2.x if we make a
	new release )

	* gdk/gdkrgb.c: Localize a bunch of variables into the GdkRgbInfo
	structure in preparation for per-colormap GdkRGB.

	* gdk/x11/gdkimage-x11.c (gdk_image_new): Don't set gdk_use_xshm
	to False when we get EINVAL from shmget so that the caller of
	gdk_image_new can retry with a smaller segment size.
2000-06-26 22:55:42 +00:00
Havoc Pennington d872631bae file dialog_default.png was initially added on branch gtk-hp-patches. 2000-06-26 20:28:05 +00:00
BST 2000 Tony Gale 68810d1794 Add Sections 4 & 5.
Mon Jun 26 13:01:16 BST 2000  Tony Gale <gale@gtk.org>

        * docs/faq/gtk-faq.sgml: Add Sections 4 & 5.
2000-06-26 12:05:53 +00:00
Tim Janik af35c6542c remove gtkfeatures. 2000-06-24 22:32:17 +00:00
Tim Janik 100c9594d6 make the current version number 1.3.1 (binary age 0, interface age 0).
Fri Jun 23 17:54:23 2000  Tim Janik  <timj@gtk.org>

        * configure.in: make the current version number 1.3.1 (binary age 0,
        interface age 0).

        * gtkfeatures.h, gtkfeatures.h.in: dejavue, get rid of these *again*,
        gtkcompat.h is all we want.

        * gtk/gtktypeutils.[hc]: define most of the primitive types in terms of
        GLib primitive types. fixed g_type_register_fundamental() argument
        ordering.

        * gtk-config.in (lib_gtk): add -lgdk_pixbuf so third party code
        compiles.

        * gdk-pixbuf-loader.[hc]: get rid of unistd.h include.
        object code cleanup, comment trigraph fixes, etc...
2000-06-24 22:32:05 +00:00
Andraz Tori 3ef478ecd7 Updated Slovenian translations 2000-06-24 08:03:39 +00:00
Havoc Pennington 797642a563 Use anonymous mark instead of making up a bogus name for first_para_mark
2000-06-23  Havoc Pennington  <hp@redhat.com>

* gtk/gtktextview.c (gtk_text_view_set_buffer): Use anonymous mark
instead of making up a bogus name for first_para_mark

* gtk/gtkstatusbar.h, gtk/gtkstatusbar.c: Allow
0 as a context ID
2000-06-23 19:41:56 +00:00
Havoc Pennington a626ad31e8 - A number of types in GDK have become subclasses of GObject. For the
most part, this should not break anyone's code. However, it's now
    possible/encouraged to use g_object_ref()/g_object_unref() and other
      GObject features with these GDK types. The converted types are:
        GdkWindow, GdkDrawable, GdkPixmap, GdkImage, GdkGC, GdkDragContext,
	  GdkColormap

	  - All drawables including pixmaps used to have a type tag, the
	    GdkWindowType enumeration, which included GDK_WINDOW_PIXMAP.
	      GdkWindowType is now a property of GdkWindow _only_, and there is
	        no GDK_WINDOW_PIXMAP. You can use the GDK_IS_PIXMAP() macro
to see
  if you have a pixmap, if you need to know that.

  - GtkStyle and GtkRcStyle are now subclasses of GObject as well.
    This breaks theme engines quite badly, but shouldn't affect most
      other code.

      - xthickness/ythickness have moved from GtkStyleClass to GtkStyle
        (from class to instance). This gives themes a bit more flexibility
	  and is generally more of the Right Thing. You can trivially fix
	    your code with s/style->klass->xthickness/style->xthickness/g and
	      same for ythickness.
2000-06-23 18:41:16 +00:00
Christopher R. Gabriel eef2692ad6 updated italian translation
2000-06-23  Christopher R. Gabriel  <cgabriel@mixadlive.com>

        * it.po: updated italian translation
2000-06-23 03:03:50 +00:00
BST 2000 Tony Gale 8aeed4867c Change filename. Add Section 3.
Thu Jun 22 17:43:51 BST 2000  Tony Gale <gale@gtk.org>

        * docs/faq/gtk-faq.sgml: Change filename. Add Section 3.
2000-06-22 16:46:25 +00:00
Havoc Pennington 3a422541e3 Convert GdkPixbuf to GObject, leaving it opaque (i.e. derivation is not
2000-06-21  Havoc Pennington  <hp@pobox.com>

* gdk-pixbuf.c: Convert GdkPixbuf to GObject, leaving it opaque
(i.e. derivation is not allowed, and there are no virtual methods
anyway).
(gdk_pixbuf_preinit): Call g_type_init() here.
(gdk_pixbuf_init): Add a user-friendly init function, for users
of standalone gdk-pixbuf

* gdk-pixbuf-animation.c: Convert to GObject, in the same
way GdkPixbufAnimation was done.

* gdk-pixbuf.h: Remove gdk_pixbuf_set_unref_handler() and
gdk_pixbuf_finalize() from API, since these are broken and don't
make sense with new GObject stuff.

2000-06-21  Havoc Pennington  <hp@pobox.com>

* gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): Fix bug where
we didn't check window->bg_pixmap != GDK_NO_BG.

* gtk/gdk-pixbuf-loader.c: Change to reflect GObject-ification of
gdk-pixbuf
2000-06-22 15:36:12 +00:00
BST 2000 Tony Gale 7b6c38f544 Move file to here. TODO: Update Makfile.am
Thu Jun 22 14:02:19 BST 2000  Tony Gale <gale@gtk.org>

        * docs/faq/gtk-faq.sgm: Move file to here.
          TODO: Update Makfile.am
2000-06-22 13:05:24 +00:00
BST 2000 Tony Gale c4018b0221 Add Section 2
Thu Jun 22 13:41:09 BST 2000  Tony Gale <gale@gtk.org>

        * docs/gtk-faq.sgm: Add Section 2
2000-06-22 12:43:24 +00:00
BST 2000 Tony Gale 527b872757 New file. Start of DocBook version of the FAQ.
Thu Jun 22 08:43:45 BST 2000  Tony Gale <gale@gtk.org>

        * docs/gtk-faq.sgm: New file. Start of DocBook
          version of the FAQ.
2000-06-22 07:46:38 +00:00
Owen Taylor cef3331e64 Define version numbers for GDK_PIXBUF_*, as they get substituted into a
Wed Jun 21 23:04:17 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in (GDK_PIXBUF_MAJOR): Define version
	numbers for GDK_PIXBUF_*, as they get substituted
	into a header file. Need to consider versioning
	for gdk-pixbuf more carefully later.
2000-06-22 03:06:30 +00:00
Raja R Harinath 30bd71e2ae Work with srcdir != builddir.
* demos/testanimation.c: Don't include "gdk-pixbuf.h".  Use
<gtk/gdk-pixbuf-loader.h>, not "gtk-pixbuf/gdk-pixbuf-loader.h".
* demos/testpixbuf.c: Likewise.
* demos/testpixbuf-scale.c: Don't include "gdk-pixbuf.h".
* demos/testpixbuf-drawable.c: Don't include "gdk-pixbuf.h".  Use
<gdk/x11/gdkx.h>.
* demos/pixbuf-demo.c: Use <gtk/gtk.h> not "gtk.h".  Don't include
"gdk-pixbuf.h".
* demos/Makefile.am (INCLUDES): Remove unneeded directories.
2000-06-22 00:05:44 +00:00
Owen Taylor 8a7664a1ae Change 1.4 version numbers to 2.0.
Wed Jun 21 19:45:02 2000  Owen Taylor  <otaylor@redhat.com>

	* TODO.xml: Change 1.4 version numbers to 2.0.
2000-06-21 23:45:41 +00:00
Owen Taylor ba55612d48 Indentation fixups to GTK+ standard.
Wed Jun 21 19:29:08 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkpixbuf-render.c gdk/gdkpixbuf-drawable.c: Indentation
	fixups to GTK+ standard.
2000-06-21 23:29:51 +00:00
Owen Taylor 11056f564b Welcome aboard, gdk-pixbuf.
Wed Jun 21 16:38:13 2000  Owen Taylor  <otaylor@redhat.com>

        * gdk-pixbuf/* docs/reference/gdk-pixbuf/*: Welcome aboard,
	gdk-pixbuf.

	* gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init):
	fixups for GObject.

	* gdk/Makefile.am gdk/gdkpixbuf-render.[ch] gdk/gdkpixbuf.[ch]: Bits of
	gdk-pixbuf with GDK dependencies moved into GDK.

	* gtk/Makefile.am gtk/gdk-pixbuf-loader.[ch]: Temporarily
	move gdk-pixbuf-loader here until GObject has signals.

	* demos/: New directory of demos. Move demos from
	gdk-pixbuf here.

	* demos/pixbuf-init.c: Small bit of code to check for
	loaders in ../gdk-pixbuf/.libs/gdk-pixbuf, and if found,
	set GDK_PIXBUF_MODULEDIR appropriately.

	* gdk/gdkcompat.h: Remove GDK_DRAWABLE_PIXMAP compat
	define which no longer makes sense.
2000-06-21 20:47:22 +00:00
Havoc Pennington 443e8c395e Use gtk_get_default_language
2000-06-21  Havoc Pennington  <hp@redhat.com>

* gtk/gtkwidget.c (gtk_widget_create_pango_context): Use
gtk_get_default_language

* gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language):
new function to get the default language

* gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c:
s/gtk_text_view_style_values/gtk_text_style_values/

* gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h:
Add a "language" field to tags.

(gtk_text_tag_set_arg): Fix bug in setting
"bg_full_height_set" tag.
2000-06-21 20:41:15 +00:00
Owen Taylor f534125777 Revert accidental changes from Federico's last commit.
2000-06-21  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixbuf/testpixbuf-scale.c: Revert accidental changes
	from Federico's last commit.
2000-06-21 19:48:47 +00:00
Havoc Pennington ee0895169d Use gunichar instead of gint when appropriate in the interfaces
2000-06-21  Havoc Pennington  <hp@redhat.com>

* gtk/gtktextiter.h: Use gunichar instead of gint when appropriate
in the interfaces

* gtk/gtktexttypes.c: Remove UTF functions, use glib
stuff instead when possible.

* gtk/gtktexttypes.h: Delete some unused constants

* gtktextbtree.c, gtktextiter.c, gtktextsegment.c, gtktextview.c,
testtextbuffer.c: use glib instead of custom unicode routines
2000-06-21 18:51:36 +00:00
Owen Taylor 39440b43cd Removed mistakenly added generated sgml
Wed Jun 21 12:50:58 2000  Owen Taylor  <otaylor@redhat.com>

	* docs/es/: Removed mistakenly added generated sgml

	* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
	Remove outdated info files.

	* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
	Moved tutorial files into subdir

	* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
	subdir.

	* docs/man/gtk_button.pod: Remove. (contents will be
	integrated into gtk-reference button page.)

	* configure.in docs/Makefile.am docs/tutorial/Makefile.am
	docs/faq/Makefile.am: Adjust for new organization
2000-06-21 18:18:00 +00:00
Christopher Blizzard e01a43253a use $(mkinstalldirs) not $(MKINSTALLDIRS)
2000-06-21 Christopher Blizzard  <blizzard@redhat.com>

        * gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
        not $(MKINSTALLDIRS)
2000-06-21 16:44:40 +00:00
Owen Taylor c319839d8e Finish the job Elliot started of removing font setting test for text
Wed Jun 21 12:24:28 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (create_text): Finish the job Elliot started
	of removing font setting test for text widget. (Since text widget
	and GdkFont are not deprecated, and cause portability problems.)
2000-06-21 16:26:50 +00:00
Owen Taylor dd46dfaae3 .cvsignore additions 2000-06-21 16:21:15 +00:00
Owen Taylor 2a98bc6a31 Remove use of libunicode in favor of new GLib functions.
Wed Jun 21 11:41:43 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c gtk/gtkimcontextsimple.c gtk/gtklabel.c
	gtk/gtktexttypes.c gtk/testtext.c modules/linux-fb/basic.c:
	Remove use of libunicode in favor of new GLib functions.

	* gtk/gtkcolorsel.c: Remove conditional includes for FB, win32,
	nano-x, framebuffer. The X11 include is just a hack until we get
	the necessary functions in gdkcolor.h, so there is no reason to
	add other includes of platforms.

	* gtk/gtkwindow.c (gtk_window_compute_default_size): Revert
	window bigger than the screen change.

        * gtk/testgtk.c: Revert some random changes from Elliot
	that had no particular point and were causing testgtkrc
	not to function correctly.

	* gdk/gdkregion-generic.h: Revert change from Elliot. Just
	because GdkSegment and GdkRegionBox have the same fields,
	it doesn't mean that 'typedef GdkSegment GdkRegionBox'
	results in clearer code.

	* gdk/x11/gdkinput-x11.c (gdk_input_common_select_events,
	gdk_input_translate_coordinates): Fix missed GdkObjectification
2000-06-21 16:19:59 +00:00
Jing-Jong Shyue 8a01e98fdf Triditional Chinese PO File 2000/06/21 2000-06-21 07:06:01 +00:00
Elliot Lee 2a1b3edd18 Fix conditionality to work the "right" way. Missed commits from previous.
2000-06-18  Elliot Lee  <sopwith@redhat.com>

* gdk/Makefile.am, gdk/*/Makefile.am: Fix conditionality to work the "right" way.
* gtk/gtk{plug,socket}.h: Missed commits from previous.
2000-06-20 22:24:49 +00:00
Havoc Pennington df4fc36721 Make this compile without framebuffer enabled
2000-06-20  Havoc Pennington  <hp@redhat.com>

* modules/linux-fb/Makefile.am: Make this compile
without framebuffer enabled

* gdk/linux-fb/Makefile.am: Add conditional to not build
framebuffer unless specified in configure

* gdk/gdkdraw.c (gdk_draw_drawable): Fix bug where I was getting
the size of the target instead of source if -1 was passed for
width/height

* gdk/x11/gdkgeometry-x11.c (gdk_window_compute_position): Fix
width/height confusion.

2000-06-19  Havoc Pennington  <hp@redhat.com>

* gdk/x11/gdkx.h (GDK_WINDOW_XWINDOW): change this to be
GDK_DRAWABLE_XID. In the future, we probably want to make it
faster with G_DISABLE_CHECKS turned on.

2000-06-14  Havoc Pennington  <hp@redhat.com>

        * gdk/Makefile.am: add gdkpixmap.c

	* gdk/gdk.c: s/gdk_window_init/_gdk_windowing_window_init/
	s/gdk_image_init/_gdk_windowing_image_init

	* gdk/gdkcolor.c: make ref/unref compat wrappers for GObject
	ref/unref

	* gdk/gdkcolor.h: make GdkColormap a GObject subclass

	* gdk/gdkcompat.h: remove GdkWindowType compat, since
	GdkWindowType is now non-deprecated;
	change gdk_window_get_type() compat to be
	gdk_window_get_window_type().

	* gdk/gdkdnd.h: make GdkDragContext a GObject.

	* gdk/gdkdraw.c, gdk/gdkdraw.h: Convert GdkDrawable to a pure
	virtual GObject. Make all functions call into the vtable.
	Move gdk_image_put() guts in here. Remove GdkDrawableType
	and gdk_drawable_get_type(), these are now GdkWindow-specific.
	draw_image, get_depth, get_size, set_colormap, get_colormap,
	get_visual added to the vtable.

	* gdk/gdkgc.h, gdk/gdkgc.c: Convert GdkGC to a pure virtual
	GObject. Virtualize everything.
	(gdk_gc_new_with_values): remove check for destroyed window,
	because now GdkWindow::create_gc will check this.
	(gdk_gc_set_values): New function to set GC values, this
	was already implemented but wasn't in the header

	* gdk/gdkimage.h, gdk/gdkimage.c: Convert GdkImage to a GObject.

	* gdk/gdkinternals.h: Remove _gdk_window_alloc(), remove
	_gdk_window_draw_image(), remove _gdk_windowing_window_class,
	remove _gdk_window_class; add _gdk_window_impl_get_type() and
	_gdk_pixmap_impl_get_type(). Rename gdk_window_init to
	_gdk_windowing_window_init, rename gdk_image_init to
	_gdk_windowing_image_init.

	* gdk/gdkpango.c: Reflect GObject-ification of PangoContext.
	(gdk_draw_layout): Remove check for destroyed window,
	because all the drawable methods already check it.

	* gdk/gdkpixmap.h, gdk/gdkpixmap.c: Convert GdkPixmap to GObject.
	Add gdkpixmap.c which contains implementation of GdkDrawable
	virtual table (by chaining to a platform-specific implementation
	object).

	* gdk/gdkprivate.h: Remove GDK_IS_WINDOW, GDK_IS_PIXMAP,
	GDK_DRAWABLE_DESTROYED. Add GDK_WINDOW_DESTROYED. Replace
	GDK_DRAWABLE_TYPE with GDK_WINDOW_TYPE. Remove GdkDrawablePrivate,
	GdkWindowPrivate, GdkImageClass, GdkImagePrivate, GdkGCPrivate,
	GdkColormapPrivate.

	* gdk/gdktypes.h: #include <glib-object.h>

	* gdk/gdkwindow.h, gdk/gdkwindow.c: Convert GdkWindow to GObject.
	Move most functionality to platform-specific implementation
	object. GdkWindow itself now handles the backing store, then
	chains to the platform-specific implementation.
	(gdk_window_get_window_type): return GdkWindowType of the window.
	(gdk_window_peek_children): New routine, returns the children of
	a GdkWindow
	(gdk_window_get_children): Was in X11-specific code and did
	XQueryTree. Changed to simply return a copy of window->children;
	so it can go in cross-platform code.

	* gdk/x11/Makefile.am: fix broken MKINSTALLDIRS path

	* gdk/x11/gdkcolor-x11.c: implement X-specific parts of
	GdkColormap; just changed to use the new private data instead
	of casting to GdkColormapPrivate.

	* gdk/x11/gdkcursor-x11.c: added a couple typechecks to
	gdk_cursor_new().

	* gdk/x11/gdkdnd-x11.c: Change the way we access private fields
	(private data member in the GObject).
	(xdnd_manager_source_filter): Function had broken
	error handling, fix it (use gdk_error_trap_push).

	* gdk/x11/gdkdrawable-x11.c: This file now implements
	a base class for GdkWindowImplX11/GdkPixmapImplX11. This
	base class is purely for the convenience of the X port,
	and not part of the interface to cross-platform GDK.

	* gdk/x11/gdkevents-x11.c: Reflect various renamings.

	* gdk/x11/gdkgc-x11.c: Implement a subclass of GdkGC that's
	specific to X, and returned by the create_gc virtual method
	of GdkDrawableImplX11.
	(gdk_x11_gc_set_dashes): Change this to take an array of gint8
	rather than gchar, this was also changed in the GdkGC vtable.
	(gdk_x11_gc_values_to_xvalues): If GdkGCValues is NULL, or the
	mask is 0, return immediately, instead of checking every flag.
	This is faster, and keeps us from segfaulting if values is NULL
	and the mask contains some nonzero flags.

	* gdk/x11/gdkgeometry-x11.c: deal with all the rearranging of
	GdkWindow.

	* gdk/x11/gdkglobals-x11.c: change type of grab window, since
	GdkWindowPrivate is gone.

	* gdk/x11/gdkim-x11.c: rename things that got renamed.

	* gdk/x11/gdkimage-x11.c: implement in terms of GObject, and
	remove the image_put stuff that got transferred to GdkDrawable.

	* gdk/x11/gdkinput.c: renamings

	* gdk/x11/gdkmain-x11.c: #include <pango/pangox.h>

	* gdk/x11/gdkpixmap-x11.c: GObject conversion

	* gdk/x11/gdkprivate-x11.h: indentation fixes

	* gdk/x11/gdkproperty-x11.c: renamings

	* gdk/x11/gdkselection-x11.c: renamings

	* gdk/x11/gdkwindow-x11.c: Restructuring and renaming; this now
	implements the platform-specific "impl" object.
	Moved gdk_window_get_children to gdk/gdkwindow.c

	* gdk/x11/gdkx.h: Remove all the private structs and private datas
	that no longer exist. Add declaration of GdkGCX11 object here.
	Fix all the macros to still work.

	* gtk/gtk-boxed.defs: Remove GtkStyle, GdkColormap, GdkWindow,
	GdkDragContext from the boxed types since they are now GObjects.

	* gtk/gtkstyle.h, gtk/gtkstyle.c: Converted GtkStyle to a GObject,
	moved xthickness/ythickness into the instance. GtkStyleClass
	functions are now in the standard vtable for GtkStyle, so you have
	to create a GObject subclass to write a theme engine.
	(gtk_style_copy): fixed a leaked PangoFontDescription
	(gtk_style_init): renamed gtk_style_realize, so gtk_style_init
	can be the standard GObject function.

	* Throughout GTK:
	s/style->klass->[xy]thickness/style->[xy]thickness
	s/pango_layout_unref/g_object_unref/

	* gtk/gtkrc.h, gtk/gtkrc.c: Converted GtkRcStyle to a GObject.

	* gtk/gtksocket.c: Use gdk_window_get_user_data() instead of
	accessing GDK internals.

	* gtk/gtkwidget.c: Use gdk_window_peek_children() instead of
	accessing GDK internals.
2000-06-20 21:04:44 +00:00
Elliot Lee 2ad30e9fc1 Oops.
Oops.
2000-06-20 20:51:29 +00:00
Elliot Lee 8f4f35b392 (follow-on from previous commit)
(follow-on from previous commit)
2000-06-18  Elliot Lee  <sopwith@redhat.com>

* gtk/gtkwindow.c: Don't allow creation of a window bigger than the screen.

* gtk/gtkrange.c: Fix the mega-jumpy-with-lagged-events scrollbar
problem by calculating event position relative to the trough
rather than the slider.
* gtk/gtkdnd.c, gtk/gtkcolorsel.c: Include FB headers if appropriate.

* gdk/gdkgc.h: Add GDK_NOR.
* configure.in, Makefile.am: Add modules top level dir
* configure.in: Only use pangox library if building x11 target.
* gdk/gdkdnd.h: Add GDK_DRAG_PROTO_LOCAL enum for future intra-app use.
2000-06-20 20:22:05 +00:00
Elliot Lee dd7510dccb *** empty log message *** 2000-06-20 20:20:38 +00:00
Pablo Saratxaga 2eb7985b0b removed the trailing space after a '\' 2000-06-19 21:43:05 +00:00
Christopher Blizzard f327889ac4 Change private class member to be named private_data throughout the file.
Fri Jun 16 22:24:22 2000  Christopher Blizzard  <blizzard@redhat.com>

        * gtk/gtkcolorsel.c: Change private class member to be named
        private_data throughout the file.

        * gtk/gtkcolorsel.h (struct _GtkColorSelection): Change private to
        private_data to avoid clashing with keyword.

Fri Jun 16 22:24:22 2000  Christopher Blizzard  <blizzard@redhat.com>

        * gdk/gdkdnd.h: Add comment to remove warning.
2000-06-19 03:00:56 +00:00
Pablo Saratxaga 4060ae7bd1 moved gtkrc.bg to more generic gtkrc.cp1251 2000-06-18 13:40:50 +00:00
Owen Taylor bae5667ca3 Call gdk_window_withdraw rather than gdk_window_hide; this makes things
Mon Jun 12 16:58:40 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_unmap): Call gdk_window_withdraw
	rather than gdk_window_hide; this makes things work
	correctly if the window is programmatically hidden while
	iconified.
2000-06-12 21:08:07 +00:00
Christopher Blizzard 8b72011482 forgot to commit my ChangeLog changes when I checked in a couple of days ago 2000-06-12 21:08:05 +00:00
Owen Taylor cbe220de09 Call gdk_window_withdraw rather than gdk_window_hide; this makes things
Mon Jun 12 16:58:40 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_unmap): Call gdk_window_withdraw
	rather than gdk_window_hide; this makes things work
	correctly if the window is programmatically hidden while
	iconified.
2000-06-12 21:08:05 +00:00
Federico Mena Quintero 9df3e65391 It was cold and rainy this Saturday morning, so I needed something to warm
2000-06-10  Federico Mena Quintero  <federico@helixcode.com>

	* demo/pixbuf-demo.c: It was cold and rainy this Saturday morning,
	so I needed something to warm my thighs.  Running plain infinite
	loops on your laptop to make it hot is not very much fun.  A demo
	of the gdk-pixbuf scaling functions is way better, and looks
	prettier, too.

	* configure.in (AC_OUTPUT): Added the demo Makefile.

	* Makefile.am (SUBDIRS): Added the demo directory.
2000-06-11 18:18:28 +00:00
Owen Taylor 62e5119872 Fix cut and paste typo where wrong pixmap was being unref'ed. (Pointed out
Sun Jun 11 12:46:19 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_set_default_icon): Fix
	cut and paste typo where wrong pixmap was being
	unref'ed. (Pointed out by a friend of KUSANO Takayuki.)

Sun Jun 11 10:22:36 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c (gtk_selection_bytes_per_item):
	Add helper function to compute format / bytes
	relationship. Use in a couple places to fix up
	errors which assume 8 * format.

	* gtk/gtkselection.c (gtk_selection_request): Use 32
	rather than 8 * sizeof (GdkAtom), to work correctly
	on Alpha.
2000-06-11 18:06:04 +00:00
Larry Ewing b166924b0c setjmp for the png error handler. It seems setting the error handling
2000-06-09  Larry Ewing  <lewing@helixcode.com>

	* gdk-pixbuf/io-png.c (gdk_pixbuf__png_image_load_increment):
	setjmp for the png error handler.  It seems setting the error
	handling functions does not avoid the jump, and so not calling
	setjmp was causing the incremental loader to jump into lala land.
	(gdk_pixbuf__png_image_begin_load): setjmp for error handling, I'm
	not sure this one is actually required but the docs say it must be
	set for every call to a png_* function.
	Also changed the comment to reflect the fact that setting the
	error handlers does _not_ avoid the longjmp.
2000-06-09 19:41:29 +00:00
Christopher Blizzard 40298ef908 deps include libgtk-x11.la, not libgtk.la (LDADDS): include libgtk-x11.la
Thu Jun  8 21:54:51 2000 Christopher Blizzard  <blizzard@redhat.com>

	* gtk/Makefile.am (DEPS): deps include libgtk-x11.la, not
	libgtk.la
	(LDADDS): include libgtk-x11.la and libgdk-x11.la, not the non-x11
	versions

	* gtk/gtklabel.c (gtk_label_get_text): Make sure that the error
	checking macros return NULL since the function has a return value.
2000-06-09 02:05:17 +00:00
Elliot Lee ba0567786b Save cflags for all backends, not just X11.
Save cflags for all backends, not just X11.
2000-06-08 22:52:21 +00:00
Elliot Lee d23c74dd44 Use $PANGO_CONFIG instead of pango-config
* configure.in: Use $PANGO_CONFIG instead of pango-config
2000-06-07 21:39:09 +00:00
Owen Taylor 60d3ad3e0b Add missing backslash that was keeping GTK+ from building at all.
Wed Jun  7 15:44:42 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (LDFLAGS): Add missing backslash that was keeping
	GTK+ from building at all.

	* gdk/Makefile.am (gdk_c_sources): Fix up some indentation issues.
2000-06-07 19:45:21 +00:00
CEST 2000 Paolo Molaro 4bacc3ecd0 make it possible to configure gtk for different targets on the same
Mon Jun  5 19:32:53 CEST 2000 Paolo Molaro <lupus@linuxcare.com>

	* configure.in, gtk-config.in, gdk/Makefile.am, gdk/*/Makefile.am,
	gtk/Makefile.am: make it possible to configure gtk for different
	targets on the same platform. The library name is now
	libgtk-$target-$version.so. gtk-config accepts a --target x11|nanox|linux-fb
	flag. Only the x11 target compiles right now.
	* gdk/gdkregion-generic.h, gdk/gdkregion-generic.c, gdk/gdkpoly-generic.h,
	gdk/gdkpolyreg-generic.c: move generic region code in the main GDK dir.
	* gdk/nanox/gdk*generic*: delete generic region code.
	* gdk/linux-fb/gdk*generic*: delete generic region code.
	* README.nanox: update information.
2000-06-07 16:44:29 +00:00
Havoc Pennington 544b6cb26e file gdkpixmap.c was initially added on branch gdk-object-with-pango. 2000-06-07 16:31:41 +00:00
Larry Ewing 315c3511be slight changelog fixups.
--Larry
2000-06-06 20:41:23 +00:00
Larry Ewing 93d6686ce9 take frame offest into account when trying to calculate the animation
2000-06-06  Larry Ewing  <lewing@helixcode.com>

	* gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done):
	take frame offest into account when trying to calculate the
	animation bbox.  Also set the width to the width not the height.
	(gdk_pixbuf_loader_frame_done): cycle over the frames to calculate
	bbox since only now do we have all the offset information for each
	frame.
2000-06-06 20:37:28 +00:00
Mathieu Lacage 65c1ef36ad one more patch for strange prefixes around... getting tiring... 2000-06-06 16:41:09 +00:00
Owen Taylor caf18947ca Fix to prepend not append. (Pointed out by Brett Hall.)
Tue Jun  6 10:53:59 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktoolbar.c (gtk_toolbar_prepend_widget): Fix to
	prepend not append. (Pointed out by Brett Hall.)
2000-06-06 14:55:26 +00:00
Owen Taylor a03f62c641 Unref the entry's layout.
Tue Jun  6 01:59:57 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_finalize): Unref the entry's layout.
2000-06-06 02:02:04 +00:00
Owen Taylor 3a917e9da7 Add call to g_type_init() - we'll need this later, and this makes sure
Mon Jun  5 16:00:09 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.c (gdk_init_check): Add call to g_type_init() - we'll
	need this later, and this makes sure that the atexit for
	glib gets called after that for GDK, so atexits are
	properly ordered for object leak checking.

	* gdk/gdk.c (gdk_exit_func): Call gdk_windowing_exit().

	* gdk/x11/gdkmain-x11.c (gdk_windowing_exit): Call
	pango_x_shutdown_display()

	* gtk/simple.c (main): Close window on destroy.
2000-06-06 00:56:00 +00:00
Owen Taylor eaa77a4754 We need to treat initial creation different from setting with regards to
Mon Jun  5 11:50:02 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkgc-x11.c (gdk_x11_gc_values_to_xvalues): We need
	to treat initial creation different from setting with
	regards to the graphics-exposures parameter, so add a parameter
	indicating whether this is initial or not.
2000-06-05 15:54:32 +00:00
Owen Taylor eb34d19399 Hack gdk_event_get_graphics_expose() to sort of work by adding an extra
Mon Jun  5 13:29:31 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkevents-x11.c: Hack gdk_event_get_graphics_expose()
	to sort of work by adding an extra return_exposes arg
	to gdk_event_translate() - it might be better to simply
	deprecate the function altogether and force people to rewrite
	without it. gdk_window_scroll() handles most of it, and where
	gdk_window_scroll() doesn't work, simply redrawing more does.

	* gtk/gtkwidget.c (gtk_widget_set_default_direction): Fix up
	assertion.

	* gtk-config.in: Include PANGO_CFLAGS/LIBS.

	* gdk/x11/gdkevents-x11.c (gdk_event_translate): Remove a
	bunch of pretty much useless /* Print debugging info */ comments
	which had drifted away from the code they were commenting.
2000-06-05 15:24:59 +00:00
Owen Taylor f6b5d39189 Fix gdk_pointer_grab description
Mon Jun  5 11:17:25 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/tmpl/general.sgml: Fix gdk_pointer_grab description
2000-06-05 15:18:20 +00:00
Damon Chaplin e79504746a 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-06-05 15:18:19 +00:00
Owen Taylor c76e9c5e75 Fix gdk_pointer_grab description
Mon Jun  5 11:17:25 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/tmpl/general.sgml: Fix gdk_pointer_grab description
2000-06-05 15:18:19 +00:00
Valek Frob 7d7ecf515a Updated russian translation. 2000-06-03 14:49:32 +00:00
Havoc Pennington e86329d5d4 Test program to make sure GtkTextBuffer is in working order.
2000-06-02  Havoc Pennington  <hp@pobox.com>

        * gtk/testtextbuffer.c: Test program to make sure GtkTextBuffer
	is in working order.

	* gtk/testtext.c: Change to reflect anonymous mark API

	* gtk/gtktextview.c: Convert from mark names to GtkTextMark*.

	* gtk/gtktexttag.h (struct _GtkTextTag): remove the affects_size
	field, which was unused.

	* gtk/gtktextmarkprivate.h (GTK_IS_TEXT_MARK): add this macro,
	saves some typing.

	* gtk/gtktextbuffer.c: Switch from mark names to GtkTextMark*

	* gtk/gtktextbtree.c (gtk_text_btree_new): set the not_deleteable
	flag on the insertion point and selection bound

	Throughout, use GtkTextMark instead of GtkTextLineSegment, and
	make mark-manipulation functions take a GtkTextMark* instead of a
	mark name.

	* gtk/gtktextmarkprivate.h: Add a "not_deleteable" flag to
	GtkTextMarkBody; will be used to detect attempts to delete
	the permanent marks (insert and selection bound)
2000-06-02 17:27:21 +00:00
Owen Taylor bb77f4e6b9 Initialize DOUBLE_BUFFERED flag to on.
Fri Jun  2 12:56:01 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_init): Initialize DOUBLE_BUFFERED
	flag to on.

	* gtk/gtkwidget.c (gtk_widget_draw) gtk/gtkmain.c (gtk_main_do_event):
	Honor DOUBLE_BUFFRED_FLAG

	* gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a
	function to set the DOUBLE_BUFFERED flag.

	* gtk/gtkwidget.h: Add GTK_DOUBLE_BUFFERED flag to indicate whether
	or not exposes done on the widget should be double-buffered.

	* gtk/gtkenums.h (GtkTextDirection): Reverse order of enumerations
	to be what would be expected. (Fixes problem with a
	g_return_if_fail() validating a TextDirection enumeration)
2000-06-02 17:02:16 +00:00
Havoc Pennington 9ae724bf4d Remove all references to offscreen flag which was no longer used.
Thu Jun  1 23:05:13 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c: Remove all references to
	offscreen flag which was no longer used.

	* gtk/gtkprivate.h (enum): Remove unused flags and compress.

	* gtk/gtkframe.c (gtk_frame_set_label_widget): Check
	for non-null label_widget->parent.

	* gtk/gtkentry.c: Get rid of code to deal with PangoAttribute
	which no longer was used.

	* gdk/gdkpango.c (gdk_pango_context_get_info): make static.

	* gdk/gdkpango.c (gdk_draw_layout[_line]): Add checks
	for null arguments.

	* gdk/x11/gdkgeometry-x11.c (gdk_window_scroll): add
	check for destroyed windows.

Thu Jun  1 13:48:45 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimmulticontext.c: Add a finalize method and unref
	the slave context there.

	* gtk/gtkinvisible.[ch]: Make reference counting behavior
	identical to GtkWindow.

Thu Jun  1 01:54:11 2000  Owen Taylor  <otaylor@redhat.com>

	* Makefile.am gdk/gdkpango.c: Copy the layout render function from
	pangox to here, so we can write them independent of rendering
	system, using GDK primitives.

	* gdk/gdkdrawable.h gdk/gdkdraw.c gdk/gdkwindow.c
	gdk/x11/gdkdrawable-x11.c: Remove draw_layout() from the vtable,
	since we have a rendering-system independent implementation in
	terms of draw_glyphs().

	* gdk/gdkpango.c gdkdrawable.h (gdk_draw_layout_line): New
	function to render a single line.

	* gdk/x11/gdkpango.c: Move the guts of this file mostly
	into ../gdkpango.c, which simplifies things, since we
	don't have to deal with raw X gc's.

Fri May 19 04:28:16 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.[ch]: Add get_log_attrs() function to
	get the logical attributes for a given GtkTextLine.

Tue May 30 16:05:39 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): Track
	g_locale_get_codeset() to g_get_codeset() change.

Tue May 30 15:03:19 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testcalendar.c (calendar_font_selection_ok): Use font
	descriptions.

	* gtk/gtkentry.c (gtk_entry_draw_text): Center text within
	the entry.

	* gtk/gtkfontsel.c (gtk_font_selection_dialog_init): Start of
	redoing (vastly simplifying) for Pango. Still needs quite
	a bit of work. (Size selection is currently poor. List of
	predefined sizes is not a good idea, since all of these
	sizes won't necessarily be distinct.)

Tue May 30 13:50:19 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): Handle
	CODESET results for LANG=C.

Mon May 29 15:49:10 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.[ch]: Add a 'font_name' declaration to RC
	which takes a stringized pango font description;
	ignore the older 'font' and 'fontset' declarations.

	* gtk/gtkstyle.c gtk/gtkrc.c: Fill in the style->font
	field with a GdkFont derived via gdk_font_from_description(),
	for compatibility. (Should we just remove it entirely?
	Probably too much compatibility breakage, but people
	should be migrating to the new Pango stuff as quickly
	as possible.)

Mon May 29 15:47:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c gtk/gtkclist.c: s/pango_font_unref/g_object_unref/.

Mon May 29 15:44:46 2000  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkcalender.c: Roughly pango-ized. Really needs
	redoing; there are some bugs in size allocation right
	now, the semi-existant distinction between header / day
	fonts was removed, but, with Pango, could actually
	be made functional in a nice way.

	* gtk/testcalender: Move calender from examples into this
	directory as a test program. (We really need to restrcture
	testgtk into a whole directory full of tests for every
	widget or functionality group, separated into multiple .c
	files.)

Mon May 29 15:19:56 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (file_exists): Fix stupid typo that
	was keeping RC file from being loaded.

	* gtk/testgtkrc gtk/testgtkrc2: Test new pango-ized
	RC file font code.

Mon May 29 14:31:27 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkfont.h gdk/x11/gdkfont-x11.c (gdk_font_from_description):
	Add function to load a GdkFont from a PangoFontDescription.

Fri May 26 17:16:40 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/frame.[ch] gtkaspectframe.c: Make frame widgets able
	to have any widget for the label, use a GtkLabel widget
	to display the text. (Based partially on a patch from
	Anders Carlson.)

	(Quite a bit of code reorganization - strip 90% of the
	guts out of gtkaspectframe and add a single virtual
	func to GtkFrameClass - compute_child_allocation.)

Fri May 26 12:00:02 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkctree.c gtk/gtkclist.[ch]: Pangoized.
	(Removed clist->row_center_offset field because caching
	it wasn't saving time or code, added private function
	_gtk_clist_create_cell_layout()).

Wed May 24 15:59:37 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkaccellabel.c: Pangoized.

	* gtk/[hv]ruler.c: Pangoized

Mon May 22 19:23:59 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (gtk_file_selection_init):
	Use gtk_clist_set_column_auto_resize() to remove need
	need for manual column width computations.

Mon May 22 18:50:26 2000  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtktooltips.[ch]: Replace custom drawing with a GtkLabel,
	ensuring Pango correctness, and considerably simplifying the
	code.

	* gtk/gtklabel.c gtk[hv]scale.c: 1000 => PANGO_SCALE.

	* gtk/gtklabel.c (gtk_label_size_request): Fixed incorrect
	getting of numbers of lines.

	* gtk/gtklabel.c (gtk_label_size_request): Set the requisition
	to the actual requested width of the lable, not to the wrap
	width we set.

	* gtk/gtktextchild.h: Remove extraneous include of gtk/gtk.h.

	* gtk/gtktextbtree.c gtk/gtktextbuffer.c gtk/gtktextlayout.c
	  gtk/gtktextview.c gtk/gtktextview.[ch]: Fix up includes.

	* gtk/gtktextview.c: Fix structure inheritance.

	* gtk/gtkprogressbar.c: Pangoize.

Mon May 22 15:47:30 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextview.c (gtk_text_view_get_first_para_iter): Encapsulate
	in a function.

	* gtk/gtktextlayout.c (find_display_line_above): Fixed
	bug with computing line tops.

	* gtk/gtktextview.c (changed_handler): Fix < , <= confusion.

Thu May 18 18:53:31 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix up the x_offset
	and y_offset coordinates to do what we need now. (The offset between
	buffer and layout coordinates has been reintroduced, but is a
	bit different than before.)

	* gtk/gtktextview.[ch]: No longer inherit from GtkLayout; instead
	handle the adjustments ourselves, and scroll as necessary using
	the new gdk_window_scroll().

	The advantage of this is that when we are incrementally revalidating,
	we are essentially rearranging things around the visible portion
	of the screen. With the old setup, the visible portion of the
	screen was moved around in the layout, so scrolling and redrawing
	to track that caused jumping of the display. Since we now
	control the scrolling ourselves, we can suppress this and
	only redraw when things actually change.

Thu May 18 18:47:25 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextbtree.c (redisplay_mark): We need to invalidate
	the region not just redisplay it after-all, since we store the
	cursors in the LineDisplay. (Ugly interactions here between
	GtkLayout and GtkTextBTree here.)

	* gtk/gtktextbtree.c (redisplay_region): Fixed reversed comparison.

Thu May 18 18:43:21 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.h gdk/x11/gdkgeometry-x11.c (gdk_window_scroll):
	Added function to scroll contents of a window while keeping the
	window constant. Works by XCopyArea or guffaw-scrolling depending
	on the details of how the window is set up. (guffaw-scrolling
	still needs to be filled in.)

Wed May 17 22:36:53 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextiter.c gtk/gtkmain.c: Add a debug key for the text widget,
	move the debugging that was tied to a global variable
	to that.

	* gtk/gtkmarshal.list: Add NONE:INT,INT,INT

	* gtk/gtktextbtree.[ch] gtk/gtktextlayout.c: Keep a separate
	validated flag, in line data instead of setting height/width to
	-1. This allows us to perform operations with partially invalid
	buffer (using the old size for invalid lines) and thus to do
	incremental vaidation. Keep height/width aggregates up to date
	when deleting text and rebalancing the tree.

	* gtk/gtktextbtree.[ch]: Add functions validate a line
	(gtk_text_btree_validate_line), and to validate up
	to a number of pixels (gtk_text_btree_validate).

	* gtk/gtktextlayout.[ch]: Add an ::invalidated signal
	that indicates that something is changed and a revalidation
	pass is needed. Change ::need_repaint to ::changed, and
	make it take old and new yranges instead of a rectangle.

	* gtk/gtktextbtree.[ch] gtk/gtktextlayout.[ch]: Move
	the line_data_destroy() function from
	gtk_text_btree_add_view() to a virtual function in
	GtkTextLayout

	* gtk/gtktextbtree.[ch]: Remove gtk_text_btree_get_damage_range(),
	since we are handling partial repaints in a different fashion
	now.

	* gtk/gtktextbtree.[ch]: Only repaint the changed portion
	of the selection instead of queueing a repaint on the
	entire widget.

	* gtk/gtktextbuffer.[ch] gtk/gtktextbtree.[ch]: Move
	get_selection_bounds() down to btree, make the function
	in buffer a wrapper around the btree function.

	* gtk/gtktextlayout.[ch]: Add functions to check if the
	layout is valid and to recompute either a range of pixels
	aroudn a line or a certain total number of pixels.

	* gtk/gtktextlayout.[ch]: Cache a single line display;
	now that we only redraw the needed portions, the hit rate
	for this cache is quite high.

	* gtk/gtktextview.[ch]: Keep track of the first paragraph
	on the screen so that when re-laying-out the buffer, we can
	keep the same place. This requires connecting to ::value_changed
	on the adjustments

	* gtk/gtktextview.[ch]: Add idle functions to revalidate
	the buffer after we receive an ::invalidated signal.

Wed May 17 22:10:47 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c (gtk_layout_size_allocate): Set upper
	to max of allocation and layout size, not just to the
	layout size.

	* gtk/gtk[hv]scrollbar.c (gtk_[hv]scrollbar_calc_slider_size):
	Invalidate window so it gets redrawn properly.

	* gdk/gdkwindow.c (gdk_window_invalidate_rect): Allow rect == NULL
	to mean the entire window.

	* gdk/gdkevents.h: Move definition for GDK_PRIORITY_REDRAW
	into public header.

Mon May 15 14:51:31 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextmark.c (gtk_text_mark_get_name): Add function
	to get the name of a mark.

	* gtk/gtktextlayout.c (gtk_text_layout_get_line_at_y): Add a function
	to find the paragraph from a y position.

Thu May 11 12:57:20 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextbtree.c (gtk_text_btree_node_invalidate_upward): Valid
	nodes have width/height >= 0, not > 0.

Tue May  9 21:29:06 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c (gtk_text_layout_get_line_display):
	Add a size_only flag, so when we only need the size, we don't create
	useless appearance attributes.

	* gtk/gtktextview.c (gtk_text_view_ensure_layout): Remove
	duplicate setting of font description.

	* gtk/gtkscale.c: Use PANGO_SCALE instead of 1000

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.

Wed Apr 26 00:56:14 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c: Some hacks and fixes so that it basically
	works when not sitting in the GTK+ build tree.

2000-05-03  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c (gtk_text_line_next_could_contain_tag):
	Properly determine the ordering of the tag root and the current
	line within the tree. Previous algorithm only worked if the tag
	root's immediate parent was the common root of both the current
	line and the tag root.

Wed Apr 26 00:43:00 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.c (set_para_values): Fix some bugs in
	alignment.

	* gtk/gtktextview.c (gtk_text_view_ensure_layout): Track
	the widget text directional dynamically.

	* gtk/gtktextview.[ch]: Added functions to get and set default
	wrap mode.

Tue Apr 25 23:47:38 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.c (gtk_text_layout_get_iter_location): Fix bug
	in cursor location computation.

Tue Apr 25 23:22:59 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c (gtk_layout_set_size): Clamp hadjustment/
	vadjusment values properly when layout gets smaller.

	* gtk/gtktextview.c (need_repaint_handler): Areas being
	passed in are far completely inaccurate, and sometimes
	too small, so, for now, just queue a redraw on the
	whole visible region.

2000-04-25  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c (summary_destroy): new function to
	destroy tag summary nodes
	(gtk_text_line_next_could_contain_tag): this function was
	totally broken if the line passed in wasn't below the tag
	root. Fix it.
	(gtk_text_btree_first_could_contain_tag): In the tag == NULL
	"wildcard" case, we have to do a linear scan. Blah.
	(gtk_text_btree_last_could_contain_tag): In tag == NULL case,
	we have to do the linear scan
	(tag_removed_cb): When a tag is removed from the tag table,
	remove the GtkTextTagInfo node from the btree.
	(gtk_text_btree_spew): Implement the spew function, for
	our debugging pleasure.

Tue Apr 25 19:40:18 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.c (gtk_text_layout_set_buffer): Fix
	a problem with referring to the wrong buffer.

	* gtk/gtkentry.c: Fix focus-in/focus-out confusion.

	* gtk/gtkrc.c gtk/gtkstyle.c: Moving setting default
	font description to gtk_style_new() - otherwise things
	don't work without a .gtkrc file.

	* gtk/gtktextbuffer.c (gtk_text_buffer_new): Sink the
	tags table if we create it ourself, too.

	* gdk/gdktypes.h (enum): Move GDK_RELEASE_MASK, since
	it was conflicting with XKB modifiers.

	* gtk/gtktextview.[ch]: Add simple support for
	GtkIMContext.

Mon Apr 24 19:34:18 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_move_cursor_visually): Fix problem
	with deletion from last commit.

Mon Apr 24 19:29:40 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_create_pango_context): Set the language
	in the context from the current locale.

	* gtk/gtkentry.c (gtk_entry_size_request): Use language from the
	context, not hardcoded value.

	* gtk/gtkentry.c (gtk_entry_move_cursor): Make character movement visual,
	not logical.

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

	* gtk/gtkentry.c gtk/gtktextdisplay.c: Don't handle selections as
	attributes - that doesn't handle partial-glyph selection
	properly. Instead use new pango_layout_line_get_x_ranges()
	functionality to draw the selection.

	* gtk/gtkentry.c: Simplify code since pango_layout_line_index_to_x()
	now properly handles out-of-range coordinates.

	* gtk/gtktextbuffer.c: Emit "mark_set" when the cursor is moved.

	* gtk/gtktextiter.h gtk/gtktextiterprivate.h: Make gtk_text_iter_get_line_byte()
	public.

	* gtk/gtktextlayout.[ch]: Properly set the direction in the PangoContext
	for paragraphs opposite to the base direction of the widget.

	* gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c: Fixes for alignment.

	* gtk/gtktextlayout.c: Don't split segments on marks, since that
	causes Arabic words to reshape as you cursor through.

	* gtk/gtktextlayout.[ch] gtk/gtktextview.[ch]: Implement virtual
	cursor position when moving vertically with the arrow keys and
	scrolling with page-up/page-down. (Arrow keys save only the X,
	scrolling saves both X and Y.)

	This means you can line-up / line-down or page-up / page-down
	without losing your place, and also that moving vertically
	with the cursor keys keeps the same X position, not the same
	character count:

	* gtk/gtktextlayout.[ch] gtk/gtktextview.[ch]: Make vertical
	arrow keys move by display lines, not paragraphs.

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

	* gtk/gtklayout.c: Make sure that the bin window is at least
	as big as the allocation. (Should we also make sure that the
	bin window is big enough to completely cover widget->window?)

	* gtk/gtktextview.c (gtk_text_view_get_visible_rect): Add
	function to get the onscreen rectangle.

	* gdk/x11/gdkwindow-x11.c (gdk_window_get_pointer): Correctly account
	for offsets in window coordinates.

Sun Apr 16 16:13:27 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_get_cursor_locations): Fix index/offset
	confusion.

	* gtk/gtktextview.c (gtk_text_view_ensure_layout): Set the default direction
	from the widget direction.

	* gtk/gtktexttag.c gtk/gtktexttagprivate.h (gtk_text_tag_set_arg):
	Add a "direction" attribute.

	* gtk/gtktextview.c: global s/tkxt/text_view/.

	* gtk/testtext.c: Added long block of text in Arabic, to test out
	the direction attributes. (Some problems with the shaping system
	for arabic become obvious - like the fact the cursor splits words
	into unjoined pieces.)

Fri Apr 14 12:54:34 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextdisplay.c (render_layout): Add overstrike handling.

	* gtk/gtktextlayout.c: Fix up alignment.

	* gtk/testtext.c: Add some tests for centering, wrapping.

Fri Apr 14 09:26:22 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdrawable.h gdk/gdkdraw.c gdk/gdkwindow.c gdk/x11/gdkdrawable-x11.c:
	Add a draw_glyphs() operation to the drawable vtable and gdk_draw_glyphs().
	If we wrote GTK+-specific layout-render function this could just replace
	the draw_layout() operation in the vtable.

	* gtk/gtkentry.c: Move guts of gtk_entry_get_cursor_locations to
	pango_layout_get_cursor_pos() and use that function.

	* gtk/gtktextchild.[ch]: add gtk_ onto pixmap_segment_new(), since it
	is a non-static symbol.

	* gtk/gtktextbtree.[ch]: Replace gtk_text_btree_find_line_data_by_y()
	with gtk_text_btree_find_line_by_y()

	* gtk/gtktextdisplay.c: Rewrote for Pango - uses a custom layout
	renderer that handles GtkTextAppearance attributes.

	* gtk/gtktexttag.[ch] gtk/gtktexttagprivate.h:

	  - Move the values in the style that don't affect geometry into a
	    GtkTextAppearance structure.
	  - Change underline to take a PangoUnderline and "font" a string
	    representation of a font description
	  - Add a "font_desc" attribute which takes a FontDescription structure.

	* gtk/gtktextlayout.[ch]:

	  - Get rid of the display-line list per each line. Instead, we
	    generate, on demand, a GtkTextLineDisplay structure which]
	    contains a PangoLayout * and other necesary information
	    (offsets, cursor locations) for displaying a paragraph.
	  - Get rid of the code to wrap lines, create display chunks,
	    etc. Instead, we just go through a paragraph and convert
	    it into the necessary inputs to a PangoLayout.
	  - Implement a new attribute type, GtkTextAttrAppearance. This
	    holds a GtkTextAppearance, and is used to pass colors,
	    stipple, etc, through from the layout to the display without
	    having to use lots and lots of individual attributes.
	  - Reimplement gtk_layout_get_iter_at_pixel() gtk_layout_get_iter_pos()
	    in terms of PangoLayout functions.

	* gtk/gtktextview.c:

	  - Handle passing the necessary PangoContext to the layout
	  - Some fixups in painting to deal with the automatic backing store
	    and offsetting of GTK+-1.4
	  - Add a style_set handler so that the default style reacts
	    properly to theme changes.

	* gtk/gtktext?*.[ch]: Random code-style fixes.

	* gtk/testtext.c: Substitute in languages that Pango handles now for Thai

Mon Apr 10 10:33:45 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext?*.[ch]: Check in Havoc's port of the Tk text widget,
	in original form preparatory to Pango-ization and gdkimcontext-ization.

Thu Apr  6 19:25:39 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimcontext.c: Move default implementations to real_* vfuncs,
	so that we can derive from gtkimcontext in language bindings properly.

Thu Apr  6 16:02:52 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimcontextsimple.[ch]: Use gdk_keyval_to_unicode to gdk_unicode_to_keyval.
	Add a compose table including (almost) all the compose combinations
	from X. This is 6k of static, shared data as opposed to 50k or so of dynamic
	data in the XIM implementation.

	* gdk/gdk.h gdk/gdkkeyuni.c gdk/win32/gdkevents-win32.c (gdk_keyval_to_unicode, gdk_unicode_to_keyval):
	Moved functions to convert keyvalues from and to unicode here from
	the win32 port and made them public.

Wed Apr  5 16:37:29 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkeditable.c (gtk_editable_insert_text): Allow new_text_length == -1.

Wed Apr  5 16:27:45 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimcontext.[ch]: Base class for new input context system

	* gtk/gtkimmulticontext.[ch]: Proxy input context that allows
	the real input context implementation to be loaded from modules
	and switched on the fly.

	* gtk/gtkcontextsimple.[ch]: Simple implementation of an input
	context that just does direct keysymbol => unicode translation.

	* gtk/gtkentry.[ch]: Start switching editing over to using
	GtkInputContext. (No handling of preedit yet.)

Wed Apr  5 15:48:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktypeutils.h (GTK_CHECK_GET_CLASS): Fix problem with one too
	many substitutions. (klass should not be subsituted.)

Wed Apr  5 00:18:14 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in: Add checks for Pango

	* configure.in docs/Makefile.am: Add test for sgml2html
	and allow 'make dist' without building html, but print out
	warnings in that case. (For making snapshots)

	* gdk/Makefile.am gdk/x11/Makefile.am gtk/Makefile.am:
	Add Pango libraries and C flags

	* gdk/gdkdraw.c gdk/gdkdrawable.h gdkwindow.c gdk/x11/gdkdrawable-x11.c:
	Add function (gdk_draw_layout) to draw a pango layout.

	* gdk/gdkpango.h gdk/x11/gdkpango-x11.c: New file with functions
	for getting Pango contexts for GDK.

	* gtk/gtkeditable.c: Get rid of dead code gtk_editable_parent_set()

	* gtk/gtkentry.[ch]: Complete rewrite to use Pango, add bidirectional
	editing.

	* gtk/gtkentry.c: Hack in simple Hebrew input with direct
	keysym => unicode translations. More languages can be added
	here, but real input-method support is needed.

	* docs/Changes-1.4.txt: Added note about entry behavior.

	* gtk/gtkenums.h gtk/gtkwidget.[ch] testgtk.c gtkprivate.h: Add functions
	to set the reading direction for a widget and the global direction.
	Add test which allows toggling the global direction. Two private
	flags are used to store the direction. (GTK_DIRECTION_SET + GTK_DIRECTION_LTR)

	* gtk/gtkcheckbutton.c gtk/gtkframe.c gtk/gtkhbbox.c gtk/gtkhbox.c
	  gtk/gtkradiobutton.c gtk/gtkspinbutton.c gtk/gtktable.c

	* gtk/gtk[hv]scale.c gtk/gtkscale.[ch]: Draw numbers using Pango

	* gtk/gtklabel.[ch]: Moved to Pango and considerably rewritten. Line breaking,
	underlining now handled by Pango.

	* gtk/gtkstyle.[ch] gtk/gtkrc.[ch]: Add a PangoFontDescription
	to RCStyle and Style. (Having both this and the old font name and GdkFont
	is temporary.)

	* gtk/gtkwidget.[ch] (gtk_widget_create_pango_{context,layout}): Added
	convenience functions for creating contexts and layouts for widgets.

	* gtk/testgtk.c: Enhance label tests with multilingual labels.
2000-06-02 03:14:07 +00:00
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 K?opczko <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
653 changed files with 150646 additions and 83589 deletions
+3130
View File
File diff suppressed because it is too large Load Diff
+3130
View File
File diff suppressed because it is too large Load Diff
+3130
View File
File diff suppressed because it is too large Load Diff
+3130
View File
File diff suppressed because it is too large Load Diff
+3130
View File
File diff suppressed because it is too large Load Diff
+3130
View File
File diff suppressed because it is too large Load Diff
+3130
View File
File diff suppressed because it is too large Load Diff
+27 -6
View File
@@ -1,14 +1,35 @@
Prerequisites
=============
GTK+ requires the GLIB library, available at the same location as
you got this package.
GTK+ requires the following packages:
- The GLIB library, available at the same location as GTK+
- The Pango library, available from:
http://www.pango.org/download.shtml
Pango also requires the FriBidi library, available from:
http://imagic.weizmann.ac.il/~dov/freesw/FriBidi/
- The TIFF, PNG, and JPEG image loading libraries. You most
likely have these installed on your system already. If not
these libraries are available from:
http://www.libtiff.org/
ftp://swrinde.nde.swri.edu/pub/png/src/
ftp://ftp.uu.net/graphics/jpeg/
If these libraries are not available, the corresponding
image loaders will simply not be built. However, this
may cause applications using GTK+ not to function properly.
Simple install procedure
========================
% gzip -cd gtk+-1.2.5.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.2.5 # change to the toplevel directory
% gzip -cd gtk+-1.3.1.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.3.1 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
@@ -118,7 +139,7 @@ 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.2.5
./configure --with-glib=../glib-1.3.1
This, however, will not work if you built GLIB with different
source and build directories.
@@ -169,7 +190,7 @@ 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 and 2.1, in which
(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.)
+23 -2
View File
@@ -1,8 +1,29 @@
Prerequisites
=============
GTK+ requires the GLIB library, available at the same location as
you got this package.
GTK+ requires the following packages:
- The GLIB library, available at the same location as GTK+
- The Pango library, available from:
http://www.pango.org/download.shtml
Pango also requires the FriBidi library, available from:
http://imagic.weizmann.ac.il/~dov/freesw/FriBidi/
- The TIFF, PNG, and JPEG image loading libraries. You most
likely have these installed on your system already. If not
these libraries are available from:
http://www.libtiff.org/
ftp://swrinde.nde.swri.edu/pub/png/src/
ftp://ftp.uu.net/graphics/jpeg/
If these libraries are not available, the corresponding
image loaders will simply not be built. However, this
may cause applications using GTK+ not to function properly.
Simple install procedure
========================
+23 -12
View File
@@ -1,23 +1,26 @@
## Makefile.am for GTK+
SRC_SUBDIRS = gdk gtk
SRC_SUBDIRS = gdk-pixbuf gdk modules gtk demos
SUBDIRS = po $(SRC_SUBDIRS) docs
bin_SCRIPTS = gtk-config
bin_SCRIPTS = gtk-config-2.0
# require automake 1.4
AUTOMAKE_OPTIONS = 1.4
EXTRA_DIST = \
HACKING \
gtk+.spec.in \
gtk.m4 \
makecopyright \
TODO \
NEWS.pre-1-0 \
EXTRA_DIST = \
HACKING \
gtk+.spec.in \
gtk-2.0.m4 \
makecopyright \
TODO \
TODO.xml \
NEWS.pre-1-0 \
ChangeLog.pre-1-0 \
ChangeLog.pre-1-2 \
README.cvs-commits \
README.win32 \
README.win32 \
README.nanox \
intl/libgettext.h \
intl/po2tbl.sed.in \
examples/aspectframe/Makefile \
@@ -26,13 +29,17 @@ EXTRA_DIST = \
examples/README.1ST \
examples/extract.awk \
examples/extract.sh \
examples/arrow/Makefile \
examples/arrow/arrow.c \
examples/base/Makefile \
examples/base/base.c \
examples/buttonbox/Makefile \
examples/buttonbox/buttonbox.c \
examples/buttons/Makefile \
examples/buttons/buttons.c \
examples/buttons/info.xpm \
examples/calendar/Makefile \
examples/calendar/gcalendar.c \
examples/calendar/calendar.c \
examples/clist/Makefile \
examples/clist/clist.c \
examples/entry/Makefile \
@@ -49,6 +56,8 @@ EXTRA_DIST = \
examples/helloworld/helloworld.c \
examples/helloworld2/Makefile \
examples/helloworld2/helloworld2.c \
examples/label/Makefile \
examples/label/label.c \
examples/list/Makefile \
examples/list/list.c \
examples/menu/Makefile \
@@ -74,6 +83,8 @@ EXTRA_DIST = \
examples/rulers/rulers.c \
examples/scribble-simple/Makefile \
examples/scribble-simple/scribble-simple.c \
examples/scribble-xinput/Makefile \
examples/scribble-xinput/scribble-xinput.c \
examples/scrolledwin/Makefile \
examples/scrolledwin/scrolledwin.c \
examples/selection/Makefile \
@@ -111,7 +122,7 @@ dist-hook: gtk+.spec
&& cp gtk+.spec $(distdir)
m4datadir = $(datadir)/aclocal
m4data_DATA = gtk.m4
m4data_DATA = gtk-2.0.m4
.PHONY: files release sanity snapshot
+41
View File
@@ -1,3 +1,44 @@
Overview of Changes in GTK+ 1.3.1:
* GTK+ now uses the Pango library for text manipulation. All
strings in GTK+ now are in Unicode, languages written
from right-to-left, and complex-text languages are now supported.
* The gdk-pixbuf library for image loading and manipulation is
has been integrated with GTK+.
* The GTK+ object system has mostly been moved to GLib, separating
it from the GUI code. Many significant enhancements have been
made as part of this.
* A new text widget is now included. This started as a port
of the Tk text widget, and includes such features of the Tk
text widget as tags, marks, and unicode text support. It
has been enhanced to support model-view operation and the
full power of Pango.
* The GDK library has been extensively revised to support multiple
windowing systems. The only fully functional backend in 1.3.1
is the X11 backend, however, ports to Win32, Linux-framebuffer,
Nano-X, BeOS, and MacOS exist in various states of completion,
and at least some of these will be finished and integrated in
before the final GTK+-2.0 release.
* 32-bit coordinates are now supported throughout GDK and GTK+
(they are emulated where not supported by the windowing system.)
* Many minor bug fixes and enhancements. Incompatible changes
are documented in docs/Changes-2.0.txt
Overview of Changes in GTK+ 1.2.8:
* GNU Make 3.79 bug workaround
* FAQ and tutorial updates and improvements
* Miscellaneous bug fixes: CList, Calendar, rc-files, FontSelection
Overview of Changes in GTK+ 1.2.7:
* More header cleanups.
* Fixed activation bug for insensitive widgets.
* Locale fixes to RC file parsing code.
* Miscellaneous bugfixes for Item Factory, CList, CTree, X Selections,
HScale, VScale, Pixmap, Viewport, OptionMenu, Entry and Notebook.
* Upgrade to libtool 1.3.4.
Overview of Changes in GTK+ 1.2.6:
* container queue_resize fixes
+4 -4
View File
@@ -1,7 +1,7 @@
General Information
===================
This is GTK+ version 1.2.0. GTK+, which stands for the Gimp ToolKit,
This is GTK+ version 1.3.1. 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.
@@ -37,9 +37,9 @@ version number. This should be separated by a blank
line from the actual headers.
Package: gtk+
Version: 1.2.0
Version: 1.3.1
[ Please substitute 1.2.0 with the version of GTK+ that
[ Please substitute 1.3.1 with the version of GTK+ that
you have installed ]
Then describe the bug. Include:
@@ -82,7 +82,7 @@ From: yourname@your.address.org
Subject: handlebox test in testgtk is misnamed.
Package: gtk+
Version: 1.2.0
Version: 1.3.1
When I run gtk/testgtk, the button "handle box"
is misnamed. There are multiple handle boxes in
+32
View File
@@ -0,0 +1,32 @@
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.
Provide a pango module.
If you want to work on this port or get additional informnation, get in
touch with me.
Configure gtk with the --with-gdktarget=nanox to compile with nano-X support.
Paolo Molaro
lupus@linuxcare.com
+20 -12
View File
@@ -1,20 +1,28 @@
This current (CVS) version of the Win32 backend does *not* even
compile properly. A zipfile with an older snapshot (from before the
merge of the no-flicker branch, and the other recent additions), is
available from http://www.gimp.org/win32/. That should be use by
"production" code until this CVS version is useable. (But note, the
Win32 backend has never been claimed to be "production quality",
although it works OK for the GIMP.)
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
port, see http://www.gimp.org/win32/ or
http://www.iki.fi/tml/gimp/win32/ .
To build GTk+ on Win32, you need either the Microsoft compiler and
tools, or gcc-2.95 or later running under cygwin-b20.1 or
later. Compile in gdk\win32 and gtk with `nmake -f makefile.msc` or
`make -f makefile.cygwin`. Before doing a install, check the BIN
definition in gdk\win32\makefile.msc (or makefile.cygwin) and
gtk\makefile.msc (or makefile.cygwin).
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
To use GTk+ on Win32, you also need either one 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.
@@ -33,7 +41,7 @@ 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 as 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.
Note that while the GNU gettext package is under the GPL license, the
"intl" part of it is also distributed as part of the GNU C library
(glibc) where it is under the LGPL license (as is GTk+ or GLib). We
want the LGPL licensed version. The code is more or less the same.
+1 -1
View File
@@ -185,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,
+739
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="90%" target="2.0">
<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="90%" target="2.0">
<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="2.0">
<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="2.0">
<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="2.0">
<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="2.0">
<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="85%" target="2.0">
<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="90%" target="2.0">
<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="2.0">
<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+-2.0 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="60%" target="2.0">
<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="2.0">
<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="2.0">
<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="2.0">
<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="2.0">
<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="2.0">
<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="2.0">
<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="2.0">
<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="> 2.0">
<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="2.0">
<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="> 2.0">
<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="> 2.0">
<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 2.0). A more difficult, probably
a post-2.0 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="2.0">
<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="100%" target="2.0">
<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="90%" target="2.0">
<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="20%" target="2.0">
<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="40%" target="2.0">
<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="2.0 ?">
<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="2.0">
<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 2.0
proper at some point.
</p>
</description>
<contact>Tim Janik &lt;timj@gtk.org&gt;</contact>
</entry>
<entry size="medium" status="90%" target="2.0">
<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="40%" target="2.0?">
<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="2.0">
<title>GtkImage</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="2.0">
<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="2.0">
<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="2.0">
<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="> 2.0">
<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="> 2.0">
<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="> 2.0">
<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="> 2.0">
<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="2.0">
<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="20%" target="2.0">
<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="2.0">
<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="2.0">
<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="100%" target="2.0">
<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="70%" target="2.0">
<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="2.0">
<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="2.0">
<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>
+7
View File
@@ -23,6 +23,7 @@
#undef HAVE_GETTEXT
#undef HAVE_IPC_H
#undef HAVE_LC_MESSAGES
#undef HAVE_PROGRESSIVE_JPEG
#undef HAVE_PWD_H
#undef HAVE_SHM_H
#undef HAVE_STPCPY
@@ -36,9 +37,13 @@
#undef RESOURCE_BASE
#undef USE_GMODULE
#undef USE_MMX
/* Define to use X11R6 additions to XIM */
#undef USE_X11R6_XIM
#undef XINPUT_NONE
#undef XINPUT_GXI
#undef XINPUT_XFREE
@@ -49,6 +54,8 @@
/* Most machines will be happy with int or void. IRIX requires '...' */
#undef SIGNAL_ARG_TYPE
#undef GETTEXT_PACKAGE
/* #undef PACKAGE */
/* #undef VERSION */
+12 -5
View File
@@ -34,7 +34,7 @@ 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 $host \
$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
@@ -66,6 +66,11 @@ 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="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
@@ -84,7 +89,7 @@ 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
@@ -300,7 +305,6 @@ else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
AC_PROG_LD_GNU
])
@@ -346,14 +350,13 @@ else
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 "$host" in
case "$lt_target" in
*-*-beos* | *-*-cygwin*)
# These system don't have libm
;;
@@ -487,6 +490,10 @@ AC_DEFUN(AM_GTK_WITH_NLS,
gt_cv_func_dgettext_libintl=no)])
fi
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)
+6
View File
@@ -71,6 +71,12 @@ echo "Running gettextize... Ignore non-fatal messages."
# while making dist.
echo "no" | gettextize --copy --force
#
# Really bad hack
echo "Munging po/Makefile.in.in"
sed s%@PACKAGE@%@GETTEXT_PACKAGE@% < po/Makefile.in.in > po/Makefile.in.in.new
mv po/Makefile.in.in.new po/Makefile.in.in
aclocal $ACLOCAL_FLAGS
# optionally feature autoheader
+64 -30
View File
@@ -24,7 +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 the Autoconf mailing list <autoconf@gnu.org>.
# 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
@@ -156,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;;
@@ -328,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
@@ -453,7 +459,7 @@ EOF
exit (0);
}
EOF
($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
(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]*//'`
@@ -550,7 +556,7 @@ EOF
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*T3E:*:*:*)
echo t3e-cray-unicosmk${UNAME_RELEASE}
echo alpha-cray-unicosmk${UNAME_RELEASE}
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
@@ -588,7 +594,7 @@ EOF
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/[-_].*/\./'`
@@ -618,12 +624,6 @@ 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
armv*) UNAME_MACHINE=$UNAME_MACHINE ;;
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. cd to the root directory to prevent
@@ -636,11 +636,38 @@ 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 ;;
*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
@@ -670,7 +697,9 @@ EOF
fi
fi
rm -f $dummy.c $dummy
echo powerpc-unknown-linux-gnu${LIBC} ; exit 0 ;;
echo powerpc-unknown-linux-gnu${LIBC}
exit 0
;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
@@ -797,19 +826,21 @@ 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*)
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/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=i585
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}${UNAME_VERSION}-sysv${UNAME_RELEASE}
# 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:*)
if test -f /usr/options/cb.name; then
@@ -943,6 +974,9 @@ EOF
*: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
Vendored
+31 -14
View File
@@ -105,7 +105,7 @@ case $os in
-scout)
;;
-wrs)
os=vxworks
os=-vxworks
basic_machine=$1
;;
-hiux*)
@@ -156,13 +156,17 @@ 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 \
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 \
@@ -171,12 +175,12 @@ case $basic_machine in
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
| mips64vr5000 | miprs64vr5000el \
| mips64vr5000 | miprs64vr5000el | mcore \
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
| thumb | d10v)
| thumb | d10v | fr30)
basic_machine=$basic_machine-unknown
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65)
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
;;
# We use `pc' rather than `unknown'
@@ -191,7 +195,8 @@ 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-* | h8500-* | i960-* \
@@ -204,10 +209,10 @@ case $basic_machine in
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
| mipstx39-* | mipstx39el-* \
| mipstx39-* | mipstx39el-* | mcore-* \
| f301-* | armv*-* | t3e-* \
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
| thumb-* | v850-* | d30v-* | tic30-* | c30-* )
| 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.
@@ -425,7 +430,6 @@ case $basic_machine in
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
os=-mvs
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i[34567]86v32)
@@ -460,6 +464,9 @@ case $basic_machine in
basic_machine=i386-unknown
os=-mingw32
;;
i386-qnx | qnx)
basic_machine=i386-qnx
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
@@ -488,7 +495,7 @@ case $basic_machine in
miniframe)
basic_machine=m68000-convergent
;;
*mint | *MiNT)
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
@@ -514,6 +521,10 @@ case $basic_machine in
basic_machine=i386-unknown
os=-msdos
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -523,7 +534,7 @@ case $basic_machine in
os=-netbsd
;;
netwinder)
basic_machine=armv4l-corel
basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
@@ -907,7 +918,7 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -openstep* | -oskit*)
| -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
@@ -926,6 +937,9 @@ case $os in
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
;;
-osfrose*)
os=-osfrose
;;
@@ -963,6 +977,9 @@ case $os in
-oss*)
os=-sysv3
;;
-qnx)
os=-qnx4
;;
-svr4)
os=-sysv4
;;
@@ -1012,7 +1029,7 @@ case $basic_machine in
*-acorn)
os=-riscix1.2
;;
arm*-corel)
arm*-rebel)
os=-linux
;;
arm*-semi)
@@ -1186,7 +1203,7 @@ case $basic_machine in
-genix*)
vendor=ns
;;
-mvs*)
-mvs* | -opened*)
vendor=ibm
;;
-ptx*)
+485 -105
View File
@@ -29,7 +29,7 @@ AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
#
GTK_MAJOR_VERSION=1
GTK_MINOR_VERSION=3
GTK_MICRO_VERSION=0
GTK_MICRO_VERSION=1
GTK_INTERFACE_AGE=0
GTK_BINARY_AGE=0
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
@@ -53,10 +53,27 @@ AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
GDK_PIXBUF_MAJOR=0
GDK_PIXBUF_MINOR=8
GDK_PIXBUF_MICRO=0
GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
AC_SUBST(GDK_PIXBUF_MAJOR)
AC_SUBST(GDK_PIXBUF_MINOR)
AC_SUBST(GDK_PIXBUF_MICRO)
AC_SUBST(GDK_PIXBUF_VERSION)
# For automake.
VERSION=$GTK_VERSION
PACKAGE=gtk+
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"gtk2")
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
@@ -100,6 +117,18 @@ AC_ARG_WITH(locale, [ --with-locale=LOCALE locale name you want to use ])
AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ])
gdktarget=x11
gdktargetlib=libgdk-x11-1.3.la
gtktargetlib=libgtk-x11-1.3.la
AC_ARG_WITH(gdktarget, [ --with-gdktarget=[x11/nanox/linux-fb] select GDK target [default=x11] ],
gdktarget=$with_gdktarget)
AC_SUBST(gdktarget)
case $gdktarget in
x11|nanox|linux-fb) ;;
*) AC_MSG_ERROR([Invalid target for GDK: use x11, nanox or linux-fb.]);;
esac
if test "x$enable_debug" = "xyes"; then
test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
@@ -171,17 +200,19 @@ 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_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="ca cs da de el es et eu fi fr ga gl hr hu it ja ko lt nl no pl pt pt_BR ru sk sl sv tr uk wa zh_TW.Big5 zh_CN.GB2312"
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
LIBS="$LIBS $INTLLIBS"
@@ -199,13 +230,13 @@ LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
int main (void) { return (log(1) != log(1.)); }],
AC_MSG_RESULT(none needed),
gtk_save_CFLAGS=$CFLAGS
gtk_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -std1"
AC_TRY_RUN([#include <math.h>
int main (void) { return (log(1) != log(1.)); }],
AC_MSG_RESULT(-std1),
AC_MSG_RESULT()
CFLAGS=$gtk_save_CFLAGS
CFLAGS="$gtk_save_CFLAGS"
AC_MSG_WARN(
[No ANSI prototypes found in library. (-std1 didn't work.)]),
true
@@ -234,12 +265,12 @@ dnl NeXTStep cc seems to need this
AC_MSG_CHECKING([for extra flags for POSIX compliance])
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
AC_MSG_RESULT(none needed),
gtk_save_CFLAGS=$CFLAGS
gtk_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -posix"
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
AC_MSG_RESULT(-posix),
AC_MSG_RESULT()
CFLAGS=$gtk_save_CFLAGS
CFLAGS="$gtk_save_CFLAGS"
AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
if test x$with_glib = xyes ; then
@@ -250,36 +281,36 @@ fi
if test x$with_glib = x ; then
# Look for separately installed glib
AM_PATH_GLIB(1.3.0,,
AM_PATH_GLIB_2_0(1.3.1,,
AC_MSG_ERROR([
*** GLIB 1.3.0 or better is required. The latest version of GLIB
*** GLIB 1.3.1 or better is required. The latest version of GLIB
*** is always available from ftp://ftp.gtk.org/.]),
gmodule gthread)
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_cflags=`$GLIB_CONFIG_2_0 glib gobject gmodule --cflags`
glib_thread_cflags="$GLIB_CFLAGS"
glib_libs=`$GLIB_CONFIG glib gmodule --libs`
glib_libs=`$GLIB_CONFIG_2_0 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)
GLIB_CONFIG=$with_glib/glib-config
if test -x $GLIB_CONFIG ; then
GLIB_CONFIG_2_0=$with_glib/glib-config-2.0
if test -x $GLIB_CONFIG_2_0 ; then
:
else
AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured])
fi
# 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_cflags=`$GLIB_CONFIG_2_0 --cflags gmodule`
glib_thread_cflags=`$GLIB_CONFIG_2_0 --cflags gmodule gthread`
glib_libs=`$GLIB_CONFIG_2_0 --libs gmodule`
glib_thread_libs=`$GLIB_CONFIG_2_0 --libs gmodule gthread`
glib_release=`$GLIB_CONFIG --version | sed 's%\\.[[0-9]]*$%%'`
glib_release=`$GLIB_CONFIG_2_0 --version | sed 's%\\.[[0-9]]*$%%'`
# canonicalize relative paths
case $with_glib in
@@ -292,7 +323,7 @@ else
esac
GLIB_CFLAGS="-I$glib_dir -I$glib_dir/gmodule"
GLIB_LIBS="$glib_dir/libglib.la $glib_dir/gmodule/libgmodule.la"
GLIB_LIBS="$glib_dir/libglib-1.3.la $glib_dir/gmodule/libgmodule-1.3.la"
GLIB_DEPLIBS=
AC_SUBST(GLIB_CFLAGS)
@@ -309,46 +340,47 @@ 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
AC_PATH_XTRA
if test "x$x_includes" = "x"; then
x_includes="/usr/include"
fi
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
if test "x$gdktarget" = "xx11"; then
# Find the X11 include and library directories
AC_PATH_X
AC_PATH_XTRA
if test "x$no_x" = "xyes"; then
AC_MSG_ERROR([
if test "x$x_includes" = "x"; then
x_includes="/usr/include"
fi
CFLAGS="$CFLAGS $X_CFLAGS"
LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
if test "x$no_x" = "xyes"; then
AC_MSG_ERROR([
*** X libraries or include files not found. Check 'config.log' for
*** more details.])
fi
fi
# Checks for libraries.
# Check for the X11 library
AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS",
AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
$X_EXTRA_LIBS)
# Checks for libraries.
# Check for the X11 library
AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS",
AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
$X_EXTRA_LIBS)
if test "x$enable_shm" = "xyes"; then
# Check for the Xext library (needed for XShm extention)
AC_CHECK_LIB(Xext, XShmAttach,
x_libs="-lXext $x_libs",
# On AIX, it is in XextSam instead, but we still need -lXext
AC_CHECK_LIB(XextSam, XShmAttach,
x_libs="-lXextSam -lXext $x_libs",
no_xext_lib=yes, $x_libs),
$x_libs)
fi
if test "x$enable_shm" = "xyes"; then
# Check for the Xext library (needed for XShm extention)
AC_CHECK_LIB(Xext, XShmAttach,
x_libs="-lXext $x_libs",
# On AIX, it is in XextSam instead, but we still need -lXext
AC_CHECK_LIB(XextSam, XShmAttach,
x_libs="-lXextSam -lXext $x_libs",
no_xext_lib=yes, $x_libs),
$x_libs)
fi
# Check for shaped window extension
# Check for shaped window extension
AC_CHECK_LIB(Xext, XShapeCombineMask,
AC_CHECK_LIB(Xext, XShapeCombineMask,
if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
x_libs="-lXext $x_libs"
fi
@@ -356,60 +388,163 @@ AC_CHECK_LIB(Xext, XShapeCombineMask,
,
$x_libs)
# Check for XConvertCase (X11R6 specific)
# Check for XConvertCase (X11R6 specific)
AC_CHECK_LIB(X11, XConvertCase,
AC_CHECK_LIB(X11, XConvertCase,
AC_DEFINE(HAVE_XCONVERTCASE),
,
$x_libs)
# Check for XIM support.
# Check for XIM support.
AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
: ,
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.
# 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*)
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)
esac
fi
fi
x_cflags="$X_CFLAGS"
x_ldflags="$X_LDFLAGS $X_LIBS"
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
# set up things for XInput
x_cflags="$X_CFLAGS"
x_ldflags="$X_LDFLAGS $X_LIBS"
if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then
AC_DEFINE(XINPUT_GXI)
xinput_progs=gxid
x_libs="-lXi $x_libs"
elif test "x$with_xinput" = "xxfree"; then
AC_DEFINE(XINPUT_XFREE)
x_libs="-lXi $x_libs"
# set up things for XInput
if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then
AC_DEFINE(XINPUT_GXI)
xinput_progs=gxid
x_libs="-lXi $x_libs"
elif test "x$with_xinput" = "xxfree"; then
AC_DEFINE(XINPUT_XFREE)
x_libs="-lXi $x_libs"
else
AC_DEFINE(XINPUT_NONE)
fi
AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi)
AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree)
if test "x$enable_shm" = "xyes"; then
# Check for shared memory
AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
# Check for the X shared memory extension header file
AC_MSG_CHECKING(X11/extensions/XShm.h)
if test "x$no_xext_lib" = "xyes"; then
AC_MSG_RESULT(no)
no_xshm=yes
else
if test -f "$x_includes/X11/extensions/XShm.h"; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_XSHM_H)
else
AC_MSG_RESULT(no)
no_xshm=yes
fi
fi
fi
more_cflags="$x_cflags"
more_ldflags="$x_ldflags"
more_libs="$x_libs"
more_includes="$x_includes"
# these are already defined above
#gdktargetlib = "libgdk-x11-1.3.la"
#gtktargetlib = "libgtk-x11-1.3.la"
AM_CONDITIONAL(USE_X11, true)
else
AC_DEFINE(XINPUT_NONE)
AM_CONDITIONAL(USE_X11, false)
fi
AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi)
AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree)
if test "x$gdktarget" = "xnanox"; then
AC_CHECK_LIB(nano-X, GrOpen,,AC_MSG_ERROR([nano-X libraries not found.]))
# nano-X may require additional libraries
more_cflags=
more_ldflags=
more_libs="-lnano-X"
more_includes=
gdktargetlib="libgdk-nanox-1.3.la"
gtktargetlib="libgtk-nanox-1.3.la"
with_xinput=no
AC_DEFINE(XINPUT_NONE)
x_cflags=
x_includes=
x_ldflags=
x_libs=
xinput_progs=
AM_CONDITIONAL(USE_NANOX, true)
else
AM_CONDITIONAL(USE_NANOX, false)
fi
if test "x$gdktarget" = "xlinux-fb"; then
more_cflags=
more_ldflags=
more_libs=
more_includes=
gdktargetlib="libgdk-linux-fb-1.3.la"
gtktargetlib="libgtk-linux-fb-1.3.la"
with_xinput=no
AC_DEFINE(XINPUT_NONE)
x_cflags=
x_includes=
x_ldflags=
x_libs=
xinput_progs=
AM_CONDITIONAL(USE_LINUX_FB, true)
else
AM_CONDITIONAL(USE_LINUX_FB, false)
fi
#
# Check for Pango
#
AC_PATH_PROG(PANGO_CONFIG, pango-config, no)
if test x$PANGO_CONFIG = xno ; then
AC_MSG_ERROR([*** pango-config not found])
fi
if test "x$gdktarget" = "xx11"; then
PANGO_CFLAGS="`$PANGO_CONFIG --cflags pangox`"
PANGO_LIBS="`$PANGO_CONFIG --libs pangox`"
else
PANGO_CFLAGS="`$PANGO_CONFIG --cflags pango`"
PANGO_LIBS="`$PANGO_CONFIG --libs pango`"
fi
CFLAGS="$CFLAGS $PANGO_CFLAGS"
AC_SUBST(PANGO_LIBS)
AC_SUBST(PANGO_CFLAGS)
AC_CHECK_LIB(pango, pango_context_new, :, AC_MSG_ERROR([
*** Pango not found. Pango is required to build
*** GTK+. For more information see http://www.pango.org]), $PANGO_LIBS $x_ldflags $x_libs)
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"
@@ -420,26 +555,13 @@ AC_SUBST(x_ldflags)
AC_SUBST(x_libs)
AC_SUBST(xinput_progs)
if test "x$enable_shm" = "xyes"; then
# Check for shared memory
AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
AC_SUBST(more_cflags)
AC_SUBST(more_includes)
AC_SUBST(more_ldflags)
AC_SUBST(more_libs)
AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)
# Check for the X shared memory extension header file
AC_MSG_CHECKING(X11/extensions/XShm.h)
if test "x$no_xext_lib" = "xyes"; then
AC_MSG_RESULT(no)
no_xshm=yes
else
if test -f "$x_includes/X11/extensions/XShm.h"; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_XSHM_H)
else
AC_MSG_RESULT(no)
no_xshm=yes
fi
fi
fi
# Check if X_LOCALE definition is necessary
@@ -541,6 +663,240 @@ AC_SUBST(GTK_DEBUG_FLAGS)
AC_SUBST(GTK_XIM_FLAGS)
AC_SUBST(GTK_LOCALE_FLAGS)
##################################################
# Checks for gdk-pixbuf
##################################################
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
AC_ARG_ENABLE(modules, [ --disable-modules Disables dynamic module loading],[
if test x$withval = xyes; then
with_modules=yes
else
with_modules=no
fi
])
dynworks=false
deps=
if test x$with_modules = xno; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(whether dynamic modules work)
oLIBS="$LIBS"
oCFLAGS="$CFLAGS"
CFLAGS="$GLIB_CFLAGS"
LIBS="$GLIB_LIBS"
AC_TRY_RUN([
#include <glib.h>
#include <gmodule.h>
main ()
{
if (g_module_supported ())
exit (0);
else
exit (1);
}
], dynworks=true)
LIBS="$oLIBS"
CFLAGS="$oCFLAGS"
fi
dnl Now we check to see if our libtool supports shared lib deps
dnl (in a rather ugly way even)
if $dynworks; then
pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} libtool --config"
pixbuf_deplibs_check=`$pixbuf_libtool_config | \
grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
if test "x$pixbuf_deplibs_check" = "xnone" || \
test "x$pixbuf_deplibs_check" = "xunknown" || \
test "x$pixbuf_deplibs_check" = "x"; then
dynworks=false
fi
fi
if $dynworks; then
AC_DEFINE(USE_GMODULE)
GMODULE_LIBS="`$GLIB_CONFIG_2_0 --libs gmodule`"
GMODULE_FLAGS="`$GLIB_CONFIG_2_0 --cflags gmodule`"
AC_SUBST(GMODULE_LIBS)
AC_SUBST(GMODULE_FLAGS)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl Test for libtiff
if test -z "$LIBTIFF"; then
AC_CHECK_LIB(tiff, TIFFReadScanline,
AC_CHECK_HEADER(tiffio.h,
TIFF='tiff'; LIBTIFF='-ltiff',
AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
AC_CHECK_LIB(tiff, TIFFWriteScanline,
AC_CHECK_HEADER(tiffio.h,
TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
AC_CHECK_LIB(tiff34, TIFFFlushData,
AC_CHECK_HEADER(tiffio.h,
TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm), -ljpeg -lz -lm), -lm)
fi
dnl Test for libjpeg
if test -z "$LIBJPEG"; then
AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
jpeg_ok=yes,
jpeg_ok=no
AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
if test "$jpeg_ok" = yes; then
AC_MSG_CHECKING([for jpeglib.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <jpeglib.h>],
jpeg_ok=yes,
jpeg_ok=no)
AC_MSG_RESULT($jpeg_ok)
if test "$jpeg_ok" = yes; then
LIBJPEG='-ljpeg'
AC_CHECK_LIB(jpeg, jpeg_simple_progression,
AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
AC_MSG_WARN(JPEG library does not support progressive saving.))
else
AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
fi
fi
fi
dnl Test for libpng
if test -z "$LIBPNG"; then
AC_CHECK_LIB(png, png_read_info,
AC_CHECK_HEADER(png.h,
png_ok=yes,
png_ok=no),
AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
if test "$png_ok" = yes; then
AC_MSG_CHECKING([for png_structp in png.h])
AC_TRY_COMPILE([#include <png.h>],
[png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
png_ok=yes,
png_ok=no)
AC_MSG_RESULT($png_ok)
if test "$png_ok" = yes; then
PNG='png'; LIBPNG='-lpng -lz'
else
AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
fi
else
AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
fi
fi
deps="$LIBTIFF $LIBJPEG $LIBPNG"
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT
AC_TYPE_SIGNAL
AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
GDK_PIXBUF_LIBDIR='-L${libdir}'
GDK_PIXBUF_INCLUDEDIR="-I${includedir} $GTK_CFLAGS"
GDK_PIXBUF_LIBS="$GLIB_LIBS -lgdk_pixbuf $deps $GTK_LIBS"
AC_SUBST(STATIC_LIB_DEPS)
STATIC_LIB_DEPS="$deps"
AC_SUBST(GDK_PIXBUF_LIBDIR)
AC_SUBST(GDK_PIXBUF_INCLUDEDIR)
AC_SUBST(GDK_PIXBUF_LIBS)
# Checks to see if we should compile in MMX support (there will be
# a runtime test when the code is actually run to see if it should
# be used - this just checks if we can compile it.)
#
# This code is partially taken from Mesa
#
AC_MSG_CHECKING(for x86 platform)
case $host_cpu in
i386|i486|i586|i686|i786|k6|k7)
use_x86_asm=yes
;;
*)
use_x86_asm=no
esac
AC_MSG_RESULT($use_x86_asm)
use_mmx_asm=no
if test $use_x86_asm = yes; then
save_ac_ext=$ac_ext
ac_ext=S
AC_MSG_CHECKING(compiler support for MMX)
cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
if AC_TRY_EVAL(ac_compile); then
use_mmx_asm=yes
fi
ac_ext=$save_ac_ext
if test $use_mmx_asm = yes; then
AC_DEFINE(USE_MMX)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
##################################################
# Checks for gtk-doc and docbook-tools
##################################################
AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
AC_SUBST(HAVE_GTK_DOC)
AC_CHECK_PROG(DB2HTML, db2html, true, false)
AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
dnl Let people disable the gtk-doc stuff.
AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)
if test x$enable_gtk_doc = xauto ; then
if test x$GTKDOC = xtrue ; then
enable_gtk_doc=yes
else
enable_gtk_doc=no
fi
fi
dnl NOTE: We need to use a separate automake conditional for this
dnl to make this work with the tarballs.
AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
GDK_PIXBUF_DIR=`(cd $srcdir; pwd)`
AC_SUBST(GDK_PIXBUF_DIR)
##################################################
# Output commands
##################################################
AC_OUTPUT_COMMANDS([
## Generate `gdk/gdkconfig.h' in two cases
@@ -600,8 +956,18 @@ _______EOF
esac
],[
# Currently we always use X11 on those systems where we run configure...
gdk_windowing='
if test "x$gdktarget" = "xx11" ; then
gdk_windowing='
#define GDK_WINDOWING_X11'
elif test "x$gdktarget" = "xnanox" ; then
gdk_windowing='
#define GDK_WINDOWING_NANOX'
elif test "x$gdktarget" = "xlinux-fb" ; then
gdk_windowing='
#define GDK_WINDOWING_FB
#define GDK_NATIVE_WINDOW_POINTER'
fi
if test x$gdk_wchar_h = xyes; then
gdk_wc='
#define GDK_HAVE_WCHAR_H 1'
@@ -618,17 +984,31 @@ fi
])
AC_PATH_PROG(SGML2HTML, sgml2html, no)
AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno)
AC_OUTPUT([
gtk+.spec
docs/gtk-config.1
Makefile
gtk-config
gtk-config-2.0
po/Makefile.in
demos/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/gdk-pixbuf/Makefile
docs/faq/Makefile
docs/tutorial/Makefile
gdk-pixbuf/Makefile
gdk-pixbuf/gdk-pixbuf-features.h
gdk-pixbuf/pixops/Makefile
gdk/Makefile
gdk/x11/Makefile
gdk/win32/Makefile
gdk/nanox/Makefile
gdk/linux-fb/Makefile
gtk/Makefile
gtk/gtkfeatures.h
gtk/gtkcompat.h
], [chmod +x gtk-config])
modules/Makefile
modules/linux-fb/Makefile
], [chmod +x gtk-config-2.0])
+9
View File
@@ -0,0 +1,9 @@
Makefile
Makefile.in
.libs
.deps
testanimation
testpixbuf-drawable
testpixbuf-scale
testpixbuf
pixbuf-demo
+67
View File
@@ -0,0 +1,67 @@
## Makefile.am for gtk+/demos
INCLUDES = @STRIP_BEGIN@ \
-I$(top_srcdir) \
-I$(top_builddir)/gdk \
-DGTK_DISABLE_COMPAT_H \
@GTK_DEBUG_FLAGS@ \
@GTK_XIM_FLAGS@ \
@GTK_LOCALE_FLAGS@ \
@PANGO_CFLAGS@ \
@GLIB_CFLAGS@ \
@more_cflags@ \
@STRIP_END@
DEPS = \
$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
$(top_builddir)/gdk/@gdktargetlib@ \
$(top_builddir)/gtk/@gtktargetlib@
LDADDS = @STRIP_BEGIN@ \
$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
$(top_builddir)/gdk/@gdktargetlib@ \
$(top_builddir)/gtk/@gtktargetlib@ \
@more_ldflags@ \
@more_libs@ \
@GDK_WLIBS@ \
@PANGO_LIBS@ \
@GLIB_LIBS@ \
@GTK_LIBS_EXTRA@ \
-lm \
@STRIP_END@
noinst_PROGRAMS = \
testpixbuf \
testpixbuf-drawable \
testanimation \
testpixbuf-scale \
pixbuf-demo
testpixbuf_DEPENDENCIES = $(DEPS)
testpixbuf_drawable_DEPENDENCIES = $(DEPS)
testpixbuf_scale_DEPENDENCIES = $(DEPS)
testanimation_DEPENDENCIES = $(DEPS)
pixbuf_demo_DEPENDENCIES = $(DEPS)
testpixbuf_LDADD = $(LDADDS) -lgmodule
testpixbuf_drawable_LDADD = $(LDADDS)
testpixbuf_scale_LDADD = $(LDADDS)
testanimation_LDADD = $(LDADDS) -lgmodule
pixbuf_demo_LDADD = $(LDADDS) -lgmodule
testpixbuf_SOURCES = testpixbuf.c pixbuf-init.c
testpixbuf_drawable_SOURCES = testpixbuf-drawable.c pixbuf-init.c
testpixbuf_scale_SOURCES = testpixbuf-scale.c pixbuf-init.c
testanimation_SOURCES = testanimation.c pixbuf-init.c
pixbuf_demo_SOURCES = pixbuf-demo.c pixbuf-init.c
EXTRA_DIST = \
apple-red.png \
background.jpg \
gnome-applets.png \
gnome-calendar.png \
gnome-foot.png \
gnome-gimp.png \
gnome-gmush.png \
gnome-gsame.png \
gnu-keys.png
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

+230
View File
@@ -0,0 +1,230 @@
/* GdkPixbuf library - Scaling and compositing demo
*
* Copyright (C) 1999 The Free Software Foundation
*
* Authors: Federico Mena-Quintero <federico@gimp.org>
*
* 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 <stdlib.h>
#include <gtk/gtk.h>
#include <math.h>
#define FRAME_DELAY 50
#define BACKGROUND_NAME "background.jpg"
static const char *image_names[] = {
"apple-red.png",
"gnome-applets.png",
"gnome-calendar.png",
"gnome-foot.png",
"gnome-gmush.png",
"gnome-gimp.png",
"gnome-gsame.png",
"gnu-keys.png"
};
#define N_IMAGES (sizeof (image_names) / sizeof (image_names[0]))
/* Current frame */
static GdkPixbuf *frame;
/* Background image */
static GdkPixbuf *background;
int back_width, back_height;
/* Images */
static GdkPixbuf *images[N_IMAGES];
/* Widgets */
GtkWidget *da;
/* Loads the images for the demo and returns whether the operation succeeded */
static gboolean
load_pixbufs (void)
{
int i;
background = gdk_pixbuf_new_from_file (BACKGROUND_NAME);
if (!background)
return FALSE;
back_width = gdk_pixbuf_get_width (background);
back_height = gdk_pixbuf_get_height (background);
for (i = 0; i < N_IMAGES; i++) {
images[i] = gdk_pixbuf_new_from_file (image_names[i]);
if (!images[i])
return FALSE;
}
return TRUE;
}
/* Expose callback for the drawing area */
static gint
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
guchar *pixels;
int rowstride;
rowstride = gdk_pixbuf_get_rowstride (frame);
pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 3;
gdk_draw_rgb_image_dithalign (widget->window,
widget->style->black_gc,
event->area.x, event->area.y,
event->area.width, event->area.height,
GDK_RGB_DITHER_NORMAL,
pixels, rowstride,
event->area.x, event->area.y);
return TRUE;
}
#define CYCLE_LEN 60
static int frame_num;
/* Timeout handler to regenerate the frame */
static gint
timeout (gpointer data)
{
double f;
int i;
double xmid, ymid;
double radius;
gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height,
frame, 0, 0);
f = (double) (frame_num % CYCLE_LEN) / CYCLE_LEN;
xmid = back_width / 2.0;
ymid = back_height / 2.0;
radius = MIN (xmid, ymid) / 2.0;
for (i = 0; i < N_IMAGES; i++) {
double ang;
int xpos, ypos;
int iw, ih;
double r;
GdkRectangle r1, r2, dest;
double k;
ang = 2.0 * M_PI * (double) i / N_IMAGES - f * 2.0 * M_PI;
iw = gdk_pixbuf_get_width (images[i]);
ih = gdk_pixbuf_get_height (images[i]);
r = radius + (radius / 3.0) * sin (f * 2.0 * M_PI);
xpos = floor (xmid + r * cos (ang) - iw / 2.0 + 0.5);
ypos = floor (ymid + r * sin (ang) - ih / 2.0 + 0.5);
k = (i & 1) ? sin (f * 2.0 * M_PI) : cos (f * 2.0 * M_PI);
k = 2.0 * k * k;
k = MAX (0.25, k);
r1.x = xpos;
r1.y = ypos;
r1.width = iw * k;
r1.height = ih * k;
r2.x = 0;
r2.y = 0;
r2.width = back_width;
r2.height = back_height;
if (gdk_rectangle_intersect (&r1, &r2, &dest))
gdk_pixbuf_composite (images[i],
frame,
dest.x, dest.y,
dest.width, dest.height,
xpos, ypos,
k, k,
GDK_INTERP_NEAREST,
((i & 1)
? MAX (127, fabs (255 * sin (f * 2.0 * M_PI)))
: MAX (127, fabs (255 * cos (f * 2.0 * M_PI)))));
}
gtk_widget_draw (da, NULL);
frame_num++;
return TRUE;
}
static guint timeout_id;
/* Destroy handler for the window */
static void
destroy_cb (GtkObject *object, gpointer data)
{
gtk_timeout_remove (timeout_id);
timeout_id = 0;
gtk_main_quit ();
}
extern void pixbuf_init();
int
main (int argc, char **argv)
{
GtkWidget *window;
pixbuf_init ();
gtk_init (&argc, &argv);
gdk_rgb_init ();
if (!load_pixbufs ()) {
g_message ("main(): Could not load all the pixbufs!");
exit (EXIT_FAILURE);
}
frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, back_width, back_height);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize (window, back_width, back_height);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, FALSE);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy_cb), NULL);
da = gtk_drawing_area_new ();
gtk_signal_connect (GTK_OBJECT (da), "expose_event",
GTK_SIGNAL_FUNC (expose_cb), NULL);
gtk_container_add (GTK_CONTAINER (window), da);
timeout_id = gtk_timeout_add (FRAME_DELAY, timeout, NULL);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
+19
View File
@@ -0,0 +1,19 @@
#include <glib.h>
#include <sys/stat.h>
#include <stdlib.h>
static gboolean
file_exists (const char *filename)
{
struct stat statbuf;
return stat (filename, &statbuf) == 0;
}
void
pixbuf_init ()
{
if (file_exists ("../gdk-pixbuf/.libs/libpixbufloader-pnm.so"))
putenv ("GDK_PIXBUF_MODULEDIR=../gdk-pixbuf/.libs");
}
+44 -29
View File
@@ -19,13 +19,12 @@
*/
#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-io.h"
#include "gdk-pixbuf-loader.h"
#include <gtk/gdk-pixbuf-loader.h>
typedef struct {
FILE *imagefile;
@@ -201,22 +200,17 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
if (!pixbuf->art_pixbuf) {
g_warning ("art_pixbuf is NULL in expose_func!!\n");
return;
}
if (pixbuf->art_pixbuf->has_alpha) {
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,
pixbuf->art_pixbuf->pixels
+ (event->area.y * pixbuf->art_pixbuf->rowstride)
+ (event->area.x * pixbuf->art_pixbuf->n_channels),
pixbuf->art_pixbuf->rowstride);
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,
@@ -224,10 +218,10 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
event->area.width,
event->area.height,
GDK_RGB_DITHER_NORMAL,
pixbuf->art_pixbuf->pixels
+ (event->area.y * pixbuf->art_pixbuf->rowstride)
+ (event->area.x * pixbuf->art_pixbuf->n_channels),
pixbuf->art_pixbuf->rowstride);
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));
}
}
@@ -238,11 +232,9 @@ config_func (GtkWidget *drawing_area, GdkEventConfigure *event, gpointer data)
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) != (pixbuf->art_pixbuf->width)) ||
((event->height) != (pixbuf->art_pixbuf->height)))
if (((event->width) != gdk_pixbuf_get_width (pixbuf)) ||
((event->height) != gdk_pixbuf_get_height (pixbuf)))
gdk_pixbuf_scale(pixbuf, event->width, event->height);
#endif
}
@@ -257,8 +249,8 @@ new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
GtkWidget *drawing_area;
gint w, h;
w = pixbuf->art_pixbuf->width;
h = pixbuf->art_pixbuf->height;
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
window = gtk_widget_new (gtk_window_get_type (),
"GtkObject::user_data", NULL,
@@ -308,6 +300,7 @@ new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
return window;
}
#if 0
static gint
update_timeout(gpointer data)
@@ -369,8 +362,12 @@ progressive_updated_callback(GdkPixbufLoader* loader, guint x, guint y, guint wi
return;
}
#endif
static int readlen = 4096;
extern void pixbuf_init();
int
main (int argc, char **argv)
{
@@ -378,7 +375,8 @@ main (int argc, char **argv)
int found_valid = FALSE;
GdkPixbufAnimation *animation;
GdkPixbufLoader *pixbuf_loader;
pixbuf_init ();
gtk_init (&argc, &argv);
@@ -387,7 +385,6 @@ main (int argc, char **argv)
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");
@@ -411,14 +408,31 @@ main (int argc, char **argv)
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 = animation->frames; listptr; listptr = listptr->next){
g_print ("in a frame\n");
new_testrgb_window (((GdkPixbufFrame *)listptr->data)->pixbuf, "File");
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;
}
@@ -427,6 +441,7 @@ main (int argc, char **argv)
{
GtkWidget* rgb_window = NULL;
ProgressFileStatus status;
GdkPixbufLoader *pixbuf_loader;
pixbuf_loader = gdk_pixbuf_loader_new ();
status.loader = pixbuf_loader;
+17 -15
View File
@@ -1,7 +1,6 @@
#include <config.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include "gdk-pixbuf.h"
#include <gdk/x11/gdkx.h>
int close_app(GtkWidget *widget, gpointer data)
{
@@ -15,7 +14,7 @@ int expose_cb(GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
pixbuf = (GdkPixbuf *) gtk_object_get_data(GTK_OBJECT(drawing_area),
"pixbuf");
if(pixbuf->art_pixbuf->has_alpha)
if(gdk_pixbuf_get_has_alpha (pixbuf))
{
gdk_draw_rgb_32_image(drawing_area->window,
drawing_area->style->black_gc,
@@ -23,10 +22,10 @@ int expose_cb(GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
evt->area.width,
evt->area.height,
GDK_RGB_DITHER_MAX,
pixbuf->art_pixbuf->pixels +
(evt->area.y * pixbuf->art_pixbuf->rowstride) +
(evt->area.x * pixbuf->art_pixbuf->n_channels),
pixbuf->art_pixbuf->rowstride);
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
{
@@ -36,10 +35,10 @@ int expose_cb(GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
evt->area.width,
evt->area.height,
GDK_RGB_DITHER_NORMAL,
pixbuf->art_pixbuf->pixels +
(evt->area.y * pixbuf->art_pixbuf->rowstride) +
(evt->area.x * pixbuf->art_pixbuf->n_channels),
pixbuf->art_pixbuf->rowstride);
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;
}
@@ -52,7 +51,7 @@ int configure_cb(GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
"pixbuf");
g_print("X:%d Y:%d\n", evt->width, evt->height);
if(evt->width != pixbuf->art_pixbuf->width || evt->height != pixbuf->art_pixbuf->height)
if(evt->width != gdk_pixbuf_get_width (pixbuf) || evt->height != gdk_pixbuf_get_height (pixbuf))
{
GdkWindow *root;
GdkPixbuf *new_pixbuf;
@@ -67,6 +66,8 @@ int configure_cb(GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
return FALSE;
}
extern void pixbuf_init();
int main(int argc, char **argv)
{
GdkWindow *root;
@@ -75,12 +76,13 @@ int main(int argc, char **argv)
GtkWidget *drawing_area;
GdkPixbuf *pixbuf;
pixbuf_init ();
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,
@@ -97,8 +99,8 @@ int main(int argc, char **argv)
drawing_area = gtk_drawing_area_new();
gtk_drawing_area_size(GTK_DRAWING_AREA(drawing_area),
pixbuf->art_pixbuf->width,
pixbuf->art_pixbuf->height);
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);
+21 -18
View File
@@ -1,17 +1,16 @@
#include <gtk/gtk.h>
#include "gdk-pixbuf.h"
#include <stdio.h>
ArtFilterLevel filter_level = ART_FILTER_BILINEAR;
GdkInterpType interp_type = GDK_INTERP_BILINEAR;
int overall_alpha = 255;
GdkPixbuf *pixbuf;
GtkWidget *darea;
void
set_filter_level (GtkWidget *widget, gpointer data)
set_interp_type (GtkWidget *widget, gpointer data)
{
filter_level = GPOINTER_TO_UINT (data);
interp_type = GPOINTER_TO_UINT (data);
gtk_widget_queue_draw (darea);
}
@@ -32,14 +31,14 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
dest = gdk_pixbuf_new (ART_PIX_RGB, FALSE, 8, event->area.width, event->area.height);
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 / pixbuf->art_pixbuf->width,
(double) widget->allocation.height / pixbuf->art_pixbuf->height,
filter_level, overall_alpha,
(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],
@@ -52,6 +51,8 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
return TRUE;
}
extern void pixbuf_init();
int
main(int argc, char **argv)
{
@@ -62,6 +63,8 @@ main(int argc, char **argv)
GtkAdjustment *adjustment;
GtkRequisition scratch_requisition;
pixbuf_init ();
gtk_init (&argc, &argv);
gdk_rgb_init ();
@@ -87,28 +90,28 @@ main(int argc, char **argv)
menuitem = gtk_menu_item_new_with_label ("NEAREST");
gtk_signal_connect (GTK_OBJECT (menuitem), "activate",
GTK_SIGNAL_FUNC (set_filter_level),
GUINT_TO_POINTER (ART_FILTER_NEAREST));
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_filter_level),
GUINT_TO_POINTER (ART_FILTER_BILINEAR));
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_filter_level),
GUINT_TO_POINTER (ART_FILTER_TILES));
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_filter_level),
GUINT_TO_POINTER (ART_FILTER_HYPER));
GTK_SIGNAL_FUNC (set_interp_type),
GUINT_TO_POINTER (GDK_INTERP_HYPER));
gtk_container_add (GTK_CONTAINER (menu), menuitem);
optionmenu = gtk_option_menu_new ();
@@ -145,8 +148,8 @@ main(int argc, char **argv)
GTK_SIGNAL_FUNC (expose_cb), NULL);
gtk_window_set_default_size (GTK_WINDOW (window),
pixbuf->art_pixbuf->width,
scratch_requisition.height + pixbuf->art_pixbuf->height);
gdk_pixbuf_get_width (pixbuf),
scratch_requisition.height + gdk_pixbuf_get_height (pixbuf));
gtk_widget_show_all (window);
+20 -25
View File
@@ -1,4 +1,3 @@
/* testpixbuf -- test program for gdk-pixbuf code
* Copyright (C) 1999 Mark Crichton, Larry Ewing
*
@@ -19,13 +18,12 @@
*/
#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-io.h"
#include "gdk-pixbuf-loader.h"
#include <gtk/gdk-pixbuf-loader.h>
typedef struct {
FILE *imagefile;
@@ -34,7 +32,6 @@ typedef struct {
guchar *buf;
guint timeout;
guint readlen;
} ProgressFileStatus;
@@ -321,22 +318,17 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
pixbuf = (GdkPixbuf *)gtk_object_get_data(GTK_OBJECT(drawing_area), "pixbuf");
if (!pixbuf->art_pixbuf) {
g_warning ("art_pixbuf is NULL in expose_func!!\n");
return;
}
if (pixbuf->art_pixbuf->has_alpha) {
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,
pixbuf->art_pixbuf->pixels
+ (event->area.y * pixbuf->art_pixbuf->rowstride)
+ (event->area.x * pixbuf->art_pixbuf->n_channels),
pixbuf->art_pixbuf->rowstride);
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,
@@ -344,10 +336,10 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
event->area.width,
event->area.height,
GDK_RGB_DITHER_NORMAL,
pixbuf->art_pixbuf->pixels
+ (event->area.y * pixbuf->art_pixbuf->rowstride)
+ (event->area.x * pixbuf->art_pixbuf->n_channels),
pixbuf->art_pixbuf->rowstride);
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));
}
}
@@ -361,8 +353,8 @@ config_func (GtkWidget *drawing_area, GdkEventConfigure *event, gpointer data)
g_print("X:%d Y:%d\n", event->width, event->height);
#if 0
if (((event->width) != (pixbuf->art_pixbuf->width)) ||
((event->height) != (pixbuf->art_pixbuf->height)))
if (((event->width) != gdk_pixbuf_get_width (pixbuf)) ||
((event->height) != gdk_pixbuf_get_height (pixbuf)))
gdk_pixbuf_scale(pixbuf, event->width, event->height);
#endif
}
@@ -377,8 +369,8 @@ new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
GtkWidget *drawing_area;
gint w, h;
w = pixbuf->art_pixbuf->width;
h = pixbuf->art_pixbuf->height;
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
window = gtk_widget_new (gtk_window_get_type (),
"GtkObject::user_data", NULL,
@@ -491,6 +483,8 @@ progressive_updated_callback(GdkPixbufLoader* loader, guint x, guint y, guint wi
static int readlen = 4096;
extern void pixbuf_init();
int
main (int argc, char **argv)
{
@@ -500,6 +494,8 @@ main (int argc, char **argv)
GdkPixbuf *pixbuf;
GdkPixbufLoader *pixbuf_loader;
pixbuf_init ();
gtk_init (&argc, &argv);
gdk_rgb_set_verbose (TRUE);
@@ -507,7 +503,6 @@ main (int argc, char **argv)
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");
@@ -529,7 +524,7 @@ main (int argc, char **argv)
if (argc == 1) {
const gchar*** xpmp;
pixbuf = gdk_pixbuf_new_from_data ((guchar *) default_image, ART_PIX_RGB, FALSE,
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);
-1
View File
@@ -1,7 +1,6 @@
Makefile
Makefile.in
*.html
*.info*
*.dvi
*.ps
*.pg
-11
View File
@@ -1,11 +0,0 @@
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 *'.
+192
View File
@@ -0,0 +1,192 @@
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.
- Inserting and deleting text in GtkEntry though functions such
as gtk_entry_insert_text() now leave the cursor at its original
position in the text instead of moving it to the location of
the insertion/deletion.
- The ->label field of GtkFrame widgets has been removed. (As part of
a change to allow the arbitrary widgets in the title position.) The
text can now be retrieved with the new function gtk_frame_get_text().
- The 'font' and 'font_set' declarations in RC files are now ignored. There
is a new 'font_name' field that holds the string form of a Pango font
- A number of types in GDK have become subclasses of GObject. For the
most part, this should not break anyone's code. However, it's now
possible/encouraged to use g_object_ref()/g_object_unref() and other
GObject features with these GDK types. The converted types are:
GdkWindow, GdkDrawable, GdkPixmap, GdkImage, GdkGC, GdkDragContext,
GdkColormap
- All drawables including pixmaps used to have a type tag, the
GdkWindowType enumeration, which included GDK_WINDOW_PIXMAP.
GdkWindowType is now a property of GdkWindow _only_, and there is
no GDK_WINDOW_PIXMAP. You can use the GDK_IS_PIXMAP() macro to see
if you have a pixmap, if you need to know that.
- GtkStyle and GtkRcStyle are now subclasses of GObject as well. This
requires fairly extensive changes to theme engines quite badly, but
shouldn't affect most other code.
- xthickness/ythickness have moved from GtkStyleClass to GtkStyle
(from class to instance). This gives themes a bit more flexibility
and is generally more of the Right Thing. You can trivially fix
your code with s/style->klass->xthickness/style->xthickness/g and
same for ythickness.
- If you were using private GDK types, they have been rearranged
significantly. You shouldn't use private types. ;-)
- The visual for a widget, and also the default visual is now derived
from the colormap for the widget and the default colormap.
gtk_widget_set_visual(), gtk_widget_set_defualt_visual(), gtk_widget_push_visual()
and gtk_widget_pop_visual() now do nothing. Since the visual always
had to match that of the colormap, it is safe to simply delete
all references to these functions.
- A number of functions in GDK have been renamed for consistency and
clarity. #defines to provide backwards compatibility have been
included, but can be disabled by defineing GDK_DISABLE_COMPAT_H.
#define gdk_draw_pixmap gdk_draw_drawable
#define gdk_draw_bitmap gdk_draw_drawable
#define gdk_window_get_size gdk_drawable_get_size
#define gdk_window_get_type gdk_window_get_window_type
#define gdk_window_get_colormap gdk_drawable_get_colormap
#define gdk_window_set_colormap gdk_drawable_set_colormap
#define gdk_window_get_visual gdk_drawable_get_visual
#define gdk_window_ref gdk_drawable_ref
#define gdk_window_unref gdk_drawable_unref
#define gdk_bitmap_ref gdk_drawable_ref
#define gdk_bitmap_unref gdk_drawable_unref
#define gdk_pixmap_ref gdk_drawable_ref
#define gdk_pixmap_unref gdk_drawable_unref
#define gdk_gc_destroy gdk_gc_unref
#define gdk_image_destroy gdk_image_unref
#define gdk_cursor_destroy gdk_cursor_unref
(Note that g_object_ref() and g_object_unref() may be used for all of
the above.)
#define gdk_window_copy_area(drawable,gc,x,y,source_drawable,source_x,source_y,width,height) \
gdk_draw_pixmap(drawable,gc,source_drawable,source_x,source_y,x,y,width,height)
#define gdk_rgb_get_cmap gdk_rgb_get_colormap
- gdk_pixmap_foreign_new() no longer calls XFreePixmap() on the
pixmap when the GdkPixmap is finalized. This change corresponds
to the behavior of gdk_window_foreign_new(), and fixes a lot
of problems with code where the pixmap wasn't supposed to be
freed. If XFreePixmap() is needed, it can be done using the
destroy-notification facilities of g_object_set_data().
+6 -185
View File
@@ -1,176 +1,16 @@
## Process this file with automake to produce Makefile.in
info_TEXINFOS = gdk.texi gtk.texi
SUBDIRS = tutorial faq reference
man_MANS = gtk-config.1
TUTORIAL_FR_FILES=html/gtk_tut_fr-1.html \
html/gtk_tut_fr-2.html \
html/gtk_tut_fr-3.html \
html/gtk_tut_fr-4.html \
html/gtk_tut_fr-5.html \
html/gtk_tut_fr-6.html \
html/gtk_tut_fr-7.html \
html/gtk_tut_fr-8.html \
html/gtk_tut_fr-9.html \
html/gtk_tut_fr-10.html \
html/gtk_tut_fr-11.html \
html/gtk_tut_fr-12.html \
html/gtk_tut_fr-13.html \
html/gtk_tut_fr-14.html \
html/gtk_tut_fr-15.html \
html/gtk_tut_fr-16.html \
html/gtk_tut_fr-17.html \
html/gtk_tut_fr-18.html \
html/gtk_tut_fr-19.html \
html/gtk_tut_fr-20.html \
html/gtk_tut_fr-21.html \
html/gtk_tut_fr-22.html \
html/gtk_tut_fr-23.html \
html/gtk_tut_fr-24.html \
html/gtk_tut_fr.html text/gtk_tut_fr.txt
TUTORIAL_FILES=text/gtk_tut.txt html/gtk_tut.html \
html/gtk_tut.html \
html/gtk_tut-1.html \
html/gtk_tut-2.html \
html/gtk_tut-3.html \
html/gtk_tut-4.html \
html/gtk_tut-5.html \
html/gtk_tut-6.html \
html/gtk_tut-7.html \
html/gtk_tut-8.html \
html/gtk_tut-9.html \
html/gtk_tut-10.html \
html/gtk_tut-11.html \
html/gtk_tut-12.html \
html/gtk_tut-13.html \
html/gtk_tut-14.html \
html/gtk_tut-15.html \
html/gtk_tut-16.html \
html/gtk_tut-17.html \
html/gtk_tut-18.html \
html/gtk_tut-19.html \
html/gtk_tut-20.html \
html/gtk_tut-21.html \
html/gtk_tut-22.html \
html/gtk_tut-23.html \
html/gtk_tut-24.html \
html/gtk_tut-25.html \
html/gtk_tut-26.html \
html/gtk_tut-27.html \
html/gtk_tut-28.html \
html/gtk_tut-29.html \
html/gtk_tut-30.html \
html/gtk_tut-31.html
TUTORIAL_IT_FILES= html/gtk_tut_it.html \
html/gtk_tut_it-1.html \
html/gtk_tut_it-2.html \
html/gtk_tut_it-3.html \
html/gtk_tut_it-4.html \
html/gtk_tut_it-5.html \
html/gtk_tut_it-6.html \
html/gtk_tut_it-7.html \
html/gtk_tut_it-8.html \
html/gtk_tut_it-9.html \
html/gtk_tut_it-10.html \
html/gtk_tut_it-11.html \
html/gtk_tut_it-12.html \
html/gtk_tut_it-13.html \
html/gtk_tut_it-14.html \
html/gtk_tut_it-15.html \
html/gtk_tut_it-16.html \
html/gtk_tut_it-17.html \
html/gtk_tut_it-18.html \
html/gtk_tut_it-19.html \
html/gtk_tut_it-20.html \
html/gtk_tut_it-21.html \
html/gtk_tut_it-22.html \
html/gtk_tut_it-23.html \
html/gtk_tut_it-24.html \
text/gtk_tut_it.txt
FAQ_FILES=html/gtkfaq.html \
html/gtkfaq-1.html \
html/gtkfaq-2.html \
html/gtkfaq-3.html \
html/gtkfaq-4.html \
html/gtkfaq-5.html \
html/gtkfaq-6.html \
html/gtkfaq-7.html \
text/gtkfaq.txt
html/gtk_tut_table.gif: gdk.html gtk.html
.PHONY: html htmldir faq tutorial tutorial_it tutorial_fr files
distdocs: gdk.html gtk.html faq tutorial tutorial_it tutorial_fr
htmldir:
(cd $(srcdir); mkdir -p html; cp gtk_tut*gif html)
textdir:
mkdir -p $(srcdir)/text
gdk.html gdk_toc.html: gdk.texi
(cd $(srcdir); texi2html gdk.texi)
gtk.html gtk_toc.html: gtk.texi
(cd $(srcdir); texi2html gtk.texi)
html/gdk.html html/gdk_toc.html: htmldir gdk.html gdk_toc.html
(cd $(srcdir); cp gdk.html gdk_toc.html html/)
html/gtk.html html/gtk_toc.html: htmldir gtk.html gtk_toc.html
(cd $(srcdir); cp gtk.html gtk_toc.html html/)
$(FAQ_FILES): faq
faq: htmldir textdir
(cd $(srcdir); sgml2html gtkfaq.sgml; \
perl gtkdocs_fix gtkfaq*html; \
mv gtkfaq*html html/; \
sgml2txt gtkfaq.sgml; \
mv gtkfaq.txt text/)
$(TUTORIAL_FILES): tutorial
$(TUTORIAL_FR_FILES): tutorial_fr
$(TUTORIAL_IT_FILES): tutorial_it
tutorial: htmldir textdir
(cd $(srcdir); sgml2html gtk_tut.sgml; \
perl gtkdocs_fix gtk_tut*html; \
mv gtk_tut*html html/; \
sgml2txt gtk_tut.sgml; \
mv gtk_tut.txt text/)
tutorial_it: htmldir textdir
(cd $(srcdir); sgml2html --language=it gtk_tut_it.sgml; \
perl gtkdocs_fix gtk_tut_it*html; \
mv gtk_tut_it*html html/; \
sgml2txt --language=it gtk_tut_it.sgml; \
mv gtk_tut_it.txt text/)
tutorial_fr: htmldir textdir
(cd $(srcdir); sgml2html --language=fr gtk_tut_fr.sgml; \
perl gtkdocs_fix gtk_tut_fr*html; \
mv gtk_tut_fr*html html/; \
sgml2txt --language=fr gtk_tut_fr.sgml; \
mv gtk_tut_fr.txt text/)
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
EXTRA_DIST += \
Changes-1.2.txt \
Changes-2.0.txt \
debugging.txt \
developers.txt \
dnd_internals.txt \
make-todo \
refcounting.txt \
styles.txt \
text_widget.txt \
@@ -178,24 +18,5 @@ EXTRA_DIST += \
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)
gtkdocs_fix
+338
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))
+19
View File
@@ -0,0 +1,19 @@
Makefile
Makefile.in
*.html
*.dvi
*.ps
*.pg
*.ky
*.cp
*.fn
*.tp
*.vr
*.log
*.aux
*.toc
*.cps
*.fns
*.vrs
html
text
+42
View File
@@ -0,0 +1,42 @@
.PHONY: htmldir textdir faq
FAQ_FILES=html/gtkfaq.html \
html/gtkfaq-1.html \
html/gtkfaq-2.html \
html/gtkfaq-3.html \
html/gtkfaq-4.html \
html/gtkfaq-5.html \
html/gtkfaq-6.html \
html/gtkfaq-7.html \
text/gtkfaq.txt
$(FAQ_FILES): faq
htmldir:
mkdir -p $(srcdir)/html
textdir:
mkdir -p $(srcdir)/text
faq: htmldir textdir
(cd $(srcdir); sgml2html gtkfaq.sgml; \
perl $(top_srcdir)/docs/gtkdocs_fix gtkfaq*html; \
mv gtkfaq*html html/; \
sgml2txt gtkfaq.sgml; \
mv gtkfaq.txt text/)
EXTRA_DIST += gtkfaq.sgml
if HAVE_SGML2HTML
dist-hook: faq
mkdir $(distdir)/html
cp -p $(srcdir)/html/*.html $(distdir)/html
mkdir $(distdir)/text
cp -p $(srcdir)/text/*.txt $(distdir)/text
else
dist-hook:
echo "***"
echo "*** Warning: FAQ not built"
echo "*** DISTRIBUTION IS INCOMPLETE"
echo "***"
endif
File diff suppressed because it is too large Load Diff
+576 -203
View File
File diff suppressed because it is too large Load Diff
-198
View File
@@ -1,198 +0,0 @@
<!doctype linuxdoc system>
<article>
<!-- Title information -->
<title>The GTK+ Drawing Kit Programming Manual
<author>Shawn T. Amundson, Peter Mattis
<date>July 26, 1998
<abstract>
This document aims at teaching user how to effectively program in
GDK, the GTK+ Drawing Kit, and to serve as a reference guide to
more experienced GTK+ programmers. It is a work in progress.
<!-- Table of contents -->
<toc>
<!-- Begin the document -->
<!-- ***************************************************************** -->
<sect>Introduction
<p>
GDK is designed as a wrapper library that lies on top of Xlib. It
performs many common and desired operations for a programmer instead
of the programmer having to explicitly ask for such functionality from
Xlib directly. For example, GDK provides a common interface to both
regular and shared memory XImage types. By doing so, an application
can nearly transparently use the fastest image type available. GDK
also provides routines for determining the best available color depth
and the best available visual which is not always the default visual
for a screen.
GDK is distributed and developed with GTK+, and is licensed under the
GNU Library General Public Licence (LGPL).
<sect>Getting Started
<sect1>Initialization
<p>
Initialization of GDK is easy. Simply call gdk_init() passing
in the argc and argv parameters.
<tscreen><verb>
int main (int argc, char *argv[])
{
/* Initialize GDK. */
gdk_init (&amp;argc, &amp;argv);
/* Cleanup of GDK is done automatically when the program exits. */
return 0;
}
</verb></tscreen>
Generally, GDK initialization is done by gtk_init() in GTK+. This means
that when using GTK+, you do not need to directly call gdk_init().
<sect1>An Example using GDK with GTK+
<p>
This example demonstrates drawing a line using the foreground
color of the GtkDrawArea widget it is drawn inside. The example
will end when you click inside the window, which is filled by the
GtkDrawingArea widget.
The line is drawn during the expose event so that when the window
drawing is done whenever it is needed.
<tscreen><verb>
#include <gtk/gtk.h>
/* The expose callback does the drawing of the line */
int
expose_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
GdkGC *gc;
printf("expose...\n");
/* The GC is the Graphics Context. Here it is borrowed from the widget */
gc = widget->style->fg_gc[GTK_STATE_NORMAL];
gdk_draw_line (widget->window, /* GDK Window of GtkDrawingArea widget */
gc, /* Graphics Context */
0, /* x1, left */
0, /* y1, top */
200, /* x2, right */
200); /* y2, bottom */
}
/* This quits GTK+ */
void destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *darea;
int events;
/* This initializes both GTK+ and GDK */
gtk_init (&amp;argc, &amp;argv);
/* Create a window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
/* Create a drawing area widget. This widget actually is just a
simple widget which provides us an GDK window to draw on and
takes care of all the toolkit integration, like providing the
ability to add it to the window with gtk_contianer_add() */
darea = gtk_drawing_area_new ();
gtk_container_add (GTK_CONTAINER (window), darea);
/* Set the width and height (arguments are in that order) */
gtk_drawing_area_size (GTK_DRAWING_AREA (darea), 200, 200);
/* Drawing in the expose event is important to keep the
draw line always on the GDK window */
gtk_signal_connect (GTK_OBJECT (darea), "expose_event",
GTK_SIGNAL_FUNC (expose_callback), NULL);
/* We get the events, then add in button press. If we did not
do this, we would not be notified of button press events in
the GtkDrawingArea widget */
events = gtk_widget_get_events (darea);
gtk_widget_set_events (darea, events | GDK_BUTTON_PRESS_MASK);
/* If we click on the darea, the application will exit */
gtk_signal_connect_object (GTK_OBJECT (darea), "button_press_event",
GTK_SIGNAL_FUNC (gtk_widget_destroy),
GTK_OBJECT (window));
gtk_widget_show (darea);
gtk_widget_show (window);
/* The GTK+ main idle loop */
gtk_main();
/* Cleanup of GDK is done automatically when the program exits. */
return 0;
}
</verb></tscreen>
<sect>The Graphics Context
<p>
The Graphics Context, or GC, defines how things should be drawn,
including color, font, fill, tile, stipple, clipping mask, line
width, line style, and join style.
<sect1>Color
<p>
Changing color is done by changing the forground or background color
of the GC.
<sect>Drawing Commands
<sect>Event Handling
<sect>Understanding and Using Visuals
<sect>Creating and Using New Windows
<sect>Pixmaps
<sect>Images
<sect>Fonts
<sect>
<sect>About this Document
<sect1>History
<P>
This document was originially written by Peter Mattis and entitled
"The General Drawing Kit". It was meant as a reference guide.
This version of the document has been renamed and is meant as a general
programming guide.
<sect1>Copying
<p>
Copyright (c) 1996 Peter Mattis
<p>
Copyright (c) 1998 Shawn T. Amundson
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.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by Peter Mattis.
</article>
-334
View File
@@ -1,334 +0,0 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename gdk.info
@settitle GDK
@setchapternewpage odd
@c %**end of header
@set edition 1.0
@set update-date 16 May 1996
@set update-month May 1996
@ifinfo
This file documents GDK, the General Drawing Kit
Copyright (C) 1996 Peter Mattis
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
@ignore
Permission is granted to process this file throught TeX and print the
results, provided the printed document carries copying permission notice
identical to this one except for the removal of this paragraph (this
paragraph not being relevant to the printed manual).
@end ignore
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by Peter Mattis.
@end ifinfo
@titlepage
@title The General Drawing Kit
@subtitle Version 1.0
@subtitle @value{update-month}
@author by Peter Mattis
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1996 Peter Mattis
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.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by Peter Mattis.
@end titlepage
@dircategory User Interface Toolkit
@direntry
* GDK: (gdk). The General Drawing Kit
@end direntry
@node Top, Copying, (dir), (dir)
@top The General Drawing Kit
@ifinfo
This is edition @value{edition} of the GDK documentation,
@w{@value{update-date}}.
@end ifinfo
@menu
* Copying:: Your rights.
* Overview:: What is GDK?
* Initialization:: Initialization and exit.
* Events:: Event handling.
* Visuals:: Understanding and using visuals.
* Windows:: Creating and using windows.
* Graphics Contexts:: Creating and modifying GCs.
* Pixmaps:: Creating pixmaps.
* Images:: Creating images.
* Color:: Specifying color.
* Fonts:: Creating fonts.
* Drawing:: Drawing commands.
* XInput Support:: Using extended devices.
* Miscellany:: Other stuff.
* Examples:: Using GDK.
* Function Index:: Index of functions
* Concept Index:: Index of concepts
@end menu
@node Copying, Overview, Top, Top
@comment node-name, next, previous, up
@chapter Copying
GDK is @dfn{free}; this means that everyone is free to use it and free
to redestribute it on a free basis. GDK is not in the public domain; it
is copyrighted and there are restrictions on its distribution, but these
restrictions are designed to permit everything that a good cooperating
citizen would want to do. What is not allowed is to try to prevent
others from further sharing any version of GDK that they might get from
you.
Specifically, we want to make sure that you have the right to give away
copies of GDK, that you receive source code or else can get it if you
want it, that you can change GDK or use pieces of it in new free
programs, and that you know you can do these things.
To make sure that everyone has such rights, we have to forbid you to
deprive anyone else of these rights. For example, if you distribute
copies of GDK, you must give the recipients all the rights that you
have. You must make sure that they, too, receive or can get the source
code. And you must tell them their rights.
Also, for my own protection, we must make certain that everyone finds
out that there is no warranty for GDK. If GDK is modified by someone
else and passed on, we want their recipients to know that what they have
is not what we distributed, so that any problems introduced by others
will no reflect on our reputation.
The precise conditions of the licenses for GDK are found in the General
Public Licenses that accompanies it.
@node Overview, Initialization, Copying, Top
@comment node-name, next, previous, up
@chapter What is GDK?
@cindex Overview
GDK is designed as a wrapper library that lies on top of Xlib. It
performs many common and desired operations for a programmer instead
of the programmer having to explicitly ask for such functionality from
Xlib directly. For example, GDK provides a common interface to both
regular and shared memory XImage types. By doing so, an application
can nearly transparently use the fastest image type available. GDK
also provides routines for determining the best available color depth
and the best available visual which is not always the default visual
for a screen.
@node Initialization, Events, Overview, Top
@comment node-name, next, previous, up
@chapter Initialization and exit
@cindex Initialization
@cindex Exit
Initializing GDK is easy. Simply call @code{gdk_init} passing in the
@var{argc} and @var{argv} parameters. Exit is similarly easy. Just
call @code{gdk_exit}.
@deftypefun void gdk_init (int *@var{argc}, char ***@var{argv})
Initializes the GDK library. The arguments @var{argc} and @var{argv}
are scanned and any arguments that GDK recognizes are handled and
removed. The @var{argc} and @var{argv} parameters are the values
passed to @code{main} upon program invocation.
@end deftypefun
@deftypefun void gdk_exit (int @var{errorcode})
Exit GDK and perform any necessary cleanup. @code{gdk_exit} will call
the systems @code{exit} function passing @var{errorcode} as the
parameter.
@end deftypefun
@example
int
main (int argc, char *argv[])
@{
/* Initialize GDK. */
gdk_init (&argc, &argv);
/* Exit from GDK...this call will never return. */
gdk_exit (0);
/* Keep compiler from issuing a warning */
return 0;
@}
@end example
@node Events, Visuals, Initialization, Top
@comment node-name, next, previous, up
@chapter Event handling
@cindex Events
Events are the means by which GDK lets the programmer know of user
interaction. An event is normally a button or key press or some other
indirect user action, such as a the mouse cursor entering or leaving a
window.
There exist only a few functions for getting events and event
information. These are @code{gdk_events_pending},
@code{gdk_event_get}, @code{gdk_events_record} and
@code{gdk_events_playback}. The latter two functions are useful for
automatic testing of a software package and should normally not be
needed in a program.
@deftypefun gint gdk_events_pending (void)
Returns the number of events pending on the event queue.
@end deftypefun
@deftypefun gint gdk_event_get (GdkEvent *@var{event})
Return the next available event in the @var{event}
structure. @code{gdk_event_get} will return @code{TRUE} on success and
@code{FALSE} on failure. Success and failure is determined by whether
an event arrived before the timeout period expired.
@end deftypefun
@deftypefun void gdk_events_record (char *@var{filename})
Turn on recording of events. User events and certain system events will
be saved in the file named by the variable @var{filename}. This stream
of events can later be played back and ``should'' produce the same
results as when the original events were handled. However, the
programmer does need to be careful in that the state of the program must
be the same when @code{gdk_events_record} is called and when
@code{gdk_events_playback} is called. For this reason,
@code{gdk_events_record} is normally not called directly, but is instead
invoked indirectly by specifying the ``-record'' command line option.
@end deftypefun
@deftypefun void gdk_events_playback (char *@var{filename})
Start playback of events from a file. (See the above description of
@code{gdk_events_record}). Normally this function is not called directly
but is invoked by the ``-playback'' command line option.
@end deftypefun
@deftypefun void gdk_events_stop (void)
Stop recording and playback of events.
@end deftypefun
@example
void
handle_event ()
@{
GdkEvent event;
if (gdk_event_get (&event))
@{
switch (event.type)
@{
@dots{}
@}
@}
@}
@end example
@node Visuals, Windows, Events, Top
@comment node-name, next, previous, up
@chapter Understanding and using visuals
@cindex Visuals
@node Windows, Graphics Contexts, Visuals, Top
@comment node-name, next, previous, up
@chapter Creating and using windows
@cindex Windows
@node Graphics Contexts, Pixmaps, Windows, Top
@comment node-name, next, previous, up
@chapter Creating and modifying GCs
@cindex Graphics Contexts
@cindex GC
@node Pixmaps, Images, Graphics Contexts, Top
@comment node-name, next, previous, up
@chapter Creating pixmaps
@cindex Pixmaps
@node Images, Color, Pixmaps, Top
@comment node-name, next, previous, up
@chapter Creating images
@cindex Images
@node Color, Fonts, Images, Top
@comment node-name, next, previous, up
@chapter Specifying color
@cindex Color
@node Fonts, Drawing, Color, Top
@comment node-name, next, previous, up
@chapter Creating Fonts
@cindex Fonts
@node Drawing, XInput Support, Fonts, Top
@comment node-name, next, previous, up
@chapter Drawing Commands
@cindex Drawing
@node XInput Support, Miscellany, Drawing, Top
@comment node-name, next, previous, up
@chapter Using extended devices
@cindex Overview
@cindex Using extended device capabilities
@cindex Controlling extended devices
@node Miscellany, Examples, XInput Support, Top
@comment node-name, next, previous, up
@chapter Other stuff
@cindex Timers
@cindex Debugging
@cindex Miscellaneous
@node Examples, Function Index, Miscellany, Top
@comment node-name, next, previous, up
@chapter Using GDK
@cindex Examples
@node Function Index, Concept Index, Examples, Top
@comment node-name, next, previous, up
@unnumbered Variable Index
@printindex fn
@node Concept Index, , Function Index, Top
@comment node-name, next, previous, up
@unnumbered Concept Index
@printindex cp
@summarycontents
@contents
@bye
-5648
View File
File diff suppressed because it is too large Load Diff
-17855
View File
File diff suppressed because it is too large Load Diff
-8600
View File
File diff suppressed because it is too large Load Diff
-10090
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

-2609
View File
File diff suppressed because it is too large Load Diff
-18
View File
@@ -1,18 +0,0 @@
@macro gtkstdmacros {p, q}
@deftypefun Gtk\p\* GTK_\q\ (gpointer @var{obj})
Cast a generic pointer to @code{Gtk\p\*}. @xref{Standard Macros}, for
more info.
@end deftypefun
@deftypefun Gtk\p\Class* GTK_\q\_CLASS (gpointer @var{class})
Cast a generic pointer to @code{Gtk\p\Class*}. @xref{Standard Macros},
for more info.
@end deftypefun
@deftypefun gint GTK_IS_\q\ (gpointer @var{obj})
Determine if a generic pointer refers to a @code{Gtk\p\}
object. @xref{Standard Macros}, for more info.
@end deftypefun
@end macro
Executable
+350
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>'''
-242
View File
@@ -1,242 +0,0 @@
=head1 NAME
gtk_button - GTK+ push button widget
=head1 SYNOPSIS
#include <gtk/gtkbutton.h>
GtkType gtk_button_get_type (void);
GtkWidget* gtk_button_new (void);
GtkWidget* gtk_button_new_with_label (const gchar *label);
void gtk_button_pressed (GtkButton *button);
void gtk_button_released (GtkButton *button);
void gtk_button_clicked (GtkButton *button);
void gtk_button_enter (GtkButton *button);
void gtk_button_leave (GtkButton *button);
void gtk_button_set_relief (GtkButton *button,
GtkReliefStyle style);
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
=head1 DESCRIPTION
This widget is a standard push button widget. Push button widgets
are generally used for allowing the user to click on them to initiate
a command.
This widget is a container widget which contains one child.
=head1 OBJECT HIERARCHY
gtk_object
gtk_widget
gtk_container
gtk_button
=head1 SIGNAL PROTOTYPES
"clicked" void user_function (GtkWidget *widget, gpointer data);
"pressed" void user_function (GtkWidget *widget, gpointer data);
"released" void user_function (GtkWidget *widget, gpointer data);
"enter" void user_function (GtkWidget *widget, gpointer data);
"leave" void user_function (GtkWidget *widget, gpointer data);
=head1 USAGE
=head2 Creation
The most common way to create a button is with a label in it, which
contains text for the user to read. The child of the button will then
be a L<gtk_label(3)> widget with the text you passwd in. You can
do this in one command:
GtkWidget *button;
button = gtk_button_new_with_label ("This is a button");
To create a gtk_button widget which does not already have a child,
use gtk_button_new():
GtkWidget *button;
button = gtk_button_new ();
After you have created a button you can then add a widget to the
button (such as a label or pixmap) using gtk_container_add(). See
L<gtk_container(3)> for more information on adding widgets to
containers.
=head2 Creating a pixmap in a button in a window
After we have an empty gtk_button, such as above, and we have a gtk_pixmap,
we can simply add the gtk_pixmap to the gtk_button with gtk_container_add().
The following code will open the file "gimp.xpm" and place it in a
button.
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *pixmap;
GtkStyle *style;
GdkPixmap *gdkpixmap;
GdkBitmap *mask;
char *filename = "gimp.xpm";
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
button = gtk_button_new ();
gtk_container_add (GTK_CONTAINER (window), button);
/* The button is realized now, which creates button->window
used below to create the pixmap. */
gtk_widget_realize (button);
style = gtk_widget_get_style (button);
gdkpixmap = gdk_pixmap_create_from_xpm (button->window, &mask,
&style->bg[GTK_STATE_NORMAL],
filename);
pixmap = gtk_pixmap_new (gdkpixmap, mask);
gtk_container_add (GTK_CONTAINER (button), pixmap);
gtk_widget_show (pixmap);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main ();
return 0;
}
=head2 Different reliefs
Reliefs affect how the shadowing of the button is drawn. The different
types of relief styles are:
GTK_RELIEF_NORMAL
GTK_RELIEF_HALF
GTK_RELIEF_NONE
When set to a normal relief, the widget looks and acts like a normal
button. When half or none relief is used, shadowing is only drawn when the
mouse cursor is over the widget.
To set the relief, use gtk_button_set_relief(), like:
gtk_button_set_relief (button, GTK_RELIEF_HALF);
To get the current relief of a button, use gtk_button_get_relief():
GtkReliefStyle relief;
relief = gtk_button_get_relief (GTK_BUTTON (button));
=head2 Executing a command when the button is pressed
To execute a function when a button is pressed, use
gtk_signal_connect() to connect to the "clicked" signal.
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (user_function),
NULL);
user_function is a user defined function, like the following:
void user_function (GtkWidget *button, gpointer data)
{
printf("clicked\n");
}
=head1 FUNCTIONS
GtkType gtk_button_get_type (void);
This function returns the GtkType which is assigned to the
object class for gtk_button.
GtkWidget* gtk_button_new (void);
This functions returns a new button widget which can then be
used as a container for another widget.
GtkWidget* gtk_button_new_with_label (const gchar *label);
This function returns a new button widget with a label widget
as a child. The label widget will have the text passed into
the commant.
void gtk_button_pressed (GtkButton *button);
This function sends a "pressed" signal to the button.
void gtk_button_released (GtkButton *button);
This function sends a "released" signal to the button.
void gtk_button_clicked (GtkButton *button);
This function sends a "clicked" signal to the button.
void gtk_button_enter (GtkButton *button);
This function sends a "enter" signal to the button.
void gtk_button_leave (GtkButton *button);
This function sends a "leave" signal to the button.
void gtk_button_set_relief (GtkButton *button, GtkReliefStyle style);
This function is sets the GtkReliefStyle of the button. The
relief style is one of: GTK_RELIEF_NORMAL, GTK_RELIEF_HALF,
or GTK_RELIEF_NONE. The relief determines when the shadow of
the button is drawn.
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
This function returns the current relief of the button.
=head1 SIGNALS
"clicked"
void user_function (GtkWidget *widget, gpointer data);
Gets emitted when the button is clicked. A click is
a press and release of the button when the cursor is
inside the button on release.
"pressed"
void user_function (GtkWidget *widget, gpointer data);
Gets emitted when the left mouse button is pressed.
"released"
void user_function (GtkWidget *widget, gpointer data);
Gets emitted when the left mouse button is released and
the widget was previously pressed.
"enter"
void user_function (GtkWidget *widget, gpointer data);
Emitted when the mouse cursor enters the button.
"leave"
void user_function (GtkWidget *widget, gpointer data);
Emitted when the mouse cursor leaves the button.
=head1 AUTHORS
The author of this man page is Shawn T. Amundson E<lt>amundson@gtk.orgE<gt>.
For the authors of GTK+, see the AUTHORS file in the GTK+ distribution.
-99
View File
@@ -1,99 +0,0 @@
#! /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
+2 -2
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.
@@ -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);
+2
View File
@@ -0,0 +1,2 @@
Makefile
Makefile.in
+63
View File
@@ -1,3 +1,66 @@
2000-06-14 Damon Chaplin <damon@helixcode.com>
* gtk/tmpl/gtktooltips.sgml: added a note about no-window widgets.
Mon Jun 5 11:17:25 2000 Owen Taylor <otaylor@redhat.com>
* gdk/tmpl/general.sgml: Fix gdk_pointer_grab description
as pointed out by Dave Morse.
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.
+3
View File
@@ -0,0 +1,3 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = gdk-pixbuf
+8 -2
View File
@@ -38,7 +38,13 @@ gdk_pixbuf_doc_DATA = \
gdk-pixbuf-decl.txt \
gdk-pixbuf-sections.txt
EXTRA_DIST = $(gdk_pixbuf_doc_DATA)
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
@@ -47,7 +53,7 @@ else
gdk-pixbuf.html:
endif
html/book1.html: sgml/gdk-pixbuf-doc.bottom
html/book1.html: sgml/gdk-pixbuf-doc.bottom $(content_files)
$(MAKE) html
sgml/gdk-pixbuf-doc.bottom: $(tmpl_sources)
+109
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:
-->
+220 -107
View File
@@ -125,103 +125,31 @@ GdkPixbufLoader *loader
<RETURNS>void </RETURNS>
GdkPixbufLoader *loader
</FUNCTION>
<STRUCT>
<NAME>GdkPixbuf</NAME>
</STRUCT>
<STRUCT>
<NAME>GdkPixbufFrame</NAME>
</STRUCT>
<STRUCT>
<NAME>GdkPixbufAnimation</NAME>
</STRUCT>
<STRUCT>
<NAME>GdkPixbuf</NAME>
struct GdkPixbuf {
/* Reference count */
int ref_count;
/* Libart pixbuf */
ArtPixBuf *art_pixbuf;
};
</STRUCT>
<ENUM>
<NAME>GdkPixbufFrameAction</NAME>
<NAME>GdkColorspace</NAME>
typedef enum {
GDK_PIXBUF_FRAME_RETAIN,
GDK_PIXBUF_FRAME_DISPOSE,
GDK_PIXBUF_FRAME_REVERT
} GdkPixbufFrameAction;
GDK_COLORSPACE_RGB
} GdkColorspace;
</ENUM>
<STRUCT>
<NAME>GdkPixbuf</NAME>
</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;
};
</STRUCT>
<FUNCTION>
<NAME>gdk_pixbuf_get_format</NAME>
<RETURNS>ArtPixFormat </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_n_channels</NAME>
<RETURNS>int </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_has_alpha</NAME>
<RETURNS>int </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_bits_per_sample</NAME>
<RETURNS>int </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_pixels</NAME>
<RETURNS>guchar *</RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_width</NAME>
<RETURNS>int </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_height</NAME>
<RETURNS>int </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_get_rowstride</NAME>
<RETURNS>int </RETURNS>
GdkPixbuf *pixbuf
</FUNCTION>
<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>
@@ -233,14 +161,64 @@ GdkPixbuf *pixbuf
GdkPixbuf *pixbuf
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_new_from_art_pixbuf</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
ArtPixBuf *art_pixbuf
<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>
ArtPixFormat format, gboolean has_alpha, int bits_per_sample,int width, int height
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>
@@ -250,7 +228,7 @@ const char *filename
<FUNCTION>
<NAME>gdk_pixbuf_new_from_data</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
guchar *data,ArtPixFormat format,gboolean has_alpha,int width, int height,int rowstride,ArtDestroyNotify dfunc,gpointer dfunc_data
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>
@@ -260,7 +238,12 @@ const char **data
<FUNCTION>
<NAME>gdk_pixbuf_add_alpha</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
GdkPixbuf *pixbuf, gboolean substitute_color,guchar r, guchar g, guchar b
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>
@@ -294,40 +277,52 @@ GdkPixbuf *pixbuf,GdkPixmap **pixmap_return, GdkBitmap **mask_return,int alpha_t
<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>
<FUNCTION>
<NAME>gdk_pixbuf_copy_area</NAME>
<RETURNS>void </RETURNS>
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>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>
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,ArtFilterLevel filter_level
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>
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,ArtFilterLevel filter_level,int overall_alpha
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>
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,ArtFilterLevel filter_level,int overall_alpha,int check_x,int check_y,int check_size,art_u32 color1,art_u32 color2
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>
GdkPixbuf *src,int dest_width,int dest_height,ArtFilterLevel filter_level
const GdkPixbuf *src,int dest_width,int dest_height,GdkInterpType interp_type
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_composite_color_simple</NAME>
<RETURNS>GdkPixbuf *</RETURNS>
GdkPixbuf *src,int dest_width,int dest_height,ArtFilterLevel filter_level,int overall_alpha,int check_size,art_u32 color1,art_u32 color2
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
const char *filename
</FUNCTION>
<FUNCTION>
<NAME>gdk_pixbuf_animation_ref</NAME>
@@ -340,6 +335,51 @@ GdkPixbufAnimation *animation
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
@@ -398,7 +438,7 @@ void
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_MINOR</NAME>
#define GDK_PIXBUF_MINOR (4)
#define GDK_PIXBUF_MINOR (7)
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_MICRO</NAME>
@@ -406,9 +446,82 @@ void
</MACRO>
<MACRO>
<NAME>GDK_PIXBUF_VERSION</NAME>
#define GDK_PIXBUF_VERSION "0.4.0"
#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>
@@ -2,8 +2,9 @@
<SECTION>
<FILE>gdk-pixbuf</FILE>
GdkColorspace
GdkPixbuf
gdk_pixbuf_get_format
gdk_pixbuf_get_colorspace
gdk_pixbuf_get_n_channels
gdk_pixbuf_get_has_alpha
gdk_pixbuf_get_bits_per_sample
@@ -15,8 +16,12 @@ gdk_pixbuf_get_rowstride
<SECTION>
<FILE>refcounting</FILE>
GdkPixbufDestroyNotify
GdkPixbufLastUnref
gdk_pixbuf_ref
gdk_pixbuf_unref
gdk_pixbuf_set_last_unref_handler
gdk_pixbuf_finalize
</SECTION>
<SECTION>
@@ -26,10 +31,10 @@ gdk_pixbuf_new_from_file
<SECTION>
<FILE>creating</FILE>
gdk_pixbuf_new_from_art_pixbuf
gdk_pixbuf_new
gdk_pixbuf_new_from_data
gdk_pixbuf_new_from_xpm_data
gdk_pixbuf_copy
</SECTION>
<SECTION>
@@ -60,10 +65,20 @@ 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
+7 -3
View File
@@ -10,11 +10,12 @@
<!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 GdkPixbuf Library</title>
<title>The <application>gdk-pixbuf</application> Library</title>
<authorgroup>
<author>
@@ -40,8 +41,9 @@
<partintro>
<para>
This part presents the class and function reference for the
GdkPixbuf library. Classes are described together with their
methods; individual functions are grouped by functional group.
<application>gdk-pixbuf</application> library. Classes are
described together with their methods; individual functions
are grouped by functional group.
</para>
</partintro>
@@ -57,4 +59,6 @@
&GdkPixbufLoader;
&GnomeCanvasPixbuf;
</reference>
&Compiling;
</book>
@@ -18,6 +18,7 @@ GdkPixbufLoader *gdkpixbufloader
<NAME>GdkPixbufLoader::frame-done</NAME>
<RETURNS>void</RETURNS>
GdkPixbufLoader *gdkpixbufloader
gpointer arg1
</SIGNAL>
<SIGNAL>
+101 -28
View File
@@ -6,11 +6,12 @@ Animations as multi-frame structures.
<!-- ##### SECTION Long_Description ##### -->
<para>
The GdkPixbuf 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.
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 ##### -->
@@ -21,18 +22,19 @@ Animations as multi-frame structures.
<!-- ##### ENUM GdkPixbufFrameAction ##### -->
<para>
Each animation frame can have several things happen to it when the
next frame is displayed. The #GdkPixbufFrameAction determines this.
If a frame as marked as #GDK_PIXBUF_FRAME_RETAIN, then the image
will remain displayed, and will be potentially occluded by the next
frame. If it is marked as #GDK_PIXBUF_FRAME_DISPOSE, then the
animation is reverted to the setting before the frame was shown. If
it is marked as #GDK_PIXBUF_FRAME_REVERT, then the animation is
reverted to the first image before continuing.
next frame is displayed. The #GdkPixbufFrameAction determines
this. These are essentially the overlay modes supported by GIF
animations.
</para>
@GDK_PIXBUF_FRAME_RETAIN:
@GDK_PIXBUF_FRAME_DISPOSE:
@GDK_PIXBUF_FRAME_REVERT:
@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>
@@ -42,22 +44,12 @@ Animations as multi-frame structures.
action.
</para>
@pixbuf: The frame's image contents.
@x_offset: X offset of the frame inside the animation's bounding box.
@y_offset: Y offset of the frame inside the animation's bounding box.
@delay_time: Duration of the frame in milliseconds.
@action: Overlay mode.
<!-- ##### STRUCT GdkPixbufAnimation ##### -->
<para>
This structure describes an animation, which is represented as a
list of #GdkPixbufFrame structures.
</para>
@ref_count: Reference count.
@n_frames: Number of frames in the animation.
@frames: List of #GdkPixbufFrame structures.
<!-- ##### FUNCTION gdk_pixbuf_animation_new_from_file ##### -->
<para>
@@ -81,11 +73,92 @@ Animations as multi-frame structures.
</para>
@animation: <!--
@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:
-->
+34 -30
View File
@@ -6,21 +6,15 @@ 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
#ArtPixBuf structure with a #GdkPixbuf to add reference counting
capabilities to it. The gdk_pixbuf_new_from_art_pixbuf() performs
this operation.
</para>
<para>
As a convenience, you can use the gdk_pixbuf_new_from_data()
function to wrap an existing data buffer with a #GdkPixbuf. You
need to specify the destroy notification function that will be
called when the data buffer needs to be freed; this will happen
when the pixbuf's reference count drops to zero and thus the
#ArtPixBuf needs to be destroyed. 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.
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>
@@ -37,26 +31,24 @@ Creating a pixbuf from image data that is already in memory.
function to create a pixbuf from inline XPM image data.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#ArtPixBuf
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>
<!-- ##### FUNCTION gdk_pixbuf_new_from_art_pixbuf ##### -->
<para>
</para>
@art_pixbuf:
@Returns:
<!-- ##### SECTION See_Also ##### -->
<para>
gdk_pixbuf_finalize().
</para>
<!-- ##### FUNCTION gdk_pixbuf_new ##### -->
<para>
</para>
@format:
@colorspace:
@has_alpha:
@bits_per_sample:
@width:
@@ -70,13 +62,14 @@ Creating a pixbuf from image data that is already in memory.
</para>
@data:
@format:
@colorspace:
@has_alpha:
@bits_per_sample:
@width:
@height:
@rowstride:
@dfunc:
@dfunc_data:
@destroy_fn:
@destroy_fn_data:
@Returns:
@@ -86,7 +79,18 @@ Creating a pixbuf from image data that is already in memory.
</para>
@data:
@Returns: <!--
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_copy ##### -->
<para>
</para>
@pixbuf:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
@@ -6,11 +6,12 @@ Loading a pixbuf from a file.
<!-- ##### SECTION Long_Description ##### -->
<para>
The GdkPixbuf 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.
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>
@@ -22,7 +23,7 @@ Loading a pixbuf from a file.
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkPixbufLoader
#GdkPixbufLoader.
</para>
<!-- ##### FUNCTION gdk_pixbuf_new_from_file ##### -->
@@ -31,7 +32,8 @@ Loading a pixbuf from a file.
</para>
@filename:
@Returns: <!--
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
@@ -15,7 +15,7 @@ Getting parts of a drawable's image data into a pixbuf.
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkPixbuf, gdk_image_get()
gdk_image_get().
</para>
<!-- ##### FUNCTION gdk_pixbuf_get_from_drawable ##### -->
@@ -32,7 +32,8 @@ Getting parts of a drawable's image data into a pixbuf.
@dest_y:
@width:
@height:
@Returns: <!--
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
@@ -8,51 +8,65 @@ Application-driven progressive image loading.
<para>
#GdkPixbufLoader provides a way for applications to drive the
process of loading an image, by letting them send the image data
directly. Applications can use this functionality instead of
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.
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, #"area_prepared", 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.
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, #"area_updated" 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.
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>
<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
#"frame_done" signal, as well as an #"animation_done" 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 #"frame_done" signal
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 #"area_prepared" is
re-emitted. Then #"area_updated" is emitted as many times as
necessary. Finally, #"animation_done" is emitted as soon as all
frames are done.
</para>
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 ##### -->
@@ -122,12 +136,6 @@ Application-driven progressive image loading.
areas of an image that is being loaded.
</para>
@gdkpixbufloader: the object which received the signal.
@arg1:
@arg2:
@arg3:
@arg4:
<!-- # Unused Parameters # -->
@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.
@@ -143,23 +151,23 @@ Application-driven progressive image loading.
fetch the partially-loaded pixbuf.
</para>
@gdkpixbufloader: the object which received the signal.
<!-- # Unused Parameters # -->
@loader: Loader which emitted the signal.
<!-- ##### SIGNAL GdkPixbufLoader::frame-done ##### -->
<para>
<para>
This signal is emitted when a frame is done loading. It will be
emitted for each frame in an animation data stream.
</para>
</para>
@gdkpixbufloader: the object which received the signal.
@loader: Loader which emitted the signal.
@frame: Frame which just completed loading.
<!-- ##### SIGNAL GdkPixbufLoader::animation-done ##### -->
<para>
<para>
This signal is emitted when an animation is done loading.
</para>
</para>
@gdkpixbufloader: the object which received the signal.
@loader: Loader which emitted the signal.
<!-- ##### SIGNAL GdkPixbufLoader::closed ##### -->
<para>
@@ -169,8 +177,6 @@ Application-driven progressive image loading.
drives it.
</para>
@gdkpixbufloader: the object which received the signal.
<!-- # Unused Parameters # -->
@loader: Loader which emitted the signal.
<!--
@@ -1,9 +1,3 @@
<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_pixbuf_load_module ##### -->
<para>
@@ -15,12 +9,6 @@
<!-- ##### ARG GnomeCanvasPixbuf:height_pixels ##### -->
<para>
</para>
<!-- ##### STRUCT GdkPixbufModule ##### -->
<para>
@@ -35,6 +23,52 @@
@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>
@@ -63,15 +97,6 @@
gdk-pixbuf-io
<!-- ##### 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>
<!-- ##### ARG GnomeCanvasPixbuf:y_set ##### -->
<para>
Determines whether the <link
@@ -83,27 +108,18 @@ gdk-pixbuf-io
</para>
<!-- ##### USER_FUNCTION ModulePreparedNotifyFunc ##### -->
<para>
</para>
@pixbuf:
@user_data:
<!-- ##### ARG GnomeCanvasPixbuf:x_pixels ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_pixbuf_get_module ##### -->
<!-- ##### FUNCTION gdk_pixbuf_get_format ##### -->
<para>
</para>
@buffer:
@size:
@pixbuf:
@Returns:
<!-- ##### ARG GnomeCanvasPixbuf:width_pixels ##### -->
+19 -15
View File
@@ -8,28 +8,32 @@ Information that describes an image.
<para>
The <structname>GdkPixbuf</structname> structure contains
information that describes an image in memory. It is actually a
simple wrapper that adds reference counting capabilities to an
#ArtPixBuf structure.
information that describes an image in memory.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#ArtPixBuf
</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 GdkPixbuf library. This
structure adds reference counting capabilities to an #ArtPixBuf
structure.
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>
@ref_count: Reference count.
@art_pixbuf: An #ArtPixBuf that actually contains the description of
the image data.
<!-- ##### FUNCTION gdk_pixbuf_get_format ##### -->
<!-- ##### FUNCTION gdk_pixbuf_get_colorspace ##### -->
<para>
</para>
@@ -98,11 +102,11 @@ the image data.
</para>
@pixbuf:
@Returns: <!--
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->
@@ -217,8 +217,8 @@ Canvas item to display #GdkPixbuf images.
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's #ArtPixBuf will be
used instead. This argument is %FALSE by default.
%FALSE, then the width value of the pixbuf will be used instead.
This argument is %FALSE by default.
</para>
<!-- ##### ARG GnomeCanvasPixbuf:width_in_pixels ##### -->
@@ -299,4 +299,3 @@ mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->
@@ -1,8 +1,10 @@
<!-- ##### SECTION Title ##### -->
Reference Counting
Reference Counting and Memory Mangement
<!-- ##### SECTION Short_Description ##### -->
Functions to perform reference counting on a #GdkPixbuf.
Functions to perform reference counting and memory management on a
#GdkPixbuf.
<!-- ##### SECTION Long_Description ##### -->
<para>
@@ -15,11 +17,75 @@ Functions to perform reference counting on a #GdkPixbuf.
#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, #ArtPixBuf
#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>
@@ -34,11 +100,29 @@ Functions to perform reference counting on a #GdkPixbuf.
</para>
@pixbuf: <!--
@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:
-->
+14 -13
View File
@@ -6,18 +6,19 @@ Rendering a pixbuf to a GDK drawable.
<!-- ##### SECTION Long_Description ##### -->
<para>
The GdkPixbuf library provides several convenience functions to
render pixbufs to GDK drawables. It uses the GdkRGB to render the
image data.
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
GdkPixbuf 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.
<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>
@@ -104,13 +105,7 @@ In the future it will do full alpha compositing.
@dest_y:
@width:
@height:
@alpha_threshold: <!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->
@alpha_threshold:
<!-- ##### FUNCTION gdk_pixbuf_render_pixmap_and_mask ##### -->
<para>
@@ -123,3 +118,9 @@ End:
@alpha_threshold:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->
+79 -42
View File
@@ -5,34 +5,37 @@ Scaling
Scaling pixbufs and scaling and compositing pixbufs
<!-- ##### SECTION Long_Description ##### -->
<para>
gdk-pixbuf 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 <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>
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>
<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>
<programlisting>
<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)
{
@@ -40,15 +43,15 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
dest = gdk_pixbuf_new (ART_PIX_RGB, FALSE, 8, event->area.width, event->area.height);
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 / pixbuf->art_pixbuf->width,
(double) widget->allocation.height / pixbuf->art_pixbuf->height,
filter_level, 255,
event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
(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,
@@ -59,12 +62,45 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
return TRUE;
}
</programlisting>
</programlisting>
<!-- ##### SECTION See_Also ##### -->
<para>
<para>
GdkRGB
</para>
</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>
@@ -81,7 +117,7 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
@offset_y:
@scale_x:
@scale_y:
@filter_level:
@interp_type:
<!-- ##### FUNCTION gdk_pixbuf_composite ##### -->
@@ -99,7 +135,7 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
@offset_y:
@scale_x:
@scale_y:
@filter_level:
@interp_type:
@overall_alpha:
@@ -118,7 +154,7 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
@offset_y:
@scale_x:
@scale_y:
@filter_level:
@interp_type:
@overall_alpha:
@check_x:
@check_y:
@@ -135,7 +171,7 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
@src:
@dest_width:
@dest_height:
@filter_level:
@interp_type:
@Returns:
@@ -147,16 +183,17 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
@src:
@dest_width:
@dest_height:
@filter_level:
@interp_type:
@overall_alpha:
@check_size:
@color1:
@color2:
@Returns: <!--
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->
+7 -7
View File
@@ -27,13 +27,7 @@ Utility and miscellaneous convenience functions.
@r:
@g:
@b:
@Returns: <!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_copy_area ##### -->
<para>
@@ -50,3 +44,9 @@ End:
@dest_y:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
End:
-->
+1 -1
View File
@@ -80,7 +80,7 @@ these fields.
Describes a key press or key release event.
</para>
@type: the type of the event (%GDK_KEY_RELEASE or %GDK_KEY_RELEASE).
@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.
+5 -4
View File
@@ -199,9 +199,10 @@ this application are reported with respect to @window and only if selected by
@event_mask. In either mode, unreported events are discarded.
@event_mask: specifies the event mask, which is used in accordance with
@owner_events.
@confine_to: TRUE to confine the pointer to @window. If the pointer is outside
@window, it will automatically be moved to the closest edge of @window and
enter and leave events will be generated as necessary.
@confine_to: If non-%NULL, the pointer will be confined to this
window during the grab. If the pointer is outside @confine_to, it will
automatically be moved to the closest edge of @confine_to and enter
and leave events will be generated as necessary.
@cursor: the cursor to display while the grab is active. If this is NULL then
the normal cursors are used for @window and its descendants, and the cursor
for @window is used for all other windows.
@@ -246,7 +247,7 @@ This overrides any previous keyboard grab by this client.
@owner_events: if FALSE then all keyboard events are reported with respect to
@window. If TRUE then keyboard events for this application are reported as
normal, but keyboard events outside this application are reported with respect
to @window. Both key press and key release events are alwasy reported,
to @window. Both key press and key release events are always reported,
independant of the event mask set by the application.
@time: a timestamp from a #GdkEvent, or #GDK_CURRENT_TIME if no timestamp is
available.
+3 -3
View File
@@ -94,7 +94,7 @@ pre-edit flags and the status flags.
</para>
<para>
The pre-edit flags specify how pre-editing data is displayed.
For example, this could display the text being typed in in the phonetic
For example, this could display the text being typed in the phonetic
alphabet before it is composed and inserted as an ideograph.
</para>
<para>
@@ -193,12 +193,12 @@ styles is returned.
<!-- ##### FUNCTION gdk_im_begin ##### -->
<para>
Starts editing, using the given #GdkInputContext and #GdkWindow.
Starts editing, using the given input context and #GdkWindow.
This should be called when the widget receives the input focus, typically in
the widget's focus_in_event method.
</para>
@ic: a #GdkInputContext.
@ic: a #GdkIC.
@window: the #GdkWindow which will be receiving the key press events.
+9 -5
View File
@@ -58,11 +58,15 @@ gdk_rgb_set_min_colors (). The default is 5x5x5 (125). If a colorcube
of this size or larger can be allocated in the default colormap, then
that's done. Otherwise, GdkRgb creates its own private colormap.
Setting it to 0 means that it always tries to use the default
colormap, and setting it to 256 means that it always creates a private
one. Note, however, that setting it to 0 doesn't let you get away with
ignoring the colormap and visual - a colormap is always created in
grayscale and direct color modes, and the visual is changed in cases
where a "better" visual than the default is available.
colormap, and setting it to 216 means that it always creates a private
one if it cannot allocate the 6x6x6 colormap in the default. If you
always want a private colormap (to avoid consuming too many colormap
entries for other apps, say), you can use gdk_rgb_set_install(TRUE).
Setting the value greater than 216 exercises a bug in older versions
of GdkRgb. Note, however, that setting it to 0 doesn't let you get
away with ignoring the colormap and visual - a colormap is always
created in grayscale and direct color modes, and the visual is changed
in cases where a "better" visual than the default is available.
</para>
<example>
+4 -4
View File
@@ -32,10 +32,10 @@ Create a new #GtkAspectFrame.
</para>
@label: Label text.
@xalign: Horizontal lignment of the child within the allocation of
@xalign: Horizontal alignment of the child within the allocation of
the #GtkAspectFrame. This ranges from 0.0 (left aligned)
to 1.0 (right aligned)
@yalign: Vertical lignment of the child within the allocation of
@yalign: Vertical alignment of the child within the allocation of
the #GtkAspectFrame. This ranges from 0.0 (left aligned)
to 1.0 (right aligned)
@ratio: The desired aspect ratio.
@@ -52,10 +52,10 @@ Set parameters for an existing #GtkAspectFrame.
</para>
@aspect_frame: a #GtkAspectFrame
@xalign: Horizontal lignment of the child within the allocation of
@xalign: Horizontal alignment of the child within the allocation of
the #GtkAspectFrame. This ranges from 0.0 (left aligned)
to 1.0 (right aligned)
@yalign: Vertical lignment of the child within the allocation of
@yalign: Vertical alignment of the child within the allocation of
the #GtkAspectFrame. This ranges from 0.0 (left aligned)
to 1.0 (right aligned)
@ratio: The desired aspect ratio.
+1 -1
View File
@@ -1111,7 +1111,7 @@ aspect of the #GtkCList widget.
<!-- ##### FUNCTION gtk_clist_set_reorderable ##### -->
<para>
Sets whether the CList's columns are re-orderable.
Sets whether the CList's rows are re-orderable using drag-and-drop.
</para>
@clist: The #GtkCList to affect.
+83 -77
View File
@@ -2,7 +2,7 @@
Standard Enumerations
<!-- ##### SECTION Short_Description ##### -->
Public enumerated types used throughout GTK+.
<!-- ##### SECTION Long_Description ##### -->
<para>
@@ -26,43 +26,54 @@ Standard Enumerations
<!-- ##### ENUM GtkArrowType ##### -->
<para>
Used to indicate the direction in which a #GtkArrow should point.
</para>
@GTK_ARROW_UP:
@GTK_ARROW_DOWN:
@GTK_ARROW_LEFT:
@GTK_ARROW_RIGHT:
@GTK_ARROW_UP: Represents an upward pointing arrow.
@GTK_ARROW_DOWN: Represents a downward pointing arrow.
@GTK_ARROW_LEFT: Represents a left pointing arrow.
@GTK_ARROW_RIGHT: Represents a right pointing arrow.
<!-- ##### ENUM GtkAttachOptions ##### -->
<para>
Denotes the expansion properties that a widget will have when it (or it's
parent) is resized.
</para>
@GTK_EXPAND:
@GTK_SHRINK:
@GTK_FILL:
@GTK_EXPAND: the widget should expand to take up any extra space in its
container that has been allocated.
@GTK_SHRINK: the widget should shrink as and when possible.
@GTK_FILL: the widget should fill the space allocated to it.
<!-- ##### ENUM GtkButtonBoxStyle ##### -->
<para>
Used to dictate the style that a #GtkButtonBox uses to layout the buttons it
contains. (See also: #GtkVButtonBox and #GtkHButtonBox).
</para>
@GTK_BUTTONBOX_DEFAULT_STYLE:
@GTK_BUTTONBOX_SPREAD:
@GTK_BUTTONBOX_EDGE:
@GTK_BUTTONBOX_START:
@GTK_BUTTONBOX_END:
@GTK_BUTTONBOX_DEFAULT_STYLE: Default packing.
@GTK_BUTTONBOX_SPREAD: Buttons are evenly spread across the ButtonBox.
@GTK_BUTTONBOX_EDGE: Buttons are placed at the edges of the ButtonBox.
@GTK_BUTTONBOX_START: Buttons are grouped towards the start of box, (on the
left for a HBox, or the top for a VBox).
@GTK_BUTTONBOX_END: Buttons are grouped towards the end of a box, (on the
right for a HBox, or the bottom for a VBox).
<!-- ##### ENUM GtkCornerType ##### -->
<para>
Specifies which corner a child widget should be placed in when packed into
a #GtkScrolledWindow. This is effectively the opposite of where the scroll
bars are placed.
</para>
@GTK_CORNER_TOP_LEFT:
@GTK_CORNER_BOTTOM_LEFT:
@GTK_CORNER_TOP_RIGHT:
@GTK_CORNER_BOTTOM_RIGHT:
@GTK_CORNER_TOP_LEFT: Place the scrollbars on the right and bottom of the
widget (default behaviour).
@GTK_CORNER_BOTTOM_LEFT: Place the scrollbars on the top and right of the
widget.
@GTK_CORNER_TOP_RIGHT: Place the scrollbars on the left and bottom of the
widget.
@GTK_CORNER_BOTTOM_RIGHT: Place the scrollbars on the top and left of the
widget.
<!-- ##### ENUM GtkCurveType ##### -->
<para>
@@ -87,13 +98,14 @@ Standard Enumerations
<!-- ##### ENUM GtkJustification ##### -->
<para>
Used for justifying the text inside a #GtkLabel widget. (See also
#GtkAlignment).
</para>
@GTK_JUSTIFY_LEFT:
@GTK_JUSTIFY_RIGHT:
@GTK_JUSTIFY_CENTER:
@GTK_JUSTIFY_FILL:
@GTK_JUSTIFY_LEFT: The text is placed at the left edge of the label.
@GTK_JUSTIFY_RIGHT: The text is placed at the right edge of the label.
@GTK_JUSTIFY_CENTER: The text is placed in the center of the label.
@GTK_JUSTIFY_FILL: The text is placed is distributed across the label.
<!-- ##### ENUM GtkMatchType ##### -->
<para>
@@ -126,10 +138,11 @@ Standard Enumerations
<!-- ##### ENUM GtkPackType ##### -->
<para>
Used for packing widgets into #GtkBox widgets. (See also: #GtkVBox,
#GtkHBox, and #GtkButtonBox).
</para>
@GTK_PACK_START:
@GTK_PACK_START: The
@GTK_PACK_END:
<!-- ##### ENUM GtkPathPriorityType ##### -->
@@ -155,12 +168,13 @@ Standard Enumerations
<!-- ##### ENUM GtkPolicyType ##### -->
<para>
Determines when a scroll bar will be visible.
</para>
@GTK_POLICY_ALWAYS:
@GTK_POLICY_AUTOMATIC:
@GTK_POLICY_NEVER:
@GTK_POLICY_ALWAYS: The scrollbar is always visible.
@GTK_POLICY_AUTOMATIC: The scrollbar will appear and disappear as necessary. For example,
when all of a #GtkCList can not be seen.
@GTK_POLICY_NEVER: The scrollbar will never appear.
<!-- ##### ENUM GtkPositionType ##### -->
<para>
@@ -176,26 +190,10 @@ Standard Enumerations
<para>
An enumeration which describes whether a preview
contains grayscale or red-green-blue data.
<informaltable pgwide=1 frame="none" role="enum">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>GTK_PREVIEW_COLOR</entry>
<entry>the preview contains red-green-blue data.</entry>
</row>
<row>
<entry>GTK_PREVIEW_GRAYSCALE</entry>
<entry>The preview contains grayscale data.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
@GTK_PREVIEW_COLOR:
@GTK_PREVIEW_GRAYSCALE:
@GTK_PREVIEW_COLOR: the preview contains red-green-blue data.
@GTK_PREVIEW_GRAYSCALE: The preview contains grayscale data.
<!-- ##### ENUM GtkReliefStyle ##### -->
<para>
@@ -239,32 +237,34 @@ contains grayscale or red-green-blue data.
<!-- ##### ENUM GtkShadowType ##### -->
<para>
Used to change the appearance of an outline typically provided by a #GtkFrame.
</para>
@GTK_SHADOW_NONE:
@GTK_SHADOW_IN:
@GTK_SHADOW_OUT:
@GTK_SHADOW_ETCHED_IN:
@GTK_SHADOW_NONE: No outline.
@GTK_SHADOW_IN: The outline is bevelled inwards.
@GTK_SHADOW_OUT: The outline is bevelled outwards like a button.
@GTK_SHADOW_ETCHED_IN: The outline itself is an inward bevel, but the frame
does
@GTK_SHADOW_ETCHED_OUT:
<!-- ##### ENUM GtkStateType ##### -->
<para>
This type indicates the current state of a widget.
</para>
@GTK_STATE_NORMAL:
@GTK_STATE_ACTIVE:
@GTK_STATE_PRELIGHT:
@GTK_STATE_NORMAL: The state during normal operation.
@GTK_STATE_ACTIVE: The widget is currently active, such as a
@GTK_STATE_PRELIGHT: The mouse pointer is over the widget.
@GTK_STATE_SELECTED:
@GTK_STATE_INSENSITIVE:
@GTK_STATE_INSENSITIVE: The state of the widget can not be altered by the
user. Its appearance will usually indicate this.
<!-- ##### ENUM GtkSubmenuDirection ##### -->
<para>
Indicates the direction a sub-menu will appear.
</para>
@GTK_DIRECTION_LEFT:
@GTK_DIRECTION_LEFT: A sub-menu will appear
@GTK_DIRECTION_RIGHT:
<!-- ##### ENUM GtkSubmenuPlacement ##### -->
@@ -277,12 +277,12 @@ contains grayscale or red-green-blue data.
<!-- ##### ENUM GtkToolbarStyle ##### -->
<para>
Used to customize the appearance of a #GtkToolbar.
</para>
@GTK_TOOLBAR_ICONS:
@GTK_TOOLBAR_TEXT:
@GTK_TOOLBAR_BOTH:
@GTK_TOOLBAR_ICONS: Buttons should display only icons in the toolbar.
@GTK_TOOLBAR_TEXT: Buttons should display only text labels in the toolbar.
@GTK_TOOLBAR_BOTH: Buttons should display text and icons in the toolbar.
<!-- ##### ENUM GtkTroughType ##### -->
<para>
@@ -314,27 +314,33 @@ contains grayscale or red-green-blue data.
<!-- ##### ENUM GtkWindowPosition ##### -->
<para>
Window placement can be influenced using this enumeration.
</para>
@GTK_WIN_POS_NONE:
@GTK_WIN_POS_CENTER:
@GTK_WIN_POS_MOUSE:
@GTK_WIN_POS_NONE: No influence is made on placement.
@GTK_WIN_POS_CENTER: Windows should be placed in the center of the screen.
@GTK_WIN_POS_MOUSE: Windows should be placed at the current mouse position.
<!-- ##### ENUM GtkWindowType ##### -->
<para>
A #GtkWindow can be of these types. A toplevel window has standard window
decorations by default. A dialog may have fewer decorations and obey a
different placement policy. A popup window will have no decorations.
</para>
<para>
It should be noted that such decorations can often be over-ridden by modern
window managers.
</para>
@GTK_WINDOW_TOPLEVEL:
@GTK_WINDOW_DIALOG:
@GTK_WINDOW_POPUP:
@GTK_WINDOW_TOPLEVEL: A window for a typical application.
@GTK_WINDOW_DIALOG: A window for transient messages and dialogs.
@GTK_WINDOW_POPUP: A window for popups.
<!-- ##### ENUM GtkSortType ##### -->
<para>
Determines the direction of a sort.
</para>
@GTK_SORT_ASCENDING:
@GTK_SORT_DESCENDING:
@GTK_SORT_ASCENDING: Sorting is in ascending order.
@GTK_SORT_DESCENDING: Sorting is in descending order.
+24 -11
View File
@@ -2,55 +2,68 @@
GtkListItem
<!-- ##### SECTION Short_Description ##### -->
an item in a #GtkList.
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GtkListItem widget is used for each item in a #GtkList.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<variablelist>
<varlistentry>
<term>#GtkList</term>
<listitem><para>the parent list widget.</para></listitem>
</varlistentry>
</variablelist>
</para>
<!-- ##### STRUCT GtkListItem ##### -->
<para>
The #GtkListItem struct contains private data only, and should
only be accessed using the functions below.
</para>
<!-- ##### FUNCTION gtk_list_item_new ##### -->
<para>
Creates a new #GtkListitem.
</para>
@Returns:
@Returns: a new #GtkListItem.
<!-- ##### FUNCTION gtk_list_item_new_with_label ##### -->
<para>
Creates a new #GtkListItem with a child label containing the given string.
</para>
@label:
@Returns:
@label: the string to use for the child label.
@Returns: a new #GtkListItem with a child #GtkLabel with the text set to
@label.
<!-- ##### FUNCTION gtk_list_item_select ##### -->
<para>
Selects the item, by emitting the item's "select" signal.
Depending on the selection mode of the list, this may cause other items to
be deselected.
</para>
@list_item:
@list_item: a #GtkListItem.
<!-- ##### FUNCTION gtk_list_item_deselect ##### -->
<para>
Deselects the item, by emitting the item's "deselect" signal.
</para>
@list_item:
@list_item: a #GtkListItem.
<!-- ##### SIGNAL GtkListItem::toggle-focus-row ##### -->
+190 -76
View File
@@ -11,7 +11,7 @@ have control over the program flow all the time this does not apply to
applications written using GTK. Instead you set up some objects and
register some functions (<quote>callbacks</quote>) to be called whenever
some event occurs and give control to the GTK mainloop (e.g. by calling
<function>gtk_main</function>).
gtk_main).
</para>
<example>
@@ -143,58 +143,123 @@ and invoke timeouts etc. while doing some time intensive computation.
<!-- ##### FUNCTION gtk_main ##### -->
<para>
Runs the main loop until gtk_main_quit() is called. You can nest calls to
gtk_main. In that case gtk_main_quit() will make the innerst invocation
of the main loop return.
</para>
<!-- ##### FUNCTION gtk_main_level ##### -->
<para>
Ask for the current nesting level of the main loop. This can be useful
when calling gtk_quit_add.
</para>
@Returns:
@Returns: the nesting level of the current invocation of the main loop.
<!-- ##### FUNCTION gtk_main_quit ##### -->
<para>
Makes the innermost invocation of the main loop return when it regains
control.
</para>
<!-- ##### FUNCTION gtk_main_iteration ##### -->
<para>
Runs a single iteration of the mainloop. If no events are waiting to be
processed GTK+ will block until the next event is noticed. If you don't
want to block look at gtk_main_iteration_do or check if any events are
pending with gtk_events_pending first.
</para>
@Returns:
@Returns: %TRUE if gtk_main_quit has been called for the innermost mainloop.
<!-- ##### FUNCTION gtk_main_iteration_do ##### -->
<para>
Run a single iteration of the mainloop. If no events are available either
return or block dependend on the value of @blocking.
</para>
@blocking:
@Returns:
@blocking: %TRUE if you want GTK+ to block if no events are pending.
@Returns: %TRUE if gtk_main_quit has been called for the innermost mainloop.
<!-- ##### FUNCTION gtk_main_do_event ##### -->
<para>
Process a single GDK event. This is public only to allow filtering of events
between GDK and GTK. You will not usually need to call this function directly.
</para>
<para>
While you should not call this function directly, you might want to know
how exactly events are handled. So here is what this function does with
the event:
</para>
@event:
<orderedlist>
<listitem><para>
Compress enter/leave notify events. If the event passed build an
enter/leave pair together with the next event (peeked from Gdk)
both events are thrown away. This is to avoid a backlog of (de-)highlighting
widgets crossed by the pointer.
</para></listitem>
<listitem><para>
Find the widget which got the event. If the widget can't be determined
the event is thrown away unless it belongs to a INCR transaction. In that
case it is passed to gtk_selection_incr_event.
</para></listitem>
<listitem><para>
Then the event is passed on a stack so you can query the currently handled
event with gtk_get_current_event.
</para></listitem>
<listitem><para>
The event is sent to a widget. If a grab is active all events for
widgets that are not in the contained in the grab widget are sent to the
latter with a few exceptions:
<itemizedlist>
<listitem><para>
Deletion and destruction events are still sent to the event widget for
obvious reasons.
</para></listitem>
<listitem><para>
Events which directly relate to the visual representation of the event
widget.
</para></listitem>
<listitem><para>
Leave events are delivered to the event widget if there was an enter
event delivered to it before without the paired leave event.
</para></listitem>
<listitem><para>
Drag events are not redirected because it is unclear what the semantics
of that would be.
</para></listitem>
</itemizedlist>
Another point of interest might be that all keypresses are first passed
through the key snooper functions if there are any. Read the description
of gtk_key_snooper_install() if you need this feature.
</para></listitem>
<listitem><para>
After finishing the delivery the event is popped from the event stack.
</para></listitem>
</orderedlist>
@event: An event to process (normally) passed by Gdk.
<!-- ##### USER_FUNCTION GtkModuleInitFunc ##### -->
<para>
Each GTK+ module must have a function gtk_module_init with this prototype.
This function is called after loading the module with the argc and argv
cleaned from any arguments that GTK+ handles itself.
</para>
@argc:
@argv:
@argc: Pointer to the number of arguments remaining after gtk_init.
@argv: Points to the argument vector.
<!-- ##### FUNCTION gtk_true ##### -->
@@ -250,137 +315,170 @@ but always returns %FALSE.
<!-- ##### FUNCTION gtk_grab_add ##### -->
<para>
Makes %widget the current grabbed widget. This means that interaction with
other widgets in the same application is blocked and mouse as well as
keyboard events are delivered to this %widget.
</para>
@widget:
@widget: The widget that grabs keyboard and pointer events.
<!-- ##### FUNCTION gtk_grab_get_current ##### -->
<para>
Queries the current grab.
</para>
@Returns:
@Returns: The widget which currently has the grab or %NULL if no grab is active.
<!-- ##### FUNCTION gtk_grab_remove ##### -->
<para>
Remove the grab from the given widget. You have to pair calls to gtk_grab_add
and gtk_grab_remove.
</para>
@widget:
@widget: The widget which gives up the grab.
<!-- ##### FUNCTION gtk_init_add ##### -->
<para>
Register a function to be called when the mainloop is started.
</para>
@function:
@data:
@function: Function to invoke when gtk_main is called next.
@data: Data to pass to that function.
<!-- ##### FUNCTION gtk_quit_add_destroy ##### -->
<para>
Trigger destruction of %object in case the mainloop at level %main_level
is quit.
</para>
@main_level:
@object:
@main_level: Level of the mainloop which shall trigger the destruction.
@object: Object to be destroyed.
<!-- ##### FUNCTION gtk_quit_add ##### -->
<para>
Registers a function to be called when an instance of the mainloop is left.
</para>
@main_level:
@function:
@data:
@Returns:
@main_level: Level at which termination the function shall be called. You
can pass 0 here to have the function run at the termination of the current
mainloop.
@function: The function to call. This should return 0 to be removed from the
list of quit handlers. Otherwise the function might be called again.
@data: Pointer to pass when calling %function.
@Returns: A handle for this quit handler (you need this for gtk_quit_remove())
or 0 if you passed a NULL pointer in %function.
<!-- ##### FUNCTION gtk_quit_add_full ##### -->
<para>
Registers a function to be called when an instance of the mainloop is left.
In comparison to gtk_quit_add() this function adds the possibility to
pass a marshaller and a function to be called when the quit handler is freed.
</para>
<para>
The former can be used to run interpreted code instead of a compiled function
while the latter can be used to free the information stored in %data (while
you can do this in %function as well)... So this function will mostly be
used by GTK+ wrappers for languages other than C.
</para>
@main_level:
@function:
@marshal:
@data:
@destroy:
@Returns:
@main_level: Level at which termination the function shall be called. You
can pass 0 here to have the function run at the termination of the current
mainloop.
@function: The function to call. This should return 0 to be removed from the
list of quit handlers. Otherwise the function might be called again.
@marshal: The marshaller to be used. If this is non-NULL, %function is
ignored.
@data: Pointer to pass when calling %function.
@destroy: Function to call to destruct %data. Gets %data as argument.
@Returns: A handle for this quit handler (you need this for gtk_quit_remove())
or 0 if you passed a NULL pointer in %function.
<!-- ##### FUNCTION gtk_quit_remove ##### -->
<para>
Remove a quit handler by it's identifier.
</para>
@quit_handler_id:
@quit_handler_id: Identifier for the handler returned when installing it.
<!-- ##### FUNCTION gtk_quit_remove_by_data ##### -->
<para>
Remove a quit handler identified by it's %data field.
</para>
@data:
@data: The pointer passed as %data to gtk_quit_add() or gtk_quit_add_full().
<!-- ##### FUNCTION gtk_timeout_add_full ##### -->
<para>
Registers a function to be called periodically. The function will be called
repeatedly after %interval milliseconds until it returns %FALSE at which
point the timeout is destroyed and will not be called again.
</para>
@interval:
@function:
@marshal:
@data:
@destroy:
@Returns:
@interval: The time between calls to the function, in milliseconds
(1/1000ths of a second.)
@function: The function to call periodically.
@marshal: The marshaller to use instead of the function (if non-NULL).
@data: The data to pass to the function.
@destroy: Function to call when the timeout is destroyed or NULL.
@Returns: A unique id for the event source.
<!-- ##### FUNCTION gtk_timeout_add ##### -->
<para>
Registers a function to be called periodically. The function will be called
repeatedly after %interval milliseconds until it returns %FALSE at which
point the timeout is destroyed and will not be called again.
</para>
@interval:
@function:
@data:
@Returns:
@interval: The time between calls to the function, in milliseconds
(1/1000ths of a second.)
@function: The function to call periodically.
@data: The data to pass to the function.
@Returns: A unique id for the event source.
<!-- ##### FUNCTION gtk_timeout_remove ##### -->
<para>
Removes the given timeout destroying all information about it.
</para>
@timeout_handler_id:
@timeout_handler_id: The identifier returned when installing the timeout.
<!-- ##### FUNCTION gtk_idle_add ##### -->
<para>
Causes the mainloop to call the given function whenever no events with
higher priority are to be processed. The default priority is
GTK_PRIORITY_DEFAULT, which is rather low.
</para>
@function:
@data:
@Returns:
@function: The function to call.
@data: The information to pass to the function.
@Returns: a unique handle for this registration.
<!-- ##### FUNCTION gtk_idle_add_priority ##### -->
<para>
Like gtk_idle_add() this function allows you to have a function called
when the event loop is idle. The difference is that you can give a
priority different from GTK_PRIORITY_DEFAULT to the idle function.
</para>
@priority:
@function:
@data:
@Returns:
@priority: The priority which should not be above G_PRIORITY_HIGH_IDLE.
Note that you will interfere with GTK if you use a priority above
GTK_PRIORITY_RESIZE.
@function: The function to call.
@data: Data to pass to that function.
@Returns: A unique id for the event source.
<!-- ##### FUNCTION gtk_idle_add_full ##### -->
@@ -398,18 +496,18 @@ but always returns %FALSE.
<!-- ##### FUNCTION gtk_idle_remove ##### -->
<para>
Removes the idle function with the given id.
</para>
@idle_handler_id:
@idle_handler_id: Identifies the idle function to remove.
<!-- ##### FUNCTION gtk_idle_remove_by_data ##### -->
<para>
Removes the idle function identified by the user data.
</para>
@data:
@data: remove the idle function which was registered with this user data.
<!-- ##### FUNCTION gtk_input_add_full ##### -->
@@ -436,42 +534,58 @@ but always returns %FALSE.
<!-- ##### MACRO GTK_PRIORITY_REDRAW ##### -->
<para>
Use this priority for redrawing related stuff. It is used internally by
GTK+ to do pending redraws. This priority is lower than %GTK_PRIORITY_RESIZE
to avoid redrawing a widget just before resizing (and therefore redrawing
it again).
</para>
<!-- ##### MACRO GTK_PRIORITY_RESIZE ##### -->
<para>
Use this priority for resizing related stuff. It is used internally by
GTK+ to compute the sizes of widgets. This priority is higher than
%GTK_PRIORITY_REDRAW to avoid resizing a widget which was just redrawn.
</para>
<!-- ##### MACRO GTK_PRIORITY_HIGH ##### -->
<para>
Use this for high priority timeouts. This priority is never used inside
GTK+ so everything running at this priority will be running before anything
inside the toolkit.
<note><para>
This macro is deprecated. You should use G_PRIORITY_HIGH instead.
</para></note>
</para>
<!-- ##### MACRO GTK_PRIORITY_INTERNAL ##### -->
<para>
This priority is for GTK+ internal stuff. Don't use it in your applications.
</para>
<!-- ##### MACRO GTK_PRIORITY_DEFAULT ##### -->
<para>
Default priority for idle functions.
<note><para>
This macro is deprecated. You should use G_PRIORITY_DEFAULT_IDLE instead.
</para></note>
</para>
<!-- ##### MACRO GTK_PRIORITY_LOW ##### -->
<para>
Priority for very unimportant background tasks.
<note><para>
This macro is deprecated. You should use G_PRIORITY_LOW instead.
</para></note>
</para>
+60 -30
View File
@@ -2,16 +2,35 @@
GtkMenuItem
<!-- ##### SECTION Short_Description ##### -->
the widget used for item in menus
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GtkMenuItem widget and the derived widgets are the only valid
childs for menus. Their function is to correctly handle highlighting,
alignment, events and submenus.
</para>
<para>
As it derives from #GtkBin it can hold any valid child widget, altough
only a few are really useful.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<variablelist>
<varlistentry>
<term>#GtkBin</term>
<listitem><para>for how to handle the child.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkItem</term>
<listitem><para>is the abstract class for all sorts of items.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkMenuShell</term>
<listitem><para>is always the parent of #GtkMenuItem.</para></listitem>
</varlistentry>
</variablelist>
</para>
<!-- ##### STRUCT GtkMenuItem ##### -->
@@ -19,102 +38,113 @@ GtkMenuItem
</para>
@item: the parent class object
@submenu: the submenu attached to this item; read only
<!-- ##### FUNCTION gtk_menu_item_new ##### -->
<para>
Creates a new #GtkMenuItem.
</para>
@Returns:
@Returns: the newly created #GtkMenuItem
<!-- ##### FUNCTION gtk_menu_item_new_with_label ##### -->
<para>
Creates a new #GtkMenuItem whose child is a simple #GtlLabel.
</para>
@label:
@Returns:
@label: the text for the label
@Returns: the newly created #GtkMenuItem
<!-- ##### FUNCTION gtk_menu_item_set_submenu ##### -->
<para>
Sets the widget submenu, or changes it.
</para>
@menu_item:
@submenu:
@menu_item: the menu item widget
@submenu: the submenu
<!-- ##### FUNCTION gtk_menu_item_remove_submenu ##### -->
<para>
Removes the widget's submenu.
</para>
@menu_item:
@menu_item: the menu item widget
<!-- ##### FUNCTION gtk_menu_item_set_placement ##### -->
<para>
Specifies the placement of the submenu around the menu item. The placement
is usually #GTK_LEFT_RIGHT for menu items in a popup menu and
#GTK_TOP_BOTTOM in menu bars.
</para>
<para>
This function is useless in usual applications.
</para>
@menu_item:
@placement:
@menu_item: the menu item
@placement: the submenu placement
<!-- ##### FUNCTION gtk_menu_item_configure ##### -->
<para>
Sets whether the menu item should show a submenu indicator, which is a right
arrow.
</para>
@menu_item:
@show_toggle_indicator:
@show_submenu_indicator:
@menu_item: the menu item
@show_toggle_indicator: unused
@show_submenu_indicator: whether to show the arrow or not
<!-- ##### FUNCTION gtk_menu_item_select ##### -->
<para>
Emits the "select" signal on the given item. Behaves exactly like
#gtk_item_select.
</para>
@menu_item:
@menu_item: the menu item
<!-- ##### FUNCTION gtk_menu_item_deselect ##### -->
<para>
Emits the "deselect" signal on the given item. Behaves exactly like
#gtk_item_deselect.
</para>
@menu_item:
@menu_item: the menu item
<!-- ##### FUNCTION gtk_menu_item_activate ##### -->
<para>
Emits the "activate" signal on the given item
</para>
@menu_item:
@menu_item: the menu item
<!-- ##### FUNCTION gtk_menu_item_right_justify ##### -->
<para>
Sets the menu item to be right-justified. Only useful for menu bars.
</para>
@menu_item:
@menu_item: the menu item
<!-- ##### SIGNAL GtkMenuItem::activate ##### -->
<para>
Emitted when the item is activated.
</para>
@menuitem: the object which received the signal.
<!-- ##### SIGNAL GtkMenuItem::activate-item ##### -->
<para>
Emitted when the item is activated, but also if the menu item has a
submenu. For normal applications, the relevant signal is "activate".
</para>
@menuitem: the object which received the signal.
+1 -1
View File
@@ -172,7 +172,7 @@ ignored.
<!-- ##### MACRO gtk_notebook_current_page ##### -->
<para>
??? I don't see such a macro in gtknotebook.h (v1.2.3).
Compatibility macro; in gtkcompat.h.
</para>
+50 -17
View File
@@ -2,58 +2,91 @@
GtkRadioMenuItem
<!-- ##### SECTION Short_Description ##### -->
A choice from multiple check menu items.
<!-- ##### SECTION Long_Description ##### -->
<para>
A radio menu item is a check menu item that belongs to a group. At each
instant exactly one of the radio menu items from a group is selected.
</para>
<para>
The correct way to create a group of radio menu items is aproximativly
this:
</para>
<para>
<example>
<title>How to create a group of radio menu items.</title>
<programlisting>
GList *group = NULL;
GtkWidget *item;
gint i;
for(i = 0; i < 5; i++)
{
item = gtk_radio_menu_item_new_with_label (group, "This is an example");
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (item));
if (i == 1)
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE);
}
</programlisting>
</example>
<!-- ##### SECTION See_Also ##### -->
<para>
<variablelist>
<varlistentry>
<term>#GtkMenuItem</term>
<listitem><para>because a radio menu item is a menu item.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkCheckItem</term>
<listitem><para>to know how to handle the check.</para></listitem>
</varlistentry>
</variablelist>
</para>
<!-- ##### STRUCT GtkRadioMenuItem ##### -->
<para>
The structure contains only provate data that must be accessed through
the interface functions.
</para>
<!-- ##### FUNCTION gtk_radio_menu_item_new ##### -->
<para>
Creates a new #GtkRadioMenuItem.
</para>
@group:
@Returns:
@group: the group to wich the radio menu item is to be attached
@Returns: the newly created radio menu item
<!-- ##### FUNCTION gtk_radio_menu_item_new_with_label ##### -->
<para>
Creates a new #GtkRadioMenuItem whose child is a simple #GtlLabel.
</para>
@group:
@label:
@Returns:
@group: the group to wich the radio menu item is to be attached
@label: the text for the label
@Returns: the newly created radio menu item
<!-- ##### FUNCTION gtk_radio_menu_item_group ##### -->
<para>
Returns the group to which the radio menu item belongs, as a #GList of
#GtkRadioMenuItem. The list belongs to GTK+ and should not be freed.
</para>
@radio_menu_item:
@Returns:
@radio_menu_item: the radio menu item
@Returns: its group
<!-- ##### FUNCTION gtk_radio_menu_item_set_group ##### -->
<para>
Sets the group of a radio menu item, or changes it.
</para>
@radio_menu_item:
@group:
@radio_menu_item: the radio menu item
@group: the new group
+11 -2
View File
@@ -17,8 +17,16 @@ The length of time the user must keep the mouse over a widget before the tip is
<para>
To assign a tip to a particular #GtkWidget, gtk_tooltips_set_tip() is used.
</para>
<note>
<para>
The default appearance of all tooltips in a program is determined by the current gtk theme that the user has selected. To change the tooltip appearance manually, use gtk_tooltips_set_colors(). Again, this is per group of tooltips.
Tooltips can only be set on widgets which have their own X window.
To check if a widget has its own window use 'GTK_WIDGET_NO_WINDOW (widget)'.
To add a tooltip to a widget that doesn't have its own window, place the
widget inside a #GtkEventBox and add a tooltip to that instead.
</para>
</note>
<para>
The default appearance of all tooltips in a program is determined by the current gtk theme that the user has selected.
</para>
<para>
Information about the tooltip (if any) associated with an arbitrary widget can be retrieved using gtk_tooltips_data_get().
@@ -140,7 +148,8 @@ Adds a tooltip containing the message @tip_text to the specified #GtkWidget.
<!-- ##### FUNCTION gtk_tooltips_set_colors ##### -->
<para>
Changes the foreground and background colors of a #GtkTooltips.
This function is unimplemented because tooltip colors are instead
determined by the theme.
</para>
@tooltips: a #GtkTooltip
+74 -5
View File
@@ -68,13 +68,82 @@ GtkWindow
<!-- ##### FUNCTION gtk_window_set_policy ##### -->
<para>
Changes how a toplevel window deals with its size request and user resize
attempts. There are really only two reasonable ways to call this function:
<orderedlist>
<listitem>
<para>
<literal>gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, FALSE)</literal>
means that the window is user-resizable.
</para>
</listitem>
<listitem>
<para>
<literal>gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, TRUE)</literal>
means that the window's size is program-controlled, and should simply match
the current size request of the window's children.
</para>
</listitem>
</orderedlist>
The first policy is the default, that is, by default windows are designed to
be resized by users.
</para>
@window:
@allow_shrink:
@allow_grow:
@auto_shrink:
<para>
The basic ugly truth of this function is that it should be simply:
<programlisting>
void gtk_window_set_user_resizeable(GtkWidget* window, gboolean setting);
</programlisting>
So, pretend it is like that, and only use the two policies mentioned above.
GTK+ 1.4 may replace gtk_window_set_policy() with a nicer function like
gtk_window_set_user_resizeable().
</para>
<para>
If set to TRUE, the @allow_grow parameter allows the user to expand the window
beyond the size request of its child widgets. If @allow_grow is TRUE, be sure to
check that your child widgets work properly as the window is resized.
</para>
<para>
A toplevel window will always change size to ensure its child widgets receive
their requested size. This means that if you add child widgets, the toplevel
window will expand to contain them. However, normally the toplevel will not
shrink to fit the size request of its children if it's too large; the
@auto_shrink parameter causes the window to shrink when child widgets have too
much space. @auto_shrink is normally used with the second of the two window
policies mentioned above. That is, set @auto_shrink to TRUE if you want the
window to have a fixed, always-optimal size determined by your program.
</para>
<para>
Note that @auto_shrink doesn't do anything if @allow_shrink and @allow_grow are
both set to FALSE.
</para>
<para>
Neither of the two suggested window policies set the @allow_shrink paramter to
TRUE. If @allow_shrink is TRUE, the user can shrink the window so that its
children do not receive their full size request; this is basically a bad thing,
because most widgets will look wrong if this happens. Furthermore GTK+ has a
tendency to re-expand the window if size is recalculated for any reason. The
upshot is that @allow_shrink should always be set to FALSE.
</para>
<para>
Sometimes when you think you want to use @allow_shrink, the real problem is that
some specific child widget is requesting too much space, so the user can't
shrink the window sufficiently. Perhaps you are calling gtk_widget_set_usize()
on a child widget, and forcing its size request to be too large. Instead of
setting the child's usize, consider using gtk_window_set_default_size() so that
the child gets a larger allocation than it requests.
</para>
@window: the window
@allow_shrink: whether the user can shrink the window below its size request
@allow_grow: whether the user can grow the window larger than its size request
@auto_shrink: whether the window automatically snaps back to its size request if
it's larger
<!-- ##### FUNCTION gtk_window_add_accel_group ##### -->
+2 -2
View File
@@ -88,13 +88,13 @@ GtkWidget::style_set
Flag indications:
!GTK_RC_STYLE && !GTK_USER_STYLE:
The widget has it's default style set, no rc lookup has been
The widget has its default style set, no rc lookup has been
performed, the widget has not been size requested yet and is
therefore not yet realized.
GTK_USER_STYLE:
GTK_RC_STYLE is not set.
The widget has a user style assigned, and it's default style has been
The widget has a user style assigned, and its default style has been
saved.
GTK_RC_STYLE:
+1 -1
View File
@@ -398,7 +398,7 @@ according the the tab continuation of the previous line.
Exposure and drawing:
Exposure is handled from the EXPOSE_TEXT function. It assumes that
the LINE_START_CACHE and all it's parameters are accurate and simply
the LINE_START_CACHE and all its parameters are accurate and simply
exposes any line which is in the exposure region. It calls the
CLEAR_AREA function to clear the background and/or lay down a pixmap
background. The text widget has a scrollable pixmap background, which

Some files were not shown because too many files have changed in this diff Show More