Compare commits

...

87 Commits

Author SHA1 Message Date
Owen Taylor ad891783f2 === Released 2.2.1 ===
Sun Feb  2 10:03:24 2003  Owen Taylor  <otaylor@redhat.com>

        * === Released 2.2.1 ===

        * configure.in: Version 2.2.1, Binary age 201, interface age 1.

        * NEWS: More updates.
2003-02-02 15:51:04 +00:00
Duarte Loreto bd8e4ec9c7 Updated Portuguese translation.
2003-02-01  Duarte Loreto <happyguy_pt@hotmail.com>

        * pt.po: Updated Portuguese translation.
2003-02-02 14:18:27 +00:00
Tor Lillqvist 56bf242952 Add gdk_screen_get_system_visual. Noticed by Ed Woods.
2003-02-01  Tor Lillqvist  <tml@iki.fi>

	* gdk/gdk.def: Add gdk_screen_get_system_visual. Noticed by Ed
	Woods.
2003-02-01 20:56:06 +00:00
Christian Neumair b05973ad54 Updated German translation. 2003-02-01 17:37:25 +00:00
Manish Singh eb6822c2ca demos/pixbuf-demo.c demos/testpixbuf.c demos/gtk-demo/pixbufs.c sync with
Fri Jan 31 17:48:53 2003  Manish Singh  <yosh@gimp.org>

        * demos/pixbuf-demo.c
        * demos/testpixbuf.c
        * demos/gtk-demo/pixbufs.c
        * tests/testtext.c: sync with HEAD (removed gtk_timeout_* usage)
2003-02-01 01:49:25 +00:00
Manish Singh 69e5d23af7 set_state on the tab_label before unparenting it, in case the unparent
Fri Jan 31 17:23:59 2003  Manish Singh  <yosh@gimp.org>

        * gtk/gtknotebook.c (gtk_notebook_remove_tab_label): set_state
        on the tab_label before unparenting it, in case the unparent
        drops the refcount to 0.
2003-02-01 01:27:00 +00:00
Owen Taylor 94d641664a Updates.
Thu Jan 30 23:44:52 2003  Owen Taylor  <otaylor@redhat.com>

        * NEWS: Updates.
2003-01-31 04:45:11 +00:00
Kristian Rietveld b11de91341 beginning of NEWS for 2.2.1.
Fri Jan 31 00:28:18 2003  Kristian Rietveld  <kris@gtk.org>

        * NEWS: beginning of NEWS for 2.2.1.
2003-01-30 23:15:34 +00:00
Kristian Rietveld f1a895f5cf Fix bug number. 2003-01-30 22:45:45 +00:00
Kristian Rietveld d7fc46eb8a Merge from HEAD.
Thu Jan 30 23:48:30 2003  Kristian Rietveld  <kris@gtk.org>

        Merge from HEAD.

        * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_count_special_cell):
        only count the special cell if it is also visible,
        (_gtk_tree_view_column_get_neighbor_sizes): only take the width into
        account from visible cells,
        (gtk_tree_view_column_cell_get_position): likewise, (Reported and
        testcase provided by Vasco Alexandre da Silva Costa, via IRC,
        tracking bug was #104563).

Thu Jan 30 23:46:15 2003  Kristian Rietveld  <kris@gtk.org>

        Merge from HEAD.

        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
        subtract expander space and focus line space from the extra space
        we are about the allocate. (Fixes #104635).

Thu Jan 30 23:42:03 2003  Kristian Rietveld  <kris@gtk.org>

        Merge from HEAD.

        * gtk/gtkstyle.c (apply_affine_on_point): fix rouding error
        (Fixes #96252, patch from Soeren Sandmann).
2003-01-30 22:43:30 +00:00
Kristian Rietveld b5ebedc782 Merge from HEAD: I found out that we live in 2003 already. 2003-01-30 22:25:54 +00:00
Owen Taylor c012d1fe9e Patch from Soeren Sandmann to update the states of the tab label child
Thu Jan 30 16:54:29 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtknotebook.c: Patch from Soeren Sandmann
        to update the states of the tab label child
        widgets to match the state of the tabs.
        (#93389, Reported by Tommi Komulainen)
2003-01-30 21:57:25 +00:00
Daniel Elstner b92af6e16b Merge from HEAD.
2003-01-30  Daniel Elstner  <daniel.elstner@gmx.net>

	Merge from HEAD.

	* gtk/gtktoolbar.c (set_child_packing_and_visibility): New helper
	function that sets the icon's and label's packing options and
	visibility based on toolbar->style.

	(gtk_toolbar_internal_insert_element):
	(gtk_real_toolbar_style_changed): Make use of
	set_child_packing_and_visibility() to clean up the code and get
	the packing right for icon-only/text-only toolbars. (#104679)

	(get_first_child): Remove, and use gtk_bin_get_child() instead.
2003-01-30 21:48:07 +00:00
Owen Taylor 43de9ea350 Remove gtk+.spec.in from EXTRA_DIST, and from dist rules. (#102231)
Thu Jan 30 16:30:54 2003  Owen Taylor  <otaylor@redhat.com>

        * Makefile.am (EXTRA_DIST): Remove gtk+.spec.in from
        EXTRA_DIST, and from dist rules. (#102231)
2003-01-30 21:40:35 +00:00
Owen Taylor 9bc1460bca Remove the attempt-to-allocate then free code. To handle multiple people
Thu Jan 30 16:01:29 2003  Owen Taylor  <otaylor@redhat.com>

        * gdk/gdkrgb.c (gdk_rgb_try_colormap): Remove the
        attempt-to-allocate then free code. To handle multiple
        people allocating colors at the same time, we need
        to just go ahead and try. (#102213, Shivram U)
2003-01-30 21:18:48 +00:00
Daniel Elstner acd43b3ee6 Merge from HEAD.
2003-01-30  Daniel Elstner  <daniel.elstner@gmx.net>

	Merge from HEAD.

	* gtk/gtkcolorsel.c (palette_paint): Explicitely draw an opaque
	rectangle using the background color rather than relying on
	gdk_window_clear_area(), so that the palette works properly with
	pixmap themes.

	* demos/gtk-demo/colorsel.c: Install an "expose_event" handler
	to fill the drawing area in the background color.
2003-01-30 20:08:24 +00:00
Matthias Clasen 0745fd5c6c s/overwrite/override/g (#104627, Brian Cameron)
2003-01-30  Matthias Clasen  <maclas@gmx.de>

	* gtk/running.sgml: s/overwrite/override/g  (#104627, Brian Cameron)
2003-01-30 00:07:02 +00:00
Hidetoshi Tajima 592df75970 fix a memory initialization error for selecting input style (#103549).
* modules/input/gtkimcontextxim.c (choose_better_style): fix a memory
	initialization error for selecting input style (#103549).
2003-01-29 22:44:58 +00:00
Owen Taylor 545ef43527 Make the translation of GDK_KP_Decimal dependent on LC_NUMERIC. (#101225)
Wed Jan 29 17:02:41 2003  Owen Taylor  <otaylor@redhat.com>

        * gdk/gdkkeyuni.c (get_decimal_char): Make the
        translation of GDK_KP_Decimal dependent on LC_NUMERIC.
        (#101225)
2003-01-29 22:24:49 +00:00
Owen Taylor fee332c6dc Make up from the menu bar go to the end of the submenu. (#96114, Ian
Wed Jan 29 15:43:56 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
        Make up from the menu bar go to the end of the submenu.
        (#96114, Ian Peters.)

        * gtk/gtkmenuitem.c (gtk_menu_item_mnemonic_activate):
        Only do the select-but-not-activate stuff if the
        menu is already active. Otherwise, just activate.
        (#101690, Arvind Samptur)
2003-01-29 21:01:29 +00:00
Christian Neumair 6ab8762032 Updated German translation. 2003-01-29 16:27:58 +00:00
Tivo Leedjrv 704fd74f2b Updated Estonian translation.
2003-01-28  Tivo Leedjrv  <toivo@linux.ee>

        * et.po: Updated Estonian translation.
2003-01-28 20:40:26 +00:00
Owen Taylor d23d7f9916 Fix version in complaint message about automake. (#104366, Rich Burridge)
Tue Jan 28 15:18:24 2003  Owen Taylor  <otaylor@redhat.com>

	* autogen.sh (have_automake): Fix version in complaint
	message about automake. (#104366, Rich Burridge)
2003-01-28 20:31:18 +00:00
Owen Taylor f1f9bf8a38 Remove SOEXT stuff; it doesn't work portably.
Mon Jan 27 16:38:13 2003  Owen Taylor  <otaylor@redhat.com>

        * configure.in: Remove SOEXT stuff; it doesn't work portably.
2003-01-27 23:22:14 +00:00
Owen Taylor b0e495309d Rewrite to run on the .la files rather than looking for .so files.
Mon Jan 27 17:10:30 2003  Owen Taylor  <otaylor@redhat.com>

        * Makefile.am (gdk-pixbuf.loaders): Rewrite to run
        on the .la files rather than looking for .so files.
        (#102142, Martin Gansser)

        * Makefile.am: Don't build gdk-pixbuf.loaders when
        cross-compiling.
2003-01-27 23:19:07 +00:00
Kristian Rietveld 1e11759ffd Merges from HEAD.
ChangeLog too long to mention here. Bugs fixed: #100973, #83195, #87556,
#99803, #100458. And a couple of non-bugzilla'd bugs. (yes, I prolly
misspelled "bugzilla'd").
2003-01-27 21:47:35 +00:00
Owen Taylor 30a9e56179 event->any.window might be NULL. Use gtk_widget_get_display (widget)
Mon Jan 27 16:19:59 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtksocket.c (gtk_socket_filter_func): event->any.window
        might be NULL. Use gtk_widget_get_display (widget)
        (#102860, Thomas Leonard)
2003-01-27 21:22:00 +00:00
Owen Taylor a3883873ce Fix --without-modules/--disable-modules confusion that was causing
Mon Jan 27 15:58:31 2003  Owen Taylor  <otaylor@redhat.com>

        * configure.in: Fix --without-modules/--disable-modules
        confusion that was causing --disable-modules not to work.
        (#102865, Akira Tagoh)

        * configure.in: Fix problem with plain --with-xinput
        (#104266, Akira Tagoh)
2003-01-27 21:14:48 +00:00
He Qiangqiang 9c99f64bda Updated Simplified Chinese translation by Funda Wang
2003-01-26  He Qiangqiang  <carton@linux.net.cn>

        * zh_CN.po: Updated Simplified Chinese translation by
        Funda Wang <fundawang@en2china.com>.
2003-01-26 13:12:26 +00:00
Kang Jeong-Hee d87fb4cab8 ko.po updated 2003-01-26 12:11:14 +00:00
Chyla Zbigniew 1f1e466e88 Updated Polish translation by GNOME PL Team <translators@gnome.pl> 2003-01-24 22:22:11 +00:00
Christian Neumair 715f735051 Updated German translation. 2003-01-24 15:20:14 +00:00
Matthias Clasen 4184031fab Make move bindings viewport-based when the cursor is invisible. (#78669)
2003-01-24  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
	move bindings viewport-based when the cursor is invisible.  (#78669)
2003-01-24 00:54:41 +00:00
Daniel Elstner 9ef77ef39c Merge from HEAD.
2003-01-23  Daniel Elstner  <daniel.elstner@gmx.net>

Merge from HEAD.

* gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
in addition to show_all in order to keep them symmetric. (#102201)
2003-01-23 20:04:16 +00:00
Yuri Syrota 7e12070078 Updated Ukrainian translation 2003-01-23 19:12:22 +00:00
Yuri Syrota a5c0d28e10 Updated Ukrainian translation 2003-01-23 18:47:45 +00:00
Tor Lillqvist e0c849739d Add bug number. 2003-01-22 23:17:07 +00:00
Tor Lillqvist a0f421f6eb Implement.
2003-01-22  Tor Lillqvist  <tml@iki.fi>

	* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_foreign_new_for_display,
	gdk_pixmap_lookup, gdk_pixmap_lookup_for_display): Implement.

	* gdk/gdk.def: Export the above.
2003-01-22 23:15:52 +00:00
Pablo Gonzalo del Campo d703d86055 Fixed bug #103087.
2003-01-22  Pablo Gonzalo del Campo <pablodc@bigfoot.com>

	* es.po: Fixed bug #103087.
2003-01-22 22:25:37 +00:00
Manish Singh 58ee037434 add a "return" at the end of the function, so there is a statement
Wed Jan 22 14:23:23 2003  Manish Singh  <yosh@gimp.org>

        * gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
        the end of the function, so there is a statement following the "out"
        label in all cases (fixes #101961)
2003-01-22 22:15:43 +00:00
Christian Rose 6d006849aa Added "mn" to ALL_LINGUAS. Added Mongolian translation by Sanlig Badral
2003-01-22  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "mn" to ALL_LINGUAS.
	* po/mn.po: Added Mongolian translation by
	Sanlig Badral <badral@chinggis.com>.
2003-01-22 01:51:50 +00:00
Owen Taylor 8fcedda777 Fix off-by-one error on the backward iteration loop, that was causing the
Wed Jan 15 17:02:18 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtktextlayout.c (gtk_text_layout_validate_yrange):
        Fix off-by-one error on the backward iteration loop,
        that was causing the wrong range to be redrawn.
        (at least part of #72734)
2003-01-21 22:48:52 +00:00
Matthias Clasen 45e801df00 Adjust the vadjustment value after changing its bounds. (fixes #101963 and
2003-01-21  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtktextview.c (gtk_text_view_size_allocate): Adjust the
	vadjustment value after changing its bounds.  (fixes #101963 and
	#73562)
2003-01-21 22:33:14 +00:00
Matthias Clasen 02dbda7fac Merge from HEAD.
2003-01-21  Matthias Clasen  <maclas@gmx.de>

	Merge from HEAD.

	* gtk/gtkcolorsel.c (hex_changed): Fix clamping to [0,1] to avoid
	unnecessary roundtrip failures.  (#93500)
2003-01-21 00:00:48 +00:00
Pablo Saratxaga 15f799d645 updated Vietnamese file;
Added missing langs to ALL_LINGUAS
2003-01-20 18:28:05 +00:00
Gustavo Noronha Silva 365bd26d3c changed a mnemonic 2003-01-20 14:35:54 +00:00
Andraz Tori e344b9e864 Updated Slovenian translation 2003-01-19 13:45:14 +00:00
Jordi Mallach a4f1d8e6ea Partially updated Catalan translation. 2003-01-19 03:06:11 +00:00
Tor Lillqvist 1657870198 Fix for #103614 and some other problems with GtkFileSelection on Windows:
2003-01-19  Tor Lillqvist  <tml@iki.fi>

	Fix for #103614 and some other problems with GtkFileSelection on
	Windows:

	* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
	g_ascii_tolower(). Windows file names are case-insensitive for all
	Unicode letters.

	* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
	G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
	earlier, as it includes config.h unconditionally, and gtkprivate.h
	redefines GTK_LOCALEDIR.
	(struct _CompletionDirSent): Ifdef out the fields not used on
	Windows.
	(compare_utf8_filenames, compare_sys_filenames): Need different
	comparison implementation for UTF-8 file names and system locale
	file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
	need to casefold all Unicode letters.
	(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
	variables not used on Win32 to avoid warnings about unused
	variables.
	(open_ref_dir): Use g_path_skip_root() to skip past potential
	drive letter in front of the leading (back)slash.
	(open_new_dir): Ifdef out use of CompletionDirSent fields not
	there on Win32.
	(correct_parent): Bypass inode check also on Cygwin.
2003-01-19 01:20:27 +00:00
Andraz Tori d90f3e1479 Updated Slovenian translation 2003-01-16 15:50:03 +00:00
Daniel Yacob 32caaf841d Updating Amharic translation, in right branch. 2003-01-16 13:24:05 +00:00
German Poo-Caaman~o c84b10e5bb Updated Spanish translation
2003-01-16  German Poo-Caaman~o <gpoo@ubiobio.cl>

	* es.po: Updated Spanish translation
2003-01-16 12:31:50 +00:00
Gustavo Noronha Silva f4504ac5a2 translation update 2003-01-16 01:39:07 +00:00
Tor Lillqvist e578482657 Fix bug noticed by Alex Shaduri: Tooltips and other GDK_WINDOW_TEMP
2003-01-15  Tor Lillqvist  <tml@iki.fi>

	Fix bug noticed by Alex Shaduri: Tooltips and other
	GDK_WINDOW_TEMP windows were activated. This looked very odd, and
	was a regression from earlier versions.

	* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
	behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
	(gdk_window_move, gdk_window_resize): Add debug logging.

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
	WM_SIZE message for a non-visible (withdrawn) window, don't clear
	the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
	even if its size changes.
2003-01-15 23:54:30 +00:00
Abel Cheung d941e11496 Updated traditional Chinese translation.
2003-01-16  Abel Cheung  <maddog@linux.org.hk>

	* zh_TW.po: Updated traditional Chinese translation.
2003-01-15 23:33:34 +00:00
Owen Taylor 2db9f4acbe Set the double click speed from XSETTINGS when creating a new GtkSettings
Wed Jan 15 15:55:47 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtksettings.c: Set the double click speed from
        XSETTINGS when creating a new GtkSettings object
        as well as when getting a notify. (#103601, reported
        by Louis Garcia)
2003-01-15 21:01:45 +00:00
Owen Taylor 4a9a6598f0 Show/hide the notebook event window as necessary, we weren't previously
Wed Jan 15 14:56:09 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_size_allocate):
        Show/hide the notebook event window as necessary,
        we weren't previously keeping the visibility updated
        properly.  (#103599)
2003-01-15 20:31:39 +00:00
Pablo Gonzalo del Campo 2ec3761ee7 Fixed another couple of strings in Spanish translation.
2003-01-15  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>

        * es.po: Fixed another couple of strings in Spanish translation.
2003-01-15 20:04:18 +00:00
Pablo Gonzalo del Campo ad7a7fac4b Fixed a couple of strings in Spanish translation.
2003-01-15  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>

        * es.po: Fixed a couple of strings in Spanish translation.
2003-01-15 18:26:00 +00:00
Dmitry Mastrukov 2b09353851 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-01-15 06:07:59 +00:00
Murray Cumming 7710e3111d Fixes #102168. Merge from HEAD.
2002-12-29  Murray Cumming  <murrayc@usa.net>

	Fixes #102168. Merge from HEAD.

	* gtk/gtkliststore.c, gtktreednd.c, gtktreestore.c:
	Actually implement the GtkTreeDragSource::row_draggable virtual
	function in GtkListStore and GtkTreeStore instead of just checking
	whether it's implemented at all. This means that DnD isn't broken by
	gtkmm's virtual function wrappers. The alternative would be to
	hard-code the TRUE return value into gtkmm's wrappers, but that's
	part of GTK+'s implementation, not it's API.
2003-01-14 22:58:54 +00:00
Kristian Rietveld 0a35750777 Merge from HEAD.
Tue Jan 14 23:54:06 2002  Kristian Rietveld  <kris@gtk.org>

	Merge from HEAD.

	* gtk/gtktreeview.c: fix compiler warning.
2003-01-14 22:45:10 +00:00
Kristian Rietveld 6b6dfd7fe6 Merges from HEAD.
The full changelog for this commit is too long to paste here, so to avoid
annoying everybody I will write a short summary here.

Fixes for: #102890, #103198, #102618, #93629, #100172, #101235, #96650,
#102379.

Other than that also a ListStore fix and a TreeView scrolling fix.

Those interested in the hairy details can checkout gtk+/ChangeLog.
2003-01-14 22:42:54 +00:00
Pauli Virtanen 2a5cb4e974 Updated Finnish translation.
2003-01-13  Pauli Virtanen  <pauli.virtanen@hut.fi>

	* fi.po: Updated Finnish translation.
2003-01-13 22:19:35 +00:00
Christian Neumair 2159b143c4 Updated German translation. 2003-01-13 15:20:40 +00:00
Tor Lillqvist df954de178 Move inclusion of config.h and gtkintl.h earlier, as gtkprivate.h
2003-01-12  Tor Lillqvist  <tml@iki.fi>

	* gtk/gtkmain.c: Move inclusion of config.h and gtkintl.h earlier,
	as gtkprivate.h redefines GTK_LOCALEDIR on Win32, for run-time
	lookup.
2003-01-12 04:19:09 +00:00
Tor Lillqvist cbf87cfed9 Depend on gdk.def.
2003-01-12  Tor Lillqvist  <tml@iki.fi>

	* gdk/Makefile.am (libgdk_win32_2_0_la_DEPENDENCIES): Depend on
	gdk.def.

	* gdk/gdk.def
	* gtk/gtk.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-12 01:56:27 +00:00
Tor Lillqvist c50b328eb9 Add some missing entries. Thanks to Kenichi SUTO.
2003-01-12  Tor Lillqvist  <tml@iki.fi>

	* gdk_pixbuf.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-12 01:22:37 +00:00
Tor Lillqvist 2183d21b12 Implement by setting or clearing the WS_EX_TOOLWINDOW extended window
2003-01-09  Tor Lillqvist  <tml@iki.fi>

	* gdk/win32/gdkwindow-win32.c (gdk_window_set_skip_taskbar_hint):
	Implement by setting or clearing the WS_EX_TOOLWINDOW extended
	window style.
	(gdk_window_set_type_hint): Add all cases to the switch (not all
	do anything, though). Handle GDK_WINDOW_TYPE_HINT_TOOLBAR by
	calling gdk_window_set_skip_taskbar_hint(). This means that GTK
	won't know that the skip_taskbar hint is on for the window, is
	this bad?
2003-01-09 03:59:34 +00:00
Tor Lillqvist ca8a6763ea Changes for run-time lookup of installation location on Win32:
2003-01-09  Tor Lillqvist  <tml@iki.fi>

	Changes for run-time lookup of installation location on Win32:

	* Makefile.am (INCLUDES): Define PREFIX as $(prefix).

	* gdk-pixbuf-io.c (get_sysconfdir): New function, look up
	installation location at runtime and deduce GTK_SYSCONFDIR
	from it.
	(get_toplevel): Similar, for the top-level installation directory.
	(correct_prefix): Replace compile-time prefix with run-time
	prefix.
	(get_libdir): Remove, not used any longer.
	(gdk_pixbuf_io_init): Call correct_prefix().
2003-01-09 03:11:06 +00:00
Manish Singh c2d9c765ab #include <stdlib.h> for putenv, <string.h> for strlen.
Wed Jan  8 18:44:21 2003  Manish Singh  <yosh@gimp.org>

        * gdk/x11/gdkdisplay-x11.c: #include <stdlib.h> for putenv,
        <string.h> for strlen.

        * gdk/x11/gdkscreen-x11.c: #include <stdlib.h> for getenv,
        <string.h> for strrchr.

        * tests/testgtk.c (create_saved_position): "x" and "y" properties
        for widgets no longer exist, use gtk_window_move instead.

        * test/testtextbuffer.c (check_get_set_text): cast strlen to
        int for g_error.
2003-01-09 02:39:18 +00:00
Pablo Gonzalo del Campo 95c4b5228d Fixed translation bug #102758.
2003-01-07  Pablo Gonzalo del Campo <pablodc@bigfoot.com>

	* es.po: Fixed translation bug #102758.
2003-01-07 17:54:01 +00:00
Christian Neumair b60c0b2967 Updated German translation, added "missing" to .cvsignore. 2003-01-06 16:13:37 +00:00
Tor Lillqvist 6ea8fe462a Actually remove the makefile.mingw from EXTRA_DIST which I thought
I did yesterday.
2003-01-05 20:06:04 +00:00
Tor Lillqvist a329c83c0a Add bin/{gdk-pixbuf-query-loaders, gtk-query-immodules-2.0,gtk-demo}.exe
2003-01-05  Tor Lillqvist  <tml@iki.fi>

	* gtk-zip.sh.in (DEVZIP): Add bin/{gdk-pixbuf-query-loaders,
	gtk-query-immodules-2.0,gtk-demo}.exe and share/gtk-2.0.
2003-01-05 18:55:29 +00:00
Tor Lillqvist 41210aa925 [Win32] Change backslahses into slashes in path.
2003-01-05  Tor Lillqvist  <tml@iki.fi>

	* queryloaders.c (query_module): [Win32] Change backslahses into
	slashes in path.
2003-01-05 03:23:03 +00:00
Tor Lillqvist c1b968cf65 Updates. Don't mention the now removed makefile.mingw files.
2003-01-05  Tor Lillqvist  <tml@iki.fi>

	* README.win32: Updates. Don't mention the now removed
	makefile.mingw files.
2003-01-05 02:31:41 +00:00
Tor Lillqvist 9efbd84d74 Mention gtk/gtk.def change. 2003-01-05 02:21:01 +00:00
Tor Lillqvist 261cd8ea9b Use correct DLL and import library names, with GTK_API_VERSION in name,
2003-01-05  Tor Lillqvist  <tml@iki.fi>

	* gtk-zip.sh.in: Use correct DLL and import library names, with
	GTK_API_VERSION in name, not GTK_MAJOR_VERSION.GTK_MINOR_VERSION.
	(DEVZIP): Add gdk-pixbuf-query-loaders.exe.

	* configure.in: Improve check for dimm.h.

	* configure.in: Set SOEXT to 'so' on Unix, 'dll' on Win32. Used in
	gdk-pixbuf/Makefile.am.

	* gdk-pixbuf/makefile.mingw.in
	* gdk-pixbuf/pixops/makefile.mingw.in
	* gdk/makefile.mingw.in
	* gdk/win32/makefile.mingw.in
	* gtk/makefile.mingw.in: Remove. Not maintained anyway.

	* gdk-pixbuf/Makefile.am
	* gdk-pixbuf/pixops/Makefile.am
	* gdk/Makefile.am
	* gdk/win32/Makefile.am
	* gtk/Makefile.am
	* configure.in: Remove makefile.mingw{,.in} from here, too.

	* README.win32: Updates. Don't mention the now removed
	makefile.mingw files.

	* gdk/gdk.def: Add a couple of missing entries.

	* gdk/gdkkeynames.c: Include <string.h> for strcmp() and memcpy().

	* gdk/win32/gdkevents-win32.c: Move dimm.h header clash workaround
	earlier.

	* gdk/win32/rc/Makefile.am: Add hack to help
	build/win32/lt-compile-resource decide which kind of libtool
	object file to produce.

2003-01-04  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am (gdk-pixbuf.loaders): Use @SOEXT@ in the find command.

	* gdk_pixbuf.def: Add gdk_pixbuf_loader_set_size.
2003-01-05 02:00:44 +00:00
Matthias Clasen 5261ce807f Make C-Down step through the sequence of paragraph ends (old behaviour
2003-01-05  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
	C-Down step through the sequence of paragraph ends (old behaviour
	included paragraph starts).  (#80340, patch by Narayana Pattipati)

	* gtk/gtktextiter.c (_gtk_text_btree_get_iter_at_first_toggle):
 	Check for a tag toggle at the start iterator before calling
 	gtk_text_iter_forward_to_tag_toggle().  (#102090, patch by Daniel
	Elstner)
2003-01-04 23:27:38 +00:00
Matthias Clasen c1bc2621fa Add /*< public >*/ and /*< private >*/ as appropriate. (#97211)
2003-01-04  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkfilesel.h (struct _GtkFileSelection): Add /*< public >*/
	and /*< private >*/ as appropriate.  (#97211)
2003-01-04 20:44:43 +00:00
Tor Lillqvist 9e291b8477 Don't distribute gtk-zip.sh, but do distribute gtk-zip.sh.in.
2003-01-04  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am (EXTRA_DIST): Don't distribute gtk-zip.sh, but do
	distribute gtk-zip.sh.in.
2003-01-04 17:32:05 +00:00
Tor Lillqvist ff619c2925 Typo. 2003-01-04 03:16:36 +00:00
Tor Lillqvist 1f99d840af Add gdk-pixbuf-source.exe and .1.
2003-01-04  Tor Lillqvist  <tml@iki.fi>

	* gtk-zip.sh.in (DEVZIP): Add gdk-pixbuf-source.exe and .1.
2003-01-04 03:15:03 +00:00
Matthias Clasen e8c775e330 Don't crash if gdk-pixbuf.loaders file is missing. (#102222)
2003-01-03  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Don't crash if
	gdk-pixbuf.loaders file is missing.  (#102222)
2003-01-02 23:14:01 +00:00
Matthias Clasen 631b0ab956 Document that it may return NULL. (#102069)
2003-01-02  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkwindow.c (gtk_window_get_focus): Document that it may
	return NULL.  (#102069)
2003-01-02 22:00:36 +00:00
Matthias Clasen f3779ad3bd #ifdef away testcases. 2002-12-31 23:20:26 +00:00
153 changed files with 28861 additions and 25965 deletions
+548
View File
@@ -1,3 +1,551 @@
Sun Feb 2 10:03:24 2003 Owen Taylor <otaylor@redhat.com>
* === Released 2.2.1 ===
* configure.in: Version 2.2.1, Binary age 201, interface age 1.
* NEWS: More updates.
2003-02-01 Tor Lillqvist <tml@iki.fi>
* gdk/gdk.def: Add gdk_screen_get_system_visual. Noticed by Ed
Woods.
Fri Jan 31 17:48:53 2003 Manish Singh <yosh@gimp.org>
* demos/pixbuf-demo.c
* demos/testpixbuf.c
* demos/gtk-demo/pixbufs.c
* tests/testtext.c: sync with HEAD (removed gtk_timeout_* usage)
Fri Jan 31 17:23:59 2003 Manish Singh <yosh@gimp.org>
* gtk/gtknotebook.c (gtk_notebook_remove_tab_label): set_state
on the tab_label before unparenting it, in case the unparent
drops the refcount to 0.
Thu Jan 30 23:44:52 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updates.
Fri Jan 31 00:28:18 2003 Kristian Rietveld <kris@gtk.org>
* NEWS: beginning of NEWS for 2.2.1.
Thu Jan 30 23:48:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_count_special_cell):
only count the special cell if it is also visible,
(_gtk_tree_view_column_get_neighbor_sizes): only take the width into
account from visible cells,
(gtk_tree_view_column_cell_get_position): likewise, (Reported and
testcase provided by Vasco Alexandre da Silva Costa, via IRC,
tracking bug was #104563).
Thu Jan 30 23:46:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
subtract expander space and focus line space from the extra space
we are about the allocate. (Fixes #104635).
Thu Jan 30 23:42:03 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkstyle.c (apply_affine_on_point): fix rouding error
(Fixes #96242, patch from Soeren Sandmann).
Thu Jan 30 16:54:29 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Patch from Soeren Sandmann
to update the states of the tab label child
widgets to match the state of the tabs.
(#93389, Reported by Tommi Komulainen)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (set_child_packing_and_visibility): New helper
function that sets the icon's and label's packing options and
visibility based on toolbar->style.
(gtk_toolbar_internal_insert_element):
(gtk_real_toolbar_style_changed): Make use of
set_child_packing_and_visibility() to clean up the code and get
the packing right for icon-only/text-only toolbars. (#104679)
(get_first_child): Remove, and use gtk_bin_get_child() instead.
Thu Jan 30 16:30:54 2003 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Remove gtk+.spec.in from
EXTRA_DIST, and from dist rules. (#102231)
Thu Jan 30 16:01:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkrgb.c (gdk_rgb_try_colormap): Remove the
attempt-to-allocate then free code. To handle multiple
people allocating colors at the same time, we need
to just go ahead and try. (#102213, Shivram U)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtkcolorsel.c (palette_paint): Explicitely draw an opaque
rectangle using the background color rather than relying on
gdk_window_clear_area(), so that the palette works properly with
pixmap themes. (#101732)
* demos/gtk-demo/colorsel.c: Install an "expose_event" handler
to fill the drawing area in the background color.
Wed Jan 29 14:11:21 2003 Hidetoshi Tajima <hidetoshi.tajima@sun.com>
* modules/input/gtkimcontextxim.c (choose_better_style): fix a memory
initialization error for selecting input style (#103549).
Wed Jan 29 17:02:41 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkkeyuni.c (get_decimal_char): Make the
translation of GDK_KP_Decimal dependent on LC_NUMERIC.
(#101225)
Wed Jan 29 15:43:56 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
Make up from the menu bar go to the end of the submenu.
(#96114, Ian Peters.)
* gtk/gtkmenuitem.c (gtk_menu_item_mnemonic_activate):
Only do the select-but-not-activate stuff if the
menu is already active. Otherwise, just activate.
(#101690, Arvind Samptur)
Tue Jan 28 15:18:24 2003 Owen Taylor <otaylor@redhat.com>
* autogen.sh (have_automake): Fix version in complaint
message about automake. (#104366, Rich Burridge)
Mon Jan 27 16:38:13 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Remove SOEXT stuff; it doesn't work portably.
Mon Jan 27 22:45:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_move): don't handle b if
we appended/prepended, send the rows_reordered signal to the
correct level ... (Reported by Matthew Tuck).
Mon Jan 27 22:43:11 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_sort_helper): don't just bail
out if the level only has one item, recurse over the child if there
is one. (Fixes #100458, reported by Gaël Le Mignot).
Mon Jan 27 22:41:26 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_set_model),
(gtk_tree_view_search_equal_func): make TreeView search handle
all types which are transformable by GValue. (Fixes #99803, reported
by Muktha Narayan).
Mon Jan 27 22:39:25 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_sort_column_id):
*really* handle unsetting the ID. Slightly modified patch from
Soeren Sandmann. Fixes #87556, reported by Jarek Dukat.
Mon Jan 27 22:33:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Fixes the total GtkTreeSortable mess, and #83195, reported by
Jarek Dukat
* gtk/gtktreestore.c (gtk_tree_store_get_sort_column_id),
(gtk_tree_store_set_sort_column_id), (gtk_tree_store_set_sort_func),
(gtk_tree_store_set_default_sort_func): use the constant
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID instead of -1, make functions
work as advertised by the documentation.
* gtk/gtklistore.c (gtk_list_store_get_sort_column_id),
(gtk_list_store_set_sort_column_id), (gtk_list_store_set_sort_func),
(gtk_list_store_set_default_sort_func): likewise.
* gtk/gtktreemodelsort.c (gtk_tree_model_set_sort_column_id),
(gtk_tree_model_set_sort_func),
(gtk_tree_model_sort_set_default_sort_func): make functions work
as advertised by the documentation.
Mon Jan 27 22:31:56 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_button_press): update focus_column
before we decide if we edit. (fixes #100973, reported by Dave Cook).
Mon Jan 27 22:29:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Bug report and test case from Paolo Maggi via IRC.
* gtk/gtkliststore.c (gtk_list_store_swap): update tail if needed,
(gtk_list_store_move): update tail if needed.
Mon Jan 27 16:19:59 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksocket.c (gtk_socket_filter_func): event->any.window
might be NULL. Use gtk_widget_get_display (widget)
(#102860, Thomas Leonard)
Mon Jan 27 15:58:31 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Fix --without-modules/--disable-modules
confusion that was causing --disable-modules not to work.
(#102865, Akira Tagoh)
* configure.in: Fix problem with plain --with-xinput
(#104266, Akira Tagoh)
2003-01-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
move bindings viewport-based when the cursor is invisible. (#78669)
2003-01-23 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
in addition to show_all in order to keep them symmetric. (#102201)
2003-01-22 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_foreign_new_for_display,
gdk_pixmap_lookup, gdk_pixmap_lookup_for_display): Implement.
(#104108, Naofumi Yasufuku)
* gdk/gdk.def: Export the above.
Wed Jan 22 14:23:23 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
the end of the function, so there is a statement following the "out"
label in all cases (fixes #101961)
2003-01-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "mn" to ALL_LINGUAS.
Wed Jan 15 17:02:18 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_validate_yrange):
Fix off-by-one error on the backward iteration loop,
that was causing the wrong range to be redrawn.
(at least part of #72734)
2003-01-21 Matthias Clasen <maclas@gmx.de>
Merge from HEAD.
* gtk/gtktextview.c (gtk_text_view_size_allocate): Adjust the
vadjustment value after changing its bounds. (fixes #101963 and
#73562)
* gtk/gtkcolorsel.c (hex_changed): Fix clamping to [0,1] to avoid
unnecessary roundtrip failures. (#93500)
2003-01-20 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Amharic (am), Macedonian (mk)
and Tamil (ta) to ALL_LINGUAS
2003-01-19 Tor Lillqvist <tml@iki.fi>
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
2003-01-15 Tor Lillqvist <tml@iki.fi>
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
Wed Jan 15 15:55:47 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c: Set the double click speed from
XSETTINGS when creating a new GtkSettings object
as well as when getting a notify. (#103601, reported
by Louis Garcia)
Wed Jan 15 14:56:09 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_allocate):
Show/hide the notebook event window as necessary,
we weren't previously keeping the visibility updated
properly. (#103599)
2002-12-29 Murray Cumming <murrayc@usa.net>
Fixes #102168. Merge from HEAD.
* gtk/gtkliststore.c, gtktreednd.c, gtktreestore.c:
Actually implement the GtkTreeDragSource::row_draggable virtual
function in GtkListStore and GtkTreeStore instead of just checking
whether it's implemented at all. This means that DnD isn't broken by
gtkmm's virtual function wrappers. The alternative would be to
hard-code the TRUE return value into gtkmm's wrappers, but that's
part of GTK+'s implementation, not it's API.
Tue Jan 14 23:54:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c: fix compiler warning.
Tue Jan 14 23:29:00 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render):
make sure exposed pixbufs are clipped to the exposed area before
drawing, which is a slight speedup. (#102379, patch from Soeren
Sandmann).
Tue Jan 14 23:26:41 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): silly typo fix,
only free scroll_to_path when the complete tree has been validated.
This makes sure that we scrolled to the correct path.
Tue Jan 14 23:25:32 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_style_set): update the
background of widget->window and bin->window. (Fixes #96650, reported
by Dave Camp).
Tue Jan 14 23:24:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_clamp_node_visible): process
updates before scrolling, avoiding a "selection streak". (Fixes
#101235, patch from Soeren Sandmann).
Tue Jan 14 23:22:13 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): actually put values
in the requisition using gtk_widget_size_request. (Fixes #100172,
reported by Kjartan Maraas).
Tue Jan 14 23:19:45 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_rows_reordered): cancel the
arrow animation timeout before we actually reorder the rbtree. If
we don't do this we can get stuck arrows,
(cancel_arrow_animation): new function. (Fixes #93629, part 2,
reported and testcase provided by Hans Petter Jansson).
Tue Jan 14 23:18:21 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeselection.c (gtk_tree_selection_real_modify_range):
anchor_path should be start_path, not end_path. (Fixes #102618,
patch from Carlos Garnacho Parro).
Tue Jan 14 23:16:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkliststore.c (gtk_list_store_move): also update the tail,
only correct new_pos if we don't move to the head/tail.
Tue Jan 14 23:11:55 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_swap): take the path from
the parent_iter if depth >= 1, so we send the reordered signal to
the correct level, remove debugging printfs which I forgot the remove
earlier (2.2.0 shipped with this, oops). (Fixes #103198, Reported and
testcase provided by Matthew Tuck).
Tue Jan 14 20:58:44 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (invalite_last_column): split out actual column
invalidation into invalite_column(),
(gtk_tree_view_size_allocate_columns): invalidate column if the
new width is larger than the old width.
(fixes #102890, reported by Alex Duggan).
2003-01-12 Tor Lillqvist <tml@iki.fi>
* gtk/gtkmain.c: Move inclusion of config.h and gtkintl.h earlier,
as gtkprivate.h redefines GTK_LOCALEDIR on Win32, for run-time
lookup.
* gdk/Makefile.am (libgdk_win32_2_0_la_DEPENDENCIES): Depend on
gdk.def.
* gdk/gdk.def
* gtk/gtk.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-09 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_skip_taskbar_hint):
Implement by setting or clearing the WS_EX_TOOLWINDOW extended
window style.
(gdk_window_set_type_hint): Add all cases to the switch (not all
do anything, though). Handle GDK_WINDOW_TYPE_HINT_TOOLBAR by
calling gdk_window_set_skip_taskbar_hint(). This means that GTK
won't know that the skip_taskbar hint is on for the window, is
this bad?
Wed Jan 8 18:44:21 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkdisplay-x11.c: #include <stdlib.h> for putenv,
<string.h> for strlen.
* gdk/x11/gdkscreen-x11.c: #include <stdlib.h> for getenv,
<string.h> for strrchr.
* tests/testgtk.c (create_saved_position): "x" and "y" properties
for widgets no longer exist, use gtk_window_move instead.
* test/testtextbuffer.c (check_get_set_text): cast strlen to
int for g_error.
2003-01-05 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct DLL and import library names, with
GTK_API_VERSION in name, not GTK_MAJOR_VERSION.GTK_MINOR_VERSION.
(DEVZIP): Add bin/{gdk-pixbuf-query-loaders,gtk-query-immodules-2.0,
gtk-demo}.exe and share/gtk-2.0.
* configure.in: Improve check for dimm.h.
* configure.in: Set SOEXT to 'so' on Unix, 'dll' on Win32. Used in
gdk-pixbuf/Makefile.am.
* gdk-pixbuf/makefile.mingw.in
* gdk-pixbuf/pixops/makefile.mingw.in
* gdk/makefile.mingw.in
* gdk/win32/makefile.mingw.in
* gtk/makefile.mingw.in: Remove. Not maintained anyway.
* gdk-pixbuf/Makefile.am
* gdk-pixbuf/pixops/Makefile.am
* gdk/Makefile.am
* gdk/win32/Makefile.am
* gtk/Makefile.am
* configure.in: Remove makefile.mingw{,.in} from here, too.
* README.win32: Updates. Don't mention the now removed
makefile.mingw files.
* gdk/gdk.def
* gtk/gtk.def: Add a couple of missing entries.
* gdk/gdkkeynames.c: Include <string.h> for strcmp() and memcpy().
* gdk/win32/gdkevents-win32.c: Move dimm.h header clash workaround
earlier.
* gdk/win32/rc/Makefile.am: Add hack to help
build/win32/lt-compile-resource decide which kind of libtool
object file to produce.
2003-01-05 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
C-Down step through the sequence of paragraph ends (old behaviour
included paragraph starts). (#80340, patch by Narayana Pattipati)
* gtk/gtktextiter.c (_gtk_text_btree_get_iter_at_first_toggle):
Check for a tag toggle at the start iterator before calling
gtk_text_iter_forward_to_tag_toggle(). (#102090, patch by Daniel
Elstner)
2003-01-04 Matthias Clasen <maclas@gmx.de>
* gtk/gtkfilesel.h (struct _GtkFileSelection): Add /*< public >*/
and /*< private >*/ as appropriate. (#97211)
2003-01-04 Tor Lillqvist <tml@iki.fi>
* Makefile.am (EXTRA_DIST): Don't distribute gtk-zip.sh, but do
distribute gtk-zip.sh.in.
* gtk-zip.sh.in (DEVZIP): Add gdk-pixbuf-csource.exe and .1.
2003-01-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtkwindow.c (gtk_window_get_focus): Document that it may
return NULL. (#102069)
2003-01-01 Matthias Clasen <maclas@gmx.de>
* gtk/fnmatch.c (FNMATCH_TEST_CASES): #undef, since having
a main() in the library is obviously bad.
2002-12-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_drag_data_received): Place the
+548
View File
@@ -1,3 +1,551 @@
Sun Feb 2 10:03:24 2003 Owen Taylor <otaylor@redhat.com>
* === Released 2.2.1 ===
* configure.in: Version 2.2.1, Binary age 201, interface age 1.
* NEWS: More updates.
2003-02-01 Tor Lillqvist <tml@iki.fi>
* gdk/gdk.def: Add gdk_screen_get_system_visual. Noticed by Ed
Woods.
Fri Jan 31 17:48:53 2003 Manish Singh <yosh@gimp.org>
* demos/pixbuf-demo.c
* demos/testpixbuf.c
* demos/gtk-demo/pixbufs.c
* tests/testtext.c: sync with HEAD (removed gtk_timeout_* usage)
Fri Jan 31 17:23:59 2003 Manish Singh <yosh@gimp.org>
* gtk/gtknotebook.c (gtk_notebook_remove_tab_label): set_state
on the tab_label before unparenting it, in case the unparent
drops the refcount to 0.
Thu Jan 30 23:44:52 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updates.
Fri Jan 31 00:28:18 2003 Kristian Rietveld <kris@gtk.org>
* NEWS: beginning of NEWS for 2.2.1.
Thu Jan 30 23:48:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_count_special_cell):
only count the special cell if it is also visible,
(_gtk_tree_view_column_get_neighbor_sizes): only take the width into
account from visible cells,
(gtk_tree_view_column_cell_get_position): likewise, (Reported and
testcase provided by Vasco Alexandre da Silva Costa, via IRC,
tracking bug was #104563).
Thu Jan 30 23:46:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
subtract expander space and focus line space from the extra space
we are about the allocate. (Fixes #104635).
Thu Jan 30 23:42:03 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkstyle.c (apply_affine_on_point): fix rouding error
(Fixes #96242, patch from Soeren Sandmann).
Thu Jan 30 16:54:29 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Patch from Soeren Sandmann
to update the states of the tab label child
widgets to match the state of the tabs.
(#93389, Reported by Tommi Komulainen)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (set_child_packing_and_visibility): New helper
function that sets the icon's and label's packing options and
visibility based on toolbar->style.
(gtk_toolbar_internal_insert_element):
(gtk_real_toolbar_style_changed): Make use of
set_child_packing_and_visibility() to clean up the code and get
the packing right for icon-only/text-only toolbars. (#104679)
(get_first_child): Remove, and use gtk_bin_get_child() instead.
Thu Jan 30 16:30:54 2003 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Remove gtk+.spec.in from
EXTRA_DIST, and from dist rules. (#102231)
Thu Jan 30 16:01:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkrgb.c (gdk_rgb_try_colormap): Remove the
attempt-to-allocate then free code. To handle multiple
people allocating colors at the same time, we need
to just go ahead and try. (#102213, Shivram U)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtkcolorsel.c (palette_paint): Explicitely draw an opaque
rectangle using the background color rather than relying on
gdk_window_clear_area(), so that the palette works properly with
pixmap themes. (#101732)
* demos/gtk-demo/colorsel.c: Install an "expose_event" handler
to fill the drawing area in the background color.
Wed Jan 29 14:11:21 2003 Hidetoshi Tajima <hidetoshi.tajima@sun.com>
* modules/input/gtkimcontextxim.c (choose_better_style): fix a memory
initialization error for selecting input style (#103549).
Wed Jan 29 17:02:41 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkkeyuni.c (get_decimal_char): Make the
translation of GDK_KP_Decimal dependent on LC_NUMERIC.
(#101225)
Wed Jan 29 15:43:56 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
Make up from the menu bar go to the end of the submenu.
(#96114, Ian Peters.)
* gtk/gtkmenuitem.c (gtk_menu_item_mnemonic_activate):
Only do the select-but-not-activate stuff if the
menu is already active. Otherwise, just activate.
(#101690, Arvind Samptur)
Tue Jan 28 15:18:24 2003 Owen Taylor <otaylor@redhat.com>
* autogen.sh (have_automake): Fix version in complaint
message about automake. (#104366, Rich Burridge)
Mon Jan 27 16:38:13 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Remove SOEXT stuff; it doesn't work portably.
Mon Jan 27 22:45:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_move): don't handle b if
we appended/prepended, send the rows_reordered signal to the
correct level ... (Reported by Matthew Tuck).
Mon Jan 27 22:43:11 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_sort_helper): don't just bail
out if the level only has one item, recurse over the child if there
is one. (Fixes #100458, reported by Gaël Le Mignot).
Mon Jan 27 22:41:26 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_set_model),
(gtk_tree_view_search_equal_func): make TreeView search handle
all types which are transformable by GValue. (Fixes #99803, reported
by Muktha Narayan).
Mon Jan 27 22:39:25 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_sort_column_id):
*really* handle unsetting the ID. Slightly modified patch from
Soeren Sandmann. Fixes #87556, reported by Jarek Dukat.
Mon Jan 27 22:33:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Fixes the total GtkTreeSortable mess, and #83195, reported by
Jarek Dukat
* gtk/gtktreestore.c (gtk_tree_store_get_sort_column_id),
(gtk_tree_store_set_sort_column_id), (gtk_tree_store_set_sort_func),
(gtk_tree_store_set_default_sort_func): use the constant
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID instead of -1, make functions
work as advertised by the documentation.
* gtk/gtklistore.c (gtk_list_store_get_sort_column_id),
(gtk_list_store_set_sort_column_id), (gtk_list_store_set_sort_func),
(gtk_list_store_set_default_sort_func): likewise.
* gtk/gtktreemodelsort.c (gtk_tree_model_set_sort_column_id),
(gtk_tree_model_set_sort_func),
(gtk_tree_model_sort_set_default_sort_func): make functions work
as advertised by the documentation.
Mon Jan 27 22:31:56 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_button_press): update focus_column
before we decide if we edit. (fixes #100973, reported by Dave Cook).
Mon Jan 27 22:29:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Bug report and test case from Paolo Maggi via IRC.
* gtk/gtkliststore.c (gtk_list_store_swap): update tail if needed,
(gtk_list_store_move): update tail if needed.
Mon Jan 27 16:19:59 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksocket.c (gtk_socket_filter_func): event->any.window
might be NULL. Use gtk_widget_get_display (widget)
(#102860, Thomas Leonard)
Mon Jan 27 15:58:31 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Fix --without-modules/--disable-modules
confusion that was causing --disable-modules not to work.
(#102865, Akira Tagoh)
* configure.in: Fix problem with plain --with-xinput
(#104266, Akira Tagoh)
2003-01-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
move bindings viewport-based when the cursor is invisible. (#78669)
2003-01-23 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
in addition to show_all in order to keep them symmetric. (#102201)
2003-01-22 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_foreign_new_for_display,
gdk_pixmap_lookup, gdk_pixmap_lookup_for_display): Implement.
(#104108, Naofumi Yasufuku)
* gdk/gdk.def: Export the above.
Wed Jan 22 14:23:23 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
the end of the function, so there is a statement following the "out"
label in all cases (fixes #101961)
2003-01-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "mn" to ALL_LINGUAS.
Wed Jan 15 17:02:18 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_validate_yrange):
Fix off-by-one error on the backward iteration loop,
that was causing the wrong range to be redrawn.
(at least part of #72734)
2003-01-21 Matthias Clasen <maclas@gmx.de>
Merge from HEAD.
* gtk/gtktextview.c (gtk_text_view_size_allocate): Adjust the
vadjustment value after changing its bounds. (fixes #101963 and
#73562)
* gtk/gtkcolorsel.c (hex_changed): Fix clamping to [0,1] to avoid
unnecessary roundtrip failures. (#93500)
2003-01-20 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Amharic (am), Macedonian (mk)
and Tamil (ta) to ALL_LINGUAS
2003-01-19 Tor Lillqvist <tml@iki.fi>
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
2003-01-15 Tor Lillqvist <tml@iki.fi>
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
Wed Jan 15 15:55:47 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c: Set the double click speed from
XSETTINGS when creating a new GtkSettings object
as well as when getting a notify. (#103601, reported
by Louis Garcia)
Wed Jan 15 14:56:09 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_allocate):
Show/hide the notebook event window as necessary,
we weren't previously keeping the visibility updated
properly. (#103599)
2002-12-29 Murray Cumming <murrayc@usa.net>
Fixes #102168. Merge from HEAD.
* gtk/gtkliststore.c, gtktreednd.c, gtktreestore.c:
Actually implement the GtkTreeDragSource::row_draggable virtual
function in GtkListStore and GtkTreeStore instead of just checking
whether it's implemented at all. This means that DnD isn't broken by
gtkmm's virtual function wrappers. The alternative would be to
hard-code the TRUE return value into gtkmm's wrappers, but that's
part of GTK+'s implementation, not it's API.
Tue Jan 14 23:54:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c: fix compiler warning.
Tue Jan 14 23:29:00 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render):
make sure exposed pixbufs are clipped to the exposed area before
drawing, which is a slight speedup. (#102379, patch from Soeren
Sandmann).
Tue Jan 14 23:26:41 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): silly typo fix,
only free scroll_to_path when the complete tree has been validated.
This makes sure that we scrolled to the correct path.
Tue Jan 14 23:25:32 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_style_set): update the
background of widget->window and bin->window. (Fixes #96650, reported
by Dave Camp).
Tue Jan 14 23:24:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_clamp_node_visible): process
updates before scrolling, avoiding a "selection streak". (Fixes
#101235, patch from Soeren Sandmann).
Tue Jan 14 23:22:13 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): actually put values
in the requisition using gtk_widget_size_request. (Fixes #100172,
reported by Kjartan Maraas).
Tue Jan 14 23:19:45 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_rows_reordered): cancel the
arrow animation timeout before we actually reorder the rbtree. If
we don't do this we can get stuck arrows,
(cancel_arrow_animation): new function. (Fixes #93629, part 2,
reported and testcase provided by Hans Petter Jansson).
Tue Jan 14 23:18:21 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeselection.c (gtk_tree_selection_real_modify_range):
anchor_path should be start_path, not end_path. (Fixes #102618,
patch from Carlos Garnacho Parro).
Tue Jan 14 23:16:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkliststore.c (gtk_list_store_move): also update the tail,
only correct new_pos if we don't move to the head/tail.
Tue Jan 14 23:11:55 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_swap): take the path from
the parent_iter if depth >= 1, so we send the reordered signal to
the correct level, remove debugging printfs which I forgot the remove
earlier (2.2.0 shipped with this, oops). (Fixes #103198, Reported and
testcase provided by Matthew Tuck).
Tue Jan 14 20:58:44 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (invalite_last_column): split out actual column
invalidation into invalite_column(),
(gtk_tree_view_size_allocate_columns): invalidate column if the
new width is larger than the old width.
(fixes #102890, reported by Alex Duggan).
2003-01-12 Tor Lillqvist <tml@iki.fi>
* gtk/gtkmain.c: Move inclusion of config.h and gtkintl.h earlier,
as gtkprivate.h redefines GTK_LOCALEDIR on Win32, for run-time
lookup.
* gdk/Makefile.am (libgdk_win32_2_0_la_DEPENDENCIES): Depend on
gdk.def.
* gdk/gdk.def
* gtk/gtk.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-09 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_skip_taskbar_hint):
Implement by setting or clearing the WS_EX_TOOLWINDOW extended
window style.
(gdk_window_set_type_hint): Add all cases to the switch (not all
do anything, though). Handle GDK_WINDOW_TYPE_HINT_TOOLBAR by
calling gdk_window_set_skip_taskbar_hint(). This means that GTK
won't know that the skip_taskbar hint is on for the window, is
this bad?
Wed Jan 8 18:44:21 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkdisplay-x11.c: #include <stdlib.h> for putenv,
<string.h> for strlen.
* gdk/x11/gdkscreen-x11.c: #include <stdlib.h> for getenv,
<string.h> for strrchr.
* tests/testgtk.c (create_saved_position): "x" and "y" properties
for widgets no longer exist, use gtk_window_move instead.
* test/testtextbuffer.c (check_get_set_text): cast strlen to
int for g_error.
2003-01-05 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct DLL and import library names, with
GTK_API_VERSION in name, not GTK_MAJOR_VERSION.GTK_MINOR_VERSION.
(DEVZIP): Add bin/{gdk-pixbuf-query-loaders,gtk-query-immodules-2.0,
gtk-demo}.exe and share/gtk-2.0.
* configure.in: Improve check for dimm.h.
* configure.in: Set SOEXT to 'so' on Unix, 'dll' on Win32. Used in
gdk-pixbuf/Makefile.am.
* gdk-pixbuf/makefile.mingw.in
* gdk-pixbuf/pixops/makefile.mingw.in
* gdk/makefile.mingw.in
* gdk/win32/makefile.mingw.in
* gtk/makefile.mingw.in: Remove. Not maintained anyway.
* gdk-pixbuf/Makefile.am
* gdk-pixbuf/pixops/Makefile.am
* gdk/Makefile.am
* gdk/win32/Makefile.am
* gtk/Makefile.am
* configure.in: Remove makefile.mingw{,.in} from here, too.
* README.win32: Updates. Don't mention the now removed
makefile.mingw files.
* gdk/gdk.def
* gtk/gtk.def: Add a couple of missing entries.
* gdk/gdkkeynames.c: Include <string.h> for strcmp() and memcpy().
* gdk/win32/gdkevents-win32.c: Move dimm.h header clash workaround
earlier.
* gdk/win32/rc/Makefile.am: Add hack to help
build/win32/lt-compile-resource decide which kind of libtool
object file to produce.
2003-01-05 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
C-Down step through the sequence of paragraph ends (old behaviour
included paragraph starts). (#80340, patch by Narayana Pattipati)
* gtk/gtktextiter.c (_gtk_text_btree_get_iter_at_first_toggle):
Check for a tag toggle at the start iterator before calling
gtk_text_iter_forward_to_tag_toggle(). (#102090, patch by Daniel
Elstner)
2003-01-04 Matthias Clasen <maclas@gmx.de>
* gtk/gtkfilesel.h (struct _GtkFileSelection): Add /*< public >*/
and /*< private >*/ as appropriate. (#97211)
2003-01-04 Tor Lillqvist <tml@iki.fi>
* Makefile.am (EXTRA_DIST): Don't distribute gtk-zip.sh, but do
distribute gtk-zip.sh.in.
* gtk-zip.sh.in (DEVZIP): Add gdk-pixbuf-csource.exe and .1.
2003-01-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtkwindow.c (gtk_window_get_focus): Document that it may
return NULL. (#102069)
2003-01-01 Matthias Clasen <maclas@gmx.de>
* gtk/fnmatch.c (FNMATCH_TEST_CASES): #undef, since having
a main() in the library is obviously bad.
2002-12-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_drag_data_received): Place the
+548
View File
@@ -1,3 +1,551 @@
Sun Feb 2 10:03:24 2003 Owen Taylor <otaylor@redhat.com>
* === Released 2.2.1 ===
* configure.in: Version 2.2.1, Binary age 201, interface age 1.
* NEWS: More updates.
2003-02-01 Tor Lillqvist <tml@iki.fi>
* gdk/gdk.def: Add gdk_screen_get_system_visual. Noticed by Ed
Woods.
Fri Jan 31 17:48:53 2003 Manish Singh <yosh@gimp.org>
* demos/pixbuf-demo.c
* demos/testpixbuf.c
* demos/gtk-demo/pixbufs.c
* tests/testtext.c: sync with HEAD (removed gtk_timeout_* usage)
Fri Jan 31 17:23:59 2003 Manish Singh <yosh@gimp.org>
* gtk/gtknotebook.c (gtk_notebook_remove_tab_label): set_state
on the tab_label before unparenting it, in case the unparent
drops the refcount to 0.
Thu Jan 30 23:44:52 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updates.
Fri Jan 31 00:28:18 2003 Kristian Rietveld <kris@gtk.org>
* NEWS: beginning of NEWS for 2.2.1.
Thu Jan 30 23:48:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_count_special_cell):
only count the special cell if it is also visible,
(_gtk_tree_view_column_get_neighbor_sizes): only take the width into
account from visible cells,
(gtk_tree_view_column_cell_get_position): likewise, (Reported and
testcase provided by Vasco Alexandre da Silva Costa, via IRC,
tracking bug was #104563).
Thu Jan 30 23:46:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
subtract expander space and focus line space from the extra space
we are about the allocate. (Fixes #104635).
Thu Jan 30 23:42:03 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkstyle.c (apply_affine_on_point): fix rouding error
(Fixes #96242, patch from Soeren Sandmann).
Thu Jan 30 16:54:29 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Patch from Soeren Sandmann
to update the states of the tab label child
widgets to match the state of the tabs.
(#93389, Reported by Tommi Komulainen)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (set_child_packing_and_visibility): New helper
function that sets the icon's and label's packing options and
visibility based on toolbar->style.
(gtk_toolbar_internal_insert_element):
(gtk_real_toolbar_style_changed): Make use of
set_child_packing_and_visibility() to clean up the code and get
the packing right for icon-only/text-only toolbars. (#104679)
(get_first_child): Remove, and use gtk_bin_get_child() instead.
Thu Jan 30 16:30:54 2003 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Remove gtk+.spec.in from
EXTRA_DIST, and from dist rules. (#102231)
Thu Jan 30 16:01:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkrgb.c (gdk_rgb_try_colormap): Remove the
attempt-to-allocate then free code. To handle multiple
people allocating colors at the same time, we need
to just go ahead and try. (#102213, Shivram U)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtkcolorsel.c (palette_paint): Explicitely draw an opaque
rectangle using the background color rather than relying on
gdk_window_clear_area(), so that the palette works properly with
pixmap themes. (#101732)
* demos/gtk-demo/colorsel.c: Install an "expose_event" handler
to fill the drawing area in the background color.
Wed Jan 29 14:11:21 2003 Hidetoshi Tajima <hidetoshi.tajima@sun.com>
* modules/input/gtkimcontextxim.c (choose_better_style): fix a memory
initialization error for selecting input style (#103549).
Wed Jan 29 17:02:41 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkkeyuni.c (get_decimal_char): Make the
translation of GDK_KP_Decimal dependent on LC_NUMERIC.
(#101225)
Wed Jan 29 15:43:56 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
Make up from the menu bar go to the end of the submenu.
(#96114, Ian Peters.)
* gtk/gtkmenuitem.c (gtk_menu_item_mnemonic_activate):
Only do the select-but-not-activate stuff if the
menu is already active. Otherwise, just activate.
(#101690, Arvind Samptur)
Tue Jan 28 15:18:24 2003 Owen Taylor <otaylor@redhat.com>
* autogen.sh (have_automake): Fix version in complaint
message about automake. (#104366, Rich Burridge)
Mon Jan 27 16:38:13 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Remove SOEXT stuff; it doesn't work portably.
Mon Jan 27 22:45:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_move): don't handle b if
we appended/prepended, send the rows_reordered signal to the
correct level ... (Reported by Matthew Tuck).
Mon Jan 27 22:43:11 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_sort_helper): don't just bail
out if the level only has one item, recurse over the child if there
is one. (Fixes #100458, reported by Gaël Le Mignot).
Mon Jan 27 22:41:26 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_set_model),
(gtk_tree_view_search_equal_func): make TreeView search handle
all types which are transformable by GValue. (Fixes #99803, reported
by Muktha Narayan).
Mon Jan 27 22:39:25 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_sort_column_id):
*really* handle unsetting the ID. Slightly modified patch from
Soeren Sandmann. Fixes #87556, reported by Jarek Dukat.
Mon Jan 27 22:33:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Fixes the total GtkTreeSortable mess, and #83195, reported by
Jarek Dukat
* gtk/gtktreestore.c (gtk_tree_store_get_sort_column_id),
(gtk_tree_store_set_sort_column_id), (gtk_tree_store_set_sort_func),
(gtk_tree_store_set_default_sort_func): use the constant
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID instead of -1, make functions
work as advertised by the documentation.
* gtk/gtklistore.c (gtk_list_store_get_sort_column_id),
(gtk_list_store_set_sort_column_id), (gtk_list_store_set_sort_func),
(gtk_list_store_set_default_sort_func): likewise.
* gtk/gtktreemodelsort.c (gtk_tree_model_set_sort_column_id),
(gtk_tree_model_set_sort_func),
(gtk_tree_model_sort_set_default_sort_func): make functions work
as advertised by the documentation.
Mon Jan 27 22:31:56 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_button_press): update focus_column
before we decide if we edit. (fixes #100973, reported by Dave Cook).
Mon Jan 27 22:29:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Bug report and test case from Paolo Maggi via IRC.
* gtk/gtkliststore.c (gtk_list_store_swap): update tail if needed,
(gtk_list_store_move): update tail if needed.
Mon Jan 27 16:19:59 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksocket.c (gtk_socket_filter_func): event->any.window
might be NULL. Use gtk_widget_get_display (widget)
(#102860, Thomas Leonard)
Mon Jan 27 15:58:31 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Fix --without-modules/--disable-modules
confusion that was causing --disable-modules not to work.
(#102865, Akira Tagoh)
* configure.in: Fix problem with plain --with-xinput
(#104266, Akira Tagoh)
2003-01-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
move bindings viewport-based when the cursor is invisible. (#78669)
2003-01-23 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
in addition to show_all in order to keep them symmetric. (#102201)
2003-01-22 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_foreign_new_for_display,
gdk_pixmap_lookup, gdk_pixmap_lookup_for_display): Implement.
(#104108, Naofumi Yasufuku)
* gdk/gdk.def: Export the above.
Wed Jan 22 14:23:23 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
the end of the function, so there is a statement following the "out"
label in all cases (fixes #101961)
2003-01-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "mn" to ALL_LINGUAS.
Wed Jan 15 17:02:18 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_validate_yrange):
Fix off-by-one error on the backward iteration loop,
that was causing the wrong range to be redrawn.
(at least part of #72734)
2003-01-21 Matthias Clasen <maclas@gmx.de>
Merge from HEAD.
* gtk/gtktextview.c (gtk_text_view_size_allocate): Adjust the
vadjustment value after changing its bounds. (fixes #101963 and
#73562)
* gtk/gtkcolorsel.c (hex_changed): Fix clamping to [0,1] to avoid
unnecessary roundtrip failures. (#93500)
2003-01-20 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Amharic (am), Macedonian (mk)
and Tamil (ta) to ALL_LINGUAS
2003-01-19 Tor Lillqvist <tml@iki.fi>
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
2003-01-15 Tor Lillqvist <tml@iki.fi>
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
Wed Jan 15 15:55:47 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c: Set the double click speed from
XSETTINGS when creating a new GtkSettings object
as well as when getting a notify. (#103601, reported
by Louis Garcia)
Wed Jan 15 14:56:09 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_allocate):
Show/hide the notebook event window as necessary,
we weren't previously keeping the visibility updated
properly. (#103599)
2002-12-29 Murray Cumming <murrayc@usa.net>
Fixes #102168. Merge from HEAD.
* gtk/gtkliststore.c, gtktreednd.c, gtktreestore.c:
Actually implement the GtkTreeDragSource::row_draggable virtual
function in GtkListStore and GtkTreeStore instead of just checking
whether it's implemented at all. This means that DnD isn't broken by
gtkmm's virtual function wrappers. The alternative would be to
hard-code the TRUE return value into gtkmm's wrappers, but that's
part of GTK+'s implementation, not it's API.
Tue Jan 14 23:54:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c: fix compiler warning.
Tue Jan 14 23:29:00 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render):
make sure exposed pixbufs are clipped to the exposed area before
drawing, which is a slight speedup. (#102379, patch from Soeren
Sandmann).
Tue Jan 14 23:26:41 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): silly typo fix,
only free scroll_to_path when the complete tree has been validated.
This makes sure that we scrolled to the correct path.
Tue Jan 14 23:25:32 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_style_set): update the
background of widget->window and bin->window. (Fixes #96650, reported
by Dave Camp).
Tue Jan 14 23:24:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_clamp_node_visible): process
updates before scrolling, avoiding a "selection streak". (Fixes
#101235, patch from Soeren Sandmann).
Tue Jan 14 23:22:13 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): actually put values
in the requisition using gtk_widget_size_request. (Fixes #100172,
reported by Kjartan Maraas).
Tue Jan 14 23:19:45 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_rows_reordered): cancel the
arrow animation timeout before we actually reorder the rbtree. If
we don't do this we can get stuck arrows,
(cancel_arrow_animation): new function. (Fixes #93629, part 2,
reported and testcase provided by Hans Petter Jansson).
Tue Jan 14 23:18:21 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeselection.c (gtk_tree_selection_real_modify_range):
anchor_path should be start_path, not end_path. (Fixes #102618,
patch from Carlos Garnacho Parro).
Tue Jan 14 23:16:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkliststore.c (gtk_list_store_move): also update the tail,
only correct new_pos if we don't move to the head/tail.
Tue Jan 14 23:11:55 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_swap): take the path from
the parent_iter if depth >= 1, so we send the reordered signal to
the correct level, remove debugging printfs which I forgot the remove
earlier (2.2.0 shipped with this, oops). (Fixes #103198, Reported and
testcase provided by Matthew Tuck).
Tue Jan 14 20:58:44 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (invalite_last_column): split out actual column
invalidation into invalite_column(),
(gtk_tree_view_size_allocate_columns): invalidate column if the
new width is larger than the old width.
(fixes #102890, reported by Alex Duggan).
2003-01-12 Tor Lillqvist <tml@iki.fi>
* gtk/gtkmain.c: Move inclusion of config.h and gtkintl.h earlier,
as gtkprivate.h redefines GTK_LOCALEDIR on Win32, for run-time
lookup.
* gdk/Makefile.am (libgdk_win32_2_0_la_DEPENDENCIES): Depend on
gdk.def.
* gdk/gdk.def
* gtk/gtk.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-09 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_skip_taskbar_hint):
Implement by setting or clearing the WS_EX_TOOLWINDOW extended
window style.
(gdk_window_set_type_hint): Add all cases to the switch (not all
do anything, though). Handle GDK_WINDOW_TYPE_HINT_TOOLBAR by
calling gdk_window_set_skip_taskbar_hint(). This means that GTK
won't know that the skip_taskbar hint is on for the window, is
this bad?
Wed Jan 8 18:44:21 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkdisplay-x11.c: #include <stdlib.h> for putenv,
<string.h> for strlen.
* gdk/x11/gdkscreen-x11.c: #include <stdlib.h> for getenv,
<string.h> for strrchr.
* tests/testgtk.c (create_saved_position): "x" and "y" properties
for widgets no longer exist, use gtk_window_move instead.
* test/testtextbuffer.c (check_get_set_text): cast strlen to
int for g_error.
2003-01-05 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct DLL and import library names, with
GTK_API_VERSION in name, not GTK_MAJOR_VERSION.GTK_MINOR_VERSION.
(DEVZIP): Add bin/{gdk-pixbuf-query-loaders,gtk-query-immodules-2.0,
gtk-demo}.exe and share/gtk-2.0.
* configure.in: Improve check for dimm.h.
* configure.in: Set SOEXT to 'so' on Unix, 'dll' on Win32. Used in
gdk-pixbuf/Makefile.am.
* gdk-pixbuf/makefile.mingw.in
* gdk-pixbuf/pixops/makefile.mingw.in
* gdk/makefile.mingw.in
* gdk/win32/makefile.mingw.in
* gtk/makefile.mingw.in: Remove. Not maintained anyway.
* gdk-pixbuf/Makefile.am
* gdk-pixbuf/pixops/Makefile.am
* gdk/Makefile.am
* gdk/win32/Makefile.am
* gtk/Makefile.am
* configure.in: Remove makefile.mingw{,.in} from here, too.
* README.win32: Updates. Don't mention the now removed
makefile.mingw files.
* gdk/gdk.def
* gtk/gtk.def: Add a couple of missing entries.
* gdk/gdkkeynames.c: Include <string.h> for strcmp() and memcpy().
* gdk/win32/gdkevents-win32.c: Move dimm.h header clash workaround
earlier.
* gdk/win32/rc/Makefile.am: Add hack to help
build/win32/lt-compile-resource decide which kind of libtool
object file to produce.
2003-01-05 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
C-Down step through the sequence of paragraph ends (old behaviour
included paragraph starts). (#80340, patch by Narayana Pattipati)
* gtk/gtktextiter.c (_gtk_text_btree_get_iter_at_first_toggle):
Check for a tag toggle at the start iterator before calling
gtk_text_iter_forward_to_tag_toggle(). (#102090, patch by Daniel
Elstner)
2003-01-04 Matthias Clasen <maclas@gmx.de>
* gtk/gtkfilesel.h (struct _GtkFileSelection): Add /*< public >*/
and /*< private >*/ as appropriate. (#97211)
2003-01-04 Tor Lillqvist <tml@iki.fi>
* Makefile.am (EXTRA_DIST): Don't distribute gtk-zip.sh, but do
distribute gtk-zip.sh.in.
* gtk-zip.sh.in (DEVZIP): Add gdk-pixbuf-csource.exe and .1.
2003-01-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtkwindow.c (gtk_window_get_focus): Document that it may
return NULL. (#102069)
2003-01-01 Matthias Clasen <maclas@gmx.de>
* gtk/fnmatch.c (FNMATCH_TEST_CASES): #undef, since having
a main() in the library is obviously bad.
2002-12-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_drag_data_received): Place the
+548
View File
@@ -1,3 +1,551 @@
Sun Feb 2 10:03:24 2003 Owen Taylor <otaylor@redhat.com>
* === Released 2.2.1 ===
* configure.in: Version 2.2.1, Binary age 201, interface age 1.
* NEWS: More updates.
2003-02-01 Tor Lillqvist <tml@iki.fi>
* gdk/gdk.def: Add gdk_screen_get_system_visual. Noticed by Ed
Woods.
Fri Jan 31 17:48:53 2003 Manish Singh <yosh@gimp.org>
* demos/pixbuf-demo.c
* demos/testpixbuf.c
* demos/gtk-demo/pixbufs.c
* tests/testtext.c: sync with HEAD (removed gtk_timeout_* usage)
Fri Jan 31 17:23:59 2003 Manish Singh <yosh@gimp.org>
* gtk/gtknotebook.c (gtk_notebook_remove_tab_label): set_state
on the tab_label before unparenting it, in case the unparent
drops the refcount to 0.
Thu Jan 30 23:44:52 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updates.
Fri Jan 31 00:28:18 2003 Kristian Rietveld <kris@gtk.org>
* NEWS: beginning of NEWS for 2.2.1.
Thu Jan 30 23:48:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_count_special_cell):
only count the special cell if it is also visible,
(_gtk_tree_view_column_get_neighbor_sizes): only take the width into
account from visible cells,
(gtk_tree_view_column_cell_get_position): likewise, (Reported and
testcase provided by Vasco Alexandre da Silva Costa, via IRC,
tracking bug was #104563).
Thu Jan 30 23:46:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
subtract expander space and focus line space from the extra space
we are about the allocate. (Fixes #104635).
Thu Jan 30 23:42:03 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkstyle.c (apply_affine_on_point): fix rouding error
(Fixes #96242, patch from Soeren Sandmann).
Thu Jan 30 16:54:29 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Patch from Soeren Sandmann
to update the states of the tab label child
widgets to match the state of the tabs.
(#93389, Reported by Tommi Komulainen)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (set_child_packing_and_visibility): New helper
function that sets the icon's and label's packing options and
visibility based on toolbar->style.
(gtk_toolbar_internal_insert_element):
(gtk_real_toolbar_style_changed): Make use of
set_child_packing_and_visibility() to clean up the code and get
the packing right for icon-only/text-only toolbars. (#104679)
(get_first_child): Remove, and use gtk_bin_get_child() instead.
Thu Jan 30 16:30:54 2003 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Remove gtk+.spec.in from
EXTRA_DIST, and from dist rules. (#102231)
Thu Jan 30 16:01:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkrgb.c (gdk_rgb_try_colormap): Remove the
attempt-to-allocate then free code. To handle multiple
people allocating colors at the same time, we need
to just go ahead and try. (#102213, Shivram U)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtkcolorsel.c (palette_paint): Explicitely draw an opaque
rectangle using the background color rather than relying on
gdk_window_clear_area(), so that the palette works properly with
pixmap themes. (#101732)
* demos/gtk-demo/colorsel.c: Install an "expose_event" handler
to fill the drawing area in the background color.
Wed Jan 29 14:11:21 2003 Hidetoshi Tajima <hidetoshi.tajima@sun.com>
* modules/input/gtkimcontextxim.c (choose_better_style): fix a memory
initialization error for selecting input style (#103549).
Wed Jan 29 17:02:41 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkkeyuni.c (get_decimal_char): Make the
translation of GDK_KP_Decimal dependent on LC_NUMERIC.
(#101225)
Wed Jan 29 15:43:56 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
Make up from the menu bar go to the end of the submenu.
(#96114, Ian Peters.)
* gtk/gtkmenuitem.c (gtk_menu_item_mnemonic_activate):
Only do the select-but-not-activate stuff if the
menu is already active. Otherwise, just activate.
(#101690, Arvind Samptur)
Tue Jan 28 15:18:24 2003 Owen Taylor <otaylor@redhat.com>
* autogen.sh (have_automake): Fix version in complaint
message about automake. (#104366, Rich Burridge)
Mon Jan 27 16:38:13 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Remove SOEXT stuff; it doesn't work portably.
Mon Jan 27 22:45:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_move): don't handle b if
we appended/prepended, send the rows_reordered signal to the
correct level ... (Reported by Matthew Tuck).
Mon Jan 27 22:43:11 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_sort_helper): don't just bail
out if the level only has one item, recurse over the child if there
is one. (Fixes #100458, reported by Gaël Le Mignot).
Mon Jan 27 22:41:26 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_set_model),
(gtk_tree_view_search_equal_func): make TreeView search handle
all types which are transformable by GValue. (Fixes #99803, reported
by Muktha Narayan).
Mon Jan 27 22:39:25 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_sort_column_id):
*really* handle unsetting the ID. Slightly modified patch from
Soeren Sandmann. Fixes #87556, reported by Jarek Dukat.
Mon Jan 27 22:33:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Fixes the total GtkTreeSortable mess, and #83195, reported by
Jarek Dukat
* gtk/gtktreestore.c (gtk_tree_store_get_sort_column_id),
(gtk_tree_store_set_sort_column_id), (gtk_tree_store_set_sort_func),
(gtk_tree_store_set_default_sort_func): use the constant
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID instead of -1, make functions
work as advertised by the documentation.
* gtk/gtklistore.c (gtk_list_store_get_sort_column_id),
(gtk_list_store_set_sort_column_id), (gtk_list_store_set_sort_func),
(gtk_list_store_set_default_sort_func): likewise.
* gtk/gtktreemodelsort.c (gtk_tree_model_set_sort_column_id),
(gtk_tree_model_set_sort_func),
(gtk_tree_model_sort_set_default_sort_func): make functions work
as advertised by the documentation.
Mon Jan 27 22:31:56 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_button_press): update focus_column
before we decide if we edit. (fixes #100973, reported by Dave Cook).
Mon Jan 27 22:29:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Bug report and test case from Paolo Maggi via IRC.
* gtk/gtkliststore.c (gtk_list_store_swap): update tail if needed,
(gtk_list_store_move): update tail if needed.
Mon Jan 27 16:19:59 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksocket.c (gtk_socket_filter_func): event->any.window
might be NULL. Use gtk_widget_get_display (widget)
(#102860, Thomas Leonard)
Mon Jan 27 15:58:31 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Fix --without-modules/--disable-modules
confusion that was causing --disable-modules not to work.
(#102865, Akira Tagoh)
* configure.in: Fix problem with plain --with-xinput
(#104266, Akira Tagoh)
2003-01-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
move bindings viewport-based when the cursor is invisible. (#78669)
2003-01-23 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
in addition to show_all in order to keep them symmetric. (#102201)
2003-01-22 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_foreign_new_for_display,
gdk_pixmap_lookup, gdk_pixmap_lookup_for_display): Implement.
(#104108, Naofumi Yasufuku)
* gdk/gdk.def: Export the above.
Wed Jan 22 14:23:23 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
the end of the function, so there is a statement following the "out"
label in all cases (fixes #101961)
2003-01-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "mn" to ALL_LINGUAS.
Wed Jan 15 17:02:18 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_validate_yrange):
Fix off-by-one error on the backward iteration loop,
that was causing the wrong range to be redrawn.
(at least part of #72734)
2003-01-21 Matthias Clasen <maclas@gmx.de>
Merge from HEAD.
* gtk/gtktextview.c (gtk_text_view_size_allocate): Adjust the
vadjustment value after changing its bounds. (fixes #101963 and
#73562)
* gtk/gtkcolorsel.c (hex_changed): Fix clamping to [0,1] to avoid
unnecessary roundtrip failures. (#93500)
2003-01-20 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Amharic (am), Macedonian (mk)
and Tamil (ta) to ALL_LINGUAS
2003-01-19 Tor Lillqvist <tml@iki.fi>
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
2003-01-15 Tor Lillqvist <tml@iki.fi>
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
Wed Jan 15 15:55:47 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c: Set the double click speed from
XSETTINGS when creating a new GtkSettings object
as well as when getting a notify. (#103601, reported
by Louis Garcia)
Wed Jan 15 14:56:09 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_allocate):
Show/hide the notebook event window as necessary,
we weren't previously keeping the visibility updated
properly. (#103599)
2002-12-29 Murray Cumming <murrayc@usa.net>
Fixes #102168. Merge from HEAD.
* gtk/gtkliststore.c, gtktreednd.c, gtktreestore.c:
Actually implement the GtkTreeDragSource::row_draggable virtual
function in GtkListStore and GtkTreeStore instead of just checking
whether it's implemented at all. This means that DnD isn't broken by
gtkmm's virtual function wrappers. The alternative would be to
hard-code the TRUE return value into gtkmm's wrappers, but that's
part of GTK+'s implementation, not it's API.
Tue Jan 14 23:54:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c: fix compiler warning.
Tue Jan 14 23:29:00 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render):
make sure exposed pixbufs are clipped to the exposed area before
drawing, which is a slight speedup. (#102379, patch from Soeren
Sandmann).
Tue Jan 14 23:26:41 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): silly typo fix,
only free scroll_to_path when the complete tree has been validated.
This makes sure that we scrolled to the correct path.
Tue Jan 14 23:25:32 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_style_set): update the
background of widget->window and bin->window. (Fixes #96650, reported
by Dave Camp).
Tue Jan 14 23:24:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_clamp_node_visible): process
updates before scrolling, avoiding a "selection streak". (Fixes
#101235, patch from Soeren Sandmann).
Tue Jan 14 23:22:13 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): actually put values
in the requisition using gtk_widget_size_request. (Fixes #100172,
reported by Kjartan Maraas).
Tue Jan 14 23:19:45 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_rows_reordered): cancel the
arrow animation timeout before we actually reorder the rbtree. If
we don't do this we can get stuck arrows,
(cancel_arrow_animation): new function. (Fixes #93629, part 2,
reported and testcase provided by Hans Petter Jansson).
Tue Jan 14 23:18:21 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeselection.c (gtk_tree_selection_real_modify_range):
anchor_path should be start_path, not end_path. (Fixes #102618,
patch from Carlos Garnacho Parro).
Tue Jan 14 23:16:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkliststore.c (gtk_list_store_move): also update the tail,
only correct new_pos if we don't move to the head/tail.
Tue Jan 14 23:11:55 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_swap): take the path from
the parent_iter if depth >= 1, so we send the reordered signal to
the correct level, remove debugging printfs which I forgot the remove
earlier (2.2.0 shipped with this, oops). (Fixes #103198, Reported and
testcase provided by Matthew Tuck).
Tue Jan 14 20:58:44 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (invalite_last_column): split out actual column
invalidation into invalite_column(),
(gtk_tree_view_size_allocate_columns): invalidate column if the
new width is larger than the old width.
(fixes #102890, reported by Alex Duggan).
2003-01-12 Tor Lillqvist <tml@iki.fi>
* gtk/gtkmain.c: Move inclusion of config.h and gtkintl.h earlier,
as gtkprivate.h redefines GTK_LOCALEDIR on Win32, for run-time
lookup.
* gdk/Makefile.am (libgdk_win32_2_0_la_DEPENDENCIES): Depend on
gdk.def.
* gdk/gdk.def
* gtk/gtk.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-09 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_skip_taskbar_hint):
Implement by setting or clearing the WS_EX_TOOLWINDOW extended
window style.
(gdk_window_set_type_hint): Add all cases to the switch (not all
do anything, though). Handle GDK_WINDOW_TYPE_HINT_TOOLBAR by
calling gdk_window_set_skip_taskbar_hint(). This means that GTK
won't know that the skip_taskbar hint is on for the window, is
this bad?
Wed Jan 8 18:44:21 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkdisplay-x11.c: #include <stdlib.h> for putenv,
<string.h> for strlen.
* gdk/x11/gdkscreen-x11.c: #include <stdlib.h> for getenv,
<string.h> for strrchr.
* tests/testgtk.c (create_saved_position): "x" and "y" properties
for widgets no longer exist, use gtk_window_move instead.
* test/testtextbuffer.c (check_get_set_text): cast strlen to
int for g_error.
2003-01-05 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct DLL and import library names, with
GTK_API_VERSION in name, not GTK_MAJOR_VERSION.GTK_MINOR_VERSION.
(DEVZIP): Add bin/{gdk-pixbuf-query-loaders,gtk-query-immodules-2.0,
gtk-demo}.exe and share/gtk-2.0.
* configure.in: Improve check for dimm.h.
* configure.in: Set SOEXT to 'so' on Unix, 'dll' on Win32. Used in
gdk-pixbuf/Makefile.am.
* gdk-pixbuf/makefile.mingw.in
* gdk-pixbuf/pixops/makefile.mingw.in
* gdk/makefile.mingw.in
* gdk/win32/makefile.mingw.in
* gtk/makefile.mingw.in: Remove. Not maintained anyway.
* gdk-pixbuf/Makefile.am
* gdk-pixbuf/pixops/Makefile.am
* gdk/Makefile.am
* gdk/win32/Makefile.am
* gtk/Makefile.am
* configure.in: Remove makefile.mingw{,.in} from here, too.
* README.win32: Updates. Don't mention the now removed
makefile.mingw files.
* gdk/gdk.def
* gtk/gtk.def: Add a couple of missing entries.
* gdk/gdkkeynames.c: Include <string.h> for strcmp() and memcpy().
* gdk/win32/gdkevents-win32.c: Move dimm.h header clash workaround
earlier.
* gdk/win32/rc/Makefile.am: Add hack to help
build/win32/lt-compile-resource decide which kind of libtool
object file to produce.
2003-01-05 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
C-Down step through the sequence of paragraph ends (old behaviour
included paragraph starts). (#80340, patch by Narayana Pattipati)
* gtk/gtktextiter.c (_gtk_text_btree_get_iter_at_first_toggle):
Check for a tag toggle at the start iterator before calling
gtk_text_iter_forward_to_tag_toggle(). (#102090, patch by Daniel
Elstner)
2003-01-04 Matthias Clasen <maclas@gmx.de>
* gtk/gtkfilesel.h (struct _GtkFileSelection): Add /*< public >*/
and /*< private >*/ as appropriate. (#97211)
2003-01-04 Tor Lillqvist <tml@iki.fi>
* Makefile.am (EXTRA_DIST): Don't distribute gtk-zip.sh, but do
distribute gtk-zip.sh.in.
* gtk-zip.sh.in (DEVZIP): Add gdk-pixbuf-csource.exe and .1.
2003-01-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtkwindow.c (gtk_window_get_focus): Document that it may
return NULL. (#102069)
2003-01-01 Matthias Clasen <maclas@gmx.de>
* gtk/fnmatch.c (FNMATCH_TEST_CASES): #undef, since having
a main() in the library is obviously bad.
2002-12-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_drag_data_received): Place the
+548
View File
@@ -1,3 +1,551 @@
Sun Feb 2 10:03:24 2003 Owen Taylor <otaylor@redhat.com>
* === Released 2.2.1 ===
* configure.in: Version 2.2.1, Binary age 201, interface age 1.
* NEWS: More updates.
2003-02-01 Tor Lillqvist <tml@iki.fi>
* gdk/gdk.def: Add gdk_screen_get_system_visual. Noticed by Ed
Woods.
Fri Jan 31 17:48:53 2003 Manish Singh <yosh@gimp.org>
* demos/pixbuf-demo.c
* demos/testpixbuf.c
* demos/gtk-demo/pixbufs.c
* tests/testtext.c: sync with HEAD (removed gtk_timeout_* usage)
Fri Jan 31 17:23:59 2003 Manish Singh <yosh@gimp.org>
* gtk/gtknotebook.c (gtk_notebook_remove_tab_label): set_state
on the tab_label before unparenting it, in case the unparent
drops the refcount to 0.
Thu Jan 30 23:44:52 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updates.
Fri Jan 31 00:28:18 2003 Kristian Rietveld <kris@gtk.org>
* NEWS: beginning of NEWS for 2.2.1.
Thu Jan 30 23:48:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_count_special_cell):
only count the special cell if it is also visible,
(_gtk_tree_view_column_get_neighbor_sizes): only take the width into
account from visible cells,
(gtk_tree_view_column_cell_get_position): likewise, (Reported and
testcase provided by Vasco Alexandre da Silva Costa, via IRC,
tracking bug was #104563).
Thu Jan 30 23:46:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
subtract expander space and focus line space from the extra space
we are about the allocate. (Fixes #104635).
Thu Jan 30 23:42:03 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkstyle.c (apply_affine_on_point): fix rouding error
(Fixes #96242, patch from Soeren Sandmann).
Thu Jan 30 16:54:29 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Patch from Soeren Sandmann
to update the states of the tab label child
widgets to match the state of the tabs.
(#93389, Reported by Tommi Komulainen)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (set_child_packing_and_visibility): New helper
function that sets the icon's and label's packing options and
visibility based on toolbar->style.
(gtk_toolbar_internal_insert_element):
(gtk_real_toolbar_style_changed): Make use of
set_child_packing_and_visibility() to clean up the code and get
the packing right for icon-only/text-only toolbars. (#104679)
(get_first_child): Remove, and use gtk_bin_get_child() instead.
Thu Jan 30 16:30:54 2003 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Remove gtk+.spec.in from
EXTRA_DIST, and from dist rules. (#102231)
Thu Jan 30 16:01:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkrgb.c (gdk_rgb_try_colormap): Remove the
attempt-to-allocate then free code. To handle multiple
people allocating colors at the same time, we need
to just go ahead and try. (#102213, Shivram U)
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtkcolorsel.c (palette_paint): Explicitely draw an opaque
rectangle using the background color rather than relying on
gdk_window_clear_area(), so that the palette works properly with
pixmap themes. (#101732)
* demos/gtk-demo/colorsel.c: Install an "expose_event" handler
to fill the drawing area in the background color.
Wed Jan 29 14:11:21 2003 Hidetoshi Tajima <hidetoshi.tajima@sun.com>
* modules/input/gtkimcontextxim.c (choose_better_style): fix a memory
initialization error for selecting input style (#103549).
Wed Jan 29 17:02:41 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkkeyuni.c (get_decimal_char): Make the
translation of GDK_KP_Decimal dependent on LC_NUMERIC.
(#101225)
Wed Jan 29 15:43:56 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
Make up from the menu bar go to the end of the submenu.
(#96114, Ian Peters.)
* gtk/gtkmenuitem.c (gtk_menu_item_mnemonic_activate):
Only do the select-but-not-activate stuff if the
menu is already active. Otherwise, just activate.
(#101690, Arvind Samptur)
Tue Jan 28 15:18:24 2003 Owen Taylor <otaylor@redhat.com>
* autogen.sh (have_automake): Fix version in complaint
message about automake. (#104366, Rich Burridge)
Mon Jan 27 16:38:13 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Remove SOEXT stuff; it doesn't work portably.
Mon Jan 27 22:45:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_move): don't handle b if
we appended/prepended, send the rows_reordered signal to the
correct level ... (Reported by Matthew Tuck).
Mon Jan 27 22:43:11 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_sort_helper): don't just bail
out if the level only has one item, recurse over the child if there
is one. (Fixes #100458, reported by Gaël Le Mignot).
Mon Jan 27 22:41:26 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_set_model),
(gtk_tree_view_search_equal_func): make TreeView search handle
all types which are transformable by GValue. (Fixes #99803, reported
by Muktha Narayan).
Mon Jan 27 22:39:25 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_sort_column_id):
*really* handle unsetting the ID. Slightly modified patch from
Soeren Sandmann. Fixes #87556, reported by Jarek Dukat.
Mon Jan 27 22:33:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Fixes the total GtkTreeSortable mess, and #83195, reported by
Jarek Dukat
* gtk/gtktreestore.c (gtk_tree_store_get_sort_column_id),
(gtk_tree_store_set_sort_column_id), (gtk_tree_store_set_sort_func),
(gtk_tree_store_set_default_sort_func): use the constant
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID instead of -1, make functions
work as advertised by the documentation.
* gtk/gtklistore.c (gtk_list_store_get_sort_column_id),
(gtk_list_store_set_sort_column_id), (gtk_list_store_set_sort_func),
(gtk_list_store_set_default_sort_func): likewise.
* gtk/gtktreemodelsort.c (gtk_tree_model_set_sort_column_id),
(gtk_tree_model_set_sort_func),
(gtk_tree_model_sort_set_default_sort_func): make functions work
as advertised by the documentation.
Mon Jan 27 22:31:56 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_button_press): update focus_column
before we decide if we edit. (fixes #100973, reported by Dave Cook).
Mon Jan 27 22:29:30 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
Bug report and test case from Paolo Maggi via IRC.
* gtk/gtkliststore.c (gtk_list_store_swap): update tail if needed,
(gtk_list_store_move): update tail if needed.
Mon Jan 27 16:19:59 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksocket.c (gtk_socket_filter_func): event->any.window
might be NULL. Use gtk_widget_get_display (widget)
(#102860, Thomas Leonard)
Mon Jan 27 15:58:31 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Fix --without-modules/--disable-modules
confusion that was causing --disable-modules not to work.
(#102865, Akira Tagoh)
* configure.in: Fix problem with plain --with-xinput
(#104266, Akira Tagoh)
2003-01-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
move bindings viewport-based when the cursor is invisible. (#78669)
2003-01-23 Daniel Elstner <daniel.elstner@gmx.net>
Merge from HEAD.
* gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
in addition to show_all in order to keep them symmetric. (#102201)
2003-01-22 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_foreign_new_for_display,
gdk_pixmap_lookup, gdk_pixmap_lookup_for_display): Implement.
(#104108, Naofumi Yasufuku)
* gdk/gdk.def: Export the above.
Wed Jan 22 14:23:23 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
the end of the function, so there is a statement following the "out"
label in all cases (fixes #101961)
2003-01-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "mn" to ALL_LINGUAS.
Wed Jan 15 17:02:18 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_validate_yrange):
Fix off-by-one error on the backward iteration loop,
that was causing the wrong range to be redrawn.
(at least part of #72734)
2003-01-21 Matthias Clasen <maclas@gmx.de>
Merge from HEAD.
* gtk/gtktextview.c (gtk_text_view_size_allocate): Adjust the
vadjustment value after changing its bounds. (fixes #101963 and
#73562)
* gtk/gtkcolorsel.c (hex_changed): Fix clamping to [0,1] to avoid
unnecessary roundtrip failures. (#93500)
2003-01-20 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Amharic (am), Macedonian (mk)
and Tamil (ta) to ALL_LINGUAS
2003-01-19 Tor Lillqvist <tml@iki.fi>
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
2003-01-15 Tor Lillqvist <tml@iki.fi>
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
Wed Jan 15 15:55:47 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c: Set the double click speed from
XSETTINGS when creating a new GtkSettings object
as well as when getting a notify. (#103601, reported
by Louis Garcia)
Wed Jan 15 14:56:09 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_allocate):
Show/hide the notebook event window as necessary,
we weren't previously keeping the visibility updated
properly. (#103599)
2002-12-29 Murray Cumming <murrayc@usa.net>
Fixes #102168. Merge from HEAD.
* gtk/gtkliststore.c, gtktreednd.c, gtktreestore.c:
Actually implement the GtkTreeDragSource::row_draggable virtual
function in GtkListStore and GtkTreeStore instead of just checking
whether it's implemented at all. This means that DnD isn't broken by
gtkmm's virtual function wrappers. The alternative would be to
hard-code the TRUE return value into gtkmm's wrappers, but that's
part of GTK+'s implementation, not it's API.
Tue Jan 14 23:54:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c: fix compiler warning.
Tue Jan 14 23:29:00 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render):
make sure exposed pixbufs are clipped to the exposed area before
drawing, which is a slight speedup. (#102379, patch from Soeren
Sandmann).
Tue Jan 14 23:26:41 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): silly typo fix,
only free scroll_to_path when the complete tree has been validated.
This makes sure that we scrolled to the correct path.
Tue Jan 14 23:25:32 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_style_set): update the
background of widget->window and bin->window. (Fixes #96650, reported
by Dave Camp).
Tue Jan 14 23:24:02 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_clamp_node_visible): process
updates before scrolling, avoiding a "selection streak". (Fixes
#101235, patch from Soeren Sandmann).
Tue Jan 14 23:22:13 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (validate_visible_area): actually put values
in the requisition using gtk_widget_size_request. (Fixes #100172,
reported by Kjartan Maraas).
Tue Jan 14 23:19:45 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (gtk_tree_view_rows_reordered): cancel the
arrow animation timeout before we actually reorder the rbtree. If
we don't do this we can get stuck arrows,
(cancel_arrow_animation): new function. (Fixes #93629, part 2,
reported and testcase provided by Hans Petter Jansson).
Tue Jan 14 23:18:21 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeselection.c (gtk_tree_selection_real_modify_range):
anchor_path should be start_path, not end_path. (Fixes #102618,
patch from Carlos Garnacho Parro).
Tue Jan 14 23:16:15 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtkliststore.c (gtk_list_store_move): also update the tail,
only correct new_pos if we don't move to the head/tail.
Tue Jan 14 23:11:55 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreestore.c (gtk_tree_store_swap): take the path from
the parent_iter if depth >= 1, so we send the reordered signal to
the correct level, remove debugging printfs which I forgot the remove
earlier (2.2.0 shipped with this, oops). (Fixes #103198, Reported and
testcase provided by Matthew Tuck).
Tue Jan 14 20:58:44 2003 Kristian Rietveld <kris@gtk.org>
Merge from HEAD.
* gtk/gtktreeview.c (invalite_last_column): split out actual column
invalidation into invalite_column(),
(gtk_tree_view_size_allocate_columns): invalidate column if the
new width is larger than the old width.
(fixes #102890, reported by Alex Duggan).
2003-01-12 Tor Lillqvist <tml@iki.fi>
* gtk/gtkmain.c: Move inclusion of config.h and gtkintl.h earlier,
as gtkprivate.h redefines GTK_LOCALEDIR on Win32, for run-time
lookup.
* gdk/Makefile.am (libgdk_win32_2_0_la_DEPENDENCIES): Depend on
gdk.def.
* gdk/gdk.def
* gtk/gtk.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-09 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_skip_taskbar_hint):
Implement by setting or clearing the WS_EX_TOOLWINDOW extended
window style.
(gdk_window_set_type_hint): Add all cases to the switch (not all
do anything, though). Handle GDK_WINDOW_TYPE_HINT_TOOLBAR by
calling gdk_window_set_skip_taskbar_hint(). This means that GTK
won't know that the skip_taskbar hint is on for the window, is
this bad?
Wed Jan 8 18:44:21 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkdisplay-x11.c: #include <stdlib.h> for putenv,
<string.h> for strlen.
* gdk/x11/gdkscreen-x11.c: #include <stdlib.h> for getenv,
<string.h> for strrchr.
* tests/testgtk.c (create_saved_position): "x" and "y" properties
for widgets no longer exist, use gtk_window_move instead.
* test/testtextbuffer.c (check_get_set_text): cast strlen to
int for g_error.
2003-01-05 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct DLL and import library names, with
GTK_API_VERSION in name, not GTK_MAJOR_VERSION.GTK_MINOR_VERSION.
(DEVZIP): Add bin/{gdk-pixbuf-query-loaders,gtk-query-immodules-2.0,
gtk-demo}.exe and share/gtk-2.0.
* configure.in: Improve check for dimm.h.
* configure.in: Set SOEXT to 'so' on Unix, 'dll' on Win32. Used in
gdk-pixbuf/Makefile.am.
* gdk-pixbuf/makefile.mingw.in
* gdk-pixbuf/pixops/makefile.mingw.in
* gdk/makefile.mingw.in
* gdk/win32/makefile.mingw.in
* gtk/makefile.mingw.in: Remove. Not maintained anyway.
* gdk-pixbuf/Makefile.am
* gdk-pixbuf/pixops/Makefile.am
* gdk/Makefile.am
* gdk/win32/Makefile.am
* gtk/Makefile.am
* configure.in: Remove makefile.mingw{,.in} from here, too.
* README.win32: Updates. Don't mention the now removed
makefile.mingw files.
* gdk/gdk.def
* gtk/gtk.def: Add a couple of missing entries.
* gdk/gdkkeynames.c: Include <string.h> for strcmp() and memcpy().
* gdk/win32/gdkevents-win32.c: Move dimm.h header clash workaround
earlier.
* gdk/win32/rc/Makefile.am: Add hack to help
build/win32/lt-compile-resource decide which kind of libtool
object file to produce.
2003-01-05 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make
C-Down step through the sequence of paragraph ends (old behaviour
included paragraph starts). (#80340, patch by Narayana Pattipati)
* gtk/gtktextiter.c (_gtk_text_btree_get_iter_at_first_toggle):
Check for a tag toggle at the start iterator before calling
gtk_text_iter_forward_to_tag_toggle(). (#102090, patch by Daniel
Elstner)
2003-01-04 Matthias Clasen <maclas@gmx.de>
* gtk/gtkfilesel.h (struct _GtkFileSelection): Add /*< public >*/
and /*< private >*/ as appropriate. (#97211)
2003-01-04 Tor Lillqvist <tml@iki.fi>
* Makefile.am (EXTRA_DIST): Don't distribute gtk-zip.sh, but do
distribute gtk-zip.sh.in.
* gtk-zip.sh.in (DEVZIP): Add gdk-pixbuf-csource.exe and .1.
2003-01-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtkwindow.c (gtk_window_get_focus): Document that it may
return NULL. (#102069)
2003-01-01 Matthias Clasen <maclas@gmx.de>
* gtk/fnmatch.c (FNMATCH_TEST_CASES): #undef, since having
a main() in the library is obviously bad.
2002-12-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_drag_data_received): Place the
+2 -2
View File
@@ -22,8 +22,8 @@ GTK+ requires the following packages:
Simple install procedure
========================
% gzip -cd gtk+-2.2.0.tar.gz | tar xvf - # unpack the sources
% cd gtk+-2.2.0 # change to the toplevel directory
% gzip -cd gtk+-2.2.1.tar.gz | tar xvf - # unpack the sources
% cd gtk+-2.2.1 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
+3 -5
View File
@@ -8,7 +8,6 @@ AUTOMAKE_OPTIONS = 1.4
EXTRA_DIST = \
HACKING \
gtk+.spec.in \
makecopyright \
NEWS.pre-1-0 \
ChangeLog.pre-1-0 \
@@ -17,7 +16,7 @@ EXTRA_DIST = \
README.cvs-commits \
README.win32 \
config.h.win32 \
gtk-zip.sh \
gtk-zip.sh.in \
sanitize-la.sh \
po/README.translators \
po/makefile.mingw \
@@ -149,14 +148,13 @@ install-data-hook:
rm -f gdk-2.0.pc && cp -f gdk-$(GDKTARGET)-2.0.pc gdk-2.0.pc && \
rm -f gtk+-2.0.pc && cp -f gtk+-$(GDKTARGET)-2.0.pc gtk+-2.0.pc)
dist-hook: gtk+.spec
dist-hook:
if test -f $(srcdir)/INSTALL.in && test -f $(srcdir)/README.in ; then \
CONFIG_FILES="INSTALL:$(srcdir)/INSTALL.in README:$(srcdir)/README.in" \
CONFIG_HEADERS= \
$(SHELL) config.status \
&& cp INSTALL README $(distdir) ; \
fi \
&& cp gtk+.spec $(distdir)
fi
.PHONY: files release sanity snapshot
+33
View File
@@ -1,3 +1,36 @@
Overview of Changes in GTK+ 2.2.1
=================================
* Win32 [Tor Lillqvist]
- Improve setting of window position / decorations
- Implement gdk_pixmap_foreign_new() [Naofumi Yasufuku]
- Fix various file selection bugs
- Improve scheme for locating pixbuf loader modules
- Miscellaneous fixes [Alex Shaduri, Kenichi SUTO, Ed Woods]
* GtkTreeView [Kristian Rietveld]
- made GtkTreeSortable work as the documentation advertises [Jarek Dukat]
- fixed gtk_tree_view_set_sort_column_id so you can disable sorting [Soeren
Sandmann, Jarek Dukat]
- TreeView search now works on all values transformable by GValue and not
just strings [Muktha Narayan]
- _move/_swap fixage in the Stores [Matthew Tuck, Paolo Maggi]
- a lot of misc bug fixes [Alex Duggan, Carlos Garnacho Parro, Hans Petter
Jansson, Kjartan Maraas, Soeren, Dave Camp, Murray Cumming, Dave Cook,
Gaël Le Mignot, Vasco Alexandre da Silva Costa]
* GtkTextView [Matthias Clasen]
- Fix keynav with invisible cursor
- Fix misdrawing of cursor [Owen Taylor] and selection
- Many miscellaneous fixes [Narayana Pattipati, Daniel Elstner]
* Fix problem with accidental inclusion of a main() [Matthias]
* Documentation improvements [Matthias, Havoc Pennington]
* Fix problem with GtkColorsel and pixmap themes [Daniel]
* Fix race condition with GdkRGB in PseudoColor [Shivaram Upadhyayula]
* Warning fixes [Manish Singh]
* configure fixes [Akira Tagoh]
* New and updated translations (ca,de,es,et,ko,mn,pl,pt,vi,zh_CN)
* Miscellaneous bug fixes [Matthias, Daniel, Martin Gansser, Louis Garcia,
Tommi Komulainen, Thomas Leonard, Ian Peters, Arvind Samptur,
Soeren Sandmann, Hidetoshi Tajima, Owen]
Overview of Changes in GTK+ 2.2.0
=================================
* Fix problem with the DND code and event filters [Bolian Yin, Owen Taylor]
+1 -1
View File
@@ -1,7 +1,7 @@
General Information
===================
This is GTK+ version 2.2.0. GTK+ is a multi-platform toolkit for
This is GTK+ version 2.2.1. GTK+ is a multi-platform toolkit for
creating graphical user interfaces. Offering a complete set of widgets,
GTK+ is suitable for projects ranging from small one-off projects to
complete application suites.
+3 -8
View File
@@ -33,16 +33,11 @@ Alternative 1 also generates Microsoft import libraries (.lib), if you
have lib.exe available. It might also work for cross-compilation from
Unix.
There are hand-written makefiles for mingw (look for makefile.mingw in
various directories), but those haven't been kept up-to-date, and
probably won't work without editing. Sorry. If you make them work
again, by all means do submit patches.
Note that I use method 1 myself. Hans Breuer has been taking care of
the MSVC makefiles. At times, we disagree a bit about various issues,
and the makefile.msc files might not produce identically named DLLs
and import libraries as the "autoconfiscated" makefiles and libtool
do.
and for instance the makefile.msc files will not produce identically
named DLLs and import libraries as the "autoconfiscated" makefiles and
libtool do. If this bothers you, you will have to fix the makefiles.
Using GTK+ on Win32
===================
+2 -2
View File
@@ -50,8 +50,8 @@ if automake-1.4 --version < /dev/null > /dev/null 2>&1 ; then
fi
if $have_automake ; then : ; else
echo
echo "You must have automake 1.4-p1 installed to compile $PROJECT."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.4-p1.tar.gz"
echo "You must have automake 1.4-p6 installed to compile $PROJECT."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.4-p6.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
fi
+12 -22
View File
@@ -32,9 +32,9 @@ GLIB_AC_DIVERT_BEFORE_HELP([
#
GTK_MAJOR_VERSION=2
GTK_MINOR_VERSION=2
GTK_MICRO_VERSION=0
GTK_INTERFACE_AGE=0
GTK_BINARY_AGE=200
GTK_MICRO_VERSION=1
GTK_INTERFACE_AGE=1
GTK_BINARY_AGE=201
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
dnl This is the X.Y used in -lgtk-FOO-X.Y
GTK_API_VERSION=2.0
@@ -389,7 +389,7 @@ AC_SUBST(STRIP_BEGIN)
AC_SUBST(STRIP_END)
# i18n stuff
ALL_LINGUAS="az be bg ca cs cy da de el en_GB en@IPA es et eu fa fi fr ga gl he hi hr hu ia it ja ko lt lv ms nl nn no pl pt pt_BR ro ru sk sl sp sr sv tr uk vi wa zh_TW zh_CN"
ALL_LINGUAS="am az be bg ca cs cy da de el en_GB en@IPA es et eu fa fi fr ga gl he hi hr hu ia it ja ko lt lv mk mn ms nl nn no pl pt pt_BR ro ru sk sl sp sr sv ta tr uk vi wa zh_TW zh_CN"
AM_GLIB_GNU_GETTEXT
LIBS="$LIBS $INTLLIBS"
@@ -470,13 +470,15 @@ if test "${with_ie55+set}" = set && test $with_ie55 != no; then
AC_MSG_CHECKING([for dimm.h])
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
AC_TRY_COMPILE([#include <windows.h>
#include <objbase.h>
AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
#ifdef __GNUC__
/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
#define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
#define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
#endif
#include <windows.h>
#include <objbase.h>
#include <imm.h>
#ifdef __GNUC__
#undef IMEMENUITEMINFOA
#undef IMEMENUITEMINFOW
#endif
@@ -632,17 +634,11 @@ fi
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
AC_ARG_ENABLE(modules, [ --disable-modules disable dynamic module loading],[
if test x$withval = xyes; then
with_modules=yes
else
with_modules=no
fi
])
AC_ARG_ENABLE(modules, [ --disable-modules disable dynamic module loading])
dynworks=false
deps=
if test x$with_modules = xno; then
if test x$enable_modules = xno; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
@@ -1187,7 +1183,7 @@ if test "x$gdktarget" = "xx11"; then
AC_DEFINE(XINPUT_NONE)
fi
AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree)
AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
# Check for the RANDR extension
@@ -1581,7 +1577,6 @@ AM_CONDITIONAL(HAVE_SGML2HTML, test x$SGML2HTML != xno)
AC_OUTPUT([
config.h.win32
gtk-zip.sh
gtk+.spec
Makefile
gdk-pixbuf-2.0.pc
gdk-2.0.pc
@@ -1609,21 +1604,16 @@ docs/reference/gtk/version.xml
docs/faq/Makefile
docs/tutorial/Makefile
gdk-pixbuf/Makefile
gdk-pixbuf/makefile.mingw
gdk-pixbuf/gdk_pixbuf.rc
gdk-pixbuf/gdk-pixbuf-features.h
gdk-pixbuf/pixops/Makefile
gdk-pixbuf/pixops/makefile.mingw
gdk/Makefile
gdk/makefile.mingw
gdk/x11/Makefile
gdk/win32/Makefile
gdk/win32/makefile.mingw
gdk/win32/rc/Makefile
gdk/win32/rc/gdk.rc
gdk/linux-fb/Makefile
gtk/Makefile
gtk/makefile.mingw
gtk/makefile.msc
gtk/gtkversion.h
gtk/gtk-win32.rc
+26 -1
View File
@@ -12,6 +12,27 @@ static GtkWidget *da;
static GdkColor color;
static GtkWidget *frame;
/* Expose callback for the drawing area
*/
static gboolean
expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
if (widget->window)
{
GtkStyle *style;
style = gtk_widget_get_style (widget);
gdk_draw_rectangle (widget->window,
style->bg_gc[GTK_STATE_NORMAL],
TRUE,
event->area.x, event->area.y,
event->area.width, event->area.height);
}
return TRUE;
}
static void
change_color_callback (GtkWidget *button,
gpointer data)
@@ -76,8 +97,12 @@ do_colorsel (void)
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
da = gtk_drawing_area_new ();
g_signal_connect (da, "expose_event",
G_CALLBACK (expose_event_callback), NULL);
/* set a minimum size */
gtk_widget_set_size_request (da, 200, 200);
/* set the color */
+1 -1
View File
@@ -252,7 +252,7 @@ do_pixbufs (void)
gtk_container_add (GTK_CONTAINER (window), da);
timeout_id = gtk_timeout_add (FRAME_DELAY, timeout, NULL);
timeout_id = g_timeout_add (FRAME_DELAY, timeout, NULL);
}
}
+2 -2
View File
@@ -187,7 +187,7 @@ static guint timeout_id;
static void
destroy_cb (GtkObject *object, gpointer data)
{
gtk_timeout_remove (timeout_id);
g_source_remove (timeout_id);
timeout_id = 0;
gtk_main_quit ();
@@ -225,7 +225,7 @@ main (int argc, char **argv)
gtk_container_add (GTK_CONTAINER (window), da);
timeout_id = gtk_timeout_add (FRAME_DELAY, timeout, NULL);
timeout_id = g_timeout_add (FRAME_DELAY, timeout, NULL);
gtk_widget_show_all (window);
gtk_main ();
-392
View File
@@ -1,392 +0,0 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <gtk/gtk.h>
#include <demos.h>
static GtkTextBuffer *info_buffer;
static GtkTextBuffer *source_buffer;
static gchar *current_file = NULL;
enum {
TITLE_COLUMN,
FILENAME_COLUMN,
FUNC_COLUMN,
ITALIC_COLUMN,
NUM_COLUMNS
};
gboolean
read_line (FILE *stream, GString *str)
{
int n_read = 0;
flockfile (stream);
g_string_truncate (str, 0);
while (1)
{
int c;
c = getc_unlocked (stream);
if (c == EOF)
goto done;
else
n_read++;
switch (c)
{
case '\r':
case '\n':
{
int next_c = getc_unlocked (stream);
if (!(next_c == EOF ||
(c == '\r' && next_c == '\n') ||
(c == '\n' && next_c == '\r')))
ungetc (next_c, stream);
goto done;
}
default:
g_string_append_c (str, c);
}
}
done:
funlockfile (stream);
return n_read > 0;
}
void
load_file (const gchar *filename)
{
FILE *file;
GtkTextIter start, end;
GString *buffer = g_string_new (NULL);
int state = 0;
gboolean in_para = 0;
if (current_file && !strcmp (current_file, filename))
return;
g_free (current_file);
current_file = g_strdup (filename);
gtk_text_buffer_get_bounds (info_buffer, &start, &end);
gtk_text_buffer_delete (info_buffer, &start, &end);
gtk_text_buffer_get_bounds (source_buffer, &start, &end);
gtk_text_buffer_delete (source_buffer, &start, &end);
file = fopen (filename, "r");
if (!file)
{
g_warning ("Cannot open %s: %s\n", filename, g_strerror (errno));
return;
}
gtk_text_buffer_get_iter_at_offset (info_buffer, &start, 0);
while (read_line (file, buffer))
{
gchar *p = buffer->str;
gchar *q;
switch (state)
{
case 0:
/* Reading title */
while (*p == '/' || *p == '*' || isspace (*p))
p++;
q = p + strlen (p);
while (q > p && isspace (*(q - 1)))
q--;
if (q > p)
{
int len_chars = g_utf8_pointer_to_offset (p, q);
end = start;
g_assert (strlen (p) >= q - p);
gtk_text_buffer_insert (info_buffer, &end, p, q - p);
start = end;
gtk_text_iter_backward_chars (&start, len_chars);
gtk_text_buffer_apply_tag_by_name (info_buffer, "title", &start, &end);
start = end;
state++;
}
break;
case 1:
/* Reading body of info section */
while (isspace (*p))
p++;
if (*p == '*' && *(p + 1) == '/')
{
gtk_text_buffer_get_iter_at_offset (source_buffer, &start, 0);
state++;
}
else
{
int len;
while (*p == '*' || isspace (*p))
p++;
len = strlen (p);
while (isspace (*(p + len - 1)))
len--;
if (len > 0)
{
if (in_para)
gtk_text_buffer_insert (info_buffer, &start, " ", 1);
g_assert (strlen (p) >= len);
gtk_text_buffer_insert (info_buffer, &start, p, len);
in_para = 1;
}
else
{
gtk_text_buffer_insert (info_buffer, &start, "\n", 1);
in_para = 0;
}
}
break;
case 2:
/* Skipping blank lines */
while (isspace (*p))
p++;
if (*p)
{
p = buffer->str;
state++;
/* Fall through */
}
else
break;
case 3:
/* Reading program body */
gtk_text_buffer_insert (source_buffer, &start, p, -1);
gtk_text_buffer_insert (info_buffer, &start, "\n", 1);
break;
}
}
gtk_text_buffer_get_bounds (source_buffer, &start, &end);
gtk_text_buffer_apply_tag_by_name (info_buffer, "source", &start, &end);
}
gboolean
button_press_event_cb (GtkTreeView *tree_view,
GdkEventButton *event,
GtkTreeModel *model)
{
if (event->type == GDK_2BUTTON_PRESS)
{
GtkTreePath *path = NULL;
gtk_tree_view_get_path_at_pos (tree_view,
event->window,
event->x,
event->y,
&path,
NULL);
if (path)
{
GtkTreeIter iter;
gboolean italic;
GVoidFunc func;
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_store_get (GTK_TREE_STORE (model),
&iter,
FUNC_COLUMN, &func,
ITALIC_COLUMN, &italic,
-1);
(func) ();
gtk_tree_store_set (GTK_TREE_STORE (model),
&iter,
ITALIC_COLUMN, !italic,
-1);
gtk_tree_path_free (path);
}
gtk_signal_emit_stop_by_name (GTK_OBJECT (tree_view),
"button_press_event");
return TRUE;
}
return FALSE;
}
static void
selection_cb (GtkTreeSelection *selection,
GtkTreeModel *model)
{
GtkTreeIter iter;
GValue value = {0, };
if (! gtk_tree_selection_get_selected (selection, NULL, &iter))
return;
gtk_tree_model_get_value (model, &iter,
FILENAME_COLUMN,
&value);
load_file (g_value_get_string (&value));
g_value_unset (&value);
}
static GtkWidget *
create_text (GtkTextBuffer **buffer,
gboolean is_source)
{
GtkWidget *scrolled_window;
GtkWidget *text_view;
PangoFontDescription *font_desc;
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_SHADOW_IN);
text_view = gtk_text_view_new ();
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
*buffer = gtk_text_buffer_new (NULL);
gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), *buffer);
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE);
if (is_source)
{
font_desc = pango_font_description_from_string ("Courier 10");
gtk_widget_modify_font (text_view, font_desc);
pango_font_description_free (font_desc);
}
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), !is_source);
return scrolled_window;
}
/* Technically a list, but if we do go to 80 demos, we may want to move to a tree */
static GtkWidget *
create_tree (void)
{
GtkTreeSelection *selection;
GtkCellRenderer *cell;
GtkWidget *tree_view;
GtkTreeViewColumn *column;
GtkTreeStore *model;
GtkTreeIter iter;
gint i;
model = gtk_tree_store_new_with_types (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN);
tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
gtk_tree_selection_set_type (GTK_TREE_SELECTION (selection),
GTK_TREE_SELECTION_SINGLE);
gtk_widget_set_usize (tree_view, 200, -1);
for (i=0; i < G_N_ELEMENTS (testgtk_demos); i++)
{
gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL);
gtk_tree_store_set (GTK_TREE_STORE (model),
&iter,
TITLE_COLUMN, testgtk_demos[i].title,
FILENAME_COLUMN, testgtk_demos[i].filename,
FUNC_COLUMN, testgtk_demos[i].func,
ITALIC_COLUMN, FALSE,
-1);
}
cell = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("Widget",
cell,
"text", TITLE_COLUMN,
"italic", ITALIC_COLUMN,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
GTK_TREE_VIEW_COLUMN (column));
gtk_signal_connect (GTK_OBJECT (selection), "selection_changed", selection_cb, model);
gtk_signal_connect (GTK_OBJECT (tree_view), "button_press_event", GTK_SIGNAL_FUNC (button_press_event_cb), model);
return tree_view;
}
int
main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *notebook;
GtkWidget *hbox;
GtkWidget *tree;
GtkTextTag *tag;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
hbox = gtk_hbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), hbox);
tree = create_tree ();
gtk_box_pack_start (GTK_BOX (hbox), tree, FALSE, FALSE, 0);
notebook = gtk_notebook_new ();
gtk_box_pack_start (GTK_BOX (hbox), notebook, TRUE, TRUE, 0);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
create_text (&info_buffer, FALSE),
gtk_label_new ("Info"));
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
create_text (&source_buffer, TRUE),
gtk_label_new ("Source"));
tag = gtk_text_buffer_create_tag (info_buffer, "title");
gtk_object_set (GTK_OBJECT (tag),
"font", "Sans 18",
NULL);
tag = gtk_text_buffer_create_tag (info_buffer, "source");
gtk_object_set (GTK_OBJECT (tag),
"font", "Courier 10",
"pixels_above_lines", 0,
"pixels_below_lines", 0,
NULL);
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
gtk_widget_show_all (window);
load_file (testgtk_demos[0].filename);
gtk_main ();
return 0;
}
+1 -1
View File
@@ -626,7 +626,7 @@ main (int argc, char **argv)
status.readlen = readlen;
status.timeout = gtk_timeout_add (100, update_timeout, &status);
status.timeout = g_timeout_add (100, update_timeout, &status);
}
#endif
}
+4
View File
@@ -1,3 +1,7 @@
2003-01-30 Matthias Clasen <maclas@gmx.de>
* gtk/running.sgml: s/overwrite/override/g (#104627, Brian Cameron)
Fri Dec 20 13:10:06 2002 Owen Taylor <otaylor@redhat.com>
* gtk/building.sgml: Update directories in download
@@ -284,6 +284,7 @@ Modules supporting animations must derive a type from
virtual functions.
</para>
@parent_class:
@is_static_image: returns whether the given animation is just a static image.
@get_static_image: returns a static image representing the given animation.
@get_size: fills @width and @height with the frame size of the animation.
@@ -296,6 +297,7 @@ Modules supporting animations must derive a type from
virtual functions.
</para>
@parent_class:
@get_delay_time: returns the time in milliseconds that the current frame
should be shown.
@get_pixbuf: returns the current frame.
+5 -5
View File
@@ -156,7 +156,7 @@ This option is only available if GTK+ has been configured with
<title><systemitem>--gxid-host <replaceable>host</replaceable></systemitem></title>
<para>
The host to contact the <application>gxid</application> daemon on; overwrites
The host to contact the <application>gxid</application> daemon on; overrides
the <link linkend="GXID"><envar>GXID_HOST</envar></link> environment variable.
This option is only available if GTK+ has been configured with
<option>--gdk-target=x11</option>.
@@ -167,7 +167,7 @@ This option is only available if GTK+ has been configured with
<title><systemitem>--gxid-port <replaceable>port</replaceable></systemitem></title>
<para>
The port for the connection to <application>gxid</application>; overwrites
The port for the connection to <application>gxid</application>; overrides
the <link linkend="GXID"><envar>GXID_PORT</envar></link> environment variable.
This option is only available if GTK+ has been configured with
<option>--gdk-target=x11</option>.
@@ -276,8 +276,8 @@ or <envar>DISPLAY</envar>; mostly to determine paths to look for certain files.
<para>
Specifies the file listing the IM modules to load. This environment
variable overwrites the <literal>im_module_file</literal> specified in
the RC files, which in turn overwrites the default value
variable overrides the <literal>im_module_file</literal> specified in
the RC files, which in turn overrides the default value
<filename><replaceable>sysconfdir</replaceable>/gtk-2.0/gtk.immodules</filename>
(<replaceable>sysconfdir</replaceable> is the sysconfdir specified when GTK+ was configured,
usually <filename>/usr/local/etc</filename>.)
@@ -322,7 +322,7 @@ nevertheless.
<para>
Specifies the file listing the GdkPixbuf loader modules to load.
This environment variable overwrites the default value
This environment variable overrides the default value
<filename><replaceable>sysconfdir</replaceable>/gtk-2.0/gdk-pixbuf.loaders</filename>
(<replaceable>sysconfdir</replaceable> is the sysconfdir specified when
GTK+ was configured, usually <filename>/usr/local/etc</filename>.)
+20
View File
@@ -118,6 +118,26 @@ The #GtkFileSelection struct contains the following #GtkWidget fields:
</para>
@dir_list:
@file_list:
@selection_entry:
@selection_text:
@main_vbox:
@ok_button:
@cancel_button:
@help_button:
@history_pulldown:
@history_menu:
@history_list:
@fileop_dialog:
@fileop_entry:
@fileop_file:
@cmpl_state:
@fileop_c_dir:
@fileop_del_file:
@fileop_ren_file:
@button_area:
@action_area:
<!-- ##### FUNCTION gtk_file_selection_new ##### -->
<para>
+1
View File
@@ -49,6 +49,7 @@ handles the emission.
Implementation of this signal is optional.
</para>
@parent_class:
@activate_signal:
@set_scroll_adjustments_signal:
+44
View File
@@ -1,3 +1,47 @@
Mon Jan 27 17:10:30 2003 Owen Taylor <otaylor@redhat.com>
* Makefile.am (gdk-pixbuf.loaders): Rewrite to run
on the .la files rather than looking for .so files.
(#102142, Martin Gansser)
* Makefile.am: Don't build gdk-pixbuf.loaders when
cross-compiling.
2003-01-12 Tor Lillqvist <tml@iki.fi>
* gdk_pixbuf.def: Add some missing entries. Thanks to Kenichi SUTO.
2003-01-09 Tor Lillqvist <tml@iki.fi>
Changes for run-time lookup of installation location on Win32:
* Makefile.am (INCLUDES): Define PREFIX as $(prefix).
* gdk-pixbuf-io.c (get_sysconfdir): New function, look up
installation location at runtime and deduce GTK_SYSCONFDIR
from it.
(get_toplevel): Similar, for the top-level installation directory.
(correct_prefix): Replace compile-time prefix with run-time
prefix.
(get_libdir): Remove, not used any longer.
(gdk_pixbuf_io_init): Call correct_prefix().
2003-01-05 Tor Lillqvist <tml@iki.fi>
* queryloaders.c (query_module): [Win32] Change backslahses into
slashes in path.
2003-01-04 Tor Lillqvist <tml@iki.fi>
* Makefile.am (gdk-pixbuf.loaders): Use @SOEXT@ in the find command.
* gdk_pixbuf.def: Add gdk_pixbuf_loader_set_size.
2003-01-03 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Don't crash if
gdk-pixbuf.loaders file is missing. (#102222)
2002-12-08 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-animation.h:
+7 -4
View File
@@ -248,6 +248,7 @@ INCLUDES = @STRIP_BEGIN@ \
-DGTK_BINARY_VERSION=\"@GTK_BINARY_VERSION@\" \
-DG_DISABLE_DEPRECATED \
-DGDK_PIXBUF_DISABLE_DEPRECATED \
-DPREFIX=\"$(prefix)\" \
@INCLUDED_LOADER_DEFINE@ \
@GTK_DEBUG_FLAGS@ \
@GDK_PIXBUF_DEP_CFLAGS@ \
@@ -393,8 +394,6 @@ CLEANFILES += xgen-gmc
EXTRA_DIST = \
gdk-pixbuf-csource.1 \
makefile.mingw \
makefile.mingw.in \
makefile.msc \
gdk_pixbuf.def \
gdk_pixbuf.rc \
@@ -435,12 +434,16 @@ install-data-local: install-ms-lib install-libtool-import-lib
echo "***" ; \
fi
if CROSS_COMPILING
else
all-local: gdk-pixbuf.loaders
endif
gdk-pixbuf.loaders: $(loader_LTLIBRARIES) gdk-pixbuf-query-loaders
if find . -name 'libpixbufloader-*.so' | grep 'so' > /dev/null ; then \
LOADERS=`echo libpixbufloader-*.la` ; \
if test "x$$LOADERS" != 'xlibpixbufloader-*.la' ; then \
echo "Writing a gdk-pixbuf.loader file to use when running examples before installing gdk-pixbuf."; \
GDK_PIXBUF_MODULEDIR=.libs $(top_builddir)/gdk-pixbuf/gdk-pixbuf-query-loaders > ./gdk-pixbuf.loaders ;\
$(top_builddir)/gdk-pixbuf/gdk-pixbuf-query-loaders $$LOADERS > ./gdk-pixbuf.loaders ;\
else \
echo "No dynamic modules found; will use only static modules for uninstalled example programs."; \
touch gdk-pixbuf.loaders; \
+64 -29
View File
@@ -165,6 +165,59 @@ skip_space (const char **pos)
return !(*p == '\0');
}
#ifdef G_OS_WIN32
/* DllMain function needed to tuck away the gdk-pixbuf DLL name */
G_WIN32_DLLMAIN_FOR_DLL_NAME (static, dll_name)
static char *
get_toplevel (void)
{
static char *toplevel = NULL;
if (toplevel == NULL)
toplevel = g_win32_get_package_installation_subdirectory
(GETTEXT_PACKAGE, dll_name, "");
return toplevel;
}
static char *
get_sysconfdir (void)
{
static char *sysconfdir = NULL;
if (sysconfdir == NULL)
sysconfdir = g_win32_get_package_installation_subdirectory
(GETTEXT_PACKAGE, dll_name, "etc");
return sysconfdir;
}
#undef GTK_SYSCONFDIR
#define GTK_SYSCONFDIR get_sysconfdir()
static void
correct_prefix (gchar **path)
{
if (strncmp (*path, PREFIX "/", strlen (PREFIX "/")) == 0 ||
strncmp (*path, PREFIX "\\", strlen (PREFIX "\\")) == 0)
{
/* This is an entry put there by gdk-pixbuf-query-loaders on the
* packager's system. On Windows a prebuilt GTK+ package can be
* installed in a random location. The gdk-pixbuf.loaders file
* distributed in such a package contains paths from the package
* builder's machine. Replace the build-time prefix with the
* installation prefix on this machine.
*/
gchar *tem = *path;
*path = g_strconcat (get_toplevel (), tem + strlen (PREFIX), NULL);
g_free (tem);
}
}
#endif
static gchar *
gdk_pixbuf_get_module_file (void)
{
@@ -209,6 +262,9 @@ gdk_pixbuf_io_init ()
/* Blank line marking the end of a module
*/
if (module && *p != '#') {
#ifdef G_OS_WIN32
correct_prefix (&module->module_path);
#endif
file_formats = g_slist_prepend (file_formats, module);
module = NULL;
}
@@ -331,29 +387,6 @@ gdk_pixbuf_io_init ()
g_free (filename);
}
#ifdef G_OS_WIN32
/* DllMain function needed to tuck away the gdk-pixbuf DLL name */
G_WIN32_DLLMAIN_FOR_DLL_NAME (static, dll_name)
static char *
get_libdir (void)
{
static char *libdir = NULL;
if (libdir == NULL)
libdir = g_win32_get_package_installation_subdirectory
(GETTEXT_PACKAGE, dll_name, "lib\\gtk-2.0\\" GTK_BINARY_VERSION "\\loaders");
return libdir;
}
#undef PIXBUF_LIBDIR
#define PIXBUF_LIBDIR get_libdir ()
#endif
/* actually load the image handler - gdk_pixbuf_get_module only get a */
/* reference to the module to load, it doesn't actually load it */
/* perhaps these actions should be combined in one function */
@@ -779,20 +812,22 @@ gdk_pixbuf_new_from_xpm_data (const char **data)
GdkPixbuf *(* load_xpm_data) (const char **data);
GdkPixbuf *pixbuf;
GError *error = NULL;
GdkPixbufModule *xpm_module = _gdk_pixbuf_get_named_module ("xpm", NULL);
GdkPixbufModule *xpm_module = _gdk_pixbuf_get_named_module ("xpm", &error);
if (xpm_module == NULL) {
g_warning ("Error loading XPM image loader: %s", error->message);
g_error_free (error);
return NULL;
}
if (xpm_module->module == NULL) {
if (!_gdk_pixbuf_load_module (xpm_module, &error)) {
g_warning ("Error loading XPM image loader: %s", error->message);
g_error_free (error);
return FALSE;
return NULL;
}
}
if (xpm_module->module == NULL) {
g_warning ("Can't find gdk-pixbuf module for parsing inline XPM data");
return NULL;
} else if (xpm_module->load_xpm_data == NULL) {
if (xpm_module->load_xpm_data == NULL) {
g_warning ("gdk-pixbuf XPM module lacks XPM data capability");
return NULL;
} else
+8
View File
@@ -25,9 +25,15 @@ EXPORTS
gdk_pixbuf_error_get_type
gdk_pixbuf_error_quark
gdk_pixbuf_fill
gdk_pixbuf_format_get_description
gdk_pixbuf_format_get_extensions
gdk_pixbuf_format_get_mime_types
gdk_pixbuf_format_get_name
gdk_pixbuf_format_is_writable
gdk_pixbuf_from_pixdata
gdk_pixbuf_get_bits_per_sample
gdk_pixbuf_get_colorspace
gdk_pixbuf_get_formats
gdk_pixbuf_get_has_alpha
gdk_pixbuf_get_height
gdk_pixbuf_get_n_channels
@@ -38,10 +44,12 @@ EXPORTS
gdk_pixbuf_get_width
gdk_pixbuf_loader_close
gdk_pixbuf_loader_get_animation
gdk_pixbuf_loader_get_format
gdk_pixbuf_loader_get_pixbuf
gdk_pixbuf_loader_get_type
gdk_pixbuf_loader_new
gdk_pixbuf_loader_new_with_type
gdk_pixbuf_loader_set_size
gdk_pixbuf_loader_write
gdk_pixbuf_new
gdk_pixbuf_new_from_data
-130
View File
@@ -1,130 +0,0 @@
####
#### Out of order! Use autoconfiscation.
####
## Makefile for building the gdk_pixbuf DLL with gcc on Win32
## Use: make -f makefile.mingw
TOP = ../..
include ../build/win32/make.mingw
# Possibly override GTK+ version from build/win32/module.defs
GDK_PIXBUF_VER = @GDK_PIXBUF_MAJOR@.@GDK_PIXBUF_MINOR@
OPTIMIZE = -g
INCLUDES = -I . -I ..
DEPCFLAGS = $(GLIB_CFLAGS) $(INTL_CFLAGS)
all : \
../config.h \
gdk_pixbuf-$(GDK_PIXBUF_VER).dll \
pixbufloader-bmp.dll \
pixbufloader-gif.dll \
pixbufloader-ico.dll \
pixbufloader-jpeg.dll \
pixbufloader-png.dll \
pixbufloader-pnm.dll \
pixbufloader-ras.dll \
pixbufloader-tiff.dll \
pixbufloader-wbmp.dll \
pixbufloader-xpm.dll \
make-inline-pixbuf.exe \
test-gdk-pixbuf.exe
gdk_pixbuf_OBJECTS = \
gdk-pixbuf.o \
gdk-pixbuf-animation.o \
gdk-pixbuf-data.o \
gdk-pixbuf-io.o \
gdk-pixbuf-scale.o \
gdk-pixbuf-util.o \
pixops/libpixops.a
../config.h : ../config.h.win32
cp $< $@
gdk_pixbuf-$(GDK_PIXBUF_VER).dll : $(gdk_pixbuf_OBJECTS) gdk_pixbuf.def
$(GLIB)/build-dll gdk_pixbuf $(GDK_PIXBUF_VER) gdk_pixbuf.def $(gdk_pixbuf_OBJECTS) -L ../gdk -lgdk-$(GTK_VER) $(GLIB_LIBS) $(INTL_LIBS)
gdk-pixbuf.o:: gdk-pixbuf-marshal.c
gdk-pixbuf-marshal.c :
$(GLIB_GENMARSHAL) --prefix=gdk_pixbuf_marshal gdk-pixbuf-marshal.list --header >$@
pixops/libpixops.a :
cd pixops && $(MAKE) -f makefile.mingw libpixops.a
pixbufloader_bmp_OBJECTS = io-bmp.o
pixbufloader-bmp.dll : $(pixbufloader_bmp_OBJECTS) pixbufloader_bmp.def
$(GLIB)/build-dll pixbufloader-bmp - pixbufloader_bmp.def $(pixbufloader_bmp_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(INTL_LIBS)
pixbufloader_gif_OBJECTS = io-gif.o
pixbufloader-gif.dll : $(pixbufloader_gif_OBJECTS) pixbufloader_gif.def
$(GLIB)/build-dll pixbufloader-gif - pixbufloader_gif.def $(pixbufloader_gif_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(INTL_LIBS)
pixbufloader_ico_OBJECTS = io-ico.o
pixbufloader-ico.dll : $(pixbufloader_ico_OBJECTS) pixbufloader_ico.def
$(GLIB)/build-dll pixbufloader-ico - pixbufloader_ico.def $(pixbufloader_ico_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(INTL_LIBS)
pixbufloader_jpeg_OBJECTS = io-jpeg.o
io-jpeg.o : io-jpeg.c
$(CC) $(CFLAGS) $(JPEG_CFLAGS) -c $<
pixbufloader-jpeg.dll : $(pixbufloader_jpeg_OBJECTS) pixbufloader_jpeg.def
$(GLIB)/build-dll pixbufloader-jpeg - pixbufloader_jpeg.def $(pixbufloader_jpeg_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(JPEG_LIBS) $(INTL_LIBS)
pixbufloader_png_OBJECTS = io-png.o
io-png.o : io-png.c
$(CC) $(CFLAGS) $(PNG_CFLAGS) -c $<
pixbufloader-png.dll : $(pixbufloader_png_OBJECTS) pixbufloader_png.def
$(GLIB)/build-dll pixbufloader-png - pixbufloader_png.def $(pixbufloader_png_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(PNG_LIBS) $(INTL_LIBS)
pixbufloader_pnm_OBJECTS = io-pnm.o
pixbufloader-pnm.dll : $(pixbufloader_pnm_OBJECTS) pixbufloader_pnm.def
$(GLIB)/build-dll pixbufloader-pnm - pixbufloader_pnm.def $(pixbufloader_pnm_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(INTL_LIBS)
pixbufloader_ras_OBJECTS = io-ras.o
pixbufloader-ras.dll : $(pixbufloader_ras_OBJECTS) pixbufloader_ras.def
$(GLIB)/build-dll pixbufloader-ras - pixbufloader_ras.def $(pixbufloader_ras_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(INTL_LIBS)
pixbufloader_tiff_OBJECTS = io-tiff.o
pixbufloader-tiff.dll : $(pixbufloader_tiff_OBJECTS) pixbufloader_tiff.def
$(GLIB)/build-dll pixbufloader-tiff - pixbufloader_tiff.def $(pixbufloader_tiff_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(TIFF_LIBS) $(JPEG_LIBS) $(ZLIB_LIBS) $(INTL_LIBS)
io-tiff.o : io-tiff.c
$(CC) $(CFLAGS) $(TIFF_CFLAGS) -c $<
pixbufloader_wbmp_OBJECTS = io-wbmp.o
pixbufloader-wbmp.dll : $(pixbufloader_wbmp_OBJECTS) pixbufloader_wbmp.def
$(GLIB)/build-dll pixbufloader-wbmp - pixbufloader_wbmp.def $(pixbufloader_wbmp_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(INTL_LIBS)
pixbufloader_xpm_OBJECTS = io-xpm.o
pixbufloader-xpm.dll : $(pixbufloader_xpm_OBJECTS) pixbufloader_xpm.def
$(GLIB)/build-dll pixbufloader-xpm - pixbufloader_xpm.def $(pixbufloader_xpm_OBJECTS) -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS) $(INTL_LIBS)
make-inline-pixbuf.exe : make-inline-pixbuf.o gdk_pixbuf-$(GDK_PIXBUF_VER).dll
$(CC) $(CFLAGS) -o $@ make-inline-pixbuf.o -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GLIB_LIBS)
test-gdk-pixbuf.exe : test-gdk-pixbuf.o gdk_pixbuf-$(GDK_PIXBUF_VER).dll
$(CC) $(CFLAGS) -o $@ test-gdk-pixbuf.o -L . -lgdk_pixbuf-$(GDK_PIXBUF_VER) $(GTK_LIBS) $(GLIB_LIBS)
ifeq ($(wildcard makefile.mingw.in),makefile.mingw.in)
# Hack to get an updated makefile.mingw automatically after updating
# makefile.mingw.in. Only for developer use.
makefile.mingw: makefile.mingw.in
sed -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \
-e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,' <$< >$@
endif
-2
View File
@@ -29,6 +29,4 @@ libpixops_la_SOURCES = \
EXTRA_DIST = \
DETAILS \
makefile.mingw \
makefile.mingw.in \
makefile.msc
-40
View File
@@ -1,40 +0,0 @@
## Makefile for building libpixops.a with gcc on Win32
## Use: make -f makefile.mingw
TOP = ../../..
include $(TOP)/build/win32/make.mingw
# Possibly override GTK+ version from build/win32/module.defs
GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
OPTIMIZE = -g
INCLUDES = -I .. -I ../..
DEPCFLAGS = $(GLIB_CFLAGS) $(PNG_CFLAGS) $(ZLIB_CFLAGS) $(JPEG_CLFAGS) $(TIFF_CFLAGS)
all : \
../../config.h \
libpixops.a \
timescale.exe
libpixops_OBJECTS = \
pixops.o \
have_mmx.o \
scale_line_22_33_mmx.o \
composite_line_22_4a4_mmx.o \
composite_line_color_22_4a4_mmx.o
../../config.h : ../../config.h.win32
cp $< $@
libpixops.a : $(libpixops_OBJECTS)
ar rv $@ $?
timescale.exe : timescale.o libpixops.a
$(CC) $(CFLAGS) -o $@ timescale.o libpixops.a $(GLIB_LIBS)
makefile.mingw: makefile.mingw.in
sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
-e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' <$< >$@
+13
View File
@@ -78,6 +78,19 @@ query_module (const char *dir, const char *file)
g_module_symbol (module, "fill_info", (gpointer *) &fill_info) &&
g_module_symbol (module, "fill_vtable", (gpointer *) &fill_vtable)) {
GdkPixbufFormat *info;
#ifdef G_OS_WIN32
/* Replace backslashes in path with forward slashes, so that
* it reads in without problems.
*/
{
char *p = path;
while (*p) {
if (*p == '\\')
*p = '/';
p++;
}
}
#endif
g_printf("\"%s\"\n", path);
info = g_new0 (GdkPixbufFormat, 1);
(*fill_info) (info);
+1 -2
View File
@@ -7,8 +7,6 @@ EXTRA_DIST = \
gdkconfig.h.win32 \
gdk.def \
gdkmarshalers.list \
makefile.mingw \
makefile.mingw.in \
makeenums.pl \
makefile.msc
@@ -181,6 +179,7 @@ libgdk_linux_fb_2_0_la_LIBADD = linux-fb/libgdk-linux-fb.la @GDK_DEP_LIBS@
libgdk_win32_2_0_la_LIBADD = \
win32/libgdk-win32.la $(wintab_lib) $(ie55uuid_lib) \
@GDK_DEP_LIBS@
libgdk_win32_2_0_la_DEPENDENCIES = gdk.def
lib_LTLIBRARIES = $(gdktargetlib)
+15 -2
View File
@@ -59,11 +59,13 @@ EXPORTS
gdk_devices_list
gdk_display_add_client_message_filter
gdk_display_beep
gdk_display_close
gdk_display_get_core_pointer
gdk_display_get_default
gdk_display_get_default_screen
gdk_display_get_name
gdk_display_get_event
gdk_display_get_n_screens
gdk_display_get_name
gdk_display_get_pointer
gdk_display_get_screen
gdk_display_get_type
@@ -71,11 +73,17 @@ EXPORTS
gdk_display_keyboard_ungrab
gdk_display_list_devices
gdk_display_manager_get
gdk_display_manager_get_default_display
gdk_display_manager_list_displays
gdk_display_manager_set_default_display
gdk_display_open
gdk_display_open_default_libgtk_only
gdk_display_peek_event
gdk_display_pointer_is_grabbed
gdk_display_pointer_ungrab
gdk_display_put_event
gdk_display_set_double_click_time
gdk_display_set_pointer_hooks
gdk_display_sync
gdk_drag_abort
gdk_drag_action_get_type
@@ -156,6 +164,7 @@ EXPORTS
gdk_event_send_client_message
gdk_event_send_client_message_for_display
gdk_event_send_clientmessage_toall
gdk_event_set_screen
gdk_event_type_get_type
gdk_events_pending
gdk_exit
@@ -287,6 +296,9 @@ EXPORTS
gdk_pixmap_create_from_xpm_d
gdk_pixmap_foreign_new
gdk_pixmap_get_type
gdk_pixmap_foreign_new_for_display
gdk_pixmap_lookup
gdk_pixmap_lookup_for_display
gdk_pixmap_new
gdk_pointer_grab
gdk_pointer_grab_info_libgtk_only
@@ -350,6 +362,8 @@ EXPORTS
gdk_screen_get_root_window
gdk_screen_get_setting
gdk_screen_get_system_colormap
gdk_screen_get_system_visual
gdk_screen_get_toplevel_windows
gdk_screen_get_type
gdk_screen_get_width
gdk_screen_height
@@ -521,4 +535,3 @@ EXPORTS
gdk_window_withdraw
gdk_wm_decoration_get_type
gdk_wm_function_get_type
+1
View File
@@ -26,6 +26,7 @@
#include <glib/gprintf.h>
#include <stdlib.h>
#include <string.h>
#include "gdkkeysyms.h"
#include "gdkinternals.h"
+27
View File
@@ -1,4 +1,7 @@
#include <locale.h>
#include "gdk.h"
#include "gdkkeysyms.h"
/* Thanks to Markus G. Kuhn <mkuhn@acm.org> for the ksysym<->Unicode
* mapping functions, from the xterm sources.
@@ -823,6 +826,25 @@ static struct {
/* End numeric keypad */
};
static gunichar
get_decimal_char (void)
{
struct lconv *locale_data;
gunichar result = '.';
gchar *utf8;
locale_data = localeconv ();
utf8 = g_locale_to_utf8 (locale_data->decimal_point, -1, NULL, NULL, NULL);
if (utf8)
{
if (g_utf8_strlen (utf8, -1) == 1)
result = g_utf8_get_char (utf8);
g_free (utf8);
}
return result;
}
/**
* gdk_keyval_to_unicode:
* @keyval: a GDK key symbol
@@ -850,6 +872,11 @@ gdk_keyval_to_unicode (guint keyval)
if ((keyval & 0xff000000) == 0x01000000)
return keyval & 0x00ffffff;
/* Translation of KP_Decimal depends on locale.
*/
if (keyval == GDK_KP_Decimal)
return get_decimal_char ();
/* binary search in table */
while (max >= min) {
mid = (min + max) / 2;
-16
View File
@@ -277,22 +277,6 @@ gdk_rgb_try_colormap (GdkRgbInfo *image_info, gboolean force,
}
#endif
if (colors_needed &&
image_info->visual->type != GDK_VISUAL_STATIC_COLOR)
{
if (!gdk_colors_alloc (cmap, 0, NULL, 0, junk, colors_needed))
{
char tmp_str[80];
g_snprintf (tmp_str, 80,
"%d %d %d colormap failed (in gdk_colors_alloc)\n",
nr, ng, nb);
return gdk_rgb_cmap_fail (tmp_str, cmap, pixels);
}
gdk_colors_free (cmap, junk, colors_needed, 0);
}
for (r = 0, i = 0; r < nr; r++)
for (g = 0; g < ng; g++)
for (b = 0; b < nb; b++, i++)
-82
View File
@@ -1,82 +0,0 @@
####
#### Out of order! Use autoconfiscation.
####
## Makefile for building the GDK DLL with gcc on Win32
## Use: make -f makefile.mingw
## There is no install target, you have to decide where and
## how to install for yourself.
TOP = ../..
include ../build/win32/make.mingw
# Possibly override versions from build/win32/module.defs
GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
GDK_PIXBUF_VER = @GDK_PIXBUF_MAJOR@.@GDK_PIXBUF_MINOR@
GDK_PIXBUF_LIBS = -L ../gdk-pixbuf -lgdk_pixbuf-$(GDK_PIXBUF_VER)
OPTIMIZE = -g
INCLUDES = -I . -I .. -I ../gdk-pixbuf
DEPCFLAGS = $(GLIB_CFLAGS) $(PANGO_CFLAGS)
DEFINES = -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\" -DGDK_COMPILATION
all: \
../config.h \
gdkconfig.h \
win32/libgdk-win32.a \
win32/gdk-win32res.o \
gdk-win32-$(GTK_VER).dll
gdk_OBJECTS = \
gdk.o \
gdkcolor.o \
gdkcursor.o \
gdkdraw.o \
gdkevents.o \
gdkfont.o \
gdkgc.o \
gdkglobals.o \
gdkimage.o \
gdkkeys.o \
gdkkeyuni.o \
gdkpango.o \
gdkpixbuf-drawable.o \
gdkpixbuf-render.o \
gdkpixmap.o \
gdkpolyreg-generic.o \
gdkrgb.o \
gdkrectangle.o \
gdkregion-generic.o \
gdkwindow.o
../config.h : ../config.h.win32
cp $< $@
gdkconfig.h : gdkconfig.h.win32
cp $< $@
win32/libgdk-win32.a : FRC
cd win32 && $(MAKE) -f makefile.mingw libgdk-win32.a
win32/gdk-win32res.o : FRC
cd win32 && $(MAKE) -f makefile.mingw gdk-win32res.o
gdk-win32-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def win32/libgdk-win32.a win32/gdk-win32res.o win32/libwntab32x.a
$(GLIB)/build-dll gdk-win32 $(GTK_VER) gdk.def $(gdk_OBJECTS) win32/libgdk-win32.a win32/libwntab32x.a $(GDK_PIXBUF_LIBS) $(GLIB_LIBS) $(PANGOWIN32_LIBS) -lgdi32 -luser32 -limm32 -lshell32 -lole32 -luuid $(LDFLAGS) win32/gdk-win32res.o
win32/libwntab32x.a : FRC
cd win32 && $(MAKE) -f makefile.mingw libwntab32x.a
# Hack to get an updated makefile.mingw automatically after updating
# makefile.mingw.in. Only for developer use.
makefile.mingw: makefile.mingw.in
sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
-e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' \
-e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \
-e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,' <$< >$@
.PHONY: FRC
-1
View File
@@ -40,7 +40,6 @@ SUBDIRS=rc
EXTRA_DIST = \
bdfcursor.c \
makefile.mingw \
makefile.msc \
libie55uuid.la \
libwntab32x.la
+13 -8
View File
@@ -36,8 +36,16 @@
/* Do use SetCapture, it works now. Thanks to jpe@archaeopteryx.com */
#define USE_SETCAPTURE 1
#include "config.h"
#include <glib/gprintf.h>
#if defined (__GNUC__) && defined (HAVE_DIMM_H)
/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
# define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
# define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
#endif
#include "gdk.h"
#include "gdkprivate-win32.h"
#include "gdkinput-win32.h"
@@ -50,12 +58,6 @@
#include <objbase.h>
#if defined (__GNUC__) && defined (HAVE_DIMM_H)
/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
# define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
# define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
#endif
#include <imm.h>
#if defined (__GNUC__) && defined (HAVE_DIMM_H)
@@ -2996,6 +2998,9 @@ gdk_event_translate (GdkDisplay *display,
#endif
)
{
GdkWindowState withdrawn_bit =
IsWindowVisible (msg->hwnd) ? GDK_WINDOW_STATE_WITHDRAWN : 0;
if (!(private->event_mask & GDK_STRUCTURE_MASK))
break;
@@ -3017,12 +3022,12 @@ gdk_event_translate (GdkDisplay *display,
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
GDK_WINDOW_STATE_MAXIMIZED |
GDK_WINDOW_STATE_WITHDRAWN,
withdrawn_bit,
0);
else if (msg->wParam == SIZE_MAXIMIZED)
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
GDK_WINDOW_STATE_WITHDRAWN,
withdrawn_bit,
GDK_WINDOW_STATE_MAXIMIZED);
if (private->resize_count > 1)
+27
View File
@@ -30,6 +30,8 @@
#include <string.h>
#include "gdkpixmap.h"
#include "gdkdisplay.h"
#include "gdkprivate-win32.h"
static void gdk_pixmap_impl_win32_get_size (GdkDrawable *drawable,
@@ -440,6 +442,16 @@ gdk_pixmap_create_from_data (GdkDrawable *drawable,
return result;
}
GdkPixmap *
gdk_pixmap_foreign_new_for_display (GdkDisplay *display,
GdkNativeWindow anid)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
g_return_val_if_fail (display == _gdk_display, NULL);
return gdk_pixmap_foreign_new (anid);
}
GdkPixmap*
gdk_pixmap_foreign_new (GdkNativeWindow anid)
{
@@ -479,3 +491,18 @@ gdk_pixmap_foreign_new (GdkNativeWindow anid)
return pixmap;
}
GdkPixmap*
gdk_pixmap_lookup (GdkNativeWindow anid)
{
return (GdkPixmap*) gdk_win32_handle_table_lookup (anid);
}
GdkPixmap*
gdk_pixmap_lookup_for_display (GdkDisplay *display, GdkNativeWindow anid)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
g_return_val_if_fail (display == _gdk_display, NULL);
return gdk_pixmap_lookup (anid);
}
+39 -6
View File
@@ -867,11 +867,17 @@ show_window_internal (GdkWindow *window,
ShowWindow (GDK_WINDOW_HWND (window), SW_MAXIMIZE);
else if (private->state & GDK_WINDOW_STATE_ICONIFIED)
ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
else if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP)
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNOACTIVATE);
else
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNORMAL);
if (raise)
BringWindowToTop (GDK_WINDOW_HWND (window));
if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP)
SetWindowPos (GDK_WINDOW_HWND (window), HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
else
BringWindowToTop (GDK_WINDOW_HWND (window));
else if (old_active_window != GDK_WINDOW_HWND (window))
SetActiveWindow (old_active_window);
}
@@ -959,6 +965,9 @@ gdk_window_move (GdkWindow *window,
g_return_if_fail (window != NULL);
g_return_if_fail (GDK_IS_WINDOW (window));
GDK_NOTE (MISC, g_print ("gdk_window_move: %p +%d+%d\n",
GDK_WINDOW_HWND (window), x, y));
impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
if (!GDK_WINDOW_DESTROYED (window))
@@ -1001,6 +1010,9 @@ gdk_window_resize (GdkWindow *window,
if (height < 1)
height = 1;
GDK_NOTE (MISC, g_print ("gdk_window_resize: %p %dx%d\n",
GDK_WINDOW_HWND (window), width, height));
impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
if (!GDK_WINDOW_DESTROYED (window))
@@ -2559,7 +2571,22 @@ void
gdk_window_set_skip_taskbar_hint (GdkWindow *window,
gboolean skips_taskbar)
{
LONG extended_style;
g_return_if_fail (GDK_IS_WINDOW (window));
GDK_NOTE (MISC, g_print ("gdk_window_set_skip_taskbar_hint: %p %s\n",
GDK_WINDOW_HWND (window),
skips_taskbar ? "TRUE" : "FALSE"));
extended_style = GetWindowLong (GDK_WINDOW_HWND (window), GWL_EXSTYLE);
if (skips_taskbar)
extended_style |= WS_EX_TOOLWINDOW;
else
extended_style &= ~WS_EX_TOOLWINDOW;
SetWindowLong (GDK_WINDOW_HWND (window), GWL_EXSTYLE, extended_style);
}
void
@@ -2579,6 +2606,8 @@ gdk_window_set_type_hint (GdkWindow *window,
if (GDK_WINDOW_DESTROYED (window))
return;
GDK_NOTE (MISC, g_print ("gdk_window_set_type_hint: %p %d\n",
GDK_WINDOW_HWND (window), hint));
switch (hint)
{
case GDK_WINDOW_TYPE_HINT_DIALOG:
@@ -2591,6 +2620,15 @@ gdk_window_set_type_hint (GdkWindow *window,
GDK_DECOR_MAXIMIZE);
break;
case GDK_WINDOW_TYPE_HINT_TOOLBAR:
gdk_window_set_skip_taskbar_hint (window, TRUE);
break;
case GDK_WINDOW_TYPE_HINT_UTILITY:
break;
case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN:
break;
case GDK_WINDOW_TYPE_HINT_DOCK:
break;
case GDK_WINDOW_TYPE_HINT_DESKTOP:
break;
default:
g_warning ("Unknown hint %d passed to gdk_window_set_type_hint", hint);
@@ -2598,11 +2636,6 @@ gdk_window_set_type_hint (GdkWindow *window,
case GDK_WINDOW_TYPE_HINT_NORMAL:
break;
}
/*
* XXX ???
*/
GDK_NOTE (MISC, g_print ("gdk_window_set_type_hint: %p\n",
GDK_WINDOW_HWND (window)));
}
void
-88
View File
@@ -1,88 +0,0 @@
## Makefile for building the Win32 dependent GDK objects with gcc on Win32
## Use: make -f makefile.mingw
TOP = ../../..
# Location of the Wintab toolkit. Downloadable from
# http://www.pointing.com. We use the wntab32x.lib archive library
# directly (copying it to libwntab32x.a).
WTKIT = $(TOP)/wtkit126
include ../../build/win32/make.mingw
# Possibly override GTK+ version from build/win32/module.defs
GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
OPTIMIZE = -g -Wall
INCLUDES = -I ../.. -I .. -I $(WTKIT)/include
DEPCFLAGS = $(GLIB_CFLAGS) $(PANGO_CFLAGS)
DEFINES = -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\" -DGDK_COMPILATION
all: \
../../config.h \
../gdkconfig.h \
libgdk-win32.a \
libwntab32x.a
gdk_win32_OBJECTS = \
gdkcolor-win32.o \
gdkcursor-win32.o \
gdkdnd-win32.o \
gdkdrawable-win32.o \
gdkevents-win32.o \
gdkfont-win32.o \
gdkgc-win32.o \
gdkgeometry-win32.o \
gdkglobals-win32.o \
gdkim-win32.o \
gdkimage-win32.o \
gdkinput.o \
gdkinput-win32.o \
gdkkeys-win32.o \
gdkmain-win32.o \
gdkpango-win32.o \
gdkpixmap-win32.o \
gdkproperty-win32.o \
gdkselection-win32.o \
gdkvisual-win32.o \
gdkwin32id.o \
gdkwindow-win32.o
../../config.h : ../../config.h.win32
cp $< $@
../gdkconfig.h : ../gdkconfig.h.win32
cp $< $@
gdk-win32res.o : rc/gdk.rc gdk-build.tmp
m4 -DBUILDNUMBER=`cat gdk-build.tmp` <rc/gdk.rc >gdk-win32res.rc
windres --include-dir rc gdk-win32res.rc gdk-win32res.o
rm gdk-build.tmp gdk-win32res.rc
# The *.stamp files aren't distributed. Thus, this takes care of only
# tml building libraries with nonzero build number.
ifeq ($(wildcard gdk-build.stamp),gdk-build.stamp)
# Magic to bump the build number
gdk-build.tmp :
bash -c "read number && echo $$[number+1]" <gdk-build.stamp >gdk-build.tmp
cp gdk-build.tmp gdk-build.stamp
else
# Use zero as build number.
gdk-build.tmp :
echo 0 >gdk-build.tmp
endif
libgdk-win32.a : $(gdk_win32_OBJECTS)
-rm -f $@
$(AR) rv $@ $(gdk_win32_OBJECTS)
libwntab32x.a : $(WTKIT)/lib/i386/wntab32x.lib
cp $< $@
# Hack to get an updated makefile.mingw automatically after updating
# makefile.mingw.in. Only for developer use.
makefile.mingw: makefile.mingw.in
sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
-e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' <$< >$@
+11 -1
View File
@@ -7,5 +7,15 @@ if USE_WIN32
noinst_DATA = gdk-win32res.lo
endif
gdk-win32res.lo : gdk.rc gtk.ico
noinst_PROGRAMS = foo
# Compile a dummy object file into the foo.lo libtool object so that
# the ugly hack in lt-compile-resource knows what kind of libtool
# object to produce. (It checks whether there are any .libs/*.o
# files.)
gdk-win32res.lo : gdk.rc gtk.ico foo.lo
$(top_srcdir)/build/win32/lt-compile-resource gdk.rc gdk-win32res.lo
foo.c:
echo 'int main (int argc, char **argv) { return 0; }' >foo.c
+2
View File
@@ -23,6 +23,8 @@
#include <config.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <glib.h>
+1
View File
@@ -610,6 +610,7 @@ translate_key_event (GdkDisplay *display,
event->key.length, buf);
}
#endif /* G_ENABLE_DEBUG */
return;
}
/* Return the window this has to do with, if any, rather
+3
View File
@@ -21,6 +21,9 @@
* Boston, MA 02111-1307, USA.
*/
#include <stdlib.h>
#include <string.h>
#include <config.h>
#include <glib.h>
#include "gdkscreen.h"
+15 -9
View File
@@ -10,9 +10,9 @@ rm $ZIP
zip -r $ZIP -@ <<EOF
COPYING.LIB-2
etc/gtk-2.0
lib/libgdk_pixbuf-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
lib/libgdk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
lib/libgtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
lib/libgdk_pixbuf-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
lib/libgdk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
lib/libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
EOF
zip $ZIP lib/gtk-2.0/@GTK_BINARY_VERSION@/loaders/*.dll lib/gtk-2.0/@GTK_BINARY_VERSION@/immodules/*.dll
@@ -24,12 +24,17 @@ zip -r $ZIP lib/locale/*/LC_MESSAGES/gtk20.mo
rm $DEVZIP
zip -r $DEVZIP -@ <<EOF
include/gtk-2.0
lib/libgdk_pixbuf-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.dll.a
lib/gdk_pixbuf-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.lib
lib/libgdk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.dll.a
lib/gdk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.lib
lib/libgtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.dll.a
lib/gtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.lib
bin/gdk-pixbuf-csource.exe
bin/gdk-pixbuf-query-loaders.exe
bin/gtk-query-immodules-2.0.exe
bin/gtk-demo.exe
man/man1/gdk-pixbuf-csource.1
lib/libgdk_pixbuf-@GTK_API_VERSION@.dll.a
lib/gdk_pixbuf-@GTK_API_VERSION@.lib
lib/libgdk-win32-@GTK_API_VERSION@.dll.a
lib/gdk-win32-@GTK_API_VERSION@.lib
lib/libgtk-win32-@GTK_API_VERSION@.dll.a
lib/gtk-win32-@GTK_API_VERSION@.lib
lib/gtk-2.0/include
lib/pkgconfig/gdk-pixbuf-2.0.pc
lib/pkgconfig/gdk-2.0.pc
@@ -37,5 +42,6 @@ lib/pkgconfig/gdk-win32-2.0.pc
lib/pkgconfig/gtk+-2.0.pc
lib/pkgconfig/gtk+-win32-2.0.pc
share/aclocal/gtk-2.0.m4
share/gtk-2.0
EOF
-2
View File
@@ -619,8 +619,6 @@ EXTRA_DIST += @STRIP_BEGIN@ \
gtkrc.default \
gtkrc.key.default \
gtkrc.key.emacs \
makefile.mingw \
makefile.mingw.in \
makefile.msc \
makefile.msc.in \
@STRIP_END@
+3 -4
View File
@@ -46,9 +46,8 @@ get_char (const char **str)
gunichar c = g_utf8_get_char (*str);
*str = g_utf8_next_char (*str);
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
if (c <= 0xff)
c = g_ascii_tolower (c);
#ifdef G_PLATFORM_WIN32
c = g_unichar_tolower (c);
#endif
return c;
@@ -256,7 +255,7 @@ _gtk_fnmatch (const char *pattern,
return gtk_fnmatch_intern (pattern, string, TRUE);
}
#define FNMATCH_TEST_CASES
#undef FNMATCH_TEST_CASES
#ifdef FNMATCH_TEST_CASES
#define TEST(pat, str, result) \
+57 -11
View File
@@ -170,6 +170,8 @@ EXPORTS
gtk_check_version
gtk_clipboard_clear
gtk_clipboard_get
gtk_clipboard_get_display
gtk_clipboard_get_for_display
gtk_clipboard_get_owner
gtk_clipboard_request_contents
gtk_clipboard_request_text
@@ -269,6 +271,7 @@ EXPORTS
gtk_color_selection_palette_from_string
gtk_color_selection_palette_to_string
gtk_color_selection_set_change_palette_hook
gtk_color_selection_set_change_palette_with_screen_hook
gtk_color_selection_set_color
gtk_color_selection_set_current_alpha
gtk_color_selection_set_current_color
@@ -626,6 +629,7 @@ EXPORTS
gtk_icon_size_get_name
gtk_icon_size_get_type
gtk_icon_size_lookup
gtk_icon_size_lookup_for_settings
gtk_icon_size_register
gtk_icon_size_register_alias
gtk_icon_source_copy
@@ -716,8 +720,11 @@ EXPORTS
gtk_input_dialog_new
gtk_input_remove
gtk_interface_age
gtk_invisible_get_screen
gtk_invisible_get_type
gtk_invisible_new
gtk_invisible_new_for_screen
gtk_invisible_set_screen
gtk_item_deselect
gtk_item_factories_path_delete
gtk_item_factory_add_foreign
@@ -823,14 +830,19 @@ EXPORTS
gtk_list_store_insert
gtk_list_store_insert_after
gtk_list_store_insert_before
gtk_list_store_iter_is_valid
gtk_list_store_move_after
gtk_list_store_move_before
gtk_list_store_new
gtk_list_store_newv
gtk_list_store_prepend
gtk_list_store_remove
gtk_list_store_reorder
gtk_list_store_set
gtk_list_store_set_column_types
gtk_list_store_set_valist
gtk_list_store_set_value
gtk_list_store_swap
gtk_list_toggle_add_mode
gtk_list_toggle_focus_row
gtk_list_toggle_row
@@ -916,6 +928,7 @@ EXPORTS
gtk_menu_shell_get_type
gtk_menu_shell_insert
gtk_menu_shell_prepend
gtk_menu_shell_select_first
gtk_menu_shell_select_item
gtk_message_dialog_get_type
gtk_message_dialog_new
@@ -934,6 +947,7 @@ EXPORTS
gtk_notebook_get_current_page
gtk_notebook_get_menu_label
gtk_notebook_get_menu_label_text
gtk_notebook_get_n_pages
gtk_notebook_get_nth_page
gtk_notebook_get_scrollable
gtk_notebook_get_show_border
@@ -1042,10 +1056,6 @@ EXPORTS
gtk_pixmap_new
gtk_pixmap_set
gtk_pixmap_set_build_insensitive
; gtk_plug_construct
; gtk_plug_get_id
; gtk_plug_get_type
; gtk_plug_new
gtk_policy_type_get_type
gtk_position_type_get_type
gtk_preview_draw_row
@@ -1216,12 +1226,14 @@ EXPORTS
gtk_selection_data_targets_include_text
gtk_selection_mode_get_type
gtk_selection_owner_set
gtk_selection_owner_set_for_display
gtk_selection_remove_all
gtk_separator_get_type
gtk_separator_menu_item_get_type
gtk_separator_menu_item_new
gtk_set_locale
gtk_settings_get_default
gtk_settings_get_for_screen
gtk_settings_get_type
gtk_settings_install_property
gtk_settings_install_property_parser
@@ -1250,11 +1262,6 @@ EXPORTS
gtk_size_group_new
gtk_size_group_remove_widget
gtk_size_group_set_mode
; gtk_socket_add_id
; gtk_socket_get_id
; gtk_socket_get_type
; gtk_socket_new
; gtk_socket_steal
gtk_sort_type_get_type
gtk_spin_button_configure
gtk_spin_button_get_adjustment
@@ -1715,6 +1722,7 @@ EXPORTS
gtk_tree_model_get_iter_from_string
gtk_tree_model_get_n_columns
gtk_tree_model_get_path
gtk_tree_model_get_string_from_iter
gtk_tree_model_get_type
gtk_tree_model_get_valist
gtk_tree_model_get_value
@@ -1737,6 +1745,7 @@ EXPORTS
gtk_tree_model_sort_convert_path_to_child_path
gtk_tree_model_sort_get_model
gtk_tree_model_sort_get_type
gtk_tree_model_sort_iter_is_valid
gtk_tree_model_sort_new_with_model
gtk_tree_model_sort_reset_default_sort_func
gtk_tree_model_unref_node
@@ -1753,6 +1762,7 @@ EXPORTS
gtk_tree_path_is_descendant
gtk_tree_path_new
gtk_tree_path_new_first
gtk_tree_path_new_from_indices
gtk_tree_path_new_from_string
gtk_tree_path_next
gtk_tree_path_prepend_index
@@ -1762,6 +1772,7 @@ EXPORTS
gtk_tree_prepend
gtk_tree_remove_item
gtk_tree_remove_items
gtk_tree_row_reference_copy
gtk_tree_row_reference_deleted
gtk_tree_row_reference_free
gtk_tree_row_reference_get_path
@@ -1772,8 +1783,10 @@ EXPORTS
gtk_tree_row_reference_valid
gtk_tree_select_child
gtk_tree_select_item
gtk_tree_selection_count_selected_rows
gtk_tree_selection_get_mode
gtk_tree_selection_get_selected
gtk_tree_selection_get_selected_rows
gtk_tree_selection_get_tree_view
gtk_tree_selection_get_type
gtk_tree_selection_get_user_data
@@ -1789,6 +1802,7 @@ EXPORTS
gtk_tree_selection_unselect_all
gtk_tree_selection_unselect_iter
gtk_tree_selection_unselect_path
gtk_tree_selection_unselect_range
gtk_tree_set_row_drag_data
gtk_tree_set_selection_mode
gtk_tree_set_view_lines
@@ -1808,14 +1822,19 @@ EXPORTS
gtk_tree_store_insert_before
gtk_tree_store_is_ancestor
gtk_tree_store_iter_depth
gtk_tree_store_iter_is_valid
gtk_tree_store_move_after
gtk_tree_store_move_before
gtk_tree_store_new
gtk_tree_store_newv
gtk_tree_store_prepend
gtk_tree_store_remove
gtk_tree_store_reorder
gtk_tree_store_set
gtk_tree_store_set_column_types
gtk_tree_store_set_valist
gtk_tree_store_set_value
gtk_tree_store_swap
gtk_tree_unselect_child
gtk_tree_unselect_item
gtk_tree_view_append_column
@@ -1828,6 +1847,7 @@ EXPORTS
gtk_tree_view_column_clear
gtk_tree_view_column_clear_attributes
gtk_tree_view_column_clicked
gtk_tree_view_column_focus_cell
gtk_tree_view_column_get_alignment
gtk_tree_view_column_get_cell_renderers
gtk_tree_view_column_get_clickable
@@ -1875,6 +1895,7 @@ EXPORTS
gtk_tree_view_enable_model_drag_source
gtk_tree_view_expand_all
gtk_tree_view_expand_row
gtk_tree_view_expand_to_path
gtk_tree_view_get_background_area
gtk_tree_view_get_bin_window
gtk_tree_view_get_cell_area
@@ -1912,6 +1933,7 @@ EXPORTS
gtk_tree_view_scroll_to_point
gtk_tree_view_set_column_drag_function
gtk_tree_view_set_cursor
gtk_tree_view_set_cursor_on_cell
gtk_tree_view_set_destroy_count_func
gtk_tree_view_set_drag_dest_row
gtk_tree_view_set_enable_search
@@ -1972,8 +1994,10 @@ EXPORTS
gtk_widget_add_events
gtk_widget_child_focus
gtk_widget_child_notify
gtk_widget_class_find_style_property
gtk_widget_class_install_style_property
gtk_widget_class_install_style_property_parser
gtk_widget_class_list_style_properties
gtk_widget_class_path
gtk_widget_create_pango_context
gtk_widget_create_pango_layout
@@ -1988,14 +2012,15 @@ EXPORTS
gtk_widget_get_ancestor
gtk_widget_get_child_requisition
gtk_widget_get_child_visible
gtk_widget_get_clipboard
gtk_widget_get_colormap
gtk_widget_get_composite_name
gtk_widget_get_default_colormap
gtk_widget_get_default_direction
gtk_widget_get_default_style
gtk_widget_get_default_visual
gtk_widget_get_display
gtk_widget_get_direction
gtk_widget_get_display
gtk_widget_get_events
gtk_widget_get_extension_events
gtk_widget_get_modifier_style
@@ -2004,6 +2029,8 @@ EXPORTS
gtk_widget_get_parent
gtk_widget_get_parent_window
gtk_widget_get_pointer
gtk_widget_get_root_window
gtk_widget_get_screen
gtk_widget_get_settings
gtk_widget_get_size_request
gtk_widget_get_style
@@ -2012,6 +2039,7 @@ EXPORTS
gtk_widget_get_visual
gtk_widget_grab_default
gtk_widget_grab_focus
gtk_widget_has_screen
gtk_widget_help_type_get_type
gtk_widget_hide
gtk_widget_hide_all
@@ -2064,7 +2092,6 @@ EXPORTS
gtk_widget_set_parent
gtk_widget_set_parent_window
gtk_widget_set_redraw_on_allocate
gtk_widget_get_screen
gtk_widget_set_scroll_adjustments
gtk_widget_set_sensitive
gtk_widget_set_size_request
@@ -2095,6 +2122,7 @@ EXPORTS
gtk_window_begin_move_drag
gtk_window_begin_resize_drag
gtk_window_deiconify
gtk_window_fullscreen
gtk_window_get_decorated
gtk_window_get_default_icon_list
gtk_window_get_default_size
@@ -2112,6 +2140,7 @@ EXPORTS
gtk_window_get_role
gtk_window_get_screen
gtk_window_get_size
gtk_window_get_skip_pager_hint
gtk_window_get_title
gtk_window_get_transient_for
gtk_window_get_type
@@ -2134,8 +2163,10 @@ EXPORTS
gtk_window_remove_mnemonic
gtk_window_reshow_with_initial_size
gtk_window_resize
gtk_window_set_auto_startup_notification
gtk_window_set_decorated
gtk_window_set_default
gtk_window_set_default_icon_from_file
gtk_window_set_default_icon_list
gtk_window_set_default_size
gtk_window_set_destroy_with_parent
@@ -2145,6 +2176,7 @@ EXPORTS
gtk_window_set_gravity
gtk_window_set_has_frame
gtk_window_set_icon
gtk_window_set_icon_from_file
gtk_window_set_icon_list
gtk_window_set_mnemonic_modifier
gtk_window_set_modal
@@ -2153,12 +2185,26 @@ EXPORTS
gtk_window_set_resizable
gtk_window_set_role
gtk_window_set_screen
gtk_window_set_skip_pager_hint
gtk_window_set_skip_taskbar_hint
gtk_window_set_title
gtk_window_set_transient_for
gtk_window_set_type_hint
gtk_window_set_wmclass
gtk_window_stick
gtk_window_type_get_type
gtk_window_unfullscreen
gtk_window_unmaximize
gtk_window_unstick
gtk_wrap_mode_get_type
; gtk_plug_construct
; gtk_plug_construct_for_display
; gtk_plug_get_id
; gtk_plug_get_type
; gtk_plug_new
; gtk_plug_new_for_display
; gtk_socket_add_id
; gtk_socket_get_id
; gtk_socket_get_type
; gtk_socket_new
; gtk_socket_steal
+2 -1
View File
@@ -446,7 +446,8 @@ gtk_cell_renderer_pixbuf_render (GtkCellRenderer *cell,
pix_rect.width -= cell->xpad * 2;
pix_rect.height -= cell->ypad * 2;
if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect))
if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) &&
gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect))
gdk_draw_pixbuf (window,
widget->style->black_gc,
pixbuf,
+8 -9
View File
@@ -607,12 +607,11 @@ palette_paint (GtkWidget *drawing_area,
{
if (drawing_area->window == NULL)
return;
gdk_window_clear_area (drawing_area->window,
area->x,
area->y,
area->width,
area->height);
gdk_draw_rectangle (drawing_area->window,
drawing_area->style->bg_gc[GTK_STATE_NORMAL],
TRUE,
area->x, area->y, area->width, area->height);
if (GTK_WIDGET_HAS_FOCUS (drawing_area))
{
@@ -1375,9 +1374,9 @@ hex_changed (GtkWidget *hex_entry,
text = gtk_editable_get_chars (GTK_EDITABLE (priv->hex_entry), 0, -1);
if (gdk_color_parse (text, &color))
{
priv->color[COLORSEL_RED] = CLAMP (color.red/65280.0, 0.0, 1.0);
priv->color[COLORSEL_GREEN] = CLAMP (color.green/65280.0, 0.0, 1.0);
priv->color[COLORSEL_BLUE] = CLAMP (color.blue/65280.0, 0.0, 1.0);
priv->color[COLORSEL_RED] = CLAMP (color.red/65535.0, 0.0, 1.0);
priv->color[COLORSEL_GREEN] = CLAMP (color.green/65535.0, 0.0, 1.0);
priv->color[COLORSEL_BLUE] = CLAMP (color.blue/65535.0, 0.0, 1.0);
gtk_rgb_to_hsv (priv->color[COLORSEL_RED],
priv->color[COLORSEL_GREEN],
priv->color[COLORSEL_BLUE],
+86 -37
View File
@@ -42,15 +42,14 @@
#include <pwd.h>
#endif
#include <glib.h> /* Include early to get G_OS_WIN32 and
* G_WITH_CYGWIN */
#include <glib.h> /* Include early to get G_OS_WIN32 etc */
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#if defined(G_PLATFORM_WIN32)
#include <ctype.h>
#define STRICT
#include <windows.h>
#undef STRICT
#endif /* G_OS_WIN32 || G_WITH_CYGWIN */
#endif /* G_PLATFORM_WIN32 */
#ifdef G_OS_WIN32
#include <winsock.h> /* For gethostname */
#endif
@@ -62,6 +61,7 @@
#include "gtkfilesel.h"
#include "gtkhbox.h"
#include "gtkhbbox.h"
#include "gtkintl.h"
#include "gtklabel.h"
#include "gtkliststore.h"
#include "gtkmain.h"
@@ -76,7 +76,6 @@
#include "gtkoptionmenu.h"
#include "gtkdialog.h"
#include "gtkmessagedialog.h"
#include "gtkintl.h"
#include "gtkdnd.h"
#include "gtkeventbox.h"
@@ -150,9 +149,11 @@ typedef struct _PossibleCompletion PossibleCompletion;
*/
struct _CompletionDirSent
{
#ifndef G_PLATFORM_WIN32
ino_t inode;
time_t mtime;
dev_t device;
#endif
gint entry_count;
struct _CompletionDirEntry *entries;
@@ -315,7 +316,7 @@ static const gchar* cmpl_completion_fullname (const gchar*, CompletionSta
static CompletionDir* open_ref_dir (gchar* text_to_complete,
gchar** remaining_text,
CompletionState* cmpl_state);
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#ifndef G_PLATFORM_WIN32
static gboolean check_dir (gchar *dir_name,
struct stat *result,
gboolean *stat_subdirs);
@@ -334,7 +335,7 @@ static CompletionDirSent* open_new_dir (gchar* dir_name,
static gint correct_dir_fullname (CompletionDir* cmpl_dir);
static gint correct_parent (CompletionDir* cmpl_dir,
struct stat *sbuf);
#ifndef G_OS_WIN32
#ifndef G_PLATFORM_WIN32
static gchar* find_parent_dir_fullname (gchar* dirname);
#endif
static CompletionDir* attach_dir (CompletionDirSent* sent,
@@ -413,12 +414,50 @@ static void gtk_file_selection_rename_file (GtkWidget *widget, gpointer data);
static void free_selected_names (GPtrArray *names);
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#define compare_filenames(a, b) strcmp(a, b)
#else
#define compare_filenames(a, b) g_ascii_strcasecmp(a, b)
#endif
#ifndef G_PLATFORM_WIN32
#define compare_utf8_filenames(a, b) strcmp(a, b)
#define compare_sys_filenames(a, b) strcmp(a, b)
#else
static gint
compare_utf8_filenames (const gchar *a,
const gchar *b)
{
gchar *a_folded, *b_folded;
gint retval;
a_folded = g_utf8_strdown (a, -1);
b_folded = g_utf8_strdown (b, -1);
retval = strcmp (a_folded, b_folded);
g_free (a_folded);
g_free (b_folded);
return retval;
}
static gint
compare_sys_filenames (const gchar *a,
const gchar *b)
{
gchar *a_utf8, *b_utf8;
gint retval;
a_utf8 = g_filename_to_utf8 (a, -1, NULL, NULL, NULL);
b_utf8 = g_filename_to_utf8 (b, -1, NULL, NULL, NULL);
retval = compare_utf8_filenames (a_utf8, b_utf8);
g_free (a_utf8);
g_free (b_utf8);
return retval;
}
#endif
static GtkWindowClass *parent_class = NULL;
@@ -429,7 +468,7 @@ static gint cmpl_errno;
/*
* Take the path currently in the file selection
* entry field and translate as necessary from
* a WIN32 style to CYGWIN32 style path. For
* a Win32 style to Cygwin style path. For
* instance translate:
* x:\somepath\file.jpg
* to:
@@ -2002,7 +2041,7 @@ gtk_file_selection_dir_activate (GtkTreeView *tree_view,
g_free (filename);
}
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#ifdef G_PLATFORM_WIN32
static void
win32_gtk_add_drives_to_dir_list (GtkListStore *model)
@@ -2121,7 +2160,7 @@ gtk_file_selection_populate (GtkFileSelection *fs,
poss = cmpl_next_completion (cmpl_state);
}
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#ifdef G_PLATFORM_WIN32
/* For Windows, add drives as potential selections */
win32_gtk_add_drives_to_dir_list (dir_model);
#endif
@@ -2324,8 +2363,8 @@ gtk_file_selection_file_changed (GtkTreeSelection *selection,
/* A common case is selecting a range of files from top to bottom,
* so quickly check for that to avoid looping over the entire list
*/
if (compare_filenames (g_ptr_array_index (old_names, old_names->len - 1),
g_ptr_array_index (new_names, new_names->len - 1)) != 0)
if (compare_utf8_filenames (g_ptr_array_index (old_names, old_names->len - 1),
g_ptr_array_index (new_names, new_names->len - 1)) != 0)
index = new_names->len - 1;
else
{
@@ -2336,8 +2375,8 @@ gtk_file_selection_file_changed (GtkTreeSelection *selection,
*/
while (i < old_names->len && j < new_names->len)
{
cmp = compare_filenames (g_ptr_array_index (old_names, i),
g_ptr_array_index (new_names, j));
cmp = compare_utf8_filenames (g_ptr_array_index (old_names, i),
g_ptr_array_index (new_names, j));
if (cmp < 0)
{
i++;
@@ -2366,8 +2405,8 @@ gtk_file_selection_file_changed (GtkTreeSelection *selection,
* So search up from there.
*/
if (fs->last_selected &&
compare_filenames (fs->last_selected,
g_ptr_array_index (new_names, 0)) == 0)
compare_utf8_filenames (fs->last_selected,
g_ptr_array_index (new_names, 0)) == 0)
index = new_names->len - 1;
else
index = 0;
@@ -2401,7 +2440,7 @@ maybe_clear_entry:
entry = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry));
if ((entry != NULL) && (fs->last_selected != NULL) &&
(compare_filenames (entry, fs->last_selected) == 0))
(compare_utf8_filenames (entry, fs->last_selected) == 0))
gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), "");
}
@@ -2464,7 +2503,7 @@ gtk_file_selection_get_selections (GtkFileSelection *filesel)
selections[count++] = current;
if (unselected_entry && compare_filenames (current, filename) == 0)
if (unselected_entry && compare_sys_filenames (current, filename) == 0)
unselected_entry = FALSE;
}
@@ -2736,7 +2775,9 @@ cmpl_completion_matches (gchar *text_to_complete,
gchar **remaining_text,
CompletionState *cmpl_state)
{
#ifdef HAVE_PWD_H
gchar* first_slash;
#endif
PossibleCompletion *poss;
prune_memory_usage (cmpl_state);
@@ -2878,16 +2919,15 @@ open_ref_dir (gchar *text_to_complete,
p = strrchr (tmp, G_DIR_SEPARATOR);
if (p)
{
if (p == tmp)
if (p + 1 == g_path_skip_root (tmp))
p++;
*p = '\0';
new_dir = open_dir (tmp, cmpl_state);
if (new_dir)
*remaining_text = text_to_complete +
((p == tmp + 1) ? (p - tmp) : (p + 1 - tmp));
((p == g_path_skip_root (tmp)) ? (p - tmp) : (p + 1 - tmp));
}
else
{
@@ -3023,10 +3063,11 @@ open_new_dir (gchar *dir_name,
gchar *sys_dir_name;
sent = g_new (CompletionDirSent, 1);
#ifndef G_PLATFORM_WIN32
sent->mtime = sbuf->st_mtime;
sent->inode = sbuf->st_ino;
sent->device = sbuf->st_dev;
#endif
path = g_string_sized_new (2*MAXPATHLEN + 10);
sys_dir_name = g_filename_from_utf8 (dir_name, -1, NULL, NULL, NULL);
@@ -3046,7 +3087,6 @@ open_new_dir (gchar *dir_name,
while ((dirent = g_dir_read_name (directory)) != NULL)
entry_count++;
entry_count += 2; /* For ".",".." */
sent->entries = g_new (CompletionDirEntry, entry_count);
@@ -3119,7 +3159,7 @@ open_new_dir (gchar *dir_name,
return sent;
}
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#ifndef G_PLATFORM_WIN32
static gboolean
check_dir (gchar *dir_name,
@@ -3192,12 +3232,14 @@ static CompletionDir*
open_dir (gchar *dir_name,
CompletionState *cmpl_state)
{
#ifndef G_PLATFORM_WIN32
struct stat sbuf;
gboolean stat_subdirs;
CompletionDirSent *sent;
GList* cdsl;
#endif
CompletionDirSent *sent;
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#ifndef G_PLATFORM_WIN32
if (!check_dir (dir_name, &sbuf, &stat_subdirs))
return NULL;
@@ -3214,11 +3256,11 @@ open_dir (gchar *dir_name,
cdsl = cdsl->next;
}
#else
stat_subdirs = TRUE;
#endif
sent = open_new_dir (dir_name, &sbuf, stat_subdirs);
#else
sent = open_new_dir (dir_name, NULL, TRUE);
#endif
if (sent)
{
@@ -3362,7 +3404,9 @@ correct_parent (CompletionDir *cmpl_dir,
struct stat parbuf;
gchar *last_slash;
gchar *first_slash;
#ifndef G_PLATFORM_WIN32
gchar *new_name;
#endif
gchar *sys_filename;
gchar c = 0;
@@ -3402,7 +3446,7 @@ correct_parent (CompletionDir *cmpl_dir,
}
g_free (sys_filename);
#ifndef G_OS_WIN32 /* No inode numbers on Win32 */
#ifndef G_PLATFORM_WIN32 /* No inode numbers on Win32 */
if (parbuf.st_ino == sbuf->st_ino && parbuf.st_dev == sbuf->st_dev)
/* it wasn't a link */
return TRUE;
@@ -3427,7 +3471,7 @@ correct_parent (CompletionDir *cmpl_dir,
return TRUE;
}
#ifndef G_OS_WIN32
#ifndef G_PLATFORM_WIN32
static gchar*
find_parent_dir_fullname (gchar* dirname)
@@ -3539,7 +3583,12 @@ attempt_homedir_completion (gchar *text_to_complete,
#endif
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#ifdef G_PLATFORM_WIN32
/* FIXME: determine whether we should casefold all Unicode letters
* here, too (and in in first_diff_index() walk through the strings with
* g_utf8_next_char()), or if this folding isn't actually needed at
* all.
*/
#define FOLD(c) (tolower(c))
#else
#define FOLD(c) (c)
+3
View File
@@ -50,8 +50,10 @@ typedef struct _GtkFileSelectionClass GtkFileSelectionClass;
struct _GtkFileSelection
{
/*< private >*/
GtkDialog parent_instance;
/*< public >*/
GtkWidget *dir_list;
GtkWidget *file_list;
GtkWidget *selection_entry;
@@ -75,6 +77,7 @@ struct _GtkFileSelection
GtkWidget *button_area;
GtkWidget *action_area;
/*< private >*/
GPtrArray *selected_names;
gchar *last_selected;
};
-2454
View File
File diff suppressed because it is too large Load Diff
-151
View File
@@ -1,151 +0,0 @@
/* eggiconlist.h
* Copyright (C) 2002 Anders Carlsson <andersca@gnu.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.
*/
#ifndef __EGG_ICON_LIST_H__
#define __EGG_ICON_LIST_H__
#include <gtk/gtkcontainer.h>
G_BEGIN_DECLS
#define EGG_TYPE_ICON_LIST (egg_icon_list_get_type ())
#define EGG_ICON_LIST(obj) (GTK_CHECK_CAST ((obj), EGG_TYPE_ICON_LIST, EggIconList))
#define EGG_ICON_LIST_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EGG_TYPE_ICON_LIST, EggIconListClass))
#define EGG_IS_ICON_LIST(obj) (GTK_CHECK_TYPE ((obj), EGG_TYPE_ICON_LIST))
#define EGG_IS_ICON_LIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), EGG_TYPE_ICON_LIST))
#define EGG_ICON_LIST_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), EGG_TYPE_ICON_LIST, EggIconListClass))
#define EGG_TYPE_ICON_LIST_ITEM (egg_icon_list_item_get_type ())
typedef struct _EggIconList EggIconList;
typedef struct _EggIconListClass EggIconListClass;
typedef struct _EggIconListPrivate EggIconListPrivate;
typedef struct _EggIconListItem EggIconListItem;
typedef void (* EggIconListForeachFunc) (EggIconList *icon_list,
EggIconListItem *item,
gpointer data);
typedef gint (* EggIconListItemCompareFunc) (EggIconList *icon_list,
EggIconListItem *a,
EggIconListItem *b,
gpointer user_data);
struct _EggIconList
{
GtkContainer parent;
EggIconListPrivate *priv;
};
struct _EggIconListClass
{
GtkContainerClass parent_class;
void (* set_scroll_adjustments) (EggIconList *icon_list,
GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment);
void (* item_activated) (EggIconList *icon_list,
EggIconListItem *item);
void (* selection_changed) (EggIconList *icon_list);
void (* item_added) (EggIconList *icon_list,
EggIconListItem *item);
void (* item_removed) (EggIconList *icon_list,
EggIconListItem *item);
void (* item_changed) (EggIconList *icon_list,
EggIconListItem *item);
/* Key binding signals */
void (* select_all) (EggIconList *icon_list);
void (* unselect_all) (EggIconList *icon_list);
void (* select_cursor_item) (EggIconList *icon_list);
void (* toggle_cursor_item) (EggIconList *icon_list);
};
GType egg_icon_list_get_type (void);
GType egg_icon_list_item_get_type (void);
GtkWidget *egg_icon_list_new (void);
EggIconListItem * egg_icon_list_item_new (GdkPixbuf *icon,
const gchar *label);
void egg_icon_list_item_ref (EggIconListItem *item);
void egg_icon_list_item_unref (EggIconListItem *item);
void egg_icon_list_item_set_data (EggIconListItem *item,
gpointer data);
void egg_icon_list_item_set_data_full (EggIconListItem *item,
gpointer data,
GDestroyNotify destroy_notify);
gpointer egg_icon_list_item_get_data (EggIconListItem *item);
void egg_icon_list_item_set_label (EggIconListItem *item,
const char *label);
G_CONST_RETURN gchar *egg_icon_list_item_get_label (EggIconListItem *item);
void egg_icon_list_item_set_icon (EggIconListItem *item,
GdkPixbuf *icon);
GdkPixbuf * egg_icon_list_item_get_icon (EggIconListItem *item);
void egg_icon_list_append_item (EggIconList *icon_list,
EggIconListItem *item);
void egg_icon_list_prepend_item (EggIconList *icon_list,
EggIconListItem *item);
void egg_icon_list_insert_item_before (EggIconList *icon_list,
EggIconListItem *sibling,
EggIconListItem *item);
void egg_icon_list_insert_item_after (EggIconList *icon_list,
EggIconListItem *sibling,
EggIconListItem *item);
void egg_icon_list_remove_item (EggIconList *icon_list,
EggIconListItem *item);
void egg_icon_list_clear (EggIconList *icon_list);
EggIconListItem * egg_icon_list_get_item_at_pos (EggIconList *icon_list,
gint x,
gint y);
gint egg_icon_list_get_item_count (EggIconList *icon_list);
void egg_icon_list_foreach (EggIconList *icon_list,
EggIconListForeachFunc func,
gpointer data);
GList * egg_icon_list_get_selected (EggIconList *icon_list);
void egg_icon_list_selected_foreach (EggIconList *icon_list,
EggIconListForeachFunc func,
gpointer data);
void egg_icon_list_set_selection_mode (EggIconList *icon_list,
GtkSelectionMode mode);
GtkSelectionMode egg_icon_list_get_selection_mode (EggIconList *icon_list);
void egg_icon_list_select_item (EggIconList *icon_list,
EggIconListItem *item);
void egg_icon_list_unselect_item (EggIconList *icon_list,
EggIconListItem *item);
gboolean egg_icon_list_item_is_selected (EggIconListItem *item);
void egg_icon_list_select_all (EggIconList *icon_list);
void egg_icon_list_unselect_all (EggIconList *icon_list);
void egg_icon_list_set_sorted (EggIconList *icon_list,
gboolean sorted);
gboolean egg_icon_list_get_sorted (EggIconList *icon_list);
void egg_icon_list_set_sort_func (EggIconList *icon_list,
EggIconListItemCompareFunc func,
gpointer data,
GDestroyNotify destroy_notify);
void egg_icon_list_set_sort_order (EggIconList *icon_list,
GtkSortType order);
GtkSortType egg_icon_list_get_sort_order (EggIconList *icon_list);
void egg_icon_list_item_activated (EggIconList *icon_list,
EggIconListItem *item);
/* For accessibility */
GList *egg_icon_list_get_items (EggIconList *icon_list);
G_END_DECLS
#endif /* __EGG_ICON_LIST_H__ */
+37 -10
View File
@@ -74,6 +74,8 @@ static void gtk_list_store_set_column_type (GtkListStore *list_store,
/* Drag and Drop */
static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_source,
GtkTreePath *path);
static gboolean gtk_list_store_drag_data_delete (GtkTreeDragSource *drag_source,
GtkTreePath *path);
static gboolean gtk_list_store_drag_data_get (GtkTreeDragSource *drag_source,
@@ -228,6 +230,7 @@ gtk_list_store_tree_model_init (GtkTreeModelIface *iface)
static void
gtk_list_store_drag_source_init (GtkTreeDragSourceIface *iface)
{
iface->row_draggable = real_gtk_list_store_row_draggable;
iface->drag_data_delete = gtk_list_store_drag_data_delete;
iface->drag_data_get = gtk_list_store_drag_data_get;
}
@@ -1400,6 +1403,12 @@ gtk_list_store_iter_is_valid (GtkListStore *list_store,
return FALSE;
}
static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_source,
GtkTreePath *path)
{
return TRUE;
}
static gboolean
gtk_list_store_drag_data_delete (GtkTreeDragSource *drag_source,
GtkTreePath *path)
@@ -1585,7 +1594,7 @@ gtk_list_store_row_drop_possible (GtkTreeDragDest *drag_dest,
&src_model,
&src_path))
goto out;
if (src_model != GTK_TREE_MODEL (drag_dest))
goto out;
@@ -1761,6 +1770,12 @@ gtk_list_store_swap (GtkListStore *store,
G_SLIST (a->user_data)->next = prev_b;
G_SLIST (b->user_data)->next = prev_a;
/* update tail if needed */
if (! G_SLIST (a->user_data)->next)
store->tail = G_SLIST (a->user_data);
else if (! G_SLIST (b->user_data)->next)
store->tail = G_SLIST (b->user_data);
/* emit signal */
order = g_new (gint, store->length);
for (j = 0; j < store->length; j++)
@@ -1867,7 +1882,11 @@ gtk_list_store_move (GtkListStore *store,
if (!prev)
store->root = G_SLIST (iter->user_data)->next;
else
prev->next = G_SLIST (iter->user_data)->next;
{
prev->next = G_SLIST (iter->user_data)->next;
if (!prev->next)
store->tail = prev;
}
/* and reinsert it */
if (a)
@@ -1888,9 +1907,12 @@ gtk_list_store_move (GtkListStore *store,
{
G_SLIST (store->tail)->next = G_SLIST (iter->user_data);
G_SLIST (iter->user_data)->next = NULL;
store->tail = iter->user_data;
}
/* update tail if needed */
if (!G_SLIST (iter->user_data)->next)
store->tail = G_SLIST (iter->user_data);
/* emit signal */
if (position)
new_pos = gtk_tree_path_get_indices (pos_path)[0];
@@ -1901,12 +1923,12 @@ gtk_list_store_move (GtkListStore *store,
if (new_pos > old_pos)
{
if (before)
if (before && position)
new_pos--;
}
else
{
if (!before)
if (!before && position)
new_pos++;
}
@@ -2291,7 +2313,7 @@ gtk_list_store_get_sort_column_id (GtkTreeSortable *sortable,
g_return_val_if_fail (GTK_IS_LIST_STORE (sortable), FALSE);
if (list_store->sort_column_id == -1)
if (list_store->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
return FALSE;
if (sort_column_id)
@@ -2314,7 +2336,7 @@ gtk_list_store_set_sort_column_id (GtkTreeSortable *sortable,
(list_store->order == order))
return;
if (sort_column_id != -1)
if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
{
GtkTreeDataSortHeader *header = NULL;
@@ -2333,9 +2355,9 @@ gtk_list_store_set_sort_column_id (GtkTreeSortable *sortable,
list_store->sort_column_id = sort_column_id;
list_store->order = order;
gtk_list_store_sort (list_store);
gtk_tree_sortable_sort_column_changed (sortable);
gtk_list_store_sort (list_store);
}
static void
@@ -2382,8 +2404,10 @@ gtk_list_store_set_sort_func (GtkTreeSortable *sortable,
header->func = func;
header->data = data;
header->destroy = destroy;
}
if (list_store->sort_column_id == sort_column_id)
gtk_list_store_sort (list_store);
}
static void
gtk_list_store_set_default_sort_func (GtkTreeSortable *sortable,
@@ -2406,6 +2430,9 @@ gtk_list_store_set_default_sort_func (GtkTreeSortable *sortable,
list_store->default_sort_func = func;
list_store->default_sort_data = data;
list_store->default_sort_destroy = destroy;
if (list_store->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
gtk_list_store_sort (list_store);
}
static gboolean
+3 -2
View File
@@ -48,6 +48,9 @@
#include <pango/pango-utils.h> /* For pango_split_file_list */
#include "config.h"
#include "gtkintl.h"
#include "gtkaccelmap.h"
#include "gtkbox.h"
#include "gtkdnd.h"
@@ -59,9 +62,7 @@
#include "gtkwidget.h"
#include "gtkwindow.h"
#include "gtkprivate.h"
#include "config.h"
#include "gtkdebug.h"
#include "gtkintl.h"
/* Private type definitions
*/
+6 -6
View File
@@ -801,13 +801,13 @@ static gboolean
gtk_menu_item_mnemonic_activate (GtkWidget *widget,
gboolean group_cycling)
{
if (group_cycling)
if (group_cycling &&
widget->parent &&
GTK_IS_MENU_SHELL (widget->parent) &&
GTK_MENU_SHELL (widget->parent)->active)
{
if (widget->parent &&
GTK_IS_MENU_SHELL (widget->parent))
gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent),
widget);
gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent),
widget);
}
else
g_signal_emit (widget, menu_item_signals[ACTIVATE_ITEM], 0);
+14
View File
@@ -1070,6 +1070,20 @@ gtk_real_menu_shell_move_current (GtkMenuShell *menu_shell,
gtk_menu_shell_select_submenu_first (parent_menu_shell);
}
}
/* If there is no parent and the submenu is in the opposite direction
* to the menu, then make the PARENT direction wrap around to
* the bottom of the submenu.
*/
else if (menu_shell->active_menu_item &&
_gtk_menu_item_is_selectable (menu_shell->active_menu_item) &&
GTK_MENU_ITEM (menu_shell->active_menu_item)->submenu)
{
GtkMenuShell *submenu = GTK_MENU_SHELL (GTK_MENU_ITEM (menu_shell->active_menu_item)->submenu);
if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement !=
GTK_MENU_SHELL_GET_CLASS (submenu)->submenu_placement)
_gtk_menu_shell_select_last (submenu, TRUE);
}
break;
case GTK_MENU_DIR_CHILD:
+35 -11
View File
@@ -1309,9 +1309,14 @@ gtk_notebook_size_allocate (GtkWidget *widget,
GdkRectangle position;
if (gtk_notebook_get_event_window_position (notebook, &position))
gdk_window_move_resize (notebook->event_window,
position.x, position.y,
position.width, position.height);
{
gdk_window_move_resize (notebook->event_window,
position.x, position.y,
position.width, position.height);
gdk_window_show_unraised (notebook->event_window);
}
else
gdk_window_hide (notebook->event_window);
}
if (notebook->children)
@@ -2355,6 +2360,7 @@ gtk_notebook_remove_tab_label (GtkNotebook *notebook,
page->mnemonic_activate_signal);
page->mnemonic_activate_signal = 0;
gtk_widget_set_state (page->tab_label, GTK_STATE_NORMAL);
gtk_widget_unparent (page->tab_label);
}
}
@@ -2413,10 +2419,6 @@ gtk_notebook_real_remove (GtkNotebook *notebook,
g_free (page);
if (!notebook->children && notebook->show_tabs &&
GTK_WIDGET_MAPPED (notebook))
gdk_window_hide (notebook->event_window);
gtk_notebook_update_labels (notebook);
if (need_resize)
gtk_widget_queue_resize (GTK_WIDGET (notebook));
@@ -3510,6 +3512,25 @@ gtk_notebook_calc_tabs (GtkNotebook *notebook,
}
}
static void
gtk_notebook_update_tab_states (GtkNotebook *notebook)
{
GList *list;
for (list = notebook->children; list != NULL; list = list->next)
{
GtkNotebookPage *page = list->data;
if (page->tab_label)
{
if (page == notebook->cur_page)
gtk_widget_set_state (page->tab_label, GTK_STATE_NORMAL);
else
gtk_widget_set_state (page->tab_label, GTK_STATE_ACTIVE);
}
}
}
/* Private GtkNotebook Page Switch Methods:
*
* gtk_notebook_real_switch_page
@@ -3551,6 +3572,7 @@ gtk_notebook_real_switch_page (GtkNotebook *notebook,
gtk_widget_grab_focus (GTK_WIDGET (notebook));
}
gtk_notebook_update_tab_states (notebook);
gtk_widget_queue_resize (GTK_WIDGET (notebook));
g_object_notify (G_OBJECT (notebook), "page");
}
@@ -4091,6 +4113,8 @@ gtk_notebook_insert_page_menu (GtkNotebook *notebook,
gtk_notebook_switch_focus_tab (notebook, NULL);
}
gtk_notebook_update_tab_states (notebook);
if (tab_label)
page->mnemonic_activate_signal =
g_signal_connect (tab_label,
@@ -4098,9 +4122,6 @@ gtk_notebook_insert_page_menu (GtkNotebook *notebook,
G_CALLBACK (gtk_notebook_mnemonic_activate_switch_page),
notebook);
if (notebook->show_tabs && GTK_WIDGET_MAPPED (notebook))
gdk_window_show_unraised (notebook->event_window);
gtk_widget_child_notify (child, "tab_expand");
gtk_widget_child_notify (child, "tab_fill");
gtk_widget_child_notify (child, "tab_pack");
@@ -4782,6 +4803,8 @@ gtk_notebook_set_tab_label (GtkNotebook *notebook,
gtk_widget_show (page->tab_label);
gtk_widget_queue_resize (GTK_WIDGET (notebook));
}
gtk_notebook_update_tab_states (notebook);
gtk_widget_child_notify (child, "tab_label");
}
@@ -4987,7 +5010,8 @@ gtk_notebook_child_reordered (GtkNotebook *notebook,
gtk_container_remove (GTK_CONTAINER (notebook->menu), menu_item);
gtk_notebook_menu_item_create (notebook, g_list_find (notebook->children, page));
}
gtk_notebook_update_tab_states (notebook);
gtk_notebook_update_labels (notebook);
}
+18 -10
View File
@@ -74,6 +74,7 @@ static void gtk_settings_notify (GObject *object,
static guint settings_install_property_parser (GtkSettingsClass *class,
GParamSpec *pspec,
GtkRcPropertyParser parser);
static void settings_update_double_click_time (GtkSettings *settings);
/* --- variables --- */
@@ -289,6 +290,7 @@ gtk_settings_get_for_screen (GdkScreen *screen)
settings->screen = screen;
g_object_set_data (G_OBJECT (screen), "gtk-settings", settings);
gtk_rc_reparse_all_for_settings (settings, TRUE);
settings_update_double_click_time (settings);
}
return settings;
@@ -402,7 +404,6 @@ gtk_settings_notify (GObject *object,
{
GtkSettings *settings = GTK_SETTINGS (object);
guint property_id = pspec->param_id;
gint double_click_time;
if (settings->screen == NULL) /* initialization */
return;
@@ -410,15 +411,8 @@ gtk_settings_notify (GObject *object,
switch (property_id)
{
case PROP_DOUBLE_CLICK_TIME:
{
GdkDisplay *display;
g_object_get (object, pspec->name, &double_click_time, NULL);
display = gdk_screen_get_display (settings->screen);
if (settings->screen == gdk_display_get_screen (display, 0))
gdk_display_set_double_click_time (display, double_click_time);
break;
}
settings_update_double_click_time (settings);
break;
}
}
@@ -1080,3 +1074,17 @@ _gtk_settings_reset_rc_values (GtkSettings *settings)
g_free (pspecs);
}
static void
settings_update_double_click_time (GtkSettings *settings)
{
if (gdk_screen_get_number (settings->screen) == 0)
{
GdkDisplay *display = gdk_screen_get_display (settings->screen);
gint double_click_time;
g_object_get (G_OBJECT (settings), "gtk-double-click-time",
&double_click_time, NULL);
gdk_display_set_double_click_time (display, double_click_time);
}
}
+1 -1
View File
@@ -1229,7 +1229,7 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
socket = GTK_SOCKET (data);
widget = GTK_WIDGET (socket);
xevent = (XEvent *)gdk_xevent;
display = gdk_drawable_get_display (event->any.window);
display = gtk_widget_get_display (widget);
return_val = GDK_FILTER_CONTINUE;
+2 -2
View File
@@ -4694,8 +4694,8 @@ apply_affine_on_point (double affine[6], GdkPoint *point)
x = point->x * affine[0] + point->y * affine[2] + affine[4];
y = point->x * affine[1] + point->y * affine[3] + affine[5];
point->x = x;
point->y = y;
point->x = floor (x);
point->y = floor (y);
}
static void
+3
View File
@@ -5083,7 +5083,10 @@ _gtk_text_btree_get_iter_at_first_toggle (GtkTextBTree *tree,
else
{
iter_init_from_byte_offset (iter, tree, line, 0);
if (!gtk_text_iter_toggles_tag (iter, tag))
gtk_text_iter_forward_to_tag_toggle (iter, tag);
check_invariants (iter);
return TRUE;
}
+3 -2
View File
@@ -812,6 +812,7 @@ gtk_text_layout_validate_yrange (GtkTextLayout *layout,
/* Validate backwards from the anchor line to y0
*/
line = _gtk_text_iter_get_text_line (anchor);
line = _gtk_text_line_previous (line);
seen = 0;
while (line && seen < -y0)
{
@@ -827,11 +828,11 @@ gtk_text_layout_validate_yrange (GtkTextLayout *layout,
delta_height += line_data->height - old_height;
first_line = line;
first_line_y = -seen;
first_line_y = -seen - line_data->height;
if (!last_line)
{
last_line = line;
last_line_y = -seen + line_data->height;
last_line_y = -seen;
}
}
+54 -37
View File
@@ -2830,8 +2830,6 @@ gtk_text_view_size_allocate (GtkWidget *widget,
GtkTextView *text_view;
GtkTextIter first_para;
gint y;
GtkAdjustment *vadj;
gboolean yoffset_changed = FALSE;
gint width, height;
GdkRectangle text_rect;
GdkRectangle left_rect;
@@ -2957,6 +2955,29 @@ gtk_text_view_size_allocate (GtkWidget *widget,
/* Note that this will do some layout validation */
gtk_text_view_allocate_children (text_view);
/* Ensure h/v adj exist */
get_hadjustment (text_view);
get_vadjustment (text_view);
text_view->hadjustment->page_size = SCREEN_WIDTH (text_view);
text_view->hadjustment->page_increment = SCREEN_WIDTH (text_view) * 0.9;
text_view->hadjustment->step_increment = SCREEN_WIDTH (text_view) * 0.1;
text_view->hadjustment->lower = 0;
text_view->hadjustment->upper = MAX (SCREEN_WIDTH (text_view),
text_view->width);
if (text_view->hadjustment->value > text_view->hadjustment->upper - text_view->hadjustment->page_size)
gtk_adjustment_set_value (text_view->hadjustment, MAX (0, text_view->hadjustment->upper - text_view->hadjustment->page_size));
gtk_adjustment_changed (text_view->hadjustment);
text_view->vadjustment->page_size = SCREEN_HEIGHT (text_view);
text_view->vadjustment->page_increment = SCREEN_HEIGHT (text_view) * 0.9;
text_view->vadjustment->step_increment = SCREEN_HEIGHT (text_view) * 0.1;
text_view->vadjustment->lower = 0;
text_view->vadjustment->upper = MAX (SCREEN_HEIGHT (text_view),
text_view->height);
/* Now adjust the value of the adjustment to keep the cursor at the
* same place in the buffer
*/
@@ -2965,42 +2986,14 @@ gtk_text_view_size_allocate (GtkWidget *widget,
y += text_view->first_para_pixels;
/* Ensure h/v adj exist */
get_hadjustment (text_view);
get_vadjustment (text_view);
vadj = text_view->vadjustment;
if (y > vadj->upper - vadj->page_size)
y = MAX (0, vadj->upper - vadj->page_size);
if (y > text_view->vadjustment->upper - text_view->vadjustment->page_size)
y = MAX (0, text_view->vadjustment->upper - text_view->vadjustment->page_size);
if (y != text_view->yoffset)
{
vadj->value = y;
yoffset_changed = TRUE;
}
gtk_adjustment_set_value (text_view->vadjustment, y);
text_view->hadjustment->page_size = SCREEN_WIDTH (text_view);
text_view->hadjustment->page_increment = SCREEN_WIDTH (text_view) * 0.9;
text_view->hadjustment->step_increment = SCREEN_WIDTH (text_view) * 0.1;
text_view->hadjustment->lower = 0;
text_view->hadjustment->upper = MAX (SCREEN_WIDTH (text_view),
text_view->width);
gtk_adjustment_changed (text_view->hadjustment);
if (text_view->hadjustment->value > text_view->hadjustment->upper - text_view->hadjustment->page_size)
gtk_adjustment_set_value (text_view->hadjustment, MAX (0, text_view->hadjustment->upper - text_view->hadjustment->page_size));
text_view->vadjustment->page_size = SCREEN_HEIGHT (text_view);
text_view->vadjustment->page_increment = SCREEN_HEIGHT (text_view) * 0.9;
text_view->vadjustment->step_increment = SCREEN_HEIGHT (text_view) * 0.1;
text_view->vadjustment->lower = 0;
text_view->vadjustment->upper = MAX (SCREEN_HEIGHT (text_view),
text_view->height);
gtk_adjustment_changed (text_view->vadjustment);
if (yoffset_changed)
gtk_adjustment_value_changed (vadj);
/* The GTK resize loop processes all the pending exposes right
* after doing the resize stuff, so the idle sizer won't have a
* chance to run. So we do the work here.
@@ -4560,6 +4553,32 @@ gtk_text_view_move_cursor_internal (GtkTextView *text_view,
return;
}
if (!text_view->cursor_visible)
{
GtkAdjustment *adj;
switch (step)
{
case GTK_MOVEMENT_LOGICAL_POSITIONS:
case GTK_MOVEMENT_VISUAL_POSITIONS:
case GTK_MOVEMENT_WORDS:
adj = get_hadjustment (text_view);
break;
case GTK_MOVEMENT_DISPLAY_LINES:
case GTK_MOVEMENT_DISPLAY_LINE_ENDS:
case GTK_MOVEMENT_PARAGRAPHS:
adj = get_vadjustment (text_view);
break;
}
if (count > 0)
set_adjustment_clamped (adj, adj->value + adj->step_increment);
else
set_adjustment_clamped (adj, adj->value - adj->step_increment);
return;
}
gtk_text_buffer_get_iter_at_mark (get_buffer (text_view), &insert,
gtk_text_buffer_get_mark (get_buffer (text_view),
"insert"));
@@ -4609,6 +4628,8 @@ gtk_text_view_move_cursor_internal (GtkTextView *text_view,
gtk_text_iter_forward_to_line_end (&newplace);
--count;
}
gtk_text_iter_forward_lines (&newplace, count);
gtk_text_iter_forward_to_line_end (&newplace);
}
else if (count < 0)
{
@@ -4617,10 +4638,6 @@ gtk_text_view_move_cursor_internal (GtkTextView *text_view,
gtk_text_iter_set_line_offset (&newplace, 0);
++count;
}
}
if (count != 0)
{
gtk_text_iter_forward_lines (&newplace, count);
gtk_text_iter_set_line_offset (&newplace, 0);
}
+98 -126
View File
@@ -97,6 +97,7 @@ static gboolean gtk_toolbar_focus (GtkWidget *widget,
static void gtk_toolbar_screen_changed (GtkWidget *widget,
GdkScreen *previous_screen);
static void gtk_toolbar_show_all (GtkWidget *widget);
static void gtk_toolbar_hide_all (GtkWidget *widget);
static void gtk_toolbar_add (GtkContainer *container,
GtkWidget *widget);
static void gtk_toolbar_remove (GtkContainer *container,
@@ -194,6 +195,7 @@ gtk_toolbar_class_init (GtkToolbarClass *class)
widget_class->size_allocate = gtk_toolbar_size_allocate;
widget_class->style_set = gtk_toolbar_style_set;
widget_class->show_all = gtk_toolbar_show_all;
widget_class->hide_all = gtk_toolbar_hide_all;
widget_class->focus = gtk_toolbar_focus;
widget_class->screen_changed = gtk_toolbar_screen_changed;
@@ -848,6 +850,26 @@ gtk_toolbar_show_all (GtkWidget *widget)
gtk_widget_show (widget);
}
static void
child_hide_all (GtkWidget *widget)
{
/* Don't hide our own children, since that would also hide
* widgets that won't be shown again by gtk_toolbar_show_all().
*/
if (!g_object_get_data (G_OBJECT (widget),
"gtk-toolbar-is-child"))
gtk_widget_hide_all (widget);
}
static void
gtk_toolbar_hide_all (GtkWidget *widget)
{
gtk_container_foreach (GTK_CONTAINER (widget),
(GtkCallback) child_hide_all,
NULL);
gtk_widget_hide (widget);
}
static void
gtk_toolbar_add (GtkContainer *container,
GtkWidget *widget)
@@ -1394,6 +1416,44 @@ gtk_toolbar_insert_element (GtkToolbar *toolbar,
position);
}
static void
set_child_packing_and_visibility(GtkToolbar *toolbar,
GtkToolbarChild *child)
{
GtkWidget *box;
gboolean expand;
box = gtk_bin_get_child (GTK_BIN (child->widget));
g_return_if_fail (GTK_IS_BOX (box));
if (child->label)
{
expand = (toolbar->style != GTK_TOOLBAR_BOTH);
gtk_box_set_child_packing (GTK_BOX (box), child->label,
expand, expand, 0, GTK_PACK_END);
if (toolbar->style != GTK_TOOLBAR_ICONS)
gtk_widget_show (child->label);
else
gtk_widget_hide (child->label);
}
if (child->icon)
{
expand = (toolbar->style != GTK_TOOLBAR_BOTH_HORIZ);
gtk_box_set_child_packing (GTK_BOX (box), child->icon,
expand, expand, 0, GTK_PACK_END);
if (toolbar->style != GTK_TOOLBAR_TEXT)
gtk_widget_show (child->icon);
else
gtk_widget_hide (child->icon);
}
}
static GtkWidget *
gtk_toolbar_internal_insert_element (GtkToolbar *toolbar,
GtkToolbarChildType type,
@@ -1478,26 +1538,22 @@ gtk_toolbar_internal_insert_element (GtkToolbar *toolbar,
if (text)
{
child->label = gtk_label_new (text);
gtk_box_pack_end (GTK_BOX (box), child->label, FALSE, FALSE, 0);
if (toolbar->style != GTK_TOOLBAR_ICONS)
gtk_widget_show (child->label);
gtk_container_add (GTK_CONTAINER (box), child->label);
}
if (icon)
{
child->icon = GTK_WIDGET (icon);
gtk_box_pack_end (GTK_BOX (box), child->icon, FALSE, FALSE, 0);
if (toolbar->style != GTK_TOOLBAR_TEXT)
gtk_widget_show (child->icon);
gtk_container_add (GTK_CONTAINER (box), child->icon);
}
if (type != GTK_TOOLBAR_CHILD_WIDGET)
{
/* Mark child as ours */
g_object_set_data (G_OBJECT (child->widget),
"gtk-toolbar-is-child",
GINT_TO_POINTER (TRUE));
}
set_child_packing_and_visibility (toolbar, child);
/* Mark child as ours */
g_object_set_data (G_OBJECT (child->widget),
"gtk-toolbar-is-child",
GINT_TO_POINTER (TRUE));
gtk_widget_show (child->widget);
break;
@@ -1669,23 +1725,13 @@ gtk_real_toolbar_orientation_changed (GtkToolbar *toolbar,
}
}
static GtkWidget *
get_first_child (GtkContainer *container)
{
GList *children = gtk_container_get_children (container);
GtkWidget *result = children ? children->data : NULL;
g_list_free (children);
return result;
}
static void
gtk_real_toolbar_style_changed (GtkToolbar *toolbar,
GtkToolbarStyle style)
{
GList *children;
GtkToolbarChild *child;
GtkWidget* box = NULL;
GtkWidget* box;
g_return_if_fail (GTK_IS_TOOLBAR (toolbar));
@@ -1700,118 +1746,44 @@ gtk_real_toolbar_style_changed (GtkToolbar *toolbar,
if (child->type == GTK_TOOLBAR_CHILD_BUTTON ||
child->type == GTK_TOOLBAR_CHILD_RADIOBUTTON ||
child->type == GTK_TOOLBAR_CHILD_TOGGLEBUTTON)
switch (style)
{
case GTK_TOOLBAR_ICONS:
if (child->icon && !GTK_WIDGET_VISIBLE (child->icon))
gtk_widget_show (child->icon);
{
box = gtk_bin_get_child (GTK_BIN (child->widget));
if (child->label && GTK_WIDGET_VISIBLE (child->label))
gtk_widget_hide (child->label);
if (style == GTK_TOOLBAR_BOTH && GTK_IS_HBOX (box))
{
GtkWidget *vbox;
break;
vbox = gtk_vbox_new (FALSE, 0);
case GTK_TOOLBAR_TEXT:
if (child->icon && GTK_WIDGET_VISIBLE (child->icon))
gtk_widget_hide (child->icon);
if (child->label && !GTK_WIDGET_VISIBLE (child->label))
gtk_widget_show (child->label);
if (child->label)
gtk_widget_reparent (child->label, vbox);
if (child->icon)
gtk_widget_reparent (child->icon, vbox);
break;
gtk_widget_destroy (box);
gtk_container_add (GTK_CONTAINER (child->widget), vbox);
case GTK_TOOLBAR_BOTH:
if (child->icon && !GTK_WIDGET_VISIBLE (child->icon))
gtk_widget_show (child->icon);
gtk_widget_show (vbox);
}
else if (style == GTK_TOOLBAR_BOTH_HORIZ && GTK_IS_VBOX (box))
{
GtkWidget *hbox;
if (child->label && !GTK_WIDGET_VISIBLE (child->label))
gtk_widget_show (child->label);
hbox = gtk_hbox_new (FALSE, 0);
box = get_first_child (GTK_CONTAINER (child->widget));
if (child->label)
gtk_widget_reparent (child->label, hbox);
if (child->icon)
gtk_widget_reparent (child->icon, hbox);
if (GTK_IS_HBOX (box))
{
if (child->icon)
{
g_object_ref (child->icon);
gtk_container_remove (GTK_CONTAINER (box),
child->icon);
}
if (child->label)
{
g_object_ref (child->label);
gtk_container_remove (GTK_CONTAINER (box),
child->label);
}
gtk_container_remove (GTK_CONTAINER (child->widget),
box);
box = gtk_vbox_new (FALSE, 0);
gtk_widget_show (box);
if (child->label)
{
gtk_box_pack_end (GTK_BOX (box), child->label, FALSE, FALSE, 0);
g_object_unref (child->label);
}
if (child->icon)
{
gtk_box_pack_end (GTK_BOX (box), child->icon, FALSE, FALSE, 0);
g_object_unref (child->icon);
}
gtk_container_add (GTK_CONTAINER (child->widget),
box);
}
break;
case GTK_TOOLBAR_BOTH_HORIZ:
if (child->icon && !GTK_WIDGET_VISIBLE (child->icon))
gtk_widget_show (child->icon);
if (child->label && !GTK_WIDGET_VISIBLE (child->label))
gtk_widget_show (child->label);
gtk_widget_destroy (box);
gtk_container_add (GTK_CONTAINER (child->widget), hbox);
box = get_first_child (GTK_CONTAINER (child->widget));
if (GTK_IS_VBOX (box))
{
if (child->icon)
{
g_object_ref (child->icon);
gtk_container_remove (GTK_CONTAINER (box),
child->icon);
}
if (child->label)
{
g_object_ref (child->label);
gtk_container_remove (GTK_CONTAINER (box),
child->label);
}
gtk_container_remove (GTK_CONTAINER (child->widget),
box);
gtk_widget_show (hbox);
}
box = gtk_hbox_new (FALSE, 0);
gtk_widget_show (box);
if (child->label)
{
gtk_box_pack_end (GTK_BOX (box), child->label, TRUE, TRUE, 0);
g_object_unref (child->label);
}
if (child->icon)
{
gtk_box_pack_end (GTK_BOX (box), child->icon, FALSE, FALSE, 0);
g_object_unref (child->icon);
}
gtk_container_add (GTK_CONTAINER (child->widget), box);
}
break;
default:
g_assert_not_reached ();
}
set_child_packing_and_visibility (toolbar, child);
}
}
gtk_widget_queue_resize (GTK_WIDGET (toolbar));
+3
View File
@@ -97,6 +97,9 @@ gtk_tree_drag_source_row_draggable (GtkTreeDragSource *drag_source,
return (* iface->row_draggable) (drag_source, path);
else
return TRUE;
/* Returning TRUE if row_draggable is not implemented is a fallback.
Interface implementations such as GtkTreeStore and GtkListStore really should
implement row_draggable. */
}
+8 -2
View File
@@ -1318,9 +1318,9 @@ gtk_tree_model_sort_set_sort_column_id (GtkTreeSortable *sortable,
tree_model_sort->sort_column_id = sort_column_id;
tree_model_sort->order = order;
gtk_tree_model_sort_sort (tree_model_sort);
gtk_tree_sortable_sort_column_changed (sortable);
gtk_tree_model_sort_sort (tree_model_sort);
}
static void
@@ -1368,6 +1368,9 @@ gtk_tree_model_sort_set_sort_func (GtkTreeSortable *sortable,
header->func = func;
header->data = data;
header->destroy = destroy;
if (tree_model_sort->sort_column_id == sort_column_id)
gtk_tree_model_sort_sort (tree_model_sort);
}
static void
@@ -1391,6 +1394,9 @@ gtk_tree_model_sort_set_default_sort_func (GtkTreeSortable *sortable,
tree_model_sort->default_sort_func = func;
tree_model_sort->default_sort_data = data;
tree_model_sort->default_sort_destroy = destroy;
if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
gtk_tree_model_sort_sort (tree_model_sort);
}
static gboolean
+1 -1
View File
@@ -1165,7 +1165,7 @@ gtk_tree_selection_real_modify_range (GtkTreeSelection *selection,
start_path,
&end_tree,
&end_node);
anchor_path = end_path;
anchor_path = start_path;
break;
case 0:
_gtk_tree_view_find_node (selection->tree_view,
+34 -15
View File
@@ -74,6 +74,8 @@ static void gtk_tree_store_set_column_type (GtkTreeStore *tree_store,
/* DND interfaces */
static gboolean real_gtk_tree_store_row_draggable (GtkTreeDragSource *drag_source,
GtkTreePath *path);
static gboolean gtk_tree_store_drag_data_delete (GtkTreeDragSource *drag_source,
GtkTreePath *path);
static gboolean gtk_tree_store_drag_data_get (GtkTreeDragSource *drag_source,
@@ -231,6 +233,7 @@ gtk_tree_store_tree_model_init (GtkTreeModelIface *iface)
static void
gtk_tree_store_drag_source_init (GtkTreeDragSourceIface *iface)
{
iface->row_draggable = real_gtk_tree_store_row_draggable;
iface->drag_data_delete = gtk_tree_store_drag_data_delete;
iface->drag_data_get = gtk_tree_store_drag_data_get;
}
@@ -1561,6 +1564,12 @@ gtk_tree_store_iter_is_valid (GtkTreeStore *tree_store,
/* DND */
static gboolean real_gtk_tree_store_row_draggable (GtkTreeDragSource *drag_source,
GtkTreePath *path)
{
return TRUE;
}
static gboolean
gtk_tree_store_drag_data_delete (GtkTreeDragSource *drag_source,
GtkTreePath *path)
@@ -2104,7 +2113,7 @@ gtk_tree_store_swap (GtkTreeStore *tree_store,
g_free (order);
}
/* WARNING: this function is *incredibly* fragily. Please smashtest after
/* WARNING: this function is *incredibly* fragile. Please smashtest after
* making changes here.
* -Kris
*/
@@ -2328,6 +2337,8 @@ gtk_tree_store_move (GtkTreeStore *tree_store,
/* after with sibling = NULL prepends */
g_node_insert_after (parent, NULL, node);
}
handle_b = FALSE;
}
if (handle_b)
@@ -2394,13 +2405,13 @@ gtk_tree_store_move (GtkTreeStore *tree_store,
order[i] = i;
}
path = gtk_tree_path_new ();
gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_store),
path, NULL, order);
if (depth)
path = gtk_tree_model_get_path (GTK_TREE_MODEL (tree_store), &parent_iter);
else
path = gtk_tree_path_new ();
for (i = 0; i < length; i++)
g_print ("%2d ", order[i]);
g_print ("\n");
gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_store),
path, &parent_iter, order);
gtk_tree_path_free (path);
if (position)
@@ -2527,7 +2538,12 @@ gtk_tree_store_sort_helper (GtkTreeStore *tree_store,
node = parent->children;
if (node == NULL || node->next == NULL)
return;
{
if (recurse && node && node->children)
gtk_tree_store_sort_helper (tree_store, node, TRUE);
return;
}
g_assert (GTK_TREE_STORE_IS_SORTED (tree_store));
@@ -2806,7 +2822,7 @@ gtk_tree_store_get_sort_column_id (GtkTreeSortable *sortable,
g_return_val_if_fail (GTK_IS_TREE_STORE (sortable), FALSE);
if (tree_store->sort_column_id == -1)
if (tree_store->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
return FALSE;
if (sort_column_id)
@@ -2831,7 +2847,7 @@ gtk_tree_store_set_sort_column_id (GtkTreeSortable *sortable,
(tree_store->order == order))
return;
if (sort_column_id != -1)
if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
{
GtkTreeDataSortHeader *header = NULL;
@@ -2849,9 +2865,9 @@ gtk_tree_store_set_sort_column_id (GtkTreeSortable *sortable,
tree_store->sort_column_id = sort_column_id;
tree_store->order = order;
gtk_tree_store_sort (tree_store);
gtk_tree_sortable_sort_column_changed (sortable);
gtk_tree_store_sort (tree_store);
}
static void
@@ -2898,6 +2914,9 @@ gtk_tree_store_set_sort_func (GtkTreeSortable *sortable,
header->func = func;
header->data = data;
header->destroy = destroy;
if (tree_store->sort_column_id == sort_column_id)
gtk_tree_store_sort (tree_store);
}
static void
@@ -2921,6 +2940,9 @@ gtk_tree_store_set_default_sort_func (GtkTreeSortable *sortable,
tree_store->default_sort_func = func;
tree_store->default_sort_data = data;
tree_store->default_sort_destroy = destroy;
if (tree_store->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
gtk_tree_store_sort (tree_store);
}
static gboolean
@@ -2948,6 +2970,3 @@ validate_gnode (GNode* node)
iter = iter->next;
}
}
+109 -43
View File
@@ -348,6 +348,8 @@ static void gtk_tree_view_real_set_cursor (GtkTreeView
gboolean clamp_node);
static gboolean gtk_tree_view_has_special_cell (GtkTreeView *tree_view);
static gboolean expand_collapse_timeout (gpointer data);
/* interactive search */
static void gtk_tree_view_search_dialog_destroy (GtkWidget *search_dialog,
GtkTreeView *tree_view);
@@ -1548,6 +1550,54 @@ gtk_tree_view_size_request (GtkWidget *widget,
}
}
static void
invalidate_column (GtkTreeView *tree_view,
GtkTreeViewColumn *column)
{
gint column_offset = 0;
GList *list;
GtkWidget *widget = GTK_WIDGET (tree_view);
if (!GTK_WIDGET_REALIZED (widget))
return;
for (list = tree_view->priv->columns; list; list = list->next)
{
GtkTreeViewColumn *tmpcolumn = list->data;
if (tmpcolumn == column)
{
GdkRectangle invalid_rect;
invalid_rect.x = column_offset;
invalid_rect.y = 0;
invalid_rect.width = column->width;
invalid_rect.height = widget->allocation.height;
gdk_window_invalidate_rect (widget->window, &invalid_rect, TRUE);
break;
}
column_offset += tmpcolumn->width;
}
}
static void
invalidate_last_column (GtkTreeView *tree_view)
{
GList *last_column;
for (last_column = g_list_last (tree_view->priv->columns);
last_column; last_column = last_column->prev)
{
if (GTK_TREE_VIEW_COLUMN (last_column->data)->visible)
{
invalidate_column (tree_view, last_column->data);
return;
}
}
}
/* GtkWidget::size_allocate helper */
static void
gtk_tree_view_size_allocate_columns (GtkWidget *widget)
@@ -1573,7 +1623,11 @@ gtk_tree_view_size_allocate_columns (GtkWidget *widget)
for (list = tree_view->priv->columns; list != last_column->next; list = list->next)
{
gint real_requested_width = 0;
gint old_width;
column = list->data;
old_width = column->width;
if (!column->visible)
continue;
@@ -1619,15 +1673,23 @@ gtk_tree_view_size_allocate_columns (GtkWidget *widget)
allocation.x = width;
column->width = real_requested_width;
if (list == last_column &&
width + real_requested_width < widget->allocation.width)
{
column->width += (widget->allocation.width - column->width - width);
}
g_object_notify (G_OBJECT (column), "width");
allocation.width = column->width;
width += column->width;
if (column->width > old_width)
invalidate_column (tree_view, column);
gtk_widget_size_allocate (column->button, &allocation);
if (column->window)
gdk_window_move_resize (column->window,
allocation.x + allocation.width - TREE_VIEW_DRAG_WIDTH/2,
@@ -1636,38 +1698,6 @@ gtk_tree_view_size_allocate_columns (GtkWidget *widget)
}
}
static void
invalidate_last_column (GtkTreeView *tree_view)
{
GList *list, *last_column;
gint last_column_x;
GtkWidget *widget = GTK_WIDGET (tree_view);
for (last_column = g_list_last (tree_view->priv->columns);
last_column && !(GTK_TREE_VIEW_COLUMN (last_column->data)->visible);
last_column = last_column->prev)
;
last_column_x = 0;
for (list = tree_view->priv->columns; list; list = list->next)
{
GtkTreeViewColumn *column = list->data;
if (list == last_column)
{
GdkRectangle invalid_rect;
invalid_rect.x = last_column_x;
invalid_rect.y = 0;
invalid_rect.width = column->width;
invalid_rect.height = widget->allocation.height;
gdk_window_invalidate_rect (widget->window, &invalid_rect, TRUE);
break;
}
last_column_x += column->width;
}
}
static void
gtk_tree_view_size_allocate (GtkWidget *widget,
@@ -1876,6 +1906,8 @@ gtk_tree_view_button_press (GtkWidget *widget,
return FALSE;
}
tree_view->priv->focus_column = column;
/* decide if we edit */
if (event->type == GDK_BUTTON_PRESS &&
!(event->state & gtk_accelerator_get_default_mod_mask ()))
@@ -1947,7 +1979,6 @@ gtk_tree_view_button_press (GtkWidget *widget,
/* select */
pre_val = tree_view->priv->vadjustment->value;
tree_view->priv->focus_column = column;
focus_cell = _gtk_tree_view_column_get_cell_at_pos (column, event->x - background_area.x);
if (focus_cell)
gtk_tree_view_column_focus_cell (column, focus_cell);
@@ -3907,6 +3938,7 @@ validate_visible_area (GtkTreeView *tree_view)
else
{
/* row not visible */
if (dy >= 0 && dy <= tree_view->priv->vadjustment->page_size)
{
/* row at the beginning -- fixed */
@@ -3930,7 +3962,7 @@ validate_visible_area (GtkTreeView *tree_view)
* of the view
*/
area_above = 0;
area_above = total_height - height;
area_below = total_height - height;
}
}
}
@@ -4097,6 +4129,7 @@ validate_visible_area (GtkTreeView *tree_view)
/* We temporarily guess a size, under the assumption that it will be the
* same when we get our next size_allocate. If we don't do this, we'll be
* in an inconsistent state if we call top_row_to_dy. */
gtk_widget_size_request (GTK_WIDGET (tree_view), &requisition);
tree_view->priv->hadjustment->upper = MAX (tree_view->priv->hadjustment->upper, (gfloat)requisition.width);
tree_view->priv->vadjustment->upper = MAX (tree_view->priv->vadjustment->upper, (gfloat)requisition.height);
gtk_adjustment_changed (tree_view->priv->hadjustment);
@@ -4128,11 +4161,13 @@ validate_visible_area (GtkTreeView *tree_view)
{
dy = 0;
}
gtk_adjustment_set_value (tree_view->priv->vadjustment, dy);
need_redraw = TRUE;
}
if (tree_view->priv->scroll_to_path)
if (tree_view->priv->scroll_to_path &&
! GTK_RBNODE_FLAG_SET (tree_view->priv->tree->root, GTK_RBNODE_DESCENDANTS_INVALID))
{
gtk_tree_row_reference_free (tree_view->priv->scroll_to_path);
tree_view->priv->scroll_to_path = NULL;
@@ -5720,6 +5755,12 @@ gtk_tree_view_style_set (GtkWidget *widget,
tree_view = GTK_TREE_VIEW (widget);
if (GTK_WIDGET_REALIZED (widget))
{
gdk_window_set_background (widget->window, &widget->style->base[widget->state]);
gdk_window_set_background (tree_view->priv->bin_window, &widget->style->base[widget->state]);
}
gtk_widget_style_get (widget,
"expander_size", &tree_view->priv->expander_size,
NULL);
@@ -6252,6 +6293,13 @@ gtk_tree_view_row_deleted (GtkTreeModel *model,
g_signal_emit_by_name (tree_view->priv->selection, "changed");
}
static void
cancel_arrow_animation (GtkTreeView *tree_view)
{
if (tree_view->priv->expand_collapse_timeout)
while (expand_collapse_timeout (tree_view));
tree_view->priv->expand_collapse_timeout = 0;
}
static void
gtk_tree_view_rows_reordered (GtkTreeModel *model,
@@ -6292,6 +6340,9 @@ gtk_tree_view_rows_reordered (GtkTreeModel *model,
/* we need to be unprelighted */
ensure_unprelighted (tree_view);
/* clear the timeout */
cancel_arrow_animation (tree_view);
_gtk_rbtree_reorder (tree, new_order, len);
@@ -6567,8 +6618,6 @@ gtk_tree_view_clamp_node_visible (GtkTreeView *tree_view,
{
GtkTreePath *path = NULL;
/* We process updates because we want to clear old selected items when we scroll.
* if this is removed, we get a "selection streak" at the bottom. */
if (!GTK_WIDGET_REALIZED (tree_view))
return;
@@ -6576,6 +6625,9 @@ gtk_tree_view_clamp_node_visible (GtkTreeView *tree_view,
if (path)
{
/* We process updates because we want to clear old selected items when we scroll.
* if this is removed, we get a "selection streak" at the bottom. */
gdk_window_process_updates (tree_view->priv->bin_window, TRUE);
gtk_tree_view_scroll_to_cell (tree_view, path, NULL, FALSE, 0.0, 0.0);
gtk_tree_path_free (path);
}
@@ -7786,8 +7838,6 @@ gtk_tree_view_adjustment_changed (GtkAdjustment *adjustment,
/* update our dy and top_row */
tree_view->priv->dy = (int) tree_view->priv->vadjustment->value;
gtk_tree_view_dy_to_top_row (tree_view);
gdk_window_process_updates (tree_view->priv->bin_window, TRUE);
gdk_window_process_updates (tree_view->priv->header_window, TRUE);
}
}
@@ -7920,18 +7970,20 @@ gtk_tree_view_set_model (GtkTreeView *tree_view,
GtkTreePath *path;
GtkTreeIter iter;
if (tree_view->priv->search_column == -1)
{
for (i = 0; i < gtk_tree_model_get_n_columns (model); i++)
{
if (gtk_tree_model_get_column_type (model, i) == G_TYPE_STRING)
GType type = gtk_tree_model_get_column_type (model, i);
if (g_value_type_transformable (type, G_TYPE_STRING))
{
tree_view->priv->search_column = i;
break;
}
}
}
g_object_ref (tree_view->priv->model);
g_signal_connect (tree_view->priv->model,
"row_changed",
@@ -9579,6 +9631,7 @@ gtk_tree_view_real_set_cursor (GtkTreeView *tree_view,
_gtk_tree_selection_internal_select_node (tree_view->priv->selection,
node, tree, path,
state, FALSE);
if (clamp_node)
{
gtk_tree_view_clamp_node_visible (tree_view, tree, node);
@@ -10816,10 +10869,22 @@ gtk_tree_view_search_equal_func (GtkTreeModel *model,
gchar *case_normalized_string;
gchar *case_normalized_key;
GValue value = {0,};
GValue transformed = {0,};
gint key_len;
gtk_tree_model_get_value (model, iter, column, &value);
normalized_string = g_utf8_normalize (g_value_get_string (&value), -1, G_NORMALIZE_ALL);
g_value_init (&transformed, G_TYPE_STRING);
if (!g_value_transform (&value, &transformed))
{
g_value_unset (&value);
return FALSE;
}
g_value_unset (&value);
normalized_string = g_utf8_normalize (g_value_get_string (&transformed), -1, G_NORMALIZE_ALL);
normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL);
case_normalized_string = g_utf8_casefold (normalized_string, -1);
case_normalized_key = g_utf8_casefold (normalized_key, -1);
@@ -10829,7 +10894,7 @@ gtk_tree_view_search_equal_func (GtkTreeModel *model,
if (!strncmp (case_normalized_key, case_normalized_string, key_len))
retval = FALSE;
g_value_unset (&value);
g_value_unset (&transformed);
g_free (normalized_key);
g_free (normalized_string);
g_free (case_normalized_key);
@@ -11051,6 +11116,7 @@ gtk_tree_view_start_editing (GtkTreeView *tree_view,
cursor_path,
tree_view->priv->focus_column,
&cell_area);
if (_gtk_tree_view_column_cell_event (tree_view->priv->focus_column,
&editable_widget,
NULL,
+16 -8
View File
@@ -1103,8 +1103,9 @@ _gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column)
{
GtkTreeViewColumnCellInfo *cellinfo = list->data;
if (cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE ||
cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE)
if ((cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE ||
cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE) &&
cellinfo->cell->visible)
i++;
}
@@ -2109,7 +2110,7 @@ gtk_tree_view_column_set_sort_column_id (GtkTreeViewColumn *tree_column,
gint sort_column_id)
{
g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column));
g_return_if_fail (sort_column_id >= 0);
g_return_if_fail (sort_column_id >= -1);
if (tree_column->sort_column_id == sort_column_id)
return;
@@ -2119,6 +2120,8 @@ gtk_tree_view_column_set_sort_column_id (GtkTreeViewColumn *tree_column,
/* Handle unsetting the id */
if (sort_column_id == -1)
{
GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_column->tree_view));
if (tree_column->sort_clicked_signal)
{
g_signal_handler_disconnect (tree_column, tree_column->sort_clicked_signal);
@@ -2127,12 +2130,13 @@ gtk_tree_view_column_set_sort_column_id (GtkTreeViewColumn *tree_column,
if (tree_column->sort_column_changed_signal)
{
g_signal_handler_disconnect (tree_column, tree_column->sort_column_changed_signal);
g_signal_handler_disconnect (model, tree_column->sort_column_changed_signal);
tree_column->sort_column_changed_signal = 0;
}
gtk_tree_view_column_set_sort_order (tree_column, GTK_SORT_ASCENDING);
gtk_tree_view_column_set_sort_indicator (tree_column, FALSE);
gtk_tree_view_column_set_clickable (tree_column, FALSE);
return;
}
@@ -2465,7 +2469,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
full_requested_width += info->requested_width;
}
extra_space = background_area->width - full_requested_width;
extra_space = background_area->width - full_requested_width - dx;
if (extra_space < 0)
extra_space = 0;
else if (extra_space > 0 && expand_cell_count > 0)
@@ -3253,7 +3257,8 @@ _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
if (info->cell == cell)
break;
*left += info->real_width;
if (info->cell->visible)
*left += info->real_width;
}
}
@@ -3283,7 +3288,8 @@ _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
GtkTreeViewColumnCellInfo *info =
(GtkTreeViewColumnCellInfo *)list->data;
*right += info->real_width;
if (info->cell->visible)
*right += info->real_width;
}
}
}
@@ -3309,7 +3315,9 @@ gtk_tree_view_column_cell_get_position (GtkTreeViewColumn *tree_column,
found_cell = TRUE;
break;
}
current_x += cellinfo->real_width;
if (cellinfo->cell->visible)
current_x += cellinfo->real_width;
}
if (found_cell)
+1 -1
View File
@@ -1520,7 +1520,7 @@ gtk_window_activate_focus (GtkWindow *window)
* is not focused then <literal>GTK_WIDGET_HAS_FOCUS (widget)</literal> will
* not be %TRUE for the widget.
*
* Return value: the currently focused widget.
* Return value: the currently focused widget, or %NULL if there is none.
**/
GtkWidget *
gtk_window_get_focus (GtkWindow *window)
-477
View File
@@ -1,477 +0,0 @@
####
#### Out of order! Use autoconfiscation.
####
## Makefile for building the GTK DLL with gcc on Win32
## Use: make -f makefile.mingw
## There is no install target, you have to decide where and
## how to install for yourself.
OPTIMIZE = -g
TOP = ../..
include ../build/win32/make.mingw
################################################################
# Possibly override versions from build/win32/module.defs
GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
GDK_PIXBUF_VER = @GDK_PIXBUF_MAJOR@.@GDK_PIXBUF_MINOR@
GDK_LIBS = -L ../gdk -lgdk-win32-$(GTK_VER)
GTK_LIBS = -L . -lgtk-win32-$(GTK_VER)
GDK_PIXBUF_LIBS = -L ../gdk-pixbuf -lgdk_pixbuf-$(GDK_PIXBUF_VER)
# Perl and awk are needed to generate some source files.
# These generated source files are distributed with the Win32 GTk+ source
# distributions, so don't worry if you don't have perl and awk.
PERL = perl
AWK = awk
INCLUDES = -I . -I .. -I ../gdk -I ../gdk-pixbuf
DEPCFLAGS = $(PANGO_CFLAGS) $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) $(INTL_CFLAGS)
DEFINES = -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" -DGTK_VERSION=\"@GTK_VERSION@\"
GLIB_GENMARSHAL = $(GLIB)/gobject/glib-genmarshal.exe
all : \
../config.h \
generated \
gtk-win32-$(GTK_VER).dll\
testcalendar.exe \
testdnd.exe \
testgtk.exe \
testinput.exe \
testrgb.exe \
testselection.exe \
testtext.exe \
testtextbuffer.exe \
simple.exe
gtk_OBJECTS = \
fnmatch.o \
gtkaccelgroup.o \
gtkaccellabel.o \
gtkadjustment.o \
gtkalignment.o \
gtkarg.o \
gtkarrow.o \
gtkaspectframe.o \
gtkbin.o \
gtkbindings.o \
gtkbbox.o \
gtkbox.o \
gtkbutton.o \
gtkcalendar.o \
gtkcellrenderer.o \
gtkcellrenderertext.o \
gtkcellrenderertextpixbuf.o \
gtkcellrenderertoggle.o \
gtkcellrendererpixbuf.o \
gtkcheckbutton.o \
gtkcheckmenuitem.o \
gtkclipboard.o \
gtkclist.o \
gtkcolorsel.o \
gtkcolorseldialog.o \
gtkcombo.o \
gtkcontainer.o \
gtkctree.o \
gtkcurve.o \
gtkdialog.o \
gtkdnd.o \
gtkdrawingarea.o \
gtkeditable.o \
gtkentry.o \
gtkeventbox.o \
gtkfilesel.o \
gtkfixed.o \
gtkfontsel.o \
gtkframe.o \
gtkgamma.o \
gtkgc.o \
gtkhandlebox.o \
gtkhbbox.o \
gtkhbox.o \
gtkhpaned.o \
gtkhruler.o \
gtkhscale.o \
gtkhscrollbar.o \
gtkhseparator.o \
gtkhsv.o \
gtkiconfactory.o \
gtkimage.o \
gtkimagemenuitem.o \
gtkimcontext.o \
gtkimcontextsimple.o \
gtkimmodule.o \
gtkimmulticontext.o \
gtkinputdialog.o \
gtkinvisible.o \
gtkitem.o \
gtkitemfactory.o \
gtklabel.o \
gtklayout.o \
gtklist.o \
gtklistitem.o \
gtkmain.o \
gtkmenu.o \
gtkmenubar.o \
gtkmenufactory.o \
gtkmenuitem.o \
gtkmenushell.o \
gtkmessagedialog.o \
gtkmisc.o \
gtknotebook.o \
gtkobject.o \
gtkoldeditable.o \
gtkoptionmenu.o \
gtkpacker.o \
gtkpaned.o \
gtkpixmap.o \
gtkplug.o \
gtkpreview.o \
gtkprogress.o \
gtkprogressbar.o \
gtkradiobutton.o \
gtkradiomenuitem.o \
gtkrange.o \
gtkrbtree.o \
gtkrc.o \
gtkruler.o \
gtkscale.o \
gtkscrollbar.o \
gtkscrolledwindow.o \
gtkselection.o \
gtkseparator.o \
gtkseparatormenuitem.o \
gtksettings.o \
gtksignal.o \
gtksocket.o \
gtkspinbutton.o \
gtkstyle.o \
gtkstatusbar.o \
gtkstock.o \
gtktable.o \
gtktearoffmenuitem.o \
gtktext.o \
gtktextbtree.o \
gtktextbuffer.o \
gtktextchild.o \
gtktextdisplay.o \
gtktextiter.o \
gtktextlayout.o \
gtktextmark.o \
gtktextsegment.o \
gtktexttag.o \
gtktexttagtable.o \
gtktexttypes.o \
gtktextview.o \
gtkthemes.o \
gtktipsquery.o \
gtktogglebutton.o \
gtktoolbar.o \
gtktooltips.o \
gtktree.o \
gtktreeitem.o \
gtktreedatalist.o \
gtktreednd.o \
gtktreemodel.o \
gtktreemodelsort.o \
gtktreeselection.o \
gtktreestore.o \
gtktreeview.o \
gtktreeviewcolumn.o \
gtktypeutils.o \
gtkvbbox.o \
gtkvbox.o \
gtkviewport.o \
gtkvpaned.o \
gtkvruler.o \
gtkvscale.o \
gtkvscrollbar.o \
gtkvseparator.o \
gtkwidget.o \
gtkwindow.o \
gtkwindow-decorate.o
# Source headers which are non-autogenerated headers
gtk_public_h_sources = \
gtk.h \
gtkaccelgroup.h \
gtkaccellabel.h \
gtkadjustment.h \
gtkalignment.h \
gtkarg.h \
gtkarrow.h \
gtkaspectframe.h \
gtkbin.h \
gtkbindings.h \
gtkbbox.h \
gtkbox.h \
gtkbutton.h \
gtkcalendar.h \
gtkcheckbutton.h \
gtkcheckmenuitem.h \
gtkseparatormenuitem.h \
gtkclist.h \
gtkclipboard.h \
gtkcolorsel.h \
gtkcolorseldialog.h \
gtkcombo.h \
gtkcontainer.h \
gtkctree.h \
gtkcurve.h \
gtkcellrenderer.h \
gtkcellrenderertext.h \
gtkcellrenderertextpixbuf.h \
gtkcellrenderertoggle.h \
gtkcellrendererpixbuf.h \
gtkdebug.h \
gtkdialog.h \
gtkdnd.h \
gtkdrawingarea.h \
gtkeditable.h \
gtkentry.h \
gtkenums.h \
gtkeventbox.h \
gtkfilesel.h \
gtkfixed.h \
gtkfontsel.h \
gtkframe.h \
gtkgamma.h \
gtkgc.h \
gtkhandlebox.h \
gtkhbbox.h \
gtkhbox.h \
gtkhpaned.h \
gtkhruler.h \
gtkhscale.h \
gtkhscrollbar.h \
gtkhseparator.h \
gtkhsv.h \
gtkiconfactory.h \
gtkimage.h \
gtkimagemenuitem.h \
gtkimcontext.h \
gtkimmodule.h \
gtkimmulticontext.h \
gtkinputdialog.h \
gtkinvisible.h \
gtkitem.h \
gtkitemfactory.h \
gtklabel.h \
gtklayout.h \
gtklist.h \
gtklistitem.h \
gtkliststore.h \
gtkmain.h \
gtkmenu.h \
gtkmenubar.h \
gtkmenufactory.h \
gtkmenuitem.h \
gtkmenushell.h \
gtkmessagedialog.h \
gtkmisc.h \
gtknotebook.h \
gtkoldeditable.h \
gtkobject.h \
gtkoptionmenu.h \
gtkpacker.h \
gtkpaned.h \
gtkpixmap.h \
gtkplug.h \
gtkpreview.h \
gtkprivate.h \
gtkprogress.h \
gtkprogressbar.h \
gtkradiobutton.h \
gtkradiomenuitem.h \
gtkrange.h \
gtkrc.h \
gtkruler.h \
gtkscale.h \
gtkscrollbar.h \
gtkscrolledwindow.h \
gtkselection.h \
gtkseparator.h \
gtksettings.h \
gtksignal.h \
gtksocket.h \
gtkspinbutton.h \
gtkstyle.h \
gtkstatusbar.h \
gtkstock.h \
gtktable.h \
gtktearoffmenuitem.h \
gtktextbuffer.h \
gtktextchild.h \
gtktextdisplay.h \
gtktextiter.h \
gtktextlayout.h \
gtktextmark.h \
gtktexttag.h \
gtktexttagtable.h \
gtktextview.h \
gtktext.h \
gtktipsquery.h \
gtktogglebutton.h \
gtktoolbar.h \
gtktooltips.h \
gtktree.h \
gtktreednd.h \
gtktreeitem.h \
gtktreemodel.h \
gtktreemodelsort.h \
gtktreeselection.h \
gtktreesortable.h \
gtktreestore.h \
gtktreeview.h \
gtktreeviewcolumn.h \
gtktypeutils.h \
gtkvbbox.h \
gtkvbox.h \
gtkviewport.h \
gtkvpaned.h \
gtkvruler.h \
gtkvscale.h \
gtkvscrollbar.h \
gtkvseparator.h \
gtkwidget.h \
gtkwindow.h
# More headers to use when autogenerating.
gdk_headers = \
../gdk/gdkcolor.h \
../gdk/gdkcursor.h \
../gdk/gdkdnd.h \
../gdk/gdkdrawable.h \
../gdk/gdkevents.h \
../gdk/gdkfont.h \
../gdk/gdkgc.h \
../gdk/gdkimage.h \
../gdk/gdkinput.h \
../gdk/gdkpixmap.h \
../gdk/gdkproperty.h \
../gdk/gdkregion.h \
../gdk/gdkrgb.h \
../gdk/gdkselection.h \
../gdk/gdktypes.h \
../gdk/gdkvisual.h \
../gdk/gdkwindow.h
../config.h : ../config.h.win32
cp $< $@
GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
#
# Generated source files:
#
generated : $(GENERATED)
gtk.defs : makeenums.pl gtk-boxed.defs $(gtk_public_h_sources) $(gdk_headers)
$(PERL) makeenums.pl defs $(gtk_public_h_sources) $(gdk_headers) >gd.tmp
cat gd.tmp gtk-boxed.defs >gtk.defs
rm gd.tmp
# generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
gtktypebuiltins.h: gtk.defs maketypes.awk
$(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
# generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
gtktypebuiltins_vars.c: gtk.defs maketypes.awk
$(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
# generate type entries for type-id registration
gtktypebuiltins_ids.c: gtk.defs maketypes.awk
$(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
# generate enum value arrays
gtktypebuiltins_evals.c: makeenums.pl gtk.defs
$(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) >gtktypebuiltins_evals.c
gtkmarshal.h : gtkmarshal.list
$(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h
gtkmarshal.c : gtkmarshal.list
$(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
#
# Linking:
#
gtk-win32-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def
$(GLIB)/build-dll gtk-win32 $(GTK_VER) gtk.def $(gtk_OBJECTS) $(GDK_LIBS) $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LIBICONV_LIBS) $(INTL_LIBS) -luser32
#
# Test programs:
#
testcalendar.exe : testcalendar.o
$(CC) $(CFLAGS) -o $@ testcalendar.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
# Must have separate rules for these objects that don't go in the DLL
testcalendar.o : testcalendar.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testcalendar\" testcalendar.c
testdnd.exe : testdnd.o
$(CC) $(CFLAGS) -o $@ testdnd.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testdnd.o : testdnd.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
testgtk.exe : testgtk.o
$(CC) $(CFLAGS) -o $@ testgtk.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testgtk.o : testgtk.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
testinput.exe : testinput.o
$(CC) $(CFLAGS) -o $@ testinput.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testinput.o : testinput.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
testrgb.exe : testrgb.o
$(CC) $(CFLAGS) -o $@ testrgb.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testrgb.o : testrgb.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
testselection.exe : testselection.o
$(CC) $(CFLAGS) -o $@ testselection.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testselection.o : testselection.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
testtext.exe : testtext.o
$(CC) $(CFLAGS) -o $@ testtext.o $(PANGO_LIBS) $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testtext.o : testtext.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtext\" testtext.c
testtextbuffer.exe : testtextbuffer.o
$(CC) $(CFLAGS) -o $@ testtextbuffer.o $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testtextbuffer.o : testtextbuffer.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c
simple.exe : simple.o
$(CC) $(CFLAGS) -o $@ simple.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
simple.o : simple.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"simple\" simple.c
# The rmgen target removes just the generated source files
rmgen:
-rm $(GENERATED)
# Hack to get an updated makefile.mingw automatically after updating
# makefile.mingw.in. Only for developer use.
makefile.mingw: makefile.mingw.in
sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
-e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' \
-e 's,@GTK[_]VERSION@,@GTK_VERSION@,' \
-e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \
-e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,' <$< >$@
-6
View File
@@ -1,6 +0,0 @@
Makefile.in
Makefile
.deps
.libs
*.lo
*.la
-252
View File
@@ -1,252 +0,0 @@
Fri Sep 6 20:32:45 2002 Owen Taylor <otaylor@redhat.com>
* pixbuf-draw.c: Account for the possibility of detail == NULL
(#89561, Hongli Lai, Luca Barbato)
Sun Apr 21 14:10:04 2002 Owen Taylor <otaylor@redhat.com>
* pixbuf-rc-style.c pixbuf.h pixbuf-draw.c: Add a fake STEPPER
function that is used for drawing scrollbar steppers,
so that themes that want to draw the button and arrow
separately can override the default handling.
* pixbuf-draw.c: Remove draw_polygon() since it was
just a cut-and-paste of the default one. Remove
some unused code.
2002-03-07 James Henstridge <james@daa.com.au>
* Makefile.am (libpixmap_la_LIBADD): link pixbuf engine against
the gtk+ libraries, so that it can be used with programs that
dlopen gtk+ without the RTLD_GLOBAL flag (such as scripting
languages and mozilla).
Thu Feb 7 00:21:21 2002 Owen Taylor <otaylor@redhat.com>
* pixbuf-render.c (pixbuf_render): Add gradient
rendering -- if the source width/height is zero,
render a gradient from the surrounding values.
Mon Jan 28 15:34:43 2002 Owen Taylor <otaylor@redhat.com>
* pixbuf-render.c (compute_hint): Fix hint computation
again.
Mon Jan 28 12:17:07 2002 Owen Taylor <otaylor@redhat.com>
* pixbuf-render.c (compute_hint): Fix problems in computing
MISSING hint.
Sun Jan 27 23:58:13 2002 Owen Taylor <otaylor@redhat.com>
* pixbuf-render.c (compute_hint): Optimize the case
where a component is entirely transparent by skipping
drawing it.
* pixbuf-rc-style.c (theme_parse_image): Catch case
where background or overlay border/stretch are specified
without a background image.
* pixbuf-render.c (theme_pixbuf_destroy): Actually free
the structure and filename.
=================== Move back into gtk-engines ====================
Sat Jan 19 02:45:17 2002 Owen Taylor <otaylor@redhat.com>
* src/pixbuf-render.c (theme_pixbuf_compute_hints): Catch
invalid borders, and warn.
Sat Jan 19 00:32:14 2002 Owen Taylor <otaylor@redhat.com>
* examples/*: Add an extrodinarily ugly example.
* src/pixbuf-draw.c (draw_simple_image): Never shape
the window, even if we are allowed to. Shaping is
ugly -- if the widget isn't NO_WINDOW (most are),
you'll just have to draw it rectangular.
* src/pixbuf-render.c (pixbuf_render): Always use
gdk_pixbuf_render_alpha() with FULL_ALPHA() as the
type.
* pixbuf.h src/pixbuf-render.c (theme_pixbuf_compute_hints): To
speed up scaling, cache whether pixbufs have constant rows
or constant columns.
* src/pixbuf-render.c (pixbuf_render): Speed up scaling
by using the hints from compute_hints().
Fri Jan 18 20:49:48 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Use pkg-config to get the binray version
of GTK+ that we use for an install path.
Fri Jan 18 18:14:11 2002 Owen Taylor <otaylor@redhat.com>
* src/pixbuf-draw.c (draw_focus): Fix for changes to draw_focus.
2001-09-21 Hans Breuer <hans@breuer.org>
* src/pixbuf-rc-style-c : GtkRcStyle::parse has a GtkSettings
parameter now. Pass it through theme_parse_file () to use it
gtk_rc_find_pixmap_in_path ()
* src/pixbuf-draw.c : the font field from GtkStyle is private
now, use accessor gtk_style_get_font ()
* makefile.msc : compile on win32, use it if you have a _real_
fast computer or want to see gtk in slow motion :-)
Thu May 3 05:36:06 2001 Owen Taylor <otaylor@redhat.com>
* pixbuf.h: Fix trailing comma on enumeration. (#54071)
2001-03-05 Michael Natterer <mitch@gimp.org>
* src/pixbuf-draw.c: made the "parent_class" pointer static.
(Owen, I just commented out the draw methods which don't exist any
more to make it compile).
2001-02-20 Sven Neumann <sven@convergence.de>
* src/pixbuf-draw.c (draw_vline): use draw_vline method of
parent_class, not draw_hline
Wed Nov 15 21:56:28 2000 Owen Taylor <otaylor@redhat.com>
* src/pixbuf-*: A few updates for GTypePlugin.
Tue Jul 18 12:13:19 2000 Owen Taylor <otaylor@redhat.com>
Updates to work with GTK+-2.0 theme engine architecture.
It won't even sort of work with GTK+-1.2 any more.
* configure.in src/Makefile.am: Look for GTK+-2.0,
install engine into GTK+-2.0 location.
* src/pixbuf-style.h src/pixbuf-rc-style.[ch]: New
files for GtkRcStyle and GtkStyle subclasses. Parsing,
etc, moves to pixbuf-rc-style.[ch]
* src/pixbuf-draw.c: Chain up to parent implementation
when images aren't found for a certain element.
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.
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.
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.
Sun Feb 6 21:34:30 2000 Owen Taylor <otaylor@redhat.com>
* Started ChangeLog for pixbuf engine, check sources
into CVS.
========== ChangeLog for pixmap engine ===================
1999-11-22 Martin Baulig <martin@home-of-linux.org>
* pixmap_theme_main.c (theme_duplicate_style): Really copy the
`src_data->img_list', not just the pointer that points to it.
Tue Oct 5 15:13:29 1999 Owen Taylor <otaylor@redhat.com>
* pixmap_theme_draw.c (apply_theme_image): Don't set
background pixmap on pixmaps.
1999-02-14 Raja R Harinath <harinath@cs.umn.edu>
* Theme/gtk/Makefile.am.in (Makefile.am): Handle the case when
files are deleted.
Thu Feb 11 21:16:53 1999 Owen Taylor <otaylor@redhat.com>
* pixmap_theme_main.c (theme_data_unref): Free the
theme data structure as well as the contents.
1999-02-03 Raja R Harinath <harinath@cs.umn.edu>
* Theme/gtk/Makefile.am.in: New file. Theme/gtk/Makefile.am is
generated from this file when new *.png files are added.
1999-01-23 Miguel de Icaza <miguel@nuclecu.unam.mx>
* pixmap_theme_main.c (theme_init): Turn on pixmap cache.
Mon Jan 18 13:37:23 1999 Owen Taylor <otaylor@redhat.com>
* Theme/gtk/gtkrc: Give buttons a gray background
color so they look a little less funny when initially
drawing.
Wed Jan 13 18:58:25 1999 Owen Taylor <otaylor@redhat.com>
* pixmap_theme_draw.c: Fixed pervasive mis-bracketing
that was causing drawing if the drawn region and
clipping region did NOT intersect, and a couple
of errors in computing source and destination
regions.
1998-11-09 Federico Mena Quintero <federico@nuclecu.unam.mx>
* pixmap_theme_draw.c: #include <math.h>
1998-11-07 Raja R Harinath <harinath@cs.umn.edu>
* Theme/gtk/Makefile.am (theme_DATA):
Update to new directory contents.
* configure.in: Remove.
Fri Nov 6 17:26:12 1998 Owen Taylor <otaylor@redhat.com>
* pixmap_theme_main.c: Removed some debugging
printf's.
* Theme/gtk/notebook1.c Theme/gtk/menubar.png: new
bigger pixmaps to reduce pixelation.
* Theme/gtk/gtkrc: Reorganized to use several styles
instead of one huge style. Change clist backgrounds
to be prettier.
Thu Nov 5 10:23:46 1998 Owen Taylor <otaylor@redhat.com>
* pixmap_theme_draw.c (draw_shadow_gap): Fixed hard-coded
gap_side of '0'.
Mon Nov 2 14:46:02 1998 Owen Taylor <otaylor@redhat.com>
* pixmap_theme_draw.c (apply_theme_image_shadow_gap): Removed
several hundred lines of duplicated code with a bit of
reoriganization.
Wed Oct 28 16:18:04 1998 Owen Taylor <otaylor@redhat.com>
* pixmap_theme_main.c (theme_symbols): Removed lots
and lots of white space.
-21
View File
@@ -1,21 +0,0 @@
INCLUDES = $(GTK_CFLAGS)
enginedir = $(libdir)/gtk-2.0/$(GTK_VERSION)/engines
engine_LTLIBRARIES = libpixmap.la
libpixmap_la_SOURCES = \
pixbuf-draw.c \
pixbuf-main.c \
pixbuf-render.c \
pixbuf-rc-style.c \
pixbuf-rc-style.h \
pixbuf-style.h \
pixbuf.h
libpixmap_la_LDFLAGS = -avoid-version -module
libpixmap_la_LIBADD = $(GTK_LIBS)
dist-hook:
cp -pr examples $(distdir); \
find $(distdir)/examples -name 'CVS' -print | xargs rm -rf
-17
View File
@@ -1,17 +0,0 @@
The code in this directory is a GTK+ theme engine based on the earlier
pixmap theme engine.
The config files are meant to be compatible, but instead of rendering
using Imlib, it renders using GdkPixbuf. This makes the memory
management much more understandable, and also allows us to use
GdkPixbuf's high quality scaling.
Most of the code was reworked/rewritten in the process to make it more
understandable and maintainable.
There are lots of bugs here, a considersable number of bugs. But it's
cleaned up a great deal from the older pixmap engine. Please don't
make it uglier again.
Owen Taylor <otaylor@redhat.com>
6 February 2000
@@ -1,14 +0,0 @@
gtk-2.0/triangle-background.png is copyright Owen Taylor, 1997
and may be used without restriction as long as this attribution
is reproduced.
images/bc.pnm images/bc-dark.pnm images/bc-light.png are
from the BrushedMetalClean theme; I believe Tuomas Kuosmanen
and Carsten Haitzler had something to do with the original
BrushedMetal artwork.
This theme is truly hideous for a reason ... to demonstrate
that alpha-compositing is going on.
Owen Taylor
19 Jan 2002x
Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 836 B

@@ -1,65 +0,0 @@
style "default"
{
fg[NORMAL] = "#ffffff"
fg[PRELIGHT] = "#ffffff"
bg_pixmap[NORMAL] = "triangle_background.png"
# bg_pixmap[NORMAL] = "bc.png"
bg_pixmap[PRELIGHT] = "bc-light.png"
bg_pixmap[ACTIVE] = "bc-dark.png" bg_pixmap[INSENSITIVE] = "bc.png"
}
class "GtkWidget" style "default"
style "bubble-button"
{
engine "pixmap"
{
image
{
function = BOX
file = "bubble-blue.png"
border = { 8, 8, 8, 8 }
stretch = TRUE
}
}
}
# common default
class "GtkButton" style "bubble-button"
style "bubble-range"
{
GtkRange::slider_width = 16
GtkRange::stepper_size = 16
engine "pixmap"
{
image
{
function = BOX
file = "bubble-blue.png"
border = { 8, 8, 8, 8 }
stretch = TRUE
}
}
}
# common default
class "GtkRange" style "bubble-range"
style "bubble-menuitem"
{
engine "pixmap"
{
image
{
function = BOX
file = "bubble-blue.png"
border = { 8, 8, 8, 8 }
stretch = TRUE
}
}
}
# common default
class "GtkMenuItem" style "bubble-menuitem"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

File diff suppressed because it is too large Load Diff
-57
View File
@@ -1,57 +0,0 @@
/* GTK+ Pixbuf Engine
* Copyright (C) 1998-2000 Red Hat, Inc.
*
* 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.
*
* Written by Owen Taylor <otaylor@redhat.com>, based on code by
* Carsten Haitzler <raster@rasterman.com>
*/
#include "pixbuf.h"
#include "pixbuf-style.h"
#include "pixbuf-rc-style.h"
#include <gmodule.h>
G_MODULE_EXPORT void
theme_init (GTypeModule *module)
{
pixbuf_rc_style_register_type (module);
pixbuf_style_register_type (module);
}
G_MODULE_EXPORT void
theme_exit (void)
{
}
G_MODULE_EXPORT GtkRcStyle *
theme_create_rc_style (void)
{
return GTK_RC_STYLE (g_object_new (PIXBUF_TYPE_RC_STYLE, NULL));
}
/* The following function will be called by GTK+ when the module
* is loaded and checks to see if we are compatible with the
* version of GTK+ that loads us.
*/
G_MODULE_EXPORT const gchar* g_module_check_init (GModule *module);
const gchar*
g_module_check_init (GModule *module)
{
return gtk_check_version (GTK_MAJOR_VERSION,
GTK_MINOR_VERSION,
GTK_MICRO_VERSION - GTK_INTERFACE_AGE);
}
-815
View File
@@ -1,815 +0,0 @@
/* GTK+ Pixbuf Engine
* Copyright (C) 1998-2000 Red Hat, Inc.
*
* 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.
*
* Written by Owen Taylor <otaylor@redhat.com>, based on code by
* Carsten Haitzler <raster@rasterman.com>
*/
#include "pixbuf.h"
#include "pixbuf-style.h"
#include "pixbuf-rc-style.h"
static void pixbuf_rc_style_init (PixbufRcStyle *style);
static void pixbuf_rc_style_class_init (PixbufRcStyleClass *klass);
static void pixbuf_rc_style_finalize (GObject *object);
static guint pixbuf_rc_style_parse (GtkRcStyle *rc_style,
GtkSettings *settings,
GScanner *scanner);
static void pixbuf_rc_style_merge (GtkRcStyle *dest,
GtkRcStyle *src);
static GtkStyle *pixbuf_rc_style_create_style (GtkRcStyle *rc_style);
static void theme_image_unref (ThemeImage *data);
static struct
{
gchar *name;
guint token;
}
theme_symbols[] =
{
{ "image", TOKEN_IMAGE },
{ "function", TOKEN_FUNCTION },
{ "file", TOKEN_FILE },
{ "stretch", TOKEN_STRETCH },
{ "recolorable", TOKEN_RECOLORABLE },
{ "border", TOKEN_BORDER },
{ "detail", TOKEN_DETAIL },
{ "state", TOKEN_STATE },
{ "shadow", TOKEN_SHADOW },
{ "gap_side", TOKEN_GAP_SIDE },
{ "gap_file", TOKEN_GAP_FILE },
{ "gap_border", TOKEN_GAP_BORDER },
{ "gap_start_file", TOKEN_GAP_START_FILE },
{ "gap_start_border", TOKEN_GAP_START_BORDER },
{ "gap_end_file", TOKEN_GAP_END_FILE },
{ "gap_end_border", TOKEN_GAP_END_BORDER },
{ "overlay_file", TOKEN_OVERLAY_FILE },
{ "overlay_border", TOKEN_OVERLAY_BORDER },
{ "overlay_stretch", TOKEN_OVERLAY_STRETCH },
{ "arrow_direction", TOKEN_ARROW_DIRECTION },
{ "orientation", TOKEN_ORIENTATION },
{ "HLINE", TOKEN_D_HLINE },
{ "VLINE", TOKEN_D_VLINE },
{ "SHADOW", TOKEN_D_SHADOW },
{ "POLYGON", TOKEN_D_POLYGON },
{ "ARROW", TOKEN_D_ARROW },
{ "DIAMOND", TOKEN_D_DIAMOND },
{ "OVAL", TOKEN_D_OVAL },
{ "STRING", TOKEN_D_STRING },
{ "BOX", TOKEN_D_BOX },
{ "FLAT_BOX", TOKEN_D_FLAT_BOX },
{ "CHECK", TOKEN_D_CHECK },
{ "OPTION", TOKEN_D_OPTION },
{ "CROSS", TOKEN_D_CROSS },
{ "RAMP", TOKEN_D_RAMP },
{ "TAB", TOKEN_D_TAB },
{ "SHADOW_GAP", TOKEN_D_SHADOW_GAP },
{ "BOX_GAP", TOKEN_D_BOX_GAP },
{ "EXTENSION", TOKEN_D_EXTENSION },
{ "FOCUS", TOKEN_D_FOCUS },
{ "SLIDER", TOKEN_D_SLIDER },
{ "ENTRY", TOKEN_D_ENTRY },
{ "HANDLE", TOKEN_D_HANDLE },
{ "STEPPER", TOKEN_D_STEPPER },
{ "TRUE", TOKEN_TRUE },
{ "FALSE", TOKEN_FALSE },
{ "TOP", TOKEN_TOP },
{ "UP", TOKEN_UP },
{ "BOTTOM", TOKEN_BOTTOM },
{ "DOWN", TOKEN_DOWN },
{ "LEFT", TOKEN_LEFT },
{ "RIGHT", TOKEN_RIGHT },
{ "NORMAL", TOKEN_NORMAL },
{ "ACTIVE", TOKEN_ACTIVE },
{ "PRELIGHT", TOKEN_PRELIGHT },
{ "SELECTED", TOKEN_SELECTED },
{ "INSENSITIVE", TOKEN_INSENSITIVE },
{ "NONE", TOKEN_NONE },
{ "IN", TOKEN_IN },
{ "OUT", TOKEN_OUT },
{ "ETCHED_IN", TOKEN_ETCHED_IN },
{ "ETCHED_OUT", TOKEN_ETCHED_OUT },
{ "HORIZONTAL", TOKEN_HORIZONTAL },
{ "VERTICAL", TOKEN_VERTICAL },
};
static GtkRcStyleClass *parent_class;
GType pixbuf_type_rc_style = 0;
void
pixbuf_rc_style_register_type (GTypeModule *module)
{
static const GTypeInfo object_info =
{
sizeof (PixbufRcStyleClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) pixbuf_rc_style_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (PixbufRcStyle),
0, /* n_preallocs */
(GInstanceInitFunc) pixbuf_rc_style_init,
};
pixbuf_type_rc_style = g_type_module_register_type (module,
GTK_TYPE_RC_STYLE,
"PixbufRcStyle",
&object_info, 0);
}
static void
pixbuf_rc_style_init (PixbufRcStyle *style)
{
}
static void
pixbuf_rc_style_class_init (PixbufRcStyleClass *klass)
{
GtkRcStyleClass *rc_style_class = GTK_RC_STYLE_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
rc_style_class->parse = pixbuf_rc_style_parse;
rc_style_class->merge = pixbuf_rc_style_merge;
rc_style_class->create_style = pixbuf_rc_style_create_style;
object_class->finalize = pixbuf_rc_style_finalize;
}
static void
pixbuf_rc_style_finalize (GObject *object)
{
PixbufRcStyle *rc_style = PIXBUF_RC_STYLE (object);
g_list_foreach (rc_style->img_list, (GFunc) theme_image_unref, NULL);
g_list_free (rc_style->img_list);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static guint
theme_parse_file(GtkSettings *settings,
GScanner *scanner,
ThemePixbuf **theme_pb)
{
guint token;
gchar *pixmap;
/* Skip 'blah_file' */
token = g_scanner_get_next_token(scanner);
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_STRING)
return G_TOKEN_STRING;
if (!*theme_pb)
*theme_pb = theme_pixbuf_new ();
pixmap = gtk_rc_find_pixmap_in_path(settings, scanner, scanner->value.v_string);
if (pixmap)
{
theme_pixbuf_set_filename (*theme_pb, pixmap);
g_free (pixmap);
}
return G_TOKEN_NONE;
}
static guint
theme_parse_border (GScanner *scanner,
ThemePixbuf **theme_pb)
{
guint token;
gint left, right, top, bottom;
/* Skip 'blah_border' */
token = g_scanner_get_next_token(scanner);
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_LEFT_CURLY)
return G_TOKEN_LEFT_CURLY;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_INT)
return G_TOKEN_INT;
left = scanner->value.v_int;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_COMMA)
return G_TOKEN_COMMA;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_INT)
return G_TOKEN_INT;
right = scanner->value.v_int;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_COMMA)
return G_TOKEN_COMMA;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_INT)
return G_TOKEN_INT;
top = scanner->value.v_int;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_COMMA)
return G_TOKEN_COMMA;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_INT)
return G_TOKEN_INT;
bottom = scanner->value.v_int;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_RIGHT_CURLY)
return G_TOKEN_RIGHT_CURLY;
if (!*theme_pb)
*theme_pb = theme_pixbuf_new ();
theme_pixbuf_set_border (*theme_pb, left, right, top, bottom);
return G_TOKEN_NONE;
}
static guint
theme_parse_stretch(GScanner *scanner,
ThemePixbuf **theme_pb)
{
guint token;
gboolean stretch;
/* Skip 'blah_stretch' */
token = g_scanner_get_next_token(scanner);
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token == TOKEN_TRUE)
stretch = TRUE;
else if (token == TOKEN_FALSE)
stretch = FALSE;
else
return TOKEN_TRUE;
if (!*theme_pb)
*theme_pb = theme_pixbuf_new ();
theme_pixbuf_set_stretch (*theme_pb, stretch);
return G_TOKEN_NONE;
}
static guint
theme_parse_recolorable(GScanner * scanner,
ThemeImage * data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_RECOLORABLE)
return TOKEN_RECOLORABLE;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token == TOKEN_TRUE)
data->recolorable = 1;
else if (token == TOKEN_FALSE)
data->recolorable = 0;
else
return TOKEN_TRUE;
return G_TOKEN_NONE;
}
static guint
theme_parse_function(GScanner * scanner,
ThemeImage *data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_FUNCTION)
return TOKEN_FUNCTION;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if ((token >= TOKEN_D_HLINE) && (token <= TOKEN_D_STEPPER))
data->match_data.function = token;
return G_TOKEN_NONE;
}
static guint
theme_parse_detail(GScanner * scanner,
ThemeImage * data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_DETAIL)
return TOKEN_DETAIL;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_STRING)
return G_TOKEN_STRING;
if (data->match_data.detail)
g_free (data->match_data.detail);
data->match_data.detail = g_strdup(scanner->value.v_string);
return G_TOKEN_NONE;
}
static guint
theme_parse_state(GScanner * scanner,
ThemeImage * data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_STATE)
return TOKEN_STATE;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token == TOKEN_NORMAL)
data->match_data.state = GTK_STATE_NORMAL;
else if (token == TOKEN_ACTIVE)
data->match_data.state = GTK_STATE_ACTIVE;
else if (token == TOKEN_PRELIGHT)
data->match_data.state = GTK_STATE_PRELIGHT;
else if (token == TOKEN_SELECTED)
data->match_data.state = GTK_STATE_SELECTED;
else if (token == TOKEN_INSENSITIVE)
data->match_data.state = GTK_STATE_INSENSITIVE;
else
return TOKEN_NORMAL;
data->match_data.flags |= THEME_MATCH_STATE;
return G_TOKEN_NONE;
}
static guint
theme_parse_shadow(GScanner * scanner,
ThemeImage * data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_SHADOW)
return TOKEN_SHADOW;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token == TOKEN_NONE)
data->match_data.shadow = GTK_SHADOW_NONE;
else if (token == TOKEN_IN)
data->match_data.shadow = GTK_SHADOW_IN;
else if (token == TOKEN_OUT)
data->match_data.shadow = GTK_SHADOW_OUT;
else if (token == TOKEN_ETCHED_IN)
data->match_data.shadow = GTK_SHADOW_ETCHED_IN;
else if (token == TOKEN_ETCHED_OUT)
data->match_data.shadow = GTK_SHADOW_ETCHED_OUT;
else
return TOKEN_NONE;
data->match_data.flags |= THEME_MATCH_SHADOW;
return G_TOKEN_NONE;
}
static guint
theme_parse_arrow_direction(GScanner * scanner,
ThemeImage * data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_ARROW_DIRECTION)
return TOKEN_ARROW_DIRECTION;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token == TOKEN_UP)
data->match_data.arrow_direction = GTK_ARROW_UP;
else if (token == TOKEN_DOWN)
data->match_data.arrow_direction = GTK_ARROW_DOWN;
else if (token == TOKEN_LEFT)
data->match_data.arrow_direction = GTK_ARROW_LEFT;
else if (token == TOKEN_RIGHT)
data->match_data.arrow_direction = GTK_ARROW_RIGHT;
else
return TOKEN_UP;
data->match_data.flags |= THEME_MATCH_ARROW_DIRECTION;
return G_TOKEN_NONE;
}
static guint
theme_parse_gap_side(GScanner * scanner,
ThemeImage * data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_GAP_SIDE)
return TOKEN_GAP_SIDE;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token == TOKEN_TOP)
data->match_data.gap_side = GTK_POS_TOP;
else if (token == TOKEN_BOTTOM)
data->match_data.gap_side = GTK_POS_BOTTOM;
else if (token == TOKEN_LEFT)
data->match_data.gap_side = GTK_POS_LEFT;
else if (token == TOKEN_RIGHT)
data->match_data.gap_side = GTK_POS_RIGHT;
else
return TOKEN_TOP;
data->match_data.flags |= THEME_MATCH_GAP_SIDE;
return G_TOKEN_NONE;
}
static guint
theme_parse_orientation(GScanner * scanner,
ThemeImage * data)
{
guint token;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_ORIENTATION)
return TOKEN_ORIENTATION;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_EQUAL_SIGN)
return G_TOKEN_EQUAL_SIGN;
token = g_scanner_get_next_token(scanner);
if (token == TOKEN_HORIZONTAL)
data->match_data.orientation = GTK_ORIENTATION_HORIZONTAL;
else if (token == TOKEN_VERTICAL)
data->match_data.orientation = GTK_ORIENTATION_VERTICAL;
else
return TOKEN_HORIZONTAL;
data->match_data.flags |= THEME_MATCH_ORIENTATION;
return G_TOKEN_NONE;
}
static void
theme_image_ref (ThemeImage *data)
{
data->refcount++;
}
static void
theme_image_unref (ThemeImage *data)
{
data->refcount--;
if (data->refcount == 0)
{
if (data->match_data.detail)
g_free (data->match_data.detail);
if (data->background)
theme_pixbuf_destroy (data->background);
if (data->overlay)
theme_pixbuf_destroy (data->overlay);
if (data->gap_start)
theme_pixbuf_destroy (data->gap_start);
if (data->gap)
theme_pixbuf_destroy (data->gap);
if (data->gap_end)
theme_pixbuf_destroy (data->gap_end);
g_free (data);
}
}
static guint
theme_parse_image(GtkSettings *settings,
GScanner *scanner,
PixbufRcStyle *pixbuf_style,
ThemeImage **data_return)
{
guint token;
ThemeImage *data;
data = NULL;
token = g_scanner_get_next_token(scanner);
if (token != TOKEN_IMAGE)
return TOKEN_IMAGE;
token = g_scanner_get_next_token(scanner);
if (token != G_TOKEN_LEFT_CURLY)
return G_TOKEN_LEFT_CURLY;
data = g_malloc(sizeof(ThemeImage));
data->refcount = 1;
data->background = NULL;
data->overlay = NULL;
data->gap_start = NULL;
data->gap = NULL;
data->gap_end = NULL;
data->recolorable = FALSE;
data->match_data.function = 0;
data->match_data.detail = NULL;
data->match_data.flags = 0;
token = g_scanner_peek_next_token(scanner);
while (token != G_TOKEN_RIGHT_CURLY)
{
switch (token)
{
case TOKEN_FUNCTION:
token = theme_parse_function(scanner, data);
break;
case TOKEN_RECOLORABLE:
token = theme_parse_recolorable(scanner, data);
break;
case TOKEN_DETAIL:
token = theme_parse_detail(scanner, data);
break;
case TOKEN_STATE:
token = theme_parse_state(scanner, data);
break;
case TOKEN_SHADOW:
token = theme_parse_shadow(scanner, data);
break;
case TOKEN_GAP_SIDE:
token = theme_parse_gap_side(scanner, data);
break;
case TOKEN_ARROW_DIRECTION:
token = theme_parse_arrow_direction(scanner, data);
break;
case TOKEN_ORIENTATION:
token = theme_parse_orientation(scanner, data);
break;
case TOKEN_FILE:
token = theme_parse_file(settings, scanner, &data->background);
break;
case TOKEN_BORDER:
token = theme_parse_border(scanner, &data->background);
break;
case TOKEN_STRETCH:
token = theme_parse_stretch(scanner, &data->background);
break;
case TOKEN_GAP_FILE:
token = theme_parse_file(settings, scanner, &data->gap);
break;
case TOKEN_GAP_BORDER:
token = theme_parse_border(scanner, &data->gap);
break;
case TOKEN_GAP_START_FILE:
token = theme_parse_file(settings, scanner, &data->gap_start);
break;
case TOKEN_GAP_START_BORDER:
token = theme_parse_border(scanner, &data->gap_start);
break;
case TOKEN_GAP_END_FILE:
token = theme_parse_file(settings, scanner, &data->gap_end);
break;
case TOKEN_GAP_END_BORDER:
token = theme_parse_border(scanner, &data->gap_end);
break;
case TOKEN_OVERLAY_FILE:
token = theme_parse_file(settings, scanner, &data->overlay);
break;
case TOKEN_OVERLAY_BORDER:
token = theme_parse_border(scanner, &data->overlay);
break;
case TOKEN_OVERLAY_STRETCH:
token = theme_parse_stretch(scanner, &data->overlay);
break;
default:
g_scanner_get_next_token(scanner);
token = G_TOKEN_RIGHT_CURLY;
break;
}
if (token != G_TOKEN_NONE)
{
/* error - cleanup for exit */
theme_image_unref (data);
*data_return = NULL;
return token;
}
token = g_scanner_peek_next_token(scanner);
}
token = g_scanner_get_next_token(scanner);
if (data->background && !data->background->filename)
{
g_scanner_warn (scanner, "Background image options specified without filename");
theme_pixbuf_destroy (data->background);
data->background = NULL;
}
if (data->overlay && !data->overlay->filename)
{
g_scanner_warn (scanner, "Overlay image options specified without filename");
theme_pixbuf_destroy (data->overlay);
data->overlay = NULL;
}
if (token != G_TOKEN_RIGHT_CURLY)
{
/* error - cleanup for exit */
theme_image_unref (data);
*data_return = NULL;
return G_TOKEN_RIGHT_CURLY;
}
/* everything is fine now - insert yer cruft */
*data_return = data;
return G_TOKEN_NONE;
}
static guint
pixbuf_rc_style_parse (GtkRcStyle *rc_style,
GtkSettings *settings,
GScanner *scanner)
{
static GQuark scope_id = 0;
PixbufRcStyle *pixbuf_style = PIXBUF_RC_STYLE (rc_style);
guint old_scope;
guint token;
gint i;
ThemeImage *img;
/* Set up a new scope in this scanner. */
if (!scope_id)
scope_id = g_quark_from_string("pixbuf_theme_engine");
/* If we bail out due to errors, we *don't* reset the scope, so the
* error messaging code can make sense of our tokens.
*/
old_scope = g_scanner_set_scope(scanner, scope_id);
/* Now check if we already added our symbols to this scope
* (in some previous call to theme_parse_rc_style for the
* same scanner.
*/
if (!g_scanner_lookup_symbol(scanner, theme_symbols[0].name))
{
g_scanner_freeze_symbol_table(scanner);
for (i = 0; i < G_N_ELEMENTS (theme_symbols); i++)
g_scanner_scope_add_symbol(scanner, scope_id,
theme_symbols[i].name,
GINT_TO_POINTER(theme_symbols[i].token));
g_scanner_thaw_symbol_table(scanner);
}
/* We're ready to go, now parse the top level */
token = g_scanner_peek_next_token(scanner);
while (token != G_TOKEN_RIGHT_CURLY)
{
switch (token)
{
case TOKEN_IMAGE:
img = NULL;
token = theme_parse_image(settings, scanner, pixbuf_style, &img);
break;
default:
g_scanner_get_next_token(scanner);
token = G_TOKEN_RIGHT_CURLY;
break;
}
if (token != G_TOKEN_NONE)
return token;
else
pixbuf_style->img_list = g_list_append(pixbuf_style->img_list, img);
token = g_scanner_peek_next_token(scanner);
}
g_scanner_get_next_token(scanner);
g_scanner_set_scope(scanner, old_scope);
return G_TOKEN_NONE;
}
static void
pixbuf_rc_style_merge (GtkRcStyle *dest,
GtkRcStyle *src)
{
if (PIXBUF_IS_RC_STYLE (src))
{
PixbufRcStyle *pixbuf_dest = PIXBUF_RC_STYLE (dest);
PixbufRcStyle *pixbuf_src = PIXBUF_RC_STYLE (src);
GList *tmp_list1, *tmp_list2;
if (pixbuf_src->img_list)
{
/* Copy src image list and append to dest image list */
tmp_list2 = g_list_last (pixbuf_dest->img_list);
tmp_list1 = pixbuf_src->img_list;
while (tmp_list1)
{
if (tmp_list2)
{
tmp_list2->next = g_list_alloc();
tmp_list2->next->data = tmp_list1->data;
tmp_list2->next->prev = tmp_list2;
tmp_list2 = tmp_list2->next;
}
else
{
pixbuf_dest->img_list = g_list_append (NULL, tmp_list1->data);
tmp_list2 = pixbuf_dest->img_list;
}
theme_image_ref (tmp_list1->data);
tmp_list1 = tmp_list1->next;
}
}
}
parent_class->merge (dest, src);
}
/* Create an empty style suitable to this RC style
*/
static GtkStyle *
pixbuf_rc_style_create_style (GtkRcStyle *rc_style)
{
return GTK_STYLE (g_object_new (PIXBUF_TYPE_STYLE, NULL));
}
-49
View File
@@ -1,49 +0,0 @@
/* GTK+ Pixbuf Engine
* Copyright (C) 1998-2000 Red Hat, Inc.
*
* 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.
*
* Written by Owen Taylor <otaylor@redhat.com>, based on code by
* Carsten Haitzler <raster@rasterman.com>
*/
#include <gtk/gtkrc.h>
typedef struct _PixbufRcStyle PixbufRcStyle;
typedef struct _PixbufRcStyleClass PixbufRcStyleClass;
extern GType pixbuf_type_rc_style;
#define PIXBUF_TYPE_RC_STYLE pixbuf_type_rc_style
#define PIXBUF_RC_STYLE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PIXBUF_TYPE_RC_STYLE, PixbufRcStyle))
#define PIXBUF_RC_STYLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIXBUF_TYPE_RC_STYLE, PixbufRcStyleClass))
#define PIXBUF_IS_RC_STYLE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PIXBUF_TYPE_RC_STYLE))
#define PIXBUF_IS_RC_STYLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIXBUF_TYPE_RC_STYLE))
#define PIXBUF_RC_STYLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIXBUF_TYPE_RC_STYLE, PixbufRcStyleClass))
struct _PixbufRcStyle
{
GtkRcStyle parent_instance;
GList *img_list;
};
struct _PixbufRcStyleClass
{
GtkRcStyleClass parent_class;
};
void pixbuf_rc_style_register_type (GTypeModule *module);
-803
View File
@@ -1,803 +0,0 @@
/* GTK+ Pixbuf Engine
* Copyright (C) 1998-2000 Red Hat, Inc.
*
* 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.
*
* Written by Owen Taylor <otaylor@redhat.com>, based on code by
* Carsten Haitzler <raster@rasterman.com>
*/
#include <string.h>
#include "pixbuf.h"
#include <gdk-pixbuf/gdk-pixbuf.h>
GCache *pixbuf_cache = NULL;
static GdkPixbuf *
bilinear_gradient (GdkPixbuf *src,
gint src_x,
gint src_y,
gint width,
gint height)
{
guint n_channels = gdk_pixbuf_get_n_channels (src);
guint src_rowstride = gdk_pixbuf_get_rowstride (src);
guchar *src_pixels = gdk_pixbuf_get_pixels (src);
guchar *p1, *p2, *p3, *p4;
guint dest_rowstride;
guchar *dest_pixels;
GdkPixbuf *result;
int i, j, k;
p1 = src_pixels + (src_y - 1) * src_rowstride + (src_x - 1) * n_channels;
p2 = p1 + n_channels;
p3 = src_pixels + src_y * src_rowstride + (src_x - 1) * n_channels;
p4 = p3 + n_channels;
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
for (i = 0; i < height; i++)
{
guchar *p = dest_pixels + dest_rowstride *i;
guint v[4];
gint dv[4];
for (k = 0; k < n_channels; k++)
{
guint start = ((height - i) * p1[k] + (1 + i) * p3[k]) / (height + 1);
guint end = ((height - i) * p2[k] + (1 + i) * p4[k]) / (height + 1);
dv[k] = (((gint)end - (gint)start) << 16) / (width + 1);
v[k] = (start << 16) + dv[k] + 0x8000;
}
for (j = width; j; j--)
{
for (k = 0; k < n_channels; k++)
{
*(p++) = v[k] >> 16;
v[k] += dv[k];
}
}
}
return result;
}
static GdkPixbuf *
horizontal_gradient (GdkPixbuf *src,
gint src_x,
gint src_y,
gint width,
gint height)
{
guint n_channels = gdk_pixbuf_get_n_channels (src);
guint src_rowstride = gdk_pixbuf_get_rowstride (src);
guchar *src_pixels = gdk_pixbuf_get_pixels (src);
guint dest_rowstride;
guchar *dest_pixels;
GdkPixbuf *result;
int i, j, k;
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
for (i = 0; i < height; i++)
{
guchar *p = dest_pixels + dest_rowstride *i;
guchar *p1 = src_pixels + (src_y + i) * src_rowstride + (src_x - 1) * n_channels;
guchar *p2 = p1 + n_channels;
guint v[4];
gint dv[4];
for (k = 0; k < n_channels; k++)
{
dv[k] = (((gint)p2[k] - (gint)p1[k]) << 16) / (width + 1);
v[k] = (p1[k] << 16) + dv[k] + 0x8000;
}
for (j = width; j; j--)
{
for (k = 0; k < n_channels; k++)
{
*(p++) = v[k] >> 16;
v[k] += dv[k];
}
}
}
return result;
}
static GdkPixbuf *
vertical_gradient (GdkPixbuf *src,
gint src_x,
gint src_y,
gint width,
gint height)
{
guint n_channels = gdk_pixbuf_get_n_channels (src);
guint src_rowstride = gdk_pixbuf_get_rowstride (src);
guchar *src_pixels = gdk_pixbuf_get_pixels (src);
guchar *top_pixels, *bottom_pixels;
guint dest_rowstride;
guchar *dest_pixels;
GdkPixbuf *result;
int i, j;
top_pixels = src_pixels + (src_y - 1) * src_rowstride + (src_x) * n_channels;
bottom_pixels = top_pixels + src_rowstride;
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
for (i = 0; i < height; i++)
{
guchar *p = dest_pixels + dest_rowstride *i;
guchar *p1 = top_pixels;
guchar *p2 = bottom_pixels;
for (j = width * n_channels; j; j--)
*(p++) = ((height - i) * *(p1++) + (1 + i) * *(p2++)) / (height + 1);
}
return result;
}
static GdkPixbuf *
replicate_single (GdkPixbuf *src,
gint src_x,
gint src_y,
gint width,
gint height)
{
guint n_channels = gdk_pixbuf_get_n_channels (src);
guchar *pixels = (gdk_pixbuf_get_pixels (src) +
src_y * gdk_pixbuf_get_rowstride (src) +
src_x * n_channels);
guchar r = *(pixels++);
guchar g = *(pixels++);
guchar b = *(pixels++);
guint dest_rowstride;
guchar *dest_pixels;
guchar a = 0;
GdkPixbuf *result;
int i, j;
if (n_channels == 4)
a = *(pixels++);
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
for (i = 0; i < height; i++)
{
guchar *p = dest_pixels + dest_rowstride *i;
for (j = 0; j < width; j++)
{
*(p++) = r;
*(p++) = g;
*(p++) = b;
if (n_channels == 4)
*(p++) = a;
}
}
return result;
}
static GdkPixbuf *
replicate_rows (GdkPixbuf *src,
gint src_x,
gint src_y,
gint width,
gint height)
{
guint n_channels = gdk_pixbuf_get_n_channels (src);
guint src_rowstride = gdk_pixbuf_get_rowstride (src);
guchar *pixels = (gdk_pixbuf_get_pixels (src) + src_y * src_rowstride + src_x * n_channels);
guchar *dest_pixels;
GdkPixbuf *result;
guint dest_rowstride;
int i;
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
for (i = 0; i < height; i++)
memcpy (dest_pixels + dest_rowstride * i, pixels, n_channels * width);
return result;
}
static GdkPixbuf *
replicate_cols (GdkPixbuf *src,
gint src_x,
gint src_y,
gint width,
gint height)
{
guint n_channels = gdk_pixbuf_get_n_channels (src);
guint src_rowstride = gdk_pixbuf_get_rowstride (src);
guchar *pixels = (gdk_pixbuf_get_pixels (src) + src_y * src_rowstride + src_x * n_channels);
guchar *dest_pixels;
GdkPixbuf *result;
guint dest_rowstride;
int i, j;
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
for (i = 0; i < height; i++)
{
guchar *p = dest_pixels + dest_rowstride * i;
guchar *q = pixels + src_rowstride * i;
guchar r = *(q++);
guchar g = *(q++);
guchar b = *(q++);
guchar a = 0;
if (n_channels == 4)
a = *(q++);
for (j = 0; j < width; j++)
{
*(p++) = r;
*(p++) = g;
*(p++) = b;
if (n_channels == 4)
*(p++) = a;
}
}
return result;
}
/* Scale the rectangle (src_x, src_y, src_width, src_height)
* onto the rectangle (dest_x, dest_y, dest_width, dest_height)
* of the destination, clip by clip_rect and render
*/
static void
pixbuf_render (GdkPixbuf *src,
guint hints,
GdkWindow *window,
GdkBitmap *mask,
GdkRectangle *clip_rect,
gint src_x,
gint src_y,
gint src_width,
gint src_height,
gint dest_x,
gint dest_y,
gint dest_width,
gint dest_height)
{
GdkPixbuf *tmp_pixbuf;
GdkRectangle rect;
int x_offset, y_offset;
gboolean has_alpha = gdk_pixbuf_get_has_alpha (src);
gint src_rowstride = gdk_pixbuf_get_rowstride (src);
gint src_n_channels = gdk_pixbuf_get_n_channels (src);
if (dest_width <= 0 || dest_height <= 0)
return;
rect.x = dest_x;
rect.y = dest_y;
rect.width = dest_width;
rect.height = dest_height;
if (hints & THEME_MISSING)
return;
/* FIXME: Because we use the mask to shape windows, we don't use
* clip_rect to clip what we draw to the mask, only to clip
* what we actually draw. But this leads to the horrible ineffiency
* of scale the whole image to get a little bit of it.
*/
if (!mask && clip_rect)
{
if (!gdk_rectangle_intersect (clip_rect, &rect, &rect))
return;
}
if (dest_width == src_width && dest_height == src_height)
{
tmp_pixbuf = g_object_ref (src);
x_offset = src_x + rect.x - dest_x;
y_offset = src_y + rect.y - dest_y;
}
else if (src_width == 0 && src_height == 0)
{
tmp_pixbuf = bilinear_gradient (src, src_x, src_y, dest_width, dest_height);
x_offset = rect.x - dest_x;
y_offset = rect.y - dest_y;
}
else if (src_width == 0 && dest_height == src_height)
{
tmp_pixbuf = horizontal_gradient (src, src_x, src_y, dest_width, dest_height);
x_offset = rect.x - dest_x;
y_offset = rect.y - dest_y;
}
else if (src_height == 0 && dest_width == src_width)
{
tmp_pixbuf = vertical_gradient (src, src_x, src_y, dest_width, dest_height);
x_offset = rect.x - dest_x;
y_offset = rect.y - dest_y;
}
else if ((hints & THEME_CONSTANT_COLS) && (hints & THEME_CONSTANT_ROWS))
{
tmp_pixbuf = replicate_single (src, src_x, src_y, dest_width, dest_height);
x_offset = rect.x - dest_x;
y_offset = rect.y - dest_y;
}
else if (dest_width == src_width && (hints & THEME_CONSTANT_COLS))
{
tmp_pixbuf = replicate_rows (src, src_x, src_y, dest_width, dest_height);
x_offset = rect.x - dest_x;
y_offset = rect.y - dest_y;
}
else if (dest_height == src_height && (hints & THEME_CONSTANT_ROWS))
{
tmp_pixbuf = replicate_cols (src, src_x, src_y, dest_width, dest_height);
x_offset = rect.x - dest_x;
y_offset = rect.y - dest_y;
}
else
{
double x_scale = (double)dest_width / src_width;
double y_scale = (double)dest_height / src_height;
guchar *pixels;
GdkPixbuf *partial_src;
pixels = (gdk_pixbuf_get_pixels (src)
+ src_y * src_rowstride
+ src_x * src_n_channels);
partial_src = gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB,
has_alpha,
8, src_width, src_height,
src_rowstride,
NULL, NULL);
tmp_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
has_alpha, 8,
rect.width, rect.height);
gdk_pixbuf_scale (partial_src, tmp_pixbuf,
0, 0, rect.width, rect.height,
dest_x - rect.x, dest_y - rect.y,
x_scale, y_scale,
GDK_INTERP_BILINEAR);
gdk_pixbuf_unref (partial_src);
x_offset = 0;
y_offset = 0;
}
if (mask)
{
gdk_pixbuf_render_threshold_alpha (tmp_pixbuf, mask,
x_offset, y_offset,
rect.x, rect.y,
rect.width, rect.height,
128);
}
gdk_pixbuf_render_to_drawable_alpha (tmp_pixbuf, window,
x_offset, y_offset,
rect.x, rect.y,
rect.width, rect.height,
GDK_PIXBUF_ALPHA_FULL, 128,
GDK_RGB_DITHER_NORMAL,
0, 0);
gdk_pixbuf_unref (tmp_pixbuf);
}
ThemePixbuf *
theme_pixbuf_new (void)
{
ThemePixbuf *result = g_new0 (ThemePixbuf, 1);
result->filename = NULL;
result->pixbuf = NULL;
result->stretch = TRUE;
result->border_left = 0;
result->border_right = 0;
result->border_bottom = 0;
result->border_top = 0;
return result;
}
void
theme_pixbuf_destroy (ThemePixbuf *theme_pb)
{
theme_pixbuf_set_filename (theme_pb, NULL);
g_free (theme_pb);
}
void
theme_pixbuf_set_filename (ThemePixbuf *theme_pb,
const char *filename)
{
if (theme_pb->pixbuf)
{
g_cache_remove (pixbuf_cache, theme_pb->pixbuf);
theme_pb->pixbuf = NULL;
}
if (theme_pb->filename)
g_free (theme_pb->filename);
if (filename)
theme_pb->filename = g_strdup (filename);
else
theme_pb->filename = NULL;
}
static guint
compute_hint (GdkPixbuf *pixbuf,
gint x0,
gint x1,
gint y0,
gint y1)
{
int i, j;
int hints = THEME_CONSTANT_ROWS | THEME_CONSTANT_COLS | THEME_MISSING;
int n_channels = gdk_pixbuf_get_n_channels (pixbuf);
guchar *data = gdk_pixbuf_get_pixels (pixbuf);
int rowstride = gdk_pixbuf_get_rowstride (pixbuf);
if (x0 == x1 || y0 == y1)
return 0;
for (i = y0; i < y1; i++)
{
guchar *p = data + i * rowstride + x0 * n_channels;
guchar r = p[0];
guchar g = p[1];
guchar b = p[2];
guchar a = 0;
if (n_channels == 4)
a = p[3];
for (j = x0; j < x1 ; j++)
{
if (n_channels != 4 || p[3] != 0)
{
hints &= ~THEME_MISSING;
if (!(hints & THEME_CONSTANT_ROWS))
goto cols;
}
if (r != *(p++) ||
g != *(p++) ||
b != *(p++) ||
(n_channels != 4 && a != *(p++)))
{
hints &= ~THEME_CONSTANT_ROWS;
if (!(hints & THEME_MISSING))
goto cols;
}
}
}
cols:
for (i = y0 + 1; i < y1; i++)
{
guchar *base = data + y0 * rowstride + x0 * n_channels;
guchar *p = data + i * rowstride + x0 * n_channels;
if (memcmp (p, base, n_channels * (x1 - x0)) != 0)
{
hints &= ~THEME_CONSTANT_COLS;
return hints;
}
}
return hints;
}
static void
theme_pixbuf_compute_hints (ThemePixbuf *theme_pb)
{
int i, j;
gint width = gdk_pixbuf_get_width (theme_pb->pixbuf);
gint height = gdk_pixbuf_get_height (theme_pb->pixbuf);
if (theme_pb->border_left + theme_pb->border_right > width ||
theme_pb->border_top + theme_pb->border_bottom > height)
{
g_warning ("Invalid borders specified for theme pixmap:\n"
" %s,\n"
"borders don't fit within the image", theme_pb->filename);
if (theme_pb->border_left + theme_pb->border_right > width)
{
theme_pb->border_left = width / 2;
theme_pb->border_right = (width + 1) / 2;
}
if (theme_pb->border_bottom + theme_pb->border_top > height)
{
theme_pb->border_top = height / 2;
theme_pb->border_bottom = (height + 1) / 2;
}
}
for (i = 0; i < 3; i++)
{
gint y0, y1;
switch (i)
{
case 0:
y0 = 0;
y1 = theme_pb->border_top;
break;
case 1:
y0 = theme_pb->border_top;
y1 = height - theme_pb->border_bottom;
break;
default:
y0 = height - theme_pb->border_bottom;
y1 = height;
break;
}
for (j = 0; j < 3; j++)
{
gint x0, x1;
switch (j)
{
case 0:
x0 = 0;
x1 = theme_pb->border_left;
break;
case 1:
x0 = theme_pb->border_left;
x1 = width - theme_pb->border_right;
break;
default:
x0 = width - theme_pb->border_right;
x1 = width;
break;
}
theme_pb->hints[i][j] = compute_hint (theme_pb->pixbuf, x0, x1, y0, y1);
}
}
}
void
theme_pixbuf_set_border (ThemePixbuf *theme_pb,
gint left,
gint right,
gint top,
gint bottom)
{
theme_pb->border_left = left;
theme_pb->border_right = right;
theme_pb->border_top = top;
theme_pb->border_bottom = bottom;
if (theme_pb->pixbuf)
theme_pixbuf_compute_hints (theme_pb);
}
void
theme_pixbuf_set_stretch (ThemePixbuf *theme_pb,
gboolean stretch)
{
theme_pb->stretch = stretch;
if (theme_pb->pixbuf)
theme_pixbuf_compute_hints (theme_pb);
}
GdkPixbuf *
pixbuf_cache_value_new (gchar *filename)
{
GError *err = NULL;
GdkPixbuf *result = gdk_pixbuf_new_from_file (filename, &err);
if (!result)
{
g_warning ("Pixbuf theme: Cannot load pixmap file %s: %s\n",
filename, err->message);
g_error_free (err);
}
return result;
}
GdkPixbuf *
theme_pixbuf_get_pixbuf (ThemePixbuf *theme_pb)
{
if (!theme_pb->pixbuf)
{
if (!pixbuf_cache)
pixbuf_cache = g_cache_new ((GCacheNewFunc)pixbuf_cache_value_new,
(GCacheDestroyFunc)gdk_pixbuf_unref,
(GCacheDupFunc)g_strdup,
(GCacheDestroyFunc)g_free,
g_str_hash, g_direct_hash, g_str_equal);
theme_pb->pixbuf = g_cache_insert (pixbuf_cache, theme_pb->filename);
if (theme_pb->stretch)
theme_pixbuf_compute_hints (theme_pb);
}
return theme_pb->pixbuf;
}
void
theme_pixbuf_render (ThemePixbuf *theme_pb,
GdkWindow *window,
GdkBitmap *mask,
GdkRectangle *clip_rect,
guint component_mask,
gboolean center,
gint x,
gint y,
gint width,
gint height)
{
GdkPixbuf *pixbuf = theme_pixbuf_get_pixbuf (theme_pb);
gint src_x[4], src_y[4], dest_x[4], dest_y[4];
gint pixbuf_width = gdk_pixbuf_get_width (pixbuf);
gint pixbuf_height = gdk_pixbuf_get_height (pixbuf);
if (!pixbuf)
return;
if (theme_pb->stretch)
{
src_x[0] = 0;
src_x[1] = theme_pb->border_left;
src_x[2] = pixbuf_width - theme_pb->border_right;
src_x[3] = pixbuf_width;
src_y[0] = 0;
src_y[1] = theme_pb->border_top;
src_y[2] = pixbuf_height - theme_pb->border_bottom;
src_y[3] = pixbuf_height;
dest_x[0] = x;
dest_x[1] = x + theme_pb->border_left;
dest_x[2] = x + width - theme_pb->border_right;
dest_x[3] = x + width;
dest_y[0] = y;
dest_y[1] = y + theme_pb->border_top;
dest_y[2] = y + height - theme_pb->border_bottom;
dest_y[3] = y + height;
if (component_mask & COMPONENT_ALL)
component_mask = (COMPONENT_ALL - 1) & ~component_mask;
#define RENDER_COMPONENT(X1,X2,Y1,Y2) \
pixbuf_render (pixbuf, theme_pb->hints[Y1][X1], window, mask, clip_rect, \
src_x[X1], src_y[Y1], \
src_x[X2] - src_x[X1], src_y[Y2] - src_y[Y1], \
dest_x[X1], dest_y[Y1], \
dest_x[X2] - dest_x[X1], dest_y[Y2] - dest_y[Y1]);
if (component_mask & COMPONENT_NORTH_WEST)
RENDER_COMPONENT (0, 1, 0, 1);
if (component_mask & COMPONENT_NORTH)
RENDER_COMPONENT (1, 2, 0, 1);
if (component_mask & COMPONENT_NORTH_EAST)
RENDER_COMPONENT (2, 3, 0, 1);
if (component_mask & COMPONENT_WEST)
RENDER_COMPONENT (0, 1, 1, 2);
if (component_mask & COMPONENT_CENTER)
RENDER_COMPONENT (1, 2, 1, 2);
if (component_mask & COMPONENT_EAST)
RENDER_COMPONENT (2, 3, 1, 2);
if (component_mask & COMPONENT_SOUTH_WEST)
RENDER_COMPONENT (0, 1, 2, 3);
if (component_mask & COMPONENT_SOUTH)
RENDER_COMPONENT (1, 2, 2, 3);
if (component_mask & COMPONENT_SOUTH_EAST)
RENDER_COMPONENT (2, 3, 2, 3);
}
else
{
if (center)
{
x += (width - pixbuf_width) / 2;
y += (height - pixbuf_height) / 2;
pixbuf_render (pixbuf, 0, window, NULL, clip_rect,
0, 0,
pixbuf_width, pixbuf_height,
x, y,
pixbuf_width, pixbuf_height);
}
else
{
GdkPixmap *tmp_pixmap;
GdkGC *tmp_gc;
GdkGCValues gc_values;
tmp_pixmap = gdk_pixmap_new (window,
pixbuf_width,
pixbuf_height,
-1);
tmp_gc = gdk_gc_new (tmp_pixmap);
gdk_pixbuf_render_to_drawable (pixbuf, tmp_pixmap, tmp_gc,
0, 0,
0, 0,
pixbuf_width, pixbuf_height,
GDK_RGB_DITHER_NORMAL,
0, 0);
gdk_gc_unref (tmp_gc);
gc_values.fill = GDK_TILED;
gc_values.tile = tmp_pixmap;
tmp_gc = gdk_gc_new_with_values (window,
&gc_values, GDK_GC_FILL | GDK_GC_TILE);
if (clip_rect)
gdk_draw_rectangle (window, tmp_gc, TRUE,
clip_rect->x, clip_rect->y, clip_rect->width, clip_rect->height);
else
gdk_draw_rectangle (window, tmp_gc, TRUE, x, y, width, height);
gdk_gc_unref (tmp_gc);
gdk_pixmap_unref (tmp_pixmap);
}
}
}
-49
View File
@@ -1,49 +0,0 @@
/* GTK+ Pixbuf Engine
* Copyright (C) 1998-2000 Red Hat, Inc.
*
* 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.
*
* Written by Owen Taylor <otaylor@redhat.com>, based on code by
* Carsten Haitzler <raster@rasterman.com>
*/
#include <gtk/gtkstyle.h>
typedef struct _PixbufStyle PixbufStyle;
typedef struct _PixbufStyleClass PixbufStyleClass;
extern GType pixbuf_type_style;
#define PIXBUF_TYPE_STYLE pixbuf_type_style
#define PIXBUF_STYLE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PIXBUF_TYPE_STYLE, PixbufStyle))
#define PIXBUF_STYLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIXBUF_TYPE_STYLE, PixbufStyleClass))
#define PIXBUF_IS_STYLE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PIXBUF_TYPE_STYLE))
#define PIXBUF_IS_STYLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIXBUF_TYPE_STYLE))
#define PIXBUF_STYLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIXBUF_TYPE_STYLE, PixbufStyleClass))
struct _PixbufStyle
{
GtkStyle parent_instance;
};
struct _PixbufStyleClass
{
GtkStyleClass parent_class;
};
void pixbuf_style_register_type (GTypeModule *module);
-196
View File
@@ -1,196 +0,0 @@
/* GTK+ Pixbuf Engine
* Copyright (C) 1998-2000 Red Hat, Inc.
*
* 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.
*
* Written by Owen Taylor <otaylor@redhat.com>, based on code by
* Carsten Haitzler <raster@rasterman.com>
*/
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
/* internals */
typedef struct _ThemeData ThemeData;
typedef struct _ThemeImage ThemeImage;
typedef struct _ThemeMatchData ThemeMatchData;
typedef struct _ThemePixbuf ThemePixbuf;
enum
{
TOKEN_IMAGE = G_TOKEN_LAST + 1,
TOKEN_FUNCTION,
TOKEN_FILE,
TOKEN_STRETCH,
TOKEN_RECOLORABLE,
TOKEN_BORDER,
TOKEN_DETAIL,
TOKEN_STATE,
TOKEN_SHADOW,
TOKEN_GAP_SIDE,
TOKEN_GAP_FILE,
TOKEN_GAP_BORDER,
TOKEN_GAP_START_FILE,
TOKEN_GAP_START_BORDER,
TOKEN_GAP_END_FILE,
TOKEN_GAP_END_BORDER,
TOKEN_OVERLAY_FILE,
TOKEN_OVERLAY_BORDER,
TOKEN_OVERLAY_STRETCH,
TOKEN_ARROW_DIRECTION,
TOKEN_D_HLINE,
TOKEN_D_VLINE,
TOKEN_D_SHADOW,
TOKEN_D_POLYGON,
TOKEN_D_ARROW,
TOKEN_D_DIAMOND,
TOKEN_D_OVAL,
TOKEN_D_STRING,
TOKEN_D_BOX,
TOKEN_D_FLAT_BOX,
TOKEN_D_CHECK,
TOKEN_D_OPTION,
TOKEN_D_CROSS,
TOKEN_D_RAMP,
TOKEN_D_TAB,
TOKEN_D_SHADOW_GAP,
TOKEN_D_BOX_GAP,
TOKEN_D_EXTENSION,
TOKEN_D_FOCUS,
TOKEN_D_SLIDER,
TOKEN_D_ENTRY,
TOKEN_D_HANDLE,
TOKEN_D_STEPPER,
TOKEN_TRUE,
TOKEN_FALSE,
TOKEN_TOP,
TOKEN_UP,
TOKEN_BOTTOM,
TOKEN_DOWN,
TOKEN_LEFT,
TOKEN_RIGHT,
TOKEN_NORMAL,
TOKEN_ACTIVE,
TOKEN_PRELIGHT,
TOKEN_SELECTED,
TOKEN_INSENSITIVE,
TOKEN_NONE,
TOKEN_IN,
TOKEN_OUT,
TOKEN_ETCHED_IN,
TOKEN_ETCHED_OUT,
TOKEN_ORIENTATION,
TOKEN_HORIZONTAL,
TOKEN_VERTICAL
};
typedef enum
{
COMPONENT_NORTH_WEST = 1 << 0,
COMPONENT_NORTH = 1 << 1,
COMPONENT_NORTH_EAST = 1 << 2,
COMPONENT_WEST = 1 << 3,
COMPONENT_CENTER = 1 << 4,
COMPONENT_EAST = 1 << 5,
COMPONENT_SOUTH_EAST = 1 << 6,
COMPONENT_SOUTH = 1 << 7,
COMPONENT_SOUTH_WEST = 1 << 8,
COMPONENT_ALL = 1 << 9
} ThemePixbufComponent;
typedef enum {
THEME_MATCH_GAP_SIDE = 1 << 0,
THEME_MATCH_ORIENTATION = 1 << 1,
THEME_MATCH_STATE = 1 << 2,
THEME_MATCH_SHADOW = 1 << 3,
THEME_MATCH_ARROW_DIRECTION = 1 << 4
} ThemeMatchFlags;
typedef enum {
THEME_CONSTANT_ROWS = 1 << 0,
THEME_CONSTANT_COLS = 1 << 1,
THEME_MISSING = 1 << 2
} ThemeRenderHints;
struct _ThemePixbuf
{
gchar *filename;
GdkPixbuf *pixbuf;
gboolean stretch;
gint border_left;
gint border_right;
gint border_bottom;
gint border_top;
guint hints[3][3];
};
struct _ThemeMatchData
{
guint function; /* Mandatory */
gchar *detail;
ThemeMatchFlags flags;
GtkPositionType gap_side;
GtkOrientation orientation;
GtkStateType state;
GtkShadowType shadow;
GtkArrowType arrow_direction;
};
struct _ThemeImage
{
guint refcount;
ThemePixbuf *background;
ThemePixbuf *overlay;
ThemePixbuf *gap_start;
ThemePixbuf *gap;
ThemePixbuf *gap_end;
gchar recolorable;
ThemeMatchData match_data;
};
ThemePixbuf *theme_pixbuf_new (void);
void theme_pixbuf_destroy (ThemePixbuf *theme_pb);
void theme_pixbuf_set_filename (ThemePixbuf *theme_pb,
const char *filename);
GdkPixbuf * theme_pixbuf_get_pixbuf (ThemePixbuf *theme_pb);
void theme_pixbuf_set_border (ThemePixbuf *theme_pb,
gint left,
gint right,
gint top,
gint bottom);
void theme_pixbuf_set_stretch (ThemePixbuf *theme_pb,
gboolean stretch);
void theme_pixbuf_render (ThemePixbuf *theme_pb,
GdkWindow *window,
GdkBitmap *mask,
GdkRectangle *clip_rect,
guint component_mask,
gboolean center,
gint dest_x,
gint dest_y,
gint dest_width,
gint dest_height);
extern GtkStyleClass pixmap_default_class;
+9
View File
@@ -151,6 +151,8 @@ choose_better_style (XIMStyle style1, XIMStyle style2)
return (s1 == XIMPreeditArea) ? style1 : style2;
else if (u & XIMPreeditNothing)
return (s1 == XIMPreeditNothing) ? style1 : style2;
else if (u & XIMPreeditNone)
return (s1 == XIMPreeditNone) ? style1 : style2;
} else {
s1 = style1 & STATUS_MASK;
s2 = style2 & STATUS_MASK;
@@ -223,6 +225,7 @@ setup_styles (GtkXIMInfo *info)
XIMStyles *xim_styles = info->xim_styles;
settings_preference = info->status_style_setting|info->preedit_style_setting;
info->style = 0;
if (xim_styles)
{
for (i = 0; i < xim_styles->count_styles; i++)
@@ -237,6 +240,8 @@ setup_styles (GtkXIMInfo *info)
xim_styles->supported_styles[i]);
}
}
if (info->style == 0)
info->style = XIMPreeditNothing | XIMStatusNothing;
}
static void
@@ -1084,6 +1089,8 @@ get_ic_real (GtkIMContextXIM *context_xim)
name1 = XNPreeditAttributes;
list1 = set_preedit_callback (context_xim);
}
else if ((context_xim->im_info->style & PREEDIT_MASK) == XIMPreeditNone)
im_style |= XIMPreeditNone;
else
im_style |= XIMPreeditNothing;
@@ -1101,6 +1108,8 @@ get_ic_real (GtkIMContextXIM *context_xim)
list2 = set_status_callback (context_xim);
}
}
else if ((context_xim->im_info->style & STATUS_MASK) == XIMStatusNone)
im_style |= XIMStatusNone;
else
im_style |= XIMStatusNothing;
+1
View File
@@ -8,5 +8,6 @@ cat-id-tbl.c
gtk20.pot
gtk+.pot
messages
missing
stamp-cat-id
po2tbl.sed
+133 -34
View File
@@ -1,3 +1,102 @@
2003-02-01 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2003-02-01 Christian Neumair <chris@gnome-de.org>
* de.po: Updated German translation.
2003-01-29 Christian Neumair <chris@gnome-de.org>
* de.po: Updated German translation.
2003-01-28 Tõivo Leedjärv <toivo@linux.ee>
* et.po: Updated Estonian translation.
2003-01-26 He Qiangqiang <carton@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation by
Funda Wang <fundawang@en2china.com>.
2003-01-26 Kang Jeong-Hee <Keizi@mail.co.kr>
* ko.po: Updated Korean translation.
2003-01-24 Zbigniew Chyla <cyba@gnome.pl>
* pl.po: Updated Polish translation by
GNOME PL Team <translators@gnome.pl>.
2003-01-24 Christian Neumair <chris@gnome-de.org>
* de.po: Updated German translation.
2003-01-22 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
* es.po: Fixed bug #103087.
2003-01-22 Christian Rose <menthos@menthos.com>
* mn.po: Added Mongolian translation by
Sanlig Badral <badral@chinggis.com>.
2003-01-20 Pablo Saratxaga <pablo@mandrakesoft.com>
* vi.po: Updated Vietnamese file
2003-01-19 Jordi Mallach <jordi@sindominio.net>
* ca.po: Partially updated Catalan translation.
2002-12-16 Daniel Yacob <locales@geez.org>
* am.po: Updated Amharic translation.
2003-01-16 German Poo-Caaman~o <gpoo@ubiobio.cl>
* es.po: Updated Spanish translation
2003-01-16 Abel Cheung <maddog@linux.org.hk>
* zh_TW.po: Updated traditional Chinese translation.
2003-01-15 Gustavo Noronha Silva <kov@debian.org>
* pt_BR.po: commiting translation I wrongly sent to
HEAD (updating translation)
* saved in UTF-8
2003-01-15 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
* es.po: Fixed another couple of strings in Spanish translation.
2003-01-15 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
* es.po: Fixed a couple of strings in Spanish translation.
2003-01-15 Dmitry G. Mastrukov <dmitry@taurussoft.org>
* ru.po: updated Russian translation
from Russian team <gnome-cyr@gnome.org>.
2003-01-13 Pauli Virtanen <pauli.virtanen@hut.fi>
* fi.po: Updated Finnish translation.
2003-01-13 Christian Neumair <chris@gnome-de.org>
* de.po: Updated German translation.
2003-01-07 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
* es.po: Fixed translation bug #102758.
2003-01-06 Christian Neumair <chris@gnome-de.org>
* .cvsignore: Added "missing".
* de.po: Updated German translation.
2002-12-20 Dmitry G. Mastrukov <dmitry@taurussoft.org>
* ru.po: updated Russian translation
@@ -84,7 +183,7 @@ Wed Dec 11 14:06:50 2002 Owen Taylor <otaylor@redhat.com>
2002-12-07 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-12-07 Andras Timar <timar@gnome.hu>
@@ -116,7 +215,7 @@ Tue Dec 3 20:40:56 2002 Owen Taylor <otaylor@redhat.com>
2002-11-28 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-11-26 Daniel Elstner <daniel.elstner@gmx.net>
@@ -132,7 +231,7 @@ Tue Dec 3 20:40:56 2002 Owen Taylor <otaylor@redhat.com>
2002-11-15 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-11-22 Dmitry G. Mastrukov <dmitry@taurussoft.org>
@@ -159,11 +258,11 @@ Tue Dec 3 20:40:56 2002 Owen Taylor <otaylor@redhat.com>
2002-11-15 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-11-10 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-11-09 Christian Neumair <chris@gnome-de.org>
@@ -194,15 +293,15 @@ Tue Dec 3 20:40:56 2002 Owen Taylor <otaylor@redhat.com>
2002-10-21 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-10-04 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-09-24 German Poo Caaman~o <gpoo@ubiobio.cl>
* es.po: Fixed bug #93072 by Juan Manuel Garc?­a Molina
* es.po: Fixed bug #93072 by Juan Manuel Garc?­a Molina
<juanma_gm@wanadoo.es>.
2002-09-09 Yanko Kaneti <yaneti@declera.com>
@@ -301,15 +400,15 @@ Mon Jun 03 16:42:53 2002 George Lebl <jirka@5z.com>
2002-04-28 Fatih Demir <kabalak@gtranslator.org>
* tr.po: Committed updated Turkish translation by ?–mer.
* tr.po: Committed updated Turkish translation by ?–mer.
2002-04-23 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-04-22 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-04-22 Christophe Merlet <christophe@merlet.net>
@@ -376,7 +475,7 @@ Mon Jun 03 16:42:53 2002 George Lebl <jirka@5z.com>
* ko.po: Updated Korean translation.
2002-04-02 T?µivo Leedj?¤rv <toivo@linux.ee>
2002-04-02 T?µivo Leedj?¤rv <toivo@linux.ee>
* et.po: Updated Estonian translation.
@@ -395,7 +494,7 @@ Mon Jun 03 16:42:53 2002 George Lebl <jirka@5z.com>
2002-03-28 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-03-28 Ole Laursen <olau@hardworking.dk>
@@ -432,7 +531,7 @@ Mon Jun 03 16:42:53 2002 George Lebl <jirka@5z.com>
2002-03-17 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-03-16 Christian Meyer <chrisime@gnome.org>
@@ -472,9 +571,9 @@ Fri Mar 08 13:09:28 2002 Matthias Warkus <mawarkus@gnome.org>
2002-03-06 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-03-06 Germ??n Poo-Caama?±o <gpoo@ubiobio.cl>
2002-03-06 Germ??n Poo-Caama?±o <gpoo@ubiobio.cl>
* es.po: Updated spanish translation.
@@ -492,7 +591,7 @@ Fri Mar 08 13:09:28 2002 Matthias Warkus <mawarkus@gnome.org>
2002-03-03 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-03-03 Zbigniew Chyla <cyba@gnome.pl>
@@ -515,7 +614,7 @@ Fri Mar 08 13:09:28 2002 Matthias Warkus <mawarkus@gnome.org>
* da.po: Updated Danish translation.
2002-02-28 T?µivo Leedj?¤rv <leedjarv@interest.ee>
2002-02-28 T?µivo Leedj?¤rv <leedjarv@interest.ee>
* et.po: Updated Estonian translation.
@@ -562,7 +661,7 @@ Fri Mar 08 13:09:28 2002 Matthias Warkus <mawarkus@gnome.org>
2002-02-23 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-02-23 Ole Laursen <olau@hardworking.dk>
@@ -574,19 +673,19 @@ Fri Mar 08 13:09:28 2002 Matthias Warkus <mawarkus@gnome.org>
2002-02-21 Fatih Demir <kabalak@gtranslator.org>
* tr.po: Committed updated Turkish translation by Nilg?¼n.
* tr.po: Committed updated Turkish translation by Nilg?¼n.
Sun Feb 17 21:24:55 2002 Owen Taylor <otaylor@redhat.com>
* POTFILES.in: Add io-wbmp.c.
2002-02-16 T?µivo Leedj?¤rv <leedjarv@interest.ee>
2002-02-16 T?µivo Leedj?¤rv <leedjarv@interest.ee>
* et.po: Updated Estonian translation.
2002-02-12 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-02-11 Duarte Loreto <happyguy_pt@hotmail.com>
@@ -594,7 +693,7 @@ Sun Feb 17 21:24:55 2002 Owen Taylor <otaylor@redhat.com>
2002-02-10 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-02-09 Ole Laursen <olau@hardworking.dk>
@@ -626,7 +725,7 @@ Sun Feb 17 21:24:55 2002 Owen Taylor <otaylor@redhat.com>
2002-02-01 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-02-01 Ole Laursen <olau@hardworking.dk>
@@ -685,7 +784,7 @@ Thu Jan 31 09:41:09 2002 Owen Taylor <otaylor@redhat.com>
2002-01-11 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
* no.po: Updated Norwegian (bokm?Â¥l) translation.
2002-01-07 Zbigniew Chyla <cyba@gnome.pl>
@@ -722,7 +821,7 @@ Thu Jan 31 09:41:09 2002 Owen Taylor <otaylor@redhat.com>
2001-12-13 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¯???½) translation.
* no.po: Updated Norwegian (bokm?¯???½) translation.
2001-12-13 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
@@ -739,7 +838,7 @@ Thu Jan 31 09:41:09 2002 Owen Taylor <otaylor@redhat.com>
2001-12-05 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¯???½) translation.
* no.po: Updated Norwegian (bokm?¯???½) translation.
2001-12-04 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
@@ -751,9 +850,9 @@ Thu Jan 31 09:41:09 2002 Owen Taylor <otaylor@redhat.com>
2001-12-01 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¯???½) translation.
* no.po: Updated Norwegian (bokm?¯???½) translation.
2001-11-28 Carlos Perell Mar?¯???½ <carlos@gnome-db.org>
2001-11-28 Carlos Perell Mar?¯???½ <carlos@gnome-db.org>
* es.po: Some fixes.
@@ -771,7 +870,7 @@ Sat Nov 24 13:19:58 2001 Owen Taylor <otaylor@redhat.com>
2001-11-14 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¯???½) translation.
* no.po: Updated Norwegian (bokm?¯???½) translation.
2001-11-11 Fatih Demir <kabalak@gtranslator.org>
@@ -817,7 +916,7 @@ Sat Nov 24 13:19:58 2001 Owen Taylor <otaylor@redhat.com>
2001-09-27 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¯???½) translation.
* no.po: Updated Norwegian (bokm?¯???½) translation.
Wed Sep 26 15:34:46 2001 Owen Taylor <otaylor@redhat.com>
@@ -841,7 +940,7 @@ Wed Sep 26 15:34:46 2001 Owen Taylor <otaylor@redhat.com>
2001-09-19 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¯???½) translation.
* no.po: Updated Norwegian (bokm?¯???½) translation.
2001-09-14 Christian Rose <menthos@menthos.com>
@@ -923,7 +1022,7 @@ Sat Sep 8 01:44:32 2001 Jonathan Blandford <jrb@redhat.com>
2001-08-06 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¯???½) translation.
* no.po: Updated Norwegian (bokm?¯???½) translation.
2001-07-28 Pablo Saratxaga <pablo@mandrakesoft.com>
@@ -1457,7 +1556,7 @@ Tue Dec 22 14:24:37 1998 Owen Taylor <otaylor@redhat.com>
Sat Dec 19 18:42:39 PST 1998 Shawn T. Amundson <amundson@gtk.org>
* sv.po: added translation by Tomas ?¯???½ren <stric@ing.umu.se>
* sv.po: added translation by Tomas ?¯???½ren <stric@ing.umu.se>
Fri Dec 18 09:52:28 1998 Owen Taylor <otaylor@redhat.com>
+1578 -1121
View File
File diff suppressed because it is too large Load Diff
+186 -186
View File
File diff suppressed because it is too large Load Diff
+186 -186
View File
File diff suppressed because it is too large Load Diff

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