Add stuff missing from yesterday's library commit.
authorCarl Hetherington <carl@carlh.net>
Tue, 13 Nov 2007 10:29:44 +0000 (10:29 +0000)
committerCarl Hetherington <carl@carlh.net>
Tue, 13 Nov 2007 10:29:44 +0000 (10:29 +0000)
git-svn-id: svn://localhost/ardour2/trunk@2643 d708f5d6-7413-0410-9779-e7cbd77b26cf

207 files changed:
libs/glibmm2/.cvsignore [deleted file]
libs/glibmm2/AUTHORS [deleted file]
libs/glibmm2/CHANGES [deleted file]
libs/glibmm2/COPYING [deleted file]
libs/glibmm2/ChangeLog [deleted file]
libs/glibmm2/INSTALL [deleted file]
libs/glibmm2/Makefile.am [deleted file]
libs/glibmm2/NEWS [deleted file]
libs/glibmm2/README [deleted file]
libs/glibmm2/SConscript [deleted file]
libs/glibmm2/autogen.sh [deleted file]
libs/glibmm2/configure.ac [deleted file]
libs/glibmm2/glibmm-2.4.pc.in [deleted file]
libs/glibmm2/glibmm.h [deleted file]
libs/glibmm2/glibmm/.cvsignore [deleted file]
libs/glibmm2/glibmm/Makefile.am [deleted file]
libs/glibmm2/glibmm/arrayhandle.h [deleted file]
libs/glibmm2/glibmm/class.cc [deleted file]
libs/glibmm2/glibmm/class.h [deleted file]
libs/glibmm2/glibmm/containerhandle_shared.h [deleted file]
libs/glibmm2/glibmm/containers.cc [deleted file]
libs/glibmm2/glibmm/containers.h [deleted file]
libs/glibmm2/glibmm/convert.cc [deleted file]
libs/glibmm2/glibmm/convert.h [deleted file]
libs/glibmm2/glibmm/date.cc [deleted file]
libs/glibmm2/glibmm/date.h [deleted file]
libs/glibmm2/glibmm/debug.cc [deleted file]
libs/glibmm2/glibmm/debug.h [deleted file]
libs/glibmm2/glibmm/dispatcher.cc [deleted file]
libs/glibmm2/glibmm/dispatcher.h [deleted file]
libs/glibmm2/glibmm/error.cc [deleted file]
libs/glibmm2/glibmm/error.h [deleted file]
libs/glibmm2/glibmm/exception.cc [deleted file]
libs/glibmm2/glibmm/exception.h [deleted file]
libs/glibmm2/glibmm/exceptionhandler.cc [deleted file]
libs/glibmm2/glibmm/exceptionhandler.h [deleted file]
libs/glibmm2/glibmm/fileutils.cc [deleted file]
libs/glibmm2/glibmm/fileutils.h [deleted file]
libs/glibmm2/glibmm/helperlist.h [deleted file]
libs/glibmm2/glibmm/i18n.h [deleted file]
libs/glibmm2/glibmm/init.cc [deleted file]
libs/glibmm2/glibmm/init.h [deleted file]
libs/glibmm2/glibmm/interface.cc [deleted file]
libs/glibmm2/glibmm/interface.h [deleted file]
libs/glibmm2/glibmm/iochannel.cc [deleted file]
libs/glibmm2/glibmm/iochannel.h [deleted file]
libs/glibmm2/glibmm/listhandle.h [deleted file]
libs/glibmm2/glibmm/main.cc [deleted file]
libs/glibmm2/glibmm/main.h [deleted file]
libs/glibmm2/glibmm/markup.cc [deleted file]
libs/glibmm2/glibmm/markup.h [deleted file]
libs/glibmm2/glibmm/miscutils.cc [deleted file]
libs/glibmm2/glibmm/miscutils.h [deleted file]
libs/glibmm2/glibmm/module.cc [deleted file]
libs/glibmm2/glibmm/module.h [deleted file]
libs/glibmm2/glibmm/object.cc [deleted file]
libs/glibmm2/glibmm/object.h [deleted file]
libs/glibmm2/glibmm/objectbase.cc [deleted file]
libs/glibmm2/glibmm/objectbase.h [deleted file]
libs/glibmm2/glibmm/optioncontext.cc [deleted file]
libs/glibmm2/glibmm/optioncontext.h [deleted file]
libs/glibmm2/glibmm/optionentry.cc [deleted file]
libs/glibmm2/glibmm/optionentry.h [deleted file]
libs/glibmm2/glibmm/optiongroup.cc [deleted file]
libs/glibmm2/glibmm/optiongroup.h [deleted file]
libs/glibmm2/glibmm/pattern.cc [deleted file]
libs/glibmm2/glibmm/pattern.h [deleted file]
libs/glibmm2/glibmm/private/convert_p.h [deleted file]
libs/glibmm2/glibmm/private/date_p.h [deleted file]
libs/glibmm2/glibmm/private/fileutils_p.h [deleted file]
libs/glibmm2/glibmm/private/interface_p.h [deleted file]
libs/glibmm2/glibmm/private/iochannel_p.h [deleted file]
libs/glibmm2/glibmm/private/markup_p.h [deleted file]
libs/glibmm2/glibmm/private/module_p.h [deleted file]
libs/glibmm2/glibmm/private/object_p.h [deleted file]
libs/glibmm2/glibmm/private/optioncontext_p.h [deleted file]
libs/glibmm2/glibmm/private/optionentry_p.h [deleted file]
libs/glibmm2/glibmm/private/optiongroup_p.h [deleted file]
libs/glibmm2/glibmm/private/shell_p.h [deleted file]
libs/glibmm2/glibmm/private/spawn_p.h [deleted file]
libs/glibmm2/glibmm/private/thread_p.h [deleted file]
libs/glibmm2/glibmm/private/unicode_p.h [deleted file]
libs/glibmm2/glibmm/property.cc [deleted file]
libs/glibmm2/glibmm/property.h [deleted file]
libs/glibmm2/glibmm/propertyproxy.cc [deleted file]
libs/glibmm2/glibmm/propertyproxy.h [deleted file]
libs/glibmm2/glibmm/propertyproxy_base.cc [deleted file]
libs/glibmm2/glibmm/propertyproxy_base.h [deleted file]
libs/glibmm2/glibmm/quark.cc [deleted file]
libs/glibmm2/glibmm/quark.h [deleted file]
libs/glibmm2/glibmm/random.cc [deleted file]
libs/glibmm2/glibmm/random.h [deleted file]
libs/glibmm2/glibmm/refptr.h [deleted file]
libs/glibmm2/glibmm/sarray.h [deleted file]
libs/glibmm2/glibmm/shell.cc [deleted file]
libs/glibmm2/glibmm/shell.h [deleted file]
libs/glibmm2/glibmm/signalproxy.cc [deleted file]
libs/glibmm2/glibmm/signalproxy.h [deleted file]
libs/glibmm2/glibmm/signalproxy_connectionnode.cc [deleted file]
libs/glibmm2/glibmm/signalproxy_connectionnode.h [deleted file]
libs/glibmm2/glibmm/slisthandle.h [deleted file]
libs/glibmm2/glibmm/spawn.cc [deleted file]
libs/glibmm2/glibmm/spawn.h [deleted file]
libs/glibmm2/glibmm/streamiochannel.cc [deleted file]
libs/glibmm2/glibmm/streamiochannel.h [deleted file]
libs/glibmm2/glibmm/stringutils.cc [deleted file]
libs/glibmm2/glibmm/stringutils.h [deleted file]
libs/glibmm2/glibmm/thread.cc [deleted file]
libs/glibmm2/glibmm/thread.h [deleted file]
libs/glibmm2/glibmm/threadpool.cc [deleted file]
libs/glibmm2/glibmm/threadpool.h [deleted file]
libs/glibmm2/glibmm/timer.cc [deleted file]
libs/glibmm2/glibmm/timer.h [deleted file]
libs/glibmm2/glibmm/timeval.cc [deleted file]
libs/glibmm2/glibmm/timeval.h [deleted file]
libs/glibmm2/glibmm/unicode.cc [deleted file]
libs/glibmm2/glibmm/unicode.h [deleted file]
libs/glibmm2/glibmm/ustring.cc [deleted file]
libs/glibmm2/glibmm/ustring.h [deleted file]
libs/glibmm2/glibmm/utility.cc [deleted file]
libs/glibmm2/glibmm/utility.h [deleted file]
libs/glibmm2/glibmm/value.cc [deleted file]
libs/glibmm2/glibmm/value.h [deleted file]
libs/glibmm2/glibmm/value_basictypes.cc [deleted file]
libs/glibmm2/glibmm/value_basictypes.h [deleted file]
libs/glibmm2/glibmm/value_custom.cc [deleted file]
libs/glibmm2/glibmm/value_custom.h [deleted file]
libs/glibmm2/glibmm/wrap.cc [deleted file]
libs/glibmm2/glibmm/wrap.h [deleted file]
libs/glibmm2/glibmm/wrap_init.cc [deleted file]
libs/glibmm2/glibmm/wrap_init.h [deleted file]
libs/glibmm2/glibmmconfig.h.in [deleted file]
libs/glibmm2/scripts/.cvsignore [deleted file]
libs/glibmm2/scripts/cxx.m4 [deleted file]
libs/glibmm2/scripts/cxx_std.m4 [deleted file]
libs/glibmm2/scripts/macros.m4 [deleted file]
libs/gtkmm2/gtk/gtkmm/assistant.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/assistant.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/cellrendereraccel.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/cellrendereraccel.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/cellrendererspin.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/cellrendererspin.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/linkbutton.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/linkbutton.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/listviewtext.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/listviewtext.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/pagesetup.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/pagesetup.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/pagesetupunixdialog.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/pagesetupunixdialog.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/papersize.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/papersize.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printcontext.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printcontext.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printer.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printer.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printjob.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printjob.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printoperation.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printoperation.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printoperationpreview.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printoperationpreview.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printsettings.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printsettings.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printunixdialog.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/printunixdialog.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/assistant_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/cellrendereraccel_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/cellrendererspin_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/linkbutton_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/pagesetup_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/pagesetupunixdialog_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/papersize_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/printcontext_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/printer_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/printjob_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/printoperation_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/printoperationpreview_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/printsettings_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/printunixdialog_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/recentchooser_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/recentchooserdialog_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/recentchoosermenu_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/recentchooserwidget_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/recentfilter_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/recentinfo_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/recentmanager_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/private/statusicon_p.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchooser.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchooser.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchooserdialog.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchooserdialog.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchoosermenu.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchoosermenu.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchooserwidget.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentchooserwidget.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentfilter.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentfilter.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentinfo.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentinfo.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentmanager.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/recentmanager.h [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/statusicon.cc [new file with mode: 0644]
libs/gtkmm2/gtk/gtkmm/statusicon.h [new file with mode: 0644]
libs/gtkmm2/pango/pangomm/cairofontmap.cc [new file with mode: 0644]
libs/gtkmm2/pango/pangomm/cairofontmap.h [new file with mode: 0644]
libs/gtkmm2/pango/pangomm/private/cairofontmap_p.h [new file with mode: 0644]

diff --git a/libs/glibmm2/.cvsignore b/libs/glibmm2/.cvsignore
deleted file mode 100644 (file)
index a96ad62..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache
-config.log
-config.status
-configure
-glibmm-2.4.pc
-glibmmconfig.h
-libtool
-stamp-h1
-*.os
-*.dylib
diff --git a/libs/glibmm2/AUTHORS b/libs/glibmm2/AUTHORS
deleted file mode 100644 (file)
index 35ef03f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Please use the mailing list (gtkmm-list@gnome.org) instead of emailing developers directly.
-See the ChangeLog for up-to-date information.
-
-Murray Cumming <murrayc@usa.net>
-Daniel Elstner <daniel.elstner@gmx.net>
-
-Some former contributors:
-
-Karl Nelson <kenelson@ece.ucdavis.edu>
-Tero Pulkkinen <terop@modeemi.cs.tut.fi>
-Elliot Lee <sopwith@redhat.com>
-Phil Dawes <P.L.Dawes-CSSE94@cs.bham.ac.uk>
-Erik Andersen <andersee@debian.org>
-Bibek Sahu <scorpio@dodds.net>
-Mirko Streckenbach 
-Havoc Pennington <hp@pobox.com>
-Guillaume Laurent <glaurent@telegraph-road.org>
-Todd Dukes <tdukes@ibmoto.com>
-Peter Lerner <peter.lerner@bnbt.de>
-Herbert Valerio Riedel <hvr@gnu.org>
diff --git a/libs/glibmm2/CHANGES b/libs/glibmm2/CHANGES
deleted file mode 100644 (file)
index 36571a7..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-Changes between glibmm 2.2 (previously part of gtkmm) and glibmm 2.4:
-
-* glibmm is now a separate module, for use with non-GUI software.
-  (Note that glibmm 2.4 and gtkmm 2.4 install in parallel with
-   gtkmm 2.2 - so you can install and use both simultaneously and
-   port to 2.4 whenever you are ready.) 
-* glibmm now uses libsigc++ 2 rather than libsigc++ 1.2.
-  There is a libsigc++ compatibility header. The new, undeprecated, API
-  is slightly improved.
-  - Connecting signal handlers:
-      signal_something().connect( SigC::slot(*this, &Something::on_something) );
-    should become
-      signal_something().connect( sigc::mem_fun(*this, &Something::on_something) );
-    or, for non-member methods:
-      signal_something().connect( sigc::ptr_fun(&Something::on_something) );
-  - Binding extra parameters:
-      SigC::bind(...)
-    should become
-      sigc::bind(...)
-  - Declaring signals:
-      SigC::Signal1<void, int>
-    should become
-      sigc::signal<void, int>
-  - Declaring slots:
-      SigC::Slot1<void, int>
-    should become
-      sigc::slot<void,int>
-  - Inheriting from the libsigc++ base class:
-      class Something : public SigC::Object
-    should become
-      class Something : public sigc::trackable
-
-   
diff --git a/libs/glibmm2/COPYING b/libs/glibmm2/COPYING
deleted file mode 100644 (file)
index c4792dd..0000000
+++ /dev/null
@@ -1,515 +0,0 @@
-
-                  GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-^L
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-^L
-                  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-^L
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-^L
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-^L
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-^L
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply, and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License
-may add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-^L
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                            NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-^L
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should
-have at least the "copyright" line and a pointer to where the full
-notice is found.
-
-
-    <one line to give the library's name and a brief idea of what it
-does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser 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
-
-Also add information on how to contact you by electronic and paper
-mail.
-
-You should also get your employer (if you work as a programmer) or
-your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James
-Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/libs/glibmm2/ChangeLog b/libs/glibmm2/ChangeLog
deleted file mode 100644 (file)
index 2862d34..0000000
+++ /dev/null
@@ -1,1648 +0,0 @@
-2.13.3:
-
-2006-11-28  Daniel Elstner  <danielk@openismus.com>
-
-       * tools/pm/GtkDefs.pm (read_defs): Allow an empty pair of
-       parentheses in the innermost match.  This fixes the problem of
-       gmmproc choking on "()" in the documentation strings.  This would
-       still break on unmatched parentheses, though.  Of course the
-       parser should just skip over quoted strings, but I wasn't able
-       to get that to work.
-       * glib/src/glib_enums.defs (GNormalizeMode): Manually fix the
-       improperly parsed value of G_NORMALIZE_NFD.  Fortunately this
-       doesn't change anything since the "#error" token was interpreted
-       as zero, which happens to be the right value.
-       * glib/src/glib_functions.defs (g_iconv): Manually convert to
-       a function definition, as it was improperly parsed as a method
-       with a zero-length name (!) of object GIConv.  This fixes the
-       annoying gmmproc warning about an allegedly unwrapped method.
-
-2006-11-28  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/propertyproxy_base.cc: Don't ifdef out 
-       PropertyProxy_Base when properties are disabled. It is needed 
-       for connect_property_changed().
-
-2006-11-27  Daniel Elstner  <danielk@openismus.com>
-
-       * tools/enum.pl (parse): Ignore whitespace in front of an enum
-       typedef.  This fixes parsing of HildonTelephoneEditorFormat in
-       hildon-libs.
-       * tools/pm/Enum.pm (parse_values): Check whether the enumeration
-       constants actually have a common module prefix before attempting
-       to remove it.  This fixes the incorrect parsing of inconsistently
-       named enums in hildon-libs.
-
-2006-11-27  Daniel Elstner  <danielk@openismus.com>
-
-       * tools/enum.pl (form_names): Break the loop if the length of the
-       common prefix reaches zero.  This fixes the infinite loop when
-       processing the inconsistently named enumeration constants of the
-       Hildon libraries.
-
-2006-11-20  Murray Cumming  <murrayc@murrayc.com>
-
-       * docs/reference/libstdc++.tag.xml: Updated from the libstdc++ site. 
-       Note that the original does not have an .xml extension. This is is 
-       lots bigger, but that should mean there is more documentation now.
-
-2006-11-22  Oliver Nittka  <oly@nittka.com>
-
-       * glib/src/value_basictypes.cc.m4: When registering float parameters, 
-       use -G_MAXFLOAT instead of G_MINFLOAT. Since we first implemented this, 
-       the glib documentation has been updated to make it cleare that this is 
-       the real minimum and G_MINFLOAT is the minimum positive value.
-       Do the same for doubles too.
-
-2006-11-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/Makefile.am: Add enum.pl to the dist, so that it is in 
-       tarballs. Someone saw it mentioned in the appendix, but could not 
-       find it in the tarball.
-
-2006-11-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * docs/reference/Doxyfile.in: Add PREDEFINES for the optional API, 
-       so that the documentation shows the regular API.
-
-2006-11-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/objectbase.cc:
-       * glib/glibmm/objectbase.h: Added connect_property_changed(), 
-       as an alternative to use when the property proxies are not 
-       available because GLIBMM_PROPERTIES_ENABLED is not defined.
-       SignalProxyProperty::connect(): Use notify::propertyname instead of 
-       just notify, so do not have to check the property name later. This 
-       should be more efficient (when this is used, rarely).
-       * glib/glibmm/propertyproxy_base.cc:
-       * glib/glibmm/propertyproxy_base.h: Move PropertyProxyConnectionNode
-       into the header, so we can reuse it for connect_property_changed(). 
-
-2006-10-04  Murray Cumming  <murrayc@murrayc.com>
-
-        * glib/glibmm/class.cc:
-        * glib/src/iochannel.ccg:
-        * glib/src/markup.ccg: Add a silly line to avoid unused parameters
-        when GLIBMM_EXCEPTIONS_ENABLED is not set.
-        * glib/glibmm/error.h: Do not use G_GNU_NO_RETURN on the version
-        of throw_exception() that returns, to avoid a warning.
-
-2006-10-01  Murray Cumming  <murrayc@murrayc.com>
-
-       * Makefile.am:
-       * docs/Makefile.am:
-       * docs/Makefile_web.am_fragment:
-       * docs/images/Makefile.am:
-       * docs/reference/Makefile.am:
-       * docs/reference/README:
-       * examples/Makefile.am: Upload to the new hoster instead of to sourceforge.
-       Abstracted the host and path names into docs/Makefile_web.am_fragment to 
-       avoid duplication.
-
-2.13.2:
-
-2006-09-28  Cedric Gustin  <cedric.gustin@gmail.com>
-       
-       * MSVC_Net2003/glibmm/glibmm.vcproj: Remove sarray from list of
-       source and header files.
-
-2006-09-26  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmmconfig.h.in: For win32, define 
-       GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS to 1, 
-       instead of just defining it to nothing.
-       * scripts/reduced.m4: In the AC_ARG_ENABLE() to 
-       define (or not) GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS, 
-       use api-default-signal-handlers as the first parameter 
-       instead of api-exceptions (a copy/paste error), though it does 
-       not seem to make any difference.
-       Bug #357830.
-
-2006-09-23  Jonathon Jongsma  <jonathon.jongsma@gmail.com>
-
-       * glib/src/keyfile.ccg, glib/src/keyfile.hg: added new files that were
-       missed from an earlier commit
-
-2.13.1:
-
-2006-09-19  Ralf Stephan  <ralf@ark.in-berlin.de>
-
-       * glib/glibmm/ustring.h: 
-       ustring(const ustring& src, size_type i, size_type n=npos)
-       and 
-       ustring(const char* src, size_type n) constructors:
-       In the reference documentation, mention explicitly that 
-       n is the number of _UTF-8_ characters, rather than 
-       ASCII characters (bytes).
-
-2006-02-20  Rob Page  <page.rob@gmail.com>
-
-       Wraps GKeyFile (Bug #330535)
-       * glib/glibmm.h: Added include of keyfile.h
-       * glib/glibmm/Makefile.am: Added keyfile.h
-       * glib/glibmm/containerhandle_shared.h: Added a TypeTraits
-       specialization for converting between bool and gboolean*.
-       * glib/src/Makefile_list_of_hg.am_fragment: Added keyfile.hg
-       to files_general_hg.
-       * glib/src/keyfile.hg: KeyFile header
-       * glib/src/keyfile.ccg: KeyFile implementation
-       * tools/m4/convert_glib.m4: Added a conversion for KeyFileFlags
-
-2006-09-14  Johannes Schmid <jhs@gnome.org>
-
-       * tools/m4/class_shared.m4: Change _IMPLEMENTS_INTERFACE to 
-       _IMPLEMENTS_INTERFACE_CC so we can have more control over it, 
-       by generating the _IMPLEMENTS_INTERFACE_CC from the WrapParser.pm.
-       * tools/m4/method.m4:
-       * tools/m4/signal.m4:
-       * tools/m4/vfunc.m4: Added optional parameters that result in 
-       #ifdefs around methods, signals, vfuncs, etc.
-       * tools/pm/Output.pm: Addef ifdef() and endif().
-       output_wrap_vfunc_h(), output_wrap_vfunc_cc(),
-       output_wrap_default_signal_handler_h(), 
-       output_wrap_default_signal_handler_cc(),
-       output_wrap_meth(),
-       output_wrap_create(),
-       output_wrap_sig_decl(): Support optional ifdefs around  
-       declarations and implementations, by calling ifdef() and endif(), 
-       or by passing the extra argument to the m4 macros.
-       * tools/pm/WrapParser.pm: parse_and_build_output(): 
-       Parse _IMPLEMENTS_INTERFACE, and call the new on_implements_interface() 
-       method, which uses the new output_implements_interface() method, 
-       so it can have an optional ifdef parameter.
-       on_wrap_method(), on_wrap_create(), on_wrap_vfunc(), output_wrap_signal(),
-       output_wrap_vfunc(): Handle the optional ifdef (with a parameter) option 
-       for the _WRAP*() macros.
-
-       This adds support for disabling certain features by using the new
-       "ifdef" argument for methods, vfuncs, signals and interfaces.
-
-2006-09-05  Jonathon Jongsma  <jonathon.jongsma@gmail.com>
-
-       * docs/reference/Makefile.am: rebuild docs when a .h files changes in
-       glib/glibmm
-       * glib/glibmm/miscutils.cc:
-       * glib/glibmm/miscutils.h: wrap g_get_user_data_dir(),
-       g_get_user_config_dir(), and g_get_user_cache_dir()
-
-This is the HEAD branch, for new API. There is also a glib-2-12 branch for 
-maintenance of the stable API.
-
-2006-08-18  Cedric Gustin  <cedric.gustin@gmail.com>
-       
-       * MSVC_Net2003/*.vcproj: Updated for glibmm-2.12.
-
-2.12.0:
-
-2.11.3:
-
-2006-04-25  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in:
-       * glib/glibmmconfig.h.in:
-       * scripts/reduced.m4: Added a --enable-api-default-signal-handlers option. This defines 
-       GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED, which is used to #ifdef default signal handlers.
-       This saves on library code size (less code and API symbols) and application code size and 
-       loading time (less virtual methods, which must be imported and resolved at load time) and 
-       per-object memory size (smaller object sizes because of less virtual methods.) 
-       * tools/m4/class_interface.m4:
-       * tools/m4/class_shared.m4: Put default signal handler code in #ifdefs.
-
-2.11.2:
-
-2006-07-17  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in: Reverted the previous patch slightly to unbreak glibmmconfig.h.
-
-2.11.1:
-
-2006-07-16  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in: Quote GLIBMM_*_VERSION to avoid m4 warnings. Patch from 
-       Bug #347076 from Kevin McBride.
-       * scripts/sun.m4: Quote GLIBMM_PROG_CXX_SUN to avoid an m4 warning. 
-       Patch from Bug #347077 from Kevin McBride.  
-
-2006-07-16  Jonathon Jongsma  <jonathon.jongsma@gmail.com>
-
-       * glib/src/date.ccg: fix implementation of Glib::Date::set_time_current() so
-       that it doesn't set the date to Dec 31, 1969.
-
-2006-06-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/object.h: Check whether DestroyNotify is defined, so we can warn about 
-       including X11/Xlib.h before this header, which will break things. 
-       Bug #316726 from Mert Tugcu and Javeed Shaikh.
-
-2006-06-09  Cedric Gustin  <cedric.gustin@gmail.com>
-
-       * glib/glibmm/objectbase.h : Inline the set_property and
-       get_property methods. This is required by mingw32-gcc as
-       ObjectBase is explicitly dllexported.
-
-2006-06-05  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/convert.ccg: When using --enable-api-exception=no, only try to get the Glib::Error 
-       when the GError is not null.
-
-2006-05-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/m4/method.m4: _METHOD(): When using errthrow, actually print the function call even if 
-       the return type is 0.
-
-2006-05-16  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/m4/method.m4:  _METHOD(), _STATIC_METHOD(): Remove spaces before dnl statements, 
-       to avoid unwanted indentation in .cc files.
-
-2006-05-16  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/m4/convert_base.m4: _CONVERT(): If the return type is void, use the unconverted 
-       statement, not no statement. This prevents some void methods from being totally empty. 
-       This was a (very bad) regression introduced by the optional API changed. 
-       Bug #341895 from Philip Langdale.
-       * tools/m4/method.m4: _METHOD(), _STATIC_METHOD(): Attempt to remove unnecessary newlines, 
-       though some indenting spaces slipped in instead. Must fix that. 
-
-2006-05-14  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/value.cc:
-       * glib/glibmm/value.h: Restored the init(GValue*) method that was lost when 
-       merging changes from the glibmm-2-10 branch.
-
-2006-05-09  Murray Cumming  <murrayc@murrayc.com>
-       * glib/glibmm/ustring.cc:
-       * glib/src/date.ccg:
-       * glib/src/convert.ccg:
-       * glib/src/convert.hg: Added #ifdefed versions for the case that 
-       exceptions are disabled.
-
-2006-05-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in:
-       * scripts/reduced.m4: Moved --enable-deprecated-api macro into scripts/reduced.m4.
-       Added the --enable-api-exceptions macro that was missing from my last commit.
-
-2006-04-05  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in:
-       * scripts/reduced.m4: Added --enable-api-exceptions option. When this 
-       is used, methods that would normally throw an exception will now take 
-       an extra std::auto_ptr<Glib::Error> argument that should be checked with 
-       auto_ptr::get().
-       * glib/glibmmconfig.h.in: Undef the GLIBMM_EXCEPTIONS_ENABLED, 
-       so it will be defined.
-       * tools/m4/gerror.m4: throw_func() returns an auto_ptr of a 
-       Glib::Error when exceptions are disabled.
-       * tools/m4/method.m4:
-       * tools/pm/Output.pm: on_wrap_method(): Added alternative API with 
-       #ifdefs
-       * tools/m4/signal.m4:
-       * tools/m4/signalproxy_custom.m4:
-       * tools/m4/vfunc.m4: Put #ifdefs around the exception re-throwing 
-       try/catch blocks.
-       * glib/glibmm/dispatcher.cc:
-       * glib/glibmm/dispatcher.h:
-       * glib/glibmm/error.cc:
-       * glib/glibmm/error.h:
-       * glib/glibmm/exceptionhandler.cc:
-       * glib/glibmm/exceptionhandler.h:
-       * glib/glibmm/main.cc:
-       * glib/glibmm/signalproxy.cc:
-       * glib/glibmm/streamiochannel.cc:
-       * glib/glibmm/stringutils.cc:
-       * glib/glibmm/threadpool.cc:
-       * glib/src/iochannel.ccg:
-       * glib/src/iochannel.hg:
-       * glib/src/markup.ccg:
-       * glib/src/spawn.ccg:
-       * glib/src/thread.ccg: Put #ifdefs around try/catch blocks, and 
-       use alternative API when appropriate.
-       * examples/iochannel_stream/fdstream.cc:
-       * examples/markup/parser.cc:
-       * examples/options/main.cc: Adapted examples to 
-       the alternative API, with #ifdefs
-       * tools/m4/convert_base.m4: Avoid any conversion if the result is 
-       void, to allow _WRAP_METHOD() to ignore bool results, so we can 
-       generate some methods that are currently hand-coded.
-
-2006-05-09  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/value.cc:
-       * glib/glibmm/value.h: Added init(const GValue*), so that we can copy GValue instances 
-       of any type at runtime. Needed by libgdamm, which returns const GValue* instances.
-
-This is the HEAD branch, for API additions. See also the glibmm-2-10 branch.
-
-2.10.1:
-
-2006-04-12  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/m4/signalproxy_custom.m4: Remove this file because it is not installed and 
-       does not seem to be used.
-
-2006-04-12  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/m4/signal.m4: Mark the (private) signal info callback functions as 
-       static, to save on code size. 
-
-2006-04-12  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/pm/WrapParser.pm: Parse a new optional constversion parameter for 
-       _WRAP_METHOD(), to save on code size by just calling the non-const overload 
-       instead of generating almost identical code.
-       * tools/m4/method.m4: _METHOD(): Take extra parameters for use when constversion is used.
-       * tools/pm/Output.pm: Send the extra parameters to _METHOD().
-       * docs/internal/using_gmmproc.txt: Documented the new constversion option.
-
-2006-04-12  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/main.cc:
-       * glib/glibmm/objectbase.cc:
-       * glib/glibmm/property.cc:
-       * glib/glibmm/ustring.cc:
-       * glib/glibmm/value_custom.cc: 
-       * glib/src/spawn.ccg: Mark private functions as 
-       static, to stop them being exported in the API, to reduce the 
-       library code size slightly.
-       * tools/m4/signal.m4: Make generated callback functions static, for 
-       the same reasons.
-
-2006-04-07  Cedric Gustin  <cedric.gustin@gmail.com>
-
-       * README.win32: Updated for Mingw-4.1.
-
-2006-04-06  Cedric Gustin  <cedric.gustin@gmail.com>
-
-       * MSVC_Net2003/*.vcproj: Embed the manifest file into executables
-       in the case of the Debug target.
-       * README.win32: Fixed a few typos.
-       * build_shared/Makefile_build.am_fragment: Add -DGLIBMM_BUILD to
-       the extra_defines compiler flags (switch between
-       dllexport/dllimport on win32).
-       * glib/glibmmconfig.h.in: Define GLIBMM_DLL when building with
-       mingw32/cygwin. This makes the GLIBMM_API tag (and GTKMM_API for
-       gtkmm) active with these two platforms, as required by bug
-       #309030.  
-       * glib/glibmm/object.h, glib/glibmm/objectbase.h : Tag the Object
-       and ObjectBase classes with GLIBMM_API to make Visual Studio happy.
-
-2.10.0:
-
-2006-02-25  Murray Cumming  <murrayc@murrayc.com>
-       * tools/pm/DocsParser.pm: looklookup_documentation(): Put the 
-       @deprecated text immediately after the main description, before 
-       the parameters, so that Doxygen actually uses it.
-2006-02-25  Murray Cumming  <murrayc@murrayc.com>
-       * tools/pm/DocsParser.pm: looklookup_documentation(): Accept an 
-       extra deprecated_documentation parameter, to be appended to the 
-       Doxygen documentation.
-       * tools/pm/Output.pm: output_wrap_meth(): Put the documentation 
-       inside the deprecation #ifdef, for neatness.
-       * tools/pm/WrapParser.pm: on_wrap_method(): Read an optional string 
-       after the optional deprecated parameter, used to say why the 
-       method is deprecated, in case it was not deprecated by the C API, 
-       in which case it would already have documentation for this.
-
-2006-02-27  Cedric Gustin <cedric.gustin@gmail.com>
-
-       * README.win32: Updated for glibmm-2.8 (MS Visual Studio 2005).
-       * glib/glibmm/ustring.h: Tag npos with GLIBMM_API, in order to
-       dllexport it on win32. Bug #332438.
-       * MSVC_Net2003/*.vcproj: Updated for Visual Studio 2005. Added the
-       /vd2 compiler flag (Bug #158040).
-       * MSVC_Net2003/glibmm.sln: Updated for Visual Studio 2005.
-       * MSVC_Net2003/gendef/gendef.cc: Redirect output of dumpbin to a
-       file.
-       * glib/glibmmconfig.h.in: Undefined
-       GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS for MSVC.
-
-2006-02-03  Murray Cumming  <murrayc@murrayc.com>
-
-       * docs/internal/using_gmmproc.txt: Section about regenerating .defs:
-       Repeat the hint about extra_defs_gen here.
-
-2006-02-27  Cedric Gustin <cedric.gustin@gmail.com>
-
-       * glib/glibmm/ustring.h: Tag npos with GLIBMM_API, in order to
-       dllexport it on win32. Bug #332438.
-
-2006-02-07  Rob Page  <page.rob@gmail.com>
-
-       * glib/glibmm/ustring.h: fix a typo in the documentation for uppercase()
-
-2.9.1:
-
-2006-01-28  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optiongroup.ccg: add_entry_with_wrapper(): Copy the 
-       CppOptionEntry into the map _after_ setting entry_ so that we 
-       really delete it in release_c_arg(), to avoid a memory leak.
-
-2006-01-28  Rob Page <rob@gmail.com>
-
-       * docs/reference/glibmm_header.html_fragment: Fix the link 
-       to the Main page. Bug #328299.
-
-2006-01-27  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optionentry.ccg: Constructor: Avoid memory 
-       leak caused by double instantiation of gobject_.
-
-2005-12-16  Murray Cumming <murrayc@murrayc.com>
-
-       * glib/glibmm/object.h:
-       * glib/glibmm/objectbase.h: Hide some internal stuff 
-       from Doxygen. Add/Improve the Doxygen documentation.
-       * glib/src/convert.hg: Correct the declaration of 
-       filename_display_name() to match the implementation. 
-       Previously this would have been unusable due to a linker 
-       error.
-
-2005-11-30  Murray Cumming <murrayc@murrayc.com>
-
-       * docs/reference/Doxyfile.in: Define the @newin aliases, 
-       as in gtkmm.
-       * tools/pm/DocsParser.pm: Convert Since: in gtk-doc 
-       text to @newin for our doxygen docs.
-
-2005-11-29  Murray Cumming <murrayc.com>
-
-       * build_shared/Makefile_build.am_fragment:
-       * configure.in: Added --enable-use-deprecations, 
-       defaulting to no (do not check for them), so that 
-       the tarball will still build when newer versions 
-       of glib deprecate some API. 
-       * examples/Makefile.am_fragment: Use the 
-       deprecation, if wanted.
-
-2005-11-29  Murray Cumming <murrayc@murrayc.com>
-
-       * build_shared/Makefile_build.am_fragment:
-       * configure.in: Added --enable-deprecated-api 
-       option. When set to disabled, it does not build 
-       deprecated API. This reduces the size of the library, 
-       and might be useful for embedded devices.
-       * glib/src/date.ccg:
-       * glib/src/date.hg: Use _DEPRECATE_IFDEF_START/END 
-       around the deprecated set_time() method.
-
-2005-11-29  Murray Cumming <murrayc@murrayc.com>
-
-       * tools/m4/base.m4: Add 
-        _DEPRECATE_IFDEF_START and _DEPRECATE_IFDEF_END 
-       macros, to #ifdef-out generated methods. 
-       Added _DEPRECATE_IFDEF_CLASS_START and 
-       _DEPRECATE_IFDEF_CLASS_END for whole classes. 
-       Put _DEPRECATE_IFDEF_CLASS* around all generated 
-       code. It does nothing if the class is not deprecated.
-       * tools/m4/class_gtkobject.m4: Add _DEPRECATED macro, 
-       used to mark a class as deprecated.
-       * tools/m4/method.m4: Take an extra parameter, to 
-       optionally mark the method as deprecated, to add 
-       #ifdefs around the code, with 
-       _DEPRECATE_IFDEF_START/END
-       * tools/pm/Output.pm: _DEPRECATE_IFDEF_START/END 
-       around the declarations of deprecated methods.
-       * tools/pm/WrapParser.pm: Check for an optional 
-       deprecated parameter to _WRAP_METHOD(). 
-       * tools/m4/member.m4: Allow optional deprecated 
-       method for _MEMBER_GET/SET*() to ifdef the code 
-       out.
-       * tools/generate_wrap_init.pl.in: Put an #ifdef 
-       around use of deprecated classes.
-
-2005-11-23  Murray Cumming <murrayc@murrayc.com>
-
-       * configure.in: Depend on glib 2.9, which 
-       has new API.
-       * glib/src/date.ccg:
-       * glib/src/date.hg: Wrap glib_date_set_time_t() 
-       and glib_date_set_time_val(). Deprecate  
-       set_time(GTime) in favour of the new method 
-       overloads. Added set_time_current(), wrapping the 
-       case that the time_t is 0.
-
-This is the HEAD branch, for new API, targetting glib 2.9. See also the 
-glibmm-2-8 branch.
-
-2.8.2:
-
-2005-11-23  Murray Cumming <murrayc@murrayc.com>
-
-       * glib/glibmm/containers.h: Do not use g_assert() in 
-       a header, because g++ sometimes warns that it has 
-       no effect.
-
-2005-10-29  Murray Cumming <murrayc@murrayc.com>
-
-       * scripts/macros.m4: AL_PROG_GNU_MAKE(): 
-       Use $MAKE-make instead of $ac_make, which 
-       apparently fixes a build problem on some 
-       Solaris systems. Thanks to Mark Rouchal in 
-       bug #307480.
-
-2.8.1:
-
-2005-10-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in: Check for glib 2.8. Bug #317913.
-
-2.8.0:
-
-Updated NEWS and increased version to 2.8.0.
-
-2.7.3:
-
-2005-08-17  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/glib_docs.xml: Regenerated with docextract_to_xml.py
-       * glib/src/glib_enums.defs: Regenerated with enums.pl
-       * glib/src/glib_functions.defs: Regenerated with h2defs.py
-
-2.7.2:
-
-2005-07-16  Murray Cumming <murrayc@murrayc.com
-
-       * glib/glibmm/miscutils.cc: Reimplemented build_filename() and 
-       build_path() with the new non-vararg functions in glib 2.7, 
-       instead of implementing them in gtkmm.
-       * glib/src/glib_enums.defs: Regenerated with enums.pl
-       * glib/src/optionentry.hg: Added FLAG_NO_ARG, FLAG_FILENAME, 
-       FLAG_OPTIONAL_ARG, and FLAG_NOALIAS enum values.
-
-
-2.7.1:
-
-2005-06-08  Murray Cumming <murrayc@murrayc.com
-
-       * glib/glibmm/propertyproxy.h: 
-       PropertyProxy_ReadOnly<>::get_value(),
-       PropertyProxy_WriteOnly<>::set_value(): Add implementations 
-       instead of casting to unrelated PropertyProxy() and calling it 
-       there. The AIX compiler did not like this hack. Bug #301610
-
-2005-06-07  Cedric Gustin <cedric.gustin@swing.be>
-
-       * glib/glibmm/miscutils.cc: In get_home_dir, return an empty
-       string when HOME is not defined (Win9x). Bug #306310 from Michael
-       Hofmann.
-       * glib/glibmm/miscutils.h: Updated docstring for the get_home_dir
-       method.
-
-2005-04-27  Murray Cumming <murrayc@murrayc.com>
-
-       * examples/child_watch/main.cc:
-       * examples/thread/dispatcher.cc:
-       * examples/thread/thread.cc:
-       * glib/glibmm/dispatcher.cc: Inherit signal handler objects from 
-       sigc::trackable. This is necessary with some libsigc++ patches, 
-       though not currently necessary with regular libsigc++.
-
-2005-04-22  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/gmodule_enums.defs: Regenerate with enums.pl
-       * glib/src/gmodule_functions.defs: Regenerate with h2defs.py
-       This adds the BIND_LOCAL enum value. Bug #172748 from 
-        Phillip Neiswanger.
-
-2005-04-05  Murray Cumming  <murrayc@murrayc.com>
-
-       * tool/pm/Output.pm: output_wrap_property(): Do not add the 
-       const read-only method override if the property can not be read. Be 
-       careful because this removes a little API from generated code. You 
-       should hand-code the wrongly-generated methods and mark them as 
-       deprecated.
-       * glib/glibmm/refptr.h: Added cast_const<>, like the existing 
-       cast_dynamic<> and cast_static.
-
-2005-03-31  Murray Cumming <murrayc@murrayc.com>
-
-       * glib/src/glib_functions.defs: Updated with 
-       h2defs.py.
-
-2005-03-13  Yair Hershkovitz <yairhr@gmail.com>
-
-       * glib/glibmm/main.h,
-       glib/glibmm/main.cc: Added MainContext::signal_child_watch()
-       * examples/: Added child_watch/ example   
-  
-2005-03-11  Yair Hershkovitz <yairhr@gmail.com>
-
-       * glib/glibmm/main.h, glib/glibmm/main.cc: 
-       Add Glib::SignalChildWatch class, Glib::signal_child_watch()
-
-This is the HEAD branch, for new API. Bug fixes that do not change or add 
-API should also be applied to the glibmm-2-6 branch.
-
-2005-03-09  Cedric Gustin <cedric.gustin@swing.be>
-
-       * MSVC_Net2003/Makefile.am: Add blank.cpp to EXTRA_DIST.
-       * MSVC_Net2003/glibmm/glibmm.vcproj: Remove sarray.cc from the
-       list of source files.
-       * MSVC_Net2003/examples/*/*.vcproj,
-       MSVC_Net2003/tests/glibmm_value/glibmmvalue.vcproj: Change name of
-       PDB file to $(OutDir)/$(TargetName).pdb. 
-       
-2.6.1:
-
-2005-03-07  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/interface.cc: Disable the new check for pre-existing 
-       interface implementations, because it checks all base gtypes and 
-       not just the current gtype. Bug #169442 by Bryan Forbes.
-
-2.6.0:
-
-2.5.6:
-
-2005-02-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/interface.cc: Interface_Class:add_interface(), used by 
-       add_interface() methods of Interfaces: Do not add interfaces that 
-       have been added before, to avoid the warning from glib. This 
-       allows application code to be simpler.
-
-2005-02-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/pm/Output.pm: Add the documentation to the const property() 
-       accessor as well as the non-const one.
-
-2005-02-13  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/extra_defs_gen/generate_extra_defs.cc: Use 
-       g_param_spec_get_blurb() to output the documentation for the 
-       properties in the .defs file.
-       * tools/m4/property.m4: Take an extra docs argument, and put it in the 
-       doxygen docs.
-       * tools/pm/Output.pm: Add the extra docs argument when calling the 
-       property m4 macro.
-       * tools/pm/Property.pm: Read in the new docs part of the .defs, and 
-       add a period at the end if neccessary.
-
-2005-02-01  Murray Cumming  <murrayc@murrayc.com>
-
-       * examples/threadpool.cc, dispatcher.cc, dispatcher2.cc: Removed the 
-       #ifdef for AIX, because sigc::bind now works on AIX.
-
-2005-01-27  Cedric Gustin <cedric.gustin@swing.be>
-
-       * MSVC_Net2003/glibmm/glibmm.rc.in: Reverted to 2.4 for the
-       library version number.
-
-2.5.5:
-
-2005-01-26  Cedric Gustin <cedric.gustin@swing.be>
-
-       * MSVC_Net2003/glibmm/glibmm.vcproj: Reverted to 2.4 for the
-       library version number.
-
-2005-01-24  Cedric Gustin <cedric.gustin@swing.be>
-
-       * Makefile.am, configure.in: Added MSVC_Net2003 directory.
-       * config.h.in: Added mkfifo #define (for mingw32).
-       * glib/glibmmconfig.h.in: Added new #define's to MSVC section.
-       * examples/iochannel_stream/Makefile.am: Do not build on win32
-       with mingw32 (mkfifo not available).
-       * scripts/cxx_std.m4: Fixed typo in AC_DEFINE macros.
-       * build_shared/Makefile_build.am_fragment: Removed
-       $(sublib_name)_COMPILATION variable (is useless now on
-       cygwin/mingw as all symbols are dll exported).
-       * MSVC_Net2003/*: Initial commit imported from glibmm-2-4 branch.
-       * MSVC_Net2003/glibmm/Makefile.am: Rewrote rule for local copy of
-       glibmmconfig.h (required for 'make distcheck').
-
-2005-01-21  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in, scripts/cxx.m4, glibmm/glibmmconfig.h.in: Added new 
-       compiler tests to see whether extern "C" functions are put in the 
-       global namespace, even when we use extern "C" inside a namespace 
-       declaration. The AIX xlC compiler does this, but allows us to 
-       redeclare the namespace inside the extern "C" block.
-       * glib/glibmm/property.h: Use the new 
-       #ifdef GLIBMM_MUST_REDECLARE_NAMESPACES_INSIDE_EXTERNC and redeclare 
-       the namespace when necessary.
-       * examples/thread/dispatcher.cc, dispatcher2.cc: Use sigc::bind<1> 
-       instead of just sigc::bind<> because the AIX xlC compiler needs the 
-       extra hint. However, the linker then fails, so the use of sigc::bind 
-       is ifdefed out for _AIX. See the comments in the code.
-       
-2005-01-21  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in, scripts/cxx.m4, glibmm/glibmmconfig.h.in: Added new 
-       compiler tests.
-       1. To see whether it allows use of non extern C functions 
-       as extern C callbacks, because the Tru64 compiler does not 
-       allow this, when using strict_ansi. We do not actually use this yet.
-       2. To see whether it allows us to define a template that uses an 
-       undefined type, even if we do not use it before defining the type. 
-       Tru64 does not allow this. That's probably correct. 
-       * glib/glibmm/container.h: #ifdef out a dynamic_cast that Tru64
-       does not allow, and which I can not think of a better place to put.
-       See the comment in the code.
-       * glib/glibmm/containerhandler_helpers.h: When the compiler does not 
-       alllow the GObject and GtkObject (dynamic_cast of) specializations 
-       here, then put them in glib/glibmm/object.h and 
-       gtkmm/gtk/src/object.hg instead.- needed by Tru64 compiler.
-       * glib/glibmm/value.h, value_custom.[h|cc]: Conditionally moved 
-       the RefPtr Value specialization into object.h, as above.
-       * glib/src/ optiongroup.ccg, spawn.ccg, thread.ccg: Make C callacks 
-       separate extern "C".
-       * glib/src/optiongroup.ccg: Do not use the StringArrayHandle, 
-       because the Tru64 compiler has problems with it - see comments 
-       in code.
-       * glib/src/optionentry.hg: Remove the include of value.h, because 
-       it is not used and it causes a Tru64 compile error in 
-       optioncontext.cc because its templates are included before the 
-       types that the template uses.
-
-2005-01-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in, scripts/cxx.m4, glibmm/glibmmconfig.h.in: Added a 
-       compiler test, because the IRIX MipsPro compiler does not allow the 
-       inline initialization of ustring::npos.
-       * glib/glibmm/ustring.[h|cc]: When the compiler does not support the 
-       inline initialization of npos, initialize it in the .cc file.
-       Declare partial specializations of the SequenceString inner class 
-       inside the class - needed by IRIX MipsPro compiler. 
-
-2005-01-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * glibmm/src/optiongroup.[hg|ccg]: CppOptionEntry::convert_c_to_cpp(): 
-       Copy the strings to the vector in a loop, instead of using the 
-       ArrayHandle constructor, because that does not seem to work with the 
-       SUN Forte compiler.
-
-2.5.4:
-
-2005-01-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * glibmm/src/optiongroup.[hg|ccg]: Added a castitem constructor 
-       that always takes ownership, needed by Gtk::Main. Added the new 
-       FLAG_REVERSE flag value. Added reference documentation.
-
-2.5.3:
-
-2005-01-09  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/misc_utils.[h|cc]: Added setenv() and unsetenv(), 
-       wrapping new functions added in glib 2.4.
-       * glib/src/convert.[hg|ccg]: Added filename_display_name() and 
-       filename_display_basename().
-
-2005-01-09  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optionentry.ccg: Copy constructor: Copy the short name 
-       form the src, not from itself. Bug #16331 from Daniel Holbach.
-
-2005-01-09  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optionentry.[hg|cc]: Add add_entry(entry, bool&), to wrap 
-       use of G_OPTION_ARG_NONE. Bug #163325 from Daniel Holbach.
-       * examples/options/main.cc: Use the new add_entry() overload.
-
-2005-01-06  Benoît Dejean  <TazForEver@dlfp.org>
-
-       * glib/glibmm/dispatcher.cc:
-       * glib/glibmm/error.cc:
-       * glib/glibmm/exceptionhandler.cc:
-       * glib/glibmm/main.cc:
-       * glib/glibmm/threadpool.cc:
-       * glib/glibmm/ustring.cc:
-       * glib/glibmm/wrap.cc: Don't export private API.
-       Closes #163031.
-
-2005-01-04  Chris Vine <chris@cvine.freeserve.co.uk>
-       
-       * examples/iochannel_stream/: Provide a means of obtaining
-       Glib::IOChannel error information from the streambuffer.  Remove
-       the code conversion option from the fdstream/fdstreambuf
-       constructors and add comments in fdstream.h about code conversion
-       and other matters.  Add a detach() function and a destructor to
-       fdstreambuf.  Correct an error in fdstreambuf::xsgetn().  Include
-       missing <string> header file in main.cc.
-
-2.5.2:
-
-2004-12-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * examples/: Adapted and added iochannel_stream example from 
-       Chris Vine in bug #138259.
-
-2004-12-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/: Added glib_docs.xml, generated with docsextract_to_xml.py 
-       and glib_docs_override.xml, to generate some API reference from 
-       the C docs.
-       * glib/src/Makefile.am: Mention the new files.
-
-2004-12-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * docs/reference/: Added a copy of the libstdc++ doxygen tags file, 
-       but it still does not seem to work, for example with std::vector<> 
-       and std::string.
-
-2004-12-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * docs/reference/Doxyfile.in: Use the libstdc++ TAG files, so that 
-       references to std:: classes take people to their docs.
-       * glib/src/: Added glib_docs.xml and glib_docs_override.xml, and 
-       mentioned them in Makefile.am.
-
-2004-12-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/date.hg, glib/glibmm/main.h, 
-       glib/glibmm/signalproxy_connectionnode.h: Deal with some doxygen 
-       warnings about undocumented parameters.
-       * glib/glibmm/ustring.h: Added documentation for the size() and 
-       bytes() methods. 
-
-2004-11-21  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optionentry.[hg|ccg]: Removed OptionEntry enum and 
-       set_arg_data(), because they are not needed any more.
-
-2.5.1:
-
-2004-11-01  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optiongroup.[hg|ccg]: Added add_entry() for vector<ustring> 
-       and add_entry_filename() for std::string and vector<std::string>.
-       * examples/options/main.cc: Test these new methods.
-
-2004-10-30  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optiongroup.[hg|ccg]: Added gobj_give_ownership().
-       * glib/src/optioncontext.[hg|ccg]: add_group(), set_main_group(): Use 
-       gobj_give_ownership() because GOptionContext deletes the GOptionGroups 
-       that we give it.
-
-2004-10-26  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optionentry.hg: Remove accessors for arg and arg_data.
-       * glib/src/optiongroup.[hg|ccg]: add_entry(): Remove arg_type parameter
-       and instead add overrides which take specific C++ value types. 
-       Add CppOptionEntry inner class to hold information about each entry 
-       and its dynamically allocated C value.
-       Add map_entries_ map to store them, so we can iterate over them during 
-       post_parse.
-
-2004-10-21  Murray Cumming  <murrayc@murrayc.com>
-
-       * build_shared/Makefile_build.am_fragment: Patch from Roger Leigh in 
-       bug # 15589 to use PLATFORM_WIN32 rather than OS_WIN32 to enable 
-       -no-undefined. This allows glibmm to build in a cgwin environment, 
-       apparently.
-
-2.5.0:
-
-2004-10-17  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/optioncontext.[hg|ccg]: add_entry(): Fixed crash by 
-       creating a temporary array, with a nulled last item, which is what the 
-       C function wants. In callbacks, ignore the group parameter because our 
-       option group in the data parameter is the same, and does not require 
-       construction of a second C++ wrapper instance for the same C instance.
-       * glib/src/optiongroup.[hg|ccg]: Removed the cast constructor, because 
-       it is not needed anymore, and there is no clear way to implement it.
-
-2004-10-14  Murray Cumming  <murrayc@murrayc.com>
-       * tools/pm/WrapParser.pm: on_wrap_property(): Convert property name to 
-       canonical form, so that we can recognise notifications of property 
-       value changes. Bug #152764.
-
-2004-10-07  Philip Langdale  <plangdale@vmware.com>
-
-       * glib/glibmm/signalproxy_connectionnode.cc: Remove unnecessary warning
-       when notify() is called after destroy_notify_handler(). (bug #154498)
-
-2004-10-01  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/option*.[hg|ccg], examples/options/main.cc: Rethought the 
-       structure now that I see how the parts work together. Rearranged the 
-       example to show how the parsing can fill values in member variables 
-       of a derived OptionGroup class. However, 1. it crashes now, 2. we need 
-       extra code to map the GOption C types to suitable C++ types, probably 
-       by doing pre and post parsing to create temporary C types for the C++ 
-       types.
-
-2004-09-27  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/option*.[hg|ccg]: Wrapped more methods, but I have still not
-       finished.
-       * examples/options/: Started an example.
-
-2004-09-26  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/src/glib_functions.defs: Regenerated with h2defs.py
-       * glib/src/: Added optionentry.[hg|ccg], optiongroup.[hg|ccg], 
-       optioncontext.[hg|ccg].
-
-2004-09-19  Murray Cumming  <murrayc@murrayc.com>
-
-       * This is the HEAD branch.
-
-2004-09-13  Cedric Gustin <cedric.gustin@swing.be>
-
-       * examples/thread/dispatcher.cc: Fixed a race condition on win32
-       that involved the combined use of auto_ptr and multithreading (bug
-       #109966). 
-
-2.4.4:
-
-2004-07-23  Martin Schulze  <mschulze@cvs.gnome.org>
-
-       * glib/glibmm/main.cc: Move deletion of SourceConnectionNode object
-       into destroy_notify_callback() exclusively; do not delete from 
-       notify().
-       (bug #144420)
-
-2004-07-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/signalproxy_connectionnode.cc: notify(): Do not delete 
-       the connection after disconnecting it, because disconnecting it 
-       always causes disconnect_notify to be called, so just delete it there.
-       This prevents double deletes and reading of deleting memory, found in 
-       bug #145571.
-
-2004-07-09  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/signalproxy.h.m4: Added some documentation.
-
-2004-06-20  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/objectbase.cc: Spring cleaning.
-       * glib/glibmm/object.cc: ditto.
-
-2.4.3:
-
-2004-06-18  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * scripts/macros.m4 (GTKMM_ARG_ENABLE_WARNINGS): Add
-       -Wno-long-long to the list of tried warning flags.
-
-2004-06-16  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/dispatcher.cc (DispatchNotifier::create_pipe): There
-       is no point in calling g_file_error_from_errno() on win32 since we
-       have no real errno.  Also fix the error text to say "event" rather
-       than "pipe".
-
-2004-06-14  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * scripts/cxx.m4: Add a couple of casts to void in order to suppress
-       warnings about unused variables.  I still have no idea as to why the
-       hardcore warning flags are remembered when running make distcheck...
-
-2004-06-14  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * examples/thread/dispatcher.cc: Explicitely join all threads.
-       Hopefully that'll fix the crash on win32 (see bug #109966).
-
-2004-06-13  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * examples/thread/dispatcher*.cc (main): Remove unused parameter
-       names to fix building with -Werror.
-
-2004-06-13  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * configure.in (GTKMM_ENABLE_DEBUG_REFCOUNTING): s/^GTK/GLIB/
-
-2004-06-08  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * build_shared/Makefile_build.am_fragment (all_includes): Remove
-       left-over include paths for pango, atk, gdk and gtk.
-
-2004-06-07  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/stringutils.h: Replace a couple of double quotes with
-       &quot; to prevent doxygen from escaping the enclosed HTML entities.
-
-2004-06-04  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/ustring.h: Use /*! instead of /** to introduce
-       doxygen comments in order to avoid cluttering the long method list
-       of class Glib::ustring.  Replace a few double quotes with &quot;
-       to prevent doxygen from escaping the enclosed HTML entities.
-
-2.4.2:
-
-2004-06-03  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * scripts/Makefile.am (EXTRA_DIST): Remove mkinstalldirs, because
-       automake-1.8 doesn't use it anymore and prior versions should pick
-       it up automatically anyway.
-
-2004-06-03  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/dispatcher.cc: Complete overhaul of the Win32
-       implementation of Glib::Dispatcher.  That is, mutex locking is
-       done correctly now and dynamic memory allocation is no longer
-       used, plus a few other cleanups.  See reopened bug #109966.
-
-2004-06-03  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/signalproxy_connectionnode.cc
-       (SignalProxyConnectionNode::SignalProxyConnectionNode):
-       Reorder the initializer list to match the declaration order.
-
-       (SignalProxyConnectionNode::notify): Add missing return 0.
-
-2004-05-26  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/ustring.{cc,h}: Globally apply some minor code
-       cleanup and optimization tweaks.
-
-       (get_unichar_from_std_iterator): Replace implementation with a
-       hand-optimized and profiled variant that has been lurking in my
-       local tree for quite some time, thus should be well tested.
-       Also add the G_GNUC_PURE() attribute.
-
-       (operator+): Explicitely instantiate and return a temporary string,
-       instead of accessing the reference ustring::operator+=() returns.
-       This quite often allows the compiler to eliminate the additional
-       copy constructor invocation.
-
-2004-05-25  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in, Makefile.am: Removed the glibmm.spec files, because
-       it is broken and nobody has volunteered to fix it.
-
-2004-05-20  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * examples/thread/dispatcher.cc: Revert last commit because it's
-       silly.  To make the code truly exception-safe it would be necessary
-       to either join all threads or to notify them, which is way beyond
-       the scope of this example.
-
-2004-05-20  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * examples/thread/dispatcher.cc: Set a good example and
-       be paranoid about possible memory leaks due to exeptions.
-
-2004-05-20  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * examples/thread/dispatcher.cc: Code cleanup.  Most importantly,
-       get rid of the locking around std::cout since it obfuscates the
-       purpose of using Glib::Dispatcher.
-
-2004-05-13  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/object.{cc,h} (ConstructParams::ConstructParams):
-       Implement the copy constructor in a way that actually works if used.
-       Relying on the compiler to optimize it away is a bad idea. (#132300)
-
-2004-05-04  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/ustring.h: Documented the constructors, based on
-       the libstdc++ documentation, to make it clear that sizes are in 
-       characters rather than bytes.
-
-2004-05-01  Murray Cumming  <murrayc@murrayc.com>
-
-       * configure.in: Increase glib dependency to 2.4.0.
-
-2004-04-30  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/m4/gobject.m4: Allow use of _CUSTOM_DTOR(), needed by
-       Gnome::Gda::Connection.
-
-2.4.1:
-
-2004-04-17  Murray Cumming  <murrayc@murrayc.com>
-
-       * docs/reference/Makefile.am: Make the generated html depend on the
-       beautify_docs.pl.in source instead of the generated beautify_docs.pl,
-       so that the html is not rebuilt from tarballs.
-
-2004-04-17  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/container_handle.h: Reimplemented more of the 
-       to_cpp_type() methods without using dependent methods, so that they 
-       work with g++ 3.4 (cvs versions).
-
-2.4.0:
-
-2004-04-11  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/pm/WrapParser.pm, Output.pm, m4/signal.m4: Allow _WRAP_SIGNAL()
-       to take an refreturn argument, so that Gtk::Widget::on_get_accessible()
-       can do an extra ref before returning the Atk::Object. 
-
-2004-04-09  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/pm/Output.pm: output_wrap_property(): Provide the actual
-       property name as well as one with - replace with _, so we can 
-       test for the correct value in notification signal handler.
-       * tools/m4/property.m4: Use the actual property name when calling
-       C functions.
-
-2.3.8:
-
-2004-03-24  Murray Cumming  <murrayc@murrayc.com>
-
-       * scripts/cxx.m4: Corrected parentheses, which cause the docs to be 
-       written into config.h. Thanks to Alexander Nedotsukov.
-
-2004-03-23  Murray Cumming  <murrayc@murrayc.com>
-
-       * scripts/cxx.m4: Corrected the ambiguous const template test, which
-       failed on all platforms because it generated bad code.
-
-2004-03-20  Martin Schulze  <mschulze@cvs.gnome.org>
-
-       * glibmm/main.cc: Bug fix in SourceConnectionNode::notify() (#137030).
-
-2004-03-18  Murray Cumming  <murrayc@murrayc.com>
-       * tools/generate_wrap_init.pl: Change a regex so that files are
-       included without full path. Apparently this helps when building outside
-       of the source directory, though I'm sceptical. By Victor Zverovich in 
-       bug #137530.
-
-2.3.7:
-
-2004-03-14  Murray Cumming  <murrayc@murrayc.com>
-                                                                         
-        * scripts/sun.m4: Set the correct variable, so it is actually set in 
-       glibmmconfig.
-
-2004-03-14  Murray Cumming  <murrayc@murrayc.com>                                                                                       
-        * glib/glibmm/containerhandle_shared.h value.h: Used ifdef 
-        GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS to avoid 
-       problems with the SUN Forte compiler.
-
-2004-03-14  Murray Cumming  <murrayc@murrayc.com>
-
-       * scripts/cxx.m4: Added CAN_DISAMBIGUATE_CONST_TEMPLATE_SPECIALIZATIONS
-       m4 macro to use in configure.in, to check for the SUN Forte problem -
-       see the comments in cxx.m4.
-       * scripts/sun.m4: Moved some brackets around to make the define
-       actually work.
-
-2004-03-13  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/glibmm/containerhandle_shared.h: TypeTraits to_cpp_type() 
-       specializations: Use wrap_auto() directly instead of a specific
-       wrap() overload that would be dependent. Needed for g++ 3.4.
-       * glib/glibmm/containers.h: Same again.
-
-2004-03-13  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/m4/class_shared.m4: Remove the parent get_type() call from
-       the Class::init() function, because it is optimised away, and g++ 3.4
-       actually complains that it does nothing.
-       * glib/glibmm/object.[h|cc]: Add a public ConstructParams copy 
-       constructor, needed by g++ 3.4. See comments in the code.
-       * tests/glibmm_value/glibmm_value.cc: Instantiate instances of 
-       value types, to fix the g++ 3.4 build. I don't know what the code
-       was meant to do before anyway.
-
-2004-03-11  Murray Cumming  <murrayc@murrayc.com>
-
-       * scripts/: Added sun.m4, copied from libsigc++-1.2/scripts and 
-       modified, so we can detect the SUN Forte compiler.
-       * configure.in: Used the m4 macro.
-       * glibmm/glibmm-config.h: Undef the GLIBMM_COMPILER_SUN_FORTE macro
-       so that it will be defined if configure sets it.
-
-2004-03-09  Murray Cumming  <murrayc@murrayc.com>
-       * Some, but not all, SUN Forte build fixes: 
-       * tools/m4/convert_gdk.m4, convert_glib.m4: Use existing
-       sun-specific conversion when converting from any 
-       RefPtr<const Something> to *Something.
-
-2004-04-08  Hagen Moebius  <hagen.moebius@starschiffchen.de>
-
-        * tools/pm/DocsParser.pm: Another change to give better warnings and
-        errors at gmmproc-runtime. Further improvment of parsing parameter names
-        to strip traling underscres. This not only for reference text, but for
-        the parameter list also.
-
-2004-04-07  Hagen Moebius  <hagen.moebius@starschiffchen.de>
-
-       * tools/pm/DocsParser.pm: Allow overrides to only override
-       part of the docs. Add a <mapping> tag to associate non-prefixed
-       functions with classes. Improve parsing of parameter names so they
-       can now have numbers in the names.
-
-2.3.6:
-
-2004-03-03  Murray Cumming  <murrayc@murrayc.com>
-
-       * Added glib/glibmm/i18n.h and i18n-lib.h which defines _() and friends
-       for internationalization. See the comments in the header - you must
-       include things in the right order.
-       * glib/src/spawn.[hg|ccg]: Added spawn_close_id() as wrapper for
-       g_spawn_close_id().
-       * glib/glibmm/main.[h|cc]: Added MainLoop::depth() as wrapper for
-       g_main_depth().
-
- 2004-03-02  Murray Cumming  <murrayc@murrayc.com>
-
-       * tools/pm/Function.pm: parse_param(): Only parse const as an 
-       individual part of the type name if it is followed by a space, so 
-       that we can have const const_iterator& types.
-
-2004-02-27  Martin Schulze  <teebaum@cvs.gnome.org>
-
-  * CHANGES: Fix typo reported by Chris Vine.
-
-2004-02-13  Martin Schulze  <teebaum@cvs.gnome.org>
-
-       * documentation fixes and corrections in the comments reflecting
-       the shift to libsigc++ 2.
-       * make all source files in example thread use libsigc++ 2 instead
-       of libsigc++ 1.2.
-
-2.3.5:
-
-2004-02-10  Murray Cumming  <murrayc@usa.net>
-
-       * glibmm now uses libsigc++ 2 instead of libsigc++ 1.2. See bug
-       #125061 for more details. We must update CHANGES later.
-
-2.3.4:
-
-2004-02-02  Murray Cumming  <murrayc@usa.net>
-
-       * glib/glibmm/containerhandle_shared.h: Traits<const T*>: Added
-       const_cast, needed by TreeView::get_columns() const: bug #126721.
-
-2004-01-29  Murray Cumming  <murrayc@usa.net>
-
-       * tools/pm/Parser.pm, Output.pm, tools/m4/signal.m4: Add an optional
-       custom_c_callback parameter to _WRAP_SIGNAL to allow special code
-       for the SelectionData& output parameter in Gtk::Widget signals.
-       Hopefully we won't need too many more of these hacks - the m4 is 
-       becoming very hard to read, with all these nested ifelse() statements.
-
-2004-01-27  Cedric Gustin  <cedric.gustin@swing.be>
-
-       * build_shared/Makefile_build.am_fragment: Added win32-specific
-       --export-all-symbols to linker flags. This is backported from 
-       gtkmm-2.2.
-       * README.win32: Updated text for glibmm-2.4. 
-       * tools/generate_wrap_init.pl.in: Replaced GTKMM_WIN32 by the 
-       standard G_OS_WIN32.
-
-2.3.3:
-
-2004-01-22  Murray Cumming  <murrayc@usa.net>
-
-       * glib/date.[hg|ccg]: Added clamp_min() and clamp_max() to wrap the
-       case where g_date_clamp() takes null values.
-
-2004-01-18  Alberto Paro  <alberto@paro.homeunxi.org>
-
-       * glib/src/date.hg: documentated Glib::Date functions.
-       * glib/glibmm/main.h: documentated Glib::MainLoop,Glib::MainContext
-       and Glib::Source  functions.
-
-2004-01-18  Murray Cumming  <murrayc@usa.net>
-
-       * tools/pm/Output.pm, tools/m4/property.m4: When the property is not
-       read-only, add a second read-only propertyproxy for the same property,
-       with a const accessor. This allows setting of properties in const
-       methods. Make all read-only propertyproxies have const accessors.
-       * glib/glibmm/propertyproxy.h: Added class documentation.
-       * tools/pm/Output.pm: Declare _vfuncs as virtual methods - fixing
-       an error in my last change.
-
-2004-01-16  Murray Cumming  <murrayc@usa.net>
-
-       * tools/pm/Output.pm, tools/m4/vfunc.m4:
-       - Generate const vfuncs when requested with _WRAP_VFUNC().
-       - Put the *_vfunc() decleraration directly into the header, where 
-       the _WRAP_VFUNC() macro appears, instead of in a separate section.
-       This allows us to add doxygen documentation before the _WRAP_VFUNC()
-       in the .hg file. However, we must check that all of our _WRAP_VFUNC()
-       macros are in protected: sections.
-
-2004-01-12  Murray Cumming  <murrayc@usa.net>
-
-       * glib/glibmm/object.cc: Object::Object() default constructor. 
-       Remove the warning because we really need this to implement a custom
-       TreeModel. Derive a new GType, as in the 
-       Object::Object(ConstructParams) constructor. Like that constructor, 
-       the default one also assumes that you have called a suitable 
-       ObjectBase constructor, such as ObejctBase(typeid(MyCustomClass)).
-
-2004-01-09  Murray Cumming  <murrayc@usa.net>
-
-       * tools/pm/Output.pm: output_wrap_property(): Allow construct-only
-       properties to be wrapped, as read-only properties.
-
-2004-01-03  Murray Cumming  <murrayc@usa.net>
-
-       * tools/gmmproc.in, pm/WrapParser.pm, DocsParser.pm: Removed the 
-       mergecdocs option - because we always want to merge C docs, to avoid
-       accidental upload of half-complete docs.
-
-2003-12-29  Murray Cumming  <murrayc@usa.net>
-
-       * Makefile.am: Add scripts and tests directories to SUBDIRS instead of 
-       DIST_SUBDIRS, so that their Makefile.am files are actually used.
-       * scripts/macros.m4: renamed GTKMM_CHECK_PERL() to GLIBMM_CHECK_PERL()
-       and install it as glibmm_check_perl.m4, so that other *mm projects
-       can use it. They need the PERL_PATH for Doxygen.
-
-2003-12-22  Murray Cumming  <murrayc@usa.net>
-
-       * docs/reference: generate beautify_docs.pl from beautify_docs.pl.in,
-       so it can have the perl path in it. Install it, so other *mm 
-       modules can use it.
-
-2003-12-13  Murray Cumming  <murrayc@usa.net>
-
-       * tools/m4/*.m4: Added fuller Doxygen documentation to all gobj() and 
-       wrap() methods. Doxygen should not emit warnings about these now.
-
-2.3.2:
-
-2003-11-29  Murray Cumming  <murrayc@usa.net>
-
-       * tools/m4/signal.m4: Add spaces inside signal_proxy template types,
-       to avoid << and >> when using templated types.
-
-2003-11-27  Murray Cumming  <murrayc@usa.net>
-
-       * tools/pm/WrapParser.pm, Output.pm: Added WRAP_METHOD_DOCS_ONLY()
-       macro.
-       * docs/internal/using_gmmproc.txt: Explained the new macro.
-       
-2003-11-02  Murray Cumming  <murrayc@usa.net>
-
-       * glib/glibmm/: Added init.[h|cc] with Glib::init() so that the 
-       gnomemm init() methods do not need to initialize gtkmm.
-       * tools/m4/class_gobject.m4, class_gtkobject.m4: Added 
-       _GMMPROC_PROTECTED_GCLASS macro, needed by libgnomecanvasmm. This
-       was not previously properly merged from gtkmm2.
-       * tools/m4/property.m4: Re-added PropertyProxy reference documentation
-       that did not survive a previous merge from gtkmm2.
-
-2003-11-01  Murray Cumming  <murrayc@usa.net>
-
-       * glib/glibmm/propertyproxy.h, propertyproxy_base.[h|cc]: Now uses
-       ObjectBase instead of Object, because glib can now have properties
-       on interfaces. This is needed, for instance, by the GtkFileChooser
-       interface wrapper in gtkmm.
-       * glib/glibmm/object.h: Moved get/set_property() methods into 
-       ObjectBase, for the same reason.
-       * tools/pm/WrapParser.pm, Output.pm: Added optional no_default_handler
-       parameter to gmmproc _WRAP_SIGNAL() macro, for signals whose 
-       default signal handler is not in the klass struct and therefore
-       can not be overridden.
-
-2003-10-31  Murray Cumming  <murrayc@usa.net>
-
-       * docs/Makefile_web.am_fragment: Corrected install location,
-       so that links from the gtkmm docs work when they are installed.
-
-2003-10-30  Murray Cumming  <murrayc@usa.net>
-
-       * docs: Added images directory, copied from gtkmm, for the reference
-       html docs.
-       * configure.in: Mention docs/images/Makefile.
-       * docs/reference/Doxyfile.in: Genereate glibmm_doxygen_tags instead
-       of gtkmm_doxygen_tags.
-       * docs/reference/Makefile.am: dist glibmm_doxygen_tags.
-       * docs/reference: gtkmm*.html_fragment are now glibmm*.html_fragment.
-
-2.3.1:
-       
-2003-10-23  Murray Cumming  <murrayc@usa.net>
-
-       * tools/pm/Output.pm: output_wrap_create(): Used
-       args_types_and_names_with_default_values() intead of 
-       args_types_and_names(), so that create() functions .in .h files have 
-       the default values as specified in _WRAP_CREATE() in .hg files.
-       * tools/pm/WrapParser.pm: on_ignore_signals(): Strip the quotes, to
-  make _IGNORE_SIGNAL() really work in .hg files.
-
-2003-10-02  J. Abelardo Gutierrez <jabelardo@cantv.net>
-
-       * examples/threads/dispatcher.cc
-         examples/threads/dispatcher2.cc: fixed to cast out all gktmm code,
-       now they only need glimm.
-       * configure.in: Added examples/threads because they don't use gtkmm
-       anymore.  Now all examples/threads compiles and run just fine.
-
-2.3.0:
-
-2003-09-30  Murray Cumming  <murrayc@usa.net>
-
-       * configure.in: Removed examples/threads because we don't build or
-       distribute it, because it doesn't build, because it uses gtkmm.
-
-2003-09-30  Murray Cumming  <murrayc@usa.net>
-
-       * glib/glibmm/object_base.h: ObjectBase inherits virtually from
-       Sigc::Object. See bug #116280.
-
-2003-09-27  Cedric Gustin  <cedric.gustin@swing.be>
-       * glib/glibmm/threadpool.cc: Removed
-       _GTKMMPROC_SIGNAL_H_AND_CC(#ifndef G_OS_WIN32) restrictions. These
-       functions are now implemented in the latest (2.2.4) GTK+ on win32.
-       * README.win32 : Updated list of unsupported functions. 
-2003-08-20  Frank Naumann  <fnaumann@freemint.de>
-  
-       * glib/src/thread.hg,
-         glib/src/unicode.hg: Warning bugfix for VisualStudio .NET 2003;
-       made wrapper functions returning bool from glib functions
-       returning int (C lacks builtin type bool) explicit by adding 
-       an != 0 check. Otherwise VisualStudio .NET warn about implicit
-       int -> bool cast. 
-
-2003-07-26  Murray Cumming  <murrayc@usa.net>
-       * glib/glibmm/dispatcher.cc: Added #include <algorithm>, needed
-       by MSVC++, as suggested by Frank Naumann in bug #118215.
-
-2003-05-31  Murray Cumming  <murrayc@usa.net>
-
-       * tools/gmmproc.in: Corrected location of installed .pm files. They
-       are now in a glibmm-2.3 folder instead of a glibmm-2.4 folder.
-
-2003-05-14  Murray Cumming  <murrayc@usa.net>
-
-       * Applied some of MSVC++ .NET 2003 changes from jburris. For instance,
-       use of Gtk:: prefix with manage, because MSVC++ can not guess it. Also
-       corrected the out-of-sync protected/private modifiers in the private
-       gtype classes and their prototypes.
-
-2003-05-09  Cedric Gustin  <cedric.gustin@swing.be>
-
-        * glib/glibmm/dispatcher.cc: small typo in G_OS_WIN32 condition.
-       
-2003-05-07  Murray Cumming  <murrayc@usa.net>
-
-       * scripts/macros.m4: Made the --enable-debug-refcounting configure
-       option set GLIBMM_* instead of GTKMM_*.
-
-2003-05-02  Murray Cumming  <murrayc@usa.net>
-       * tools/m4/*.m4: Added doxygen comments to gobj() methods.
-       * examples/markup/parser.cc: Commented-out a std::right that gcc 2.93
-       does not like.
-
-2003-04-23  Andrew Makeev
-       * glib/glibmm/dispatcher.cc: Added some #ifdefed code to implement
-       Glib::Dispatcher on WIN32. See comments with the code.
-
-2003-04-22  Murray Cumming  <murrayc@usa.net>
-
-       * Install headers in a glibmm-2.3 directory instead of glibmm-2.4,
-       to be consistent with gtkmm 2.4.
-
-2003-04-21  Murray Cumming  <murrayc@usa.net>
-
-       * arrayhandle.h, listhandle, slisthandle.h:
-       Glib::ListHandle, Glib::ListHandle, Glib::SListHandle: Added 
-       reference docs explaining that people can use STL containers.
-       
-2003-04-21  Murray Cumming  <murrayc@usa.net>
-
-       * Removed examples/idle: It's now updated and in gtkmm/examples/book.
-
-2003-04-19  Murray Cumming  <murrayc@usa.net>
-
-       * tools/pm/GtkDefs.pm: get_unwrapped(): Changed some & to && to 
-       avoid warnings and because that is probably what they should be.
-
-       * tools/m4/extra_defs_gen/generate_defs_glib.cc: Removed parameter
-       names from main(), because they are not used. Avoid warning.
-
-2003-03-26  Ross Burton  <ross@burtonini.com>
-
-       * glib/src/module.hg: Added API documentation.
-
-2003-03-18  Enrico Scholz  <enrico.scholz@informatik.tu-chemnitz.de>
-       
-       * scripts/*.m4, configure.in:
-          Added description to several AC_DEFINE statements to make 'autoheader'
-          happy
-        * Makefile.am:
-          Added ACLOCAL_AMFLAGS to make 'autoreconf' work
-       
-2003-03-18  Cedric Gustin  <cgustin@ibelgique.com>
-       * Makefile.am : removed examples from DIST_SUBDIRS
-
-2003-03-18  Enrico Scholz  <enrico.scholz@informatik.tu-chemnitz.de>
-
-       * examples/Makefile.am_fragment:  Added DESTDIR-support.
-       
-2003-03-14  Cedric Gustin  <cgustin@ibelgique.com>
-
-       * Install examples. The are built by default too. Patch adapted for
-       glibmm 2.4 by Murray Cumming.
-
-2003-03-04  Cedric Gustin  <cgustin@ibelgique.com>
-
-       * configure.in : Removed libstdc++ in LDFLAGS on win32. Latest
-       libtool is taking care of it.
-       * build_shared/Makefile_build.am_fragment,
-       tools/extra_defs_gen/Makefile.am : Added
-       --export-all-symbols linker flag on win32 (required by latest
-       libtool to build DLLs).
-       * build_shared/Makefile_gensrc.am_fragment : Modifiy rule that
-       builds wrap_init.cc. wrap_init.cc now contains reference to all
-       objects, event on win32. #ifdefs are included when needed.
-       * README.win32 : updated for version 2.2. Added list of missing
-       methods and signals on win32
-       * tools/m4/base.m4 : Added _GTKMMPROC_SIGNAL_H_AND_CC macro.
-       
-
-2003-03-14  Martin Schulze  <MHL.Schulze@t-online.de>
-
-       * docs/internal/using_gtkmmproc.txt: Correct name of
-       [...]signals.defs generation utiliy.
-
-2003-01-30  Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
-
-       * glib/src/thread.hg Cond: Add documentation
-
-2003-01-27  Murray Cumming  <murrayc@usa.net>
-
-       * glib/glibmm/refptr.h: Removed RefPtr<>::is_null() to encourage use
-       of more pointer-like operator bool() instead. Wanted to remove clear()
-       too, but there is no =0 equivalent yet.
-       * tools/gmmproc.in: Change harcoded gtkmm-2.0/m4 path to glibmm-2.4/m4.
-
-2003-01-22  Murray Cumming  <murrayc@usa.net>
-
-       * GTKMM_ m4 tests and #defines are now prefixed with GLIBMM_
-
-2003-01-21  Murray Cumming  <murrayc@usa.net>
-
-       * tests/Makefile.am_fragment, examples/Makefile.am_fragment: 
-       Corrected LIBS and CFLAGS. Not all of these build because they
-       use gtkmm stuff too. They need to be reduced to glibmm-only code.
-
-2003-01-21  Murray Cumming <murrayc@usa.net>
-
-       * glib/Makefile.am, glib/glibmm/Makefile.am: Install headers in
-       glibmm-2.4 directory rather than gtkmm-2.4
-
-2003-01-21  Murray Cumming  <murrayc@usa.net>
-
-       * configure.in: Use GLIBMM_* instead of GTKMM_* to avoid config.h 
-       clashes with gtkmm 2.4.
-       * glib/glibmm-2.4.pc.in: Correct cflags - report 2.4 instead of 2.0.
-
-2003-01-21  Murray Cumming  <murrayc@usa.net>
-
-       * tools/extra_defs_gen/Makefile.am: Changed extra_defs library name
-       from 2.4 to 2.3, so it can be unstable.
-
-2003-01-09  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/utility.h (GLIBMM_INITIALIZE_STRUCT): Replace
-       __builtin_bzero() with __builtin_memset() because the former is
-       deprecated.  Also, it looks like GCC is able to optimize the 0 case
-       so we don't lose anything here.
-
-2003-01-09  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/miscutils.cc (Glib::build_path): Reserve 256 bytes
-       in advance to improve performance.
-
-2003-01-09  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/glibmm/miscutils.{cc,h} (Glib::build_path): Fix to make it
-       behave exactly like g_build_path().  (#102885, Jarek Dukat)
-
-       (Glib::build_filename(const std::string&, const std::string&)):
-       Implement in terms of Glib::build_path().
-       
-2003-01-21  Murray Cumming  <murrayc@usa.net>
-
-       * Renamed gtkmmproc to gmmproc.
-
-2003-01-08  Murray Cumming  <murrayc@usa.net>
-
-       * glib/glibmm/refptr.h: Removed the operator=(CppObject*), as
-       suggested in the TODO comment.
-
-2003-01-08  Murray Cumming  <murrayc@usa.net>
-
-       * make distcheck works.
-
-2003-01-08  Murray Cumming  <murrayc@usa.net>
-
-       * It now builds, though I haven' tried installing it. The
-       library names and header directories should now all have 2.4
-       instead of 2.0 in their name.
-
-glibmm was previously part of gtkmm2.
-
diff --git a/libs/glibmm2/INSTALL b/libs/glibmm2/INSTALL
deleted file mode 100644 (file)
index 23e5f25..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
-
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
-These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
-   It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
-   The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about.  Run `./configure --help' for
-details on some of the pertinent environment variables.
-
-   You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment.  Here
-is an example:
-
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
-
-   *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
-You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
-
-Installation Names
-==================
-
-By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc.  You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
-`--build=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
-     CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
-     OS KERNEL-OS
-
-   See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
-   If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
-   If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
-Variables not defined in a site shell script can be set in the
-environment passed to `configure'.  However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost.  In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'.  For example:
-
-     ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
-
-     /bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
-
-`configure' Invocation
-======================
-
-`configure' recognizes the following options to control how it operates.
-
-`--help'
-`-h'
-     Print a summary of the options to `configure', and exit.
-
-`--version'
-`-V'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`--cache-file=FILE'
-     Enable the cache: use and save the results of the tests in FILE,
-     traditionally `config.cache'.  FILE defaults to `/dev/null' to
-     disable caching.
-
-`--config-cache'
-`-C'
-     Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`configure' also accepts some other, not widely useful, options.  Run
-`configure --help' for more details.
-
diff --git a/libs/glibmm2/Makefile.am b/libs/glibmm2/Makefile.am
deleted file mode 100644 (file)
index 97a0aee..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-ACLOCAL_AMFLAGS        = -I scripts
-
-SUBDIRS                = tools glib examples docs scripts tests MSVC_Net2003
-DIST_SUBDIRS   = $(SUBDIRS)
-
-EXTRA_DIST     = build_shared/Makefile_build.am_fragment \
-                 build_shared/Makefile_build_gensrc.am_fragment \
-                 build_shared/Makefile_gensrc.am_fragment \
-                 build_shared/Makefile_gensrc_platform.am_fragment \
-                 build_shared/Makefile_build_extra.am_fragment \
-                 CHANGES README.win32
-
-
-all-local:
-       @echo "*** Everything completed ***"
-
-dist-hook:
-       @echo; echo; \
-       echo "**********************************************************"; \
-       echo "* IMPORTANT NOTICE:                                      *"; \
-       echo "*                                                        *"; \
-       echo "* Be sure you have done a complete build before running  *"; \
-       echo "* 'make dist' or 'make distcheck', because otherwise     *"; \
-       echo "* the tarball will _not_ contain the dependency rules    *"; \
-       echo "* generated by the compiler.                             *"; \
-       echo "**********************************************************"; \
-       echo; echo
-
-
-include $(top_srcdir)/docs/Makefile_web.am_fragment
-
-doc_tarball_files = \
-       docs/images/*.gif \
-       docs/internal/*.txt docs/internal/*.dia docs/reference/html
-
-# This doesn't work very well in a $(srcdir) != $(builddir) setup,
-# but this target is for maintainer use only anyway.
-
-glibmm-docs.tar.gz:
-       find examples -name '*.cc' -o -name '*.h' -o -name '*.xpm' -o -name '*.xml' | \
-       tar cf - --files-from - $(doc_tarball_files) | gzip -c --best >$@
-
-# Upload documentation and examples:
-
-post-html-recursive:
-       list='docs examples'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) post-html); \
-       done
-
-post-html-local: glibmm-docs.tar.gz
-       rsync $(rsync_args) glibmm-docs.tar.gz $$USER@$(web_host):$(web_path_gtkmm)
-
-post-html: post-html-recursive post-html-local
-
-doc-clean-recursive:
-       (cd docs && $(MAKE) $(AM_MAKEFLAGS) doc-clean)
-
-doc-clean: doc-clean-recursive
-
-doc-rebuild:
-       (cd docs && $(MAKE) $(AM_MAKEFLAGS) doc-rebuild)
-
-.PHONY: post-html post-html-local post-html-recursive doc-clean doc-clean-recursive doc-rebuild
-
diff --git a/libs/glibmm2/NEWS b/libs/glibmm2/NEWS
deleted file mode 100644 (file)
index ec811b3..0000000
+++ /dev/null
@@ -1,399 +0,0 @@
-2.13.3:
-
-* gmmproc improvements:
-  - gmmproc: Allow () in property and signal docuemntation.
-  - gmmproc: Do not try to remove a common prefix from the 
-  C enam values, if there is no common prefix.
-  - enum.pl: Allow whitespace in front of an enum typedef. 
-  (Daniel Elstner)
-  - enum.pl: Fix an infinite loop.
-
-* ObjectBase: Added connect_property_changed(), 
-  as an alternative to use when the property proxies are not 
-  available because GLIBMM_PROPERTIES_ENABLED is not defined.
-  (Murray Cumming)
-* Value: When registering float parameters, use 
-  G_MAXFLOAT as the minimum, instead of G_MINFLOAT.
-  Likewise for doubles.
-  (Oliver Nittka)
-
-2.13.2:
-
-*Build:
- - Fix for api-default-signal-handlers option.
-   Bug #357830 (Matt Hoosier)
- - win32: Remove unused source file from Visual Studio project.
-   (Cedric Gustin)
-
-2.13.1:
-
-* KeyFile class added, wrapping GKeyFile, 
-  for parsing of .ini-style files.
-  (Rob Page)
-* Added get_user_data_dir(), get_user_config_dir(), and 
-  get_user_cache_dir().
-  (Jonathon Jongsma)
-* Support optional ifdef parameters in the .hg macros, 
-  to allow, for instance the --enable-atk=no option, 
-  to disable the build and use of the atkmm API, 
-  for use in embedded environments.
-  (Johannes Schimd, Murray Cuming, Openismus)
-* Documentation: 
-  - Small ustring reference documentation improvement.
-  (Ralf Stephan)
-
-2.12.0:
-
-Changes sinze 2.10:
-* Added the --enable-api-default-signal-handlers option, for use in 
-  embedded environments that have reduced resources. See configure --help 
-  for the other subsets.
-* Value: Added init(const GValue*), so we can copy GValue instances 
-  of any type at runtime. Needed by the new branch of libgdamm.
-
-2.11.3:
-
-* Build: Added the --enable-api-default-signal-handlers option, for use in 
-  embedded environments that have reduced resources. See configure --help 
-  for the other subsets.
-
-2.11.2:
-
-* Date: Fix implementation of Glib::Date::set_time_current() so
-  that it doesn't set the date to Dec 31, 1969.
-  (Jonathon Jongsma)
-* Value: Added init(const GValue*), so we can copy GValue instances 
-  of any type at runtime. Needed by the new branch of libgdamm.
-  (Murray Cumming)
-* Added a #warning to warn about including X11/Xlib.h before a glibmm header, 
-  which would break things. Bug #316726 from Mert Tugcu and Javeed Shaikh.
-  (Murray Cumming)
-* Build: 
-  - Quote some m4 macros to avoid warnings. Bugs (with patches) #347076 
-  and #347077
-  (Kevin McBride).
-  - Fix exporting of get/set_property() on mingw32-gcc.
-  (Cedric Gustin)
-
-
-
-
-2.10.1
-
-* Windows Build:
- - Define GLIBMM_DLL when building with mingw32 or cygwin, 
-   because it is needed by gtkmm. Bug #309030
- (Cedric Gustin)
-* OptionGroup: Allow default values, by not initializing them all.
-  (Armin Burgmeier)
-* Slight code size reduction by marking private functions as static.
-  (Murray Cumming)
-
-2.10.0:
-
-* Windows Build:
- - ustring.h: Tag npos with GLIBMM_API, in order to
-   dllexport it on win32. Bug #332438.
- - Updated MSVC++ build files and README, for MS Visual Studio 2005.
- (Cedric Gustin)
-* gmmproc code generator: 
- - WRAP_METHOD() Take an extra optional argument: deprecated deprecationtext - 
-  so that we can insert the appropriate doxygen tag in the documentation, where 
-  the C documentation does not do it for us.
-
-2.9.1:
-
-* Date:
-  - Added set_time(time_t), set_time(GTimeVal), and deprecated  
-    set_time(GTime)
-  - Added set_time_current().
-  (Murray Cumming)
-* Build: Added --enable-deprecated-api  option. When set to disabled, 
-  it does not build deprecated API. This reduces the size of the 
-  library, and might be useful for embedded devices.
-  (Murray Cumming)
-
-2.8.2:
-
-* Solaris build fix: Correct the detection 
-  of make. (Mark Rouchal)
-
-2.8.1:
-
-* Build: Check for glib 2.8.
-
-2.8.0:
-
-API additions since glibmm 2.6:
-
-* GModule: Add BIND_LOCAL enum value.
-  (Bug #172748 from Phillip Neiswanger).
-* MainContext Added signal_child_watch()
-  and examples/child_watch.
-  (Yair Hershkovitz)
-* OptionEntry: Added FLAG_NO_ARG, FLAG_FILENAME, 
-  FLAG_OPTIONAL_ARG, and FLAG_NOALIAS enum values.
-  (Murray Cumming)
-
-2.7.3:
-
-* Updated reference documentation from glib documentation.
-
-2.7.2:
-
-* OptionEntry: Added FLAG_NO_ARG, FLAG_FILENAME, 
-  FLAG_OPTIONAL_ARG, and FLAG_NOALIAS enum values.
-* build_filename() and build_path(): Now use the implementation 
-  from glib.
-
-2.7.1:
-
-* GModule: Add BIND_LOCAL enum value.
-  (Bug #172748 from Phillip Neiswanger).
-* MainContext Added signal_child_watch()
-  and examples/child_watch.
-  (Yair Hershkovitz)
-* Fixes from 2.6.2.
-
-2.6.1:
-
-* Interface::add_interface(): Disabled the check for a second call, 
-  introduced in 2.6.0, for now, because it stops some valid uses.
-  (Bryan Forbes)
-
-2.6.0:
-
-New stable version. Changes compare to glibmm 2.4.x:
-
-* Added Option, OptionContext, OptionGroup for parsing of command-line arguments.
-* Added filename_display_basename() and filename_display_name().
-* Added setenv() and unsetenv().
-* add_interface() methods will no longer give warnings if you 
-  call them twice.
-* gmmproc:
-  - Now reuses C properties documentation.
-
-2.5.6:
-
-* add_interface() methods will no longer give warnings if you 
-call them twice.
-* gmmproc: Output properties documentation taken from the .defs.
-* examples now build on AIX.
-  (Murray Cumming)
-* MSVC++ .Net 2003 build fix. (Cedric Gustin)
-
-2.5.5:
-
-* Now builds with the following compilers, in addition to 
-the existing GNU g++, and Intel compilers:
-- SUN Forte CC 5.5
-- IBM AIX xlC v7
-- Tru64 C++ V6.5-042
-- IRIX MIPSpro 7.4.2m
-  (Older versions of all these compilers might also work.)
-  (Murray Cumming, www.thewrittenword.com)
-* Now builds with MSVC++ .Net 2003 (gtkmm 2.4 already did).
-  (Cedric Gustin)
-  
-2.5.4:
-
-Options:
-* Added Option(GOptionGroup* cast_item) constructor,
-  needed by Gtk::Main.
-* Added reference documentation.
-(Murray Cumming)
-
-2.5.3:
-
-* Options:
-  - Allow parsing of boolean arguments (arguments with no value).
-  - Really use the short names.  
-  (Daniel Holbach, Murray Cumming)
-* Added filename_display_basename() and filename_display_name().
-  (Murray Cumming)
-* Added setenv() and unsetenv(). (Murray Cumming)
-* Use static keyword to prevent exporting private API.
-  (Benoît Dejean)
-* input example: Improvements and simplification. (Chris Vine) 
-
-2.5.2:
-
-* OptionEntry: Remove useless enum. (Murray Cumming)
-* Documentation:
-  - examples: Added iochannel_stream example. (Chris Vine)
-  - reference: Generate more reference API from the C documentation, and
-    try to use the libstdc++ doxygen tags file to link to their 
-    documentation. (Murray Cumming)
-
-2.5.1:
-
-* OptionContext, OptionGroup, OptionEntry: Made the add_entry() methods 
-  type-safe and fixed several problems memory-management problems. This 
-  API is now worth looking at.
-
-2.5.0:
-
-* Added OptionContext, OptionGroup, and OptionEntry classes, for
-  parsing of command-line options. See examples/options/
-
-2.4.4:
-
-* Signals: Avoid crashes when disconnecting a signal when handling that signal.
-  (Murray Cumming, Martin Schulze)
-* 
-2.4.3:
-
-* Minor improvements to reference documentation. (Daniel Elstner)
-* Minor Glib::Dispatcher improvements (Daniel Elstner)
-
-2.4.2:
-
-* Glib::Dispatcher: win32 implementation rewritten, and hopefully, improved.
-  (Daniel Elstner)
-* Glib::ustring:
-  - Optimization and code-cleanup. (Daniel Elstner)
-  - Added reference documentation for constuctors. (Murray Cumming)
-* Fixed some compiler warnings.
-  (Daniel Elstner)
-* gmmproc: Some improvements for libgdamm. (Murray Cumming)
-
-
-2.4.1:
-
-* Build fixes for gcc 3.4.0.
-* Doxygen not required when building from tarballs.
-  (Murray Cumming)
-
-
-2.4.0:
-
-Changes since 2.2.0:
-
-* Now separate from gtkmm, so you can use things like Glib::ustring without depending on gtkmm. This glibmm 2.4 API installs in parallel with gtkmm 2.0/2.2, so you can install applications which use either.
-* When using pkg-config, you should check for "glibmm-2.4".
-* Glib::ObjectBase inherits virtually from SigC::Object, allowing multiple inheritance with other classes that inherit from SigC::Object.
-* RefPtr:
-  - is_null() was removed, to encourage you to use "== 0" instead.
-  - operator=(CppObject*) was removed.
-* The gtkmmproc code-generator is now gmmproc, and has several improvements to support gtkmm 2.4.
-* Now uses improved libsigc++ 2.0 API.
-* Added i18n.h and i18n-lib.h, which include the relevant
-  glib headers, which declare internationalization 
-  macros such as _().
-* New methods:
-  Glib::spawn_close_id(), Glib::MainLoop::depth(),
-  Glib::Date::clamp_min(),  Glib::Date::clamp_max(). 
-* Improved documentation.
-
-2.3.8:
-
-* Fix crash when using Glib::Main signals.
-  (Martin Schulze)
-* Corrected the configure-time SUN compiler check.
-  (Murray Cumming, Alexander Nedotsukov)
-
-2.3.7:
-
-* Added configure macros to detect SUN compiler oddities.
-* Various SUN Forte C+ and g++ 3.4 (cvs) build fixes.
-  (Murray Cumming)
-* gmmproc: Improved parsing of C docs.
-  (Hagen Moebius)
-
-2.3.6:
-
-* Added i18n.h and i18n-lib.h, which include the relevant
-  glib headers, which declare internationalization 
-  macros such as _(). (Murray Cumming)
-* Added Glib::spawn_close_id(). (Murray Cumming)
-* Added Glib::MainLoop::depth(). (Murray Cumming)
-* Documentation: corrections to CHANGES (Martin Schulze).
-* gmmproc: Can now handle "const const_iterator& iter"
-  parameter names without getting confused by 2 consts.
-  (Murray Cumming)
-
-2.3.5:
-
-* glibmm now uses libsigc++ 2 rather than libsigc++ 1.2.
-2.3.4:
-
-* ListHandle/SListHandle (intermediate container types):
-  - Added a const_cast<> to allow lists of const elements.
-* gmmproc: _WRAP_SIGNAL(): Added optional custom_c_callback 
-  parameter.
-  (Murray Cumming)
-* WIN32: Build fixes, mostly merged from the 2.2 branch.
-  (Cedric Gustin) 
-2.3.3:
-
-* gmmproc (code generator)
-  - properties: Make read-only properties have const accessors,
-    and add a second read-only const accessor for normal
-    properties. Wrap construct-only properties as read-only,
-    instead of ignoring them.
-  - vfuncs: Really generate const vfuncs when requested. Put
-    the method declaration directly into the .h file, so that
-    the doxygen documentation can be next to it.
-  - documentation:
-    - Remove mergecdocs configure option - always
-    merge the C docs, to avoid any risk of uploading or
-    releasing empty documentation. Just delete the *_docs.xml
-    files to make building from cvs faster.
-    - Install a GLIBMM_CHECK_PERL() macro, for use by gtkmm
-    and other *mm projects, to get the perl path needed by
-    doxygen.
-    - Install beautify_docs.pl so it can be reused in gtkmm
-    and other *mm projects, instead of having lots of copies.
-* Glib::ObjectBase: The default constructor, never before used,
-  now generates a custom GType, for use when creating new
-  implementations of Glib::Interfaces - for instance, see the
-  new custom tree model example in gtkmm.
-* Glib::Date: Added clamp_min() and clamp_max().
-  (Murray Cumming)
-
-* Documentation:
-  - Added reference documentation for MainLoop, MainContext, 
-    Source, and Date. (Alberto Paro)
-  
-2.3.2:
-
-* gmmproc (code generator):
-  - signal proxies have extra space to avoid << with templates.
-  - Added WRAP_METHOD_DOCS_ONLY() for reusing documentation even
-    when the method is hand-coded.
-  - _WRAP_SIGNAL(): Added optional no_default_handler parameter,
-    because some of the new GTK+ signals have no public default 
-    handler vfunc.
-* Added Glib::init(), for use by non-GUI apps which need to 
-  use Glib::wrap().
-* PropertyProxy: Can now be used with Interfaces.
-* Documentation improvements, so that gtkmm docs link to glibmm
-  docs.
-  (Murray Cumming)
-
-2.3.1:
-
-* gmmproc changes needed by gtkmm 2.3.0
-  (Murray Cumming)
-* examples updated and buildable and working,
-  without gtkmm code.
-  (J. Abelardo Gutierrez)
-
-Changes in glibmm 2.3.0:
-
-* Now separate from gtkmm, so you can use things like Glib::ustring without depending on gtkmm.
-  This glibmm 2.4 API installs in parallel with gtkmm 2.0/2.2, so you can install this unstable library 
-  without the risk of breaking existing application.
-* This does not yet require glib 2.3 because there has been no tarball release of that yet. For now, you
-  can use glibmm 2.3.0 with glib 2.2.x.
-* When using pkg-config, you should check for "glibmm-2.4".
-* Glib::ObjectBase inherits virtually from SigC::Object, allowing multiple inheritance with other
-  classes that inherit from SigC::Object.
-* RefPtr:
-  - is_null() was removed, to encourage you to use "== 0" instead.
-  - operator=(CppObject*) was removed.
-* gtkmmproc is now gmmproc.
-* All the glibmm bugfixes in gtkmm 2.2.x.
diff --git a/libs/glibmm2/README b/libs/glibmm2/README
deleted file mode 100644 (file)
index 341c67e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-This is glibmm, a C++ API for parts of glib that are useful for C++.
-See http://www.gtkmm.org
-
-
diff --git a/libs/glibmm2/SConscript b/libs/glibmm2/SConscript
deleted file mode 100644 (file)
index 4c4f330..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- python -*-
-
-import os
-import os.path
-import glob
-
-
-glibmm2_files = glob.glob('glib/glibmm/*.cc')
-
-Import('env libraries install_prefix')
-
-glibmm2 = env.Copy()
-glibmm2.Merge([libraries['sigc2'], libraries['glib2'], libraries['glibmm2']])
-
-glibmm2.Append(CXXFLAGS=['-DHAVE_CONFIG_H', '-DGLIBMM_EXCEPTIONS_ENABLED', '-DGLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED', '-DGLIBMM_PROPERTIES_ENABLED'])
-#glibmm2.Append(CXXFLAGS='-DG_DISABLE_DEPRECATED')
-glibmm2.Append(CXXFLAGS='-DG_LOG_DOMAIN=\\\"glibmm\\\"')
-
-libglibmm2 = glibmm2.SharedLibrary('glibmm2', glibmm2_files)
-
-if os.access ('autogen.sh', os.F_OK) :
-    glibmm2_configure_script = glibmm2.Command ('configure', 'configure.ac', 'cd libs/glibmm2; ./autogen.sh; cd -', ENV=os.environ)
-    glibmm2_config_h = glibmm2.Command('glibmmconfig.h', [glibmm2_configure_script, 'glibmmconfig.h.in'],
-                                       'cd libs/glibmm2; ./configure || exit 1; cd -', ENV=os.environ)
-else :
-    glibmm2_config_h = glibmm2.Command('glibmmconfig.h', ['configure', 'glibmmconfig.h.in'],
-                                       'cd libs/glibmm2; ./configure || exit 1; cd -', ENV=os.environ)
-
-Default([glibmm2_config_h, libglibmm2])
-
-env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), libglibmm2))
-
-env.Alias('tarball', env.Distribute (env['DISTTREE'],
-                                     [ 'SConscript',
-                                       'glibmm.h',
-                                       'configure',
-                                       'Makefile.in',
-                                       'glibmmconfig.h',
-                                       'glibmmconfig.h.in',
-                                       'glibmm-2.4.pc.in',
-                                       'glibmm/Makefile.in',
-                                       'scripts'
-                                       ] +
-                                    glibmm2_files + 
-                                    glob.glob('glibmm/*.h') +
-                                    glob.glob('glibmm/private/*.h')
-                                    ))
-
diff --git a/libs/glibmm2/autogen.sh b/libs/glibmm2/autogen.sh
deleted file mode 100755 (executable)
index f2f287d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-
-# check all tools first
-
-if /usr/bin/which libtoolize >/dev/null 2>&1 ; then 
-    : 
-else 
-    echo "You do not have libtool installed, which is very sadly required to build part of Ardour" 
-    exit 1
-fi
-if /usr/bin/which automake >/dev/null 2>&1 ; then 
-    : 
-else 
-    echo "You do not have automake installed, which is very sadly required to build part of Ardour" 
-    exit 1
-fi
-if /usr/bin/which autoconf >/dev/null 2>&1 ; then 
-    : 
-else 
-    echo "You do not have autoconf installed, which is very sadly required to build part of Ardour" 
-    exit 1
-fi
-
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-echo "Adding libtools."
-libtoolize --automake --copy --force
-
-echo "Building macros."
-aclocal  -I "$srcdir/scripts" $ACLOCAL_FLAGS
-
-echo "Building makefiles."
-automake --add-missing --copy
-
-echo "Building configure."
-autoconf
-
-rm -f config.cache
diff --git a/libs/glibmm2/configure.ac b/libs/glibmm2/configure.ac
deleted file mode 100644 (file)
index b34fbdb..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-# Configure.in
-#
-#  This file tests for various compiler features needed to configure 
-#  the gtkmm package.  Original skeleton was provided by Stephan Kulow.
-#  All tests were written by Tero Pulkkinen, Mirko Streckenbach, and 
-#  Karl Nelson.
-#
-#  NOTE! IF YOU DO CHANGES HERE, CHECK IF YOU NEED TO MODIFY .m4 TOO!!!
-#
-#  Copyright 2001 Free Software Foundation
-#  Copyright 1999 gtkmm Development Team
-#  Copyright 1998 Stephan Kulow 
-#
-AC_INIT(glibmmconfig.h.in)
-AC_PREREQ(2.50)
-
-#########################################################################
-#  Version and initialization
-#########################################################################
-GLIBMM_MAJOR_VERSION=2
-GLIBMM_MINOR_VERSION=6
-GLIBMM_MICRO_VERSION=1
-GLIBMM_VERSION=$GLIBMM_MAJOR_VERSION.$GLIBMM_MINOR_VERSION.$GLIBMM_MICRO_VERSION
-GLIBMM_RELEASE=$GLIBMM_MAJOR_VERSION.$GLIBMM_MINOR_VERSION
-AC_DEFINE_UNQUOTED(GLIBMM_MAJOR_VERSION, $GLIBMM_MAJOR_VERSION)
-AC_DEFINE_UNQUOTED(GLIBMM_MINOR_VERSION, $GLIBMM_MINOR_VERSION)
-AC_DEFINE_UNQUOTED(GLIBMM_MICRO_VERSION, $GLIBMM_MICRO_VERSION)
-AC_SUBST(GLIBMM_MAJOR_VERSION)
-AC_SUBST(GLIBMM_MINOR_VERSION)
-AC_SUBST(GLIBMM_MICRO_VERSION)
-AC_SUBST(GLIBMM_VERSION)
-AC_SUBST(GLIBMM_RELEASE)
-
-#
-# +1 : ? : +1  == new interface that does not break old one
-# +1 : ? : 0   == new interface that breaks old one
-#  ? : ? : 0   == no new interfaces, but breaks apps
-#  ? :+1 : ?   == just some internal changes, nothing breaks but might work 
-#                 better
-# CURRENT : REVISION : AGE
-LIBGLIBMM_SO_VERSION=1:13:0
-AC_SUBST(LIBGLIBMM_SO_VERSION)
-
-AC_CONFIG_AUX_DIR(scripts)
-
-dnl For automake.
-VERSION=$GLIBMM_VERSION
-PACKAGE=glibmm
-
-dnl Initialize automake stuff
-AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
-
-dnl Specify a configuration file (no autoheader)
-AM_CONFIG_HEADER(glibmmconfig.h)
-AM_MAINTAINER_MODE
-AL_ACLOCAL_INCLUDE(scripts)
-
-
-#########################################################################
-#  Configure arguments 
-#########################################################################
-
-#########################################################################
-#  Environment Checks
-#########################################################################
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_MAKE_SET
-AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-
-AC_DISABLE_STATIC
-AC_PROG_LIBTOOL
-
-AL_PROG_GNU_M4(AC_MSG_ERROR([dnl
-SUN m4 does not work for building gtkmm. 
-Please install GNU m4.]))
-
-AL_PROG_GNU_MAKE(AC_MSG_ERROR([dnl
-SUN make does not work for building gtkmm.
-Please install GNU make.]))
-
-#########################################################################
-#  Dependancy checks
-#########################################################################
-gtkmm_min_glib_version=2.6.0
-
-PKG_CHECK_MODULES(GLIBMM, glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version})
-AC_SUBST(GLIBMM_CFLAGS)
-AC_SUBST(GLIBMM_LIBS)
-
-# gthread isn't a requirement, but we should use its CFLAGS if available.
-PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= ${gtkmm_min_glib_version},[],[GTHREAD_CFLAGS=''; GTHREAD_LIBS=''])
-AC_SUBST(GTHREAD_CFLAGS)
-AC_SUBST(GTHREAD_LIBS)
-
-
-#########################################################################
-#  C++ checks
-#########################################################################
-AC_PROG_CXX
-
-AC_LANG_CPLUSPLUS
-
-AC_CXX_BOOL(,config_error=yes)
-AC_CXX_NAMESPACES(,config_error=yes)
-AC_CXX_MUTABLE(,config_error=yes)
-
-AC_MSG_CHECKING(if C++ environment provides all required features)
-if test "x$config_error" = xyes ; then
-  AC_MSG_RESULT([no])
-  AC_MSG_ERROR([Your compiler is not powerful enough to compile gtkmm. If it should be, see config.log for more information of why it failed.])
-fi
-AC_MSG_RESULT([yes])
-
-GLIBMM_CXX_HAS_NAMESPACE_STD()
-GLIBMM_CXX_HAS_STD_ITERATOR_TRAITS()
-GLIBMM_CXX_HAS_SUN_REVERSE_ITERATOR()
-GLIBMM_CXX_HAS_TEMPLATE_SEQUENCE_CTORS()
-GLIBMM_CXX_MEMBER_FUNCTIONS_MEMBER_TEMPLATES()
-GLIBMM_CXX_CAN_DISAMBIGUATE_CONST_TEMPLATE_SPECIALIZATIONS()
-GLIBMM_CXX_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION()
-GLIBMM_CXX_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS()
-GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC()
-GLIBMM_CXX_ALLOWS_STATIC_INLINE_NPOS()
-
-# Check whether --enable-debug-refcounting was given.
-GLIBMM_ARG_ENABLE_DEBUG_REFCOUNTING()
-
-# Evaluate the --enable-warnings=level option.
-GTKMM_ARG_ENABLE_WARNINGS()
-
-# Dummy conditional just to make automake-1.4 happy.
-# We need an always-false condition in docs/Makefile.am.
-AM_CONDITIONAL(GTKMM_FALSE,[false])
-
-# HACK:  Assign a dummy in order to prevent execution of autoheader by the
-# maintainer-mode rules.  That would fail since we aren't using autoheader.
-AUTOHEADER=':'
-
-AC_CONFIG_FILES([
-  Makefile
-
-  glibmm-2.4.pc
-  glibmm/Makefile
-])
-
-AC_OUTPUT()
-
diff --git a/libs/glibmm2/glibmm-2.4.pc.in b/libs/glibmm2/glibmm-2.4.pc.in
deleted file mode 100644 (file)
index db09882..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: GLibmm
-Description: C++ wrapper for GLib
-Requires: gobject-2.0 sigc++-2.0
-Version: @VERSION@
-Libs: -L${libdir} -lglibmm-2.4
-Cflags: -I${includedir}/glibmm-2.4 -I${libdir}/glibmm-2.4/include
diff --git a/libs/glibmm2/glibmm.h b/libs/glibmm2/glibmm.h
deleted file mode 100644 (file)
index 3788db5..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/* $Id$ */
-
-/* glibmm - a C++ wrapper for the GLib toolkit
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _GLIBMM_H
-#define _GLIBMM_H
-
-#include <glibmmconfig.h>
-//#include <glibmm/i18n.h> //This must be included by the application, after system headers such as <iostream>.
-#include <glibmm/arrayhandle.h>
-#include <glibmm/class.h>
-#include <glibmm/containerhandle_shared.h>
-#include <glibmm/convert.h>
-#include <glibmm/date.h>
-#include <glibmm/dispatcher.h>
-#include <glibmm/error.h>
-#include <glibmm/exception.h>
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/fileutils.h>
-#include <glibmm/helperlist.h>
-#include <glibmm/interface.h>
-#include <glibmm/iochannel.h>
-#include <glibmm/init.h>
-#include <glibmm/streamiochannel.h>
-#include <glibmm/listhandle.h>
-#include <glibmm/main.h>
-#include <glibmm/markup.h>
-#include <glibmm/miscutils.h>
-#include <glibmm/module.h>
-#include <glibmm/objectbase.h>
-#include <glibmm/object.h>
-#include <glibmm/optioncontext.h>
-#include <glibmm/pattern.h>
-#include <glibmm/property.h>
-#include <glibmm/propertyproxy_base.h>
-#include <glibmm/propertyproxy.h>
-#include <glibmm/quark.h>
-#include <glibmm/random.h>
-#include <glibmm/refptr.h>
-#include <glibmm/shell.h>
-#include <glibmm/signalproxy_connectionnode.h>
-#include <glibmm/signalproxy.h>
-#include <glibmm/slisthandle.h>
-#include <glibmm/spawn.h>
-#include <glibmm/stringutils.h>
-#include <glibmm/thread.h>
-#include <glibmm/threadpool.h>
-#include <glibmm/timer.h>
-#include <glibmm/timeval.h>
-#include <glibmm/ustring.h>
-#include <glibmm/value.h>
-#include <glibmm/wrap.h>
-
-#endif /* _GLIBMM_H */
-
diff --git a/libs/glibmm2/glibmm/.cvsignore b/libs/glibmm2/glibmm/.cvsignore
deleted file mode 100644 (file)
index b18226c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile
-Makefile.in
-*.os
diff --git a/libs/glibmm2/glibmm/Makefile.am b/libs/glibmm2/glibmm/Makefile.am
deleted file mode 100644 (file)
index ff8555c..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-## Copyright (c) 2001
-## The gtkmm development team.
-
-SUBDIRS = 
-
-sublib_name = glibmm
-sublib_libname = glibmm-2.4
-sublib_namespace = Glib
-sublib_cflags = $(GLIBMM_CFLAGS)
-
-sublib_files_extra_posix_cc =
-
-sublib_files_general_cc = \
-  class.cc \
-  containers.cc \
-  debug.cc \
-  dispatcher.cc \
-  error.cc \
-  exception.cc \
-  exceptionhandler.cc \
-  init.cc \
-  interface.cc \
-  main.cc \
-  miscutils.cc \
-  object.cc \
-  objectbase.cc \
-  pattern.cc \
-  property.cc \
-  propertyproxy.cc \
-  propertyproxy_base.cc \
-  quark.cc \
-  random.cc \
-  signalproxy.cc \
-  signalproxy_connectionnode.cc  \
-  streamiochannel.cc \
-  stringutils.cc \
-  threadpool.cc \
-  timer.cc \
-  timeval.cc \
-  ustring.cc \
-  utility.cc \
-  value.cc \
-  value_custom.cc \
-  wrap.cc
-
-sublib_files_posix_h =
-
-sublib_files_general_h = \
-  arrayhandle.h \
-  class.h \
-  containerhandle_shared.h  \
-  containers.h \
-  debug.h \
-  dispatcher.h \
-  error.h \
-  exception.h \
-  exceptionhandler.h \
-  helperlist.h \
-  init.h \
-  i18n.h \
-  interface.h \
-  iochannel.h \
-  listhandle.h \
-  main.h \
-  miscutils.h \
-  object.h \
-  objectbase.h \
-  pattern.h \
-  property.h \
-  propertyproxy.h \
-  propertyproxy_base.h \
-  quark.h \
-  random.h \
-  refptr.h \
-  sarray.h \
-  signalproxy_connectionnode.h  \
-  slisthandle.h \
-  streamiochannel.h \
-  stringutils.h \
-  threadpool.h \
-  timer.h \
-  timeval.h \
-  ustring.h \
-  utility.h \
-  value.h \
-  value_custom.h \
-  wrap.h
-
-files_built_general_cc  = value_basictypes.cc
-files_built_general_h  = signalproxy.h value_basictypes.h
-
-lib_LTLIBRARIES = libglibmm-2.4.la
-libglibmm_2_4_la_SOURCES = $(files_all_general_cc) $(files_all_posix_cc)
-libglibmm_2_4_la_LDFLAGS = $(common_ldflags)
-libglibmm_2_4_la_LIBADD = $(GLIBMM_LIBS)
-
diff --git a/libs/glibmm2/glibmm/arrayhandle.h b/libs/glibmm2/glibmm/arrayhandle.h
deleted file mode 100644 (file)
index 58e2630..0000000
+++ /dev/null
@@ -1,522 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_ARRAYHANDLE_H
-#define _GLIBMM_ARRAYHANDLE_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/containerhandle_shared.h>
-
-
-namespace Glib
-{
-
-namespace Container_Helpers
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/* Count the number of elements in a 0-terminated sequence.
- */
-template <class T> inline
-size_t compute_array_size(const T* array)
-{
-  const T* pend = array;
-
-  while(*pend)
-    ++pend;
-
-  return (pend - array);
-}
-
-/* Allocate and fill a 0-terminated array.  The size argument
- * specifies the number of elements in the input sequence.
- */
-template <class For, class Tr>
-typename Tr::CType* create_array(For pbegin, size_t size, Tr)
-{
-  typedef typename Tr::CType CType;
-
-  CType *const array = static_cast<CType*>(g_malloc((size + 1) * sizeof(CType)));
-  CType *const array_end = array + size;
-
-  for(CType* pdest = array; pdest != array_end; ++pdest)
-  {
-    // Use & to force a warning if the iterator returns a temporary object.
-    *pdest = Tr::to_c_type(*&*pbegin);
-    ++pbegin;
-  }
-
-  *array_end = CType();
-  return array;
-}
-
-
-/* Convert from any container that supports forward
- * iterators and has a size() method.
- */
-template <class Tr, class Cont>
-struct ArraySourceTraits
-{
-  typedef typename Tr::CType CType;
-
-  static size_t get_size(const Cont& cont)
-    { return cont.size(); }
-
-  static const CType* get_data(const Cont& cont, size_t size)
-    { return Glib::Container_Helpers::create_array(cont.begin(), size, Tr()); }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_SHALLOW;
-};
-
-/* Convert from a 0-terminated array.  The Cont argument must be a pointer
- * to the first element.  Note that only arrays of the C type are supported.
- */
-template <class Tr, class Cont>
-struct ArraySourceTraits<Tr,Cont*>
-{
-  typedef typename Tr::CType CType;
-
-  static size_t get_size(const CType* array)
-    { return (array) ? Glib::Container_Helpers::compute_array_size(array) : 0; }
-
-  static const CType* get_data(const CType* array, size_t)
-    { return array; }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_NONE;
-};
-
-template <class Tr, class Cont>
-struct ArraySourceTraits<Tr,const Cont*> : ArraySourceTraits<Tr,Cont*>
-{};
-
-/* Convert from a 0-terminated array.  The Cont argument must be a pointer
- * to the first element.  Note that only arrays of the C type are supported.
- * For consistency, the array must be 0-terminated, even though the array
- * size is known at compile time.
- */
-template <class Tr, class Cont, size_t N>
-struct ArraySourceTraits<Tr,Cont[N]>
-{
-  typedef typename Tr::CType CType;
-
-  static size_t get_size(const CType*)
-    { return (N - 1); }
-
-  static const CType* get_data(const CType* array, size_t)
-    { return array; }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_NONE;
-};
-
-template <class Tr, class Cont, size_t N>
-struct ArraySourceTraits<Tr,const Cont[N]> : ArraySourceTraits<Tr,Cont[N]>
-{};
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/**
- * @ingroup ContHelpers
- */
-template <class Tr>
-class ArrayHandleIterator
-{
-public:
-  typedef typename Tr::CppType              CppType;
-  typedef typename Tr::CType                CType;
-
-  typedef std::random_access_iterator_tag   iterator_category;
-  typedef CppType                           value_type;
-  typedef ptrdiff_t                         difference_type;
-  typedef value_type                        reference;
-  typedef void                              pointer;
-
-  explicit inline ArrayHandleIterator(const CType* pos);
-
-  inline value_type operator*() const;
-  inline value_type operator[](difference_type offset) const;
-
-  inline ArrayHandleIterator<Tr> &     operator++();
-  inline const ArrayHandleIterator<Tr> operator++(int);
-
-  // All this random access stuff is only there because STL algorithms
-  // usually have optimized specializations for random access iterators,
-  // and we don't want to give away efficiency for nothing.
-  //
-  inline ArrayHandleIterator<Tr> &     operator+=(difference_type rhs);
-  inline ArrayHandleIterator<Tr> &     operator-=(difference_type rhs);
-  inline const ArrayHandleIterator<Tr> operator+ (difference_type rhs) const;
-  inline const ArrayHandleIterator<Tr> operator- (difference_type rhs) const;
-  inline difference_type operator-(const ArrayHandleIterator<Tr>& rhs) const;
-
-  inline bool operator==(const ArrayHandleIterator<Tr>& rhs) const;
-  inline bool operator!=(const ArrayHandleIterator<Tr>& rhs) const;
-  inline bool operator< (const ArrayHandleIterator<Tr>& rhs) const;
-  inline bool operator> (const ArrayHandleIterator<Tr>& rhs) const;
-  inline bool operator<=(const ArrayHandleIterator<Tr>& rhs) const;
-  inline bool operator>=(const ArrayHandleIterator<Tr>& rhs) const;
-
-private:
-  const CType* pos_;
-};
-
-} // namespace Container_Helpers
-
-
-/** If a method takes this as an argument, or has this as a return type, then you can use a standard
- * container such as std::list or std::vector.
- * @ingroup ContHandles
- */
-template < class T, class Tr = Glib::Container_Helpers::TypeTraits<T> >
-class ArrayHandle
-{
-public:
-  typedef typename Tr::CppType  CppType;
-  typedef typename Tr::CType    CType;
-
-  typedef CppType               value_type;
-  typedef size_t                size_type;
-  typedef ptrdiff_t             difference_type;
-
-  typedef Glib::Container_Helpers::ArrayHandleIterator<Tr>   const_iterator;
-  typedef Glib::Container_Helpers::ArrayHandleIterator<Tr>   iterator;
-
-  template <class Cont> inline
-    ArrayHandle(const Cont& container);
-
-  // Take over ownership of an array created by GTK+ functions.
-  inline ArrayHandle(const CType* array, size_t array_size, Glib::OwnershipType ownership);
-  inline ArrayHandle(const CType* array, Glib::OwnershipType ownership);
-
-  // Copying clears the ownership flag of the source handle.
-  inline ArrayHandle(const ArrayHandle<T,Tr>& other);
-
-  ~ArrayHandle();
-
-  inline const_iterator begin() const;
-  inline const_iterator end()   const;
-
-  template <class U> inline operator std::vector<U>() const;
-  template <class U> inline operator std::deque<U>()  const;
-  template <class U> inline operator std::list<U>()   const;
-
-  template <class Cont> inline
-    void assign_to(Cont& container) const;
-
-  template <class Out> inline
-    void copy(Out pdest) const;
-
-  inline const CType* data()  const;
-  inline size_t       size()  const;
-  inline bool         empty() const;
-
-private:
-  size_t                      size_;
-  const CType*                parray_;
-  mutable Glib::OwnershipType ownership_;
-
-  // No copy assignment.
-  ArrayHandle<T, Tr>& operator=(const ArrayHandle<T,Tr>&);
-};
-
-/** If a method takes this as an argument, or has this as a return type, then you can use a standard
- * container such as std::list<Glib::ustring> or std::vector<Glib::ustring>.
- * @ingroup ContHandles
- */
-typedef ArrayHandle<Glib::ustring> StringArrayHandle;
-
-
-/***************************************************************************/
-/*  Inline implementation                                                  */
-/***************************************************************************/
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-namespace Container_Helpers
-{
-
-/**** Glib::Container_Helpers::ArrayHandleIterator<> ***********************/
-
-template <class Tr> inline
-ArrayHandleIterator<Tr>::ArrayHandleIterator(const CType* pos)
-:
-  pos_ (pos)
-{}
-
-template <class Tr> inline
-typename ArrayHandleIterator<Tr>::value_type ArrayHandleIterator<Tr>::operator*() const
-{
-  return Tr::to_cpp_type(*pos_);
-}
-
-template <class Tr> inline
-typename ArrayHandleIterator<Tr>::value_type
-ArrayHandleIterator<Tr>::operator[](difference_type offset) const
-{
-  return Tr::to_cpp_type(pos_[offset]);
-}
-
-template <class Tr> inline
-ArrayHandleIterator<Tr>& ArrayHandleIterator<Tr>::operator++()
-{
-  ++pos_;
-  return *this;
-}
-
-template <class Tr> inline
-const ArrayHandleIterator<Tr> ArrayHandleIterator<Tr>::operator++(int)
-{
-  return ArrayHandleIterator<Tr>(pos_++);
-}
-
-template <class Tr> inline
-ArrayHandleIterator<Tr>&
-ArrayHandleIterator<Tr>::operator+=(typename ArrayHandleIterator<Tr>::difference_type rhs)
-{
-  pos_ += rhs;
-  return *this;
-}
-
-template <class Tr> inline
-ArrayHandleIterator<Tr>&
-ArrayHandleIterator<Tr>::operator-=(typename ArrayHandleIterator<Tr>::difference_type rhs)
-{
-  pos_ -= rhs;
-  return *this;
-}
-
-template <class Tr> inline
-const ArrayHandleIterator<Tr>
-ArrayHandleIterator<Tr>::operator+(typename ArrayHandleIterator<Tr>::difference_type rhs) const
-{
-  return ArrayHandleIterator<Tr>(pos_ + rhs);
-}
-
-template <class Tr> inline
-const ArrayHandleIterator<Tr>
-ArrayHandleIterator<Tr>::operator-(typename ArrayHandleIterator<Tr>::difference_type rhs) const
-{
-  return ArrayHandleIterator<Tr>(pos_ - rhs);
-}
-
-template <class Tr> inline
-typename ArrayHandleIterator<Tr>::difference_type
-ArrayHandleIterator<Tr>::operator-(const ArrayHandleIterator<Tr>& rhs) const
-{
-  return (pos_ - rhs.pos_);
-}
-
-template <class Tr> inline
-bool ArrayHandleIterator<Tr>::operator==(const ArrayHandleIterator<Tr>& rhs) const
-{
-  return (pos_ == rhs.pos_);
-}
-
-template <class Tr> inline
-bool ArrayHandleIterator<Tr>::operator!=(const ArrayHandleIterator<Tr>& rhs) const
-{
-  return (pos_ != rhs.pos_);
-}
-
-template <class Tr> inline
-bool ArrayHandleIterator<Tr>::operator<(const ArrayHandleIterator<Tr>& rhs) const
-{
-  return (pos_ < rhs.pos_);
-}
-
-template <class Tr> inline
-bool ArrayHandleIterator<Tr>::operator>(const ArrayHandleIterator<Tr>& rhs) const
-{
-  return (pos_ > rhs.pos_);
-}
-
-template <class Tr> inline
-bool ArrayHandleIterator<Tr>::operator<=(const ArrayHandleIterator<Tr>& rhs) const
-{
-  return (pos_ <= rhs.pos_);
-}
-
-template <class Tr> inline
-bool ArrayHandleIterator<Tr>::operator>=(const ArrayHandleIterator<Tr>& rhs) const
-{
-  return (pos_ >= rhs.pos_);
-}
-
-} // namespace Container_Helpers
-
-
-/**** Glib::ArrayHandle<> **************************************************/
-
-template <class T, class Tr>
-  template <class Cont>
-inline
-ArrayHandle<T,Tr>::ArrayHandle(const Cont& container)
-:
-  size_      (Glib::Container_Helpers::ArraySourceTraits<Tr,Cont>::get_size(container)),
-  parray_    (Glib::Container_Helpers::ArraySourceTraits<Tr,Cont>::get_data(container, size_)),
-  ownership_ (Glib::Container_Helpers::ArraySourceTraits<Tr,Cont>::initial_ownership)
-{}
-
-template <class T, class Tr> inline
-ArrayHandle<T,Tr>::ArrayHandle(const typename ArrayHandle<T,Tr>::CType* array, size_t array_size,
-                               Glib::OwnershipType ownership)
-:
-  size_      (array_size),
-  parray_    (array),
-  ownership_ (ownership)
-{}
-
-template <class T, class Tr> inline
-ArrayHandle<T,Tr>::ArrayHandle(const typename ArrayHandle<T,Tr>::CType* array,
-                               Glib::OwnershipType ownership)
-:
-  size_      ((array) ? Glib::Container_Helpers::compute_array_size(array) : 0),
-  parray_    (array),
-  ownership_ (ownership)
-{}
-
-template <class T, class Tr> inline
-ArrayHandle<T,Tr>::ArrayHandle(const ArrayHandle<T,Tr>& other)
-:
-  size_      (other.size_),
-  parray_    (other.parray_),
-  ownership_ (other.ownership_)
-{
-  other.ownership_ = Glib::OWNERSHIP_NONE;
-}
-
-template <class T, class Tr>
-ArrayHandle<T,Tr>::~ArrayHandle()
-{
-  if(ownership_ != Glib::OWNERSHIP_NONE)
-  {
-    if(ownership_ != Glib::OWNERSHIP_SHALLOW)
-    {
-      // Deep ownership: release each container element.
-      const CType *const pend = parray_ + size_;
-      for(const CType* p = parray_; p != pend; ++p)
-        Tr::release_c_type(*p);
-    }
-    g_free(const_cast<CType*>(parray_));
-  }
-}
-
-template <class T, class Tr> inline
-typename ArrayHandle<T,Tr>::const_iterator ArrayHandle<T,Tr>::begin() const
-{
-  return Glib::Container_Helpers::ArrayHandleIterator<Tr>(parray_);
-}
-
-template <class T, class Tr> inline
-typename ArrayHandle<T,Tr>::const_iterator ArrayHandle<T,Tr>::end() const
-{
-  return Glib::Container_Helpers::ArrayHandleIterator<Tr>(parray_ + size_);
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-ArrayHandle<T,Tr>::operator std::vector<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::vector<U>(this->begin(), this->end());
-#else
-  std::vector<U> temp;
-  temp.reserve(this->size());
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-ArrayHandle<T,Tr>::operator std::deque<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::deque<U>(this->begin(), this->end());
-#else
-  std::deque<U> temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-ArrayHandle<T,Tr>::operator std::list<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::list<U>(this->begin(), this->end());
-#else
-  std::list<U> temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class Cont>
-inline
-void ArrayHandle<T,Tr>::assign_to(Cont& container) const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  container.assign(this->begin(), this->end());
-#else
-  Cont temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  container.swap(temp);
-#endif
-}
-
-template <class T, class Tr>
-  template <class Out>
-inline
-void ArrayHandle<T,Tr>::copy(Out pdest) const
-{
-  std::copy(this->begin(), this->end(), pdest);
-}
-
-template <class T, class Tr> inline
-const typename ArrayHandle<T,Tr>::CType* ArrayHandle<T,Tr>::data() const
-{
-  return parray_;
-}
-
-template <class T, class Tr> inline
-size_t ArrayHandle<T,Tr>::size() const
-{
-  return size_;
-}
-
-template <class T, class Tr> inline
-bool ArrayHandle<T,Tr>::empty() const
-{
-  return (size_ == 0);
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_ARRAYHANDLE_H */
-
diff --git a/libs/glibmm2/glibmm/class.cc b/libs/glibmm2/glibmm/class.cc
deleted file mode 100644 (file)
index ff4a671..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 1998-2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/class.h>
-#include <glibmm/property.h>
-#include <glibmm/ustring.h>
-#include <glibmm/utility.h>
-
-
-namespace Glib
-{
-
-void Class::register_derived_type(GType base_type)
-{
-  if(gtype_)
-    return; // already initialized
-
-  GTypeQuery base_query = { 0, 0, 0, 0, };
-  g_type_query(base_type, &base_query);
-
-  const GTypeInfo derived_info =
-  {
-    base_query.class_size,
-    0, // base_init
-    0, // base_finalize
-    class_init_func_,
-    0, // class_finalize
-    0, // class_data
-    base_query.instance_size,
-    0, // n_preallocs
-    0, // instance_init
-    0, // value_table
-  };
-
-  Glib::ustring derived_name = "gtkmm__";
-  derived_name += base_query.type_name;
-
-  gtype_ = g_type_register_static(base_type, derived_name.c_str(), &derived_info, GTypeFlags(0));
-}
-
-GType Class::clone_custom_type(const char* custom_type_name) const
-{
-  std::string full_name ("gtkmm__CustomObject_");
-  Glib::append_canonical_typename(full_name, custom_type_name);
-
-  GType custom_type = g_type_from_name(full_name.c_str());
-
-  if(!custom_type)
-  {
-    g_return_val_if_fail(gtype_ != 0, 0);
-
-    // Cloned custom types derive from the wrapper's parent type,
-    // so that g_type_class_peek_parent() works correctly.
-    const GType base_type = g_type_parent(gtype_);
-
-    GTypeQuery base_query = { 0, 0, 0, 0, };
-    g_type_query(base_type, &base_query);
-
-    const GTypeInfo derived_info =
-    {
-      base_query.class_size,
-      0, // base_init
-      0, // base_finalize
-      &Class::custom_class_init_function,
-      0, // class_finalize
-      this, // class_data
-      base_query.instance_size,
-      0, // n_preallocs
-      0, // instance_init
-      0, // value_table
-    };
-
-    custom_type = g_type_register_static(
-        base_type, full_name.c_str(), &derived_info, GTypeFlags(0));
-  }
-
-  return custom_type;
-}
-
-// static
-void Class::custom_class_init_function(void* g_class, void* class_data)
-{
-  // The class_data pointer is set to 'this' by clone_custom_type().
-  const Class *const self = static_cast<Class*>(class_data);
-
-  g_return_if_fail(self->class_init_func_ != 0);
-
-  // Call the wrapper's class_init_function() to redirect
-  // the vfunc and default signal handler callbacks.
-  (*self->class_init_func_)(g_class, 0);
-
-  GObjectClass *const gobject_class = static_cast<GObjectClass*>(g_class);
-
-  gobject_class->get_property = &Glib::custom_get_property_callback;
-  gobject_class->set_property = &Glib::custom_set_property_callback;
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/class.h b/libs/glibmm2/glibmm/class.h
deleted file mode 100644 (file)
index c7b5a96..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_CLASS_H
-#define _GLIBMM_CLASS_H
-
-/* $Id$ */
-
-/* Copyright 2001 Free Software Foundation
- * Copyright (C) 1998-2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib-object.h>
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-namespace Glib
-{
-
-class Class
-{
-public:
-  /* No constructor/destructor:
-   * Glib::Class objects are used only as static data, which would cause
-   * lots of ugly global constructor invocations.  These are avoidable,
-   * because the C/C++ standard explicitly specifies that all _static_ data
-   * is zero-initialized at program start.
-   */
-  //Class();
-  //~Class();
-
-  //static void class_init_function(BaseClassType *p);
-  //static void object_init_function(BaseObjectType *o);
-  //GType get_type() = 0; //Creates the GType when this is first called.
-
-  // Hook for translating API
-  //static Glib::Object* wrap_new(GObject*);
-
-  inline GType get_type() const;
-  GType clone_custom_type(const char* custom_type_name) const;
-
-protected:
-  GType           gtype_;
-  GClassInitFunc  class_init_func_;
-
-  void register_derived_type(GType base_type);
-
-private:
-  static void custom_class_init_function(void* g_class, void* class_data);
-};
-
-inline
-GType Class::get_type() const
-{
-  return gtype_;
-}
-
-} // namespace Glib
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-#endif /* _GLIBMM_CLASS_H */
-
diff --git a/libs/glibmm2/glibmm/containerhandle_shared.h b/libs/glibmm2/glibmm/containerhandle_shared.h
deleted file mode 100644 (file)
index ef557b4..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_CONTAINERHANDLE_SHARED_H
-#define _GLIBMM_CONTAINERHANDLE_SHARED_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <cstddef>
-#include <algorithm>
-#include <iterator>
-#include <vector>
-#include <deque>
-#include <list>
-
-#include <glib-object.h>
-#include <glib/gmem.h>
-#include <glibmm/refptr.h>
-#include <glibmm/ustring.h>
-#include <glibmm/wrap.h>
-#include <glibmm/debug.h>
-
-#include <glibmmconfig.h>
-GLIBMM_USING_STD(forward_iterator_tag)
-GLIBMM_USING_STD(random_access_iterator_tag)
-GLIBMM_USING_STD(distance)
-GLIBMM_USING_STD(copy)
-GLIBMM_USING_STD(vector)
-GLIBMM_USING_STD(deque)
-GLIBMM_USING_STD(list)
-
-
-namespace Glib
-{
-
-/** @defgroup ContHandles Generic container converters
- */
-
-/**
- * @ingroup ContHandles
- */
-enum OwnershipType
-{
-  OWNERSHIP_NONE = 0,
-  OWNERSHIP_SHALLOW, //Release the list, but not its elements, when the container is deleted
-  OWNERSHIP_DEEP //Release the list, and its elements, when the container is deleted.
-};
-
-
-/** Utility class holding an iterator sequence.
- * @ingroup ContHandles
- * This can be used to initialize a Glib container handle (such as
- * Glib::ArrayHandle) with an iterator sequence.  Use the helper
- * function Glib::sequence() to create a Sequence<> object.
- */
-template <class Iterator>
-class Sequence
-{
-private:
-  Iterator pbegin_;
-  Iterator pend_;
-
-public:
-  Sequence(Iterator pbegin, Iterator pend)
-    : pbegin_(pbegin), pend_(pend) {}
-
-  Iterator begin() const { return pbegin_; }
-  Iterator end()   const { return pend_;   }
-  size_t   size()  const { return std::distance(pbegin_, pend_); }
-};
-
-/** Helper function to create a Glib::Sequence<> object, which
- * in turn can be used to initialize a container handle.
- * @ingroup ContHandles
- *
- * @par Usage example:
- * @code
- * combo.set_popdown_strings(Glib::sequence(foo_begin, foo_end));
- * @endcode
- */
-template <class Iterator> inline
-Sequence<Iterator> sequence(Iterator pbegin, Iterator pend)
-{
-  return Sequence<Iterator>(pbegin, pend);
-}
-
-
-namespace Container_Helpers
-{
-
-/** @defgroup ContHelpers Helper classes
- * @ingroup ContHandles
- */
-
-/** Generic TypeTraits implementation.
- * @ingroup ContHelpers
- * This can be used if the C++ type is the same as the C type, or if implicit
- * conversions between the types are available.  Also, the types are required
- * to implement copy-by-value semantics.  (Ownership is just ignored.)
- */
-template <class T>
-struct TypeTraits
-{
-  typedef T CppType;
-  typedef T CType;
-  typedef T CTypeNonConst;
-
-  static CType   to_c_type      (const CppType& item) { return item; }
-  static CppType to_cpp_type    (const CType&   item) { return item; }
-  static void    release_c_type (const CType&)        {}
-};
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS /* hide the specializations */
-
-//For some (proably, more spec-compliant) compilers, these specializations must
-//be next to the objects that they use.
-#ifdef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-
-/** Partial specialization for pointers to GtkObject instances.
- * @ingroup ContHelpers
- */
-template <class T>
-struct TypeTraits<T*>
-{
-  typedef T *                          CppType;
-  typedef typename T::BaseObjectType * CType;
-  typedef typename T::BaseObjectType * CTypeNonConst;
-
-  static CType   to_c_type      (CppType ptr) { return Glib::unwrap(ptr);      }
-  static CType   to_c_type      (CType   ptr) { return ptr;                    }
-  static CppType to_cpp_type    (CType   ptr)
-  {
-    //We copy/paste the widget wrap() implementation here,
-    //because we can not use a specific Glib::wrap(T_Impl) overload here,
-    //because that would be "dependent", and g++ 3.4 does not allow that.
-    //The specific Glib::wrap() overloads don't do anything special anyway.
-    GObject* cobj = (GObject*)ptr;
-    return dynamic_cast<CppType>(Glib::wrap_auto(cobj, false /* take_copy */));
-  }
-  
-  static void    release_c_type (CType   ptr)
-  {
-    GLIBMM_DEBUG_UNREFERENCE(0, ptr);
-    g_object_unref(ptr);
-  }
-};
-
-//This confuse the SUN Forte compiler, so we ifdef it out:
-#ifdef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS 
-
-/** Partial specialization for pointers to const GtkObject instances.
- * @ingroup ContHelpers
- */
-template <class T>
-struct TypeTraits<const T*>
-{
-  typedef const T *                          CppType;
-  typedef const typename T::BaseObjectType * CType;
-  typedef typename T::BaseObjectType *       CTypeNonConst;
-
-  static CType   to_c_type      (CppType ptr) { return Glib::unwrap(ptr);      }
-  static CType   to_c_type      (CType   ptr) { return ptr;                    }
-  static CppType to_cpp_type    (CType   ptr)
-  {
-     //We copy/paste the widget wrap() implementation here,
-     //because we can not use a specific Glib::wrap(T_Impl) overload here,
-     //because that would be "dependent", and g++ 3.4 does not allow that.
-     //The specific Glib::wrap() overloads don't do anything special anyway.
-     GObject* cobj = (GObject*)const_cast<CTypeNonConst>(ptr);
-     return dynamic_cast<CppType>(Glib::wrap_auto(cobj, false /* take_copy */));
-  }
-  
-  static void    release_c_type (CType   ptr)
-  {
-    GLIBMM_DEBUG_UNREFERENCE(0, ptr);
-    g_object_unref(const_cast<CTypeNonConst>(ptr));
-  }
-};
-#endif //GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-/** Partial specialization for pointers to GObject instances.
- * @ingroup ContHelpers
- * The C++ type is always a Glib::RefPtr<>.
- */
-template <class T>
-struct TypeTraits< Glib::RefPtr<T> >
-{
-  typedef Glib::RefPtr<T>              CppType;
-  typedef typename T::BaseObjectType * CType;
-  typedef typename T::BaseObjectType * CTypeNonConst;
-
-  static CType   to_c_type      (const CppType& ptr) { return Glib::unwrap(ptr);     }
-  static CType   to_c_type      (CType          ptr) { return ptr;                   }
-  static CppType to_cpp_type    (CType          ptr)
-  {
-    //return Glib::wrap(ptr, true);
-
-    //We copy/paste the wrap() implementation here,
-    //because we can not use a specific Glib::wrap(CType) overload here,
-    //because that would be "dependent", and g++ 3.4 does not allow that.
-    //The specific Glib::wrap() overloads don't do anything special anyway.
-    GObject* cobj = (GObject*)const_cast<CTypeNonConst>(ptr);
-    return Glib::RefPtr<T>( dynamic_cast<T*>(Glib::wrap_auto(cobj, true /* take_copy */)) );
-    //We use dynamic_cast<> in case of multiple inheritance.
-  }
-  
-  static void    release_c_type (CType          ptr)
-  {
-    GLIBMM_DEBUG_UNREFERENCE(0, ptr);
-    g_object_unref(ptr);
-  }
-};
-
-//This confuse the SUN Forte compiler, so we ifdef it out:
-#ifdef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-/** Partial specialization for pointers to const GObject instances.
- * @ingroup ContHelpers
- * The C++ type is always a Glib::RefPtr<>.
- */
-template <class T>
-struct TypeTraits< Glib::RefPtr<const T> >
-{
-  typedef Glib::RefPtr<const T>              CppType;
-  typedef const typename T::BaseObjectType * CType;
-  typedef typename T::BaseObjectType *       CTypeNonConst;
-
-  static CType   to_c_type      (const CppType& ptr) { return Glib::unwrap(ptr);     }
-  static CType   to_c_type      (CType          ptr) { return ptr;                   }
-  static CppType to_cpp_type    (CType          ptr)
-  {
-    //return Glib::wrap(ptr, true);
-
-    //We copy/paste the wrap() implementation here,
-    //because we can not use a specific Glib::wrap(CType) overload here,
-    //because that would be "dependent", and g++ 3.4 does not allow that.
-    //The specific Glib::wrap() overloads don't do anything special anyway.
-    GObject* cobj = (GObject*)(ptr);
-    return Glib::RefPtr<const T>( dynamic_cast<const T*>(Glib::wrap_auto(cobj, true /* take_copy */)) );
-    //We use dynamic_cast<> in case of multiple inheritance.
-  }
-  
-  static void    release_c_type (CType          ptr)
-  {
-    GLIBMM_DEBUG_UNREFERENCE(0, ptr);
-    g_object_unref(const_cast<CTypeNonConst>(ptr));
-  }
-};
-
-#endif //GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-#endif //GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-
-/** Specialization for UTF-8 strings.
- * @ingroup ContHelpers
- * When converting from C++ to C, Glib::ustring will be accepted as well as
- * std::string and 'const char*'.  However, when converting to the C++ side,
- * the output type cannot be 'const char*'.
- */
-template <>
-struct TypeTraits<Glib::ustring>
-{
-  typedef Glib::ustring CppType;
-  typedef const char *  CType;
-  typedef char *        CTypeNonConst;
-
-  static CType to_c_type (const Glib::ustring& str) { return str.c_str(); }
-  static CType to_c_type (const std::string&   str) { return str.c_str(); }
-  static CType to_c_type (CType                str) { return str;         }
-
-  static CppType to_cpp_type(CType str)
-    { return (str) ? Glib::ustring(str) : Glib::ustring(); }
-
-  static void release_c_type(CType str)
-    { g_free(const_cast<CTypeNonConst>(str)); }
-};
-
-/** Specialization for std::string.
- * @ingroup ContHelpers
- * When converting from C++ to C, std::string will be accepted as well as
- * 'const char*'.  However, when converting to the C++ side, the output type
- * cannot be 'const char*'.
- */
-template <>
-struct TypeTraits<std::string>
-{
-  typedef std::string   CppType;
-  typedef const char *  CType;
-  typedef char *        CTypeNonConst;
-
-  static CType to_c_type (const std::string&   str) { return str.c_str(); }
-  static CType to_c_type (const Glib::ustring& str) { return str.c_str(); }
-  static CType to_c_type (CType                str) { return str;         }
-
-  static CppType to_cpp_type(CType str)
-    { return (str) ? std::string(str) : std::string(); }
-
-  static void release_c_type(CType str)
-    { g_free(const_cast<CTypeNonConst>(str)); }
-};
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#ifndef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-
-/* The STL containers in Sun's libCstd don't support templated sequence
- * constructors, for "backward compatibility" reasons.  This helper function
- * is used in the ContainerHandle -> STL-container conversion workarounds.
- */
-template <class Cont, class In>
-void fill_container(Cont& container, In pbegin, In pend)
-{
-  for(; pbegin != pend; ++pbegin)
-    container.push_back(*pbegin);
-}
-
-#endif /* GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS */
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Container_Helpers
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_CONTAINERHANDLE_SHARED_H */
-
diff --git a/libs/glibmm2/glibmm/containers.cc b/libs/glibmm2/glibmm/containers.cc
deleted file mode 100644 (file)
index 49803e1..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// -*- c++ -*-
-
-/* $Id$ */
-
-/* containers.h
- *
- * Copyright (C) 1998-2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/containers.h>
-
-namespace Glib
-{
-
-gpointer glibmm_null_pointer=0;
-
-
-} //namespace Glib
-
diff --git a/libs/glibmm2/glibmm/containers.h b/libs/glibmm2/glibmm/containers.h
deleted file mode 100644 (file)
index c709068..0000000
+++ /dev/null
@@ -1,372 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_CONTAINERS_H
-#define _GLIBMM_CONTAINERS_H
-
-/* $Id$ */
-
-/* containers.h
- *
- * Copyright (C) 1998-2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/glist.h>
-#include <glib/gslist.h>
-#include <glibmm/sarray.h> /* for backward compatibility */
-
-#include <iterator>
-#include <glibmmconfig.h>
-
-GLIBMM_USING_STD(bidirectional_iterator_tag)
-GLIBMM_USING_STD(forward_iterator_tag)
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-namespace Glib
-{
-
-template <class T> class List_Iterator;
-template <class T> class List_ConstIterator;
-template <class T> class List_ReverseIterator;
-
-// Most of these methods in the non-template classes needs to be moved
-// to implementation.
-
-//Daniel Elstner has ideas about generating these per-widget with m4. murrayc.
-
-
-extern GLIBMM_API gpointer glibmm_null_pointer;
-
-template <class T>
-class List_Iterator_Base
-{
-public:
-  typedef T  value_type;
-  typedef T* pointer;
-  typedef T& reference;
-} ;
-
-///For instance, List_Iterator< Gtk::Widget >
-template <class T>
-class List_Iterator : public List_Iterator_Base<T>
-{
-public:
-  typedef std::bidirectional_iterator_tag iterator_category;
-  typedef size_t size_type;
-  typedef ptrdiff_t difference_type;
-  
-  typedef typename List_Iterator_Base<T>::pointer pointer;
-  typedef typename List_Iterator_Base<T>::reference reference;
-
-  GList* const* head_;
-  GList* node_;
-
-  typedef List_Iterator<T> Self;
-
-  List_Iterator(GList* const& head, GList* node)
-  : head_(&head), node_(node)
-  {}
-
-  List_Iterator()
-   : head_(0), node_(0)
-  {}
-
-  List_Iterator(const Self& src)
-  : head_(src.head_), node_(src.node_)
-  {}
-
-  bool operator==(const Self& src) const { return node_ == src.node_; }
-  bool operator!=(const Self& src) const { return node_ != src.node_; }
-
-  Self&  operator++()
-  {
-    if (!node_)
-      node_ = g_list_first(*head_);
-    else
-      node_ = (GList*)g_list_next(node_);
-    return *this;
-  }
-
-  Self operator++(int)
-  {
-    Self tmp = *this;
-    ++*this;
-    return tmp;
-  }
-
-  Self&  operator--()
-  {
-    if (!node_)
-      node_ = g_list_last(*head_);
-    else
-      node_ = (GList*)g_list_previous(node_);
-
-    return *this;
-  }
-
-  Self operator--(int)
-  {
-    Self tmp = *this;
-    --*this;
-    return tmp;
-  }
-
-  reference operator*()  const 
-  {
-    return *(pointer)( node_ ? node_->data : glibmm_null_pointer );
-  }
-  
-  pointer operator -> () const { return &operator*(); }
-};
-
-///For instance, SList_Iterator< Gtk::Widget >
-template <class T>
-class SList_Iterator : public List_Iterator_Base<T>
-{
-public:
-  typedef std::forward_iterator_tag iterator_category;
-  typedef size_t size_type;
-  typedef ptrdiff_t difference_type;
-
-  typedef typename List_Iterator_Base<T>::pointer pointer;
-  typedef typename List_Iterator_Base<T>::reference reference;
-
-  GSList* node_;
-  typedef SList_Iterator<T> Self;
-
-  SList_Iterator(GSList* node)
-   : node_(node)
-   {}
-
-  SList_Iterator()
-   : node_(0)
-   {}
-
-  SList_Iterator(const Self& src)
-  : node_(src.node_)
-  {}
-
-  bool operator==(const Self& src) const { return node_ == src.node_; }
-  bool operator!=(const Self& src) const { return node_ != src.node_; }
-
-  Self&  operator++()
-  {
-    node_ = g_slist_next(node_);
-    return *this;
-  }
-
-  Self operator++(int)
-  {
-    Self tmp = *this;
-    ++*this;
-    return tmp;
-  }
-
-  reference operator*()  const
-  {
-    g_assert(node_);
-    return reinterpret_cast<T&>( node_ ? node_->data : glibmm_null_pointer );
-  }
-
-  pointer operator -> () const { return &operator*(); }
-};
-
-
-// This iterator variation returns T_IFace (wrapped from T_Impl)
-//  For instance,  List_Cpp_Iterator<GtkWidget, Gtk::Widget> is a little like std::list<Gtk::Widget>::iterator
-template<class T_Impl, class T_IFace>
-class List_Cpp_Iterator : public List_Iterator_Base<T_IFace>
-{
-public:
-  typedef std::bidirectional_iterator_tag iterator_category;
-  typedef size_t size_type;
-  typedef ptrdiff_t difference_type;
-
-  typedef typename List_Iterator_Base<T_IFace>::pointer pointer;
-  typedef typename List_Iterator_Base<T_IFace>::reference reference;
-
-  typedef List_Cpp_Iterator<T_Impl, T_IFace> Self;
-
-  GList** head_;
-  GList* node_;
-
-  bool operator==(const Self& src) const { return node_ == src.node_; }
-  bool operator!=(const Self& src) const { return node_ != src.node_; }
-
-  List_Cpp_Iterator(GList*& head, GList* node )
-  : head_(&head), node_(node )
-  {}
-
-  List_Cpp_Iterator()
-  : head_(0), node_(0)
-  {}
-
-  List_Cpp_Iterator(const Self& src)
-  : head_(src.head_), node_(src.node_)
-  {}
-
-  reference operator*() const
-  {
-    if (node_ && node_->data)
-    {
-      //We copy/paste the widget wrap() implementation here,
-      //because we can not use a specific Glib::wrap(T_Impl) overload here,
-      //because that would be "dependent", and g++ 3.4 does not allow that.
-      //The specific Glib::wrap() overloads don't do anything special anyway.
-      GObject* cobj = static_cast<GObject*>( (*node_).data );
-      
-      #ifdef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-      return *(dynamic_cast<pointer>(Glib::wrap_auto(cobj, false /* take_copy */)));
-      #else
-      //We really do need to use dynamic_cast<>, so I expect problems if this code is used. murrayc.
-      return *(static_cast<pointer>(Glib::wrap_auto(cobj, false /* take_copy */)));
-      #endif
-      
-    }
-    
-    return *(pointer)glibmm_null_pointer;
-  }
-
-  pointer operator->() const { return &operator*(); }
-
-  Self&  operator++()
-  {
-    if (!node_)
-      node_ = g_list_first(*head_);
-    else
-      node_ = (GList *)g_list_next(node_);
-
-    return *this;
-  }
-
-  Self operator++(int)
-  {
-    Self tmp = *this;
-    ++*this;
-    return tmp;
-  }
-
-  Self&  operator--()
-  {
-    if (!node_)
-      node_ = g_list_last(*head_);
-    else
-      node_ = (GList *)g_list_previous(node_);
-
-    return *this;
-  }
-
-  Self operator--(int)
-  {
-    Self tmp = *this;
-    --*this;
-    return tmp;
-  }
-
-};
-
-template <class T_Base>
-class List_ReverseIterator: private T_Base
-{
-public:
-  typedef typename T_Base::iterator_category iterator_category;
-  typedef typename T_Base::size_type         size_type;
-  typedef typename T_Base::difference_type   difference_type;
-
-  typedef typename T_Base::value_type        value_type;
-  typedef typename T_Base::pointer           pointer;
-  typedef typename T_Base::reference         reference;
-
-  typedef List_ReverseIterator<T_Base>    Self;
-
-  bool operator==(const Self& src) const { return T_Base::operator==(src); }
-  bool operator!=(const Self& src) const { return T_Base::operator!=(src); }
-
-  List_ReverseIterator(GList* const& head, GList* node)
-   : T_Base(head, node)
-  {}
-
-  List_ReverseIterator()
-   : T_Base()
-  {}
-
-  List_ReverseIterator(const Self& src)
-  : T_Base(src)
-  {}
-
-  List_ReverseIterator(const T_Base& src)
-  : T_Base(src)
-  { ++(*this); }
-
-
-  Self& operator++()   {T_Base::operator--(); return *this;}
-  Self& operator--()   {T_Base::operator++(); return *this;}
-  Self operator++(int) {Self src = *this; T_Base::operator--(); return src;}
-  Self operator--(int) {Self src = *this; T_Base::operator++(); return src;}
-
-  reference operator*() const { return T_Base::operator*(); }
-  pointer operator->()  const { return T_Base::operator->(); }
-};
-
-template <class T_Base>
-class List_ConstIterator: public T_Base
-{
-public:
-  typedef typename T_Base::iterator_category iterator_category;
-  typedef typename T_Base::size_type         size_type;
-  typedef typename T_Base::difference_type   difference_type;
-
-  typedef const typename T_Base::value_type  value_type;
-  typedef const typename T_Base::pointer     pointer;
-  typedef const typename T_Base::reference   reference;
-
-  typedef List_ConstIterator<T_Base> Self;
-
-  bool operator==(const Self& src) const { return T_Base::operator==(src); }
-  bool operator!=(const Self& src) const { return T_Base::operator!=(src); }
-
-  List_ConstIterator(GList* const& head, GList* node)
-  : T_Base(head, node)
-  {}
-
-  List_ConstIterator()
-  : T_Base()
-  {}
-
-  List_ConstIterator(const Self& src)
-  : T_Base(src)
-  {}
-
-  List_ConstIterator(const T_Base& src)
-  : T_Base(src)
-  {}
-
-  Self& operator++()   {T_Base::operator++(); return *this;}
-  Self& operator--()   {T_Base::operator--(); return *this;}
-  Self operator++(int) {Self src = *this; T_Base::operator++(); return src;}
-  Self operator--(int) {Self src = *this; T_Base::operator--(); return src;}
-
-  reference operator*() const { return T_Base::operator*(); }
-  pointer operator->()   const { return T_Base::operator->(); }
-};
-
-} // namespace Glib
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-#endif /* _GLIBMM_CONTAINERS_H */
-
diff --git a/libs/glibmm2/glibmm/convert.cc b/libs/glibmm2/glibmm/convert.cc
deleted file mode 100644 (file)
index 1cd334b..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/convert.h>
-#include <glibmm/private/convert_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gconvert.h>
-#include <glib/gmessages.h>
-#include <glib/gunicode.h>
-#include <glibmm/utility.h>
-
-
-namespace Glib
-{
-
-/**** Glib::IConv **********************************************************/
-
-IConv::IConv(const std::string& to_codeset, const std::string& from_codeset)
-:
-  gobject_ (g_iconv_open(to_codeset.c_str(), from_codeset.c_str()))
-{
-  if(gobject_ == reinterpret_cast<GIConv>(-1))
-  {
-    GError* error = 0;
-
-    // Abuse g_convert() to create a GError object.  This may seem a weird
-    // thing to do, but it gives us consistently translated error messages
-    // at no further cost.
-    g_convert("", 0, to_codeset.c_str(), from_codeset.c_str(), 0, 0, &error);
-
-    // If this should ever fail we're fucked.
-    g_assert(error != 0);
-
-    Error::throw_exception(error);
-  }
-}
-
-IConv::IConv(GIConv gobject)
-:
-  gobject_ (gobject)
-{}
-
-IConv::~IConv()
-{
-  g_iconv_close(gobject_);
-}
-
-size_t IConv::iconv(char** inbuf, gsize* inbytes_left, char** outbuf, gsize* outbytes_left)
-{
-  return g_iconv(gobject_, inbuf, inbytes_left, outbuf, outbytes_left);
-}
-
-void IConv::reset()
-{
-  // Apparently iconv() on Solaris <= 7 segfaults if you pass in
-  // NULL for anything but inbuf; work around that. (NULL outbuf
-  // or NULL *outbuf is allowed by Unix98.)
-
-  char* outbuf        = 0;
-  gsize inbytes_left  = 0;
-  gsize outbytes_left = 0;
-
-  g_iconv(gobject_, 0, &inbytes_left, &outbuf, &outbytes_left);
-}
-
-std::string IConv::convert(const std::string& str)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_convert_with_iconv(
-      str.data(), str.size(), gobject_, 0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get(), bytes_written);
-}
-
-
-/**** charset conversion functions *****************************************/
-
-bool get_charset()
-{
-  return g_get_charset(0);
-}
-
-bool get_charset(std::string& charset)
-{
-  const char* charset_cstr = 0;
-  const bool is_utf8 = g_get_charset(&charset_cstr);
-
-  charset = charset_cstr;
-  return is_utf8;
-}
-
-std::string convert(const std::string& str,
-                    const std::string& to_codeset,
-                    const std::string& from_codeset)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_convert(
-      str.data(), str.size(), to_codeset.c_str(), from_codeset.c_str(),
-      0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get(), bytes_written);
-}
-
-std::string convert_with_fallback(const std::string& str,
-                                  const std::string& to_codeset,
-                                  const std::string& from_codeset)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_convert_with_fallback(
-      str.data(), str.size(), to_codeset.c_str(), from_codeset.c_str(), 0,
-      0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get(), bytes_written);
-}
-
-std::string convert_with_fallback(const std::string& str,
-                                  const std::string& to_codeset,
-                                  const std::string& from_codeset,
-                                  const Glib::ustring& fallback)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_convert_with_fallback(
-      str.data(), str.size(), to_codeset.c_str(), from_codeset.c_str(),
-      const_cast<char*>(fallback.c_str()), 0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get(), bytes_written);
-}
-
-Glib::ustring locale_to_utf8(const std::string& opsys_string)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_locale_to_utf8(
-      opsys_string.data(), opsys_string.size(), 0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  const ScopedPtr<char> scoped_buf (buf);
-  return Glib::ustring(scoped_buf.get(), scoped_buf.get() + bytes_written);
-}
-
-std::string locale_from_utf8(const Glib::ustring& utf8_string)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_locale_from_utf8(
-      utf8_string.data(), utf8_string.bytes(), 0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get(), bytes_written);
-}
-
-Glib::ustring filename_to_utf8(const std::string& opsys_string)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_filename_to_utf8(
-      opsys_string.data(), opsys_string.size(), 0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  const ScopedPtr<char> scoped_buf (buf);
-  return Glib::ustring(scoped_buf.get(), scoped_buf.get() + bytes_written);
-}
-
-std::string filename_from_utf8(const Glib::ustring& utf8_string)
-{
-  gsize bytes_written = 0;
-  GError* error = 0;
-
-  char *const buf = g_filename_from_utf8(
-      utf8_string.data(), utf8_string.bytes(), 0, &bytes_written, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get(), bytes_written);
-}
-
-std::string filename_from_uri(const Glib::ustring& uri, Glib::ustring& hostname)
-{
-  char* hostname_buf = 0;
-  GError* error = 0;
-
-  char *const buf = g_filename_from_uri(uri.c_str(), &hostname_buf, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  // Let's take ownership at this point.
-  const ScopedPtr<char> scoped_buf (buf);
-
-  if(hostname_buf)
-    hostname = ScopedPtr<char>(hostname_buf).get();
-  else
-    hostname.erase();
-
-  return std::string(scoped_buf.get());
-}
-
-std::string filename_from_uri(const Glib::ustring& uri)
-{
-  GError* error = 0;
-  char *const buf = g_filename_from_uri(uri.c_str(), 0, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get());
-}
-
-Glib::ustring filename_to_uri(const std::string& filename, const Glib::ustring& hostname)
-{
-  GError* error = 0;
-  char *const buf = g_filename_to_uri(filename.c_str(), hostname.c_str(), &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return Glib::ustring(ScopedPtr<char>(buf).get());
-}
-
-Glib::ustring filename_to_uri(const std::string& filename)
-{
-  GError* error = 0;
-  char *const buf = g_filename_to_uri(filename.c_str(), 0, &error);
-
-  if(error)
-    Error::throw_exception(error);
-
-  return Glib::ustring(ScopedPtr<char>(buf).get());
-}
-
-Glib::ustring filename_display_basename(const std::string& filename)
-{
-  char *const buf = g_filename_display_basename(filename.c_str());
-  
-  return Glib::ustring(ScopedPtr<char>(buf).get());
-}
-
-
-Glib::ustring filename_display_name(const std::string& filename)
-{
-  char *const buf = g_filename_display_name(filename.c_str());
-  
-  return Glib::ustring(ScopedPtr<char>(buf).get());
-}
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::ConvertError::ConvertError(Glib::ConvertError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_CONVERT_ERROR, error_code, error_message)
-{}
-
-Glib::ConvertError::ConvertError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::ConvertError::Code Glib::ConvertError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::ConvertError::throw_func(GError* gobject)
-{
-  throw Glib::ConvertError(gobject);
-}
-
-
diff --git a/libs/glibmm2/glibmm/convert.h b/libs/glibmm2/glibmm/convert.h
deleted file mode 100644 (file)
index 335624f..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_CONVERT_H
-#define _GLIBMM_CONVERT_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glib/gtypes.h> /* for gsize */
-
-#include <glibmm/error.h>
-#include <glibmm/ustring.h>
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GIConv* GIConv; }
-#endif
-
-
-namespace Glib
-{
-
-/** @defgroup CharsetConv Character Set Conversion
- * Utility functions for converting strings between different character sets.
- * @{
- */
-
-/** Exception class for charset conversion errors.
- * Glib::convert() and friends throw a ConvertError exception if the charset
- * conversion failed for some reason.  When writing non-trivial applications
- * you should always catch those errors, and then try to recover, or tell the
- * user the input was invalid.
- */
-class ConvertError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    NO_CONVERSION,
-    ILLEGAL_SEQUENCE,
-    FAILED,
-    PARTIAL_INPUT,
-    BAD_URI,
-    NOT_ABSOLUTE_PATH
-  };
-
-  ConvertError(Code error_code, const Glib::ustring& error_message);
-  explicit ConvertError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-/** Thin %iconv() wrapper.
- * glibmm provides Glib::convert() and Glib::locale_to_utf8() which
- * are likely more convenient than the raw iconv wrappers.  However,
- * creating an IConv object once and using the convert() method could
- * be useful when converting multiple times between the same charsets.
- */
-class IConv
-{
-public:
-  /** Open new conversion descriptor.
-   * @param to_codeset Destination codeset.
-   * @param from_codeset %Source codeset.
-   * @throw Glib::ConvertError
-   */
-  IConv(const std::string& to_codeset, const std::string& from_codeset);
-
-  explicit IConv(GIConv gobject);
-
-  /** Close conversion descriptor.
-   */
-  ~IConv();
-
-  /** Same as the standard UNIX routine %iconv(), but may be implemented
-   * via libiconv on UNIX flavors that lack a native implementation.  glibmm
-   * provides Glib::convert() and Glib::locale_to_utf8() which are likely
-   * more convenient than the raw iconv wrappers.
-   * @param inbuf Bytes to convert.
-   * @param inbytes_left In/out parameter, bytes remaining to convert in @a inbuf.
-   * @param outbuf Converted output bytes.
-   * @param outbytes_left In/out parameter, bytes available to fill in @a outbuf.
-   * @return Count of non-reversible conversions, or <tt>static_cast<size_t>(-1)</tt> on error.
-   */
-  size_t iconv(char** inbuf, gsize* inbytes_left, char** outbuf, gsize* outbytes_left);
-
-  /** Reset conversion descriptor to initial state.
-   * Same as <tt>iconv(0, 0, 0, 0)</tt>, but implemented slightly differently
-   * in order to work on Sun Solaris <= 7.  It's also more obvious so you're
-   * encouraged to use it.
-   */
-  void reset();
-
-  /** Convert from one encoding to another.
-   * @param str The string to convert.
-   * @return The converted string.
-   * @throw Glib::ConvertError
-   */
-  std::string convert(const std::string& str);
-
-  GIConv gobj() { return gobject_; }
-
-private:
-  GIConv gobject_;
-
-  // noncopyable
-  IConv(const IConv&);
-  IConv& operator=(const IConv&);
-};
-
-
-/** Get the charset used by the current locale.
- * @return Whether the current locale uses the UTF-8 charset.
- */
-bool get_charset();
-
-/** Get the charset used by the current locale.
- * @param charset Will be filled with the charset's name.
- * @return Whether the current locale uses the UTF-8 charset.
- */
-bool get_charset(std::string& charset);
-
-/** Convert from one encoding to another.
- * @param str The string to convert.
- * @param to_codeset Name of the target charset.
- * @param from_codeset Name of the source charset.
- * @return The converted string.
- * @throw Glib::ConvertError
- */
-std::string convert(const std::string& str,
-                    const std::string& to_codeset,
-                    const std::string& from_codeset);
-
-/** Converts a string from one character set to another, possibly including
- * fallback sequences for characters not representable in the output.
- * Characters not in the target encoding will be represented as Unicode
- * escapes <tt>\\x{XXXX}</tt> or <tt>\\x{XXXXXX}</tt>.
- * @param str The string to convert.
- * @param to_codeset Name of the target charset.
- * @param from_codeset Name of the source charset.
- * @return The converted string.
- * @throw Glib::ConvertError
- */
-std::string convert_with_fallback(const std::string& str,
-                                  const std::string& to_codeset,
-                                  const std::string& from_codeset);
-
-/** Converts a string from one character set to another, possibly including
- * fallback sequences for characters not representable in the output.
- * @note It is not guaranteed that the specification for the fallback sequences
- * in @a fallback will be honored. Some systems may do a approximate conversion
- * from @a from_codeset to @a to_codeset in their iconv() functions, in which
- * case Glib will simply return that approximate conversion.
- *
- * @param str The string to convert.
- * @param to_codeset Name of the target charset.
- * @param from_codeset Name of the source charset.
- * @param fallback UTF-8 string to be used in place of characters which aren't
- *  available in the target encoding.  All characters in the fallback string
- *  @em must be available in the target encoding.
- * @return The converted string.
- * @throw Glib::ConvertError
- */
-std::string convert_with_fallback(const std::string& str,
-                                  const std::string& to_codeset,
-                                  const std::string& from_codeset,
-                                  const Glib::ustring& fallback);
-
-/** Convert from the current locale's encoding to UTF-8.
- * Convenience wrapper around Glib::convert().
- * @param opsys_string The string to convert.  Must be encoded in the charset
- *  used by the operating system's current locale.
- * @return The input string converted to UTF-8 encoding.
- * @throw Glib::ConvertError
- */
-Glib::ustring locale_to_utf8(const std::string& opsys_string);
-
-/** Convert from UTF-8 to the current locale's encoding.
- * Convenience wrapper around Glib::convert().
- * @param utf8_string The UTF-8 string to convert.
- * @return The input string converted to the charset used by the operating
- *  system's current locale.
- * @throw Glib::ConvertError
- */
-std::string locale_from_utf8(const Glib::ustring& utf8_string);
-
-/** Converts a string which is in the encoding used for filenames into
- * a UTF-8 string.
- * @param opsys_string A string in the encoding for filenames.
- * @return The converted string.
- * @throw Glib::ConvertError
- */
-Glib::ustring filename_to_utf8(const std::string& opsys_string);
-
-/** Converts a string from UTF-8 to the encoding used for filenames.
- * @param utf8_string A UTF-8 encoded string.
- * @return The converted string.
- * @throw Glib::ConvertError
- */
-std::string filename_from_utf8(const Glib::ustring& utf8_string);
-
-/** Converts an escaped UTF-8 encoded URI to a local filename
- * in the encoding used for filenames.
- * @param uri A string in the encoding for filenames.
- * @param hostname Location to store hostname for the URI. If there is no
- *   hostname in the URI, <tt>""</tt> will be stored in this location.
- * @return The resulting filename.
- * @throw Glib::ConvertError
- */
-std::string filename_from_uri(const Glib::ustring& uri, Glib::ustring& hostname);
-
-/** Converts an escaped UTF-8 encoded URI to a local filename in the encoding
- * used for filenames.
- * @param uri A string in the encoding for filenames.
- * @return The resulting filename.
- * @throw Glib::ConvertError
- */
-std::string filename_from_uri(const Glib::ustring& uri);
-
-/** Converts an absolute filename to an escaped UTF-8 encoded URI.
- * @param filename An absolute filename specified in the encoding used
- *   for filenames by the operating system.
- * @param hostname A UTF-8 encoded hostname.
- * @return The resulting URI.
- * @throw Glib::ConvertError
- */
-Glib::ustring filename_to_uri(const std::string& filename, const Glib::ustring& hostname);
-
-/** Converts an absolute filename to an escaped UTF-8 encoded URI.
- * @param filename An absolute filename specified in the encoding used
- *   for filenames by the operating system.
- * @return The resulting URI.
- * @throw Glib::ConvertError
- */
-Glib::ustring filename_to_uri(const std::string& filename);
-
-/** Returns the display basename for the particular filename, guaranteed
- * to be valid UTF-8. The display name might not be identical to the filename,
- * for instance there might be problems converting it to UTF-8, and some files
- * can be translated in the display
- *
- * You must pass the whole absolute pathname to this function so that
- * translation of well known locations can be done.
- *
- * This function is preferred over filename_display_name() if you know the
- * whole path, as it allows translation.
- *
- * @param filename An absolute pathname in the GLib file name encoding.
- * @result A string containing a rendition of the basename of the filename in valid UTF-8
- */
-Glib::ustring filename_display_basename(const std::string& filename);
-
-/** Converts a filename into a valid UTF-8 string. The 
- * conversion is not necessarily reversible, so you 
- * should keep the original around and use the return
- * value of this function only for display purposes.
- * Unlike g_filename_to_utf8(), the result is guaranteed 
- * to be non-empty even if the filename actually isn't in the GLib
- * file name encoding.
- *
- * If you know the whole pathname of the file you should use
- * g_filename_display_basename(), since that allows location-based
- * translation of filenames.
- *
- * @param filename: a pathname hopefully in the GLib file name encoding
- * @result A string containing a rendition of the filename in valid UTF-8.
- */
-Glib::ustring filename_display_name(const Glib::ustring& filename);
-
-/** @} group CharsetConv */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_CONVERT_H */
-
diff --git a/libs/glibmm2/glibmm/date.cc b/libs/glibmm2/glibmm/date.cc
deleted file mode 100644 (file)
index 8058376..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/date.h>
-#include <glibmm/private/date_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gmem.h>
-#include <glib/gmessages.h>
-
-#include <ctime>
-#include <algorithm>
-#include <glibmm/convert.h>
-#include <glibmm/utility.h>
-
-#include <glibmmconfig.h>
-GLIBMM_USING_STD(max)
-
-
-namespace Glib
-{
-
-Date::Date()
-{
-  g_date_clear(&gobject_, 1);
-}
-
-Date::Date(Date::Day day, Date::Month month, Date::Year year)
-{
-  g_date_clear(&gobject_, 1);
-  g_date_set_dmy(&gobject_, day, (GDateMonth) month, year);
-}
-
-Date::Date(guint32 julian_day)
-{
-  g_date_clear(&gobject_, 1);
-  g_date_set_julian(&gobject_, julian_day);
-}
-
-Date::Date(const GDate& castitem)
-:
-  gobject_ (castitem)
-{}
-
-void Date::clear()
-{
-  g_date_clear(&gobject_, 1);
-}
-
-void Date::set_parse(const Glib::ustring& str)
-{
-  g_date_set_parse(&gobject_, str.c_str());
-}
-
-void Date::set_time(GTime time)
-{
-  g_date_set_time(&gobject_, time);
-}
-
-void Date::set_month(Date::Month month)
-{
-  g_date_set_month(&gobject_, (GDateMonth) month);
-}
-
-void Date::set_day(Date::Day day)
-{
-  g_date_set_day(&gobject_, day);
-}
-
-void Date::set_year(Date::Year year)
-{
-  g_date_set_year(&gobject_, year);
-}
-
-void Date::set_dmy(Date::Day day, Date::Month month, Date::Year year)
-{
-  g_date_set_dmy(&gobject_, day, (GDateMonth) month, year);
-}
-
-void Date::set_julian(guint32 julian_day)
-{
-  g_date_set_julian(&gobject_, julian_day);
-}
-
-Date& Date::add_days(int n_days)
-{
-  if(n_days >= 0)
-    g_date_add_days(&gobject_, n_days);
-  else
-    g_date_subtract_days(&gobject_, -n_days);
-  return *this;
-}
-
-Date& Date::subtract_days(int n_days)
-{
-  if(n_days >= 0)
-    g_date_subtract_days(&gobject_, n_days);
-  else
-    g_date_add_days(&gobject_, -n_days);
-  return *this;
-}
-
-Date& Date::add_months(int n_months)
-{
-  if(n_months >= 0)
-    g_date_add_months(&gobject_, n_months);
-  else
-    g_date_subtract_months(&gobject_, -n_months);
-  return *this;
-}
-
-Date& Date::subtract_months(int n_months)
-{
-  if(n_months >= 0)
-    g_date_subtract_months(&gobject_, n_months);
-  else
-    g_date_add_months(&gobject_, -n_months);
-  return *this;
-}
-
-Date& Date::add_years(int n_years)
-{
-  if(n_years >= 0)
-    g_date_add_years(&gobject_, n_years);
-  else
-    g_date_subtract_years(&gobject_, -n_years);
-  return *this;
-}
-
-Date& Date::subtract_years(int n_years)
-{
-  if(n_years >= 0)
-    g_date_subtract_years(&gobject_, n_years);
-  else
-    g_date_add_years(&gobject_, -n_years);
-  return *this;
-}
-
-int Date::days_between(const Date& rhs) const
-{
-  return g_date_days_between(&gobject_, &rhs.gobject_);
-}
-
-int Date::compare(const Date& rhs) const
-{
-  return g_date_compare(&gobject_, &rhs.gobject_);
-}
-
-Date& Date::clamp(const Date& min_date, const Date& max_date)
-{
-  g_date_clamp(&gobject_, &min_date.gobject_, &max_date.gobject_);
-  return *this;
-}
-
-Date& Date::clamp_min(const Date& min_date)
-{
-  g_date_clamp(&gobject_, &min_date.gobject_, 0 /* see the C docs */);
-  return *this;
-}
-
-Date& Date::clamp_max(const Date& max_date)
-{
-  g_date_clamp(&gobject_, 0 /* see the C docs */, &max_date.gobject_);
-  return *this;
-}
-
-void Date::order(Date& other)
-{
-  g_date_order(&gobject_, &other.gobject_);
-}
-
-Date::Weekday Date::get_weekday() const
-{
-  return (Date::Weekday) g_date_get_weekday(&gobject_);
-}
-
-Date::Month Date::get_month() const
-{
-  return (Date::Month) g_date_get_month(&gobject_);
-}
-
-Date::Year Date::get_year() const
-{
-  return g_date_get_year(&gobject_);
-}
-
-Date::Day Date::get_day() const
-{
-  return g_date_get_day(&gobject_);
-}
-
-guint32 Date::get_julian() const
-{
-  return g_date_get_julian(&gobject_);
-}
-
-unsigned int Date::get_day_of_year() const
-{
-  return g_date_get_day_of_year(&gobject_);
-}
-
-unsigned int Date::get_monday_week_of_year() const
-{
-  return g_date_get_monday_week_of_year(&gobject_);
-}
-
-unsigned int Date::get_sunday_week_of_year() const
-{
-  return g_date_get_sunday_week_of_year(&gobject_);
-}
-
-bool Date::is_first_of_month() const
-{
-  return g_date_is_first_of_month(&gobject_);
-}
-
-bool Date::is_last_of_month() const
-{
-  return g_date_is_last_of_month(&gobject_);
-}
-
-//static
-guint8 Date::get_days_in_month(Date::Month month, Date::Year year)
-{
-  return g_date_get_days_in_month((GDateMonth) month, year);
-}
-
-//static
-guint8 Date::get_monday_weeks_in_year(Date::Year year)
-{
-  return g_date_get_monday_weeks_in_year(year);
-}
-
-//static
-guint8 Date::get_sunday_weeks_in_year(Date::Year year)
-{
-  return g_date_get_sunday_weeks_in_year(year);
-}
-
-//static
-bool Date::is_leap_year(Date::Year year)
-{
-  return g_date_is_leap_year(year);
-}
-
-Glib::ustring Date::format_string(const Glib::ustring& format) const
-{
-  struct tm tm_data;
-  g_date_to_struct_tm(&gobject_, &tm_data);
-
-  const std::string locale_format = locale_from_utf8(format);
-  gsize bufsize = std::max<gsize>(2 * locale_format.size(), 128);
-
-  do
-  {
-    const ScopedPtr<char> buf (static_cast<char*>(g_malloc(bufsize)));
-
-    // Set the first byte to something other than '\0', to be able to
-    // recognize whether strftime actually failed or just returned "".
-    buf.get()[0] = '\1';
-    const gsize len = strftime(buf.get(), bufsize, locale_format.c_str(), &tm_data);
-
-    if(len != 0 || buf.get()[0] == '\0')
-    {
-      g_assert(len < bufsize);
-      return locale_to_utf8(std::string(buf.get(), len));
-    }
-  }
-  while((bufsize *= 2) <= 65536);
-
-  // This error is quite unlikely (unless strftime is buggy).
-  g_warning("Glib::Date::format_string(): maximum size of strftime buffer exceeded, giving up");
-
-  return Glib::ustring();
-}
-
-void Date::to_struct_tm(struct tm& dest) const
-{
-  g_date_to_struct_tm(&gobject_, &dest);
-}
-
-bool Date::valid() const
-{
-  return g_date_valid(&gobject_);
-}
-
-//static
-bool Date::valid_day(Date::Day day)
-{
-  return g_date_valid_day(day);
-}
-
-//static
-bool Date::valid_month(Date::Month month)
-{
-  return g_date_valid_month((GDateMonth) month);
-}
-
-//static
-bool Date::valid_year(Date::Year year)
-{
-  return g_date_valid_year(year);
-}
-
-//static
-bool Date::valid_weekday(Date::Weekday weekday)
-{
-  return g_date_valid_weekday((GDateWeekday) weekday);
-}
-
-//static
-bool Date::valid_julian(guint32 julian_day)
-{
-  return g_date_valid_julian(julian_day);
-}
-
-//static
-bool Date::valid_dmy(Date::Day day, Date::Month month, Date::Year year)
-{
-  return g_date_valid_dmy(day, (GDateMonth) month, year);
-}
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
diff --git a/libs/glibmm2/glibmm/date.h b/libs/glibmm2/glibmm/date.h
deleted file mode 100644 (file)
index 341a641..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_DATE_H
-#define _GLIBMM_DATE_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmm/ustring.h>
-
-#include <glib/gdate.h>
-#include <glib/gtypes.h>
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { struct tm; }
-#endif
-
-
-namespace Glib
-{
-
-/** Julian calendar date.
- */
-class Date
-{
-public:
-  typedef guint8  Day;
-  typedef guint16 Year;
-
-  /** @addtogroup glibmmEnums Enums and Flags */
-
-/**
- * @ingroup glibmmEnums
- */
-enum Month
-{
-  BAD_MONTH,
-  JANUARY,
-  FEBRUARY,
-  MARCH,
-  APRIL,
-  MAY,
-  JUNE,
-  JULY,
-  AUGUST,
-  SEPTEMBER,
-  OCTOBER,
-  NOVEMBER,
-  DECEMBER
-};
-
-
-  /**
- * @ingroup glibmmEnums
- */
-enum Weekday
-{
-  BAD_WEEKDAY,
-  MONDAY,
-  TUESDAY,
-  WEDNESDAY,
-  THURSDAY,
-  FRIDAY,
-  SATURDAY,
-  SUNDAY
-};
-
-
-  /**
- * @ingroup glibmmEnums
- */
-enum DMY
-{
-  DAY,
-  MONTH,
-  YEAR
-};
-
-
-  static const Day     BAD_DAY    = 0;
-  static const Year    BAD_YEAR   = 0;
-  static const guint32 BAD_JULIAN = 0;
-
-  Date();
-  Date(Day day, Month month, Year year);
-  explicit Date(guint32 julian_day);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  explicit Date(const GDate& castitem);
-#endif
-
-  void clear();
-  /** Clear the date. The cleared dates will not represent an existing date, but will not contain garbage.
-   * @param month Month to set.
-   */
-
-  /** Parses a user-inputted string str, and try to figure out what date it represents, taking the current locale into account. If the string is successfully parsed, the date will be valid after the call. Otherwise, it will be invalid.   
-   * This function is not appropriate for file formats and the like; it isn't very precise, and its exact behavior varies with the locale. It's intended to be a heuristic routine that guesses what the user means by a given string (and it does work pretty well in that capacity).   
-   * @param str String to parse.
-   */
-  void set_parse (const Glib::ustring& str);
-
-  //TODO: Add set_time_current() - see the docs comment below.?
-  /** Sets the value of a date from a GTime (time_t) value. 
-   * To set the value of a date to the current day, you could write:
-   *
-   *set_time(time(NULL));
-   *
-   * @param time GTime value to set.
-   */
-  void set_time(GTime time);
-
-  /** Sets the month of the year. If the resulting day-month-year triplet is invalid, the date will be invalid.
-   * @param month Month to set.
-   */
-  void set_month(Month month);
-
-  /** Sets the day of the month. If the resulting day-month-year triplet is invalid, the date will be invalid.
-   * @param day Day to set.
-   */
-  void set_day(Day day);
-
-  /** Sets the year. If the resulting day-month-year triplet is invalid, the date will be invalid.
-   * @param year Year to set.
-   */
-  void set_year(Year year);
-
-  /** Sets the value of a day, month, and year.. If the resulting day-month-year triplet is invalid, the date will be invalid.
-   * @param day Day to set.
-   * @param month Month to set.
-   * @param year Year to set.
-   */
-  void set_dmy(Day day, Month month, Year year);
-
-  /** Sets the value of a GDate from a Julian day number.
-   * @param julian_day Julian day to set.
-   */
-   void set_julian(guint32 julian_day);
-
-  //TODO: Why return Date& (which is always *this) from these methods?
-  //Isn't it enough to also change the current instance?
-  //Maybe we need a copy constructor too.
-  //murrayc
-  
-  /** Add a number of days to a Date.
-   * @param n_days Days to add.
-   * @return Resulting Date
-   */
-  Date& add_days(int n_days);
-
-  /** Subtract n_days to a Date.
-   * @param n_days Days to subtract.
-   * @return Resulting Date
-   */
-  Date& subtract_days(int n_days);
-
-  /** Add n_months to a Date.
-   * @param n_months Months to add.
-   * @return Resulting Date
-   */
-  Date& add_months(int n_months);
-
-  /** Subtract n_months to a Date.
-   * @param n_months Months to subtract.
-   * @return Resulting Date
-   */
-  Date& subtract_months(int n_months);
-
-  /** Add n_days to a Date.
-   * @param n_years Years to add.
-   * @return Resulting Date
-   */
-  Date& add_years(int n_years);
-
-  /** Subtract n_years to a Date.
-   * @param n_years Years to subtract.
-   * @return Resulting Date
-   */
-  Date& subtract_years(int n_years);
-
-  /** Calculate days between two dates.
-   * @param rhs Date.
-   * @return Numbers of days.
-   */
-  int days_between(const Date& rhs) const;
-
-  /** Compare two dates.
-   * @param rhs Date to compare.
-   * @return Result of comparition.
-   */
-  int compare(const Date& rhs) const;
-
-  /** If date is prior to min_date, sets date equal to min_date. 
-   * If date falls after max_date, sets date equal to max_date. All dates must be valid.
-   * See also clamp_min() and clamp_max(). 
-   * @param min_date Date minimum value.
-   * @param max_date Date maximum value.
-   * @return Date in interval.
-   */
-  Date& clamp(const Date& min_date, const Date& max_date);
-
-  /** If date is prior to min_date, sets date equal to min_date.
-   * See also clamp(), and clamp_max().
-   * @param min_date Date minimum value.
-   * @return Date in interval.
-   */
-  Date& clamp_min(const Date& min_date);
-
-  /** If date falls after max_date, sets date equal to max_date.
-   * See also clamp(), and clamp_min().
-   * @param max_date Date maximum value.
-   * @return Date in interval.
-   */
-  Date& clamp_max(const Date& max_date);
-  
-  /** Checks if date is less than or equal to other date, and swap the values if this is not the case.
-   * @param other Date ro compare.
-   * @return Date.
-   */
-  void order(Date& other);
-
-  /** Returns the day of the week for a Date. The date must be valid.
-   * @return Day of the week as a Date::Weekday.
-   */
-  Weekday get_weekday() const;
-
-  /** Returns the month of the year. The date must be valid.
-   * @return Month of the year as a Date::Month. 
-   */
-  Month        get_month()               const;
-
-  /** Returns the year of a Date. The date must be valid.
-   * @return Year in which the date falls.
-   */
-  Year         get_year()                const;
-
-  /** Returns the day of the month. The date must be valid.
-   * @return Day of the month..
-   */
-  Day          get_day()                 const;
-
-  /** Returns the Julian day or "serial number" of the Date. 
-   * The Julian day is simply the number of days since January 1, Year 1; 
-   * i.e., January 1, Year 1 is Julian day 1; January 2, Year 1 is Julian day 2, etc. 
-   * The date must be valid.
-   * @return Julian day.
-   */
-  guint32      get_julian()              const;
-
-  /** Returns the day of the year, where Jan 1 is the first day of the year.
-   * The date must be valid.
-   * @return Julian day.
-   */
-  unsigned int get_day_of_year()         const;
-
-  /** Returns the week of the year, where weeks are understood to start on Monday. 
-   * If the date is before the first Monday of the year, return 0. 
-   * The date must be valid.
-   * @return Week of the year.
-   */
-  unsigned int get_monday_week_of_year() const;
-
-  /** Returns the week of the year during which this date falls, if weeks are understood to being on Sunday. 
-   * Can return 0 if the day is before the first Sunday of the year.
-   * The date must be valid.
-   * @return Week of the year.
-   */
-  unsigned int get_sunday_week_of_year() const;
-
-  /** Returns true if the date is on the first of a month. 
-   * The date must be valid.
-   * @return true if the date is the first of the month. 
-   */
-  bool         is_first_of_month()       const;
-
-  /** Returns true if the date is the last day of the month.
-   * The date must be valid.
-   * @return true if the date is the last day of the month.
-   */
-  bool         is_last_of_month()        const;
-
-  /** Returns the number of days in a month, taking leap years into account.
-   * @param month Month.
-   * @param year Year.
-   * @return Number of days in month during the year.
-   */
-  static guint8 get_days_in_month(Month month, Year year);
-
-  /** Returns the number of weeks in the year, where weeks are taken to start on Monday. Will be 52 or 53. 
-   * (Years always have 52 7-day periods, plus 1 or 2 extra days depending on whether it's a leap year. This function is basically telling you how many Mondays are in the year, i.e. there are 53 Mondays if one of the extra days happens to be a Monday.)
-   * @param year Year to count weeks in.
-   * @return Number of weeks.
-   */
-  static guint8 get_monday_weeks_in_year(Year year);
-
-  /** Returns the number of weeks in the year, where weeks are taken to start on Sunday. Will be 52 or 53. 
-   * (Years always have 52 7-day periods, plus 1 or 2 extra days depending on whether it's a leap year. This function is basically telling you how many Sundays are in the year, i.e. there are 53 Sundays if one of the extra days happens to be a Sunday.)
-   * @param year Year to count weeks in.
-   * @return Number of weeks.
-   */
-  static guint8 get_sunday_weeks_in_year(Year year);
-
-  /** Returns true if the year is a leap year.
-   * @param year Year to check.
-   * @return true if the year is a leap year.
-   */
-  static bool   is_leap_year(Year year);
-
-  /** Convert date to string.
-   * @param format A format string as used by @c strftime(), in UTF-8
-   * encoding.  Only date formats are allowed, the result of time formats
-   * is undefined.
-   * @return The formatted date string.
-   * @throw Glib::ConvertError
-   */
-  Glib::ustring format_string(const Glib::ustring& format) const;
-
-  /** Fills in the date-related bits of a struct tm using the date value. Initializes the non-date parts with something sane but meaningless.
-   * @param dest Struct tm to fill.
-   */
-  void to_struct_tm(struct tm& dest) const;
-
-  /** Returns true if the Date represents an existing day. 
-   * @return true if the date is valid.
-   */
-  bool valid() const;
-
-  /** Returns true if the day of the month is valid (a day is valid if it's between 1 and 31 inclusive).
-   * @param day Day to check.
-   * @return true if the day is valid.
-   */
-  static bool valid_day(Day day);
-
-  /** Returns true if the month value is valid. The 12 Date::Month enumeration values are the only valid months.
-   * @param month Month to check.
-   * @return true if the month is valid.
-   */
-  static bool valid_month(Month month);
-
-
-  /** Returns true if the year is valid. 
-   * Any year greater than 0 is valid, though there is a 16-bit limit to what Date will understand.
-   * @param year Year to check.
-   * @return true if the year is valid.
-   */
-  static bool valid_year(Year year);
-
-  /** Returns true if the weekday is valid. 
-   * The 7 Date::Weekday enumeration values are the only valid.
-   * @param weekday Weekday to check.
-   * @return true if the weekday is valid.
-   */
-  static bool valid_weekday(Weekday weekday);
-
-  /** Returns true if the Julian day is valid. 
-   * Anything greater than zero is basically a valid Julian, though there is a 32-bit limit.
-   * @param julian_day Julian day to check.
-   * @return true if the Julian day is valid.
-   */
-  static bool valid_julian(guint32 julian_day);
-
-
-  /** Returns true if the day-month-year triplet forms a valid, existing day in the range of days Date understands (Year 1 or later, no more than a few thousand years in the future).
-   * @param day Day to check.
-   * @param month Month to check.
-   * @param year Year to check.
-   * @return true if the date is a valid one. 
-   */
-  static bool valid_dmy(Day day, Month month, Year year);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GDate*       gobj()       { return &gobject_; }
-  const GDate* gobj() const { return &gobject_; }
-#endif
-
-private:
-  GDate gobject_;
-};
-
-
-/** @relates Glib::Date */
-inline bool operator==(const Date& lhs, const Date& rhs)
-  { return (lhs.compare(rhs) == 0); }
-
-/** @relates Glib::Date */
-inline bool operator!=(const Date& lhs, const Date& rhs)
-  { return (lhs.compare(rhs) != 0); }
-
-/** @relates Glib::Date */
-inline bool operator<(const Date& lhs, const Date& rhs)
-  { return (lhs.compare(rhs) < 0); }
-
-/** @relates Glib::Date */
-inline bool operator>(const Date& lhs, const Date& rhs)
-  { return (lhs.compare(rhs) > 0); }
-
-/** @relates Glib::Date */
-inline bool operator<=(const Date& lhs, const Date& rhs)
-  { return (lhs.compare(rhs) <= 0); }
-
-/** @relates Glib::Date */
-inline bool operator>=(const Date& lhs, const Date& rhs)
-  { return (lhs.compare(rhs) >= 0); }
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_DATE_H */
-
diff --git a/libs/glibmm2/glibmm/debug.cc b/libs/glibmm2/glibmm/debug.cc
deleted file mode 100644 (file)
index de181eb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/debug.h>
-
diff --git a/libs/glibmm2/glibmm/debug.h b/libs/glibmm2/glibmm/debug.h
deleted file mode 100644 (file)
index 556b16f..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_DEBUG_H
-#define _GLIBMM_DEBUG_H
-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gmacros.h>
-#include <glibmmconfig.h>
-
-// Some stuff that's useful when debugging gtkmm internals:
-
-#ifdef GLIBMM_DEBUG_REFCOUNTING
-
-#include <glib/gmessages.h>
-
-/* We can't use G_GNUC_PRETTY_FUNCTION because it's always disabled in C++,
- * even though __PRETTY_FUNCTION__ works fine in C++ as well if you use it
- * right (i.e. concatenation with string literals isn't allowed).
- */
-#ifdef __GNUC__
-#define GLIBMM_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
-#else
-#define GLIBMM_GNUC_PRETTY_FUNCTION ""
-#endif
-
-#define GLIBMM_DEBUG_REFERENCE(cppInstance, cInstance)                               \
-    G_STMT_START{                                                                   \
-      void *const cppInstance__ = (void*) (cppInstance);                            \
-      void *const cInstance__   = (void*) (cInstance);                              \
-      g_log(G_LOG_DOMAIN,                                                           \
-            G_LOG_LEVEL_DEBUG,                                                      \
-            "file %s: line %d (%s):\n"                                              \
-            "ref: C++ instance: %p; C instance: %p, ref_count = %u, type = %s\n",   \
-            __FILE__,                                                               \
-            __LINE__,                                                               \
-            GLIBMM_GNUC_PRETTY_FUNCTION,                                             \
-            cppInstance__,                                                          \
-            cInstance__,                                                            \
-            G_OBJECT(cInstance__)->ref_count,                                       \
-            G_OBJECT_TYPE_NAME(cInstance__));                                       \
-    }G_STMT_END
-
-#define GLIBMM_DEBUG_UNREFERENCE(cppInstance, cInstance)                             \
-    G_STMT_START{                                                                   \
-      void *const cppInstance__ = (void*) (cppInstance);                            \
-      void *const cInstance__   = (void*) (cInstance);                              \
-      g_log(G_LOG_DOMAIN,                                                           \
-            G_LOG_LEVEL_DEBUG,                                                      \
-            "file %s: line %d (%s):\n"                                              \
-            "unref: C++ instance: %p; C instance: %p, ref_count = %u, type = %s\n", \
-            __FILE__,                                                               \
-            __LINE__,                                                               \
-            GLIBMM_GNUC_PRETTY_FUNCTION,                                             \
-            cppInstance__,                                                          \
-            cInstance__,                                                            \
-            G_OBJECT(cInstance__)->ref_count,                                       \
-            G_OBJECT_TYPE_NAME(cInstance__));                                       \
-    }G_STMT_END
-
-#else
-
-#define GLIBMM_DEBUG_REFERENCE(cppInstance,cInstance)    G_STMT_START{ (void)0; }G_STMT_END
-#define GLIBMM_DEBUG_UNREFERENCE(cppInstance,cInstance)  G_STMT_START{ (void)0; }G_STMT_END
-
-#endif /* GLIBMM_DEBUG_REFCOUNTING */
-
-#endif /* _GLIBMM_DEBUG_H */
-
diff --git a/libs/glibmm2/glibmm/dispatcher.cc b/libs/glibmm2/glibmm/dispatcher.cc
deleted file mode 100644 (file)
index 15c63ae..0000000
+++ /dev/null
@@ -1,442 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/dispatcher.h>
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/fileutils.h>
-#include <glibmm/main.h>
-#include <glibmm/thread.h>
-
-#include <cerrno>
-#include <fcntl.h>
-#include <glib.h>
-
-#ifndef G_OS_WIN32
-#include <unistd.h>
-
-#if defined(_tru64) //TODO: Use the real define
-//EINTR is not defined on Tru64
-//I have tried including these
-//#include <sys/types.h>
-//#include <sys/statvfs.h>
-//#include <signal.h>
-  #ifndef EINTR
-  #define EINTR 0
-  #endif
-#endif
-
-#else
-#include <windows.h>
-#include <io.h>
-#include <direct.h>
-#include <list>
-#endif /* G_OS_WIN32 */
-
-
-namespace
-{
-
-struct DispatchNotifyData
-{
-  unsigned long           tag;
-  Glib::Dispatcher*       dispatcher;
-  Glib::DispatchNotifier* notifier;
-
-  DispatchNotifyData()
-    : tag (0), dispatcher (0), notifier (0) {}
-
-  DispatchNotifyData(unsigned long tag_, Glib::Dispatcher* dispatcher_, Glib::DispatchNotifier* notifier_)
-    : tag (tag_), dispatcher (dispatcher_), notifier (notifier_) {}
-};
-
-static void warn_failed_pipe_io(const char* what, int err_no)
-{
-#ifdef G_OS_WIN32
-  const char *const message = g_win32_error_message(err_no);
-#else
-  const char *const message = g_strerror(err_no);
-#endif
-  g_critical("Error in inter-thread communication: %s() failed: %s", what, message);
-}
-
-#ifndef G_OS_WIN32
-/*
- * Try to set the close-on-exec flag of the file descriptor,
- * so that it won't be leaked if a new process is spawned.
- */
-static void fd_set_close_on_exec(int fd)
-{
-  const int flags = fcntl(fd, F_GETFD, 0);
-  g_return_if_fail(flags >= 0);
-
-  fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
-}
-#endif /* !G_OS_WIN32 */
-
-/*
- * One word: paranoia.
- */
-#ifdef G_OS_WIN32
-static void fd_close_and_invalidate(HANDLE& fd)
-{
-  if(fd != 0)
-  {
-    if(!CloseHandle(fd))
-      warn_failed_pipe_io("CloseHandle", GetLastError());
-
-    fd = 0;
-  }
-}
-#else /* !G_OS_WIN32 */
-static void fd_close_and_invalidate(int& fd)
-{
-  if(fd >= 0)
-  {
-    int result;
-
-    do
-      result = close(fd);
-    while(result < 0 && errno == EINTR);
-
-    if(result < 0)
-      warn_failed_pipe_io("close", errno);
-
-    fd = -1;
-  }
-}
-#endif /* !G_OS_WIN32 */
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-class DispatchNotifier
-{
-public:
-  ~DispatchNotifier();
-
-  static DispatchNotifier* reference_instance(const Glib::RefPtr<MainContext>& context);
-  static void unreference_instance(DispatchNotifier* notifier);
-
-  void send_notification(Dispatcher* dispatcher);
-
-protected:
-  // Only used by reference_instance().  Should be private, but that triggers
-  // a silly gcc warning even though DispatchNotifier has static methods.
-  explicit DispatchNotifier(const Glib::RefPtr<MainContext>& context);
-
-private:
-  static Glib::StaticPrivate<DispatchNotifier> thread_specific_instance_;
-
-  Glib::RefPtr<MainContext> context_;
-  int                       ref_count_;
-#ifdef G_OS_WIN32
-  HANDLE                        fd_receiver_;
-  Glib::Mutex                   mutex_;
-  std::list<DispatchNotifyData> notify_queue_;
-#else
-  int                       fd_receiver_;
-  int                       fd_sender_;
-#endif /* !G_OS_WIN32 */
-  sigc::connection          conn_io_handler_;
-
-  void create_pipe();
-  bool pipe_io_handler(Glib::IOCondition condition);
-
-  // noncopyable
-  DispatchNotifier(const DispatchNotifier&);
-  DispatchNotifier& operator=(const DispatchNotifier&);
-};
-
-
-/**** Glib::DispatchNotifier ***********************************************/
-
-Glib::StaticPrivate<DispatchNotifier>
-DispatchNotifier::thread_specific_instance_ = GLIBMM_STATIC_PRIVATE_INIT;
-
-DispatchNotifier::DispatchNotifier(const Glib::RefPtr<MainContext>& context)
-:
-  context_      (context),
-  ref_count_    (0),
-#ifdef G_OS_WIN32
-  fd_receiver_  (0),
-  mutex_        (),
-  notify_queue_ ()
-#else
-  fd_receiver_  (-1),
-  fd_sender_    (-1)
-#endif
-{
-  create_pipe();
-
-  try
-  {
-#ifdef G_OS_WIN32
-    conn_io_handler_ = context_->signal_io().connect(
-        sigc::mem_fun(*this, &DispatchNotifier::pipe_io_handler),
-        GPOINTER_TO_INT(fd_receiver_), Glib::IO_IN);
-#else /* !G_OS_WIN32 */
-    conn_io_handler_ = context_->signal_io().connect(
-        sigc::mem_fun(*this, &DispatchNotifier::pipe_io_handler),
-        fd_receiver_, Glib::IO_IN);
-#endif /* !G_OS_WIN32 */
-  }
-  catch(...)
-  {
-#ifndef G_OS_WIN32
-    fd_close_and_invalidate(fd_sender_);
-#endif /* !G_OS_WIN32 */
-    fd_close_and_invalidate(fd_receiver_);
-
-    throw;
-  }
-}
-
-DispatchNotifier::~DispatchNotifier()
-{
-  // Disconnect manually because we don't inherit from sigc::trackable
-  conn_io_handler_.disconnect();
-
-#ifndef G_OS_WIN32
-  fd_close_and_invalidate(fd_sender_);
-#endif /* !G_OS_WIN32 */
-  fd_close_and_invalidate(fd_receiver_);
-}
-
-void DispatchNotifier::create_pipe()
-{
-#ifdef G_OS_WIN32
-  // On Win32 we are using synchronization object instead of pipe
-  // thus storing its handle as fd_receiver_.
-  fd_receiver_ = CreateEvent(0, FALSE, FALSE, 0);
-
-  if(!fd_receiver_)
-  {
-    GError* const error = g_error_new(G_FILE_ERROR, G_FILE_ERROR_FAILED,
-                                      "Failed to create event for inter-thread communication: %s",
-                                      g_win32_error_message(GetLastError()));
-    throw Glib::FileError(error);
-  }
-#else /* !G_OS_WIN32 */
-  int filedes[2] = { -1, -1 };
-
-  if(pipe(filedes) < 0)
-  {
-    GError* const error = g_error_new(G_FILE_ERROR, g_file_error_from_errno(errno),
-                                      "Failed to create pipe for inter-thread communication: %s",
-                                      g_strerror(errno));
-    throw Glib::FileError(error);
-  }
-
-  fd_set_close_on_exec(filedes[0]);
-  fd_set_close_on_exec(filedes[1]);
-
-  fd_receiver_ = filedes[0];
-  fd_sender_   = filedes[1];
-#endif /* !G_OS_WIN32 */
-}
-
-// static
-DispatchNotifier* DispatchNotifier::reference_instance(const Glib::RefPtr<MainContext>& context)
-{
-  DispatchNotifier* instance = thread_specific_instance_.get();
-
-  if(!instance)
-  {
-    instance = new DispatchNotifier(context);
-    thread_specific_instance_.set(instance);
-  }
-  else
-  {
-    // Prevent massive mess-up.
-    g_return_val_if_fail(instance->context_ == context, 0);
-  }
-
-  ++instance->ref_count_; // initially 0
-
-  return instance;
-}
-
-// static
-void DispatchNotifier::unreference_instance(DispatchNotifier* notifier)
-{
-  DispatchNotifier *const instance = thread_specific_instance_.get();
-
-  // Yes, the notifier argument is only used to check for sanity.
-  g_return_if_fail(instance == notifier);
-
-  if(--instance->ref_count_ <= 0)
-  {
-    g_return_if_fail(instance->ref_count_ == 0); // could be < 0 if messed up
-
-    // This will cause deletion of the notifier object.
-    thread_specific_instance_.set(0);
-  }
-}
-
-void DispatchNotifier::send_notification(Dispatcher* dispatcher)
-{
-#ifdef G_OS_WIN32
-  {
-    Glib::Mutex::Lock lock (mutex_);
-    notify_queue_.push_back(DispatchNotifyData(0xdeadbeef, dispatcher, this));
-  }
-
-  // Send notification event to GUI-thread.
-  if(!SetEvent(fd_receiver_))
-  {
-    warn_failed_pipe_io("SetEvent", GetLastError());
-    return;
-  }
-#else /* !G_OS_WIN32 */
-  DispatchNotifyData data (0xdeadbeef, dispatcher, this);
-  gssize n_written;
-
-  do
-    n_written = write(fd_sender_, &data, sizeof(data));
-  while(n_written < 0 && errno == EINTR);
-
-  if(n_written < 0)
-  {
-    warn_failed_pipe_io("write", errno);
-    return;
-  }
-
-  // All data must be written in a single call to write(), otherwise we can't
-  // guarantee reentrancy since another thread might be scheduled between two
-  // write() calls.  The manpage is a bit unclear about this -- but I hope
-  // it's safe to assume immediate success for the tiny amount of data we're
-  // writing.
-  g_return_if_fail(n_written == sizeof(data));
-#endif /* !G_OS_WIN32 */
-}
-
-bool DispatchNotifier::pipe_io_handler(Glib::IOCondition)
-{
-#ifdef G_OS_WIN32
-  DispatchNotifyData data;
-
-  for(;;)
-  {
-    {
-      Glib::Mutex::Lock lock (mutex_);
-
-      if(notify_queue_.empty())
-        break;
-
-      data = notify_queue_.front();
-      notify_queue_.pop_front();
-    }
-
-    g_return_val_if_fail(data.tag == 0xdeadbeef, true);
-    g_return_val_if_fail(data.notifier == this,  true);
-
-    // Actually, we wouldn't need the try/catch block because the Glib::Source
-    // C callback already does it for us.  However, we do it anyway because the
-    // default return value is 'false', which is not what we want.
-    try
-    {
-      data.dispatcher->signal_();
-    }
-    catch(...)
-    {
-      Glib::exception_handlers_invoke();
-    }
-  }
-#else /* !G_OS_WIN32 */
-  DispatchNotifyData data;
-  gsize n_read = 0;
-
-  do
-  {
-    void * const buffer = reinterpret_cast<guint8*>(&data) + n_read;
-    const gssize result = read(fd_receiver_, buffer, sizeof(data) - n_read);
-
-    if(result < 0)
-    {
-      if(errno == EINTR)
-        continue;
-
-      warn_failed_pipe_io("read", errno);
-      return true;
-    }
-
-    n_read += result;
-  }
-  while(n_read < sizeof(data));
-
-  g_return_val_if_fail(data.tag == 0xdeadbeef, true);
-  g_return_val_if_fail(data.notifier == this,  true);
-
-  // Actually, we wouldn't need the try/catch block because the Glib::Source
-  // C callback already does it for us.  However, we do it anyway because the
-  // default return value is 'false', which is not what we want.
-  try
-  {
-    data.dispatcher->signal_(); // emit
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-#endif /* !G_OS_WIN32 */
-
-  return true;
-}
-
-
-/**** Glib::Dispatcher *****************************************************/
-
-Dispatcher::Dispatcher()
-:
-  signal_   (),
-  notifier_ (DispatchNotifier::reference_instance(MainContext::get_default()))
-{}
-
-Dispatcher::Dispatcher(const Glib::RefPtr<MainContext>& context)
-:
-  signal_   (),
-  notifier_ (DispatchNotifier::reference_instance(context))
-{}
-
-Dispatcher::~Dispatcher()
-{
-  DispatchNotifier::unreference_instance(notifier_);
-}
-
-void Dispatcher::emit()
-{
-  notifier_->send_notification(this);
-}
-
-void Dispatcher::operator()()
-{
-  emit();
-}
-
-sigc::connection Dispatcher::connect(const sigc::slot<void>& slot)
-{
-  return signal_.connect(slot);
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/dispatcher.h b/libs/glibmm2/glibmm/dispatcher.h
deleted file mode 100644 (file)
index cecf606..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_DISPATCHER_H
-#define _GLIBMM_DISPATCHER_H
-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <sigc++/sigc++.h>
-#include <glibmm/main.h>
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-class DispatchNotifier;
-#endif
-
-/** Signal class for inter-thread communication.
- * @ingroup Threads
- * Glib::Dispatcher works similar to sigc::signal<void>.  But unlike normal
- * signals, the notification happens asynchronously through a pipe.  This is
- * a simple and efficient way of communicating between threads, and especially
- * useful in a thread model with a single GUI thread.
- *
- * No mutex locking is involved, apart from the operating system's internal
- * I/O locking.  That implies some usage rules:
- *
- * @li Only one thread may connect to the signal and receive notification, but
- * multiple senders are allowed even without locking.
- * @li The GLib main loop must run in the receiving thread (this will be the
- * GUI thread usually).
- * @li The Dispatcher object must be instantiated by the receiver thread.
- * @li The Dispatcher object should be instantiated before creating any of the
- * sender threads, if you want to avoid extra locking.
- *
- * Notes about performance:
- *
- * @li After instantiation, Glib::Dispatcher will never lock any mutexes on its
- * own.  The interaction with the GLib main loop might involve locking on the
- * @em receiver side.  The @em sender side, however, is guaranteed not to lock,
- * except for internal locking in the <tt>%write()</tt> system call.
- * @li All Dispatcher instances of a receiver thread share the same pipe.  That
- * is, if you use Glib::Dispatcher only to notify the GUI thread, only one pipe
- * is created no matter how many Dispatcher objects you have.
- */
-class Dispatcher
-{
-public:
-  /** Create new Dispatcher instance using the default main context.
-   * @throw Glib::FileError
-   */
-  Dispatcher();
-  /** Create new Dispatcher instance using an arbitrary main context.
-   * @throw Glib::FileError
-   */
-  explicit Dispatcher(const Glib::RefPtr<MainContext>& context);
-  ~Dispatcher();
-
-  void emit();
-  void operator()();
-
-  sigc::connection connect(const sigc::slot<void>& slot);
-
-private:
-  sigc::signal<void> signal_;
-  DispatchNotifier*   notifier_;
-
-  // noncopyable
-  Dispatcher(const Dispatcher&);
-  Dispatcher& operator=(const Dispatcher&);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  friend class Glib::DispatchNotifier;
-#endif
-};
-
-/*! A Glib::Dispatcher example.
- * @example thread/dispatcher.cc
- */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_DISPATCHER_H */
-
diff --git a/libs/glibmm2/glibmm/error.cc b/libs/glibmm2/glibmm/error.cc
deleted file mode 100644 (file)
index 2e8f072..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* error.cc
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gerror.h>
-#include <glib/gmessages.h>
-
-#include <map>
-#include <glibmmconfig.h>
-#include <glibmm/error.h>
-#include <glibmm/wrap_init.h>
-
-GLIBMM_USING_STD(map)
-
-
-namespace
-{
-
-typedef std::map<GQuark,Glib::Error::ThrowFunc> ThrowFuncTable;
-
-static ThrowFuncTable* throw_func_table = 0;
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-Error::Error()
-:
-  gobject_ (0)
-{}
-
-Error::Error(GQuark domain, int code, const Glib::ustring& message)
-:
-  gobject_ (g_error_new_literal(domain, code, message.c_str()))
-{}
-
-Error::Error(GError* gobject, bool take_copy)
-:
-  gobject_ ((take_copy && gobject) ? g_error_copy(gobject) : gobject)
-{}
-
-Error::Error(const Error& other)
-:
-  Exception(other),
-  gobject_ ((other.gobject_) ? g_error_copy(other.gobject_) : 0)
-{}
-
-Error& Error::operator=(const Error& other)
-{
-  if(gobject_ != other.gobject_)
-  {
-    if(gobject_)
-    {
-      g_error_free(gobject_);
-      gobject_ = 0;
-    }
-    if(other.gobject_)
-    {
-      gobject_ = g_error_copy(other.gobject_);
-    }
-  }
-  return *this;
-}
-
-Error::~Error() throw()
-{
-  if(gobject_)
-    g_error_free(gobject_);
-}
-
-GQuark Error::domain() const
-{
-  g_return_val_if_fail(gobject_ != 0, 0);
-
-  return gobject_->domain;
-}
-
-int Error::code() const
-{
-  g_return_val_if_fail(gobject_ != 0, -1);
-
-  return gobject_->code;
-}
-
-Glib::ustring Error::what() const
-{
-  g_return_val_if_fail(gobject_ != 0, "");
-  g_return_val_if_fail(gobject_->message != 0, "");
-
-  return gobject_->message;
-}
-
-bool Error::matches(GQuark domain, int code) const
-{
-  return g_error_matches(gobject_, domain, code);
-}
-
-GError* Error::gobj()
-{
-  return gobject_;
-}
-
-const GError* Error::gobj() const
-{
-  return gobject_;
-}
-
-void Error::propagate(GError** dest)
-{
-  g_propagate_error(dest, gobject_);
-  gobject_ = 0;
-}
-
-
-// static
-void Error::register_init()
-{
-  if(!throw_func_table)
-  {
-    throw_func_table = new ThrowFuncTable();
-    Glib::wrap_init(); // make sure that at least the Glib exceptions are registered
-  }
-}
-
-// static
-void Error::register_cleanup()
-{
-  if(throw_func_table)
-  {
-    delete throw_func_table;
-    throw_func_table = 0;
-  }
-}
-
-// static
-void Error::register_domain(GQuark domain, Error::ThrowFunc throw_func)
-{
-  g_assert(throw_func_table != 0);
-
-  (*throw_func_table)[domain] = throw_func;
-}
-
-// static, noreturn
-void Error::throw_exception(GError* gobject)
-{
-  g_assert(gobject != 0);
-
-  // Just in case Gtk::Main hasn't been instantiated yet.
-  if(!throw_func_table)
-    register_init();
-
-  if(const ThrowFunc throw_func = (*throw_func_table)[gobject->domain])
-  {
-    (*throw_func)(gobject);
-    g_assert_not_reached();
-  }
-
-  g_warning("Glib::Error::throw_exception():\n  "
-            "unknown error domain '%s': throwing generic Glib::Error exception\n",
-            (gobject->domain) ? g_quark_to_string(gobject->domain) : "(null)");
-
-  // Doesn't copy, because error-returning functions return a newly allocated GError for us.
-  throw Glib::Error(gobject);
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/error.h b/libs/glibmm2/glibmm/error.h
deleted file mode 100644 (file)
index d4c39e6..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_ERROR_H
-#define _GLIBMM_ERROR_H
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GError GError; }
-#endif
-
-#include <glib/gquark.h>
-#include <glibmm/exception.h>
-
-
-namespace Glib
-{
-
-class Error : public Glib::Exception
-{
-public:
-  Error();
-  Error(GQuark domain, int code, const Glib::ustring& message);
-  explicit Error(GError* gobject, bool take_copy = false);
-
-  Error(const Error& other);
-  Error& operator=(const Error& other);
-
-  virtual ~Error() throw();
-
-  GQuark domain() const;
-  int code() const;
-  virtual Glib::ustring what() const;
-
-  bool matches(GQuark domain, int code) const;
-
-  GError* gobj();
-  const GError* gobj() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-  void propagate(GError** dest);
-
-  typedef void (* ThrowFunc) (GError*);
-
-  static void register_init();
-  static void register_cleanup();
-  static void register_domain(GQuark domain, ThrowFunc throw_func);
-
-  static void throw_exception(GError* gobject) G_GNUC_NORETURN;
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-protected:
-  GError* gobject_;
-};
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_ERROR_H */
-
diff --git a/libs/glibmm2/glibmm/exception.cc b/libs/glibmm2/glibmm/exception.cc
deleted file mode 100644 (file)
index 22345b2..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* exception.cc
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gmessages.h>
-#include <glibmm/exception.h>
-
-
-namespace Glib
-{
-
-Exception::~Exception() throw()
-{}
-
-Glib::ustring Exception::what() const
-{
-  g_assert_not_reached();
-  return Glib::ustring();
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/exception.h b/libs/glibmm2/glibmm/exception.h
deleted file mode 100644 (file)
index 7f0dd43..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_EXCEPTION_H
-#define _GLIBMM_EXCEPTION_H
-/* $Id$ */
-
-/* exception.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/ustring.h>
-
-
-namespace Glib
-{
-
-class Exception
-{
-public:
-  virtual ~Exception() throw() = 0;
-  virtual Glib::ustring what() const = 0;
-};
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_EXCEPTION_H */
-
diff --git a/libs/glibmm2/glibmm/exceptionhandler.cc b/libs/glibmm2/glibmm/exceptionhandler.cc
deleted file mode 100644 (file)
index cfe6892..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* exceptionhandler.cc
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib.h>
-#include <exception>
-#include <list>
-
-#include <glibmmconfig.h>
-#include <glibmm/error.h>
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/thread.h>
-
-GLIBMM_USING_STD(exception)
-GLIBMM_USING_STD(list)
-
-
-namespace
-{
-
-typedef sigc::signal<void> HandlerList;
-
-// Each thread has its own list of exception handlers
-// to avoid thread synchronization problems.
-static Glib::StaticPrivate<HandlerList> thread_specific_handler_list = GLIBMM_STATIC_PRIVATE_INIT;
-
-
-static void glibmm_exception_warning(const GError* error)
-{
-  g_assert(error != 0);
-
-  g_critical("\n"
-      "unhandled exception (type Glib::Error) in signal handler:\n"
-      "domain: %s\n"
-      "code  : %d\n"
-      "what  : %s\n",
-      g_quark_to_string(error->domain), error->code,
-      (error->message) ? error->message : "(null)");
-}
-
-static void glibmm_unexpected_exception()
-{
-  try
-  {
-    throw; // re-throw current exception
-  }
-  catch(const Glib::Error& error)
-  {
-    // Access the GError directly, to avoid possible exceptions from C++ code.
-    glibmm_exception_warning(error.gobj());
-
-    // For most failures that cause a Glib::Error exception, aborting the
-    // program seems too harsh.  Instead, give control back to the main loop.
-    return;
-  }
-  catch(const std::exception& except)
-  {
-    g_error("\n"
-        "unhandled exception (type std::exception) in signal handler:\n"
-        "what: %s\n", except.what());
-  }
-  catch(...)
-  {
-    g_error("\nunhandled exception (type unknown) in signal handler\n");
-  }
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-sigc::connection add_exception_handler(const sigc::slot<void>& slot)
-{
-  HandlerList* handler_list = thread_specific_handler_list.get();
-
-  if(!handler_list)
-  {
-    handler_list = new HandlerList();
-    thread_specific_handler_list.set(handler_list);
-  }
-
-  handler_list->slots().push_front(slot);
-  return handler_list->slots().begin();
-}
-
-// internal
-void exception_handlers_invoke() throw()
-{
-  // This function will be called from our GLib signal handler proxies
-  // if an exception has been caught.  It's not possible to throw C++
-  // exceptions through C signal handlers.  To handle this situation, the
-  // programmer can install slots to global Reusable Exception Handlers.
-  //
-  // A handler has to re-throw the current exception in a try block, and then
-  // catch the exceptions it knows about.  Any unknown exceptions should just
-  // fall through, i.e. the handler must not do catch(...).
-  //
-  // We now invoke each of the installed slots until the exception has been
-  // handled.  If there are no more handlers in the list and the exception
-  // is still unhandled, call glibmm_unexpected_exception().
-
-  if(HandlerList *const handler_list = thread_specific_handler_list.get())
-  {
-    HandlerList::iterator pslot = handler_list->slots().begin();
-
-    while(pslot != handler_list->slots().end())
-    {
-      // Calling an empty slot would mean ignoring the exception,
-      // thus we have to check for dead slots explicitly.
-      if(pslot->empty())
-      {
-        pslot = handler_list->slots().erase(pslot);
-        continue;
-      }
-
-      // Call the Reusable Exception Handler, which should re-throw
-      // the exception that's currently on the stack.
-      try
-      {
-        (*pslot)();
-      }
-      catch(...) // unhandled, try next slot
-      {
-        ++pslot;
-        continue;
-      }
-
-      // The exception has either been handled or ignored.
-      // Give control back to the GLib main loop.
-      return;
-    }
-  }
-
-  // Critical: The exception is still unhandled.
-  glibmm_unexpected_exception();
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/exceptionhandler.h b/libs/glibmm2/glibmm/exceptionhandler.h
deleted file mode 100644 (file)
index de1d68f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_EXCEPTIONHANDLER_H
-#define _GLIBMM_EXCEPTIONHANDLER_H
-
-/* $Id$ */
-
-/* exceptionhandler.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <sigc++/sigc++.h>
-
-
-namespace Glib
-{
-
-/** Specify a slot to be called when an exception is thrown by a signal handler.
- */
-sigc::connection add_exception_handler(const sigc::slot<void>& slot);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// internal
-void exception_handlers_invoke() throw();
-#endif
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_EXCEPTIONHANDLER_H */
-
diff --git a/libs/glibmm2/glibmm/fileutils.cc b/libs/glibmm2/glibmm/fileutils.cc
deleted file mode 100644 (file)
index ce7051f..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/fileutils.h>
-#include <glibmm/private/fileutils_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gdir.h>
-#include <glib/gfileutils.h>
-#include <glib/gstrfuncs.h>
-#include <glibmm/utility.h>
-
-
-namespace Glib
-{
-
-/**** Glib::Dir ************************************************************/
-
-Dir::Dir(const std::string& path)
-{
-  GError* error = 0;
-  gobject_ = g_dir_open(path.c_str(), 0, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-Dir::Dir(GDir* gobject)
-:
-  gobject_ (gobject)
-{}
-
-Dir::~Dir()
-{
-  if(gobject_)
-    g_dir_close(gobject_);
-}
-
-std::string Dir::read_name()
-{
-  const char *const name = g_dir_read_name(gobject_);
-  return (name) ? std::string(name) : std::string();
-}
-
-void Dir::rewind()
-{
-  g_dir_rewind(gobject_);
-}
-
-void Dir::close()
-{
-  if(gobject_)
-  {
-    g_dir_close(gobject_);
-    gobject_ = 0;
-  }
-}
-
-DirIterator Dir::begin()
-{
-  g_dir_rewind(gobject_);
-  return DirIterator(gobject_, g_dir_read_name(gobject_));
-}
-
-DirIterator Dir::end()
-{
-  return DirIterator(gobject_, 0);
-}
-
-
-/**** Glib::DirIterator ****************************************************/
-
-DirIterator::DirIterator()
-:
-  gobject_ (0),
-  current_ (0)
-{}
-
-DirIterator::DirIterator(GDir* gobject, const char* current)
-:
-  gobject_ (gobject),
-  current_ (current)
-{}
-
-std::string DirIterator::operator*() const
-{
-  return (current_) ? std::string(current_) : std::string();
-}
-
-DirIterator& DirIterator::operator++()
-{
-  current_ = g_dir_read_name(gobject_);
-  return *this;
-}
-
-void DirIterator::operator++(int)
-{
-  current_ = g_dir_read_name(gobject_);
-}
-
-bool DirIterator::operator==(const DirIterator& rhs) const
-{
-  return (current_ == rhs.current_);
-}
-
-bool DirIterator::operator!=(const DirIterator& rhs) const
-{
-  return (current_ != rhs.current_);
-}
-
-
-bool file_test(const std::string& filename, FileTest test)
-{
-  return g_file_test(filename.c_str(), static_cast<GFileTest>(unsigned(test)));
-}
-
-int mkstemp(std::string& filename_template)
-{
-  const ScopedPtr<char> buf (g_strndup(filename_template.data(), filename_template.size()));
-  const int fileno = g_mkstemp(buf.get());
-
-  filename_template = buf.get();
-  return fileno;
-}
-
-int file_open_tmp(std::string& name_used, const std::string& prefix)
-{
-  std::string basename_template (prefix);
-  basename_template += "XXXXXX"; // this sillyness shouldn't be in the interface
-
-  GError* error = 0;
-  ScopedPtr<char> buf_name_used;
-
-  const int fileno = g_file_open_tmp(basename_template.c_str(), buf_name_used.addr(), &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  name_used = buf_name_used.get();
-  return fileno;
-}
-
-int file_open_tmp(std::string& name_used)
-{
-  GError* error = 0;
-  ScopedPtr<char> buf_name_used;
-
-  const int fileno = g_file_open_tmp(0, buf_name_used.addr(), &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  name_used = buf_name_used.get();
-  return fileno;
-}
-
-std::string file_get_contents(const std::string& filename)
-{
-  ScopedPtr<char> contents;
-  gsize   length = 0;
-  GError* error  = 0;
-
-  g_file_get_contents(filename.c_str(), contents.addr(), &length, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  return std::string(contents.get(), length);
-}
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::FileError::FileError(Glib::FileError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_FILE_ERROR, error_code, error_message)
-{}
-
-Glib::FileError::FileError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::FileError::Code Glib::FileError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::FileError::throw_func(GError* gobject)
-{
-  throw Glib::FileError(gobject);
-}
-
-
diff --git a/libs/glibmm2/glibmm/fileutils.h b/libs/glibmm2/glibmm/fileutils.h
deleted file mode 100644 (file)
index 67f1106..0000000
+++ /dev/null
@@ -1,475 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_FILEUTILS_H
-#define _GLIBMM_FILEUTILS_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GDir GDir; }
-#endif
-
-#include <iterator>
-#include <string>
-
-#include <glibmmconfig.h>
-#include <glibmm/error.h>
-
-GLIBMM_USING_STD(input_iterator_tag)
-GLIBMM_USING_STD(string)
-
-
-namespace Glib
-{
-
-/** @addtogroup glibmmEnums Enums and Flags */
-
-/**
- * @ingroup glibmmEnums
- * @par Bitwise operators:
- * <tt>%FileTest operator|(FileTest, FileTest)</tt><br>
- * <tt>%FileTest operator&(FileTest, FileTest)</tt><br>
- * <tt>%FileTest operator^(FileTest, FileTest)</tt><br>
- * <tt>%FileTest operator~(FileTest)</tt><br>
- * <tt>%FileTest& operator|=(FileTest&, FileTest)</tt><br>
- * <tt>%FileTest& operator&=(FileTest&, FileTest)</tt><br>
- * <tt>%FileTest& operator^=(FileTest&, FileTest)</tt><br>
- */
-enum FileTest
-{
-  FILE_TEST_IS_REGULAR = 1 << 0,
-  FILE_TEST_IS_SYMLINK = 1 << 1,
-  FILE_TEST_IS_DIR = 1 << 2,
-  FILE_TEST_IS_EXECUTABLE = 1 << 3,
-  FILE_TEST_EXISTS = 1 << 4
-};
-
-/** @ingroup glibmmEnums */
-inline FileTest operator|(FileTest lhs, FileTest rhs)
-  { return static_cast<FileTest>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline FileTest operator&(FileTest lhs, FileTest rhs)
-  { return static_cast<FileTest>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline FileTest operator^(FileTest lhs, FileTest rhs)
-  { return static_cast<FileTest>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline FileTest operator~(FileTest flags)
-  { return static_cast<FileTest>(~static_cast<unsigned>(flags)); }
-
-/** @ingroup glibmmEnums */
-inline FileTest& operator|=(FileTest& lhs, FileTest rhs)
-  { return (lhs = static_cast<FileTest>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline FileTest& operator&=(FileTest& lhs, FileTest rhs)
-  { return (lhs = static_cast<FileTest>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline FileTest& operator^=(FileTest& lhs, FileTest rhs)
-  { return (lhs = static_cast<FileTest>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
-
-
-/** @defgroup FileUtils File Utilities
- * Various file-related classes and functions.
- */
-
-/** Exception class for file-related errors.
- * @ingroup FileUtils
- */
-class FileError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    EXISTS,
-    IS_DIRECTORY,
-    ACCESS_DENIED,
-    NAME_TOO_LONG,
-    NO_SUCH_ENTITY,
-    NOT_DIRECTORY,
-    NO_SUCH_DEVICE,
-    NOT_DEVICE,
-    READONLY_FILESYSTEM,
-    TEXT_FILE_BUSY,
-    FAULTY_ADDRESS,
-    SYMLINK_LOOP,
-    NO_SPACE_LEFT,
-    NOT_ENOUGH_MEMORY,
-    TOO_MANY_OPEN_FILES,
-    FILE_TABLE_OVERFLOW,
-    BAD_FILE_DESCRIPTOR,
-    INVALID_ARGUMENT,
-    BROKEN_PIPE,
-    TRYAGAIN,
-    INTERRUPTED,
-    IO_ERROR,
-    NOT_OWNER,
-    NOSYS,
-    FAILED
-  };
-
-  FileError(Code error_code, const Glib::ustring& error_message);
-  explicit FileError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-/** @enum FileError::Code
- * Values corresponding to <tt>errno</tt> codes returned from file operations
- * on UNIX.
- * Unlike <tt>errno</tt> codes, FileError::Code values are available on all
- * systems, even Windows. The exact meaning of each code depends on what sort
- * of file operation you were performing; the UNIX documentation gives more
- * details.  The following error code descriptions come from the GNU C Library
- * manual, and are under the copyright of that manual.
- *
- * It's not very portable to make detailed assumptions about exactly which
- * errors will be returned from a given operation. Some errors don't occur on
- * some systems, etc., sometimes there are subtle differences in when a system
- * will report a given error, etc.
- */
-
-/** @var FileError::Code FileError::EXISTS
- * <tt>(EEXIST)</tt> Operation not permitted; only the owner of the file (or
- * other resource) or processes with special privileges can perform the operation.
- * <br><br>
- */
-/** @var FileError::Code FileError::IS_DIRECTORY
- * <tt>(EISDIR)</tt> File is a directory; you cannot open a directory for writing,
- * or create or remove hard links to it.
- * <br><br>
- */
-/** @var FileError::Code FileError::ACCESS_DENIED
- * <tt>(EACCES)</tt> Permission denied; the file permissions do not allow the
- * attempted operation.
- * <br><br>
- */
-/** @var FileError::Code FileError::NAME_TOO_LONG
- * <tt>(ENAMETOOLONG)</tt> Filename too long.
- * <br><br>
- */
-/** @var FileError::Code FileError::NO_SUCH_ENTITY
- * <tt>(ENOENT)</tt> No such file or directory.  This is a "file doesn't exist"
- * error for ordinary files that are referenced in contexts where they are expected
- * to already exist.
- * <br><br>
- */
-/** @var FileError::Code FileError::NOT_DIRECTORY
- * <tt>(ENOTDIR)</tt> A file that isn't a directory was specified when a directory
- * is required.
- * <br><br>
- */
-/** @var FileError::Code FileError::NO_SUCH_DEVICE
- * <tt>(ENXIO)</tt> No such device or address.  The system tried to use the device
- * represented by a file you specified, and it couldn't find the device. This can
- * mean that the device file was installed incorrectly, or that the physical device
- * is missing or not correctly attached to the computer.
- * <br><br>
- */
-/** @var FileError::Code FileError::NOT_DEVICE
- * <tt>(ENODEV)</tt> This file is of a type that doesn't support mapping.
- * <br><br>
- */
-/** @var FileError::Code FileError::READONLY_FILESYSTEM
- * <tt>(EROFS)</tt> The directory containing the new link can't be modified
- * because it's on a read-only file system.
- * <br><br>
- */
-/** @var FileError::Code FileError::TEXT_FILE_BUSY
- * <tt>(ETXTBSY)</tt> Text file busy.
- * <br><br>
- */
-/** @var FileError::Code FileError::FAULTY_ADDRESS
- * <tt>(EFAULT)</tt> You passed in a pointer to bad memory.  (Glib won't
- * reliably return this, don't pass in pointers to bad memory.)
- * <br><br>
- */
-/** @var FileError::Code FileError::SYMLINK_LOOP
- * <tt>(ELOOP)</tt> Too many levels of symbolic links were encountered in
- * looking up a file name.  This often indicates a cycle of symbolic links.
- * <br><br>
- */
-/** @var FileError::Code FileError::NO_SPACE_LEFT
- * <tt>(ENOSPC)</tt> No space left on device; write operation on a file failed
- * because the disk is full.
- * <br><br>
- */
-/** @var FileError::Code FileError::NOT_ENOUGH_MEMORY
- * <tt>(ENOMEM)</tt> No memory available.  The system cannot allocate more
- * virtual memory because its capacity is full.
- * <br><br>
- */
-/** @var FileError::Code FileError::TOO_MANY_OPEN_FILES
- * <tt>(EMFILE)</tt> The current process has too many files open and can't
- * open any more.  Duplicate descriptors do count toward this limit.
- * <br><br>
- */
-/** @var FileError::Code FileError::FILE_TABLE_OVERFLOW
- * <tt>(ENFILE)</tt> There are too many distinct file openings in the
- * entire system.
- * <br><br>
- */
-/** @var FileError::Code FileError::BAD_FILE_DESCRIPTOR
- * <tt>(EBADF)</tt> Bad file descriptor; for example, I/O on a descriptor
- * that has been closed or reading from a descriptor open only for writing
- * (or vice versa).
- * <br><br>
- */
-/** @var FileError::Code FileError::INVALID_ARGUMENT
- * <tt>(EINVAL)</tt> Invalid argument. This is used to indicate various kinds
- * of problems with passing the wrong argument to a library function.
- * <br><br>
- */
-/** @var FileError::Code FileError::BROKEN_PIPE
- * <tt>(EPIPE)</tt> Broken pipe; there is no process reading from the other
- * end of a pipe.  Every library function that returns this error code also
- * generates a <tt>SIGPIPE</tt> signal; this signal terminates the program
- * if not handled or blocked.  Thus, your program will never actually see
- * this code unless it has handled or blocked <tt>SIGPIPE</tt>.
- * <br><br>
- */
-/** @var FileError::Code FileError::TRYAGAIN
- * <tt>(EAGAIN)</tt> Resource temporarily unavailable; the call might work
- * if you try again later.
- * We used TRYAGAIN instead of TRY_AGAIN, because that is a defined as a macro by a Unix header.
- * <br><br>
- */
-/** @var FileError::Code FileError::INTERRUPTED
- * <tt>(EINTR)</tt> Interrupted function call; an asynchronous signal occurred
- * and prevented completion of the call.  When this happens, you should try
- * the call again.
- * <br><br>
- */
-/** @var FileError::Code FileError::IO_ERROR
- * <tt>(EIO)</tt> Input/output error; usually used for physical read or write
- * errors.  I.e. the disk or other physical device hardware is returning errors.
- * <br><br>
- */
-/** @var FileError::Code FileError::NOT_OWNER
- * <tt>(EPERM)</tt> Operation not permitted; only the owner of the file (or other
- * resource) or processes with special privileges can perform the operation.
- * <br><br>
- */
-/** @var FileError::Code FileError::FAILED
- * Does not correspond to a UNIX error code; this is the standard "failed for
- * unspecified reason" error code present in all Glib::Error error code
- * enumerations.  Returned if no specific code applies.
- */
-
-class Dir;
-
-/** The iterator type of Glib::Dir.
- * @ingroup FileUtils
- */
-class DirIterator
-{
-public:
-  typedef std::input_iterator_tag   iterator_category;
-  typedef std::string               value_type;
-  typedef int                       difference_type;
-  typedef value_type                reference;
-  typedef void                      pointer;
-
-  DirIterator();
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  DirIterator(GDir* gobject, const char* current);
-#endif
-
-  std::string  operator*() const;
-  DirIterator& operator++();
-
-  /** @note DirIterator has input iterator semantics, which means real
-   * postfix increment is impossible. The return type is @c void to
-   * prevent surprising behaviour.
-   */
-  void operator++(int);
-
-  bool operator==(const DirIterator& rhs) const;
-  bool operator!=(const DirIterator& rhs) const;
-
-private:
-  GDir*       gobject_;
-  const char* current_;
-};
-
-
-/** Utility class representing an open directory.
- * @ingroup FileUtils
- * It's highly recommended to use the iterator interface.  With iterators,
- * reading an entire directory into a STL container is really easy:
- * @code
- * Glib::Dir dir (directory_path);
- * std::list<std::string> entries (dir.begin(), dir.end());
- * @endcode
- * @note The encoding of the directory entries isn't necessarily UTF-8.
- * Use Glib::filename_to_utf8() if you need to display them.
- */
-class Dir
-{
-public:
-  typedef DirIterator iterator;
-  typedef DirIterator const_iterator;
-
-  /** Opens a directory for reading. The names of the files in the
-   * directory can then be retrieved using read_name().
-   * @param path The path to the directory you are interested in.
-   * @throw Glib::FileError
-   */
-  explicit Dir(const std::string& path);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  explicit Dir(GDir* gobject);
-#endif
-
-  /** Closes the directory and deallocates all related resources.
-   */
-  ~Dir();
-
-  /** Retrieves the name of the next entry in the directory.
-   * The <tt>'.'</tt> and <tt>'..'</tt> entries are omitted.
-   * @return The entry's name or <tt>""</tt> if there are no more entries.
-   * @see begin(), end()
-   */
-  std::string read_name();
-
-  /** Resets the directory.  The next call to
-   * read_name() will return the first entry again.
-   */
-  void rewind();
-
-  /** Closes the directory and deallocates all related resources.
-   * Note that close() is implicitely called by ~Dir().  Thus you don't
-   * need to call close() yourself unless you want to close the directory
-   * before the destructor runs.
-   */
-  void close();
-
-  /** Get the begin of an input iterator sequence.
-   * @return An input iterator pointing to the first directory entry.
-   */
-  DirIterator begin();
-
-  /** Get the end of an input iterator sequence.
-   * @return An input iterator pointing behind the last directory entry.
-   */
-  DirIterator end();
-
-private:
-  GDir* gobject_;
-
-  // noncopyable
-  Dir(const Dir&);
-  Dir& operator=(const Dir&);
-};
-
-
-/** Returns @c true if any of the tests in the bitfield @a test are true.
- * @ingroup FileUtils
- * For example, <tt>(Glib::FILE_TEST_EXISTS | Glib::FILE_TEST_IS_DIR)</tt> will
- * return @c true if the file exists; the check whether it's a directory
- * doesn't matter since the existence test is true. With the current set of
- * available tests, there's no point passing in more than one test at a time.
- *
- * Apart from <tt>Glib::FILE_TEST_IS_SYMLINK</tt> all tests follow symbolic
- * links, so for a symbolic link to a regular file file_test() will return
- * @c true for both <tt>Glib::FILE_TEST_IS_SYMLINK</tt> and
- * <tt>Glib::FILE_TEST_IS_REGULAR</tt>.
- *
- * @note For a dangling symbolic link file_test() will return @c true for
- * <tt>Glib::FILE_TEST_IS_SYMLINK</tt> and @c false for all other flags.
- *
- * @param filename A filename to test.
- * @param test Bitfield of Glib::FileTest flags.
- * @return Whether a test was true.
- */
-bool file_test(const std::string& filename, FileTest test);
-
-/** Opens a temporary file.
- * @ingroup FileUtils
- * See the %mkstemp() documentation on most UNIX-like systems. This is a
- * portability wrapper, which simply calls %mkstemp() on systems that have
- * it, and implements it in GLib otherwise.
- * @param filename_template A string that should match the rules for
- *   %mkstemp(), i.e. end in <tt>"XXXXXX"</tt>. The <tt>X</tt> string
- *   will be modified to form the name of a file that didn't exist.
- * @return A file handle (as from open()) to the file opened for reading
- *   and writing. The file is opened in binary mode on platforms where there
- *   is a difference. The file handle should be closed with close(). In
- *   case of errors, <tt>-1</tt> is returned.
- */
-int mkstemp(std::string& filename_template);
-
-/** Opens a file for writing in the preferred directory for temporary files
- * (as returned by Glib::get_tmp_dir()).
- * @ingroup FileUtils
- * @a prefix should a basename template; it'll be suffixed by 6 characters
- * in order to form a unique filename.  No directory components are allowed.
- *
- * The actual name used is returned in @a name_used.
- *
- * @param prefix Template for file name, basename only.
- * @retval name_used The actual name used.
- * @return A file handle (as from <tt>open()</tt>) to the file opened for reading
- * and writing. The file is opened in binary mode on platforms where there is a
- * difference. The file handle should be closed with <tt>close()</tt>.
- * @throw Glib::FileError
- */
-int file_open_tmp(std::string& name_used, const std::string& prefix);
-
-/** Opens a file for writing in the preferred directory for temporary files
- * (as returned by Glib::get_tmp_dir()).
- * @ingroup FileUtils
- * This function works like file_open_tmp(std::string&, const std::string&)
- * but uses a default basename prefix.
- *
- * @retval name_used The actual name used.
- * @return A file handle (as from <tt>open()</tt>) to the file opened for reading
- * and writing. The file is opened in binary mode on platforms where there is a
- * difference. The file handle should be closed with <tt>close()</tt>.
- * @throw Glib::FileError
- */
-int file_open_tmp(std::string& name_used);
-
-/** Reads an entire file into a string, with good error checking.
- * @ingroup FileUtils
- * @param filename A file to read contents from.
- * @return The file contents.
- * @throw Glib::FileError
- */
-std::string file_get_contents(const std::string& filename);
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_FILEUTILS_H */
-
diff --git a/libs/glibmm2/glibmm/helperlist.h b/libs/glibmm2/glibmm/helperlist.h
deleted file mode 100644 (file)
index 50685e8..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_HELPERLIST_H
-#define _GLIBMM_HELPERLIST_H
-/* $Id$ */
-
-/* helperlist.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/containers.h>
-
-namespace Glib
-{
-
-// This class has some pure virtual methods which need to be implemented by derived classes.
-template< typename T_Child, typename T_CppElement, typename T_Iterator >
-class HelperList
-{
-public:
-  HelperList()
-  : gparent_(0)
-  {}
-
-  HelperList(GObject* gparent)
-  : gparent_(gparent)
-  {}
-
-  virtual ~HelperList()
-  {}
-
-  typedef T_Child value_type;
-  typedef value_type& reference;
-  typedef const value_type& const_reference;
-
-  typedef T_Iterator iterator;
-  typedef List_ConstIterator<iterator> const_iterator;
-  typedef List_ReverseIterator<iterator> reverse_iterator;
-  typedef List_ConstIterator<reverse_iterator> const_reverse_iterator;
-
-  typedef T_CppElement element_type;
-
-  typedef size_t difference_type;
-  typedef size_t size_type;
-
-  //These are implemented differently for each Helper List.
-  virtual iterator erase(iterator) = 0;
-
-  virtual void erase(iterator start, iterator stop)
-  {
-    while(start != stop)
-      start = erase(start); //Implemented in derived class.
-  }
-
-  virtual void remove(const_reference) = 0;
-
-  size_type size() const
-  {
-    return g_list_length(glist());
-  }
-
-  inline size_type max_size() { return size_type(-1); }
-  inline bool empty() { return glist() == 0; }
-
-  inline iterator begin()
-    {return begin_();}
-  inline iterator end()
-    {return end_();}
-
-  inline const_iterator begin() const
-    { return const_iterator(begin_()); }
-  inline const_iterator end() const
-    { return const_iterator(end_()); }
-
-  inline reverse_iterator rbegin()
-    { return reverse_iterator(end_()); }
-  inline reverse_iterator rend()
-    { return reverse_iterator(begin_()); }
-
-  inline const_reverse_iterator rbegin() const
-    { return const_reverse_iterator(reverse_iterator(end_())); }
-  inline const_reverse_iterator rend() const
-    { return const_reverse_iterator(reverse_iterator(begin_())); }
-
-  reference front() const
-  {
-    return *begin();
-  }
-
-  reference back() const
-  {
-    return *(--end());
-  }
-
-  reference operator[](size_type l) const
-  {
-    size_type j = 0;
-    iterator i;
-    for(i = begin(), j = 0; i != end(), j < l; ++i, ++j);
-    return (*i);
-  }
-
-//  iterator find(const_reference w)
-//  {
-//    iterator i = begin();
-//    for(i = begin(); i != end() && (*i != w); i++);
-//    return i;
-//  }
-//
-//  iterator find(Widget& w)
-//  {
-//    iterator i;
-//    for (i = begin(); i != end() && ((*i)->$1() != &w); i++);
-//    return i;
-//  }
-
-  //Derived classes might choose to reimplement these as public:
-  inline void pop_front()
-    { erase(begin()); }
-  inline void pop_back()
-    { erase(--end()); }
-
-  void clear()
-    { erase(begin(), end()); }
-
-  GObject* gparent()
-    { return gparent_; };
-  const GObject* gparent() const
-    { return gparent_; };
-
-protected:
-  virtual GList*& glist() const = 0;      // front of list
-
-  iterator begin_() const
-  {
-    return iterator(glist(), glist());
-  }
-
-  iterator end_() const
-  {
-    return iterator(glist(), (GList*)0);
-  }
-
-  GObject* gparent_;
-};
-
-
-} /* namespace Glib */
-
-#endif /* _GLIBMM_HELPERLIST_H */
-
diff --git a/libs/glibmm2/glibmm/i18n.h b/libs/glibmm2/glibmm/i18n.h
deleted file mode 100644 (file)
index 2758bb5..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_I18N_H
-#define _GLIBMM_I18N_H
-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-// Include this file to define internationalization macros such as _().
-// This file must be included by the application, after system headers such as <iostream>.
-
-#include <glib/gi18n.h>
-
-#endif /* _GLIBMM_I18N_H */
-
diff --git a/libs/glibmm2/glibmm/init.cc b/libs/glibmm2/glibmm/init.cc
deleted file mode 100644 (file)
index c2748c8..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2003 The glibmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/wrap.h>
-#include <glibmm/error.h>
-
-namespace Glib
-{
-
-void init()
-{
-  Glib::wrap_register_init();
-  Glib::Error::register_init(); //also calls Glib::wrap_init();  
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/init.h b/libs/glibmm2/glibmm/init.h
deleted file mode 100644 (file)
index c913d37..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_INIT_H
-#define _GLIBMM_INIT_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-namespace Glib
-{
-
-/** Initialize glibmm.
- * You may call this more than once.
- * You do nott need to call this if you are using Glib::MainLoop or Gtk::Main,
- * because they call it for you.
- */
-void init();
-
-} // namespace Glib
-
-
-
-#endif /* _GLIBMM_INIT_H */
-
diff --git a/libs/glibmm2/glibmm/interface.cc b/libs/glibmm2/glibmm/interface.cc
deleted file mode 100644 (file)
index d3ade45..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/interface.h>
-#include <glibmm/private/interface_p.h>
-
-
-namespace Glib
-{
-
-/**** Glib::Interface_Class ************************************************/
-
-void Interface_Class::add_interface(GType instance_type) const
-{
-  //This check is distabled, because it checks whether any of the types's bases implement the interface, not just the specific type.
-  //if( !g_type_is_a(instance_type, gtype_) ) //For convenience, don't complain about calling this twice.
-  //{
-    const GInterfaceInfo interface_info =
-    {
-      class_init_func_,
-      0, // interface_finalize
-      0, // interface_data
-    };
-
-    g_type_add_interface_static(instance_type, gtype_, &interface_info);
-  //}
-}
-
-
-/**** Interface Glib::Interface ********************************************/
-
-Interface::Interface(const Interface_Class& interface_class)
-{
-  //gobject_ will be set in the Object constructor.
-  //Any instantiable class that derives from Interface should also inherit from Object.
-
-  // If I understand it correctly, gobject_ shouldn't be 0 now.  daniel.
-  // TODO: Make this a g_assert() if the assumption above is correct.
-
-  g_return_if_fail(gobject_ != 0);
-
-  if(custom_type_name_ && !is_anonymous_custom_())
-  {
-    void *const instance_class = G_OBJECT_GET_CLASS(gobject_);
-
-    if(!g_type_interface_peek(instance_class, interface_class.get_type()))
-    {
-      interface_class.add_interface(G_OBJECT_CLASS_TYPE(instance_class));
-    }
-  }
-}
-
-Interface::Interface(GObject* castitem)
-{
-  // Connect GObject and wrapper instances.
-  ObjectBase::initialize(castitem);
-}
-
-Interface::~Interface()
-{}
-
-GType Interface::get_type()
-{
-  return G_TYPE_INTERFACE;
-}
-
-GType Interface::get_base_type()
-{
-  return G_TYPE_INTERFACE;
-}
-
-RefPtr<ObjectBase> wrap_interface(GObject* object, bool take_copy)
-{
-  return Glib::RefPtr<ObjectBase>( wrap_auto(object, take_copy) );
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/interface.h b/libs/glibmm2/glibmm/interface.h
deleted file mode 100644 (file)
index ce9bf50..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_INTERFACE_H
-#define _GLIBMM_INTERFACE_H
-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/object.h>
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-class Interface_Class;
-#endif
-
-// There is no base GInterface struct in Glib, though there is G_TYPE_INTERFACE enum value.
-class Interface : virtual public Glib::ObjectBase
-{
-public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  typedef Interface       CppObjectType;
-  typedef Interface_Class CppClassType;
-  typedef GTypeInterface  BaseClassType;
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-  explicit Interface(const Glib::Interface_Class& interface_class);
-  explicit Interface(GObject* castitem);
-  virtual ~Interface();
-
-  //void add_interface(GType gtype_implementer);
-
-  // Hook for translating API
-  //static Glib::Interface* wrap_new(GTypeInterface*);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  static GType get_type()      G_GNUC_CONST;
-  static GType get_base_type() G_GNUC_CONST;
-#endif
-
-  inline GObject* gobj()             { return gobject_; }
-  inline const GObject* gobj() const { return gobject_; }
-
-private:
-  // noncopyable
-  Interface(const Interface&);
-  Interface& operator=(const Interface&);
-};
-
-RefPtr<ObjectBase> wrap_interface(GObject* object, bool take_copy = false);
-
-} // namespace Glib
-
-#endif /* _GLIBMM_INTERFACE_H */
-
diff --git a/libs/glibmm2/glibmm/iochannel.cc b/libs/glibmm2/glibmm/iochannel.cc
deleted file mode 100644 (file)
index 18e434d..0000000
+++ /dev/null
@@ -1,687 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/iochannel.h>
-#include <glibmm/private/iochannel_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/iochannel.h>
-#include <glibmm/utility.h>
-#include <glibmm/main.h>
-#include <glib.h>
-
-
-namespace
-{
-
-// Glib::IOChannel reference counting issues:
-//
-// Normally, you'd expect that the C++ object stays around as long as the
-// C instance does.  Also Glib::wrap() usually returns always the same C++
-// wrapper object for a single C instance.
-//
-// Unfortunately it isn't possible to implement these features if we didn't
-// create the underlying GIOChannel.  That is, when wrapping existing
-// GIOChannel instances such as returned by e.g. g_io_channel_unix_new() or
-// g_io_channel_new_file().  Neither is there a way to hook up a wrapper
-// object in an existing GIOChannel, nor exists any destroy notification.
-//
-// So that means:  If the IOChannel is implemented in C++ -- that is, our
-// GlibmmIOChannel backend is used -- we use the GIOChannel reference
-// counting mechanism.  If the IOChannel backend is unknown, then the
-// wrapper instance holds always exactly one reference to the GIOChannel.
-// The wrapper object itself is then managed via our own refcounting
-// mechanism.  To do that a utility class ForeignIOChannel is introduced to
-// override reference() and unreference().
-
-class ForeignIOChannel : public Glib::IOChannel
-{
-public:
-  ForeignIOChannel(GIOChannel* gobject, bool take_copy)
-    : Glib::IOChannel(gobject, take_copy), ref_count_(0) {}
-
-  virtual void reference()   const;
-  virtual void unreference() const;
-
-private:
-  mutable int ref_count_;
-};
-
-void ForeignIOChannel::reference() const
-{
-  ++ref_count_;
-}
-
-void ForeignIOChannel::unreference() const
-{
-  if (!(--ref_count_)) delete this;
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-class GlibmmIOChannel
-{
-public:
-  GIOChannel        base;
-  Glib::IOChannel*  wrapper;
-
-  static const GIOFuncs vfunc_table;
-
-  static GIOStatus io_read(GIOChannel* channel, char* buf, gsize count,
-                           gsize* bytes_read, GError** err);
-
-  static GIOStatus io_write(GIOChannel* channel, const char* buf, gsize count,
-                            gsize* bytes_written, GError** err);
-
-  static GIOStatus io_seek (GIOChannel* channel, gint64 offset, GSeekType type, GError** err);
-  static GIOStatus io_close(GIOChannel* channel, GError** err);
-
-  static GSource*  io_create_watch(GIOChannel* channel, GIOCondition condition);
-  static void      io_free(GIOChannel* channel);
-
-  static GIOStatus io_set_flags(GIOChannel* channel, GIOFlags flags, GError** err);
-  static GIOFlags  io_get_flags(GIOChannel* channel);
-};
-
-// static
-const GIOFuncs GlibmmIOChannel::vfunc_table =
-{
-  &GlibmmIOChannel::io_read,
-  &GlibmmIOChannel::io_write,
-  &GlibmmIOChannel::io_seek,
-  &GlibmmIOChannel::io_close,
-  &GlibmmIOChannel::io_create_watch,
-  &GlibmmIOChannel::io_free,
-  &GlibmmIOChannel::io_set_flags,
-  &GlibmmIOChannel::io_get_flags,
-};
-
-
-/**** GLib::IOChannel ******************************************************/
-
-/* Construct a custom C++-implemented IOChannel.  GlibmmIOChannel is an
- * extended GIOChannel struct which allows us to hook up a pointer to this
- * persistent wrapper instance.
- */
-IOChannel::IOChannel()
-:
-  gobject_ (static_cast<GIOChannel*>(g_malloc(sizeof(GlibmmIOChannel))))
-{
-  g_io_channel_init(gobject_);
-  gobject_->funcs = const_cast<GIOFuncs*>(&GlibmmIOChannel::vfunc_table);
-
-  reinterpret_cast<GlibmmIOChannel*>(gobject_)->wrapper = this;
-}
-
-/* Construct an IOChannel wrapper for an already created GIOChannel.
- * See the comment at the top of this file for an explanation of the
- * problems with this approach.
- */
-IOChannel::IOChannel(GIOChannel* gobject, bool take_copy)
-:
-  gobject_ (gobject)
-{
-  // This ctor should never be called for GlibmmIOChannel instances.
-  g_assert(gobject != 0);
-  g_assert(gobject->funcs != &GlibmmIOChannel::vfunc_table);
-
-  if(take_copy)
-    g_io_channel_ref(gobject_);
-}
-
-IOChannel::~IOChannel()
-{
-  if(gobject_)
-  {
-    // Check whether this IOChannel is implemented in C++, i.e. whether it
-    // uses our GlibmmIOChannel forwarding backend.  Normally, this will never
-    // be true because the wrapper should only be deleted in the io_free()
-    // callback, which clears gobject_ before deleting.  But in case the ctor
-    // of a derived class threw an exception the GIOChannel must be destroyed
-    // prematurely.
-    //
-    if(gobject_->funcs == &GlibmmIOChannel::vfunc_table)
-    {
-      // Disconnect the wrapper object so that it won't be deleted twice.
-      reinterpret_cast<GlibmmIOChannel*>(gobject_)->wrapper = 0;
-    }
-
-    GIOChannel *const tmp_gobject = gobject_;
-    gobject_ = 0;
-
-    g_io_channel_unref(tmp_gobject);
-  }
-}
-
-Glib::RefPtr<IOChannel> IOChannel::create_from_file(const std::string& filename, const std::string& mode)
-{
-  GError* error = 0;
-  GIOChannel *const channel = g_io_channel_new_file(filename.c_str(), mode.c_str(), &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  return Glib::wrap(channel, false);
-}
-
-Glib::RefPtr<IOChannel> IOChannel::create_from_fd(int fd)
-{
-  return Glib::wrap(g_io_channel_unix_new(fd), false);
-}
-
-#ifdef G_OS_WIN32
-
-Glib::RefPtr<IOChannel> IOChannel::create_from_win32_fd(int fd)
-{
-  return Glib::wrap(g_io_channel_win32_new_fd(fd), false);
-}
-
-Glib::RefPtr<IOChannel> IOChannel::create_from_win32_socket(int socket)
-{
-  return Glib::wrap(g_io_channel_win32_new_socket(socket), false);
-}
-
-#endif /* G_OS_WIN32 */
-
-IOStatus IOChannel::write(const Glib::ustring& str)
-{
-  gsize bytes_written = 0;
-  return write(str.data(), str.bytes(), bytes_written);
-}
-
-IOStatus IOChannel::read_line(Glib::ustring& line)
-{
-  Glib::ScopedPtr<char> buf;
-  GError* error = 0;
-  gsize   bytes = 0;
-
-  const GIOStatus status = g_io_channel_read_line(gobj(), buf.addr(), &bytes, 0, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  if(buf.get())
-    line.assign(buf.get(), buf.get() + bytes);
-  else
-    line.erase();
-
-  return (IOStatus) status;
-}
-
-IOStatus IOChannel::read_to_end(Glib::ustring& str)
-{
-  Glib::ScopedPtr<char> buf;
-  GError* error = 0;
-  gsize   bytes = 0;
-
-  const GIOStatus status = g_io_channel_read_to_end(gobj(), buf.addr(), &bytes, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  if(buf.get())
-    str.assign(buf.get(), buf.get() + bytes);
-  else
-    str.erase();
-
-  return (IOStatus) status;
-}
-
-IOStatus IOChannel::read(Glib::ustring& str, gsize count)
-{
-  Glib::ScopedPtr<char> buf (g_new(char, count));
-  GError* error = 0;
-  gsize   bytes = 0;
-
-  const GIOStatus status = g_io_channel_read_chars(gobj(), buf.get(), count, &bytes, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  if(buf.get())
-    str.assign(buf.get(), buf.get() + bytes);
-  else
-    str.erase();
-
-  return (IOStatus) status;
-}
-
-IOStatus IOChannel::set_encoding(const std::string& encoding)
-{
-  GError* error = 0;
-
-  const GIOStatus status = g_io_channel_set_encoding(
-      gobj(), (encoding.empty()) ? 0 : encoding.c_str(), &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  return (IOStatus) status;
-}
-
-std::string IOChannel::get_encoding() const
-{
-  const char *const encoding = g_io_channel_get_encoding(gobject_);
-  return (encoding) ? std::string(encoding) : std::string();
-}
-
-void IOChannel::set_line_term(const std::string& term)
-{
-  if(term.empty())
-    g_io_channel_set_line_term(gobj(), 0, 0);
-  else
-    g_io_channel_set_line_term(gobj(), term.data(), term.size());
-}
-
-std::string IOChannel::get_line_term() const
-{
-  int len = 0;
-  const char *const term = g_io_channel_get_line_term(gobject_, &len);
-
-  return (term) ? std::string(term, len) : std::string();
-}
-
-Glib::RefPtr<IOSource> IOChannel::create_watch(IOCondition condition)
-{
-  // The corresponding unreference() takes place in the dtor
-  // of the Glib::RefPtr<IOChannel> object below.
-  reference();
-  return IOSource::create(Glib::RefPtr<IOChannel>(this), condition);
-}
-
-IOStatus IOChannel::read_vfunc(char*, gsize, gsize&)
-{
-  g_assert_not_reached();
-  return IO_STATUS_ERROR;
-}
-
-IOStatus IOChannel::write_vfunc(const char*, gsize, gsize&)
-{
-  g_assert_not_reached();
-  return IO_STATUS_ERROR;
-}
-
-IOStatus IOChannel::seek_vfunc(gint64, SeekType)
-{
-  g_assert_not_reached();
-  return IO_STATUS_ERROR;
-}
-
-IOStatus IOChannel::close_vfunc()
-{
-  g_assert_not_reached();
-  return IO_STATUS_ERROR;
-}
-
-Glib::RefPtr<Glib::Source> IOChannel::create_watch_vfunc(IOCondition)
-{
-  g_assert_not_reached();
-  return Glib::RefPtr<Glib::Source>();
-}
-
-IOStatus IOChannel::set_flags_vfunc(IOFlags)
-{
-  g_assert_not_reached();
-  return IO_STATUS_ERROR;
-}
-
-IOFlags IOChannel::get_flags_vfunc()
-{
-  g_assert_not_reached();
-  return IOFlags(0);
-}
-
-void IOChannel::reference() const
-{
-  g_io_channel_ref(gobject_);
-}
-
-void IOChannel::unreference() const
-{
-  g_io_channel_unref(gobject_);
-}
-
-Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy)
-{
-  IOChannel* cpp_object = 0;
-
-  if(gobject)
-  {
-    if(gobject->funcs == &GlibmmIOChannel::vfunc_table)
-    {
-      cpp_object = reinterpret_cast<GlibmmIOChannel*>(gobject)->wrapper;
-
-      if(take_copy && cpp_object)
-        cpp_object->reference();
-    }
-    else
-    {
-      cpp_object = new ForeignIOChannel(gobject, take_copy);
-      cpp_object->reference(); // the refcount is initially 0
-    }
-  }
-
-  return Glib::RefPtr<IOChannel>(cpp_object);
-}
-
-
-/**** Glib::GlibmmIOChannel ************************************************/
-
-// static
-GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
-                                   gsize* bytes_read, GError** err)
-{
-  IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
-
-  try
-  {
-    return (GIOStatus) wrapper->read_vfunc(buf, count, *bytes_read);
-  }
-  catch(Glib::Error& error)
-  {
-    error.propagate(err);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  return G_IO_STATUS_ERROR;
-}
-
-// static
-GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize count,
-                                    gsize* bytes_written, GError** err)
-{
-  IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
-
-  try
-  {
-    return (GIOStatus) wrapper->write_vfunc(buf, count, *bytes_written);
-  }
-  catch(Glib::Error& error)
-  {
-    error.propagate(err);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  return G_IO_STATUS_ERROR;
-}
-
-// static
-GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType type, GError** err)
-{
-  IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
-
-  try
-  {
-    return (GIOStatus) wrapper->seek_vfunc(offset, (SeekType) type);
-  }
-  catch(Glib::Error& error)
-  {
-    error.propagate(err);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  return G_IO_STATUS_ERROR;
-}
-
-// static
-GIOStatus GlibmmIOChannel::io_close(GIOChannel* channel, GError** err)
-{
-  IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
-
-  try
-  {
-    return (GIOStatus) wrapper->close_vfunc();
-  }
-  catch(Glib::Error& error)
-  {
-    error.propagate(err);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  return G_IO_STATUS_ERROR;
-}
-
-// static
-GSource* GlibmmIOChannel::io_create_watch(GIOChannel* channel, GIOCondition condition)
-{
-  IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
-
-  try
-  {
-    const Glib::RefPtr<Source> source = wrapper->create_watch_vfunc((IOCondition) condition);
-    return (source) ? source->gobj_copy() : 0;
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  return 0;
-}
-
-// static
-void GlibmmIOChannel::io_free(GIOChannel* channel)
-{
-  if(IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper)
-  {
-    wrapper->gobject_ = 0;
-    delete wrapper;
-  }
-
-  g_free(channel);
-}
-
-// static
-GIOStatus GlibmmIOChannel::io_set_flags(GIOChannel* channel, GIOFlags flags, GError** err)
-{
-  IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
-
-  try
-  {
-    return (GIOStatus) wrapper->set_flags_vfunc((IOFlags) flags);
-  }
-  catch(Glib::Error& error)
-  {
-    error.propagate(err);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  return G_IO_STATUS_ERROR;
-}
-
-// static
-GIOFlags GlibmmIOChannel::io_get_flags(GIOChannel* channel)
-{
-  IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
-
-  try
-  {
-    return (GIOFlags) wrapper->get_flags_vfunc();
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  return GIOFlags(0);
-}
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::IOChannelError::IOChannelError(Glib::IOChannelError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_IO_CHANNEL_ERROR, error_code, error_message)
-{}
-
-Glib::IOChannelError::IOChannelError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::IOChannelError::Code Glib::IOChannelError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::IOChannelError::throw_func(GError* gobject)
-{
-  throw Glib::IOChannelError(gobject);
-}
-
-
-namespace Glib
-{
-
-
-IOStatus IOChannel::read(gunichar& unichar)
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_read_unichar(gobj(), &(unichar), &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-IOStatus IOChannel::read(char* buf, gsize count, gsize& bytes_read)
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_read_chars(gobj(), buf, count, &(bytes_read), &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-IOStatus IOChannel::write(const char* buf, gssize count, gsize& bytes_written)
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_write_chars(gobj(), buf, count, &(bytes_written), &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-IOStatus IOChannel::write(gunichar unichar)
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_write_unichar(gobj(), unichar, &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-IOStatus IOChannel::seek(gint64 offset, SeekType type)
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_seek_position(gobj(), offset, ((GSeekType)(type)), &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-IOStatus IOChannel::flush()
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_flush(gobj(), &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-IOStatus IOChannel::close(bool flush)
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_shutdown(gobj(), static_cast<int>(flush), &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-gsize IOChannel::get_buffer_size() const
-{
-  return g_io_channel_get_buffer_size(const_cast<GIOChannel*>(gobj()));
-}
-
-void IOChannel::set_buffer_size(gsize size)
-{
-  g_io_channel_set_buffer_size(gobj(), size);
-}
-
-IOFlags IOChannel::get_flags() const
-{
-  return ((IOFlags)(g_io_channel_get_flags(const_cast<GIOChannel*>(gobj()))));
-}
-
-IOStatus IOChannel::set_flags(IOFlags flags)
-{
-  GError *error = 0;
-  IOStatus retvalue = ((IOStatus)(g_io_channel_set_flags(gobj(), ((GIOFlags)(flags)), &(error))));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-void IOChannel::set_buffered(bool buffered)
-{
-  g_io_channel_set_buffered(gobj(), static_cast<int>(buffered));
-}
-
-bool IOChannel::get_buffered() const
-{
-  return g_io_channel_get_buffered(const_cast<GIOChannel*>(gobj()));
-}
-
-IOCondition IOChannel::get_buffer_condition() const
-{
-  return ((IOCondition)(g_io_channel_get_buffer_condition(const_cast<GIOChannel*>(gobj()))));
-}
-
-bool IOChannel::get_close_on_unref() const
-{
-  return g_io_channel_get_close_on_unref(const_cast<GIOChannel*>(gobj()));
-}
-
-void IOChannel::set_close_on_unref(bool do_close)
-{
-  g_io_channel_set_close_on_unref(gobj(), static_cast<int>(do_close));
-}
-
-
-} // namespace Glib
-
-
diff --git a/libs/glibmm2/glibmm/iochannel.h b/libs/glibmm2/glibmm/iochannel.h
deleted file mode 100644 (file)
index 3d8f93b..0000000
+++ /dev/null
@@ -1,695 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_IOCHANNEL_H
-#define _GLIBMM_IOCHANNEL_H
-
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmm/error.h>
-#include <glibmm/main.h>
-#include <glibmm/refptr.h>
-#include <glibmm/ustring.h>
-#include <glib/gtypes.h>
-
-#include <string>
-#include <glibmmconfig.h>
-
-GLIBMM_USING_STD(string)
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GIOChannel GIOChannel; }
-#endif
-
-
-namespace Glib
-{
-
-class Source;
-class IOSource;
-
-/** @addtogroup glibmmEnums Enums and Flags */
-
-/**
- * @ingroup glibmmEnums
- */
-enum SeekType
-{
-  SEEK_TYPE_CUR,
-  SEEK_TYPE_SET,
-  SEEK_TYPE_END
-};
-
-
-/**
- * @ingroup glibmmEnums
- */
-enum IOStatus
-{
-  IO_STATUS_ERROR,
-  IO_STATUS_NORMAL,
-  IO_STATUS_EOF,
-  IO_STATUS_AGAIN
-};
-
-
-/**
- * @ingroup glibmmEnums
- * @par Bitwise operators:
- * <tt>%IOFlags operator|(IOFlags, IOFlags)</tt><br>
- * <tt>%IOFlags operator&(IOFlags, IOFlags)</tt><br>
- * <tt>%IOFlags operator^(IOFlags, IOFlags)</tt><br>
- * <tt>%IOFlags operator~(IOFlags)</tt><br>
- * <tt>%IOFlags& operator|=(IOFlags&, IOFlags)</tt><br>
- * <tt>%IOFlags& operator&=(IOFlags&, IOFlags)</tt><br>
- * <tt>%IOFlags& operator^=(IOFlags&, IOFlags)</tt><br>
- */
-enum IOFlags
-{
-  IO_FLAG_APPEND = 1 << 0,
-  IO_FLAG_NONBLOCK = 1 << 1,
-  IO_FLAG_IS_READABLE = 1 << 2,
-  IO_FLAG_IS_WRITEABLE = 1 << 3,
-  IO_FLAG_IS_SEEKABLE = 1 << 4,
-  IO_FLAG_GET_MASK = 0x0,
-  IO_FLAG_SET_MASK = 0x1
-};
-
-/** @ingroup glibmmEnums */
-inline IOFlags operator|(IOFlags lhs, IOFlags rhs)
-  { return static_cast<IOFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline IOFlags operator&(IOFlags lhs, IOFlags rhs)
-  { return static_cast<IOFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline IOFlags operator^(IOFlags lhs, IOFlags rhs)
-  { return static_cast<IOFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline IOFlags operator~(IOFlags flags)
-  { return static_cast<IOFlags>(~static_cast<unsigned>(flags)); }
-
-/** @ingroup glibmmEnums */
-inline IOFlags& operator|=(IOFlags& lhs, IOFlags rhs)
-  { return (lhs = static_cast<IOFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline IOFlags& operator&=(IOFlags& lhs, IOFlags rhs)
-  { return (lhs = static_cast<IOFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline IOFlags& operator^=(IOFlags& lhs, IOFlags rhs)
-  { return (lhs = static_cast<IOFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
-
-
-/** Exception class for IOChannel errors.
- */
-class IOChannelError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    FILE_TOO_BIG,
-    INVALID_ARGUMENT,
-    IO_ERROR,
-    IS_DIRECTORY,
-    NO_SPACE_LEFT,
-    NO_SUCH_DEVICE,
-    OVERFLOWN,
-    BROKEN_PIPE,
-    FAILED
-  };
-
-  IOChannelError(Code error_code, const Glib::ustring& error_message);
-  explicit IOChannelError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-class GlibmmIOChannel;
-#endif
-
-/** IOChannel aims to provide portable I/O support for files, pipes
- * and sockets, and to integrate them with the GLib main event loop.
- *
- * Note that IOChannels implement an automatic implicit character set
- * conversion to the data stream, and usually will not pass by default
- * binary data unchanged.  To set the encoding of the channel, use e.g.
- * set_encoding("ISO-8859-15"). To set the channel to no encoding, use
- * set_encoding() without any arguments.
- *
- * You can create an IOChannel with one of the static create methods, or
- * implement one yourself, in which case you have to 1)&nbsp;override all
- * _vfunc() members. 2)&nbsp;set the GIOChannel flags in your constructor.
- *
- * @note This feature of being able to implement a custom Glib::IOChannel is
- * deprecated in glibmm&nbsp;2.2.  The vfunc interface has not yet stabilized
- * enough to allow that -- the C++ wrapper went in by pure accident.  Besides,
- * it isn't terribly useful either.  Thus please refrain from overriding any
- * IOChannel vfuncs.
- */
-class IOChannel : public sigc::trackable
-{
-  public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  typedef IOChannel CppObjectType;
-  typedef GIOChannel BaseObjectType;
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-private:
-
-
-public:
-  virtual ~IOChannel();
-
-  /** Open a file @a filename as an I/O channel using mode @a mode.
-   * This channel will be closed when the last reference to it is dropped,
-   * so there is no need to call close() (though doing so will not cause
-   * problems, as long as no attempt is made to access the channel after
-   * it is closed).
-   * @param filename The name of the file to open.
-   * @param mode One of <tt>"r"</tt>, <tt>"w"</tt>, <tt>"a"</tt>,
-   *  <tt>"r+"</tt>, <tt>"w+"</tt>, <tt>"a+"</tt>. These have the
-   *  same meaning as in <tt>fopen()</tt>.
-   * @return An IOChannel for the opened file.
-   * @throw Glib::FileError
-   */
-  static Glib::RefPtr<IOChannel> create_from_file(const std::string& filename, const std::string& mode);
-  
-
-  /** Creates an I/O channel from a file descriptor.
-   * On Unix, IOChannels created with this function work for any file
-   * descriptor or socket.
-   *
-   * On Win32, this can be used either for files opened with the MSVCRT (the
-   * Microsoft run-time C library) <tt>_open()</tt> or <tt>_pipe()</tt>,
-   * including file descriptors 0, 1 and 2 (corresponding to <tt>stdin</tt>,
-   * <tt>stdout</tt> and <tt>stderr</tt>), or for Winsock <tt>SOCKET</tt>s. If
-   * the parameter is a legal file descriptor, it is assumed to be such,
-   * otherwise it should be a <tt>SOCKET</tt>. This relies on <tt>SOCKET</tt>s
-   * and file descriptors not overlapping. If you want to be certain, call
-   * either create_from_win32_fd() or create_from_win32_socket() instead as
-   * appropriate.
-   *
-   * The term file descriptor as used in the context of Win32 refers to the
-   * emulated Unix-like file descriptors MSVCRT provides. The native
-   * corresponding concept is file <tt>HANDLE</tt>. There isn't as of yet
-   * a way to get IOChannels for Win32 file <tt>HANDLE</tt>s.
-   */
-  static Glib::RefPtr<IOChannel> create_from_fd(int fd);
-  
-
-/* defined(DOXYGEN_SHOULD_SKIP_THIS) actually does the opposite of what it looks like... */
-#if defined(G_OS_WIN32) || defined(DOXYGEN_SHOULD_SKIP_THIS)
-
-  /** Create an I/O channel for C runtime (emulated Unix-like) file descriptors.
-   * After calling add_watch() on a I/O channel returned by this function, you
-   * shouldn't call read() on the file descriptor. This is because adding
-   * polling for a file descriptor is implemented on Win32 by starting a thread
-   * that sits blocked in a <tt>%read()</tt> from the file descriptor most of
-   * the time.  All reads from the file descriptor should be done by this
-   * internal GLib thread. Your code should call only IOChannel::read().
-   */
-  static Glib::RefPtr<IOChannel> create_from_win32_fd(int fd);
-  
-
-  /** Create an I/O channel for a winsock socket. The parameter should be a
-   * <tt>SOCKET</tt>. Contrary to I/O channels for file descriptors (on Win32),
-   * you can use normal <tt>recv()</tt> or <tt>recvfrom()</tt> on sockets even
-   * if GLib is polling them.
-   */
-  static Glib::RefPtr<IOChannel> create_from_win32_socket(int socket);
-  
-
-#endif /* defined(G_OS_WIN32) || defined(DOXYGEN_SHOULD_SKIP_THIS) */
-
-  /** Read a single UCS-4 character.
-   * @retval unichar The Unicode character.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  
-  /** This function cannot be called on a channel with <tt>0</tt> encoding.
-   * @param thechar A location to return a character.
-   * @param error A location to return an error of type G::ConvertError
-   * or G::IOChannelError.
-   * @return A G::IOStatus.
-   */
-  IOStatus read(gunichar& unichar);
-
-  /** Read a character sequence into memory.
-   * @param buf A buffer to read data into.
-   * @param count The size of the buffer in bytes.  Note that the buffer may
-   * not be complelely filled even if there is data in the buffer if the
-   * remaining data is not a complete character.
-   * @retval bytes_read The number of bytes read.  This may be zero even on
-   * success if @a count < 6 and the channel's encoding is not <tt>""</tt>.
-   * This indicates that the next UTF-8 character is too wide for the buffer.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  
-  /** Replacement for g_io_channel_read() with the new API.
-   * @param buf A buffer to read data into.
-   * @param count The size of the buffer. Note that the buffer may
-   * not be complelely filled even if there is data
-   * in the buffer if the remaining data is not a
-   * complete character.
-   * @param bytes_read The number of bytes read. This may be zero even on
-   * success if count &lt; 6 and the channel's encoding is non-<tt>0</tt>.
-   * This indicates that the next UTF-8 character is too wide for
-   * the buffer.
-   * @param error A location to return an error of type G::ConvertError
-   * or G::IOChannelError.
-   * @return The status of the operation.
-   */
-  IOStatus read(char* buf, gsize count, gsize& bytes_read);
-
-  /** Read a maximum of @a count bytes into @a str.
-   * @param count The maximum number of bytes to read.
-   * @retval str The characters that have been read.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  IOStatus read(Glib::ustring& str, gsize count);
-
-  /** Read a whole line.
-   * Reads until the line separator is found, which is included
-   * in the result string.
-   * @retval line The line that was read.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  IOStatus read_line(Glib::ustring& line);
-  
-
-  /** Reads all the remaining data from the file.
-   * @retval str The resulting string.
-   * @return Glib::IO_STATUS_NORMAL on success. This function never
-   *  returns Glib::IO_STATUS_EOF.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  IOStatus read_to_end(Glib::ustring& str);
-  
-
-  /** Write a string to the I/O channel.
-   * Note that this method does not return the number of characters written.
-   * If the channel is blocking and the returned value is
-   * Glib::IO_STATUS_NORMAL, the whole string was written.
-   * @param str the string to write.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  IOStatus write(const Glib::ustring& str);
-
-  /** Write a memory area of @a count bytes to the I/O channel.
-   * @param buf The start of the memory area.
-   * @param count The number of bytes to write.
-   * @retval bytes_written The number of bytes written to the channel.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  
-  /** Replacement for g_io_channel_write() with the new API.
-   * 
-   * On seekable channels with encodings other than <tt>0</tt> or UTF-8, generic
-   * mixing of reading and writing is not allowed. A call to g_io_channel_write_chars()
-   * may only be made on a channel from which data has been read in the
-   * cases described in the documentation for g_io_channel_set_encoding().
-   * @param buf A buffer to write data from.
-   * @param count The size of the buffer. If -1, the buffer
-   * is taken to be a nul-terminated string.
-   * @param bytes_written The number of bytes written. This can be nonzero
-   * even if the return value is not G::IO_STATUS_NORMAL.
-   * If the return value is G::IO_STATUS_NORMAL and the
-   * channel is blocking, this will always be equal
-   * to @a count  if @a count  &gt;= 0.
-   * @param error A location to return an error of type G::ConvertError
-   * or G::IOChannelError.
-   * @return The status of the operation.
-   */
-  IOStatus write(const char* buf, gssize count, gsize& bytes_written);
-
-  /** Write a single UCS-4 character to the I/O channel.
-   * @param unichar The character to write.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  
-  /** This function cannot be called on a channel with <tt>0</tt> encoding.
-   * @param thechar A character.
-   * @param error A location to return an error of type G::ConvertError
-   * or G::IOChannelError.
-   * @return A G::IOStatus.
-   */
-  IOStatus write(gunichar unichar);
-
-  /** Seek the I/O channel to a specific position.
-   * @param offset The offset in bytes from the position specified by @a type.
-   * @param type A SeekType. The type Glib::SEEK_TYPE_CUR is only allowed in
-   * those cases where a call to set_encoding() is allowed. See the
-   * documentation for set_encoding() for details.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  
-  /** Replacement for g_io_channel_seek() with the new API.
-   * @param offset The offset in bytes from the position specified by @a type .
-   * @param type A G::SeekType. The type G::SEEK_CUR is only allowed in those
-   * cases where a call to g_io_channel_set_encoding()
-   * is allowed. See the documentation for
-   * g_io_channel_set_encoding() for details.
-   * @param error A location to return an error of type G::IOChannelError.
-   * @return The status of the operation.
-   */
-  IOStatus seek(gint64 offset, SeekType type = SEEK_TYPE_SET);
-
-  /** Flush the buffers of the I/O channel.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   * @throw Glib::ConvertError
-   */
-  
-  /** Flushes the write buffer for the GIOChannel.
-   * @param error Location to store an error of type G::IOChannelError.
-   * @return The status of the operation: One of
-   * G::IO_CHANNEL_NORMAL, G::IO_CHANNEL_AGAIN, or
-   * G::IO_CHANNEL_ERROR.
-   */
-  IOStatus flush();
-
-  /** Close the I/O channel.
-   * Any pending data to be written will be flushed if @a flush is <tt>true</tt>.
-   * The channel will not be freed until the last reference is dropped.
-   * Accessing the channel after closing it is considered an error.
-   * @param flush Whether to flush() pending data before closing the channel.
-   * @return The status of the operation.
-   * @throw Glib::IOChannelError
-   */
-  
-  /** Close an IO channel. Any pending data to be written will be
-   * flushed if @a flush  is <tt>true</tt>. The channel will not be freed until the
-   * last reference is dropped using g_io_channel_unref().
-   * @param flush If <tt>true</tt>, flush pending.
-   * @param err Location to store a G::IOChannelError.
-   * @return The status of the operation.
-   */
-  IOStatus close(bool flush = true);
-
-  /** Get the IOChannel internal buffer size.
-   * @return The buffer size.
-   */
-  
-  /** Gets the buffer size.
-   * @return The size of the buffer.
-   */
-  gsize get_buffer_size() const;
-
-  /** Set the internal IOChannel buffer size.
-   * @param size The buffer size the IOChannel should use.
-   */
-  
-  /** Sets the buffer size.
-   * @param size The size of the buffer. 0 == pick a good size.
-   */
-  void set_buffer_size(gsize size);
-
-  /** Get the current flags for a IOChannel, including read-only
-   * flags such as Glib::IO_FLAG_IS_READABLE.
-   *
-   * The values of the flags Glib::IO_FLAG_IS_READABLE and
-   * Glib::IO_FLAG_IS_WRITEABLE are cached for internal use by the channel when
-   * it is created.  If they should change at some later point (e.g. partial
-   * shutdown of a socket with the UNIX <tt>shutdown()</tt> function), the user
-   * should immediately call get_flags() to update the internal values of these
-   * flags.
-   * @return Bitwise combination of the flags set on the channel.
-   */
-  
-  /** Gets the current flags for a G::IOChannel, including read-only
-   * flags such as G::IO_FLAG_IS_READABLE.
-   * 
-   * The values of the flags G::IO_FLAG_IS_READABLE and G::IO_FLAG_IS_WRITEABLE
-   * are cached for internal use by the channel when it is created.
-   * If they should change at some later point (e.g. partial shutdown
-   * of a socket with the UNIX shutdown() function), the user
-   * should immediately call g_io_channel_get_flags() to update
-   * the internal values of these flags.
-   * @return The flags which are set on the channel.
-   */
-  IOFlags get_flags() const;
-
-  /** Set flags on the IOChannel.
-   * @param flags Bitwise combination of the flags to set.
-   * @return The operation result code.
-   * @throw Glib::IOChannelError
-   */
-  
-  /** Sets the (writeable) flags in @a channel  to ( @a flags  & G::IO_CHANNEL_SET_MASK).
-   * @param flags The flags to set on the IO channel.
-   * @param error A location to return an error of type G::IOChannelError.
-   * @return The status of the operation.
-   */
-  IOStatus set_flags(IOFlags flags);
-
-  /** Set the buffering status of the I/O channel.
-   * The buffering state can only be set if the channel's encoding is
-   * <tt>""</tt>. For any other encoding, the channel must be buffered.
-   *
-   * A buffered channel can only be set unbuffered if the channel's internal
-   * buffers have been flushed. Newly created channels or channels which have
-   * returned Glib::IO_STATUS_EOF not require such a flush. For write-only
-   * channels, a call to flush() is sufficient. For all other channels, the
-   * buffers may be flushed by a call to seek().  This includes the possibility
-   * of seeking with seek type Glib::SEEK_TYPE_CUR and an offset of zero. Note
-   * that this means that socket-based channels cannot be set unbuffered once
-   * they have had data read from them.
-   *
-   * The default state of the channel is buffered.
-   *
-   * @param buffered Whether to set the channel buffered or unbuffered.
-   */
-  
-  /** The buffering state can only be set if the channel's encoding
-   * is <tt>0</tt>. For any other encoding, the channel must be buffered.
-   * 
-   * A buffered channel can only be set unbuffered if the channel's
-   * internal buffers have been flushed. Newly created channels or
-   * channels which have returned G::IO_STATUS_EOF
-   * not require such a flush. For write-only channels, a call to
-   * g_io_channel_flush() is sufficient. For all other channels,
-   * the buffers may be flushed by a call to g_io_channel_seek_position().
-   * This includes the possibility of seeking with seek type G::SEEK_CUR
-   * and an offset of zero. Note that this means that socket-based
-   * channels cannot be set unbuffered once they have had data
-   * read from them.
-   * 
-   * On unbuffered channels, it is safe to mix read and write
-   * calls from the new and old APIs, if this is necessary for
-   * maintaining old code.
-   * 
-   * The default state of the channel is buffered.
-   * @param buffered Whether to set the channel buffered or unbuffered.
-   */
-  void set_buffered(bool buffered);
-
-  /** Get the buffering status of the I/O channel.
-   * @return The buffering status of the channel.
-   */
-  
-  /** Returns whether @a channel  is buffered.
-   * @return <tt>true</tt> if the @a channel  is buffered.
-   */
-  bool get_buffered() const;
-
-  /** Returns an IOCondition depending on whether there is data to be
-   * read/space to write data in the internal buffers in the I/O channel.
-   * Only the flags Glib::IO_IN and Glib::IO_OUT may be set.
-   * @return Bitwise combination of Glib::IOCondition flags.
-   */
-  
-  /** This function returns a G::IOCondition depending on whether there
-   * is data to be read/space to write data in the
-   * internal buffers in the G::IOChannel. Only the flags G::IO_IN and
-   * G::IO_OUT may be set.
-   * @return A G::IOCondition.
-   */
-  IOCondition get_buffer_condition() const;
-
-  /** Returns whether the file/socket/whatever associated with the I/O channel
-   * will be closed when the channel receives its final unref and is destroyed.
-   * The default value of this is <tt>true</tt> for channels created by
-   * create_from_file(), and <tt>false</tt> for all other channels.
-   * @return Whether the channel will be closed on the final unref of the
-   * IOChannel object.
-   */
-  
-  /** Returns whether the file/socket/whatever associated with @a channel 
-   * will be closed when @a channel  receives its final unref and is
-   * destroyed. The default value of this is <tt>true</tt> for channels created
-   * by g_io_channel_new_file(), and <tt>false</tt> for all other channels.
-   * @return Whether the channel will be closed on the final unref of
-   * the GIOChannel data structure.
-   */
-  bool get_close_on_unref() const;
-
-  /** Setting this flag to <tt>true</tt> for a channel you have already closed
-   * can cause problems.
-   * @param do_close Whether to close the channel on the final unref of the
-   * IOChannel object.  The default value of this is <tt>true</tt> for channels
-   * created by create_from_file(), and <tt>false</tt> for all other channels.
-   */
-  
-  /** Setting this flag to <tt>true</tt> for a channel you have already closed
-   * can cause problems.
-   * @param do_close Whether to close the channel on the final unref of
-   * the GIOChannel data structure. The default value of
-   * this is <tt>true</tt> for channels created by g_io_channel_new_file(),
-   * and <tt>false</tt> for all other channels.
-   */
-  void set_close_on_unref(bool do_close);
-
-  /** Sets the encoding for the input/output of the channel.
-   * The internal encoding is always UTF-8.  The default encoding for the
-   * external file is UTF-8.  The encoding <tt>""</tt> is safe to use with
-   * binary data.
-   *
-   * The encoding can only be set if one of the following conditions
-   * is true:
-   *
-   * -# The channel was just created, and has not been written to or read from
-   *  yet.
-   * -# The channel is write-only.
-   * -# The channel is a file, and the file pointer was just repositioned by a
-   *  call to seek_position().  (This flushes all the internal buffers.)
-   * -# The current encoding is <tt>""</tt> or UTF-8.
-   * -# One of the read methods has just returned Glib::IO_STATUS_EOF (or, in
-   *  the case of read_to_end(), Glib::IO_STATUS_NORMAL).
-   * -# The read() method has returned Glib::IO_STATUS_AGAIN or thrown
-   *  a Glib::Error exception.  This may be useful in the case of
-   *  ConvertError::ILLEGAL_SEQUENCE.  Returning one of these statuses
-   *  from read_line() or read_to_end() does <em>not</em> guarantee that
-   *  the encoding can be changed.
-   *
-   * Channels which do not meet one of the above conditions cannot call
-   * seek_position() with a seek type of Glib::SEEK_TYPE_CUR and, if they
-   * are "seekable", cannot call write() after calling one of the API
-   * "read" methods.
-   *
-   * @param encoding The encoding name, or <tt>""</tt> for binary.
-   * @return Glib::IO_STATUS_NORMAL if the encoding was successfully set.
-   * @throw Glib::IOChannelError
-   */
-  IOStatus set_encoding(const std::string& encoding = std::string());
-  
-
-  /** Get the encoding of the I/O channel.
-   * @return The current encoding of the channel.
-   */
-  std::string get_encoding() const;
-  
-
-  void set_line_term(const std::string& term = std::string());
-  
-
-  std::string get_line_term() const;
-  
-
-  /** Creates an IOSource object.
-   * Create a slot from a function to be called when condition is met
-   * for the channel with sigc::ptr_fun() or sigc::mem_fun() and pass
-   * it into the connect() function of the returned IOSource object.
-   * Polling of the channel will start when you attach a MainContext
-   * object to the returned IOSource object using its attach() function.
-   *
-   * Glib::signal_io().connect() is a simpler interface to the same
-   * functionality, for the case where you want to add the source to the
-   * default main context.
-   * @param condition The condition to watch for.
-   * @return An IOSource object that can be polled from a MainContext's event loop.
-   */
-  Glib::RefPtr<IOSource> create_watch(IOCondition condition);
-  
-
-  virtual void reference()   const;
-  virtual void unreference() const;
-  
-
-  GIOChannel*       gobj()       { return gobject_; }
-  const GIOChannel* gobj() const { return gobject_; }
-
-protected:
-  GIOChannel* gobject_;
-
-  /** Constructor that should be used by derived classes.
-   * Use this constructor if you want to inherit from IOChannel.
-   * It will set up a GIOChannel that will call the vfuncs of your 
-   * class even if it is being used from C code, and it will keep
-   * a reference to the C++ code while the GIOChannel exists.
-   */
-  IOChannel();
-  
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  IOChannel(GIOChannel* gobject, bool take_copy);
-#endif
-
-  virtual IOStatus read_vfunc(char* buf, gsize count, gsize& bytes_read);
-  virtual IOStatus write_vfunc(const char* buf, gsize count, gsize& bytes_written);
-  virtual IOStatus seek_vfunc(gint64 offset, SeekType type);
-  virtual IOStatus close_vfunc();
-  virtual IOStatus set_flags_vfunc(IOFlags flags);
-  virtual IOFlags  get_flags_vfunc();
-  virtual Glib::RefPtr<Glib::Source> create_watch_vfunc(IOCondition cond);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  friend class Glib::GlibmmIOChannel;
-#endif
-
-
-};
-
-Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy = false);
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_IOCHANNEL_H */
-
diff --git a/libs/glibmm2/glibmm/listhandle.h b/libs/glibmm2/glibmm/listhandle.h
deleted file mode 100644 (file)
index 94b366d..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_LISTHANDLE_H
-#define _GLIBMM_LISTHANDLE_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/glist.h>
-#include <glibmm/containerhandle_shared.h>
-
-
-namespace Glib
-{
-
-namespace Container_Helpers
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/* Create and fill a GList as efficient as possible.
- * This requires bidirectional iterators.
- */
-template <class Bi, class Tr>
-GList* create_list(Bi pbegin, Bi pend, Tr)
-{
-  GList* head = 0;
-
-  while(pend != pbegin)
-  {
-    // Use & to force a warning if the iterator returns a temporary object.
-    const void *const item = Tr::to_c_type(*&*--pend);
-    head = g_list_prepend(head, const_cast<void*>(item));
-  }
-
-  return head;
-}
-
-/* Create a GList from a 0-terminated input sequence.
- * Build it in reverse order and reverse the whole list afterwards,
- * because appending to the list would be horribly inefficient.
- */
-template <class For, class Tr>
-GList* create_list(For pbegin, Tr)
-{
-  GList* head = 0;
-
-  while(*pbegin)
-  {
-    // Use & to force a warning if the iterator returns a temporary object.
-    const void *const item = Tr::to_c_type(*&*pbegin);
-    head = g_list_prepend(head, const_cast<void*>(item));
-    ++pbegin;
-  }
-
-  return g_list_reverse(head);
-}
-
-
-/* Convert from any container that supports bidirectional iterators.
- */
-template <class Tr, class Cont>
-struct ListSourceTraits
-{
-  static GList* get_data(const Cont& cont)
-    { return Glib::Container_Helpers::create_list(cont.begin(), cont.end(), Tr()); }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_SHALLOW;
-};
-
-/* Convert from a 0-terminated array.  The Cont
- * argument must be a pointer to the first element.
- */
-template <class Tr, class Cont>
-struct ListSourceTraits<Tr,Cont*>
-{
-  static GList* get_data(const Cont* array)
-    { return (array) ? Glib::Container_Helpers::create_list(array, Tr()) : 0; }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_SHALLOW;
-};
-
-template <class Tr, class Cont>
-struct ListSourceTraits<Tr,const Cont*> : ListSourceTraits<Tr,Cont*>
-{};
-
-/* Convert from a 0-terminated array.  The Cont argument must be a pointer
- * to the first element.  For consistency, the array must be 0-terminated,
- * even though the array size is known at compile time.
- */
-template <class Tr, class Cont, size_t N>
-struct ListSourceTraits<Tr,Cont[N]>
-{
-  static GList* get_data(const Cont* array)
-    { return Glib::Container_Helpers::create_list(array, array + (N - 1), Tr()); }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_SHALLOW;
-};
-
-template <class Tr, class Cont, size_t N>
-struct ListSourceTraits<Tr,const Cont[N]> : ListSourceTraits<Tr,Cont[N]>
-{};
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/**
- * @ingroup ContHelpers
- * If a method takes this as an argument, or has this as a return type, then you can use a standard
- * container such as std::list or std::vector.
- */
-template <class Tr>
-class ListHandleIterator
-{
-public:
-  typedef typename Tr::CppType        CppType;
-  typedef typename Tr::CType          CType;
-
-  typedef std::forward_iterator_tag   iterator_category;
-  typedef CppType                     value_type;
-  typedef ptrdiff_t                   difference_type;
-  typedef value_type                  reference;
-  typedef void                        pointer;
-
-  explicit inline ListHandleIterator(const GList* node);
-
-  inline value_type                   operator*() const;
-  inline ListHandleIterator<Tr> &     operator++();
-  inline const ListHandleIterator<Tr> operator++(int);
-
-  inline bool operator==(const ListHandleIterator<Tr>& rhs) const;
-  inline bool operator!=(const ListHandleIterator<Tr>& rhs) const;
-
-private:
-  const GList* node_;
-};
-
-} // namespace Container_Helpers
-
-
-/**
- * @ingroup ContHandles
- */
-template < class T, class Tr = Glib::Container_Helpers::TypeTraits<T> >
-class ListHandle
-{
-public:
-  typedef typename Tr::CppType  CppType;
-  typedef typename Tr::CType    CType;
-
-  typedef CppType               value_type;
-  typedef size_t                size_type;
-  typedef ptrdiff_t             difference_type;
-
-  typedef Glib::Container_Helpers::ListHandleIterator<Tr>  const_iterator;
-  typedef Glib::Container_Helpers::ListHandleIterator<Tr>  iterator;
-
-  template <class Cont> inline
-    ListHandle(const Cont& container);
-
-  // Take over ownership of an array created by GTK+ functions.
-  inline ListHandle(GList* glist, Glib::OwnershipType ownership);
-
-  // Copying clears the ownership flag of the source handle.
-  inline ListHandle(const ListHandle<T,Tr>& other);
-
-  ~ListHandle();
-
-  inline const_iterator begin() const;
-  inline const_iterator end()   const;
-
-  template <class U> inline operator std::vector<U>() const;
-  template <class U> inline operator std::deque<U>()  const;
-  template <class U> inline operator std::list<U>()   const;
-
-  template <class Cont> inline
-    void assign_to(Cont& container) const;
-
-  template <class Out> inline
-    void copy(Out pdest) const;
-
-  inline GList* data()  const;
-  inline size_t size()  const;
-  inline bool   empty() const;
-
-private:
-  GList *                     plist_;
-  mutable Glib::OwnershipType ownership_;
-
-  // No copy assignment.
-  ListHandle<T,Tr>& operator=(const ListHandle<T,Tr>&);
-};
-
-
-/***************************************************************************/
-/*  Inline implementation                                                  */
-/***************************************************************************/
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-namespace Container_Helpers
-{
-
-/**** Glib::Container_Helpers::ListHandleIterator<> ************************/
-
-template <class Tr> inline
-ListHandleIterator<Tr>::ListHandleIterator(const GList* node)
-:
-  node_ (node)
-{}
-
-template <class Tr> inline
-typename ListHandleIterator<Tr>::value_type ListHandleIterator<Tr>::operator*() const
-{
-  return Tr::to_cpp_type(static_cast<typename Tr::CTypeNonConst>(node_->data));
-}
-
-template <class Tr> inline
-ListHandleIterator<Tr>& ListHandleIterator<Tr>::operator++()
-{
-  node_ = node_->next;
-  return *this;
-}
-
-template <class Tr> inline
-const ListHandleIterator<Tr> ListHandleIterator<Tr>::operator++(int)
-{
-  const ListHandleIterator<Tr> tmp (*this);
-  node_ = node_->next;
-  return tmp;
-}
-
-template <class Tr> inline
-bool ListHandleIterator<Tr>::operator==(const ListHandleIterator<Tr>& rhs) const
-{
-  return (node_ == rhs.node_);
-}
-
-template <class Tr> inline
-bool ListHandleIterator<Tr>::operator!=(const ListHandleIterator<Tr>& rhs) const
-{
-  return (node_ != rhs.node_);
-}
-
-} // namespace Container_Helpers
-
-
-/**** Glib::ListHandle<> ***************************************************/
-
-template <class T, class Tr>
-  template <class Cont>
-inline
-ListHandle<T,Tr>::ListHandle(const Cont& container)
-:
-  plist_     (Glib::Container_Helpers::ListSourceTraits<Tr,Cont>::get_data(container)),
-  ownership_ (Glib::Container_Helpers::ListSourceTraits<Tr,Cont>::initial_ownership)
-{}
-
-template <class T, class Tr> inline
-ListHandle<T,Tr>::ListHandle(GList* glist, Glib::OwnershipType ownership)
-:
-  plist_     (glist),
-  ownership_ (ownership)
-{}
-
-template <class T, class Tr> inline
-ListHandle<T,Tr>::ListHandle(const ListHandle<T,Tr>& other)
-:
-  plist_     (other.plist_),
-  ownership_ (other.ownership_)
-{
-  other.ownership_ = Glib::OWNERSHIP_NONE;
-}
-
-template <class T, class Tr>
-ListHandle<T,Tr>::~ListHandle()
-{
-  if(ownership_ != Glib::OWNERSHIP_NONE)
-  {
-    if(ownership_ != Glib::OWNERSHIP_SHALLOW)
-    {
-      // Deep ownership: release each container element.
-      for(GList* node = plist_; node != 0; node = node->next)
-        Tr::release_c_type(static_cast<typename Tr::CTypeNonConst>(node->data));
-    }
-    g_list_free(plist_);
-  }
-}
-
-template <class T, class Tr> inline
-typename ListHandle<T,Tr>::const_iterator ListHandle<T,Tr>::begin() const
-{
-  return Glib::Container_Helpers::ListHandleIterator<Tr>(plist_);
-}
-
-template <class T, class Tr> inline
-typename ListHandle<T,Tr>::const_iterator ListHandle<T,Tr>::end() const
-{
-  return Glib::Container_Helpers::ListHandleIterator<Tr>(0);
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-ListHandle<T,Tr>::operator std::vector<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::vector<U>(this->begin(), this->end());
-#else
-  std::vector<U> temp;
-  temp.reserve(this->size());
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-ListHandle<T,Tr>::operator std::deque<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::deque<U>(this->begin(), this->end());
-#else
-  std::deque<U> temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-ListHandle<T,Tr>::operator std::list<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::list<U>(this->begin(), this->end());
-#else
-  std::list<U> temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class Cont>
-inline
-void ListHandle<T,Tr>::assign_to(Cont& container) const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  container.assign(this->begin(), this->end());
-#else
-  Cont temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  container.swap(temp);
-#endif
-}
-
-template <class T, class Tr>
-  template <class Out>
-inline
-void ListHandle<T,Tr>::copy(Out pdest) const
-{
-  std::copy(this->begin(), this->end(), pdest);
-}
-
-template <class T, class Tr> inline
-GList* ListHandle<T,Tr>::data() const
-{
-  return plist_;
-}
-
-template <class T, class Tr> inline
-size_t ListHandle<T,Tr>::size() const
-{
-  return g_list_length(plist_);
-}
-
-template <class T, class Tr> inline
-bool ListHandle<T,Tr>::empty() const
-{
-  return (plist_ == 0);
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_LISTHANDLE_H */
-
diff --git a/libs/glibmm2/glibmm/main.cc b/libs/glibmm2/glibmm/main.cc
deleted file mode 100644 (file)
index 45e1e0d..0000000
+++ /dev/null
@@ -1,986 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/main.h>
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/thread.h>
-#include <glibmm/wrap.h>
-#include <glibmm/iochannel.h>
-
-#include <glib/gmessages.h>
-#include <algorithm>
-
-GLIBMM_USING_STD(min)
-
-
-namespace
-{
-
-class SourceConnectionNode
-{
-public:
-  explicit inline SourceConnectionNode(const sigc::slot_base& slot);
-
-  static void* notify(void* data);
-  static void  destroy_notify_callback(void* data);
-
-  inline void install(GSource* source);
-  inline sigc::slot_base* get_slot();
-
-private:
-  sigc::slot_base slot_;
-  GSource* source_;
-};
-
-inline
-SourceConnectionNode::SourceConnectionNode(const sigc::slot_base& slot)
-:
-  slot_ (slot),
-  source_ (0)
-{
-  slot_.set_parent(this, &SourceConnectionNode::notify);
-}
-
-void* SourceConnectionNode::notify(void* data)
-{
-  SourceConnectionNode *const self = static_cast<SourceConnectionNode*>(data);
-
-  // if there is no object, this call was triggered from destroy_notify_handler(),
-  // because we set self->source_ to 0 there:
-  if (self->source_)
-  {
-    GSource* s = self->source_;  
-    self->source_ = 0;
-    g_source_destroy(s);
-
-    // Destroying the object triggers execution of destroy_notify_handler(),
-    // eiter immediately or later, so we leave that to do the deletion.
-  }
-
-  return 0;
-}
-
-// static
-void SourceConnectionNode::destroy_notify_callback(void* data)
-{
-  SourceConnectionNode *const self = static_cast<SourceConnectionNode*>(data);
-
-  if (self)
-  {
-    // The GLib side is disconnected now, thus the GSource* is no longer valid.
-    self->source_ = 0;
-
-    delete self;
-  }
-}
-
-inline
-void SourceConnectionNode::install(GSource* source)
-{
-  source_ = source;
-}
-
-inline
-sigc::slot_base* SourceConnectionNode::get_slot()
-{
-  return &slot_;
-}
-
-
-/* We use the callback data member of GSource to store both a pointer to our
- * wrapper and a pointer to the connection node that is currently being used.
- * The one and only SourceCallbackData object of a Glib::Source is constructed
- * in the ctor of Glib::Source and destroyed after the GSource object when the
- * reference counter of the GSource object reaches zero!
- */
-struct SourceCallbackData
-{
-  explicit inline SourceCallbackData(Glib::Source* wrapper_);
-
-  void set_node(SourceConnectionNode* node_);
-
-  static void destroy_notify_callback(void* data);
-
-  Glib::Source* wrapper;
-  SourceConnectionNode* node;
-};
-
-inline
-SourceCallbackData::SourceCallbackData(Glib::Source* wrapper_)
-:
-  wrapper (wrapper_),
-  node    (0)
-{}
-
-void SourceCallbackData::set_node(SourceConnectionNode* node_)
-{
-  if(node)
-    SourceConnectionNode::destroy_notify_callback(node);
-
-  node = node_;
-}
-
-// static
-void SourceCallbackData::destroy_notify_callback(void* data)
-{
-  SourceCallbackData *const self = static_cast<SourceCallbackData*>(data);
-
-  if(self->node)
-    SourceConnectionNode::destroy_notify_callback(self->node);
-
-  if(self->wrapper)
-    Glib::Source::destroy_notify_callback(self->wrapper);
-
-  delete self;
-}
-
-
-/* Retrieve the callback data from a wrapped GSource object.
- */
-static SourceCallbackData* glibmm_source_get_callback_data(GSource* source)
-{
-  g_return_val_if_fail(source->callback_funcs->get != 0, 0);
-
-  GSourceFunc func;
-  void* user_data = 0;
-
-  // Retrieve the callback function and data.
-  (*source->callback_funcs->get)(source->callback_data, source, &func, &user_data);
-
-  return static_cast<SourceCallbackData*>(user_data);
-}
-
-/* Glib::Source doesn't use the callback function installed with
- * g_source_set_callback().  Instead, it invokes the sigc++ slot
- * directly from dispatch_vfunc(), which is both simpler and more
- * efficient.
- * For correctness, provide a pointer to this dummy callback rather
- * than some random pointer.  That also allows for sanity checks
- * here as well as in Source::dispatch_vfunc().
- */
-static gboolean glibmm_dummy_source_callback(void*)
-{
-  g_assert_not_reached();
-  return 0;
-}
-
-/* Only used by SignalTimeout::connect() and SignalIdle::connect().
- * These don't use Glib::Source, to avoid the unnecessary overhead
- * of a completely unused wrapper object.
- */
-static gboolean glibmm_source_callback(void* data)
-{
-  SourceConnectionNode *const conn_data = static_cast<SourceConnectionNode*>(data);
-
-  try
-  {
-    // Recreate the specific slot from the generic slot node.
-    return (*static_cast<sigc::slot<bool>*>(conn_data->get_slot()))();
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-  return 0;
-}
-
-static gboolean glibmm_iosource_callback(GIOChannel*, GIOCondition condition, void* data)
-{
-  SourceCallbackData *const callback_data = static_cast<SourceCallbackData*>(data);
-  g_return_val_if_fail(callback_data->node != 0, 0);
-
-  try
-  {
-    // Recreate the specific slot from the generic slot node.
-    return (*static_cast<sigc::slot<bool,Glib::IOCondition>*>(callback_data->node->get_slot()))
-                                  ((Glib::IOCondition) condition);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-  return 0;
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-/**** Glib::PollFD *********************************************************/
-
-PollFD::PollFD()
-{
-  gobject_.fd      = 0;
-  gobject_.events  = 0;
-  gobject_.revents = 0;
-}
-
-PollFD::PollFD(int fd)
-{
-  gobject_.fd      = fd;
-  gobject_.events  = 0;
-  gobject_.revents = 0;
-}
-
-PollFD::PollFD(int fd, IOCondition events)
-{
-  gobject_.fd      = fd;
-  gobject_.events  = events;
-  gobject_.revents = 0;
-}
-
-
-/**** Glib::SignalTimeout **************************************************/
-
-inline
-SignalTimeout::SignalTimeout(GMainContext* context)
-:
-  context_ (context)
-{}
-
-sigc::connection SignalTimeout::connect(const sigc::slot<bool>& slot,
-                                        unsigned int interval, int priority)
-{
-  SourceConnectionNode *const conn_node = new SourceConnectionNode(slot);
-  const sigc::connection connection (*conn_node->get_slot());
-
-  GSource *const source = g_timeout_source_new(interval);
-
-  if(priority != G_PRIORITY_DEFAULT)
-    g_source_set_priority(source, priority);
-
-  g_source_set_callback(
-      source, &glibmm_source_callback, conn_node,
-      &SourceConnectionNode::destroy_notify_callback);
-
-  g_source_attach(source, context_);
-  g_source_unref(source); // GMainContext holds a reference
-
-  conn_node->install(source);
-  return connection;
-}
-
-SignalTimeout signal_timeout()
-{
-  return SignalTimeout(0); // 0 means default context
-}
-
-
-/**** Glib::SignalIdle *****************************************************/
-
-inline
-SignalIdle::SignalIdle(GMainContext* context)
-:
-  context_ (context)
-{}
-
-sigc::connection SignalIdle::connect(const sigc::slot<bool>& slot, int priority)
-{
-  SourceConnectionNode *const conn_node = new SourceConnectionNode(slot);
-  const sigc::connection connection (*conn_node->get_slot());
-
-  GSource *const source = g_idle_source_new();
-
-  if(priority != G_PRIORITY_DEFAULT)
-    g_source_set_priority(source, priority);
-
-  g_source_set_callback(
-      source, &glibmm_source_callback, conn_node,
-      &SourceConnectionNode::destroy_notify_callback);
-
-  g_source_attach(source, context_);
-  g_source_unref(source); // GMainContext holds a reference
-
-  conn_node->install(source);
-  return connection;
-}
-
-SignalIdle signal_idle()
-{
-  return SignalIdle(0); // 0 means default context
-}
-
-
-/**** Glib::SignalIO *******************************************************/
-
-inline
-SignalIO::SignalIO(GMainContext* context)
-:
-  context_ (context)
-{}
-
-sigc::connection SignalIO::connect(const sigc::slot<bool,IOCondition>& slot,
-                                   int fd, IOCondition condition, int priority)
-{
-  const Glib::RefPtr<IOSource> source = IOSource::create(fd, condition);
-
-  if(priority != G_PRIORITY_DEFAULT)
-    source->set_priority(priority);
-
-  const sigc::connection connection = source->connect(slot);
-
-  g_source_attach(source->gobj(), context_);
-
-  return connection;
-}
-
-sigc::connection SignalIO::connect(const sigc::slot<bool,IOCondition>& slot,
-                                   const Glib::RefPtr<IOChannel>& channel,
-                                   IOCondition condition, int priority)
-{
-  const Glib::RefPtr<IOSource> source = IOSource::create(channel, condition);
-
-  if(priority != G_PRIORITY_DEFAULT)
-    source->set_priority(priority);
-
-  const sigc::connection connection = source->connect(slot);
-
-  g_source_attach(source->gobj(), context_);
-
-  return connection;
-}
-
-SignalIO signal_io()
-{
-  return SignalIO(0); // 0 means default context
-}
-
-
-/**** Glib::MainContext ****************************************************/
-
-// static
-Glib::RefPtr<MainContext> MainContext::create()
-{
-  return Glib::RefPtr<MainContext>(reinterpret_cast<MainContext*>(g_main_context_new()));
-}
-
-// static
-Glib::RefPtr<MainContext> MainContext::get_default()
-{
-  return Glib::wrap(g_main_context_default(), true);
-}
-
-bool MainContext::iteration(bool may_block)
-{
-  return g_main_context_iteration(gobj(), may_block);
-}
-
-bool MainContext::pending()
-{
-  return g_main_context_pending(gobj());
-}
-
-void MainContext::wakeup()
-{
-  g_main_context_wakeup(gobj());
-}
-
-bool MainContext::acquire()
-{
-  return g_main_context_acquire(gobj());
-}
-
-bool MainContext::wait(Glib::Cond& cond, Glib::Mutex& mutex)
-{
-  return g_main_context_wait(gobj(), cond.gobj(), mutex.gobj());
-}
-
-void MainContext::release()
-{
-  g_main_context_release(gobj());
-}
-
-bool MainContext::prepare(int& priority)
-{
-  return g_main_context_prepare(gobj(), &priority);
-}
-
-bool MainContext::prepare()
-{
-  return g_main_context_prepare(gobj(), 0);
-}
-
-void MainContext::query(int max_priority, int& timeout, std::vector<PollFD>& fds)
-{
-  if(fds.empty())
-    fds.resize(8); // rather bogus number, but better than 0
-
-  for(;;)
-  {
-    const int size_before = fds.size();
-    const int size_needed = g_main_context_query(
-        gobj(), max_priority, &timeout, reinterpret_cast<GPollFD*>(&fds.front()), size_before);
-
-    fds.resize(size_needed);
-
-    if(size_needed <= size_before)
-      break;
-  }
-}
-
-bool MainContext::check(int max_priority, std::vector<PollFD>& fds)
-{
-  if(!fds.empty())
-    return g_main_context_check(gobj(), max_priority, reinterpret_cast<GPollFD*>(&fds.front()), fds.size());
-  else
-    return false;
-}
-
-void MainContext::dispatch()
-{
-  g_main_context_dispatch(gobj());
-}
-
-void MainContext::set_poll_func(GPollFunc poll_func)
-{
-  g_main_context_set_poll_func(gobj(), poll_func);
-}
-
-GPollFunc MainContext::get_poll_func()
-{
-  return g_main_context_get_poll_func(gobj());
-}
-
-void MainContext::add_poll(PollFD& fd, int priority)
-{
-  g_main_context_add_poll(gobj(), fd.gobj(), priority);
-}
-
-void MainContext::remove_poll(PollFD& fd)
-{
-  g_main_context_remove_poll(gobj(), fd.gobj());
-}
-
-SignalTimeout MainContext::signal_timeout()
-{
-  return SignalTimeout(gobj());
-}
-
-SignalIdle MainContext::signal_idle()
-{
-  return SignalIdle(gobj());
-}
-
-SignalIO MainContext::signal_io()
-{
-  return SignalIO(gobj());
-}
-
-void MainContext::reference() const
-{
-  g_main_context_ref(reinterpret_cast<GMainContext*>(const_cast<MainContext*>(this)));
-}
-
-void MainContext::unreference() const
-{
-  g_main_context_unref(reinterpret_cast<GMainContext*>(const_cast<MainContext*>(this)));
-}
-
-GMainContext* MainContext::gobj()
-{
-  return reinterpret_cast<GMainContext*>(this);
-}
-
-const GMainContext* MainContext::gobj() const
-{
-  return reinterpret_cast<const GMainContext*>(this);
-}
-
-GMainContext* MainContext::gobj_copy() const
-{
-  reference();
-  return const_cast<GMainContext*>(gobj());
-}
-
-Glib::RefPtr<MainContext> wrap(GMainContext* gobject, bool take_copy)
-{
-  if(take_copy && gobject)
-    g_main_context_ref(gobject);
-
-  return Glib::RefPtr<MainContext>(reinterpret_cast<MainContext*>(gobject));
-}
-
-
-/**** Glib::MainLoop *******************************************************/
-
-Glib::RefPtr<MainLoop> MainLoop::create(bool is_running)
-{
-  return Glib::RefPtr<MainLoop>(
-      reinterpret_cast<MainLoop*>(g_main_loop_new(0, is_running)));
-}
-
-Glib::RefPtr<MainLoop> MainLoop::create(const Glib::RefPtr<MainContext>& context, bool is_running)
-{
-  return Glib::RefPtr<MainLoop>(
-      reinterpret_cast<MainLoop*>(g_main_loop_new(Glib::unwrap(context), is_running)));
-}
-
-void MainLoop::run()
-{
-  g_main_loop_run(gobj());
-}
-
-void MainLoop::quit()
-{
-  g_main_loop_quit(gobj());
-}
-
-bool MainLoop::is_running()
-{
-  return g_main_loop_is_running(gobj());
-}
-
-Glib::RefPtr<MainContext> MainLoop::get_context()
-{
-  return Glib::wrap(g_main_loop_get_context(gobj()), true);
-}
-
-//static:
-int MainLoop::depth()
-{
-  return g_main_depth();
-}                                             
-
-void MainLoop::reference() const
-{
-  g_main_loop_ref(reinterpret_cast<GMainLoop*>(const_cast<MainLoop*>(this)));
-}
-
-void MainLoop::unreference() const
-{
-  g_main_loop_unref(reinterpret_cast<GMainLoop*>(const_cast<MainLoop*>(this)));
-}
-
-GMainLoop* MainLoop::gobj()
-{
-  return reinterpret_cast<GMainLoop*>(this);
-}
-
-const GMainLoop* MainLoop::gobj() const
-{
-  return reinterpret_cast<const GMainLoop*>(this);
-}
-
-GMainLoop* MainLoop::gobj_copy() const
-{
-  reference();
-  return const_cast<GMainLoop*>(gobj());
-}
-
-Glib::RefPtr<MainLoop> wrap(GMainLoop* gobject, bool take_copy)
-{
-  if(take_copy && gobject)
-    g_main_loop_ref(gobject);
-
-  return Glib::RefPtr<MainLoop>(reinterpret_cast<MainLoop*>(gobject));
-}
-
-
-/**** Glib::Source *********************************************************/
-
-// static
-const GSourceFuncs Source::vfunc_table_ =
-{
-  &Source::prepare_vfunc,
-  &Source::check_vfunc,
-  &Source::dispatch_vfunc,
-  0, // finalize_vfunc // We can't use finalize_vfunc because there is no way
-                       // to store a pointer to our wrapper anywhere in GSource so
-                       // that it persists until finalize_vfunc would be called from here.
-  0, // closure_callback
-  0, // closure_marshal
-};
-
-unsigned int Source::attach(const Glib::RefPtr<MainContext>& context)
-{
-  return g_source_attach(gobject_, Glib::unwrap(context));
-}
-
-unsigned int Source::attach()
-{
-  return g_source_attach(gobject_, 0);
-}
-
-void Source::destroy()
-{
-  g_source_destroy(gobject_);
-}
-
-void Source::set_priority(int priority)
-{
-  g_source_set_priority(gobject_, priority);
-}
-
-int Source::get_priority() const
-{
-  return g_source_get_priority(gobject_);
-}
-
-void Source::set_can_recurse(bool can_recurse)
-{
-  g_source_set_can_recurse(gobject_, can_recurse);
-}
-
-bool Source::get_can_recurse() const
-{
-  return g_source_get_can_recurse(gobject_);
-}
-
-unsigned int Source::get_id() const
-{
-  return g_source_get_id(gobject_);
-}
-
-Glib::RefPtr<MainContext> Source::get_context()
-{
-  return Glib::wrap(g_source_get_context(gobject_), true);
-}
-
-GSource* Source::gobj_copy() const
-{
-  return g_source_ref(gobject_);
-}
-
-void Source::reference() const
-{
-  g_source_ref(gobject_);
-}
-
-void Source::unreference() const
-{
-  g_source_unref(gobject_);
-}
-
-Source::Source()
-:
-  gobject_ (g_source_new(const_cast<GSourceFuncs*>(&vfunc_table_), sizeof(GSource)))
-{
-  g_source_set_callback(
-      gobject_, &glibmm_dummy_source_callback,
-      new SourceCallbackData(this), // our persistant callback data object
-      &SourceCallbackData::destroy_notify_callback);
-}
-
-Source::Source(GSource* cast_item, GSourceFunc callback_func)
-:
-  gobject_ (cast_item)
-{
-  g_source_set_callback(
-      gobject_, callback_func,
-      new SourceCallbackData(this), // our persistant callback data object
-      &SourceCallbackData::destroy_notify_callback);
-}
-
-Source::~Source()
-{
-  // The dtor should be invoked by destroy_notify_callback() only, which clears
-  // gobject_ before deleting.  However, we might also get to this point if
-  // a derived ctor threw an exception, and then we need to unref manually.
-
-  if(gobject_)
-  {
-    SourceCallbackData *const data = glibmm_source_get_callback_data(gobject_);
-    data->wrapper = 0;
-
-    GSource *const tmp_gobject = gobject_;
-    gobject_ = 0;
-
-    g_source_unref(tmp_gobject);
-  }
-}
-
-sigc::connection Source::connect_generic(const sigc::slot_base& slot)
-{
-  SourceConnectionNode *const conn_node = new SourceConnectionNode(slot);
-  const sigc::connection connection (*conn_node->get_slot());
-
-  // Don't override the callback data.  Reuse the existing one
-  // calling SourceCallbackData::set_node() to register conn_node.
-  SourceCallbackData *const data = glibmm_source_get_callback_data(gobject_);
-  data->set_node(conn_node);
-
-  conn_node->install(gobject_);
-  return connection;
-}
-
-void Source::add_poll(Glib::PollFD& poll_fd)
-{
-  g_source_add_poll(gobject_, poll_fd.gobj());
-}
-
-void Source::remove_poll(Glib::PollFD& poll_fd)
-{
-  g_source_remove_poll(gobject_, poll_fd.gobj());
-}
-
-void Source::get_current_time(Glib::TimeVal& current_time)
-{
-  g_source_get_current_time(gobject_, &current_time);
-}
-
-inline // static
-Source* Source::get_wrapper(GSource* source)
-{
-  SourceCallbackData *const data = glibmm_source_get_callback_data(source);
-  return data->wrapper;
-}
-
-// static
-gboolean Source::prepare_vfunc(GSource* source, int* timeout)
-{
-  try
-  {
-    Source *const self = get_wrapper(source);
-    return self->prepare(*timeout);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-  return 0;
-}
-
-// static
-gboolean Source::check_vfunc(GSource* source)
-{
-  try
-  {
-    Source *const self = get_wrapper(source);
-    return self->check();
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-  return 0;
-}
-
-// static
-gboolean Source::dispatch_vfunc(GSource*, GSourceFunc callback, void* user_data)
-{
-  SourceCallbackData *const callback_data = static_cast<SourceCallbackData*>(user_data);
-
-  g_return_val_if_fail(callback == &glibmm_dummy_source_callback, 0);
-  g_return_val_if_fail(callback_data != 0 && callback_data->node != 0, 0);
-
-  try
-  {
-    Source *const self = callback_data->wrapper;
-    return self->dispatch(callback_data->node->get_slot());
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-  return 0;
-}
-
-// static
-void Source::destroy_notify_callback(void* data)
-{
-  if(data)
-  {
-    Source *const self = static_cast<Source*>(data);
-
-    // gobject_ is already invalid at this point.
-    self->gobject_ = 0;
-
-    // No exception checking: if the dtor throws, you're out of luck anyway.
-    delete self;
-  }
-}
-
-
-/**** Glib::TimeoutSource **************************************************/
-
-// static
-Glib::RefPtr<TimeoutSource> TimeoutSource::create(unsigned int interval)
-{
-  return Glib::RefPtr<TimeoutSource>(new TimeoutSource(interval));
-}
-
-sigc::connection TimeoutSource::connect(const sigc::slot<bool>& slot)
-{
-  return connect_generic(slot);
-}
-
-TimeoutSource::TimeoutSource(unsigned int interval)
-:
-  interval_ (interval)
-{
-  expiration_.assign_current_time();
-  expiration_.add_milliseconds(std::min<unsigned long>(G_MAXLONG, interval_));
-}
-
-TimeoutSource::~TimeoutSource()
-{}
-
-bool TimeoutSource::prepare(int& timeout)
-{
-  Glib::TimeVal current_time;
-  get_current_time(current_time);
-
-  Glib::TimeVal remaining = expiration_;
-  remaining.subtract(current_time);
-
-  if(remaining.negative())
-  {
-    // Already expired.
-    timeout = 0;
-  }
-  else
-  {
-    const unsigned long milliseconds =
-        static_cast<unsigned long>(remaining.tv_sec)  * 1000U +
-        static_cast<unsigned long>(remaining.tv_usec) / 1000U;
-
-    // Set remaining milliseconds.
-    timeout = std::min<unsigned long>(G_MAXINT, milliseconds);
-
-    // Check if the system time has been set backwards. (remaining > interval)
-    remaining.add_milliseconds(- std::min<unsigned long>(G_MAXLONG, interval_) - 1);
-    if(!remaining.negative())
-    {
-      // Oh well.  Reset the expiration time to now + interval;
-      // this at least avoids hanging for long periods of time.
-      expiration_ = current_time;
-      expiration_.add_milliseconds(interval_);
-      timeout = std::min<unsigned int>(G_MAXINT, interval_);
-    }
-  }
-
-  return (timeout == 0);
-}
-
-bool TimeoutSource::check()
-{
-  Glib::TimeVal current_time;
-  get_current_time(current_time);
-
-  return (expiration_ <= current_time);
-}
-
-bool TimeoutSource::dispatch(sigc::slot_base* slot)
-{
-  const bool again = (*static_cast<sigc::slot<bool>*>(slot))();
-
-  if(again)
-  {
-    get_current_time(expiration_);
-    expiration_.add_milliseconds(std::min<unsigned long>(G_MAXLONG, interval_));
-  }
-
-  return again;
-}
-
-
-/**** Glib::IdleSource *****************************************************/
-
-// static
-Glib::RefPtr<IdleSource> IdleSource::create()
-{
-  return Glib::RefPtr<IdleSource>(new IdleSource());
-}
-
-sigc::connection IdleSource::connect(const sigc::slot<bool>& slot)
-{
-  return connect_generic(slot);
-}
-
-IdleSource::IdleSource()
-{
-  set_priority(PRIORITY_DEFAULT_IDLE);
-}
-
-IdleSource::~IdleSource()
-{}
-
-bool IdleSource::prepare(int& timeout)
-{
-  timeout = 0;
-  return true;
-}
-
-bool IdleSource::check()
-{
-  return true;
-}
-
-bool IdleSource::dispatch(sigc::slot_base* slot)
-{
-  return (*static_cast<sigc::slot<bool>*>(slot))();
-}
-
-
-/**** Glib::IOSource *******************************************************/
-
-// static
-Glib::RefPtr<IOSource> IOSource::create(int fd, IOCondition condition)
-{
-  return Glib::RefPtr<IOSource>(new IOSource(fd, condition));
-}
-
-Glib::RefPtr<IOSource> IOSource::create(const Glib::RefPtr<IOChannel>& channel, IOCondition condition)
-{
-  return Glib::RefPtr<IOSource>(new IOSource(channel, condition));
-}
-
-sigc::connection IOSource::connect(const sigc::slot<bool,IOCondition>& slot)
-{
-  return connect_generic(slot);
-}
-
-IOSource::IOSource(int fd, IOCondition condition)
-:
-  poll_fd_ (fd, condition)
-{
-  add_poll(poll_fd_);
-}
-
-IOSource::IOSource(const Glib::RefPtr<IOChannel>& channel, IOCondition condition)
-:
-  Source(g_io_create_watch(channel->gobj(), (GIOCondition) condition),
-         (GSourceFunc) &glibmm_iosource_callback)
-{}
-
-IOSource::~IOSource()
-{}
-
-bool IOSource::prepare(int& timeout)
-{
-  timeout = -1;
-  return false;
-}
-
-bool IOSource::check()
-{
-  return ((poll_fd_.get_revents() & poll_fd_.get_events()) != 0);
-}
-
-bool IOSource::dispatch(sigc::slot_base* slot)
-{
-  return (*static_cast<sigc::slot<bool,IOCondition>*>(slot))
-                                 (poll_fd_.get_revents());
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/main.h b/libs/glibmm2/glibmm/main.h
deleted file mode 100644 (file)
index 4165be3..0000000
+++ /dev/null
@@ -1,697 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_MAIN_H
-#define _GLIBMM_MAIN_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/giochannel.h>
-#include <glib/gmain.h>
-
-#include <vector>
-#include <sigc++/sigc++.h>
-
-#include <glibmmconfig.h>
-#include <glibmm/refptr.h>
-#include <glibmm/timeval.h>
-
-GLIBMM_USING_STD(vector)
-
-
-namespace Glib
-{
-
-class Cond;
-class Mutex;
-class IOChannel;
-
-
-/** @defgroup MainLoop The Main Event Loop
- * Manages all available sources of events.
- * @{
- */
-
-enum
-{
-  /*! Use this for high priority event sources.  It is not used within
-   * GLib or GTK+.<br><br>
-   */
-  PRIORITY_HIGH = -100,
-
-  /*! Use this for default priority event sources.  In glibmm this
-   * priority is used by default when installing timeout handlers with
-   * SignalTimeout::connect().  In GDK this priority is used for events
-   * from the X server.<br><br>
-   */
-  PRIORITY_DEFAULT = 0,
-
-  /*! Use this for high priority idle functions.  GTK+ uses
-   * <tt>PRIORITY_HIGH_IDLE&nbsp;+&nbsp;10</tt> for resizing operations, and
-   * <tt>PRIORITY_HIGH_IDLE&nbsp;+&nbsp;20</tt> for redrawing operations.
-   * (This is done to ensure that any pending resizes are processed before
-   * any pending redraws, so that widgets are not redrawn twice unnecessarily.)
-   * <br><br>
-   */
-  PRIORITY_HIGH_IDLE = 100,
-
-  /*! Use this for default priority idle functions.  In glibmm this priority is
-   * used by default when installing idle handlers with SignalIdle::connect().
-   * <br><br>
-   */
-  PRIORITY_DEFAULT_IDLE = 200,
-
-  /*! Use this for very low priority background tasks.  It is not used within
-   * GLib or GTK+.
-   */
-  PRIORITY_LOW = 300
-};
-
-
-/** A bitwise combination representing an I/O condition to watch for on an
- * event source.
- * The flags correspond to those used by the <tt>%poll()</tt> system call
- * on UNIX (see <tt>man 2 poll</tt>).  To test for individual flags, do
- * something like this:
- * @code
- * if((condition & Glib::IO_OUT) != 0)
- *   do_some_output();
- * @endcode
- * @par Bitwise operators:
- * <tt>IOCondition operator|(IOCondition, IOCondition)</tt><br>
- * <tt>IOCondition operator&(IOCondition, IOCondition)</tt><br>
- * <tt>IOCondition operator^(IOCondition, IOCondition)</tt><br>
- * <tt>IOCondition operator~(IOCondition)</tt><br>
- * <tt>IOCondition& operator|=(IOCondition&, IOCondition)</tt><br>
- * <tt>IOCondition& operator&=(IOCondition&, IOCondition)</tt><br>
- * <tt>IOCondition& operator^=(IOCondition&, IOCondition)</tt><br>
- */
-enum IOCondition
-{
-  IO_IN   = G_IO_IN,  /*!< @hideinitializer There is data to read. */
-  IO_OUT  = G_IO_OUT, /*!< @hideinitializer Data can be written (without blocking). */
-  IO_PRI  = G_IO_PRI, /*!< @hideinitializer There is urgent data to read. */
-  IO_ERR  = G_IO_ERR, /*!< @hideinitializer %Error condition. */
-  IO_HUP  = G_IO_HUP, /*!< @hideinitializer Hung up (the connection has been broken,
-                                            usually for pipes and sockets). */
-  IO_NVAL = G_IO_NVAL /*!< @hideinitializer Invalid request. The file descriptor is not open. */
-};
-
-inline IOCondition operator|(IOCondition lhs, IOCondition rhs)
-  { return static_cast<IOCondition>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
-
-inline IOCondition operator&(IOCondition lhs, IOCondition rhs)
-  { return static_cast<IOCondition>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
-
-inline IOCondition operator^(IOCondition lhs, IOCondition rhs)
-  { return static_cast<IOCondition>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
-
-inline IOCondition operator~(IOCondition flags)
-  { return static_cast<IOCondition>(~static_cast<unsigned>(flags)); }
-
-inline IOCondition& operator|=(IOCondition& lhs, IOCondition rhs)
-  { return (lhs = static_cast<IOCondition>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
-
-inline IOCondition& operator&=(IOCondition& lhs, IOCondition rhs)
-  { return (lhs = static_cast<IOCondition>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
-
-inline IOCondition& operator^=(IOCondition& lhs, IOCondition rhs)
-  { return (lhs = static_cast<IOCondition>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
-
-
-class PollFD
-{
-public:
-  PollFD();
-  explicit PollFD(int fd);
-  PollFD(int fd, IOCondition events);
-
-  void set_fd(int fd) { gobject_.fd = fd;   }
-  int  get_fd() const { return gobject_.fd; }
-
-  void set_events(IOCondition events)   { gobject_.events = events; }
-  IOCondition get_events() const        { return static_cast<IOCondition>(gobject_.events); }
-
-  void set_revents(IOCondition revents) { gobject_.revents = revents; }
-  IOCondition get_revents() const       { return static_cast<IOCondition>(gobject_.revents); }
-
-  GPollFD*       gobj()       { return &gobject_; }
-  const GPollFD* gobj() const { return &gobject_; }
-
-private:
-  GPollFD gobject_;
-};
-
-
-class SignalTimeout
-{
-public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  explicit inline SignalTimeout(GMainContext* context);
-#endif
-
-  /** Connects a timeout handler.
-   * @code
-   * Glib::signal_timeout().connect(sigc::ptr_fun(&timeout_handler), 1000);
-   * @endcode
-   * is equivalent to:
-   * @code
-   * const Glib::RefPtr<Glib::TimeoutSource> timeout_source = Glib::TimeoutSource::create(1000);
-   * timeout_source->connect(sigc::ptr_fun(&timeout_handler));
-   * timeout_source->attach(Glib::MainContext::get_default());
-   * @endcode
-   * @param slot A slot to call when @a interval elapsed.
-   * @param interval The timeout in milliseconds.
-   * @param priority The priority of the new event source.
-   * @return A connection handle, which can be used to disconnect the handler.
-   */
-  sigc::connection connect(const sigc::slot<bool>& slot, unsigned int interval,
-                           int priority = PRIORITY_DEFAULT);
-private:
-  GMainContext* context_;
-
-  // no copy assignment
-  SignalTimeout& operator=(const SignalTimeout&);
-};
-
-
-class SignalIdle
-{
-public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  explicit inline SignalIdle(GMainContext* context);
-#endif
-
-  /** Connects an idle handler.
-   * @code
-   * Glib::signal_idle().connect(sigc::ptr_fun(&idle_handler));
-   * @endcode
-   * is equivalent to:
-   * @code
-   * const Glib::RefPtr<Glib::IdleSource> idle_source = Glib::IdleSource::create();
-   * idle_source->connect(sigc::ptr_fun(&idle_handler));
-   * idle_source->attach(Glib::MainContext::get_default());
-   * @endcode
-   * @param slot A slot to call when the main loop is idle.
-   * @param priority The priority of the new event source.
-   * @return A connection handle, which can be used to disconnect the handler.
-   */
-  sigc::connection connect(const sigc::slot<bool>& slot, int priority = PRIORITY_DEFAULT_IDLE);
-
-private:
-  GMainContext* context_;
-
-  // no copy assignment
-  SignalIdle& operator=(const SignalIdle&);
-};
-
-
-class SignalIO
-{
-public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  explicit inline SignalIO(GMainContext* context);
-#endif
-
-  /** Connects an I/O handler.
-   * @code
-   * Glib::signal_io().connect(sigc::ptr_fun(&io_handler), fd, Glib::IO_IN | Glib::IO_HUP);
-   * @endcode
-   * is equivalent to:
-   * @code
-   * const Glib::RefPtr<Glib::IOSource> io_source = Glib::IOSource::create(fd, Glib::IO_IN | Glib::IO_HUP);
-   * io_source->connect(sigc::ptr_fun(&io_handler));
-   * io_source->attach(Glib::MainContext::get_default());
-   * @endcode
-   * @param slot A slot to call when polling @a fd results in an event that matches @a condition.
-   * The event will be passed as a parameter to @a slot.
-   * If @a io_handler returns <tt>false</tt> the signal is disconnected.
-   * @param fd The file descriptor (or a @c HANDLE on Win32 systems) to watch.
-   * @param condition The conditions to watch for.
-   * @param priority The priority of the new event source.
-   * @return A connection handle, which can be used to disconnect the handler.
-   */
-  sigc::connection connect(const sigc::slot<bool,IOCondition>& slot, int fd,
-                           IOCondition condition, int priority = PRIORITY_DEFAULT);
-
-  /** Connects an I/O channel.
-   * @code
-   * Glib::signal_io().connect(sigc::ptr_fun(&io_handler), channel, Glib::IO_IN | Glib::IO_HUP);
-   * @endcode
-   * is equivalent to:
-   * @code
-   * const Glib::RefPtr<Glib::IOSource> io_source = Glib::IOSource::create(channel, Glib::IO_IN | Glib::IO_HUP);
-   * io_source->connect(sigc::ptr_fun(&io_handler));
-   * io_source->attach(Glib::MainContext::get_default());
-   * @endcode
-   * @param slot A slot to call when polling @a channel results in an event that matches @a condition.
-   * The event will be passed as a parameter to @a slot.
-   * If @a io_handler returns <tt>false</tt> the signal is disconnected.
-   * @param channel The IOChannel object to watch.
-   * @param condition The conditions to watch for.
-   * @param priority The priority of the new event source.
-   * @return A connection handle, which can be used to disconnect the handler.
-   */
-  sigc::connection connect(const sigc::slot<bool,IOCondition>& slot, const Glib::RefPtr<IOChannel>& channel,
-                           IOCondition condition, int priority = PRIORITY_DEFAULT);
-
-private:
-  GMainContext* context_;
-
-  // no copy assignment
-  SignalIO& operator=(const SignalIO&);
-};
-
-
-/** Convenience timeout signal.
- * @return A signal proxy; you want to use SignalTimeout::connect().
- */
-SignalTimeout signal_timeout();
-
-/** Convenience idle signal.
- * @return A signal proxy; you want to use SignalIdle::connect().
- */
-SignalIdle signal_idle();
-
-/** Convenience I/O signal.
- * @return A signal proxy; you want to use SignalIO::connect().
- */
-SignalIO signal_io();
-
-
-/** Main context.
- */
-class MainContext
-{
-public:
-  typedef Glib::MainContext  CppObjectType;
-  typedef GMainContext       BaseObjectType;
-
-  /** Creates a new MainContext.
-   * @return The new MainContext.
-   */
-  static Glib::RefPtr<MainContext> create();
-  /** Returns the default main context. 
-   * This is the main context used for main loop functions when a main loop is not explicitly specified.
-   * @return The new MainContext.
-   */
-  static Glib::RefPtr<MainContext> get_default();
-
-  /** Runs a single iteration for the given main loop. 
-   * This involves checking to see if any event sources are ready to be processed, then if no events sources are ready and may_block is true, waiting for a source to become ready, then dispatching the highest priority events sources that are ready. Note that even when may_block is true, it is still possible for iteration() to return FALSE, since the the wait may be interrupted for other reasons than an event source becoming ready.
-   * @param may_block Whether the call may block.
-   * @return true if events were dispatched.
-   */
-  bool iteration(bool may_block);
-
-  /** Checks if any sources have pending events for the given context.
-   * @return true if events are pending.
-   */
-  bool pending();
-
-  /** If context is currently waiting in a poll(), interrupt the poll(), and continue the iteration process.
-   */
-  void wakeup();
-
-  /** Tries to become the owner of the specified context. 
-   * If some other context is the owner of the context, returns FALSE immediately. Ownership is properly recursive: the owner can require ownership again and will release ownership when release() is called as many times as acquire().
-   * You must be the owner of a context before you can call prepare(), query(), check(), dispatch().
-   * @return true if the operation succeeded, and this thread is now the owner of context.
-   */
-  bool acquire();
-
-
-  /** Tries to become the owner of the specified context, as with acquire(). But if another thread is the owner, atomically drop mutex and wait on cond until that owner releases ownership or until cond is signaled, then try again (once) to become the owner.
-   * @param cond A condition variable.
-   * @param mutex A mutex, currently held.
-   * @return true if the operation succeeded, and this thread is now the owner of context.
-   */
-  bool wait(Glib::Cond& cond, Glib::Mutex& mutex);
-
-  /** Releases ownership of a context previously acquired by this thread with acquire(). If the context was acquired multiple times, the only release ownership when release() is called as many times as it was acquired.
-   */
-  void release();
-
-
-
-  /** Prepares to poll sources within a main loop. The resulting information for polling is determined by calling query().
-   * @param priority Location to store priority of highest priority source already ready.
-   * @return true if some source is ready to be dispatched prior to polling.
-   */
-  bool prepare(int& priority);
-  /** Prepares to poll sources within a main loop. The resulting information for polling is determined by calling query().
-   * @return true if some source is ready to be dispatched prior to polling.
-   */
-  bool prepare();
-
-  /** Determines information necessary to poll this main loop.
-   * @param max_priority Maximum priority source to check.
-   * @param timeout Location to store timeout to be used in polling.
-   * @param fds Location to store Glib::PollFD records that need to be polled.
-   * @return the number of records actually stored in fds, or, if more than n_fds records need to be stored, the number of records that need to be stored.
-   */
-  void query(int max_priority, int& timeout, std::vector<PollFD>& fds);
-
-  /** Passes the results of polling back to the main loop.
-   * @param max_priority Maximum numerical priority of sources to check.
-   * @param fds Vector of Glib::PollFD's that was passed to the last call to query()
-   * @return true if some sources are ready to be dispatched.
-   */
-  bool check(int max_priority, std::vector<PollFD>& fds);
-
-  /** Dispatches all pending sources.
-   */
-  void dispatch();
-
-  //TODO: Use slot instead?
-  /** Sets the function to use to handle polling of file descriptors. It will be used instead of the poll() system call (or GLib's replacement function, which is used where poll() isn't available).
-   * This function could possibly be used to integrate the GLib event loop with an external event loop.
-   * @param poll_func The function to call to poll all file descriptors.
-   */
-  void set_poll_func(GPollFunc poll_func);
-
-  /** Gets the poll function set by g_main_context_set_poll_func().
-   * @return The poll function
-   */
-  GPollFunc get_poll_func();
-
-  /** Adds a file descriptor to the set of file descriptors polled for this context. This will very seldomly be used directly. Instead a typical event source will use Glib::Source::add_poll() instead.
-   * @param fd A PollFD structure holding information about a file descriptor to watch.
-   * @param priority The priority for this file descriptor which should be the same as the priority used for Glib::Source::attach() to ensure that the file descriptor is polled whenever the results may be needed.
-   */
-  void add_poll(PollFD& fd, int priority);
-  
-  /** Removes file descriptor from the set of file descriptors to be polled for a particular context.
-   * @param fd A PollFD structure holding information about a file descriptor.
-   */
-  void remove_poll(PollFD& fd);
-
-  /** Timeout signal, attached to this MainContext.
-   * @return A signal proxy; you want to use SignalTimeout::connect().
-   */
-  SignalTimeout signal_timeout();
-
-  /** Idle signal, attached to this MainContext.
-   * @return A signal proxy; you want to use SignalIdle::connect().
-   */
-  SignalIdle signal_idle();
-
-  /** I/O signal, attached to this MainContext.
-   * @return A signal proxy; you want to use SignalIO::connect().
-   */
-  SignalIO signal_io();
-
-  void reference()   const;
-  void unreference() const;
-
-  GMainContext*       gobj();
-  const GMainContext* gobj() const;
-  GMainContext*       gobj_copy() const;
-
-private:
-  // Glib::MainContext can neither be constructed nor deleted.
-  MainContext();
-  void operator delete(void*, size_t);
-
-  // noncopyable
-  MainContext(const MainContext& other);
-  MainContext& operator=(const MainContext& other);
-
-};
-
-/** @relates Glib::MainContext */
-Glib::RefPtr<MainContext> wrap(GMainContext* gobject, bool take_copy = false);
-
-
-class MainLoop
-{
-public:
-  typedef Glib::MainLoop  CppObjectType;
-  typedef GMainLoop       BaseObjectType;
-
-  static Glib::RefPtr<MainLoop> create(bool is_running = false);
-  static Glib::RefPtr<MainLoop> create(const Glib::RefPtr<MainContext>& context,
-                                       bool is_running = false);
-
-  /** Runs a main loop until quit() is called on the loop. 
-   * If this is called for the thread of the loop's MainContext, it will process events from the loop, otherwise it will simply wait.
-   */
-  void run();
-
-  /** Stops a MainLoop from running. Any calls to run() for the loop will return.
-   */
-  void quit();
-
-  /** Checks to see if the main loop is currently being run via run().
-   * @return true if the mainloop is currently being run.
-   */
-  bool is_running();
-
-  /** Returns the MainContext of loop.
-   * @return The MainContext of loop.
-   */
-  Glib::RefPtr<MainContext> get_context();
-
-  //TODO: C++ize the (big) g_main_depth docs here.
-  static int depth();
-
-  /** Increases the reference count on a MainLoop object by one.
-   */
-  void reference()   const;
-
-  /** Decreases the reference count on a MainLoop object by one. 
-   * If the result is zero, free the loop and free all associated memory.
-   */
-  void unreference() const;
-
-  GMainLoop*       gobj();
-  const GMainLoop* gobj() const;
-  GMainLoop*       gobj_copy() const;
-
-private:
-  // Glib::MainLoop can neither be constructed nor deleted.
-  MainLoop();
-  void operator delete(void*, size_t);
-
-  MainLoop(const MainLoop&);
-  MainLoop& operator=(const MainLoop&);
-};
-
-/** @relates Glib::MainLoop */
-Glib::RefPtr<MainLoop> wrap(GMainLoop* gobject, bool take_copy = false);
-
-
-class Source
-{
-public:
-  typedef Glib::Source  CppObjectType;
-  typedef GSource       BaseObjectType;
-
-  static Glib::RefPtr<Source> create() /* = 0 */;
-
-  /** Adds a Source to a context so that it will be executed within that context.
-   * @param context A MainContext.
-   * @return The ID for the source within the MainContext.
-   */
-  unsigned int attach(const Glib::RefPtr<MainContext>& context);
-
-  /** Adds a Source to a context so that it will be executed within that context.
-   * The default context will be used.
-   * @return The ID for the source within the MainContext.
-   */
-  unsigned int attach();
-
-  //TODO: Does this destroy step make sense in C++? Should it just be something that happens in a destructor?
-  
-  /** Removes a source from its MainContext, if any, and marks it as destroyed. 
-   * The source cannot be subsequently added to another context.
-   */
-  void destroy();
-
-  /** Sets the priority of a source. While the main loop is being run, a source will be dispatched if it is ready to be dispatched and no sources at a higher (numerically smaller) priority are ready to be dispatched.
-   * @param priority The new priority.
-   */
-  void set_priority(int priority);
-  
-  /** Gets the priority of a source.
-   * @return The priority of the source.
-   */
-  int  get_priority() const;
-
-  /** Sets whether a source can be called recursively. 
-   * If @a can_recurse is true, then while the source is being dispatched then this source will be processed normally. Otherwise, all processing of this source is blocked until the dispatch function returns.
-   * @param can_recurse Whether recursion is allowed for this source.
-   */
-  void set_can_recurse(bool can_recurse);
-  
-  /** Checks whether a source is allowed to be called recursively. see set_can_recurse().
-   * @return Whether recursion is allowed.
-   */
-  bool get_can_recurse() const;
-
-  /** Returns the numeric ID for a particular source. 
-   * The ID of a source is unique within a particular main loop context. The reverse mapping from ID to source is done by MainContext::find_source_by_id().
-   * @return The ID for the source.
-   */
-  unsigned int get_id() const;
-
-  //TODO: Add a const version of this method?
-  /** Gets the MainContext with which the source is associated. 
-   * Calling this function on a destroyed source is an error.
-   * @return The MainContext with which the source is associated, or a null RefPtr if the context has not yet been added to a source. 
-   */
-  Glib::RefPtr<MainContext> get_context();
-
-  GSource*       gobj()       { return gobject_; }
-  const GSource* gobj() const { return gobject_; }
-  GSource*       gobj_copy() const;
-
-  void reference()   const;
-  void unreference() const;
-
-protected:
-  /** Construct an object that uses the virtual functions prepare(), check() and dispatch().
-   */
-  Source();
-
-  /** Wrap an existing GSource object and install the given callback function.
-   * The constructed object doesn't use the virtual functions prepare(), check() and dispatch().
-   * This constructor is for use by derived types that need to wrap a GSource object.
-   * The callback function can be a static member function. But beware -
-   * depending on the actual implementation of the GSource's virtual functions
-   * the expected type of the callback function can differ from GSourceFunc.
-   */
-  Source(GSource* cast_item, GSourceFunc callback_func);
-
-  virtual ~Source();
-
-  sigc::connection connect_generic(const sigc::slot_base& slot);
-
-  /** Adds a file descriptor to the set of file descriptors polled for this source. 
-   * The event source's check function will typically test the revents field in the PollFD  and return true if events need to be processed.
-   * @param poll_fd A PollFD object holding information about a file descriptor to watch.
-   */
-  void add_poll(PollFD& poll_fd);
-  
-  /** Removes a file descriptor from the set of file descriptors polled for this source.
-   * @param poll_fd A PollFD object previously passed to add_poll(). 
-   */
-  void remove_poll(PollFD& poll_fd);
-
-  /** Gets the "current time" to be used when checking this source. The advantage of calling this function over calling get_current_time() directly is that when checking multiple sources, GLib can cache a single value instead of having to repeatedly get the system time.
-   * @param current_time Glib::TimeVal in which to store current time
-   */
-  void get_current_time(Glib::TimeVal& current_time);
-
-  virtual bool prepare(int& timeout) = 0;
-  virtual bool check() = 0;
-  virtual bool dispatch(sigc::slot_base* slot) = 0;
-
-private:
-  GSource* gobject_;
-
-#ifndef DOXGEN_SHOULD_SKIP_THIS
-
-  static inline Source* get_wrapper(GSource* source);
-
-  static const GSourceFuncs vfunc_table_;
-
-  static gboolean prepare_vfunc(GSource* source, int* timeout);
-  static gboolean check_vfunc(GSource* source);
-  static gboolean dispatch_vfunc(GSource* source, GSourceFunc callback, void* user_data);
-public:
-  static void destroy_notify_callback(void* data);
-private:
-
-#endif /* DOXGEN_SHOULD_SKIP_THIS */
-
-  // noncopyable
-  Source(const Source&);
-  Source& operator=(const Source&);
-};
-
-
-class TimeoutSource : public Glib::Source
-{
-public:
-  typedef Glib::TimeoutSource CppObjectType;
-
-  static Glib::RefPtr<TimeoutSource> create(unsigned int interval);
-  sigc::connection connect(const sigc::slot<bool>& slot);
-
-protected:
-  explicit TimeoutSource(unsigned int interval);
-  virtual ~TimeoutSource();
-
-  virtual bool prepare(int& timeout);
-  virtual bool check();
-  virtual bool dispatch(sigc::slot_base* slot);
-
-private:
-  Glib::TimeVal expiration_;
-  unsigned int  interval_;
-};
-
-
-class IdleSource : public Glib::Source
-{
-public:
-  typedef Glib::IdleSource CppObjectType;
-
-  static Glib::RefPtr<IdleSource> create();
-  sigc::connection connect(const sigc::slot<bool>& slot);
-
-protected:
-  IdleSource();
-  virtual ~IdleSource();
-
-  virtual bool prepare(int& timeout);
-  virtual bool check();
-  virtual bool dispatch(sigc::slot_base* slot_data);
-};
-
-
-class IOSource : public Glib::Source
-{
-public:
-  typedef Glib::IOSource CppObjectType;
-
-  static Glib::RefPtr<IOSource> create(int fd, IOCondition condition);
-  static Glib::RefPtr<IOSource> create(const Glib::RefPtr<IOChannel>& channel, IOCondition condition);
-  sigc::connection connect(const sigc::slot<bool,IOCondition>& slot);
-
-protected:
-  IOSource(int fd, IOCondition condition);
-  IOSource(const Glib::RefPtr<IOChannel>& channel, IOCondition condition);
-  virtual ~IOSource();
-
-  virtual bool prepare(int& timeout);
-  virtual bool check();
-  virtual bool dispatch(sigc::slot_base* slot);
-
-private:
-  PollFD poll_fd_;
-};
-
-/** @} group MainLoop */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_MAIN_H */
-
diff --git a/libs/glibmm2/glibmm/markup.cc b/libs/glibmm2/glibmm/markup.cc
deleted file mode 100644 (file)
index b069040..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/markup.h>
-#include <glibmm/private/markup_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/markup.h>
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/utility.h>
-#include <glib.h>
-
-
-namespace Glib
-{
-
-namespace Markup
-{
-
-Glib::ustring escape_text(const Glib::ustring& text)
-{
-  const Glib::ScopedPtr<char> buf (g_markup_escape_text(text.data(), text.bytes()));
-  return Glib::ustring(buf.get());
-}
-
-
-/**** Glib::Markup::AttributeKeyLess ***************************************/
-
-bool AttributeKeyLess::operator()(const Glib::ustring& lhs, const Glib::ustring& rhs) const
-{
-  return (lhs.raw() < rhs.raw());
-}
-
-
-/**** Glib::Markup::ParserCallbacks ****************************************/
-
-class ParserCallbacks
-{
-public:
-  static const GMarkupParser vfunc_table;
-
-  static void start_element(GMarkupParseContext* context,
-                            const char*          element_name,
-                            const char**         attribute_names,
-                            const char**         attribute_values,
-                            void*                user_data,
-                            GError**             error);
-
-  static void end_element(GMarkupParseContext* context,
-                          const char*          element_name,
-                          void*                user_data,
-                          GError**             error);
-
-  static void text(GMarkupParseContext* context,
-                   const char*          text,
-                   gsize                text_len,  
-                   void*                user_data,
-                   GError**             error);
-
-  static void passthrough(GMarkupParseContext* context,
-                          const char*          passthrough_text,
-                          gsize                text_len,  
-                          void*                user_data,
-                          GError**             error);
-
-  static void error(GMarkupParseContext* context,
-                    GError*              error,
-                    void*                user_data);
-};
-
-
-const GMarkupParser ParserCallbacks::vfunc_table =
-{
-  &ParserCallbacks::start_element,
-  &ParserCallbacks::end_element,
-  &ParserCallbacks::text,
-  &ParserCallbacks::passthrough,
-  &ParserCallbacks::error,
-};
-
-void ParserCallbacks::start_element(GMarkupParseContext* context,
-                                    const char*          element_name,
-                                    const char**         attribute_names,
-                                    const char**         attribute_values,
-                                    void*                user_data,
-                                    GError**             error)
-{
-  ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
-  g_return_if_fail(context == cpp_context.gobj());
-
-  try
-  {
-    Parser::AttributeMap attributes;
-
-    if(attribute_names && attribute_values)
-    {
-      const char *const * pname  = attribute_names;
-      const char *const * pvalue = attribute_values;
-
-      for(; *pname && *pvalue; ++pname, ++pvalue)
-        attributes.insert(Parser::AttributeMap::value_type(*pname, *pvalue));
-
-      g_return_if_fail(*pname == 0 && *pvalue == 0);
-    }
-
-    cpp_context.get_parser()->on_start_element(cpp_context, element_name, attributes);
-  }
-  catch(MarkupError& err)
-  {
-    err.propagate(error);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-}
-
-void ParserCallbacks::end_element(GMarkupParseContext* context,
-                                  const char*          element_name,
-                                  void*                user_data,
-                                  GError**             error)
-{
-  ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
-  g_return_if_fail(context == cpp_context.gobj());
-
-  try
-  {
-    cpp_context.get_parser()->on_end_element(cpp_context, element_name);
-  }
-  catch(MarkupError& err)
-  {
-    err.propagate(error);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-}
-
-void ParserCallbacks::text(GMarkupParseContext* context,
-                           const char*          text,
-                           gsize                text_len,  
-                           void*                user_data,
-                           GError**             error)
-{
-  ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
-  g_return_if_fail(context == cpp_context.gobj());
-
-  try
-  {
-    cpp_context.get_parser()->on_text(cpp_context, Glib::ustring(text, text + text_len));
-  }
-  catch(MarkupError& err)
-  {
-    err.propagate(error);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-}
-
-void ParserCallbacks::passthrough(GMarkupParseContext* context,
-                                  const char*          passthrough_text,
-                                  gsize                text_len,  
-                                  void*                user_data,
-                                  GError**             error)
-{
-  ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
-  g_return_if_fail(context == cpp_context.gobj());
-
-  try
-  {
-    cpp_context.get_parser()->on_passthrough(
-        cpp_context, Glib::ustring(passthrough_text, passthrough_text + text_len));
-  }
-  catch(MarkupError& err)
-  {
-    err.propagate(error);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-}
-
-void ParserCallbacks::error(GMarkupParseContext* context,
-                            GError*              error,
-                            void*                user_data)
-{
-  ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
-
-  g_return_if_fail(context == cpp_context.gobj());
-  g_return_if_fail(error->domain == G_MARKUP_ERROR);
-
-  try
-  {
-    cpp_context.get_parser()->on_error(cpp_context, MarkupError(g_error_copy(error)));
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-}
-
-
-/**** Glib::Markup::Parser *************************************************/
-
-Parser::Parser()
-{}
-
-Parser::~Parser()
-{}
-
-void Parser::on_start_element(ParseContext&, const Glib::ustring&, const Parser::AttributeMap&)
-{}
-
-void Parser::on_end_element(ParseContext&, const Glib::ustring&)
-{}
-
-void Parser::on_text(ParseContext&, const Glib::ustring&)
-{}
-
-void Parser::on_passthrough(ParseContext&, const Glib::ustring&)
-{}
-
-void Parser::on_error(ParseContext&, const MarkupError&)
-{}
-
-
-/**** Glib::Markup::ParseContext *******************************************/
-
-ParseContext::ParseContext(Parser& parser, ParseFlags flags)
-:
-  parser_  (&parser),
-  gobject_ (g_markup_parse_context_new(&ParserCallbacks::vfunc_table, (GMarkupParseFlags) flags,
-                                       this, &ParseContext::destroy_notify_callback))
-{}
-
-ParseContext::~ParseContext()
-{
-  parser_ = 0;
-  g_markup_parse_context_free(gobject_);
-}
-
-void ParseContext::parse(const Glib::ustring& text)
-{
-  GError* error = 0;
-  g_markup_parse_context_parse(gobject_, text.data(), text.bytes(), &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-void ParseContext::parse(const char* text_begin, const char* text_end)
-{
-  GError* error = 0;
-  g_markup_parse_context_parse(gobject_, text_begin, text_end - text_begin, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-void ParseContext::end_parse()
-{
-  GError* error = 0;
-  g_markup_parse_context_end_parse(gobject_, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-Glib::ustring ParseContext::get_element() const
-{
-  const char *const element_name = g_markup_parse_context_get_element(gobject_);
-  return (element_name) ? Glib::ustring(element_name) : Glib::ustring();
-}
-
-int ParseContext::get_line_number() const
-{
-  int line_number = 0;
-  g_markup_parse_context_get_position(gobject_, &line_number, 0);
-  return line_number;
-}
-
-int ParseContext::get_char_number() const
-{
-  int char_number = 0;
-  g_markup_parse_context_get_position(gobject_, 0, &char_number);
-  return char_number;
-}
-
-// static
-void ParseContext::destroy_notify_callback(void* data)
-{
-  ParseContext *const self = static_cast<ParseContext*>(data);
-
-  // Detect premature destruction.
-  g_return_if_fail(self->parser_ == 0);
-}
-
-} // namespace Markup
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::MarkupError::MarkupError(Glib::MarkupError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_MARKUP_ERROR, error_code, error_message)
-{}
-
-Glib::MarkupError::MarkupError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::MarkupError::Code Glib::MarkupError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::MarkupError::throw_func(GError* gobject)
-{
-  throw Glib::MarkupError(gobject);
-}
-
-
diff --git a/libs/glibmm2/glibmm/markup.h b/libs/glibmm2/glibmm/markup.h
deleted file mode 100644 (file)
index 83076f1..0000000
+++ /dev/null
@@ -1,420 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_MARKUP_H
-#define _GLIBMM_MARKUP_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmm/error.h>
-#include <sigc++/sigc++.h>
-
-#include <map>
-#include <glibmmconfig.h>
-
-GLIBMM_USING_STD(map)
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GMarkupParseContext GMarkupParseContext; }
-#endif
-
-
-namespace Glib
-{
-
-/** @defgroup Markup Simple XML Subset Parser
- *
- * The Glib::Markup parser is intended to parse a simple markup format that's a
- * subset of XML. This is a small, efficient, easy-to-use parser. It should not
- * be used if you expect to interoperate with other applications generating
- * full-scale XML. However, it's very useful for application data files, config
- * files, etc. where you know your application will be the only one writing the
- * file. Full-scale XML parsers should be able to parse the subset used by
- * Glib::Markup parser, so you can easily migrate to full-scale XML at a later
- * time if the need arises.
- *
- * Glib::Markup is not guaranteed to signal an error on all invalid XML;
- * the parser may accept documents that an XML parser would not. However,
- * invalid XML documents are not considered valid Glib::Markup documents.
- *
- * @par Simplifications to XML include:
- *
- * - Only UTF-8 encoding is allowed.
- * - No user-defined entities.
- * - Processing instructions, comments and the doctype declaration are "passed
- *   through" but are not interpreted in any way.
- * - No DTD or validation.
- *
- * @par The markup format does support:
- *
- * - Elements
- * - Attributes
- * - 5 standard entities: <tt>\&amp; \&lt; \&gt; \&quot; \&apos;</tt>
- * - Character references
- * - Sections marked as <tt>CDATA</tt>
- *
- * @{
- */
-
-/** %Exception class for markup parsing errors.
- */
-class MarkupError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    BAD_UTF8,
-    EMPTY,
-    PARSE,
-    UNKNOWN_ELEMENT,
-    UNKNOWN_ATTRIBUTE,
-    INVALID_CONTENT
-  };
-
-  MarkupError(Code error_code, const Glib::ustring& error_message);
-  explicit MarkupError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-/*! @var MarkupError::Code MarkupError::BAD_UTF8
- * Text being parsed was not valid UTF-8.
- */
-/*! @var MarkupError::Code MarkupError::EMPTY
- * Document contained nothing, or only whitespace.
- */
-/*! @var MarkupError::Code MarkupError::PARSE
- * Document was ill-formed.
- */
-/*! @var MarkupError::Code MarkupError::UNKNOWN_ELEMENT
- * This error should be set by Glib::Markup::Parser virtual methods;
- * element wasn't known.
- */
-/*! @var MarkupError::Code MarkupError::UNKNOWN_ATTRIBUTE
- * This error should be set by Glib::Markup::Parser virtual methods;
- * attribute wasn't known.
- */
-/*! @var MarkupError::Code MarkupError::INVALID_CONTENT
- * This error should be set by Glib::Markup::Parser virtual methods;
- * something was wrong with contents of the document, e.g. invalid attribute value.
- */
-
-/** @} group Markup */
-
-
-namespace Markup
-{
-
-class ParseContext;
-
-/** @ingroup Markup */
-typedef Glib::MarkupError Error;
-
-
-/** Escapes text so that the markup parser will parse it verbatim.
- * Less than, greater than, ampersand, etc. are replaced with the corresponding
- * entities.  This function would typically be used when writing out a file to
- * be parsed with the markup parser.
- * @ingroup Markup
- * @param text Some valid UTF-8 text.
- * @return Escaped text.
- */
-Glib::ustring escape_text(const Glib::ustring& text);
-
-
-/** @addtogroup glibmmEnums Enums and Flags */
-
-/** There are no flags right now. Pass <tt>Glib::Markup::ParseFlags(0)</tt> for
- * the flags argument to all functions (this should be the default argument
- * anyway).
- * @ingroup glibmmEnums
- * @par Bitwise operators:
- * <tt>%ParseFlags operator|(ParseFlags, ParseFlags)</tt><br>
- * <tt>%ParseFlags operator&(ParseFlags, ParseFlags)</tt><br>
- * <tt>%ParseFlags operator^(ParseFlags, ParseFlags)</tt><br>
- * <tt>%ParseFlags operator~(ParseFlags)</tt><br>
- * <tt>%ParseFlags& operator|=(ParseFlags&, ParseFlags)</tt><br>
- * <tt>%ParseFlags& operator&=(ParseFlags&, ParseFlags)</tt><br>
- * <tt>%ParseFlags& operator^=(ParseFlags&, ParseFlags)</tt><br>
- */
-enum ParseFlags
-{
-  DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0
-};
-
-/** @ingroup glibmmEnums */
-inline ParseFlags operator|(ParseFlags lhs, ParseFlags rhs)
-  { return static_cast<ParseFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline ParseFlags operator&(ParseFlags lhs, ParseFlags rhs)
-  { return static_cast<ParseFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline ParseFlags operator^(ParseFlags lhs, ParseFlags rhs)
-  { return static_cast<ParseFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline ParseFlags operator~(ParseFlags flags)
-  { return static_cast<ParseFlags>(~static_cast<unsigned>(flags)); }
-
-/** @ingroup glibmmEnums */
-inline ParseFlags& operator|=(ParseFlags& lhs, ParseFlags rhs)
-  { return (lhs = static_cast<ParseFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline ParseFlags& operator&=(ParseFlags& lhs, ParseFlags rhs)
-  { return (lhs = static_cast<ParseFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline ParseFlags& operator^=(ParseFlags& lhs, ParseFlags rhs)
-  { return (lhs = static_cast<ParseFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
-
-
-/*! @var Markup::ParseFlags DO_NOT_USE_THIS_UNSUPPORTED_FLAG
- * Flag you should not use.
- */
-
-
-/** Binary predicate used by Markup::Parser::AttributeMap.
- * @ingroup Markup
- * Unlike <tt>operator<(const ustring& lhs, const ustring& rhs)</tt>
- * which would be used by the default <tt>std::less<></tt> predicate,
- * the AttributeKeyLess predicate is locale-independent.  This is both
- * more correct and much more efficient.
- */
-class AttributeKeyLess
-{
-public:
-  typedef Glib::ustring first_argument_type;
-  typedef Glib::ustring second_argument_type;
-  typedef bool          result_type;
-
-  bool operator()(const Glib::ustring& lhs, const Glib::ustring& rhs) const;
-};
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-class ParserCallbacks;
-#endif
-
-/** The abstract markup parser base class.
- * @ingroup Markup
- * To implement a parser for your markup format, derive from
- * Glib::Markup::Parser and implement the virtual methods.
- *
- * You don't have to override all of the virtual methods.  If a particular
- * method is not implement the data passed to it will be ignored.  Except for
- * the error method, any of these callbacks can throw an error exception; in
- * particular the MarkupError::UNKNOWN_ELEMENT,
- * MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT errors
- * are intended to be thrown from these overridden methods. If you throw an
- * error from a method, Glib::Markup::ParseContext::parse() will report that
- * error back to its caller.
- */
-class Parser : public sigc::trackable
-{
-public:
-  typedef std::map<Glib::ustring, Glib::ustring, Glib::Markup::AttributeKeyLess> AttributeMap;
-
-  virtual ~Parser() = 0;
-
-protected:
-  /** Constructs a Parser object.
-   * Note that Markup::Parser is an abstract class which can't be instantiated
-   * directly.  To implement the parser for your markup format, derive from
-   * Markup::Parser and implement the virtual methods.
-   */
-  Parser();
-
-  /** Called for open tags <tt>\<foo bar="baz"\></tt>.
-   * This virtual method is invoked when the opening tag of an element is seen.
-   * @param context The Markup::ParseContext object the parsed data belongs to.
-   * @param element_name The name of the element.
-   * @param attributes A map of attribute name/value pairs.
-   * @throw Glib::MarkupError An exception <em>you</em> should throw if
-   * something went wrong, for instance if an unknown attribute name was
-   * encountered.  In particular the MarkupError::UNKNOWN_ELEMENT,
-   * MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT
-   * errors are intended to be thrown from user-implemented methods.
-   */
-  virtual void on_start_element(ParseContext&        context,
-                                const Glib::ustring& element_name,
-                                const AttributeMap&  attributes);
-
-  /** Called for close tags <tt>\</foo\></tt>.
-   * This virtual method is invoked when the closing tag of an element is seen.
-   * @param context The Markup::ParseContext object the parsed data belongs to.
-   * @param element_name The name of the element.
-   * @throw Glib::MarkupError An exception <em>you</em> should throw if
-   * something went wrong, for instance if an unknown attribute name was
-   * encountered.  In particular the MarkupError::UNKNOWN_ELEMENT,
-   * MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT
-   * errors are intended to be thrown from user-implemented methods.
-   */
-  virtual void on_end_element(ParseContext& context, const Glib::ustring& element_name);
-
-  /** Called for character data.
-   * This virtual method is invoked when some text is seen (text is always
-   * inside an element).
-   * @param context The Markup::ParseContext object the parsed data belongs to.
-   * @param text The parsed text in UTF-8 encoding.
-   * @throw Glib::MarkupError An exception <em>you</em> should throw if
-   * something went wrong, for instance if an unknown attribute name was
-   * encountered.  In particular the MarkupError::UNKNOWN_ELEMENT,
-   * MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT
-   * errors are intended to be thrown from user-implemented methods.
-   */
-  virtual void on_text(ParseContext& context, const Glib::ustring& text);
-
-  /** Called for strings that should be re-saved verbatim in this same
-   * position, but are not otherwise interpretable.
-   * This virtual method is invoked for comments, processing instructions and
-   * doctype declarations; if you're re-writing the parsed document, write the
-   * passthrough text back out in the same position.
-   * @param context The Markup::ParseContext object the parsed data belongs to.
-   * @param passthrough_text The text that should be passed through.
-   * @throw Glib::MarkupError An exception <em>you</em> should throw if
-   * something went wrong, for instance if an unknown attribute name was
-   * encountered.  In particular the MarkupError::UNKNOWN_ELEMENT,
-   * MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT
-   * errors are intended to be thrown from user-implemented methods.
-   */
-  virtual void on_passthrough(ParseContext& context, const Glib::ustring& passthrough_text);
-
-  /** Called on error, including one thrown by an overridden virtual method.
-   * @param context The Markup::ParseContext object the parsed data belongs to.
-   * @param error A MarkupError object with detailed information about the error.
-   */
-  virtual void on_error(ParseContext& context, const MarkupError& error);
-
-private:
-  // noncopyable
-  Parser(const Parser&);
-  Parser& operator=(const Parser&);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  friend class Glib::Markup::ParserCallbacks;
-#endif
-};
-
-
-/** A parse context is used to parse marked-up documents.
- * @ingroup Markup
- * You can feed any number of documents into a context, as long as no errors
- * occur; once an error occurs, the parse context can't continue to parse text
- * (you have to destroy it and create a new parse context).
- */
-class ParseContext : public sigc::trackable
-{
-public:
-  /** Creates a new parse context.
-   * @param parser A Markup::Parser instance.
-   * @param flags Bitwise combination of Markup::ParseFlags.
-   */
-  explicit ParseContext(Parser& parser, ParseFlags flags = ParseFlags(0));
-  virtual ~ParseContext();
-
-  /** Feed some data to the ParseContext.
-   * The data need not be valid UTF-8; an error will be signalled if it's
-   * invalid. The data need not be an entire document; you can feed a document
-   * into the parser incrementally, via multiple calls to this function.
-   * Typically, as you receive data from a network connection or file, you feed
-   * each received chunk of data into this function, aborting the process if an
-   * error occurs. Once an error is reported, no further data may be fed to the
-   * ParseContext; all errors are fatal.
-   * @param text Chunk of text to parse.
-   * @throw Glib::MarkupError
-   */
-  void parse(const Glib::ustring& text);
-
-  /** Feed some data to the ParseContext.
-   * The data need not be valid UTF-8; an error will be signalled if it's
-   * invalid. The data need not be an entire document; you can feed a document
-   * into the parser incrementally, via multiple calls to this function.
-   * Typically, as you receive data from a network connection or file, you feed
-   * each received chunk of data into this function, aborting the process if an
-   * error occurs. Once an error is reported, no further data may be fed to the
-   * ParseContext; all errors are fatal.
-   * @param text_begin Begin of chunk of text to parse.
-   * @param text_end End of chunk of text to parse.
-   * @throw Glib::MarkupError
-   */
-  void parse(const char* text_begin, const char* text_end);
-
-  /** Signals to the ParseContext that all data has been fed into the parse
-   * context with parse(). This method reports an error if the document isn't
-   * complete, for example if elements are still open.
-   * @throw Glib::MarkupError
-   */
-  void end_parse();
-
-  /** Retrieves the name of the currently open element.
-   * @return The name of the currently open element, or <tt>""</tt>.
-   */
-  Glib::ustring get_element() const;
-
-  /** Retrieves the current line number.
-   * Intended for use in error messages; there are no strict semantics for what
-   * constitutes the "current" line number other than "the best number we could
-   * come up with for error messages."
-   */
-  int get_line_number() const;
-
-  /** Retrieves the number of the current character on the current line.
-   * Intended for use in error messages; there are no strict semantics for what
-   * constitutes the "current" character number other than "the best number we
-   * could come up with for error messages."
-   */
-  int get_char_number() const;
-
-  Parser*       get_parser()       { return parser_; }
-  const Parser* get_parser() const { return parser_; }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GMarkupParseContext*       gobj()       { return gobject_; }
-  const GMarkupParseContext* gobj() const { return gobject_; }
-#endif
-
-private:
-  Markup::Parser*       parser_;
-  GMarkupParseContext*  gobject_;
-
-  // noncopyable
-  ParseContext(const ParseContext&);
-  ParseContext& operator=(const ParseContext&);
-
-  static void destroy_notify_callback(void* data);
-};
-
-} // namespace Markup
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_MARKUP_H */
-
diff --git a/libs/glibmm2/glibmm/miscutils.cc b/libs/glibmm2/glibmm/miscutils.cc
deleted file mode 100644 (file)
index b25318f..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <cstddef>
-#include <cstring>
-
-#include <glibmm/miscutils.h>
-#include <glibmm/utility.h>
-#include <glib.h>
-
-
-namespace Glib
-{
-
-Glib::ustring get_application_name()
-{
-  if(const char *const application_name = g_get_application_name())
-  {
-    // Lets be a bit more strict than the original GLib function and ensure
-    // we always return valid UTF-8.  gtkmm coders surely won't expect invalid
-    // UTF-8 in a Glib::ustring returned by a glibmm function.
-
-    if(g_utf8_validate(application_name, -1, 0))
-      return Glib::ustring(application_name);
-
-    char *const appname_utf8 = g_filename_to_utf8(application_name, -1, 0, 0, 0);
-    g_return_val_if_fail(appname_utf8 != 0, "");
-
-    return Glib::ustring(ScopedPtr<char>(appname_utf8).get());
-  }
-
-  return Glib::ustring();
-}
-
-void set_application_name(const Glib::ustring& application_name)
-{
-  g_set_application_name(application_name.c_str());
-}
-
-std::string get_prgname()
-{
-  const char *const prgname = g_get_prgname();
-  return (prgname) ? std::string(prgname) : std::string();
-}
-
-void set_prgname(const std::string& prgname)
-{
-  g_set_prgname(prgname.c_str());
-}
-
-std::string getenv(const std::string& variable, bool& found)
-{
-  const char *const value = g_getenv(variable.c_str());
-  found = (value != 0);
-  return (value) ? std::string(value) : std::string();
-}
-
-std::string getenv(const std::string& variable)
-{
-  const char *const value = g_getenv(variable.c_str());
-  return (value) ? std::string(value) : std::string();
-}
-
-bool setenv(const std::string& variable, const std::string& value, bool overwrite)
-{
-  return g_setenv(variable.c_str(), value.c_str(), overwrite);
-}
-
-void unsetenv(const std::string& variable)
-{
-  g_unsetenv(variable.c_str());
-}
-
-std::string get_user_name()
-{
-  return std::string(g_get_user_name());
-}
-
-std::string get_real_name()
-{
-  return std::string(g_get_real_name());
-}
-
-std::string get_home_dir()
-{
-  return std::string(g_get_home_dir());
-}
-
-std::string get_tmp_dir()
-{
-  return std::string(g_get_tmp_dir());
-}
-
-std::string get_current_dir()
-{
-  const ScopedPtr<char> buf (g_get_current_dir());
-  return std::string(buf.get());
-}
-
-bool path_is_absolute(const std::string& filename)
-{
-  return g_path_is_absolute(filename.c_str());
-}
-
-std::string path_skip_root(const std::string& filename)
-{
-  // g_path_skip_root() returns a pointer _into_ the argument string,
-  // or NULL if there was no root component.
-
-  if(const char *const ptr = g_path_skip_root(filename.c_str()))
-    return std::string(ptr);
-  else
-    return std::string();
-}
-
-std::string path_get_basename(const std::string& filename)
-{
-  const ScopedPtr<char> buf (g_path_get_basename(filename.c_str()));
-  return std::string(buf.get());
-}
-
-std::string path_get_dirname(const std::string& filename)
-{
-  const ScopedPtr<char> buf (g_path_get_dirname(filename.c_str()));
-  return std::string(buf.get());
-}
-
-std::string build_filename(const Glib::ArrayHandle<std::string>& elements)
-{
-  return build_path(G_DIR_SEPARATOR_S, elements);
-}
-
-std::string build_filename(const std::string& elem1, const std::string& elem2)
-{
-  const char *const elements[] = { elem1.c_str(), elem2.c_str(), 0 };
-  return build_path(G_DIR_SEPARATOR_S, elements);                                          
-}
-
-/* Yes, this reimplements the functionality of g_build_path() -- because
- * it takes a varargs list, and calling it several times would result
- * in different behaviour.
- */
-std::string build_path(const std::string& separator, const Glib::ArrayHandle<std::string>& elements)
-{
-  std::string result;
-  result.reserve(256); //TODO: Explain why this magic number is useful. murrayc
-
-  const char *const sep = separator.c_str();
-  const size_t seplen   = separator.length();
-
-  bool is_first     = true;
-  bool have_leading = false;
-  const char* single_element = 0;
-  const char* last_trailing  = 0;
-
-  const char *const *const elements_begin = elements.data();
-  const char *const *const elements_end   = elements_begin + elements.size();
-
-  for(const char *const * pelement = elements_begin; pelement != elements_end; ++pelement)
-  {
-    const char* start = *pelement;
-
-    if(*start == '\0')
-      continue; // ignore empty elements
-
-    if(seplen != 0)
-    {
-      while(strncmp(start, sep, seplen) == 0)
-        start += seplen;
-    }
-
-    const char* end = start + strlen(start);
-
-    if(seplen != 0)
-    {
-      while(end >= start + seplen && strncmp(end - seplen, sep, seplen) == 0)
-        end -= seplen;
-
-      last_trailing = end;
-
-      while(last_trailing >= *pelement + seplen && strncmp(last_trailing - seplen, sep, seplen) == 0)
-        last_trailing -= seplen;
-
-      if(!have_leading)
-      {
-        // If the leading and trailing separator strings are in the
-        // same element and overlap, the result is exactly that element.
-        //
-        if(last_trailing <= start)
-          single_element = *pelement;
-
-        result.append(*pelement, start);
-        have_leading = true;
-      }
-      else
-        single_element = 0;
-    }
-
-    if(end == start)
-      continue;
-
-    if(!is_first)
-      result += separator;
-
-    result.append(start, end);
-    is_first = false;
-  }
-
-  if(single_element)
-    result = single_element;
-  else if(last_trailing)
-    result += last_trailing;
-
-  return result;
-}
-
-std::string find_program_in_path(const std::string& program)
-{
-  if(char *const buf = g_find_program_in_path(program.c_str()))
-    return std::string(ScopedPtr<char>(buf).get());
-  else
-    return std::string();
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/miscutils.h b/libs/glibmm2/glibmm/miscutils.h
deleted file mode 100644 (file)
index 8087add..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_MISCUTILS_H
-#define _GLIBMM_MISCUTILS_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/arrayhandle.h>
-#include <glibmm/ustring.h>
-
-
-namespace Glib
-{
-
-/** @defgroup MiscUtils Miscellaneous Utility Functions
- * Miscellaneous Utility Functions -- a selection of portable utility functions.
- * @{
- */
-
-/** Gets a human-readable name for the application,
- * as set by Glib::set_application_name().
- * This name should be localized if possible, and is intended for display to
- * the user.  Contrast with Glib::get_prgname(), which gets a non-localized
- * name. If Glib::set_application_name() has not been called, returns the
- * result of Glib::get_prgname() (which may be empty if Glib::set_prgname()
- * has also not been called).
- *
- * @return Human-readable application name. May return <tt>""</tt>.
- */
-Glib::ustring get_application_name();
-
-/** Sets a human-readable name for the application.
- * This name should be localized if possible, and is intended for display to
- * the user.  Contrast with Glib::set_prgname(), which sets a non-localized
- * name.  Glib::set_prgname() will be called automatically by
- * <tt>gtk_init()</tt>, but Glib::set_application_name() will not.
- *
- * Note that for thread safety reasons, this function can only be called once.
- *
- * The application name will be used in contexts such as error messages,
- * or when displaying an application's name in the task list.
- *
- * @param application_name Localized name of the application.
- */
-void set_application_name(const Glib::ustring& application_name);
-
-/** Gets the name of the program.
- * If you are using GDK or GTK+ the program name is set in <tt>gdk_init()</tt>,
- * which is called by <tt>gtk_init()</tt>.  The program name is found by taking
- * the last component of <tt>argv[0]</tt>.
- * @return The name of the program.
- */
-std::string get_prgname();
-
-/** Sets the name of the program.
- * @param prgname The name of the program.
- */
-void set_prgname(const std::string& prgname);
-
-/** Returns the value of an environment variable. The name and value
- * are in the GLib file name encoding. On Unix, this means the actual
- * bytes which might or might not be in some consistent character set
- * and encoding. On Windows, it is in UTF-8. On Windows, in case the
- * environment variable's value contains references to other
- * environment variables, they are expanded.
- *
- * @param variable The environment variable to get.
- * @retval found <tt>true</tt> Whether the environment variable has been found.
- * @return The value of the environment variable, or <tt>""</tt> if not found.
- */
-std::string getenv(const std::string& variable, bool& found);
-
-/** Returns the value of an environment variable. The name and value
- * are in the GLib file name encoding. On Unix, this means the actual
- * bytes which might or might not be in some consistent character set
- * and encoding. On Windows, it is in UTF-8. On Windows, in case the
- * environment variable's value contains references to other
- * environment variables, they are expanded.
- *
- * @param variable The environment variable to get.
- * @return The value of the environment variable, or <tt>""</tt> if not found.
- */
-std::string getenv(const std::string& variable);
-
-
-/** Sets an environment variable. Both the variable's name and value
- * should be in the GLib file name encoding. On Unix, this means that
- * they can be any sequence of bytes. On Windows, they should be in
- * UTF-8.
- *
- * Note that on some systems, when variables are overwritten, the memory 
- * used for the previous variables and its value isn't reclaimed.
- *
- * @param variable The environment variable to set. It must not contain '='.
- * @param value  The value to which the variable should be set.
- * @param overwrite Whether to change the variable if it already exists.
- * @result false if the environment variable couldn't be set.
- */ 
-bool setenv(const std::string& variable, const std::string& value, bool overwrite = true);
-
-/** Removes an environment variable from the environment.
- *
- * Note that on some systems, when variables are overwritten, the memory 
- * used for the previous variables and its value isn't reclaimed.
- * Furthermore, this function can't be guaranteed to operate in a 
- * threadsafe way.
- *
- * @param variable: the environment variable to remove. It  must not contain '='.
- **/
-void unsetenv(const std::string& variable);
-
-/** Gets the user name of the current user.
- * @return The name of the current user.
- */
-std::string get_user_name();
-
-/** Gets the real name of the user.
- * This usually comes from the user's entry in the <tt>passwd</tt> file.
- * @return The user's real name.
- */
-std::string get_real_name();
-
-/** Gets the current user's home directory.
- * @return The current user's home directory.
- */
-std::string get_home_dir();
-
-/** Gets the directory to use for temporary files.
- * This is found from inspecting the environment variables <tt>TMPDIR</tt>,
- * <tt>TMP</tt>, and <tt>TEMP</tt> in that order.  If none of those are defined
- * <tt>"/tmp"</tt> is returned on UNIX and <tt>"C:\\"</tt> on Windows.
- * @return The directory to use for temporary files.
- */
-std::string get_tmp_dir();
-
-/** Gets the current directory.
- * @return The current directory.
- */
-std::string get_current_dir();
-
-/** Returns @c true if the given @a filename is an absolute file name, i.e.\ it
- * contains a full path from the root directory such as <tt>"/usr/local"</tt>
- * on UNIX or <tt>"C:\\windows"</tt> on Windows systems.
- * @param filename A file name.
- * @return Whether @a filename is an absolute path.
- */
-bool path_is_absolute(const std::string& filename);
-
-/** Returns the remaining part of @a filename after the root component,
- * i.e.\ after the <tt>"/"</tt> on UNIX or <tt>"C:\\"</tt> on Windows.
- * If @a filename is not an absolute path, <tt>""</tt> will be returned.
- * @param filename A file name.
- * @return The file name without the root component, or <tt>""</tt>.
- */
-std::string path_skip_root(const std::string& filename);
-
-/** Gets the name of the file without any leading directory components.
- * @param filename The name of the file.
- * @return The name of the file without any leading directory components.
- */
-std::string path_get_basename(const std::string& filename);
-
-/** Gets the directory components of a file name.
- * If the file name has no directory components <tt>"."</tt> is returned.
- * @param filename The name of the file.
- * @return The directory components of the file.
- */
-std::string path_get_dirname(const std::string& filename);
-
-/** Creates a filename from a series of elements using the correct
- * separator for filenames.
- * This function behaves identically to Glib::build_path(G_DIR_SEPARATOR_S,
- * elements).  No attempt is made to force the resulting filename to be an
- * absolute path.  If the first element is a relative path, the result will
- * be a relative path.
- * @param elements A container holding the elements of the path to build.
- *   Any STL compatible container type is accepted.
- * @return The resulting path.
- */
-std::string build_filename(const Glib::ArrayHandle<std::string>& elements);
-
-/** Creates a filename from two elements using the correct separator for filenames.
- * No attempt is made to force the resulting filename to be an absolute path.
- * If the first element is a relative path, the result will be a relative path.
- * @param elem1 First path element.
- * @param elem2 Second path element.
- * @return The resulting path.
- */
-std::string build_filename(const std::string& elem1, const std::string& elem2);
-
-/** Creates a path from a series of elements using @a separator as the
- * separator between elements.
- *
- * At the boundary between two elements, any trailing occurrences of
- * @a separator in the first element, or leading occurrences of @a separator
- * in the second element are removed and exactly one copy of the separator is
- * inserted.
- *
- * Empty elements are ignored.
- *
- * The number of leading copies of the separator on the result is
- * the same as the number of leading copies of the separator on
- * the first non-empty element.
- *
- * The number of trailing copies of the separator on the result is the same
- * as the number of trailing copies of the separator on the last non-empty
- * element. (Determination of the number of trailing copies is done without
- * stripping leading copies, so if the separator is <tt>"ABA"</tt>,
- * <tt>"ABABA"</tt> has 1 trailing copy.)
- *
- * However, if there is only a single non-empty element, and there
- * are no characters in that element not part of the leading or
- * trailing separators, then the result is exactly the original value
- * of that element.
- *
- * Other than for determination of the number of leading and trailing
- * copies of the separator, elements consisting only of copies
- * of the separator are ignored.
- *                                                                             
- * @param separator A string used to separate the elements of the path.
- * @param elements A container holding the elements of the path to build.
- *   Any STL compatible container type is accepted.
- * @return The resulting path.
- */
-std::string build_path(const std::string& separator,
-                       const Glib::ArrayHandle<std::string>& elements);
-
-/** Locates the first executable named @a program in the user's path, in the
- * same way that <tt>execvp()</tt> would locate it.
- * Returns a string with the absolute path name, or <tt>""</tt> if the program
- * is not found in the path.  If @a program is already an absolute path,
- * returns a copy of @a program if @a program exists and is executable, and
- * <tt>""</tt> otherwise.
- *
- * On Windows, if @a program does not have a file type suffix, tries to append
- * the suffixes in the <tt>PATHEXT</tt> environment variable (if that doesn't
- * exist, the suffixes .com, .exe, and .bat) in turn, and then look for the
- * resulting file name in the same way as CreateProcess() would.  This means
- * first in the directory where the program was loaded from, then in the
- * current directory, then in the Windows 32-bit system directory, then in the
- * Windows directory, and finally in the directories in the <tt>PATH</tt>
- * environment variable.  If the program is found, the return value contains
- * the full name including the type suffix.
- *
- * @param program A program name.
- * @return An absolute path, or <tt>""</tt>.
- */
-std::string find_program_in_path(const std::string& program);
-
-/** @} group MiscUtils */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_FILEUTILS_H */
-
diff --git a/libs/glibmm2/glibmm/module.cc b/libs/glibmm2/glibmm/module.cc
deleted file mode 100644 (file)
index 3bc621f..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/module.h>
-#include <glibmm/private/module_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/utility.h>
-#include <gmodule.h>
-
-namespace Glib
-{
-
-Module::Module(const std::string& file_name, ModuleFlags flags)
-:
-  gobject_ (g_module_open(file_name.c_str(), (GModuleFlags) flags))
-{}
-
-Module::~Module()
-{
-  if(gobject_)
-    g_module_close(gobject_);
-}
-
-Module::operator bool() const
-{
-  return (gobject_ != 0);
-}
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-
-bool Module::get_supported()
-{
-  return g_module_supported();
-}
-
-void Module::make_resident()
-{
-  g_module_make_resident(gobj());
-}
-
-std::string Module::get_last_error()
-{
-  return Glib::convert_const_gchar_ptr_to_stdstring(g_module_error());
-}
-
-bool Module::get_symbol(const std::string& symbol_name, void*& symbol) const
-{
-  return g_module_symbol(const_cast<GModule*>(gobj()), symbol_name.c_str(), &(symbol));
-}
-
-std::string Module::get_name() const
-{
-  return Glib::convert_const_gchar_ptr_to_stdstring(g_module_name(const_cast<GModule*>(gobj())));
-}
-
-std::string Module::build_path(const std::string& directory, const std::string& module_name)
-{
-  return Glib::convert_return_gchar_ptr_to_stdstring(g_module_build_path(directory.c_str(), module_name.c_str()));
-}
-
-
-} // namespace Glib
-
-
diff --git a/libs/glibmm2/glibmm/module.h b/libs/glibmm2/glibmm/module.h
deleted file mode 100644 (file)
index 0c73bc9..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_MODULE_H
-#define _GLIBMM_MODULE_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmmconfig.h>
-#include <string>
-
-GLIBMM_USING_STD(string)
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GModule GModule; }
-#endif
-
-
-namespace Glib
-{
-
-/** @addtogroup glibmmEnums Enums and Flags */
-
-/**
- * @ingroup glibmmEnums
- * @par Bitwise operators:
- * <tt>%ModuleFlags operator|(ModuleFlags, ModuleFlags)</tt><br>
- * <tt>%ModuleFlags operator&(ModuleFlags, ModuleFlags)</tt><br>
- * <tt>%ModuleFlags operator^(ModuleFlags, ModuleFlags)</tt><br>
- * <tt>%ModuleFlags operator~(ModuleFlags)</tt><br>
- * <tt>%ModuleFlags& operator|=(ModuleFlags&, ModuleFlags)</tt><br>
- * <tt>%ModuleFlags& operator&=(ModuleFlags&, ModuleFlags)</tt><br>
- * <tt>%ModuleFlags& operator^=(ModuleFlags&, ModuleFlags)</tt><br>
- */
-enum ModuleFlags
-{
-  MODULE_BIND_LAZY = 1 << 0,
-  MODULE_BIND_MASK = 0x01
-};
-
-/** @ingroup glibmmEnums */
-inline ModuleFlags operator|(ModuleFlags lhs, ModuleFlags rhs)
-  { return static_cast<ModuleFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline ModuleFlags operator&(ModuleFlags lhs, ModuleFlags rhs)
-  { return static_cast<ModuleFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline ModuleFlags operator^(ModuleFlags lhs, ModuleFlags rhs)
-  { return static_cast<ModuleFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline ModuleFlags operator~(ModuleFlags flags)
-  { return static_cast<ModuleFlags>(~static_cast<unsigned>(flags)); }
-
-/** @ingroup glibmmEnums */
-inline ModuleFlags& operator|=(ModuleFlags& lhs, ModuleFlags rhs)
-  { return (lhs = static_cast<ModuleFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline ModuleFlags& operator&=(ModuleFlags& lhs, ModuleFlags rhs)
-  { return (lhs = static_cast<ModuleFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline ModuleFlags& operator^=(ModuleFlags& lhs, ModuleFlags rhs)
-  { return (lhs = static_cast<ModuleFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
-
-
-//TODO: Replace get_last_error() with exceptions?
-//Provide operator()?
-
-/** Dynamic Loading of Modules
- * These functions provide a portable way to dynamically load object
- *  files (commonly known as 'plug-ins'). The current implementation
- * supports all systems that provide an implementation of dlopen()
- * (e.g. Linux/Sun), as well as HP-UX via its shl_load() mechanism,
- * and Windows platforms via DLLs.
- */
-class Module
-{
-  public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  typedef Module CppObjectType;
-  typedef GModule BaseObjectType;
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-private:
-
-  
-public:
-  /** Opens a module.
-   *
-   * First of all it tries to open file_name as a module. If that
-   * fails and file_name has the ".la"-suffix (and is a libtool
-   * archive) it tries to open the corresponding module. If that fails
-   * and it doesn't have the proper module suffix for the platform
-   * (G_MODULE_SUFFIX), this suffix will be appended and the
-   * corresponding module will be opended. If that fails and file_name
-   * doesn't have the ".la"-suffix, this suffix is appended and
-   * it tries to open the corresponding module.
-   *
-   * Use operator bool() to see whether the operation succeeded. For instance,
-   * @code
-   * Glib::Module module("plugins/helloworld");
-   * if(module)
-   * {
-   *   void* func = 0;
-   *   bool found = get_symbol("some_function", func);
-   * }
-   * @endcode
-   *
-   * @param file_name The library filename to open
-   * @param flags Flags to configure the load process
-   */
-  explicit Module(const std::string& file_name, ModuleFlags flags = ModuleFlags(0));
-
-  /** Close a module. The module will be removed from memory, unless
-   * <tt>make_resident</tt> has been called.
-   */
-  virtual ~Module();
-
-  /** Check whether the module was found.
-   */
-  operator bool() const;
-
-  /** Checks if modules are supported on the current platform.
-   * @returns true if available, false otherwise
-   */
-  
-  static bool get_supported();
-
-  /** Ensures that a module will never be unloaded. Any calls to the
-   * Glib::Module destructor will not unload the module.
-   */
-  
-  void make_resident();
-
-  /** Gets a string describing the last module error.
-   * @returns The error string
-   */
-  
-  static std::string get_last_error();
-
-  /** Gets a symbol pointer from the module.
-   * @param symbol_name The name of the symbol to lookup
-   * @param symbol A pointer to set to the symbol
-   * @returns True if the symbol was found, false otherwise.
-   */
-  
-  bool get_symbol(const std::string& symbol_name, void*& symbol) const;
-
-  /** Get the name of the module.
-   * @returns The name of the module
-   */
-  
-  std::string get_name() const;
-
-  /** A portable way to build the filename of a module. The
-   * platform-specific prefix and suffix are added to the filename, if
-   * needed, and the result is added to the directory, using the
-   * correct separator character.
-   *
-   * The directory should specify the directory where the module can
-   * be found. It can be an empty string to indicate that the
-   * module is in a standard platform-specific directory, though this
-   * is not recommended since the wrong module may be found.
-   *
-   * For example, calling <tt>g_module_build_path()</tt> on a Linux
-   * system with a directory of <tt>/lib</tt> and a module_name of
-   * "mylibrary" will return <tt>/lib/libmylibrary.so</tt>. On a
-   * Windows system, using <tt>\\Windows</tt> as the directory it will
-   * return <tt>\\Windows\\mylibrary.dll</tt>.
-   *
-   * @param directory The directory the module is in
-   * @param module_name The name of the module
-   * @returns The system-specific filename of the module
-   */
-  // TODO: add an override which doesn't take a directory
-  // TODO: check what happens when directory is ""
-  
-  static std::string build_path(const std::string& directory, const std::string& module_name);
-
-  GModule*       gobj()       { return gobject_; }
-  const GModule* gobj() const { return gobject_; }
-
-protected:
-  GModule* gobject_;
-
-private:
-  // noncopyable
-  Module(const Module&);
-  Module& operator=(const Module&);
-
-
-};
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_MODULE_H */
-
diff --git a/libs/glibmm2/glibmm/object.cc b/libs/glibmm2/glibmm/object.cc
deleted file mode 100644 (file)
index 007002b..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright 1998-2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/object.h>
-#include <glibmm/private/object_p.h>
-#include <glibmm/property.h>
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gobject/gvaluecollector.h>
-
-#include <cstdarg>
-
-#include <cstring>
-
-//Weak references:
-//I'm not sure what the point of these are apart from being a hacky way out of circular references,
-//but maybe we could make it easier to use them by making a Java Reference Object -style class like so:
-// Glib::WeakRef<SomeDerivedObject> weakrefSomeObject(object1);
-// ...
-// if(weakrefSomeObject->isStillAlive())
-// {
-//   weakrefSomeObject->some_method();
-// }
-// else
-// {
-//   //Deal with it, maybe recreating the object.
-// }
-//
-// Without this, the coder has to define his own signal handler which sets his own isStillAlive boolean.
-// weakrefSomeObject<> could still have its own signal_destroyed signal so that coders can choose to deal
-// with the destruction as soon as it happens instead of just checking later before they try to use it.
-
-
-namespace Glib
-{
-
-ConstructParams::ConstructParams(const Glib::Class& glibmm_class_)
-:
-  glibmm_class (glibmm_class_),
-  n_parameters (0),
-  parameters   (0)
-{}
-
-/* The implementation is mostly copied from gobject.c, with some minor tweaks.
- * Basically, it looks up each property name to get its GType, and then uses
- * G_VALUE_COLLECT() to store the varargs argument in a GValue of the correct
- * type.
- */
-ConstructParams::ConstructParams(const Glib::Class& glibmm_class_,
-                                 const char* first_property_name, ...)
-:
-  glibmm_class (glibmm_class_),
-  n_parameters (0),
-  parameters   (0)
-{
-  va_list var_args;
-  va_start(var_args, first_property_name);
-
-  GObjectClass *const g_class =
-      static_cast<GObjectClass*>(g_type_class_ref(glibmm_class.get_type()));
-
-  unsigned int n_alloced_params = 0;
-  char*        collect_error    = 0; // output argument of G_VALUE_COLLECT()
-
-  for(const char* name = first_property_name;
-      name != 0;
-      name = va_arg(var_args, char*))
-  {
-    GParamSpec *const pspec = g_object_class_find_property(g_class, name);
-
-    if(!pspec)
-    {
-      g_warning("Glib::ConstructParams::ConstructParams(): "
-                "object class `%s' has no property named `%s'",
-                g_type_name(glibmm_class.get_type()), name);
-      break;
-    }
-
-    if(n_parameters >= n_alloced_params)
-      parameters = g_renew(GParameter, parameters, n_alloced_params += 8);
-
-    GParameter& param = parameters[n_parameters];
-
-    param.name = name;
-    param.value.g_type = 0;
-
-    // Fill the GValue with the current vararg, and move on to the next one.
-    g_value_init(&param.value, G_PARAM_SPEC_VALUE_TYPE(pspec));
-    G_VALUE_COLLECT(&param.value, var_args, 0, &collect_error);
-
-    if(collect_error)
-    {
-      g_warning("Glib::ConstructParams::ConstructParams(): %s", collect_error);
-      g_free(collect_error);
-      g_value_unset(&param.value);
-      break;
-    }
-
-    ++n_parameters;
-  }
-
-  g_type_class_unref(g_class);
-
-  va_end(var_args);
-}
-
-ConstructParams::~ConstructParams()
-{
-  while(n_parameters > 0)
-    g_value_unset(&parameters[--n_parameters].value);
-
-  g_free(parameters);
-}
-
-/*
- * Some compilers require the existance of a copy constructor in certain
- * usage contexts.  This implementation is fully functional, but unlikely
- * to be ever actually called due to optimization.
- */
-ConstructParams::ConstructParams(const ConstructParams& other)
-:
-  glibmm_class  (other.glibmm_class),
-  n_parameters  (other.n_parameters),
-  parameters    (g_new(GParameter, n_parameters))
-{
-  for(unsigned int i = 0; i < n_parameters; ++i)
-  {
-    parameters[i].name = other.parameters[i].name;
-    parameters[i].value.g_type = 0;
-
-    g_value_init(&parameters[i].value, G_VALUE_TYPE(&other.parameters[i].value));
-    g_value_copy(&other.parameters[i].value, &parameters[i].value);
-  }
-}
-
-
-/**** Glib::Object_Class ***************************************************/
-
-const Glib::Class& Object_Class::init()
-{
-  if(!gtype_)
-  {
-    class_init_func_ = &Object_Class::class_init_function;
-    register_derived_type(G_TYPE_OBJECT);
-  }
-
-  return *this;
-}
-
-void Object_Class::class_init_function(void*, void*)
-{}
-
-Object* Object_Class::wrap_new(GObject* object)
-{
-  return new Object(object);
-}
-
-
-/**** Glib::Object *********************************************************/
-
-// static data
-Object::CppClassType Object::object_class_;
-
-Object::Object()
-{
-  // This constructor is ONLY for derived classes that are NOT wrappers of
-  // derived C objects.  For instance, Gtk::Object should NOT use this
-  // constructor.
-
-  //g_warning("Object::Object(): Did you really mean to call this?");
-
-  // If Glib::ObjectBase has been constructed with a custom typeid, we derive
-  // a new GType on the fly.  This works because ObjectBase is a virtual base
-  // class, therefore its constructor is always executed first.
-
-  GType object_type = G_TYPE_OBJECT; // the default -- not very useful
-
-  if(custom_type_name_ && !is_anonymous_custom_())
-  {
-    object_class_.init();
-    object_type = object_class_.clone_custom_type(custom_type_name_); //A type that is derived from GObject.
-  }
-
-  // Create a new GObject with the specified array of construct properties.
-  // This works with custom types too, since those inherit the properties of
-  // their base class.
-
-  void *const new_object = g_object_newv(object_type, 0, 0);
-
-  // Connect the GObject and Glib::Object instances.
-  ObjectBase::initialize(static_cast<GObject*>(new_object));
-
-}
-
-Object::Object(const Glib::ConstructParams& construct_params)
-{
-  GType object_type = construct_params.glibmm_class.get_type();
-
-  // If Glib::ObjectBase has been constructed with a custom typeid, we derive
-  // a new GType on the fly.  This works because ObjectBase is a virtual base
-  // class, therefore its constructor is always executed first.
-
-  if(custom_type_name_ && !is_anonymous_custom_())
-    object_type = construct_params.glibmm_class.clone_custom_type(custom_type_name_);
-
-  // Create a new GObject with the specified array of construct properties.
-  // This works with custom types too, since those inherit the properties of
-  // their base class.
-
-  void *const new_object = g_object_newv(
-      object_type, construct_params.n_parameters, construct_params.parameters);
-
-  // Connect the GObject and Glib::Object instances.
-  ObjectBase::initialize(static_cast<GObject*>(new_object));
-}
-
-Object::Object(GObject* castitem)
-{
-  //I disabled this check because libglademm really does need to do this.
-  //(actually it tells libglade to instantiate "gtkmm_" types.
-  //The 2nd instance bug will be caught elsewhere anyway.
-/*
-  static const char gtkmm_prefix[] = "gtkmm__";
-  const char *const type_name = G_OBJECT_TYPE_NAME(castitem);
-
-  if(strncmp(type_name, gtkmm_prefix, sizeof(gtkmm_prefix) - 1) == 0)
-  {
-    g_warning("Glib::Object::Object(GObject*): "
-              "An object of type '%s' was created directly via g_object_new(). "
-              "The Object::Object(const Glib::ConstructParams&) constructor "
-              "should be used instead.\n"
-              "This could happen if the C instance lived longer than the C++ instance, so that "
-              "a second C++ instance was created automatically to wrap it. That would be a gtkmm bug that you should report.",
-               type_name);
-  }
-*/
-
-  // Connect the GObject and Glib::Object instances.
-  ObjectBase::initialize(castitem);
-}
-
-Object::~Object()
-{
-  cpp_destruction_in_progress_ = true;
-}
-
-/*
-RefPtr<Object> Object::create()
-{
-  // Derived classes will actually return RefPtr<>s that contain useful instances.
-  return RefPtr<Object>();
-}
-*/
-
-GType Object::get_type()
-{
-  return object_class_.init().get_type();
-}
-
-GType Object::get_base_type()
-{
-  return G_TYPE_OBJECT;
-}
-
-// Data services
-void* Object::get_data(const QueryQuark& id)
-{
-  return g_object_get_qdata(gobj(),id);
-}
-
-void Object::set_data(const Quark& id, void* data)
-{
-  g_object_set_qdata(gobj(),id,data);
-}
-
-void Object::set_data(const Quark& id, void* data, DestroyNotify destroy)
-{
-  g_object_set_qdata_full(gobj(), id, data, destroy);
-}
-
-void Object::remove_data(const QueryQuark& id)
-{
-  // missing in glib??
-  g_return_if_fail(id.id() > 0);
-  g_datalist_id_remove_data(&gobj()->qdata, id);
-}
-
-void* Object::steal_data(const QueryQuark& id)
-{
-  return g_object_steal_qdata(gobj(), id);
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/object.h b/libs/glibmm2/glibmm/object.h
deleted file mode 100644 (file)
index 3f196f9..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_OBJECT_H
-#define _GLIBMM_OBJECT_H
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/objectbase.h>
-#include <glibmm/wrap.h>
-#include <glibmm/quark.h>
-#include <glibmm/refptr.h>
-#include <glibmm/utility.h> /* Could be private, but that would be tedious. */
-#include <glibmm/containerhandle_shared.h> //Because its specializations may be here.
-#include <glibmm/value.h>
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C"
-{
-typedef struct _GObject GObject;
-typedef struct _GObjectClass GObjectClass;
-}
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-class Class;
-class Object_Class;
-class GSigConnectionNode;
-
-/* ConstructParams::ConstructParams() takes a varargs list of properties
- * and values, like g_object_new() does.  This list will then be converted
- * to a GParameter array, for use with g_object_newv().  No overhead is
- * involved, since g_object_new() is just a wrapper around g_object_newv()
- * as well.
- *
- * The advantage of an auxilary ConstructParams object over g_object_new()
- * is that the actual construction is always done in the Glib::Object ctor.
- * This allows for neat tricks like easy creation of derived custom types,
- * without adding special support to each ctor of every class.
- *
- * The comments in object.cc and objectbase.cc should explain in detail
- * how this works.
- */
-class ConstructParams
-{
-public:
-  const Glib::Class&  glibmm_class;
-  unsigned int        n_parameters;
-  GParameter*         parameters;
-
-  explicit ConstructParams(const Glib::Class& glibmm_class_);
-  ConstructParams(const Glib::Class& glibmm_class_, const char* first_property_name, ...);
-  ~ConstructParams();
-
-  // This is only used by the C++ compiler (since g++ 3.4) to create temporary instances.
-  // Apparently the compiler will actually optimize away the use of this.
-  // See bug #132300.
-  ConstructParams(const ConstructParams& other);
-
-private:
-  // noncopyable 
-  ConstructParams& operator=(const ConstructParams&);
-};
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-class Object : virtual public ObjectBase
-{
-public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  typedef Object       CppObjectType;
-  typedef Object_Class CppClassType;
-  typedef GObject      BaseObjectType;
-  typedef GObjectClass BaseClassType;
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-protected:
-  Object(); //For use by C++-only sub-types.
-  explicit Object(const Glib::ConstructParams& construct_params);
-  explicit Object(GObject* castitem);
-  virtual ~Object(); //It should only be deleted by the callback.
-
-public:
-  //static RefPtr<Object> create(); //You must reimplement this in each derived class.
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  static GType get_type()      G_GNUC_CONST;
-  static GType get_base_type() G_GNUC_CONST;
-#endif
-
-  //GObject* gobj_copy(); //Give a ref-ed copy to someone. Use for direct struct access.
-
-  // Glib::Objects contain a list<Quark, pair<void*, DestroyNotify> >
-  // to store run time data added to the object at run time.
-  //TODO: Use slots instead:
-  void* get_data(const QueryQuark &key);
-  void set_data(const Quark &key, void* data);
-  typedef void (*DestroyNotify) (gpointer data);
-  void set_data(const Quark &key, void* data, DestroyNotify notify);
-  void remove_data(const QueryQuark& quark);
-  // same as remove without notifying
-  void* steal_data(const QueryQuark& quark);
-
-  // convenience functions
-  //template <class T>
-  //void set_data_typed(const Quark& quark, const T& data)
-  //  { set_data(quark, new T(data), delete_typed<T>); }
-
-  //template <class T>
-  //T& get_data_typed(const QueryQuark& quark)
-  //  { return *static_cast<T*>(get_data(quark)); }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-private:
-  friend class Glib::Object_Class;
-  static CppClassType object_class_;
-
-  // noncopyable
-  Object(const Object&);
-  Object& operator=(const Object&);
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-  // Glib::Object can not be dynamic because it lacks a float state.
-  //virtual void set_manage();
-};
-
-
-//For some (proably, more spec-compliant) compilers, these specializations must
-//be next to the objects that they use.
-#ifndef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-#ifndef DOXYGEN_SHOULD_SKIP_THIS /* hide the specializations */
-
-namespace Container_Helpers
-{
-
-/** Partial specialization for pointers to GObject instances.
- * @ingroup ContHelpers
- * The C++ type is always a Glib::RefPtr<>.
- */
-template <class T>
-struct TypeTraits< Glib::RefPtr<T> >
-{
-  typedef Glib::RefPtr<T>              CppType;
-  typedef typename T::BaseObjectType * CType;
-  typedef typename T::BaseObjectType * CTypeNonConst;
-
-  static CType   to_c_type      (const CppType& ptr) { return Glib::unwrap(ptr);     }
-  static CType   to_c_type      (CType          ptr) { return ptr;                   }
-  static CppType to_cpp_type    (CType          ptr)
-  {
-    //return Glib::wrap(ptr, true);
-
-    //We copy/paste the wrap() implementation here,
-    //because we can not use a specific Glib::wrap(CType) overload here,
-    //because that would be "dependent", and g++ 3.4 does not allow that.
-    //The specific Glib::wrap() overloads don't do anything special anyway.
-    GObject* cobj = (GObject*)const_cast<CTypeNonConst>(ptr);
-    return Glib::RefPtr<T>( dynamic_cast<T*>(Glib::wrap_auto(cobj, true /* take_copy */)) );
-    //We use dynamic_cast<> in case of multiple inheritance.
-  }
-  
-  static void    release_c_type (CType          ptr)
-  {
-    GLIBMM_DEBUG_UNREFERENCE(0, ptr);
-    g_object_unref(ptr);
-  }
-};
-
-//This confuse the SUN Forte compiler, so we ifdef it out:
-#ifdef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-/** Partial specialization for pointers to const GObject instances.
- * @ingroup ContHelpers
- * The C++ type is always a Glib::RefPtr<>.
- */
-template <class T>
-struct TypeTraits< Glib::RefPtr<const T> >
-{
-  typedef Glib::RefPtr<const T>              CppType;
-  typedef const typename T::BaseObjectType * CType;
-  typedef typename T::BaseObjectType *       CTypeNonConst;
-
-  static CType   to_c_type      (const CppType& ptr) { return Glib::unwrap(ptr);     }
-  static CType   to_c_type      (CType          ptr) { return ptr;                   }
-  static CppType to_cpp_type    (CType          ptr)
-  {
-    //return Glib::wrap(ptr, true);
-
-    //We copy/paste the wrap() implementation here,
-    //because we can not use a specific Glib::wrap(CType) overload here,
-    //because that would be "dependent", and g++ 3.4 does not allow that.
-    //The specific Glib::wrap() overloads don't do anything special anyway.
-    GObject* cobj = (GObject*)(ptr);
-    return Glib::RefPtr<const T>( dynamic_cast<const T*>(Glib::wrap_auto(cobj, true /* take_copy */)) );
-    //We use dynamic_cast<> in case of multiple inheritance.
-  }
-  
-  static void    release_c_type (CType          ptr)
-  {
-    GLIBMM_DEBUG_UNREFERENCE(0, ptr);
-    g_object_unref(const_cast<CTypeNonConst>(ptr));
-  }
-};
-
-#endif //GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-} //namespace Container_Helpers
-
-
-template <class T, class PtrT> inline
-PtrT Value_Pointer<T,PtrT>::get_(Glib::Object*) const
-{
-  return dynamic_cast<T*>(get_object());
-}
-
-
-/** Partial specialization for RefPtr<> to Glib::Object.
- * @ingroup glibmmValue
- */
-template <class T>
-class Value< Glib::RefPtr<T> > : public ValueBase_Object
-{
-public:
-  typedef Glib::RefPtr<T>             CppType;
-  typedef typename T::BaseObjectType* CType;
-
-  static GType value_type() { return T::get_base_type(); }
-
-  void set(const CppType& data) { set_object(data.operator->()); }
-  CppType get() const           { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
-};
-
-//The SUN Forte Compiler has a problem with this: 
-#ifdef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-/** Partial specialization for RefPtr<> to const Glib::Object.
- * @ingroup glibmmValue
- */
-template <class T>
-class Value< Glib::RefPtr<const T> > : public ValueBase_Object
-{
-public:
-  typedef Glib::RefPtr<const T>       CppType;
-  typedef typename T::BaseObjectType* CType;
-
-  static GType value_type() { return T::get_base_type(); }
-
-  void set(const CppType& data) { set_object(const_cast<T*>(data.operator->())); }
-  CppType get() const           { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
-};
-#endif //GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-
-#endif //DOXYGEN_SHOULD_SKIP_THIS
-#endif //GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-
-} // namespace Glib
-
-#endif /* _GLIBMM_OBJECT_H */
-
diff --git a/libs/glibmm2/glibmm/objectbase.cc b/libs/glibmm2/glibmm/objectbase.cc
deleted file mode 100644 (file)
index 1bb14e7..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib-object.h>
-
-#include <glibmm/quark.h>
-#include <glibmm/objectbase.h>
-
-
-namespace
-{
-
-// Used by the Glib::ObjectBase default ctor.  Using an explicitly defined
-// char array rather than a string literal allows for fast pointer comparison,
-// which is otherwise not guaranteed to work.
-
-const char anonymous_custom_type_name[] = "gtkmm__anonymous_custom_type";
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-/**** Glib::ObjectBase *****************************************************/
-
-ObjectBase::ObjectBase()
-:
-  gobject_                      (0),
-  custom_type_name_             (anonymous_custom_type_name),
-  cpp_destruction_in_progress_  (false)
-{}
-
-ObjectBase::ObjectBase(const char* custom_type_name)
-:
-  gobject_                      (0),
-  custom_type_name_             (custom_type_name),
-  cpp_destruction_in_progress_  (false)
-{}
-
-ObjectBase::ObjectBase(const std::type_info& custom_type_info)
-:
-  gobject_                      (0),
-  custom_type_name_             (custom_type_info.name()),
-  cpp_destruction_in_progress_  (false)
-{}
-
-// initialize() actually initializes the wrapper.  Glib::ObjectBase is used
-// as virtual base class, which means the most-derived class' ctor invokes
-// the Glib::ObjectBase ctor -- thus it's useless for Glib::Object.
-//
-void ObjectBase::initialize(GObject* castitem)
-{
-  if(gobject_)
-  {
-    // initialize() might be called twice when used with MI, e.g. by the ctors
-    // of Glib::Object and Glib::Interface.  However, they must both refer to
-    // the same underlying GObject instance.
-    //
-    g_assert(gobject_ == castitem);
-
-    // TODO: Think about it.  Will this really be called twice?
-    g_printerr("ObjectBase::initialize() called twice for the same GObject\n");
-
-    return; // Don't initialize the wrapper twice.
-  }
-
-  //g_print("%s : %s\n", G_GNUC_PRETTY_FUNCTION, G_OBJECT_TYPE_NAME(castitem));
-
-  gobject_ = castitem;
-  _set_current_wrapper(castitem);
-}
-
-ObjectBase::~ObjectBase()
-{
-  // Normally, gobject_ should always be 0 at this point, because:
-  //
-  // a) Gtk::Object handles memory management on its own and always resets
-  //    the gobject_ pointer in its destructor.
-  //
-  // b) Glib::Object instances that aren't Gtk::Objects will always be
-  //    deleted by the destroy_notify_() virtual method.  Calling delete
-  //    on a Glib::Object is a programming error.
-  //
-  // The *only* situation where gobject_ is validly not 0 at this point
-  // happens if a derived class's ctor throws an exception.  In that case
-  // we have to call g_object_unref() on our own.
-  //
-  if(GObject *const gobject = gobject_)
-  {
-#ifdef GLIBMM_DEBUG_REFCOUNTING
-    g_warning("(Glib::ObjectBase::~ObjectBase): gobject_ = %p", (void*) gobject_);
-#endif
-
-    gobject_ = 0;
-
-#ifdef GLIBMM_DEBUG_REFCOUNTING
-    g_warning("(Glib::ObjectBase::~ObjectBase): before g_object_steal_qdata()");
-#endif
-
-    // Remove the pointer to the wrapper from the underlying instance.
-    // This does _not_ cause invocation of the destroy_notify callback.
-    g_object_steal_qdata(gobject, quark_);
-
-#ifdef GLIBMM_DEBUG_REFCOUNTING
-    g_warning("(Glib::ObjectBase::~ObjectBase): calling g_object_unref()");
-#endif
-
-    g_object_unref(gobject);
-  }
-}
-
-void ObjectBase::reference() const
-{
-  GLIBMM_DEBUG_REFERENCE(this, gobject_);
-  g_object_ref(gobject_);
-}
-
-void ObjectBase::unreference() const
-{
-  GLIBMM_DEBUG_UNREFERENCE(this, gobject_);
-  g_object_unref(gobject_);
-}
-
-GObject* ObjectBase::gobj_copy() const
-{
-  reference();
-  return gobject_;
-}
-
-void ObjectBase::_set_current_wrapper(GObject* object)
-{
-  // Store a pointer to this wrapper in the underlying instance, so that we
-  // never create a second wrapper for the same underlying instance.  Also,
-  // specify a callback that will tell us when it's time to delete this C++
-  // wrapper instance:
-
-  if(object)
-  {
-    if(!g_object_get_qdata(object, Glib::quark_))
-    {
-      g_object_set_qdata_full(object, Glib::quark_, this, &destroy_notify_callback_);
-    }
-    else
-    {
-      g_warning("This object, of type %s, already has a wrapper.\n"
-                "You should use wrap() instead of a constructor.",
-                G_OBJECT_TYPE_NAME(object));
-    }
-  }
-}
-
-// static
-ObjectBase* ObjectBase::_get_current_wrapper(GObject* object)
-{
-  if(object)
-    return static_cast<ObjectBase*>(g_object_get_qdata(object, Glib::quark_));
-  else
-    return 0;
-}
-
-// static
-void ObjectBase::destroy_notify_callback_(void* data)
-{
-  //GLIBMM_LIFECYCLE
-
-  // This method is called (indirectly) from g_object_run_dispose().
-  // Get the C++ instance associated with the C instance:
-  ObjectBase* cppObject = static_cast<ObjectBase*>(data); //Previously set with g_object_set_qdata_full().
-
-#ifdef GLIBMM_DEBUG_REFCOUNTING
-  g_warning("ObjectBase::destroy_notify_callback_: cppObject = %p, gobject_ = %p, gtypename = %s",
-            (void*) cppObject, (void*) cppObject->gobject_, cppObject->gobject_);
-#endif
-
-  if(cppObject) //This will be 0 if the C++ destructor has already run.
-  {
-    cppObject->destroy_notify_(); //Virtual - it does different things for GObject and GtkObject.
-  }
-}
-
-void ObjectBase::destroy_notify_()
-{
-  // The C instance is about to be disposed, making it unusable.  Now is a
-  // good time to delete the C++ wrapper of the C instance.  There is no way
-  // to force the disposal of the GObject (though GtkObject  has
-  // gtk_object_destroy()), So this is the *only* place where we delete the
-  // C++ wrapper.
-  //
-  // This will only happen after the last unreference(), which will be done by
-  // the RefPtr<> destructor.  There should be no way to access the wrapper or
-  // the undobjecterlying instance after that, so it's OK to delete this.
-
-#ifdef GLIBMM_DEBUG_REFCOUNTING
-  g_warning("Glib::ObjectBase::destroy_notify_: gobject_ = %p", (void*) gobject_);
-#endif
-
-  gobject_ = 0; // Make sure we don't unref it again in the dtor.
-
-  delete this;
-}
-
-bool ObjectBase::is_anonymous_custom_() const
-{
-  // Doing high-speed pointer comparison is OK here.
-  return (custom_type_name_ == anonymous_custom_type_name);
-}
-
-bool ObjectBase::is_derived_() const
-{
-  // gtkmmproc-generated classes initialize this to 0 by default.
-  return (custom_type_name_ != 0);
-}
-
-void ObjectBase::set_manage()
-{
-  // This is a private method and Gtk::manage() is a template function.
-  // Thus this will probably never run, unless you do something like:
-  //
-  // manage(static_cast<Gtk::Object*>(refptr.operator->()));
-
-  g_error("Glib::ObjectBase::set_manage(): "
-          "only Gtk::Object instances can be managed");
-}
-
-bool ObjectBase::_cpp_destruction_is_in_progress() const
-{
-  return cpp_destruction_in_progress_;
-}
-
-void ObjectBase::set_property_value(const Glib::ustring& property_name, const Glib::ValueBase& value)
-{
-  g_object_set_property(gobj(), property_name.c_str(), value.gobj());
-}
-
-void ObjectBase::get_property_value(const Glib::ustring& property_name, Glib::ValueBase& value) const
-{
-  g_object_get_property(const_cast<GObject*>(gobj()), property_name.c_str(), value.gobj());
-}
-
-
-bool _gobject_cppinstance_already_deleted(GObject* gobject)
-{
-  //This function is used to prevent calling wrap() on a GTK+ instance whose gtkmm instance has been deleted.
-
-  if(gobject)
-    return (bool)g_object_get_qdata(gobject, Glib::quark_cpp_wrapper_deleted_); //true means that something is odd.
-  else
-    return false; //Nothing is particularly wrong.
-}
-
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/objectbase.h b/libs/glibmm2/glibmm/objectbase.h
deleted file mode 100644 (file)
index bddfdcf..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_OBJECTBASE_H
-#define _GLIBMM_OBJECTBASE_H
-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/signalproxy.h>
-#include <glibmm/propertyproxy.h>
-#include <sigc++/trackable.h>
-#include <typeinfo>
-#include <glibmmconfig.h>
-#include <glibmm/debug.h>
-
-GLIBMM_USING_STD(type_info)
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GObject GObject; }
-#endif
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-class GSigConnectionNode;
-#endif
-
-//This inherits virtually from sigc::trackable so that people can multiply inherit glibmm classes from other sigc::trackable-derived classes.
-//See bugzilla.gnome.org bug # 116280
-class ObjectBase : virtual public sigc::trackable
-{
-protected:
-  // Glib::ObjectBase is used as virtual base class.  This means the ObjectBase
-  // ctor runs before all others -- either implicitly or explicitly.  Each of
-  // the available ctors initializes custom_type_name_ in a different way:
-  //
-  // 1) default:      custom_type_name_ = "gtkmm__anonymous_custom_type"
-  // 2) const char*:  custom_type_name_ = custom_type_name
-  // 3) type_info:    custom_type_name_ = custom_type_info.name()
-  //
-  // All classes generated by gtkmmproc use ctor 2) with custom_type_name = 0,
-  // which essentially means it's not a custom type.  This is used to optimize
-  // vfunc and signal handler callbacks -- since the C++ virtual methods are
-  // not overridden, invocation can be skipped.
-  //
-  // The default ctor 1) is called implicitly from the ctor of user-derived
-  // classes -- yes, even if e.g. Gtk::Button calls ctor 2), a derived ctor
-  // always overrides this choice.  The language itself ensures that the ctor
-  // is only invoked once.
-  //
-  // Ctor 3) is a special feature to allow creation of derived types on the
-  // fly, without having to use g_object_new() manually.  This feature is
-  // sometimes necessary, e.g. to implement a custom Gtk::CellRenderer.  The
-  // neat trick with the virtual base class ctor makes it possible to reuse
-  // the same direct base class' ctor as with non-custom types.
-
-  ObjectBase();
-  explicit ObjectBase(const char* custom_type_name);
-  explicit ObjectBase(const std::type_info& custom_type_info);
-
-  virtual ~ObjectBase() = 0;
-
-  // Called by Glib::Object and Glib::Interface constructors. See comments there.
-  void initialize(GObject* castitem);
-
-public:
-
-  /// You probably want to use a specific property_*() accessor method instead.
-  void set_property_value(const Glib::ustring& property_name, const Glib::ValueBase& value);
-
-  /// You probably want to use a specific property_*() accessor method instead.
-  void get_property_value(const Glib::ustring& property_name, Glib::ValueBase& value) const;
-
-  /// You probably want to use a specific property_*() accessor method instead.
-  template <class PropertyType>
-  void set_property(const Glib::ustring& property_name, const PropertyType& value);
-
-  /// You probably want to use a specific property_*() accessor method instead.
-  template <class PropertyType>
-  void get_property(const Glib::ustring& property_name, PropertyType& value) const;
-
-  
-  virtual void reference()   const;
-  virtual void unreference() const;
-
-  inline GObject*       gobj()       { return gobject_; }
-  inline const GObject* gobj() const { return gobject_; }
-
-  // Give a ref-ed copy to someone. Use for direct struct access.
-  GObject* gobj_copy() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  static ObjectBase* _get_current_wrapper(GObject* object);
-  bool _cpp_destruction_is_in_progress() const;
-#endif
-
-protected:
-  GObject*            gobject_; // the GLib/GDK/GTK+ object instance
-  const char*         custom_type_name_;
-  bool                cpp_destruction_in_progress_;
-
-  bool is_anonymous_custom_() const;
-  bool is_derived_() const;
-
-  static  void destroy_notify_callback_(void* data);
-  virtual void destroy_notify_();
-
-  void _set_current_wrapper(GObject* object);
-
-private:
-  // noncopyable
-  ObjectBase(const ObjectBase&);
-  ObjectBase& operator=(const ObjectBase&);
-
-  virtual void set_manage(); // calls g_error()
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  friend class Glib::GSigConnectionNode; // for GSigConnectionNode::notify()
-#endif
-};
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-template <class PropertyType>
-void ObjectBase::set_property(const Glib::ustring& property_name, const PropertyType& value)
-{
-  Glib::Value<PropertyType> property_value;
-  property_value.init(Glib::Value<PropertyType>::value_type());
-
-  property_value.set(value);
-  this->set_property_value(property_name, property_value);
-}
-
-template <class PropertyType>
-void ObjectBase::get_property(const Glib::ustring& property_name, PropertyType& value) const
-{
-  Glib::Value<PropertyType> property_value;
-  property_value.init(Glib::Value<PropertyType>::value_type());
-
-  this->get_property_value(property_name, property_value);
-
-  value = property_value.get();
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-bool _gobject_cppinstance_already_deleted(GObject* gobject);
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_OBJECTBASE_H */
-
diff --git a/libs/glibmm2/glibmm/optioncontext.cc b/libs/glibmm2/glibmm/optioncontext.cc
deleted file mode 100644 (file)
index 5a96ad4..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/optioncontext.h>
-#include <glibmm/private/optioncontext_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/utility.h>
-#include <glib/goption.h>
-
-namespace Glib
-{
-
-
-OptionContext::OptionContext(const Glib::ustring& parameter_string)
-: gobject_( g_option_context_new(parameter_string.c_str()) ),
-  has_ownership_(true)
-{
-}
-
-OptionContext::OptionContext(GOptionContext* castitem, bool take_ownership)
-: gobject_(castitem),
-  has_ownership_(take_ownership)
-{
-}
-
-OptionContext::~OptionContext()
-{
-  if(has_ownership_)
-    g_option_context_free(gobj());
-    
-  gobject_ = 0;
-}
-
-void OptionContext::add_group(OptionGroup& group)
-{
-  //Strangely, GObjectContext actually takes ownership of the GOptionGroup, deleting it later.
-  g_option_context_add_group(gobj(), (group).gobj_give_ownership());
-}
-
-void OptionContext::set_main_group(OptionGroup& group)
-{
-  //Strangely, GObjectContext actually takes ownership of the GOptionGroup, deleting it later.
-  g_option_context_set_main_group(gobj(), (group).gobj_give_ownership());
-}
-
-
-/*
-OptionGroup OptionContext::get_main_group() const
-{
-  const GOptionGroup* cobj = g_option_context_get_main_group(const_cast<GOptionContext*>( gobj()) );
-  OptionGroup cppObj(const_cast<GOptionGroup*>(cobj), true); // take_copy
-  return cppObj;
-}
-
-*/
-
-  
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::OptionError::OptionError(Glib::OptionError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_OPTION_ERROR, error_code, error_message)
-{}
-
-Glib::OptionError::OptionError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::OptionError::Code Glib::OptionError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::OptionError::throw_func(GError* gobject)
-{
-  throw Glib::OptionError(gobject);
-}
-
-
-namespace Glib
-{
-
-
-void OptionContext::set_help_enabled(bool help_enabled)
-{
-  g_option_context_set_help_enabled(gobj(), static_cast<int>(help_enabled));
-}
-
-bool OptionContext::get_help_enabled() const
-{
-  return g_option_context_get_help_enabled(const_cast<GOptionContext*>(gobj()));
-}
-
-void OptionContext::set_ignore_unknown_options(bool ignore_unknown)
-{
-  g_option_context_set_ignore_unknown_options(gobj(), static_cast<int>(ignore_unknown));
-}
-
-bool OptionContext::get_ignore_unknown_options() const
-{
-  return g_option_context_get_ignore_unknown_options(const_cast<GOptionContext*>(gobj()));
-}
-
-bool OptionContext::parse(int& argc, char**& argv)
-{
-  GError *error = 0;
-  bool retvalue = g_option_context_parse(gobj(), &argc, &(argv), &(error));
-  if(error) ::Glib::Error::throw_exception(error);
-  return retvalue;
-}
-
-
-} // namespace Glib
-
-
diff --git a/libs/glibmm2/glibmm/optioncontext.h b/libs/glibmm2/glibmm/optioncontext.h
deleted file mode 100644 (file)
index e621648..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_OPTIONCONTEXT_H
-#define _GLIBMM_OPTIONCONTEXT_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2004 The glibmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmm/optionentry.h>
-#include <glibmm/optiongroup.h>
-#include <glibmm/error.h>
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GOptionContext GOptionContext; }
-#endif
-
-
-namespace Glib
-{
-
-/** Exception class for options.
- */
-class OptionError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    UNKNOWN_OPTION,
-    BAD_VALUE,
-    FAILED
-  };
-
-  OptionError(Code error_code, const Glib::ustring& error_message);
-  explicit OptionError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-/** An OptionContext defines which options are accepted by the commandline option parser.
- */
-class OptionContext
-{
-  public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  typedef OptionContext CppObjectType;
-  typedef GOptionContext BaseObjectType;
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-private:
-
-public:
-
-  /** Creates a new option context.
-   * @param parameter_string A string which is displayed in the first line of --help output, after programname [OPTION...]
-   */
-  explicit OptionContext(const Glib::ustring& parameter_string = Glib::ustring());
-  
-  //Note that, unlike Glib::Wrap(), this would create a second C++ instance for the same C instance,
-  //so it should be used carefully. For instance you could not access data in a derived class via this second instance.
-  explicit OptionContext(GOptionContext* castitem, bool take_ownership = false);
-  virtual ~OptionContext();
-  
-  
-  /** Enables or disables automatic generation of &lt;option&gt;--help&lt;/option&gt; 
-   * output. By default, g_option_context_parse() recognizes
-   * &lt;option&gt;--help&lt;/option&gt;, &lt;option&gt;-?&lt;/option&gt;, &lt;option&gt;--help-all&lt;/option&gt;
-   * and &lt;option&gt;--help-&lt;/option&gt;&lt;replaceable&gt;groupname&lt;/replaceable&gt; and creates
-   * suitable output to stdout. 
-   * 
-   * Since: 2.6
-   * @param help_enabled <tt>true</tt> to enable &lt;option&gt;--help&lt;/option&gt;, <tt>false</tt> to disable it.
-   */
-  void set_help_enabled(bool help_enabled = true);
-  
-  /** Returns whether automatic &lt;option&gt;--help&lt;/option&gt; generation
-   * is turned on for @a context . See g_option_context_set_help_enabled().
-   * @return <tt>true</tt> if automatic help generation is turned on.
-   * 
-   * Since: 2.6.
-   */
-  bool get_help_enabled() const;
-  
-  /** Sets whether to ignore unknown options or not. If an argument is 
-   * ignored, it is left in the @a argv  array after parsing. By default, 
-   * g_option_context_parse() treats unknown options as error.
-   * 
-   * This setting does not affect non-option arguments (i.e. arguments 
-   * which don't start with a dash). But note that GOption cannot reliably
-   * determine whether a non-option belongs to a preceding unknown option.
-   * 
-   * Since: 2.6
-   * @param ignore_unknown <tt>true</tt> to ignore unknown options, <tt>false</tt> to produce
-   * an error when unknown options are met.
-   */
-  void set_ignore_unknown_options(bool ignore_unknown = true);
-  
-  /** Returns whether unknown options are ignored or not. See
-   * g_option_context_set_ignore_unknown_options().
-   * @return <tt>true</tt> if unknown options are ignored.
-   * 
-   * Since: 2.6.
-   */
-  bool get_ignore_unknown_options() const;
-
-  /** Parses the command line arguments, recognizing options
-   * which have been added to @a context . A side-effect of 
-   * calling this function is that g_set_prgname() will be
-   * called.
-   * 
-   * If the parsing is successful, any parsed arguments are
-   * removed from the array and @a argc  and @a argv  are updated 
-   * accordingly. In case of an error, @a argc  and @a argv  are
-   * left unmodified.
-   * 
-   * If automatic &lt;option&gt;--help&lt;/option&gt; support is enabled
-   * (see g_option_context_set_help_enabled()), and the 
-   *  @a argv  array contains one of the recognized help options,
-   * this function will produce help output to stdout and
-   * call <tt>exit (0)</tt>.
-   * @param argc A pointer to the number of command line arguments.
-   * @param argv A pointer to the array of command line arguments.
-   * @param error A return location for errors.
-   * @return <tt>true</tt> if the parsing was successful, 
-   * <tt>false</tt> if an error occurred
-   * 
-   * Since: 2.6.
-   */
-  bool parse(int& argc, char**& argv);
-
-  //g_option_context_add_main_entries(), just creates a group internally, adds them to it, and does a set_main_group()
-  //- a group without callbacks seems to do some simple default parsing.
-  
-  
-  /** Adds an OptionGroup to the context, so that parsing with context will recognize the options in the group. 
-   * Note that the group will not be copied, so it should exist for as long as the context exists.
-   *
-   * @param group The group to add.
-   */
-  void add_group(OptionGroup& group);
-  
-  
-  /** Sets an OptionGroup as the main group of the context. This has the same effect as calling add_group(), the only 
-   * difference is that the options in the main group are treated differently when generating --help output.
-   * Note that the group will not be copied, so it should exist for as long as the context exists.
-   *
-   * @param group The group to add.
-   */
-  void set_main_group(OptionGroup& group);
-  
-  
-  //We don't need this (hopefully), and the memory management would be really awkward.
-  //OptionGroup& get_main_group();
-  //const OptionGroup& get_main_group() const;
-  
-
-  GOptionContext*       gobj()       { return gobject_; }
-  const GOptionContext* gobj() const { return gobject_; }
-
-protected:
-
-  GOptionContext* gobject_;
-  bool has_ownership_;
-
-
-};
-
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_OPTIONCONTEXT_H */
-
diff --git a/libs/glibmm2/glibmm/optionentry.cc b/libs/glibmm2/glibmm/optionentry.cc
deleted file mode 100644 (file)
index 7fd5c53..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/optionentry.h>
-#include <glibmm/private/optionentry_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/utility.h>
-#include <glib/goption.h>
-#include <glib/gmem.h>
-
-namespace Glib
-{
-
-OptionEntry::OptionEntry()
-: gobject_( new GOptionEntry() )
-{
-  gobject_ = g_new0(GOptionEntry, 1);
-}
-
-OptionEntry::~OptionEntry()
-{
-  g_free(const_cast<char*>(gobject_->long_name));  
-  g_free(const_cast<char*>(gobject_->description));
-  g_free(const_cast<char*>(gobject_->arg_description));
-  g_free(gobject_);  
-}
-
-OptionEntry::OptionEntry(const OptionEntry& src)
-{
-  gobject_ = g_new0(GOptionEntry, 1);
-  
-  operator=(src);
-}
-
-OptionEntry& OptionEntry::operator=(const OptionEntry& src)
-{
-  if(this != &src)
-  {
-    if(gobject_->long_name)
-      g_free(const_cast<char*>(gobject_->long_name));
-      
-    gobject_->long_name = g_strdup(src.gobject_->long_name);
-
-    gobject_->short_name = src.gobject_->short_name; //It's just one char.
-    
-    gobject_->flags = src.gobject_->flags;
-    gobject_->arg = src.gobject_->arg;
-    gobject_->arg_data = src.gobject_->arg_data; //Shared, because it's not owned by any instance of this class anyway.
-    
-    if(gobject_->description)
-      g_free(const_cast<char*>(gobject_->description));    
-    
-    gobject_->description = g_strdup(src.gobject_->description);
-    
-    if(gobject_->arg_description)
-      g_free(const_cast<char*>(gobject_->arg_description));
-        
-    gobject_->arg_description = g_strdup(src.gobject_->arg_description);
-  }
-  
-  return *this;
-}
-   
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-
-Glib::ustring OptionEntry::get_long_name() const
-{
-  return Glib::convert_const_gchar_ptr_to_ustring(gobj()->long_name);
-}
-
-void OptionEntry::set_long_name(const Glib::ustring& value)
-{
-  gobj()->long_name = g_strdup((value).c_str());
-}
-
-gchar OptionEntry::get_short_name() const
-{
-  return gobj()->short_name;
-}
-
-void OptionEntry::set_short_name(const gchar& value)
-{
-  gobj()->short_name = value;
-}
-
-int OptionEntry::get_flags() const
-{
-  return gobj()->flags;
-}
-
-void OptionEntry::set_flags(const int& value)
-{
-  gobj()->flags = value;
-}
-
-Glib::ustring OptionEntry::get_description() const
-{
-  return Glib::convert_const_gchar_ptr_to_ustring(gobj()->description);
-}
-
-void OptionEntry::set_description(const Glib::ustring& value)
-{
-  gobj()->description = g_strdup((value).c_str());
-}
-
-Glib::ustring OptionEntry::get_arg_description() const
-{
-  return Glib::convert_const_gchar_ptr_to_ustring(gobj()->arg_description);
-}
-
-void OptionEntry::set_arg_description(const Glib::ustring& value)
-{
-  gobj()->arg_description = g_strdup((value).c_str());
-}
-
-
-} // namespace Glib
-
-
diff --git a/libs/glibmm2/glibmm/optionentry.h b/libs/glibmm2/glibmm/optionentry.h
deleted file mode 100644 (file)
index f7ce6a4..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_OPTIONENTRY_H
-#define _GLIBMM_OPTIONENTRY_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2004 The glibmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmm/ustring.h>
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GOptionEntry GOptionEntry; }
-#endif
-
-
-namespace Glib
-{
-
-/** An OptionEntry defines a single option. To have an effect, it must be added to an OptionGroup with 
- * OptionGroup::add_entry().
- * 
- * The long name of an option can be used to specify it in a commandline as --long_name. 
- * Every option must have a long name. To resolve conflicts if multiple option groups contain the same long name, it is also 
- * possible to specify the option as --groupname-long_name.
- *
- * If an option has a short name, it can be specified as -short_name in a commandline.
- *
- * The description for the option is shown in the --help  output.
- *
- * The arg_descripton is the placeholder to use for the extra argument parsed by the option in --help  output. 
- */
-class OptionEntry
-{
-  public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  typedef OptionEntry CppObjectType;
-  typedef GOptionEntry BaseObjectType;
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-private:
-
-public:
-
-  //Copied from goption.h, instead of generated, so that we can put it inside the class.
-  enum Flags
-  {
-    FLAG_HIDDEN = 1 << 0,
-    FLAG_IN_MAIN = 1 << 1,
-    FLAG_REVERSE = 1 << 2
-  } GOptionFlags;
-
-  OptionEntry();
-  OptionEntry(const OptionEntry& src);
-  virtual ~OptionEntry();
-  
-  OptionEntry& operator=(const OptionEntry& src);
-
-  Glib::ustring get_long_name() const;
-  void set_long_name(const Glib::ustring& value);
-  
-  gchar get_short_name() const;
-  void set_short_name(const gchar& value);
-  
-  int get_flags() const;
-  void set_flags(const int& value);
-  
-  //TODO: G_OPTION_ARG_CALLBACK,
-    
-  Glib::ustring get_description() const;
-  void set_description(const Glib::ustring& value);
-  
-  Glib::ustring get_arg_description() const;
-  void set_arg_description(const Glib::ustring& value);
-  
-  GOptionEntry*       gobj()       { return gobject_; }
-  const GOptionEntry* gobj() const { return gobject_; }
-  
-protected:
-
-  GOptionEntry* gobject_;
-
-
-};
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_OPTIONENTRY_H */
-
diff --git a/libs/glibmm2/glibmm/optiongroup.cc b/libs/glibmm2/glibmm/optiongroup.cc
deleted file mode 100644 (file)
index f8f35d2..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/optiongroup.h>
-#include <glibmm/private/optiongroup_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/optionentry.h>
-#include <glibmm/optioncontext.h>
-#include <glibmm/utility.h>
-//#include <glibmm/containers.h>
-#include <glib/goption.h>
-
-namespace Glib
-{
-
-namespace //anonymous
-{
-
-extern "C"
-{
-
-static gboolean g_callback_pre_parse(GOptionContext* context, GOptionGroup* /* group */, gpointer data, GError** /* TODO error */)
-{
-  OptionContext cppContext(context, false /* take_ownership */);
-  //OptionGroup cppGroup(group, true /* take_copy */); //Maybe this should be option_group.
-  
-  OptionGroup* option_group = static_cast<OptionGroup*>(data);
-  if(option_group)
-    return option_group->on_pre_parse(cppContext, *option_group);
-  else
-    return false;
-}
-
-static gboolean g_callback_post_parse(GOptionContext* context, GOptionGroup* /* group */, gpointer data, GError** /* TODO error */)
-{
-  OptionContext cppContext(context, false /* take_ownership */);
-  //OptionGroup cppGroup(group, true /* take_copy */); //Maybe this should be option_group.
-  
-  OptionGroup* option_group = static_cast<OptionGroup*>(data);
-  if(option_group)
-  {
-    return option_group->on_post_parse(cppContext, *option_group);
-  }
-  else
-    return false;
-}
-
-static void g_callback_error(GOptionContext* context, GOptionGroup* /* group */, gpointer data, GError** /* TODO error*/)
-{
-  OptionContext cppContext(context, false /* take_ownership */);
-  //OptionGroup cppGroup(group); //Maybe this should be option_group.
-  
-  OptionGroup* option_group = static_cast<OptionGroup*>(data);
-  if(option_group)
-    return option_group->on_error(cppContext, *option_group);
-}
-
-} /* extern "C" */
-
-} //anonymous namespace
-
-
-OptionGroup::OptionGroup(const Glib::ustring& name, const Glib::ustring& description, const Glib::ustring& help_description)
-: gobject_( g_option_group_new(name.c_str(), description.c_str(), help_description.c_str(), this, 0 /* destroy_func */) ),
-  has_ownership_(true)
-{
-  //Connect callbacks, so that derived classes can override the virtual methods:
-  g_option_group_set_parse_hooks(gobj(), &g_callback_pre_parse, &g_callback_post_parse);
-  g_option_group_set_error_hook(gobj(), &g_callback_error);
-}
-
-OptionGroup::OptionGroup(GOptionGroup* castitem)
-: gobject_(castitem),
-  has_ownership_(true)
-{
-  //Always takes ownership - never takes copy.
-}
-
-
-OptionGroup::~OptionGroup()
-{
-  //Free any C types that were allocated during add_entry():
-  for(type_map_entries::iterator iter = map_entries_.begin(); iter != map_entries_.end(); ++iter)
-  {
-    CppOptionEntry& cpp_entry = iter->second;
-    cpp_entry.release_c_arg();
-  }
-  
-  if(has_ownership_)
-  {
-    g_option_group_free(gobj());
-    gobject_ = 0;
-  }
-}
-
-void OptionGroup::add_entry(const OptionEntry& entry)
-{
-  //It does not copy the entry, so it needs to live as long as the group.
-  
-  //g_option_group_add_entries takes an array, with the last item in the array having a null long_name.
-  //Hopefully this will be properly documented eventually - see bug #
-  
-  //Create a temporary array, just so we can give the correct thing to g_option_group_add_entries:
-  GOptionEntry array[2];
-  array[0] = *(entry.gobj()); //Copy contents.
-  GLIBMM_INITIALIZE_STRUCT(array[1], GOptionEntry);
-   
-  g_option_group_add_entries(gobj(), array);
-}
-
-void OptionGroup::add_entry(const OptionEntry& entry, bool& arg)
-{
-  add_entry_with_wrapper(entry, G_OPTION_ARG_NONE /* Actually a boolean on/off, depending on whether the argument name was given, without argument parameters. */, &arg);
-}
-
-void OptionGroup::add_entry(const OptionEntry& entry, int& arg)
-{
-  add_entry_with_wrapper(entry, G_OPTION_ARG_INT, &arg);
-}
-
-void OptionGroup::add_entry(const OptionEntry& entry, Glib::ustring& arg)
-{
-  add_entry_with_wrapper(entry, G_OPTION_ARG_STRING, &arg);
-}
-
-void OptionGroup::add_entry(const OptionEntry& entry, vecustrings& arg)
-{
-  add_entry_with_wrapper(entry, G_OPTION_ARG_STRING_ARRAY, &arg);
-}
-
-void OptionGroup::add_entry_filename(const OptionEntry& entry, std::string& arg)
-{
-  add_entry_with_wrapper(entry, G_OPTION_ARG_FILENAME, &arg);
-}
-
-void OptionGroup::add_entry_filename(const OptionEntry& entry, vecstrings& arg)
-{
-  add_entry_with_wrapper(entry, G_OPTION_ARG_FILENAME_ARRAY, &arg);
-}
-void OptionGroup::add_entry_with_wrapper(const OptionEntry& entry, GOptionArg arg_type, void* cpp_arg)
-{
-  const Glib::ustring name = entry.get_long_name();
-  type_map_entries::iterator iterFind = map_entries_.find(name);
-  if( iterFind == map_entries_.end() ) //If we have not added this entry already
-  {  
-    CppOptionEntry cppEntry;
-    cppEntry.carg_type_ = arg_type;
-    cppEntry.allocate_c_arg();
-    
-    cppEntry.cpparg_ = cpp_arg;
-    
-    //Remember the C++/C mapping so that we can use it later:
-    map_entries_[name] = cppEntry;
-  
-    //Give the information to the C API:
-    cppEntry.entry_ = new OptionEntry(entry); //g_option_group_add_entry() does not take its own copy, so we must keep the instance alive.*/
-    cppEntry.entry_->gobj()->arg = arg_type;
-    cppEntry.entry_->gobj()->arg_data = cppEntry.carg_;
-    
-    add_entry(*(cppEntry.entry_));
-  }
-}
-  
-
-bool OptionGroup::on_pre_parse(OptionContext& /* context */, OptionGroup& /* group */)
-{
-  
-  return true;
-}
-
-bool OptionGroup::on_post_parse(OptionContext& /* context */, OptionGroup& /* group */)
-{
-  //Call this at the start of overrides.
-  
-  //TODO: Maybe put this in the C callback:
-  
-  //The C args have now been given values by GOption.
-  //Convert C values to C++ values:
-  
-  for(type_map_entries::iterator iter = map_entries_.begin(); iter != map_entries_.end(); ++iter)
-  {
-    CppOptionEntry& cpp_entry = iter->second;
-    cpp_entry.convert_c_to_cpp();
-  }
-  
-  return true;
-}
-
-void OptionGroup::on_error(OptionContext& /* context */, OptionGroup& /* group */)
-{
-}
-
-
-OptionGroup::CppOptionEntry::CppOptionEntry()
-: carg_type_(G_OPTION_ARG_NONE), carg_(0), cpparg_(0), entry_(0)
-{}
-    
-void OptionGroup::CppOptionEntry::allocate_c_arg()
-{
-  //Create an instance of the appropriate C type.
-  //This will be destroyed in the OptionGroup destructor.
-  switch(carg_type_)
-  {
-    case G_OPTION_ARG_STRING: //The char* will be for UTF8 strins.
-    case G_OPTION_ARG_FILENAME: //The char* will be for strings in the current locale's encoding.
-    {
-      char** typed_arg = new char*;
-      *typed_arg = 0; //The C code will allocate a char* and put it here, for us to g_free() later.
-      carg_ = typed_arg;
-      
-      break;
-    }
-    case G_OPTION_ARG_INT:
-    {
-      int* typed_arg = new int;
-      *typed_arg = 0;
-      carg_ = typed_arg;
-      
-      break;
-    }
-    case G_OPTION_ARG_STRING_ARRAY:
-    case G_OPTION_ARG_FILENAME_ARRAY:
-    {
-      char*** typed_arg = new char**;
-      *typed_arg = 0;
-      carg_ = typed_arg;
-      
-      break;
-    }
-    case G_OPTION_ARG_NONE: /* Actually a boolean. */
-    {
-      gboolean* typed_arg = new gboolean;
-      *typed_arg = 0;
-      carg_ = typed_arg;
-      
-      break;
-    }
-    default:
-    {
-      break;
-    }
-  }
-}
-
-void OptionGroup::CppOptionEntry::release_c_arg()
-{
-  //Delete the instances that we created in allocate_c_arg().
-  //Notice that we delete the type that we created, but not the value to which it points.
-  if(carg_)
-  {
-    switch(carg_type_)
-    {
-      case G_OPTION_ARG_STRING:
-      case G_OPTION_ARG_FILENAME:
-      {
-        char** typed_arg = (char**)carg_;
-        g_free(*typed_arg); //Free the char* string at type_arg, which was allocated by the C code.
-        delete typed_arg; //Delete the char** that we allocated in allocate_c_arg;
-        
-        break;
-      }
-      case G_OPTION_ARG_INT:
-      {
-        int* typed_arg = (int*)carg_;
-        delete typed_arg;
-
-        break;
-      }
-      case G_OPTION_ARG_STRING_ARRAY:
-      case G_OPTION_ARG_FILENAME_ARRAY:
-      {
-        delete (char**)carg_;
-        break;
-      }
-      case G_OPTION_ARG_NONE: /* Actually a boolean. */
-      {
-        gboolean* typed_arg = (gboolean*)carg_;
-        delete typed_arg;
-
-        break;
-      }
-      default:
-      {
-      /* TODO:
-       G_OPTION_ARG_CALLBACK,
-*/
-        break;
-      }
-    }
-    
-    carg_ = 0;
-  }
-  
-  if(entry_)
-    delete entry_;
-}
-
-void OptionGroup::CppOptionEntry::convert_c_to_cpp()
-{
-  switch(carg_type_)
-  {
-    case G_OPTION_ARG_STRING:
-    {
-      char** typed_arg = (char**)carg_;
-      Glib::ustring* typed_cpp_arg = (Glib::ustring*)cpparg_;
-      if(typed_arg && typed_cpp_arg)
-      {
-        char* pch = *typed_arg;
-        (*typed_cpp_arg) = Glib::convert_const_gchar_ptr_to_ustring(pch);
-       
-        break;
-      }
-    }
-    case G_OPTION_ARG_FILENAME:
-    {
-      char** typed_arg = (char**)carg_;
-      std::string* typed_cpp_arg = (std::string*)cpparg_;
-      if(typed_arg && typed_cpp_arg)
-      {
-        char* pch = *typed_arg;
-        (*typed_cpp_arg) = Glib::convert_const_gchar_ptr_to_stdstring(pch);
-       
-        break;
-      }
-    }
-    case G_OPTION_ARG_INT:
-    {
-      *((int*)cpparg_) = *((int*)carg_);
-      break;
-    }
-        case G_OPTION_ARG_STRING_ARRAY:
-    {
-      char*** typed_arg = (char***)carg_;
-      vecustrings* typed_cpp_arg = (vecustrings*)cpparg_;
-      if(typed_arg && typed_cpp_arg)
-      {
-        typed_cpp_arg->clear();
-        
-        //The C array seems to be null-terminated.
-        //Glib::StringArrayHandle array_handle(*typed_arg,  Glib::OWNERSHIP_NONE);
-        
-        //The SUN Forte compiler complains about this:
-        // "optiongroup.cc", line 354: Error: Cannot assign Glib::ArrayHandle<Glib::ustring, 
-        // Glib::Container_Helpers::TypeTraits<Glib::ustring>> to std::vector<Glib::ustring> without 
-        // "std::vector<Glib::ustring>::operator=(const std::vector<Glib::ustring>&)";.
-        //
-        //(*typed_cpp_arg) = array_handle;
-        //
-        //And the Tru64 compiler does not even like us to instantiate the StringArrayHandle:
-        //
-        // cxx: Error: ../../glib/glibmm/containerhandle_shared.h, line 149: the operand
-        //     of a pointer dynamic_cast must be a pointer to a complete class type
-        //   return dynamic_cast<CppType>(Glib::wrap_auto(cobj, false /* take_copy */));
-        
-        //for(Glib::StringArrayHandle::iterator iter = array_handle.begin(); iter != array_handle.end(); ++iter)
-        //{
-        //  typed_cpp_arg->push_back(*iter);
-        //}
-        
-        //So we do this:
-        
-        char** char_array_next = *typed_arg;
-        while(char_array_next && *char_array_next)
-        {
-          typed_cpp_arg->push_back(*char_array_next);
-          ++char_array_next;
-        }
-      }
-      
-      break;
-    }
-    case G_OPTION_ARG_FILENAME_ARRAY:
-    {
-      char*** typed_arg = (char***)carg_;
-      vecustrings* typed_cpp_arg = (vecustrings*)cpparg_;
-      if(typed_arg && typed_cpp_arg)
-      { 
-        typed_cpp_arg->clear();
-              
-        //See comments above about the SUN Forte and Tru64 compilers.
-   
-        char** char_array_next = *typed_arg;
-        while(char_array_next && *char_array_next)
-        {
-          typed_cpp_arg->push_back(*char_array_next);
-          ++char_array_next;
-        }
-      }
-      
-      break;
-    }
-    case G_OPTION_ARG_NONE: /* Actually a boolean. */
-    {
-      *((bool*)cpparg_) = *((gboolean*)carg_);
-      break;
-    }
-    default:
-    {
-      /* TODO:
-       G_OPTION_ARG_CALLBACK,
-       */
-       break;
-    }
-  }
-} 
-
-GOptionGroup* OptionGroup::gobj_give_ownership()
-{
-  has_ownership_ = false;
-  return gobj();
-}
-  
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-
-void OptionGroup::set_translation_domain(const Glib::ustring& domain)
-{
-  g_option_group_set_translation_domain(gobj(), domain.c_str());
-}
-
-
-} // namespace Glib
-
-
diff --git a/libs/glibmm2/glibmm/optiongroup.h b/libs/glibmm2/glibmm/optiongroup.h
deleted file mode 100644 (file)
index 3d8ce78..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_OPTIONGROUP_H
-#define _GLIBMM_OPTIONGROUP_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2004 The glibmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmm/ustring.h>
-#include <map>
-#include <vector>
-#include <glib/goption.h> //TODO: Try to hide this.
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C" { typedef struct _GOptionGroup GOptionGroup; }
-#endif //DOXYGEN_SHOULD_SKIP_THIS
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-class OptionEntry;
-class OptionContext;
-#endif //DOXYGEN_SHOULD_SKIP_THIS
-
-/** An OptionGroup defines the options in a single group. 
- * Libraries which need to parse commandline options are expected to provide a function that allows their OptionGroups to
- * be added to the application's OptionContext.
- */
-class OptionGroup
-{
-  public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  typedef OptionGroup CppObjectType;
-  typedef GOptionGroup BaseObjectType;
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-private:
-
-public:
-  OptionGroup(const Glib::ustring& name, const Glib::ustring& description, const Glib::ustring& help_description = Glib::ustring());
-
-  /** This always takes ownership of the underlying GOptionGroup, 
-   * so it is only useful with C functions that return newly-allocated GOptionGroups. 
-   */
-  explicit OptionGroup(GOptionGroup* castitem);  
-  
-  virtual ~OptionGroup();
-  
-
-  virtual bool on_pre_parse(OptionContext& context, OptionGroup& group);
-  virtual bool on_post_parse(OptionContext& context, OptionGroup& group);
-  virtual void on_error(OptionContext& context, OptionGroup& group);
-  
-  
-  void add_entry(const OptionEntry& entry);
-  
-  
-  typedef std::vector<Glib::ustring> vecustrings;
-  typedef std::vector<std::string> vecstrings;
-  
-  void add_entry(const OptionEntry& entry, bool& arg);
-  void add_entry(const OptionEntry& entry, int& arg);
-  void add_entry(const OptionEntry& entry, Glib::ustring& arg);
-  void add_entry_filename(const OptionEntry& entry, std::string& arg);  
-  void add_entry(const OptionEntry& entry, vecustrings& arg);
-  void add_entry_filename(const OptionEntry& entry, vecstrings& arg);
-    
-/* TODO:
-void          g_option_group_set_translate_func     (GOptionGroup       *group,
-                                                    GTranslateFunc      func,
-                                                    gpointer            data,
-                                                    GDestroyNotify      destroy_notify);
-*/
-  
-  /** A convenience function to use gettext() for translating
-   * user-visible strings. 
-   * 
-   * Since: 2.6
-   * @param domain The domain to use.
-   */
-  void set_translation_domain(const Glib::ustring& domain);
-  
-  GOptionGroup*       gobj()       { return gobject_; }
-  const GOptionGroup* gobj() const { return gobject_; }
-  GOptionGroup* gobj_give_ownership();
-  
-protected:
-
-  class CppOptionEntry
-  {
-  public:
-    CppOptionEntry();
-    
-    void allocate_c_arg();
-    void convert_c_to_cpp();
-    void release_c_arg();
-  
-    GOptionArg carg_type_;
-    void* carg_;
-    void* cpparg_;
-    OptionEntry* entry_;
-  };
-  
-  void add_entry_with_wrapper(const OptionEntry& entry, GOptionArg arg_type, void* cpp_arg);
-  
-  //Map of entry names to CppOptionEntry:
-  typedef std::map<Glib::ustring, CppOptionEntry> type_map_entries;
-  type_map_entries map_entries_;
-  
-  GOptionGroup* gobject_;
-  bool has_ownership_; //Whether the gobject_ belongs to this C++ instance.
-
-
-};
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_OPTIONGROUP_H */
-
diff --git a/libs/glibmm2/glibmm/pattern.cc b/libs/glibmm2/glibmm/pattern.cc
deleted file mode 100644 (file)
index a655259..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* pattern.cc
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gpattern.h>
-#include <glibmm/pattern.h>
-
-
-namespace Glib
-{
-
-PatternSpec::PatternSpec(const Glib::ustring& pattern)
-:
-  gobject_ (g_pattern_spec_new(pattern.c_str()))
-{}
-
-PatternSpec::PatternSpec(GPatternSpec* gobject)
-:
-  gobject_ (gobject)
-{}
-
-PatternSpec::~PatternSpec()
-{
-  g_pattern_spec_free(gobject_);
-}
-
-bool PatternSpec::match(const Glib::ustring& str) const
-{
-  return g_pattern_match(gobject_, str.bytes(), str.c_str(), 0);
-}
-
-bool PatternSpec::match(const Glib::ustring& str, const Glib::ustring& str_reversed) const
-{
-  return g_pattern_match(gobject_, str.bytes(), str.c_str(), str_reversed.c_str());
-}
-
-bool PatternSpec::operator==(const PatternSpec& rhs) const
-{
-  return g_pattern_spec_equal(gobject_, rhs.gobject_);
-}
-
-bool PatternSpec::operator!=(const PatternSpec& rhs) const
-{
-  return !g_pattern_spec_equal(gobject_, rhs.gobject_);
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/pattern.h b/libs/glibmm2/glibmm/pattern.h
deleted file mode 100644 (file)
index bf09a3a..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_PATTERN_H
-#define _GLIBMM_PATTERN_H
-
-/* $Id$ */
-
-/* pattern.h
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-extern "C" { typedef struct _GPatternSpec GPatternSpec; }
-
-#include <glibmm/ustring.h>
-
-
-namespace Glib
-{
-
-/** @defgroup PatternMatching Glob-style Pattern Matching
- * Match strings against patterns containing '*' (wildcard) and '?' (joker).
- * @{
- */
-
-class PatternSpec
-{
-public:
-  explicit PatternSpec(const Glib::ustring& pattern);
-  explicit PatternSpec(GPatternSpec* gobject);
-  ~PatternSpec();
-
-  bool match(const Glib::ustring& str) const;
-  bool match(const Glib::ustring& str, const Glib::ustring& str_reversed) const;
-
-  bool operator==(const PatternSpec& rhs) const;
-  bool operator!=(const PatternSpec& rhs) const;
-
-  GPatternSpec*       gobj()       { return gobject_; }
-  const GPatternSpec* gobj() const { return gobject_; }
-
-private:
-  GPatternSpec* gobject_;
-
-  // noncopyable
-  PatternSpec(const PatternSpec&);
-  PatternSpec& operator=(const PatternSpec&);
-};
-
-/** @} group PatternMatching */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_PATTERN_H */
-
diff --git a/libs/glibmm2/glibmm/private/convert_p.h b/libs/glibmm2/glibmm/private/convert_p.h
deleted file mode 100644 (file)
index b8819e5..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_CONVERT_P_H
-#define _GLIBMM_CONVERT_P_H
-#endif /* _GLIBMM_CONVERT_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/date_p.h b/libs/glibmm2/glibmm/private/date_p.h
deleted file mode 100644 (file)
index 8c09c9b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_DATE_P_H
-#define _GLIBMM_DATE_P_H
-#endif /* _GLIBMM_DATE_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/fileutils_p.h b/libs/glibmm2/glibmm/private/fileutils_p.h
deleted file mode 100644 (file)
index 2d15adf..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_FILEUTILS_P_H
-#define _GLIBMM_FILEUTILS_P_H
-#endif /* _GLIBMM_FILEUTILS_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/interface_p.h b/libs/glibmm2/glibmm/private/interface_p.h
deleted file mode 100644 (file)
index 805d8db..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// -*- c++ -*-
-
-#ifndef _GLIBMM_INTERFACE_P_H
-#define _GLIBMM_INTERFACE_P_H
-
-#include <glibmm/class.h>
-
-
-namespace Glib
-{
-
-class Interface_Class : public Glib::Class
-{
-public:
-  typedef Interface       CppObjectType;
-  typedef GTypeInterface  BaseClassType;
-
-  void add_interface(GType instance_type) const;
-};
-
-} // namespace Glib
-
-#endif /* _GLIBMM_INTERFACE_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/iochannel_p.h b/libs/glibmm2/glibmm/private/iochannel_p.h
deleted file mode 100644 (file)
index a66f0a8..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_IOCHANNEL_P_H
-#define _GLIBMM_IOCHANNEL_P_H
-#endif /* _GLIBMM_IOCHANNEL_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/markup_p.h b/libs/glibmm2/glibmm/private/markup_p.h
deleted file mode 100644 (file)
index 2abb186..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_MARKUP_P_H
-#define _GLIBMM_MARKUP_P_H
-#endif /* _GLIBMM_MARKUP_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/module_p.h b/libs/glibmm2/glibmm/private/module_p.h
deleted file mode 100644 (file)
index f06c078..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_MODULE_P_H
-#define _GLIBMM_MODULE_P_H
-#endif /* _GLIBMM_MODULE_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/object_p.h b/libs/glibmm2/glibmm/private/object_p.h
deleted file mode 100644 (file)
index 20a7118..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// -*- c++ -*-
-
-#ifndef _GLIBMM_OBJECT_P_H
-#define _GLIBMM_OBJECT_P_H
-
-#include <glibmm/class.h>
-
-namespace Glib
-{
-
-class Object_Class : public Glib::Class
-{
-public:
-  typedef Object       CppObjectType;
-  typedef GObject      BaseObjectType;
-  typedef GObjectClass BaseClassType;
-
-  static void class_init_function(void* g_class, void* class_data);
-
-  const Glib::Class& init();
-
-  static Glib::Object* wrap_new(GObject*);
-};
-
-} // namespace Glib
-
-#endif /* _GLIBMM_OBJECT_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/optioncontext_p.h b/libs/glibmm2/glibmm/private/optioncontext_p.h
deleted file mode 100644 (file)
index a0499f0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_OPTIONCONTEXT_P_H
-#define _GLIBMM_OPTIONCONTEXT_P_H
-#endif /* _GLIBMM_OPTIONCONTEXT_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/optionentry_p.h b/libs/glibmm2/glibmm/private/optionentry_p.h
deleted file mode 100644 (file)
index df59695..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_OPTIONENTRY_P_H
-#define _GLIBMM_OPTIONENTRY_P_H
-#endif /* _GLIBMM_OPTIONENTRY_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/optiongroup_p.h b/libs/glibmm2/glibmm/private/optiongroup_p.h
deleted file mode 100644 (file)
index 7bbc139..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_OPTIONGROUP_P_H
-#define _GLIBMM_OPTIONGROUP_P_H
-#endif /* _GLIBMM_OPTIONGROUP_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/shell_p.h b/libs/glibmm2/glibmm/private/shell_p.h
deleted file mode 100644 (file)
index 6d9c625..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_SHELL_P_H
-#define _GLIBMM_SHELL_P_H
-#endif /* _GLIBMM_SHELL_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/spawn_p.h b/libs/glibmm2/glibmm/private/spawn_p.h
deleted file mode 100644 (file)
index fddcf2b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_SPAWN_P_H
-#define _GLIBMM_SPAWN_P_H
-#endif /* _GLIBMM_SPAWN_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/thread_p.h b/libs/glibmm2/glibmm/private/thread_p.h
deleted file mode 100644 (file)
index 8767041..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_THREAD_P_H
-#define _GLIBMM_THREAD_P_H
-#endif /* _GLIBMM_THREAD_P_H */
-
diff --git a/libs/glibmm2/glibmm/private/unicode_p.h b/libs/glibmm2/glibmm/private/unicode_p.h
deleted file mode 100644 (file)
index 6ee135f..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_UNICODE_P_H
-#define _GLIBMM_UNICODE_P_H
-#endif /* _GLIBMM_UNICODE_P_H */
-
diff --git a/libs/glibmm2/glibmm/property.cc b/libs/glibmm2/glibmm/property.cc
deleted file mode 100644 (file)
index e801e0c..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/property.h>
-#include <glibmm/object.h>
-#include <cstddef>
-
-// Temporary hack till GLib gets fixed.
-#undef  G_STRLOC
-#define G_STRLOC __FILE__ ":" G_STRINGIFY(__LINE__)
-
-
-namespace
-{
-
-// OK guys, please don't kill me for that.  Let me explain what happens here.
-//
-// The task:
-// ---------
-// a) Autogenerate a property ID number for each custom property.  This is an
-//    unsigned integer, which doesn't have to be assigned continuously.  I.e.,
-//    it can be everything but 0.
-// b) If more than one object of the same class is instantiated, then of course
-//    the already installed properties must be used.  That means, a property ID
-//    must not be associated with a single Glib::Property<> instance.  Rather,
-//    the ID has to be associated with the class somehow.
-// c) With only a GObject pointer and a property ID (and perhaps GParamSpec*
-//    if necessary), it must be possible to acquire a reference to the property
-//    wrapper instance.
-//
-// The current solution:
-// ---------------------
-// a) Assign an ID to a Glib::PropertyBase by calculating its offset in bytes
-//    relative to the beginning of the object's memory.  dynamic_cast<void*>
-//    is used to retrieve a pointer to the very beginning of an instance.
-// b) Recalculate a specific PropertyBase pointer by adding the property ID
-//    (i.e. the byte offset) to the object start pointer.  The result is then
-//    just casted to PropertyBase*.
-//
-// Drawbacks:
-// ----------
-// a) It's a low-level hack.  Should be portable, yes, but we can only do very
-//    limited error checking.
-// b) All Glib::Property<> instances are absolutely required to be direct data
-//    members of the class that implements the property.  That seems a natural
-//    thing to do, but it's questionable whether it should be a requirement.
-//
-// Advantages:
-// -----------
-// a) Although low-level, it's extremely easy to implement.  The nasty code is
-//    concentrated in only two non-exposed utility functions, and it works
-//    just fine.
-// b) It's efficient, and the memory footprint is very small too.
-// c) I actually tried other ways, too, but ran into dead-ends everywhere.
-//    It's probably possible to implement this without calculating offsets,
-//    but it'll be very complicated, and involve a lot of qdata pointers to
-//    property tables andwhatnot.
-//
-// We can reimplement this later if necessary.
-
-unsigned int property_to_id(Glib::ObjectBase& object, Glib::PropertyBase& property)
-{
-  void *const base_ptr = dynamic_cast<void*>(&object);
-  void *const prop_ptr = &property;
-
-  const ptrdiff_t offset = static_cast<guint8*>(prop_ptr) - static_cast<guint8*>(base_ptr);
-
-  g_return_val_if_fail(offset > 0 && offset < G_MAXINT, 0);
-
-  return static_cast<unsigned int>(offset);
-}
-
-Glib::PropertyBase& property_from_id(Glib::ObjectBase& object, unsigned int property_id)
-{
-  void *const base_ptr = dynamic_cast<void*>(&object);
-  void *const prop_ptr = static_cast<guint8*>(base_ptr) + property_id;
-
-  return *static_cast<Glib::PropertyBase*>(prop_ptr);
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-void custom_get_property_callback(GObject* object, unsigned int property_id,
-                                  GValue* value, GParamSpec* param_spec)
-{
-  if(Glib::ObjectBase *const wrapper = Glib::ObjectBase::_get_current_wrapper(object))
-  {
-    PropertyBase& property = property_from_id(*wrapper, property_id);
-
-    if((property.object_ == wrapper) && (property.param_spec_ == param_spec))
-      g_value_copy(property.value_.gobj(), value);
-    else
-      G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, param_spec);
-  }
-}
-
-void custom_set_property_callback(GObject* object, unsigned int property_id,
-                                  const GValue* value, GParamSpec* param_spec)
-{
-  if(Glib::ObjectBase *const wrapper = Glib::ObjectBase::_get_current_wrapper(object))
-  {
-    PropertyBase& property = property_from_id(*wrapper, property_id);
-
-    if((property.object_ == wrapper) && (property.param_spec_ == param_spec))
-    {
-      g_value_copy(value, property.value_.gobj());
-      g_object_notify(object, g_param_spec_get_name(param_spec));
-    }
-    else
-      G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, param_spec);
-  }
-}
-
-
-/**** Glib::PropertyBase ***************************************************/
-
-PropertyBase::PropertyBase(Glib::Object& object, GType value_type)
-:
-  object_     (&object),
-  value_      (),
-  param_spec_ (0)
-{
-  value_.init(value_type);
-}
-
-PropertyBase::~PropertyBase()
-{
-  if(param_spec_)
-    g_param_spec_unref(param_spec_);
-}
-
-bool PropertyBase::lookup_property(const Glib::ustring& name)
-{
-  g_assert(param_spec_ == 0);
-
-  param_spec_ = g_object_class_find_property(G_OBJECT_GET_CLASS(object_->gobj()), name.c_str());
-
-  if(param_spec_)
-  {
-    g_assert(G_PARAM_SPEC_VALUE_TYPE(param_spec_) == G_VALUE_TYPE(value_.gobj()));
-    g_param_spec_ref(param_spec_);
-  }
-
-  return (param_spec_ != 0);
-}
-
-void PropertyBase::install_property(GParamSpec* param_spec)
-{
-  g_return_if_fail(param_spec != 0);
-
-  const unsigned int property_id = property_to_id(*object_, *this);
-
-  g_object_class_install_property(G_OBJECT_GET_CLASS(object_->gobj()), property_id, param_spec);
-
-  param_spec_ = param_spec;
-  g_param_spec_ref(param_spec_);
-}
-
-const char* PropertyBase::get_name_internal() const
-{
-  const char *const name = g_param_spec_get_name(param_spec_);
-  g_return_val_if_fail(name != 0, "");
-  return name;
-}
-
-Glib::ustring PropertyBase::get_name() const
-{
-  return Glib::ustring(get_name_internal());
-}
-
-void PropertyBase::notify()
-{
-  g_object_notify(object_->gobj(), g_param_spec_get_name(param_spec_));
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/property.h b/libs/glibmm2/glibmm/property.h
deleted file mode 100644 (file)
index f25ef84..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_PROPERTY_H
-#define _GLIBMM_PROPERTY_H
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/propertyproxy.h>
-#include <glibmm/value.h>
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#ifdef GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC
-//For the AIX xlC compiler, I can not find a way to do this without putting the functions in the global namespace. murrayc
-extern "C"
-{
-#endif //GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC
-
-void custom_get_property_callback(GObject* object, unsigned int property_id,
-                                  GValue* value, GParamSpec* param_spec);
-
-void custom_set_property_callback(GObject* object, unsigned int property_id,
-                                  const GValue* value, GParamSpec* param_spec);
-
-#ifdef GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC
-} //extern "C"
-#endif //GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-class PropertyBase
-{
-public:
-  Glib::ustring get_name() const;
-  void notify();
-
-protected:
-  Glib::Object*   object_;
-  Glib::ValueBase value_;
-  GParamSpec*     param_spec_;
-
-  PropertyBase(Glib::Object& object, GType value_type);
-  ~PropertyBase();
-
-  bool lookup_property(const Glib::ustring& name);
-  void install_property(GParamSpec* param_spec);
-
-  const char* get_name_internal() const;
-
-private:
-  // noncopyable
-  PropertyBase(const PropertyBase&);
-  PropertyBase& operator=(const PropertyBase&);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-  friend void Glib::custom_get_property_callback(GObject* object, unsigned int property_id,
-                                                 GValue* value, GParamSpec* param_spec);
-
-  friend void Glib::custom_set_property_callback(GObject* object, unsigned int property_id,
-                                                 const GValue* value, GParamSpec* param_spec);
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-};
-
-
-template <class T>
-class Property : public PropertyBase
-{
-public:
-  typedef T PropertyType;
-  typedef Glib::Value<T> ValueType;
-
-  Property(Glib::Object& object, const Glib::ustring& name);
-  Property(Glib::Object& object, const Glib::ustring& name, const PropertyType& default_value);
-
-  inline void set_value(const PropertyType& data);
-  inline PropertyType get_value() const;
-
-  inline Property<T>& operator=(const PropertyType& data);
-  inline operator PropertyType() const;
-
-  inline Glib::PropertyProxy<T> get_proxy();
-};
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/**** Glib::Property<T> ****************************************************/
-
-template <class T>
-Property<T>::Property(Glib::Object& object, const Glib::ustring& name)
-:
-  PropertyBase(object, ValueType::value_type())
-{
-  if(!lookup_property(name))
-    install_property(static_cast<ValueType&>(value_).create_param_spec(name));
-}
-
-template <class T>
-Property<T>::Property(Glib::Object& object, const Glib::ustring& name,
-                      const typename Property<T>::PropertyType& default_value)
-:
-  PropertyBase(object, ValueType::value_type())
-{
-  static_cast<ValueType&>(value_).set(default_value);
-
-  if(!lookup_property(name))
-    install_property(static_cast<ValueType&>(value_).create_param_spec(name));
-}
-
-template <class T> inline
-void Property<T>::set_value(const typename Property<T>::PropertyType& data)
-{
-  static_cast<ValueType&>(value_).set(data);
-  this->notify();
-}
-
-template <class T> inline
-typename Property<T>::PropertyType Property<T>::get_value() const
-{
-  return static_cast<const ValueType&>(value_).get();
-}
-
-template <class T> inline
-Property<T>& Property<T>::operator=(const typename Property<T>::PropertyType& data)
-{
-  static_cast<ValueType&>(value_).set(data);
-  this->notify();
-  return *this;
-}
-
-template <class T> inline
-Property<T>::operator T() const
-{
-  return static_cast<const ValueType&>(value_).get();
-}
-
-template <class T> inline
-Glib::PropertyProxy<T> Property<T>::get_proxy()
-{
-  return Glib::PropertyProxy<T>(object_, get_name_internal());
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_PROPERTY_H */
-
diff --git a/libs/glibmm2/glibmm/propertyproxy.cc b/libs/glibmm2/glibmm/propertyproxy.cc
deleted file mode 100644 (file)
index c20f36b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* propertyproxy.cc
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/propertyproxy.h>
-
diff --git a/libs/glibmm2/glibmm/propertyproxy.h b/libs/glibmm2/glibmm/propertyproxy.h
deleted file mode 100644 (file)
index bfba551..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_PROPERTYPROXY_H
-#define _GLIBMM_PROPERTYPROXY_H
-/* $Id$ */
-
-/* propertyproxy.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/propertyproxy_base.h>
-
-
-namespace Glib
-{
-
-/** A PropertyProxy can be used to get and set the value of an object's property.
- * There are usually also get and set methods on the class itself, which you might find more convenient.
- * With the PropertyProxy, you may use either get_value() and set_value(), or operator=() and
- * operator PropertyType(), like so:
- * @code
- * int height = cellrenderer.property_height();
- * cellrenderer.property_editable() = true;
- * @endcode
- *
- * You may also receive notification when a property's value changes, by connecting to signal_changed().
- */
-template <class T>
-class PropertyProxy : public PropertyProxy_Base
-{
-public:
-  typedef T PropertyType;
-
-  PropertyProxy(ObjectBase* obj, const char* name)
-    : PropertyProxy_Base(obj, name) {}
-
-  /** Set the value of this property.
-   * @param data The new value for the property.
-   */
-  void set_value(const PropertyType& data);
-
-  /** Get the value of this property.
-   * @result The current value of the property.
-   */
-  PropertyType get_value() const;
-
-  /** Set the value of this property back to its default value
-   */
-  void reset_value()
-    { reset_property_(); }
-
-  PropertyProxy<T>& operator=(const PropertyType& data)
-    { this->set_value(data); return *this; }
-
-  operator PropertyType() const
-    { return this->get_value(); }
-};
-
-
-/** See PropertyProxy().
- * This property can be written, but not read, so there is no get_value() method.
- */
-template <class T>
-class PropertyProxy_WriteOnly : public PropertyProxy_Base
-{
-public:
-  typedef T PropertyType;
-
-  PropertyProxy_WriteOnly(ObjectBase* obj, const char* name)
-    : PropertyProxy_Base(obj, name) {}
-
-  /** Set the value of this property.
-   * @param data The new value for the property.
-   */
-  void set_value(const PropertyType& data)
-    {
-      PropertyProxy_Base& base = *this;
-      // The downcast to PropertyProxy<T> is safe, and avoids code duplication.
-      static_cast<PropertyProxy<T>&>(base).set_value(data);
-    }
-
-  /** Set the value of this property back to its default value
-   */
-  void reset_value()
-    { reset_property_(); }
-
-  PropertyProxy_WriteOnly<T>& operator=(const PropertyType& data)
-    { this->set_value(data); return *this; }
-};
-
-/** See PropertyProxy().
- * This property can be read, but not written, so there is no set_value() method.
- */
-template <class T>
-class PropertyProxy_ReadOnly : public PropertyProxy_Base
-{
-public:
-  typedef T PropertyType;
-
-  //obj is const, because this should be returned by const accessors.
-  PropertyProxy_ReadOnly(const ObjectBase* obj, const char* name)
-    : PropertyProxy_Base(const_cast<ObjectBase*>(obj), name) {}
-
-  /** Get the value of this property.
-   * @result The current value of the property.
-   */
-  PropertyType get_value() const
-    {
-      const PropertyProxy_Base& base = *this;
-      // The downcast to PropertyProxy<T> is safe, and avoids code duplication.
-      return static_cast<const PropertyProxy<T>&>(base).get_value();
-    }
-
-  operator PropertyType() const
-    { return this->get_value(); }
-};
-
-
-/**** Template Implementation **********************************************/
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-template <class T>
-void PropertyProxy<T>::set_value(const T& data)
-{
-  Glib::Value<T> value;
-  value.init(Glib::Value<T>::value_type());
-
-  value.set(data);
-  set_property_(value);
-}
-
-template <class T>
-T PropertyProxy<T>::get_value() const
-{
-  Glib::Value<T> value;
-  value.init(Glib::Value<T>::value_type());
-
-  get_property_(value);
-  return value.get();
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_PROPERTYPROXY_H */
-
diff --git a/libs/glibmm2/glibmm/propertyproxy_base.cc b/libs/glibmm2/glibmm/propertyproxy_base.cc
deleted file mode 100644 (file)
index d10c8cd..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* propertyproxy_base.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/propertyproxy_base.h>
-#include <glibmm/signalproxy_connectionnode.h>
-#include <glibmm/object.h>
-#include <glibmm/private/object_p.h>
-
-namespace Glib
-{
-
-/** PropertyProxyConnectionNode is a connection node for use with SignalProxyProperty.
-  * It's like ProxyConnectionNode, but it contains the property name too.
-  */
-class PropertyProxyConnectionNode : public SignalProxyConnectionNode
-{
-public:
-  friend class SignalProxyProperty;
-
-  PropertyProxyConnectionNode(const sigc::slot_base& slot, GObject* gobject, const gchar* property_name);
-
-protected:
-  //This will be examined in the callback.
-  //Should be a static string literal.
-  const gchar* property_name_;
-};
-
-PropertyProxyConnectionNode::PropertyProxyConnectionNode(const sigc::slot_base& slot, GObject* gobject, const gchar* property_name)
-: SignalProxyConnectionNode(slot, gobject),
-  property_name_(property_name)
-{
-}
-
-//SignalProxyProperty implementation:
-
-SignalProxyProperty::SignalProxyProperty(Glib::ObjectBase* obj, const gchar* property_name)
-: SignalProxyBase(obj),
-  property_name_(property_name)
-{
-}
-
-SignalProxyProperty::~SignalProxyProperty()
-{
-}
-
-sigc::connection SignalProxyProperty::connect(const SlotType& sl)
-{
-  // create a proxy to hold our connection info
-  PropertyProxyConnectionNode* pConnectionNode = new PropertyProxyConnectionNode(sl, obj_->gobj(), property_name_ );
-
-  // connect it to gtk+
-  // pConnectionNode will be passed as the data argument to the callback.
-  // The callback will then call the virtual Object::property_change_notify() method,
-  // which will contain a switch/case statement which will examine the property name.
-  pConnectionNode->connection_id_ = g_signal_connect_data(obj_->gobj(),
-         "notify", (GCallback)(&callback), pConnectionNode,
-         &PropertyProxyConnectionNode::destroy_notify_handler,
-         G_CONNECT_AFTER);
-
-  return sigc::connection(pConnectionNode->slot_);
-}
-
-void SignalProxyProperty::callback(GObject*, GParamSpec* pspec, gpointer data) //static
-{
-  if(pspec && data)
-  {
-    //Get the name of the property that has changed:
-    const char* property_name_changed = pspec->name;
-
-    //Get the name of the property that we are waiting for:
-    PropertyProxyConnectionNode* conn = static_cast<PropertyProxyConnectionNode*>(data);
-    const char* property_name_monitored = conn->property_name_;
-
-    //If it's the correct property, then call the signal handler:
-    if(strcmp(property_name_changed, property_name_monitored) == 0)
-    {
-      if(sigc::slot_base *const slot = data_to_slot(data))
-        (*static_cast<sigc::slot<void>*>(slot))();
-    }
-  }
-}
-
-
-//PropertyProxy_Base implementation:
-
-PropertyProxy_Base::PropertyProxy_Base(ObjectBase* obj, const char* property_name)
-:
-  obj_           (obj),
-  property_name_ (property_name)
-{}
-
-PropertyProxy_Base::PropertyProxy_Base(const PropertyProxy_Base& other)
-:
-  obj_           (other.obj_),
-  property_name_ (other.property_name_)
-{}
-
-SignalProxyProperty PropertyProxy_Base::signal_changed()
-{
-  return SignalProxyProperty(obj_, property_name_);
-}
-
-void PropertyProxy_Base::set_property_(const Glib::ValueBase& value)
-{
-  g_object_set_property(obj_->gobj(), property_name_, value.gobj());
-}
-
-void PropertyProxy_Base::get_property_(Glib::ValueBase& value) const
-{
-  g_object_get_property(obj_->gobj(), property_name_, value.gobj());
-}
-
-void PropertyProxy_Base::reset_property_()
-{
-  // Get information about the parameter:
-  const GParamSpec *const pParamSpec =
-      g_object_class_find_property(G_OBJECT_GET_CLASS(obj_->gobj()), property_name_);
-
-  g_return_if_fail(pParamSpec != 0);
-
-  Glib::ValueBase value;
-  value.init(G_PARAM_SPEC_VALUE_TYPE(pParamSpec));
-
-  // An explicit reset is not needed, because ValueBase:init()
-  // has already initialized it to the default value for this type.
-  // value.reset();
-
-  g_object_set_property(obj_->gobj(), property_name_, value.gobj());
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/propertyproxy_base.h b/libs/glibmm2/glibmm/propertyproxy_base.h
deleted file mode 100644 (file)
index 036291d..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_PROPERTYPROXY_BASE_H
-#define _GLIBMM_PROPERTYPROXY_BASE_H
-/* $Id$ */
-
-/* propertyproxy_base.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/value.h>
-#include <glibmm/signalproxy.h>
-
-
-namespace Glib
-{
-
-class ObjectBase;
-
-/// Use the connect() method, with sigc::ptr_fun() or sig::mem_fun() to connect signals to signal handlers.
-class SignalProxyProperty : public SignalProxyBase
-{
-public:
-  friend class PropertyProxy_Base;
-
-  SignalProxyProperty(Glib::ObjectBase* obj, const gchar* property_name);
-  ~SignalProxyProperty();
-
-  typedef sigc::slot<void> SlotType;
-  sigc::connection connect(const SlotType& sl);
-
-protected:
-  static void callback(GObject* object, GParamSpec* pspec, gpointer data);
-
-  const char* property_name_; //Should be a static string literal.
-
-private:
-  SignalProxyProperty& operator=(const SignalProxyProperty&); // not implemented
-};
-
-
-class PropertyProxy_Base
-{
-public:
-  PropertyProxy_Base(ObjectBase* obj, const char* property_name);
-  PropertyProxy_Base(const PropertyProxy_Base& other);
-
-  ///This signal will be emitted when the property changes.
-  SignalProxyProperty signal_changed();
-
-  ObjectBase* get_object()   const { return obj_; }
-  const char* get_name() const { return property_name_; }
-
-protected:
-  void set_property_(const Glib::ValueBase& value);
-  void get_property_(Glib::ValueBase& value) const;
-  void reset_property_();
-
-  ObjectBase* obj_; //The C++ wrapper instance of which this PropertyProxy is a member.
-  const char* property_name_; //Should be a static string literal.
-
-private:
-  //Declared as private, but not implemented to prevent any automatically generated implementation.
-  PropertyProxy_Base& operator=(const PropertyProxy_Base&);
-};
-
-} // namespace Glib
-
-#endif /* _GLIBMM_PROPERTYPROXY_BASE_H */
-
diff --git a/libs/glibmm2/glibmm/quark.cc b/libs/glibmm2/glibmm/quark.cc
deleted file mode 100644 (file)
index ea01f47..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* $Id$ */
-
-/* quark.cc
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gquark.h>
-#include <glibmm/quark.h>
-
-namespace Glib
-{
-
-QueryQuark::QueryQuark(const GQuark& q)
-  : quark_(q) 
-{}
-
-QueryQuark::QueryQuark(const ustring& s)
-: quark_(g_quark_try_string(s.c_str()))
-{}
-
-QueryQuark::QueryQuark(const char* s)
-: quark_(g_quark_try_string(s))
-{}
-
-QueryQuark& QueryQuark::operator=(const QueryQuark& q)
-{ quark_=q.quark_;
-  return *this;
-}
-
-QueryQuark::operator ustring() const
-{
-  return ustring(g_quark_to_string(quark_));
-}
-
-
-Quark::Quark(const ustring& s)
-: QueryQuark(g_quark_from_string(s.c_str()))
-{}
-
-Quark::Quark(const char* s)
-: QueryQuark(g_quark_from_string(s))
-{}
-
-Quark::~Quark()
-{}
-
-
-GQuark quark_ = 0;
-GQuark quark_cpp_wrapper_deleted_ = 0;
-
-} /* namespace Glib */
diff --git a/libs/glibmm2/glibmm/quark.h b/libs/glibmm2/glibmm/quark.h
deleted file mode 100644 (file)
index d2f450f..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_QUARK_H
-#define _GLIBMM_QUARK_H
-/* $Id$ */
-
-/* quark.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gquark.h>
-#include <glibmm/ustring.h>
-
-
-namespace Glib
-{
-
-/** Quarks are unique IDs in Glib for strings for use in 
- * hash table lookups.  Each Quark is unique but may change
- * between runs.
- *
- * QueryQuark is a converter class for looking up but not 
- * allocating an ID.  An id means the quark lookup failed.
- *
- * Quark is used for actions for which the id should live on
- * While QueryQuark should be used for queries.
- * ie.
- *   void set_data (const Quark&, void * data);
- *   void* get_data (const QueryQuark&);
- */
-class QueryQuark
-{
-  public:
-    QueryQuark(const GQuark& q);
-    QueryQuark(const ustring& s);
-    QueryQuark(const char*s);
-    ~QueryQuark() {}
-    QueryQuark& operator=(const QueryQuark& q);
-    operator ustring() const;
-
-    operator GQuark() const {return quark_;}
-    GQuark id() const       {return quark_;}
-
-  private:
-    GQuark quark_;
-};
-
-class Quark: public QueryQuark
-{
-  public:
-    Quark(const ustring& s);
-    Quark(const char* s);
-    ~Quark();
-};
-
-/** @relates Glib::QueryQuark */
-inline bool operator==(const QueryQuark& a, const QueryQuark& b)
-  { return a.id() == b.id(); }
-
-/** @relates Glib::QueryQuark */
-inline bool operator!=(const QueryQuark& a, const QueryQuark& b)
-  { return a.id() != b.id(); }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// TODO: Put this somewhere else.
-// (internal) The quark for C++ wrappers.
-extern GLIBMM_API GQuark quark_;
-extern GLIBMM_API GQuark quark_cpp_wrapper_deleted_;
-#endif
-
-} /* namespace Glib */
-
-#endif /* _GLIBMM_QUARK_H */
-
diff --git a/libs/glibmm2/glibmm/random.cc b/libs/glibmm2/glibmm/random.cc
deleted file mode 100644 (file)
index d447561..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* random.cc
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/random.h>
-#include <glib/grand.h>
-
-
-namespace Glib
-{
-
-Rand::Rand()
-:
-  gobject_ (g_rand_new())
-{}
-
-Rand::Rand(guint32 seed)
-:
-  gobject_ (g_rand_new_with_seed(seed))
-{}
-
-Rand::~Rand()
-{
-  g_rand_free(gobject_);
-}
-
-void Rand::set_seed(guint32 seed)
-{
-  g_rand_set_seed(gobject_, seed);
-}
-
-bool Rand::get_bool()
-{
-  return g_rand_boolean(gobject_);
-}
-
-guint32 Rand::get_int()
-{
-  return g_rand_int(gobject_);
-}
-
-gint32 Rand::get_int_range(gint32 begin, gint32 end)
-{
-  return g_rand_int_range(gobject_, begin, end);
-}
-
-double Rand::get_double()
-{
-  return g_rand_double(gobject_);
-}
-
-double Rand::get_double_range(double begin, double end)
-{
-  return g_rand_double_range(gobject_, begin, end);
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/random.h b/libs/glibmm2/glibmm/random.h
deleted file mode 100644 (file)
index 4a4ce84..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_RANDOM_H
-#define _GLIBMM_RANDOM_H
-
-/* $Id$ */
-
-/* random.h
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gtypes.h>
-
-extern "C" { typedef struct _GRand GRand; }
-
-
-namespace Glib
-{
-
-/** @defgroup Random Random Numbers
- * Pseudo random number generator.
- * @{
- */
-
-class Rand
-{
-public:
-  Rand();
-  explicit Rand(guint32 seed);
-  ~Rand();
-
-  void set_seed(guint32 seed);
-
-  bool get_bool();
-
-  guint32 get_int();
-  gint32  get_int_range(gint32 begin, gint32 end);
-
-  double get_double();
-  double get_double_range(double begin, double end);
-
-  GRand*       gobj()       { return gobject_; }
-  const GRand* gobj() const { return gobject_; }
-
-private:
-  GRand* gobject_;
-
-  // noncopyable
-  Rand(const Rand&);
-  Rand& operator=(const Rand&);
-};
-
-/** @} group Random */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_RANDOM_H */
-
diff --git a/libs/glibmm2/glibmm/refptr.h b/libs/glibmm2/glibmm/refptr.h
deleted file mode 100644 (file)
index d375f7a..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_REFPTR_H
-#define _GLIBMM_REFPTR_H
-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-namespace Glib
-{
-
-/** RefPtr<> is a reference-counting shared smartpointer.
- *
- * Some objects in gtkmm are obtained from a shared
- * store. Consequently you cannot instantiate them yourself. Instead they
- * return a RefPtr which behaves much like an ordinary pointer in that members
- * can be reached with the usual <code>object_ptr->member</code> notation.
- * Unlike most other smart pointers, RefPtr doesn't support dereferencing
- * through <code>*object_ptr</code>.
- *
- * Reference counting means that a shared reference count is incremented each
- * time a RefPtr is copied, and decremented each time a RefPtr is destroyed,
- * for instance when it leaves its scope. When the reference count reaches
- * zero, the contained object is deleted, meaning  you don't need to remember
- * to delete the object.
- *
- * RefPtr<> can store any class that has reference() and unreference() methods.
- * In gtkmm, that is anything derived from Glib::ObjectBase, such as
- * Gdk::Pixmap.
- *
- * See the "Memory Management" section in the "Programming with gtkmm"
- * book for further information.
- */
-template <class T_CppObject>
-class RefPtr
-{
-public:
-  /** Default constructor
-   *
-   * Afterwards it will be null and use of -> will cause a segmentation fault.
-   */
-  inline RefPtr();
-  
-  /// Destructor - decrements reference count.
-  inline ~RefPtr();
-
-  /// For use only by the ::create() methods.
-  explicit inline RefPtr(T_CppObject* pCppObject);
-
-  /** Copy constructor
-   *
-   * This increments the shared reference count.
-   */
-  inline RefPtr(const RefPtr<T_CppObject>& src);
-
-  /** Copy constructor (from different, but castable type).
-   *
-   * Increments the reference count.
-   */
-  template <class T_CastFrom>
-  inline RefPtr(const RefPtr<T_CastFrom>& src);
-
-  /** Swap the contents of two RefPtr<>.
-   * This method swaps the internal pointers to T_CppObject.  This can be
-   * done safely without involving a reference/unreference cycle and is
-   * therefore highly efficient.
-   */
-  inline void swap(RefPtr<T_CppObject>& other);
-
-  /// Copy from another RefPtr:
-  inline RefPtr<T_CppObject>& operator=(const RefPtr<T_CppObject>& src);
-
-  /** Copy from different, but castable type).
-   *
-   * Increments the reference count.
-   */
-  template <class T_CastFrom>
-  inline RefPtr<T_CppObject>& operator=(const RefPtr<T_CastFrom>& src);
-
-  /// Tests whether the RefPtr<> point to the same underlying instance.
-  inline bool operator==(const RefPtr<T_CppObject>& src) const;
-  
-  /// See operator==().
-  inline bool operator!=(const RefPtr<T_CppObject>& src) const;
-
-  /** Dereferencing.
-   *
-   * Use the methods of the underlying instance like so:
-   * <code>refptr->memberfun()</code>.
-   */
-  inline T_CppObject* operator->() const;
-
-  /** Test whether the RefPtr<> points to any underlying instance.
-   *
-   * Mimics usage of ordinary pointers:
-   * @code
-   *   if (ptr)
-   *     do_something();
-   * @endcode
-   */
-  inline operator bool() const;
-
-  /// Set underlying instance to 0, decrementing reference count of existing instance appropriately.
-  inline void clear();
-
-
-  /** Dynamic cast to derived class.
-   *
-   * The RefPtr can't be cast with the usual notation so instead you can use
-   * @code
-   *   ptr_derived = RefPtr<Derived>::cast_dynamic(ptr_base);
-   * @endcode
-   */
-  template <class T_CastFrom>
-  static inline RefPtr<T_CppObject> cast_dynamic(const RefPtr<T_CastFrom>& src);
-
-  /** Static cast to derived class.
-   *
-   * Like the dynamic cast; the notation is 
-   * @code
-   *   ptr_derived = RefPtr<Derived>::cast_static(ptr_base);
-   * @endcode
-   */
-  template <class T_CastFrom>
-  static inline RefPtr<T_CppObject> cast_static(const RefPtr<T_CastFrom>& src);
-
-private:
-  T_CppObject* pCppObject_;
-};
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-// RefPtr<>::operator->() comes first here since it's used by other methods.
-// If it would come after them it wouldn't be inlined.
-
-template <class T_CppObject> inline
-T_CppObject* RefPtr<T_CppObject>::operator->() const
-{
-  return pCppObject_;
-}
-
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::RefPtr()
-:
-  pCppObject_ (0)
-{}
-
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::~RefPtr()
-{
-  if(pCppObject_)
-    pCppObject_->unreference(); // This could cause pCppObject to be deleted.
-}
-
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::RefPtr(T_CppObject* pCppObject)
-:
-  pCppObject_ (pCppObject)
-{}
-
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CppObject>& src)
-:
-  pCppObject_ (src.pCppObject_)
-{
-  if(pCppObject_)
-    pCppObject_->reference();
-}
-
-// The templated ctor allows copy construction from any object that's
-// castable.  Thus, it does downcasts:
-//   base_ref = derived_ref
-template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CastFrom>& src)
-:
-  // A different RefPtr<> will not allow us access to pCppObject_.  We need
-  // to add a get_underlying() for this, but that would encourage incorrect
-  // use, so we use the less well-known operator->() accessor:
-  pCppObject_ (src.operator->())
-{
-  if(pCppObject_)
-    pCppObject_->reference();
-}
-
-template <class T_CppObject> inline
-void RefPtr<T_CppObject>::swap(RefPtr<T_CppObject>& other)
-{
-  T_CppObject *const temp = pCppObject_;
-  pCppObject_ = other.pCppObject_;
-  other.pCppObject_ = temp;
-}
-
-template <class T_CppObject> inline
-RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CppObject>& src)
-{
-  // In case you haven't seen the swap() technique to implement copy
-  // assignment before, here's what it does:
-  //
-  // 1) Create a temporary RefPtr<> instance via the copy ctor, thereby
-  //    increasing the reference count of the source object.
-  //
-  // 2) Swap the internal object pointers of *this and the temporary
-  //    RefPtr<>.  After this step, *this already contains the new pointer,
-  //    and the old pointer is now managed by temp.
-  //
-  // 3) The destructor of temp is executed, thereby unreferencing the
-  //    old object pointer.
-  //
-  // This technique is described in Herb Sutter's "Exceptional C++", and
-  // has a number of advantages over conventional approaches:
-  //
-  // - Code reuse by calling the copy ctor.
-  // - Strong exception safety for free.
-  // - Self assignment is handled implicitely.
-  // - Simplicity.
-  // - It just works and is hard to get wrong; i.e. you can use it without
-  //   even thinking about it to implement copy assignment whereever the
-  //   object data is managed indirectly via a pointer, which is very common.
-
-  RefPtr<T_CppObject> temp (src);
-  this->swap(temp);
-  return *this;
-}
-
-template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CastFrom>& src)
-{
-  RefPtr<T_CppObject> temp (src);
-  this->swap(temp);
-  return *this;
-}
-
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator==(const RefPtr<T_CppObject>& src) const
-{
-  return (pCppObject_ == src.pCppObject_);
-}
-
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator!=(const RefPtr<T_CppObject>& src) const
-{
-  return (pCppObject_ != src.pCppObject_);
-}
-
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::operator bool() const
-{
-  return (pCppObject_ != 0);
-}
-
-template <class T_CppObject> inline
-void RefPtr<T_CppObject>::clear()
-{
-  RefPtr<T_CppObject> temp; // swap with an empty RefPtr<> to clear *this
-  this->swap(temp);
-}
-
-template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject> RefPtr<T_CppObject>::cast_dynamic(const RefPtr<T_CastFrom>& src)
-{
-  T_CppObject *const pCppObject = dynamic_cast<T_CppObject*>(src.operator->());
-
-  if(pCppObject)
-    pCppObject->reference();
-
-  return RefPtr<T_CppObject>(pCppObject);
-}
-
-template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject> RefPtr<T_CppObject>::cast_static(const RefPtr<T_CastFrom>& src)
-{
-  T_CppObject *const pCppObject = static_cast<T_CppObject*>(src.operator->());
-
-  if(pCppObject)
-    pCppObject->reference();
-
-  return RefPtr<T_CppObject>(pCppObject);
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-/** @relates Glib::RefPtr */
-template <class T_CppObject> inline
-void swap(RefPtr<T_CppObject>& lhs, RefPtr<T_CppObject>& rhs)
-{
-  lhs.swap(rhs);
-}
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_REFPTR_H */
-
diff --git a/libs/glibmm2/glibmm/sarray.h b/libs/glibmm2/glibmm/sarray.h
deleted file mode 100644 (file)
index 01d7ee2..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_SARRAY_H
-#define _GLIBMM_SARRAY_H
-
-/* $Id$ */
-
-/* array.h
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glibmm/arrayhandle.h>
-#include <glibmm/ustring.h>
-
-namespace Glib { typedef Glib::ArrayHandle<Glib::ustring> SArray; }
-
-#if 0
-
-namespace Glib
-{
-
-template <>
-inline void cpp_type_to_c_type(const ustring& cpp_value, type_constpch& ref_c_value)
-{
-  ref_c_value = cpp_value.c_str();
-}
-
-template <>
-inline void cpp_type_to_c_type(const std::string& cpp_value, type_constpch& ref_c_value)
-{
-  ref_c_value = cpp_value.c_str();
-}
-
-typedef Array<Glib::ustring, const char*> SArray;
-
-/*
-class SArray: public Array<nstring, const char*>
-{
-public:
-  typedef const char* T_c;
-  typedef Array<nstring, const char*> type_base;
-
-  SArray(const SArray& src);
-
-  // copy other containers
-  template <typename T_container>
-  SArray(const T_container& t)
-  {
-    owned_ = Array_Helpers::Traits<T_container, pointer>::get_owned();
-    size_ = Array_Helpers::Traits<T_container, pointer>::get_size(t);
-    pData_ = Array_Helpers::Traits<T_container, pointer>::get_data(t);
-  }
-
-  SArray(const T_c* pValues, size_type size);
-
-  // copy a sequence
-  template <typename Iterator>
-  SArray(Iterator b, Iterator e);
-
-  operator std::vector<nstring>() const;
-  operator std::vector<ustring>() const;
-  operator std::vector<std::string>() const;
-
-  operator std::deque<nstring>() const;
-  operator std::deque<ustring>() const;
-  operator std::deque<std::string>() const;
-
-  operator std::list<nstring>() const;
-  operator std::list<ustring>() const;
-  operator std::list<std::string>() const;
-};
-
-
-//template <typename T_container>
-//SArray::SArray(const T_container& t)
-//: type_base(t)
-//{
-//}
-
-
-template <typename Iterator>
-SArray::SArray(Iterator b, Iterator e)
-: type_base(b, e)
-{
-}
-*/
-
-} // namespace Glib
-
-#endif /* #if 0 */
-
-#endif // _GLIBMM_SARRAY_H
-
diff --git a/libs/glibmm2/glibmm/shell.cc b/libs/glibmm2/glibmm/shell.cc
deleted file mode 100644 (file)
index adb3473..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/shell.h>
-#include <glibmm/private/shell_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/utility.h>
-
-
-namespace Glib
-{
-
-/**** shell utility functions **********************************************/
-
-Glib::ArrayHandle<std::string> shell_parse_argv(const std::string& command_line)
-{
-  char**  argv  = 0;
-  int     argc  = 0;
-  GError* error = 0;
-
-  g_shell_parse_argv(command_line.c_str(), &argc, &argv, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  return Glib::ArrayHandle<std::string>(argv, argc, Glib::OWNERSHIP_DEEP);
-}
-
-std::string shell_quote(const std::string& unquoted_string)
-{
-  const ScopedPtr<char> buf (g_shell_quote(unquoted_string.c_str()));
-  return std::string(buf.get());
-}
-
-std::string shell_unquote(const std::string& quoted_string)
-{
-  GError* error = 0;
-  char *const buf = g_shell_unquote(quoted_string.c_str(), &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  return std::string(ScopedPtr<char>(buf).get());
-}
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::ShellError::ShellError(Glib::ShellError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_SHELL_ERROR, error_code, error_message)
-{}
-
-Glib::ShellError::ShellError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::ShellError::Code Glib::ShellError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::ShellError::throw_func(GError* gobject)
-{
-  throw Glib::ShellError(gobject);
-}
-
-
diff --git a/libs/glibmm2/glibmm/shell.h b/libs/glibmm2/glibmm/shell.h
deleted file mode 100644 (file)
index 55512f5..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_SHELL_H
-#define _GLIBMM_SHELL_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glib/gshell.h>
-#include <string>
-
-#include <glibmm/arrayhandle.h>
-#include <glibmm/error.h>
-
-#include <glibmmconfig.h>
-GLIBMM_USING_STD(string)
-
-
-namespace Glib
-{
-
-/** @defgroup ShellUtils Shell-related Utilities
- * Shell-like command line handling.
- * @{
- */
-
-/** Exception class for shell utility errors.
- */
-class ShellError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    BAD_QUOTING,
-    EMPTY_STRING,
-    FAILED
-  };
-
-  ShellError(Code error_code, const Glib::ustring& error_message);
-  explicit ShellError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-/** Parses a command line into an argument vector, in much the same way the
- * shell would, but without many of the expansions the shell would perform
- * (variable expansion, globs, operators, filename expansion, etc.\ are not
- * supported).  The results are defined to be the same as those you would
- * get from a UNIX98 /bin/sh, as long as the input contains none of the
- * unsupported shell expansions.  If the input does contain such expansions,
- * they are passed through literally.
- * @param command_line Command line to parse.
- * @return Array of args (The generic ArrayHandle will be implicitly
- * converted to any STL compatible container type).
- * @throw Glib::ShellError
- */
-Glib::ArrayHandle<std::string> shell_parse_argv(const std::string& command_line);
-
-/** Quotes a string so that the shell (/bin/sh) will interpret the quoted
- * string to mean @a unquoted_string.  If you pass a filename to the shell,
- * for example, you should first quote it with this function.  The quoting
- * style used is undefined (single or double quotes may be used).
- * @param unquoted_string A literal string.
- * @return A quoted string.
- */
-std::string shell_quote(const std::string& unquoted_string);
-
-/** Unquotes a string as the shell (/bin/sh) would.  Only handles quotes; if
- * a string contains file globs, arithmetic operators, variables, backticks,
- * redirections, or other special-to-the-shell features, the result will be
- * different from the result a real shell would produce (the variables,
- * backticks, etc. will be passed through literally instead of being expanded).
- * This function is guaranteed to succeed if applied to the result of
- * shell_quote().  If it fails, it throws a Glib::ShellError exception.  The
- * @a quoted_string need not actually contain quoted or escaped text;
- * shell_unquote() simply goes through the string and unquotes/unescapes
- * anything that the shell would.  Both single and double quotes are handled,
- * as are escapes including escaped newlines.
- *
- * Shell quoting rules are a bit strange.  Single quotes preserve the literal
- * string exactly.  Escape sequences are not allowed; not even <tt>\\'</tt> --
- * if you want a <tt>'</tt> in the quoted text, you have to do something like
- * <tt>'foo'\\''bar'</tt>.  Double quotes allow <tt>$</tt>, <tt>`</tt>,
- * <tt>"</tt>, <tt>\\</tt>, and newline to be escaped with backslash.
- * Otherwise double quotes preserve things literally.
- *
- * @param quoted_string Shell-quoted string.
- * @return An unquoted string.
- * @throw Glib::ShellError
- */
-std::string shell_unquote(const std::string& quoted_string);
-
-/** @} group ShellUtils */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_SHELL_H */
-
diff --git a/libs/glibmm2/glibmm/signalproxy.cc b/libs/glibmm2/glibmm/signalproxy.cc
deleted file mode 100644 (file)
index 67f7a92..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-// -*- c++ -*-
-
-/* $Id$ */
-
-/* signalproxy.cc
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib-object.h>
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/object.h>
-#include <glibmm/signalproxy.h>
-
-
-namespace Glib
-{
-
-// SignalProxyBase implementation:
-
-SignalProxyBase::SignalProxyBase(Glib::ObjectBase* obj)
-:
-  obj_ (obj)
-{}
-
-
-// SignalProxyNormal implementation:
-
-SignalProxyNormal::SignalProxyNormal(Glib::ObjectBase* obj, const SignalProxyInfo* info)
-:
-  SignalProxyBase (obj),
-  info_           (info)
-{}
-
-SignalProxyNormal::~SignalProxyNormal()
-{}
-
-sigc::slot_base&
-SignalProxyNormal::connect_(const sigc::slot_base& slot, bool after)
-{
-  return connect_impl_(info_->callback, slot, after);
-}
-
-sigc::slot_base&
-SignalProxyNormal::connect_notify_(const sigc::slot_base& slot, bool after)
-{
-  return connect_impl_(info_->notify_callback, slot, after);
-}
-
-sigc::slot_base&
-SignalProxyNormal::connect_impl_(GCallback callback, const sigc::slot_base& slot, bool after)
-{
-  // create a proxy to hold our connection info
-  SignalProxyConnectionNode *const pConnectionNode =
-      new SignalProxyConnectionNode(slot, obj_->gobj());
-
-  // connect it to glib
-  // pConnectionNode will be passed in the data argument to the callback.
-  pConnectionNode->connection_id_ = g_signal_connect_data(
-      obj_->gobj(), info_->signal_name, callback, pConnectionNode,
-      &SignalProxyConnectionNode::destroy_notify_handler,
-      static_cast<GConnectFlags>((after) ? G_CONNECT_AFTER : 0));
-
-  return pConnectionNode->slot_;
-}
-
-void SignalProxyNormal::emission_stop()
-{
-  g_signal_stop_emission_by_name(obj_->gobj(), info_->signal_name);
-}
-
-// static
-void SignalProxyNormal::slot0_void_callback(GObject* self, void* data)
-{
-  // Do not try to call a signal on a disassociated wrapper.
-  if(Glib::ObjectBase::_get_current_wrapper(self))
-  {
-    try
-    {
-      if(sigc::slot_base *const slot = data_to_slot(data))
-        (*static_cast<sigc::slot<void>*>(slot))();
-    }
-    catch(...)
-    {
-      Glib::exception_handlers_invoke();
-    }
-  }
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/signalproxy.h b/libs/glibmm2/glibmm/signalproxy.h
deleted file mode 100644 (file)
index 43c8fc3..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
-// -*- c++ -*-
-/* This is a generated file, do not edit.  Generated from signalproxy.h.m4 */
-
-#ifndef _GLIBMM_SIGNALPROXY_H
-#define _GLIBMM_SIGNALPROXY_H
-
-extern "C"
-{
-  typedef void (*GCallback) (void);
-  typedef struct _GObject GObject;
-}
-
-#include <sigc++/sigc++.h>
-#include <glibmm/signalproxy_connectionnode.h>
-
-
-namespace Glib
-{
-
-// Forward declarations
-class ObjectBase;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-struct SignalProxyInfo
-{
-  const char* signal_name;
-  GCallback   callback;
-  GCallback   notify_callback;
-};
-
-#endif //DOXYGEN_SHOULD_SKIP_THIS
-
-// This base class is used by SignalProxyNormal and SignalProxyProperty.
-class SignalProxyBase
-{
-public:
-  SignalProxyBase(Glib::ObjectBase* obj);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  static inline sigc::slot_base* data_to_slot(void* data)
-  {
-    SignalProxyConnectionNode *const pConnectionNode = static_cast<SignalProxyConnectionNode*>(data);
-
-    // Return 0 if the connection is blocked.
-    return (!pConnectionNode->slot_.blocked()) ? &pConnectionNode->slot_ : 0;
-  }
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-protected:
-  ObjectBase* obj_;
-
-private:
-  SignalProxyBase& operator=(const SignalProxyBase&); // not implemented
-};
-
-
-// shared portion of a Signal
-/** The SignalProxy provides an API similar to sigc::signal that can be used to
- * connect sigc::slots to glib signals.
- *
- * This holds the name of the glib signal and the object
- * which might emit it. Actually, proxies are controlled by
- * the template derivatives, which serve as gatekeepers for the
- * types allowed on a particular signal.
- *
- */
-class SignalProxyNormal : public SignalProxyBase
-{
-public:
-  ~SignalProxyNormal();
-
-  /// stops the current signal emmision (not in libsigc++)
-  void emission_stop();
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  // This callback for SignalProxy0<void>
-  // is defined here to avoid code duplication.
-  static void slot0_void_callback(GObject*, void* data);
-#endif
-
-protected:
-
-  /** Create a proxy for a signal that can be emitted by @a obj.
-   * @param obj The object that can emit the signal.
-   * @param info Information about the signal, including its name, and the C callbacks that should be called by glib.
-   */
-  SignalProxyNormal(Glib::ObjectBase* obj, const SignalProxyInfo* info);
-
-  /** Connects a signal to a generic signal handler. This is called by connect() in derived SignalProxy classes.
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::slot_base& connect_(const sigc::slot_base& slot, bool after);
-
-  /** Connects a signal to a signal handler without a return value.
-   * This is called by connect() in derived SignalProxy classes.
-   *
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::slot_base& connect_notify_(const sigc::slot_base& slot, bool after);
-
-private:
-  const SignalProxyInfo* info_;
-
-  //TODO: We could maybe replace both connect_ and connect_notify_ with this in future, because they don't do anything extra.
-  /** This is called by connect_ and connect_impl_.
-   */
-  sigc::slot_base& connect_impl_(GCallback callback, const sigc::slot_base& slot, bool after);
-
-  // no copy assignment
-  SignalProxyNormal& operator=(const SignalProxyNormal&);
-};
-
-
-
-
-
-/**** Glib::SignalProxy0 ***************************************************/
-
-/** Proxy for signals with 0 arguments.
- * Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
- */
-template <class R>
-class SignalProxy0 : public SignalProxyNormal
-{
-public:
-  typedef sigc::slot<R>    SlotType;
-  typedef sigc::slot<void> VoidSlotType;
-
-  SignalProxy0(ObjectBase* obj, const SignalProxyInfo* info)
-    : SignalProxyNormal(obj, info) {}
-
-  /** Connects a signal to a signal handler.
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect(const SlotType& slot, bool after = true)
-    { return sigc::connection(connect_(slot, after)); }
-
-  /** Connects a signal to a signal handler without a return value.
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
-    { return sigc::connection(connect_notify_(slot, after)); }
-};
-
-
-/**** Glib::SignalProxy1 ***************************************************/
-
-/** Proxy for signals with 1 arguments.
- * Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
- */
-template <class R,class P1>
-class SignalProxy1 : public SignalProxyNormal
-{
-public:
-  typedef sigc::slot<R,P1>    SlotType;
-  typedef sigc::slot<void,P1> VoidSlotType;
-
-  SignalProxy1(ObjectBase* obj, const SignalProxyInfo* info)
-    : SignalProxyNormal(obj, info) {}
-
-  /** Connects a signal to a signal handler.
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect(const SlotType& slot, bool after = true)
-    { return sigc::connection(connect_(slot, after)); }
-
-  /** Connects a signal to a signal handler without a return value.
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
-    { return sigc::connection(connect_notify_(slot, after)); }
-};
-
-
-/**** Glib::SignalProxy2 ***************************************************/
-
-/** Proxy for signals with 2 arguments.
- * Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
- */
-template <class R,class P1,class P2>
-class SignalProxy2 : public SignalProxyNormal
-{
-public:
-  typedef sigc::slot<R,P1,P2>    SlotType;
-  typedef sigc::slot<void,P1,P2> VoidSlotType;
-
-  SignalProxy2(ObjectBase* obj, const SignalProxyInfo* info)
-    : SignalProxyNormal(obj, info) {}
-
-  /** Connects a signal to a signal handler.
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect(const SlotType& slot, bool after = true)
-    { return sigc::connection(connect_(slot, after)); }
-
-  /** Connects a signal to a signal handler without a return value.
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
-    { return sigc::connection(connect_notify_(slot, after)); }
-};
-
-
-/**** Glib::SignalProxy3 ***************************************************/
-
-/** Proxy for signals with 3 arguments.
- * Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
- */
-template <class R,class P1,class P2,class P3>
-class SignalProxy3 : public SignalProxyNormal
-{
-public:
-  typedef sigc::slot<R,P1,P2,P3>    SlotType;
-  typedef sigc::slot<void,P1,P2,P3> VoidSlotType;
-
-  SignalProxy3(ObjectBase* obj, const SignalProxyInfo* info)
-    : SignalProxyNormal(obj, info) {}
-
-  /** Connects a signal to a signal handler.
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect(const SlotType& slot, bool after = true)
-    { return sigc::connection(connect_(slot, after)); }
-
-  /** Connects a signal to a signal handler without a return value.
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
-    { return sigc::connection(connect_notify_(slot, after)); }
-};
-
-
-/**** Glib::SignalProxy4 ***************************************************/
-
-/** Proxy for signals with 4 arguments.
- * Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
- */
-template <class R,class P1,class P2,class P3,class P4>
-class SignalProxy4 : public SignalProxyNormal
-{
-public:
-  typedef sigc::slot<R,P1,P2,P3,P4>    SlotType;
-  typedef sigc::slot<void,P1,P2,P3,P4> VoidSlotType;
-
-  SignalProxy4(ObjectBase* obj, const SignalProxyInfo* info)
-    : SignalProxyNormal(obj, info) {}
-
-  /** Connects a signal to a signal handler.
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect(const SlotType& slot, bool after = true)
-    { return sigc::connection(connect_(slot, after)); }
-
-  /** Connects a signal to a signal handler without a return value.
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
-    { return sigc::connection(connect_notify_(slot, after)); }
-};
-
-
-/**** Glib::SignalProxy5 ***************************************************/
-
-/** Proxy for signals with 5 arguments.
- * Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
- */
-template <class R,class P1,class P2,class P3,class P4,class P5>
-class SignalProxy5 : public SignalProxyNormal
-{
-public:
-  typedef sigc::slot<R,P1,P2,P3,P4,P5>    SlotType;
-  typedef sigc::slot<void,P1,P2,P3,P4,P5> VoidSlotType;
-
-  SignalProxy5(ObjectBase* obj, const SignalProxyInfo* info)
-    : SignalProxyNormal(obj, info) {}
-
-  /** Connects a signal to a signal handler.
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect(const SlotType& slot, bool after = true)
-    { return sigc::connection(connect_(slot, after)); }
-
-  /** Connects a signal to a signal handler without a return value.
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
-    { return sigc::connection(connect_notify_(slot, after)); }
-};
-
-
-/**** Glib::SignalProxy6 ***************************************************/
-
-/** Proxy for signals with 6 arguments.
- * Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
- */
-template <class R,class P1,class P2,class P3,class P4,class P5,class P6>
-class SignalProxy6 : public SignalProxyNormal
-{
-public:
-  typedef sigc::slot<R,P1,P2,P3,P4,P5,P6>    SlotType;
-  typedef sigc::slot<void,P1,P2,P3,P4,P5,P6> VoidSlotType;
-
-  SignalProxy6(ObjectBase* obj, const SignalProxyInfo* info)
-    : SignalProxyNormal(obj, info) {}
-
-  /** Connects a signal to a signal handler.
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect(const SlotType& slot, bool after = true)
-    { return sigc::connection(connect_(slot, after)); }
-
-  /** Connects a signal to a signal handler without a return value.
-   * By default, the signal handler will be called before the default signal handler,
-   * in which case any return value would be replaced anyway by that of the later signal handler.
-   *
-   * For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
-   *
-   * @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
-   * @param after Whether this signal handler should be called before or after the default signal handler.
-   */
-  sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
-    { return sigc::connection(connect_notify_(slot, after)); }
-};
-
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_SIGNALPROXY_H */
-
diff --git a/libs/glibmm2/glibmm/signalproxy_connectionnode.cc b/libs/glibmm2/glibmm/signalproxy_connectionnode.cc
deleted file mode 100644 (file)
index dc1c1c3..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- c++ -*-
-
-/* $Id$ */
-
-/* signalproxy_connectionnode.cc
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/signalproxy_connectionnode.h>
-#include <glibmm/object.h>
-
-
-namespace Glib
-{
-
-SignalProxyConnectionNode::SignalProxyConnectionNode(const sigc::slot_base& slot, GObject* gobject)
-:
-  connection_id_ (0),
-  slot_          (slot),
-  object_        (gobject)
-{
-  //The cleanup callback will be called when the connection is disconnected.
-  slot_.set_parent(this, &SignalProxyConnectionNode::notify /* cleanup callback */);
-}
-
-// notify is a message coming up from the slot to be passed back to Gtk+
-// disconnect is a message coming up from the Gtk+ to be passed down to SigC++
-//static
-void* SignalProxyConnectionNode::notify(void* data)
-{
-  // notification from libsigc++.
-  SignalProxyConnectionNode* conn = static_cast<SignalProxyConnectionNode*>(data);
-
-  // If there is no object, this call was triggered from destroy_notify_handler(),
-  // because we set conn->object to 0 there:
-  if(conn && conn->object_)
-  {
-    GObject* o = conn->object_;
-    conn->object_ = 0;
-  
-    if(g_signal_handler_is_connected(o, conn->connection_id_)) //We check first, because during destruction, GTK+ sometimes seems to disconnect them for us, before we expect it to.  See bug #87912
-    {
-      // Disconnecting triggers execution of destroy_notify_handler(), eiter immediately or later:
-      //   When the signal handler is currently running. (for instance, if the callback disconnects its own connection)
-      //   In that case, destroy_notify_handler() will be called after this whole function has returned.
-      // Anyway. destroy_notify_handler() will always be called, so we leave that to do the deletion.
-
-      
-      //Forget the connection:
-      gulong connection_id = conn->connection_id_;
-      conn->connection_id_ = 0;
-      
-      g_signal_handler_disconnect(o, connection_id);
-    }
-  }
-
-  return 0; // apparently unused in libsigc++
-}
-
-//static
-void SignalProxyConnectionNode::destroy_notify_handler(gpointer data, GClosure*)
-{
-  //glib calls this when it has finished with a glib signal connection,
-  //either when the emitting object dies, or when the connection has been disconnected.
-  
-  // notification from gtk+.
-  SignalProxyConnectionNode* conn = static_cast<SignalProxyConnectionNode*>(data);
-
-  if(conn)
-  {
-    // the object has already lost track of this object.
-    conn->object_ = 0;
-
-    delete conn; // if there are connection objects referring to slot_ they are notified during destruction of slot_
-  }
-}
-
-} /* namespace Glib */
-
diff --git a/libs/glibmm2/glibmm/signalproxy_connectionnode.h b/libs/glibmm2/glibmm/signalproxy_connectionnode.h
deleted file mode 100644 (file)
index d3cfff8..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_SIGNALPROXY_CONNECTIONNODE_H
-#define _GLIBMM_SIGNALPROXY_CONNECTIONNODE_H
-
-/* $Id$ */
-
-/* signalproxy_connectionnode.h
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <sigc++/sigc++.h>
-#include <glibmm/wrap.h>
-
-typedef struct _GObject GObject;
-
-namespace Glib
-{
-
-/** SignalProxyConnectionNode is a connection node for use with SignalProxy.
-  * It lives between the layer of Gtk+ and libsigc++.
-  * It is very much an internal class.
-  */
-class SignalProxyConnectionNode
-{
-public:
-
-  /** @param slot The signal handler for the glib signal.
-   *  @param gobject The GObject that might emit this glib signal
-   */
-  SignalProxyConnectionNode(const sigc::slot_base& slot, GObject* gobject);
-
-  /** Callback that is executed when the slot becomes invalid.
-   * This callback is registered in the slot.
-   * @param data The SignalProxyConnectionNode object (@p this).
-   */
-  static void* notify(void* data);
-
-  /** Callback that is executed when the glib closure is destroyed.
-   * @param data The SignalProxyConnectionNode object (@p this).
-   * @param closure The glib closure object.
-   */
-  static void destroy_notify_handler(gpointer data, GClosure* closure);
-
-  gulong connection_id_;
-  sigc::slot_base slot_;
-
-protected:
-  GObject* object_;
-};
-
-} /* namespace Glib */
-
-
-#endif /* _GLIBMM_SIGNALPROXY_CONNECTIONNODE_H */
-
diff --git a/libs/glibmm2/glibmm/slisthandle.h b/libs/glibmm2/glibmm/slisthandle.h
deleted file mode 100644 (file)
index 7034914..0000000
+++ /dev/null
@@ -1,405 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_SLISTHANDLE_H
-#define _GLIBMM_SLISTHANDLE_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gslist.h>
-#include <glibmm/containerhandle_shared.h>
-
-
-namespace Glib
-{
-
-namespace Container_Helpers
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/* Create and fill a GSList as efficient as possible.
- * This requires bidirectional iterators.
- */
-template <class Bi, class Tr>
-GSList* create_slist(Bi pbegin, Bi pend, Tr)
-{
-  GSList* head = 0;
-
-  while(pend != pbegin)
-  {
-    // Use & to force a warning if the iterator returns a temporary object.
-    const void *const item = Tr::to_c_type(*&*--pend);
-    head = g_slist_prepend(head, const_cast<void*>(item));
-  }
-
-  return head;
-}
-
-/* Create a GSList from a 0-terminated input sequence.
- * Build it in reverse order and reverse the whole list afterwards,
- * because appending to the list would be horribly inefficient.
- */
-template <class For, class Tr>
-GSList* create_slist(For pbegin, Tr)
-{
-  GSList* head = 0;
-
-  while(*pbegin)
-  {
-    // Use & to force a warning if the iterator returns a temporary object.
-    const void *const item = Tr::to_c_type(*&*pbegin);
-    head = g_slist_prepend(head, const_cast<void*>(item));
-    ++pbegin;
-  }
-
-  return g_slist_reverse(head);
-}
-
-
-/* Convert from any container that supports bidirectional iterators.
- */
-template <class Tr, class Cont>
-struct SListSourceTraits
-{
-  static GSList* get_data(const Cont& cont)
-    { return Glib::Container_Helpers::create_slist(cont.begin(), cont.end(), Tr()); }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_SHALLOW;
-};
-
-/* Convert from a 0-terminated array.  The Cont
- * argument must be a pointer to the first element.
- */
-template <class Tr, class Cont>
-struct SListSourceTraits<Tr,Cont*>
-{
-  static GSList* get_data(const Cont* array)
-    { return (array) ? Glib::Container_Helpers::create_slist(array, Tr()) : 0; }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_SHALLOW;
-};
-
-template <class Tr, class Cont>
-struct SListSourceTraits<Tr,const Cont*> : SListSourceTraits<Tr,Cont*>
-{};
-
-/* Convert from a 0-terminated array.  The Cont argument must be a pointer
- * to the first element.  For consistency, the array must be 0-terminated,
- * even though the array size is known at compile time.
- */
-template <class Tr, class Cont, size_t N>
-struct SListSourceTraits<Tr,Cont[N]>
-{
-  static GSList* get_data(const Cont* array)
-    { return Glib::Container_Helpers::create_slist(array, array + (N - 1), Tr()); }
-
-  static const Glib::OwnershipType initial_ownership = Glib::OWNERSHIP_SHALLOW;
-};
-
-template <class Tr, class Cont, size_t N>
-struct SListSourceTraits<Tr,const Cont[N]> : SListSourceTraits<Tr,Cont[N]>
-{};
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/**
- * @ingroup ContHelpers
- * If a method takes this as an argument, or has this as a return type, then you can use a standard
- * container such as std::list or std::vector.
- */
-template <class Tr>
-class SListHandleIterator
-{
-public:
-  typedef typename Tr::CppType        CppType;
-  typedef typename Tr::CType          CType;
-
-  typedef std::forward_iterator_tag   iterator_category;
-  typedef CppType                     value_type;
-  typedef ptrdiff_t                   difference_type;
-  typedef value_type                  reference;
-  typedef void                        pointer;
-
-  explicit inline SListHandleIterator(const GSList* node);
-
-  inline value_type                    operator*() const;
-  inline SListHandleIterator<Tr> &     operator++();
-  inline const SListHandleIterator<Tr> operator++(int);
-
-  inline bool operator==(const SListHandleIterator<Tr>& rhs) const;
-  inline bool operator!=(const SListHandleIterator<Tr>& rhs) const;
-
-private:
-  const GSList* node_;
-};
-
-} // namespace Container_Helpers
-
-
-/**
- * @ingroup ContHandles
- */
-template < class T, class Tr = Glib::Container_Helpers::TypeTraits<T> >
-class SListHandle
-{
-public:
-  typedef typename Tr::CppType  CppType;
-  typedef typename Tr::CType    CType;
-
-  typedef CppType               value_type;
-  typedef size_t                size_type;
-  typedef ptrdiff_t             difference_type;
-
-  typedef Glib::Container_Helpers::SListHandleIterator<Tr>   const_iterator;
-  typedef Glib::Container_Helpers::SListHandleIterator<Tr>   iterator;
-
-  template <class Cont> inline
-    SListHandle(const Cont& container);
-
-  // Take over ownership of a GSList created by GTK+ functions.
-  inline SListHandle(GSList* glist, Glib::OwnershipType ownership);
-
-  // Copying clears the ownership flag of the source handle.
-  inline SListHandle(const SListHandle<T,Tr>& other);
-
-  ~SListHandle();
-
-  inline const_iterator begin() const;
-  inline const_iterator end()   const;
-
-  template <class U> inline operator std::vector<U>() const;
-  template <class U> inline operator std::deque<U>()  const;
-  template <class U> inline operator std::list<U>()   const;
-
-  template <class Cont> inline
-    void assign_to(Cont& container) const;
-  template <class Out> inline
-    void copy(Out pdest) const;
-
-  inline GSList* data()  const;
-  inline size_t  size()  const;
-  inline bool    empty() const;
-
-private:
-  GSList *                    pslist_;
-  mutable Glib::OwnershipType ownership_;
-
-  // No copy assignment.
-  SListHandle<T,Tr>& operator=(const SListHandle<T,Tr>&);
-};
-
-
-/***************************************************************************/
-/*  Inline implementation                                                  */
-/***************************************************************************/
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-namespace Container_Helpers
-{
-
-/**** Glib::Container_Helpers::SListHandleIterator<> ***********************/
-
-template <class Tr> inline
-SListHandleIterator<Tr>::SListHandleIterator(const GSList* node)
-:
-  node_ (node)
-{}
-
-template <class Tr> inline
-typename SListHandleIterator<Tr>::value_type SListHandleIterator<Tr>::operator*() const
-{
-  return Tr::to_cpp_type(static_cast<typename Tr::CTypeNonConst>(node_->data));
-}
-
-template <class Tr> inline
-SListHandleIterator<Tr>& SListHandleIterator<Tr>::operator++()
-{
-  node_ = node_->next;
-  return *this;
-}
-
-template <class Tr> inline
-const SListHandleIterator<Tr> SListHandleIterator<Tr>::operator++(int)
-{
-  const SListHandleIterator<Tr> tmp (*this);
-  node_ = node_->next;
-  return tmp;
-}
-
-template <class Tr> inline
-bool SListHandleIterator<Tr>::operator==(const SListHandleIterator<Tr>& rhs) const
-{
-  return (node_ == rhs.node_);
-}
-
-template <class Tr> inline
-bool SListHandleIterator<Tr>::operator!=(const SListHandleIterator<Tr>& rhs) const
-{
-  return (node_ != rhs.node_);
-}
-
-} // namespace Container_Helpers
-
-
-/**** Glib::SListHandle<> **************************************************/
-
-template <class T, class Tr>
-  template <class Cont>
-inline
-SListHandle<T,Tr>::SListHandle(const Cont& container)
-:
-  pslist_    (Glib::Container_Helpers::SListSourceTraits<Tr,Cont>::get_data(container)),
-  ownership_ (Glib::Container_Helpers::SListSourceTraits<Tr,Cont>::initial_ownership)
-{}
-
-template <class T, class Tr> inline
-SListHandle<T,Tr>::SListHandle(GSList* gslist, Glib::OwnershipType ownership)
-:
-  pslist_    (gslist),
-  ownership_ (ownership)
-{}
-
-template <class T, class Tr> inline
-SListHandle<T,Tr>::SListHandle(const SListHandle<T,Tr>& other)
-:
-  pslist_    (other.pslist_),
-  ownership_ (other.ownership_)
-{
-  other.ownership_ = Glib::OWNERSHIP_NONE;
-}
-
-template <class T, class Tr>
-SListHandle<T,Tr>::~SListHandle()
-{
-  if(ownership_ != Glib::OWNERSHIP_NONE)
-  {
-    if(ownership_ != Glib::OWNERSHIP_SHALLOW)
-    {
-      // Deep ownership: release each container element.
-      for(GSList* node = pslist_; node != 0; node = node->next)
-        Tr::release_c_type(static_cast<typename Tr::CTypeNonConst>(node->data));
-    }
-    g_slist_free(pslist_);
-  }
-}
-
-template <class T, class Tr> inline
-typename SListHandle<T,Tr>::const_iterator SListHandle<T,Tr>::begin() const
-{
-  return Glib::Container_Helpers::SListHandleIterator<Tr>(pslist_);
-}
-
-template <class T, class Tr> inline
-typename SListHandle<T,Tr>::const_iterator SListHandle<T,Tr>::end() const
-{
-  return Glib::Container_Helpers::SListHandleIterator<Tr>(0);
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-SListHandle<T,Tr>::operator std::vector<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::vector<U>(this->begin(), this->end());
-#else
-  std::vector<U> temp;
-  temp.reserve(this->size());
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-SListHandle<T,Tr>::operator std::deque<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::deque<U>(this->begin(), this->end());
-#else
-  std::deque<U> temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class U>
-inline
-SListHandle<T,Tr>::operator std::list<U>() const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  return std::list<U>(this->begin(), this->end());
-#else
-  std::list<U> temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  return temp;
-#endif
-}
-
-template <class T, class Tr>
-  template <class Cont>
-inline
-void SListHandle<T,Tr>::assign_to(Cont& container) const
-{
-#ifdef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-  container.assign(this->begin(), this->end());
-#else
-  Cont temp;
-  Glib::Container_Helpers::fill_container(temp, this->begin(), this->end());
-  container.swap(temp);
-#endif
-}
-
-template <class T, class Tr>
-  template <class Out>
-inline
-void SListHandle<T,Tr>::copy(Out pdest) const
-{
-  std::copy(this->begin(), this->end(), pdest);
-}
-
-template <class T, class Tr> inline
-GSList* SListHandle<T,Tr>::data() const
-{
-  return pslist_;
-}
-
-template <class T, class Tr> inline
-size_t SListHandle<T,Tr>::size() const
-{
-  return g_slist_length(pslist_);
-}
-
-template <class T, class Tr> inline
-bool SListHandle<T,Tr>::empty() const
-{
-  return (pslist_ == 0);
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_SLISTHANDLE_H */
-
diff --git a/libs/glibmm2/glibmm/spawn.cc b/libs/glibmm2/glibmm/spawn.cc
deleted file mode 100644 (file)
index cbc204c..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/spawn.h>
-#include <glibmm/private/spawn_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gspawn.h>
-#include <glibmm/exceptionhandler.h>
-#include <glibmm/utility.h>
-
-
-namespace
-{
-
-extern "C"
-{
-
-/* Helper callback to invoke the actual sigc++ slot.
- * We don't need to worry about (un)referencing, since the
- * child process gets its own copy of the parent's memory anyway.
- */
-void child_setup_callback(void* user_data)
-{
-  try
-  {
-    (*reinterpret_cast<sigc::slot<void>*>(user_data))();
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-}
-
-void copy_output_buf(std::string* dest, const char* buf)
-{
-  if(dest)
-  {
-    if(buf)
-      *dest = buf;
-    else
-      dest->erase();
-  }
-}
-
-} //extern "C"
-
-} //anonymous namespace
-
-
-namespace Glib
-{
-
-/**** process spawning functions *******************************************/
-
-void spawn_async_with_pipes(const std::string& working_directory,
-                            const Glib::ArrayHandle<std::string>& argv,
-                            const Glib::ArrayHandle<std::string>& envp,
-                            SpawnFlags flags,
-                            const sigc::slot<void>& child_setup,
-                            Pid* child_pid,
-                            int* standard_input,
-                            int* standard_output,
-                            int* standard_error)
-{
-  const bool setup_slot = !child_setup.empty();
-  sigc::slot<void> child_setup_ = child_setup;
-  GError* error = 0;
-
-  g_spawn_async_with_pipes(
-      working_directory.c_str(),
-      const_cast<char**>(argv.data()),
-      const_cast<char**>(envp.data()),
-      static_cast<GSpawnFlags>(unsigned(flags)),
-      (setup_slot) ? &child_setup_callback : 0,
-      (setup_slot) ? &child_setup_         : 0,
-      child_pid,
-      standard_input, standard_output, standard_error,
-      &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-void spawn_async_with_pipes(const std::string& working_directory,
-                            const Glib::ArrayHandle<std::string>& argv,
-                            SpawnFlags flags,
-                            const sigc::slot<void>& child_setup,
-                            Pid* child_pid,
-                            int* standard_input,
-                            int* standard_output,
-                            int* standard_error)
-{
-  const bool setup_slot = !child_setup.empty();
-  sigc::slot<void> child_setup_ = child_setup;
-  GError* error = 0;
-
-  g_spawn_async_with_pipes(
-      working_directory.c_str(),
-      const_cast<char**>(argv.data()), 0,
-      static_cast<GSpawnFlags>(unsigned(flags)),
-      (setup_slot) ? &child_setup_callback : 0,
-      (setup_slot) ? &child_setup_         : 0,
-      child_pid,
-      standard_input, standard_output, standard_error,
-      &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-void spawn_async(const std::string& working_directory,
-                 const Glib::ArrayHandle<std::string>& argv,
-                 const Glib::ArrayHandle<std::string>& envp,
-                 SpawnFlags flags,
-                 const sigc::slot<void>& child_setup,
-                 Pid* child_pid)
-{
-  const bool setup_slot = !child_setup.empty();
-  sigc::slot<void> child_setup_ = child_setup;
-  GError* error = 0;
-
-  g_spawn_async(
-      working_directory.c_str(),
-      const_cast<char**>(argv.data()),
-      const_cast<char**>(envp.data()),
-      static_cast<GSpawnFlags>(unsigned(flags)),
-      (setup_slot) ? &child_setup_callback : 0,
-      (setup_slot) ? &child_setup_         : 0,
-      child_pid,
-      &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-void spawn_async(const std::string& working_directory,
-                 const Glib::ArrayHandle<std::string>& argv,
-                 SpawnFlags flags,
-                 const sigc::slot<void>& child_setup,
-                 Pid* child_pid)
-{
-  const bool setup_slot = !child_setup.empty();
-  sigc::slot<void> child_setup_ = child_setup;
-  GError* error = 0;
-
-  g_spawn_async(
-      working_directory.c_str(),
-      const_cast<char**>(argv.data()), 0,
-      static_cast<GSpawnFlags>(unsigned(flags)),
-      (setup_slot) ? &child_setup_callback : 0,
-      (setup_slot) ? &child_setup_         : 0,
-      child_pid,
-      &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-void spawn_sync(const std::string& working_directory,
-                const Glib::ArrayHandle<std::string>& argv,
-                const Glib::ArrayHandle<std::string>& envp,
-                SpawnFlags flags,
-                const sigc::slot<void>& child_setup,
-                std::string* standard_output,
-                std::string* standard_error,
-                int* exit_status)
-{
-  const bool setup_slot = !child_setup.empty();
-  sigc::slot<void> child_setup_ = child_setup;
-
-  Glib::ScopedPtr<char> buf_standard_output;
-  Glib::ScopedPtr<char> buf_standard_error;
-  GError* error = 0;
-
-  g_spawn_sync(
-      working_directory.c_str(),
-      const_cast<char**>(argv.data()),
-      const_cast<char**>(envp.data()),
-      static_cast<GSpawnFlags>(unsigned(flags)),
-      (setup_slot) ? &child_setup_callback : 0,
-      (setup_slot) ? &child_setup_         : 0,
-      (standard_output) ? buf_standard_output.addr() : 0,
-      (standard_error)  ? buf_standard_error.addr()  : 0,
-      exit_status,
-      &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  copy_output_buf(standard_output, buf_standard_output.get());
-  copy_output_buf(standard_error, buf_standard_error.get());
-}
-
-void spawn_sync(const std::string& working_directory,
-                const Glib::ArrayHandle<std::string>& argv,
-                SpawnFlags flags,
-                const sigc::slot<void>& child_setup,
-                std::string* standard_output,
-                std::string* standard_error,
-                int* exit_status)
-{
-  const bool setup_slot = !child_setup.empty();
-  sigc::slot<void> child_setup_ = child_setup;
-
-  Glib::ScopedPtr<char> buf_standard_output;
-  Glib::ScopedPtr<char> buf_standard_error;
-  GError* error = 0;
-
-  g_spawn_sync(
-      working_directory.c_str(),
-      const_cast<char**>(argv.data()), 0,
-      static_cast<GSpawnFlags>(unsigned(flags)),
-      (setup_slot) ? &child_setup_callback : 0,
-      (setup_slot) ? &child_setup_         : 0,
-      (standard_output) ? buf_standard_output.addr() : 0,
-      (standard_error)  ? buf_standard_error.addr()  : 0,
-      exit_status,
-      &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  copy_output_buf(standard_output, buf_standard_output.get());
-  copy_output_buf(standard_error, buf_standard_error.get());
-}
-
-void spawn_command_line_async(const std::string& command_line)
-{
-  GError* error = 0;
-  g_spawn_command_line_async(command_line.c_str(), &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-void spawn_command_line_sync(const std::string& command_line,
-                             std::string* standard_output,
-                             std::string* standard_error,
-                             int* exit_status)
-{
-  Glib::ScopedPtr<char> buf_standard_output;
-  Glib::ScopedPtr<char> buf_standard_error;
-  GError* error = 0;
-
-  g_spawn_command_line_sync(
-      command_line.c_str(),
-      (standard_output) ? buf_standard_output.addr() : 0,
-      (standard_error)  ? buf_standard_error.addr()  : 0,
-      exit_status,
-      &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-
-  copy_output_buf(standard_output, buf_standard_output.get());
-  copy_output_buf(standard_error, buf_standard_error.get());
-}
-
-void spawn_close_pid(Pid pid)
-{
-  g_spawn_close_pid(pid);
-}
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::SpawnError::SpawnError(Glib::SpawnError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_SPAWN_ERROR, error_code, error_message)
-{}
-
-Glib::SpawnError::SpawnError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::SpawnError::Code Glib::SpawnError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::SpawnError::throw_func(GError* gobject)
-{
-  throw Glib::SpawnError(gobject);
-}
-
-
diff --git a/libs/glibmm2/glibmm/spawn.h b/libs/glibmm2/glibmm/spawn.h
deleted file mode 100644 (file)
index df7a43a..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_SPAWN_H
-#define _GLIBMM_SPAWN_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <string>
-#include <sigc++/sigc++.h>
-#include <glibmm/arrayhandle.h>
-#include <glibmm/error.h>
-
-#include <glibmmconfig.h>
-GLIBMM_USING_STD(string)
-
-
-namespace Glib
-{
-
-typedef GPid Pid;
-
-/** @addtogroup glibmmEnums Enums and Flags */
-
-/**
- * @ingroup glibmmEnums
- * @par Bitwise operators:
- * <tt>%SpawnFlags operator|(SpawnFlags, SpawnFlags)</tt><br>
- * <tt>%SpawnFlags operator&(SpawnFlags, SpawnFlags)</tt><br>
- * <tt>%SpawnFlags operator^(SpawnFlags, SpawnFlags)</tt><br>
- * <tt>%SpawnFlags operator~(SpawnFlags)</tt><br>
- * <tt>%SpawnFlags& operator|=(SpawnFlags&, SpawnFlags)</tt><br>
- * <tt>%SpawnFlags& operator&=(SpawnFlags&, SpawnFlags)</tt><br>
- * <tt>%SpawnFlags& operator^=(SpawnFlags&, SpawnFlags)</tt><br>
- */
-enum SpawnFlags
-{
-  SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
-  SPAWN_DO_NOT_REAP_CHILD = 1 << 1,
-  SPAWN_SEARCH_PATH = 1 << 2,
-  SPAWN_STDOUT_TO_DEV_NULL = 1 << 3,
-  SPAWN_STDERR_TO_DEV_NULL = 1 << 4,
-  SPAWN_CHILD_INHERITS_STDIN = 1 << 5,
-  SPAWN_FILE_AND_ARGV_ZERO = 1 << 6
-};
-
-/** @ingroup glibmmEnums */
-inline SpawnFlags operator|(SpawnFlags lhs, SpawnFlags rhs)
-  { return static_cast<SpawnFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline SpawnFlags operator&(SpawnFlags lhs, SpawnFlags rhs)
-  { return static_cast<SpawnFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline SpawnFlags operator^(SpawnFlags lhs, SpawnFlags rhs)
-  { return static_cast<SpawnFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline SpawnFlags operator~(SpawnFlags flags)
-  { return static_cast<SpawnFlags>(~static_cast<unsigned>(flags)); }
-
-/** @ingroup glibmmEnums */
-inline SpawnFlags& operator|=(SpawnFlags& lhs, SpawnFlags rhs)
-  { return (lhs = static_cast<SpawnFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline SpawnFlags& operator&=(SpawnFlags& lhs, SpawnFlags rhs)
-  { return (lhs = static_cast<SpawnFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline SpawnFlags& operator^=(SpawnFlags& lhs, SpawnFlags rhs)
-  { return (lhs = static_cast<SpawnFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
-
-
-/** @defgroup Spawn Spawning Processes
- * Process launching with fork()/exec().
- * @{
- */
-
-/** Exception class for errors occuring when spawning processes.
- */
-class SpawnError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    FORK,
-    READ,
-    CHDIR,
-    ACCES,
-    PERM,
-    TOOBIG,
-    NOEXEC,
-    NAMETOOLONG,
-    NOENT,
-    NOMEM,
-    NOTDIR,
-    LOOP,
-    TXTBUSY,
-    IO,
-    NFILE,
-    MFILE,
-    INVAL,
-    ISDIR,
-    LIBBAD
-  };
-
-  SpawnError(Code error_code, const Glib::ustring& error_message);
-  explicit SpawnError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-void spawn_async_with_pipes(const std::string& working_directory,
-                            const Glib::ArrayHandle<std::string>& argv,
-                            const Glib::ArrayHandle<std::string>& envp,
-                            SpawnFlags flags = SpawnFlags(0),
-                            const sigc::slot<void>& child_setup = sigc::slot<void>(),
-                            Pid* child_pid = 0,
-                            int* standard_input = 0,
-                            int* standard_output = 0,
-                            int* standard_error = 0);
-
-void spawn_async_with_pipes(const std::string& working_directory,
-                            const Glib::ArrayHandle<std::string>& argv,
-                            SpawnFlags flags = SpawnFlags(0),
-                            const sigc::slot<void>& child_setup = sigc::slot<void>(),
-                            Pid* child_pid = 0,
-                            int* standard_input = 0,
-                            int* standard_output = 0,
-                            int* standard_error = 0);
-
-void spawn_async(const std::string& working_directory,
-                 const Glib::ArrayHandle<std::string>& argv,
-                 const Glib::ArrayHandle<std::string>& envp,
-                 SpawnFlags flags = SpawnFlags(0),
-                 const sigc::slot<void>& child_setup = sigc::slot<void>(),
-                 Pid* child_pid = 0);
-
-void spawn_async(const std::string& working_directory,
-                 const Glib::ArrayHandle<std::string>& argv,
-                 SpawnFlags flags = SpawnFlags(0),
-                 const sigc::slot<void>& child_setup = sigc::slot<void>(),
-                 Pid* child_pid = 0);
-
-void spawn_sync(const std::string& working_directory,
-                const Glib::ArrayHandle<std::string>& argv,
-                const Glib::ArrayHandle<std::string>& envp,
-                SpawnFlags flags = SpawnFlags(0),
-                const sigc::slot<void>& child_setup = sigc::slot<void>(),
-                std::string* standard_output = 0,
-                std::string* standard_error = 0,
-                int* exit_status = 0);
-
-void spawn_sync(const std::string& working_directory,
-                const Glib::ArrayHandle<std::string>& argv,
-                SpawnFlags flags = SpawnFlags(0),
-                const sigc::slot<void>& child_setup = sigc::slot<void>(),
-                std::string* standard_output = 0,
-                std::string* standard_error = 0,
-                int* exit_status = 0);
-
-void spawn_command_line_async(const std::string& command_line);
-
-void spawn_command_line_sync(const std::string& command_line,
-                             std::string* standard_output = 0,
-                             std::string* standard_error = 0,
-                             int* exit_status = 0);
-
-void spawn_close_pid(Pid pid);                             
-
-/** @} group Spawn */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_SPAWN_H */
-
diff --git a/libs/glibmm2/glibmm/streamiochannel.cc b/libs/glibmm2/glibmm/streamiochannel.cc
deleted file mode 100644 (file)
index 985931d..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/streamiochannel.h>
-#include <glib.h>
-#include <fstream>
-#include <iostream>
-
-GLIBMM_USING_STD(ios)
-
-
-namespace Glib
-{
-
-// static
-Glib::RefPtr<StreamIOChannel> StreamIOChannel::create(std::istream& stream)
-{
-  return Glib::RefPtr<StreamIOChannel>(new StreamIOChannel(&stream, 0));
-}
-
-// static
-Glib::RefPtr<StreamIOChannel> StreamIOChannel::create(std::ostream& stream)
-{
-  return Glib::RefPtr<StreamIOChannel>(new StreamIOChannel(0, &stream));
-}
-
-// static
-Glib::RefPtr<StreamIOChannel> StreamIOChannel::create(std::iostream& stream)
-{
-  return Glib::RefPtr<StreamIOChannel>(new StreamIOChannel(&stream, &stream));
-}
-
-StreamIOChannel::StreamIOChannel(std::istream* stream_in, std::ostream* stream_out)
-:
-  stream_in_  (stream_in),
-  stream_out_ (stream_out)
-{
-  get_flags_vfunc(); // initialize GIOChannel flag bits
-}
-
-StreamIOChannel::~StreamIOChannel()
-{}
-
-IOStatus StreamIOChannel::read_vfunc(char* buf, gsize count, gsize& bytes_read)
-{
-  g_return_val_if_fail(stream_in_ != 0, IO_STATUS_ERROR);
-
-  stream_in_->clear();
-  stream_in_->read(buf, count);
-  bytes_read = stream_in_->gcount();
-
-  if(stream_in_->eof())
-    return IO_STATUS_EOF;
-
-  if(stream_in_->fail())
-    throw Glib::Error(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, "Reading from stream failed");
-
-  return IO_STATUS_NORMAL;
-}
-
-IOStatus StreamIOChannel::write_vfunc(const char* buf, gsize count, gsize& bytes_written)
-{
-  g_return_val_if_fail(stream_out_ != 0, IO_STATUS_ERROR);
-
-  bytes_written = 0;
-
-  stream_out_->clear();
-  stream_out_->write(buf, count);
-
-  if(stream_out_->fail())
-    throw Glib::Error(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, "Writing to stream failed");
-
-  bytes_written = count; // all or nothing ;)
-
-  return IO_STATUS_NORMAL;
-}
-
-IOStatus StreamIOChannel::seek_vfunc(gint64 offset, SeekType type)
-{
-  std::ios::seekdir direction = std::ios::beg;
-
-  switch(type)
-  {
-    case SEEK_TYPE_SET: direction = std::ios::beg; break;
-    case SEEK_TYPE_CUR: direction = std::ios::cur; break;
-    case SEEK_TYPE_END: direction = std::ios::end; break;
-  }
-
-  bool failed = false;
-
-  if(stream_in_)
-  {
-    stream_in_->clear();
-    stream_in_->seekg(offset, direction);
-    failed = stream_in_->fail();
-  }
-  if(stream_out_)
-  {
-    stream_out_->clear();
-    stream_out_->seekp(offset, direction);
-    failed = (failed || stream_out_->fail());
-  }
-
-  if(failed)
-    throw Glib::Error(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, "Seeking into stream failed");
-
-  return Glib::IO_STATUS_NORMAL;
-}
-
-IOStatus StreamIOChannel::close_vfunc()
-{
-  bool failed = false;
-
-  if(std::fstream *const stream = dynamic_cast<std::fstream*>(stream_in_))
-  {
-    stream->clear();
-    stream->close();
-    failed = stream->fail();
-  }
-  else if(std::ifstream *const stream = dynamic_cast<std::ifstream*>(stream_in_))
-  {
-    stream->clear();
-    stream->close();
-    failed = stream->fail();
-  }
-  else if(std::ofstream *const stream = dynamic_cast<std::ofstream*>(stream_out_))
-  {
-    stream->clear();
-    stream->close();
-    failed = stream->fail();
-  }
-  else
-  {
-    throw Glib::Error(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED,
-                      "Attempt to close non-file stream");
-  }
-
-  if(failed)
-    throw Glib::Error(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, "Failed to close stream");
-
-  return IO_STATUS_NORMAL;
-}
-
-IOStatus StreamIOChannel::set_flags_vfunc(IOFlags)
-{
-  return IO_STATUS_NORMAL;
-}
-
-IOFlags StreamIOChannel::get_flags_vfunc()
-{
-  gobj()->is_seekable  = 1;
-  gobj()->is_readable  = (stream_in_  != 0);
-  gobj()->is_writeable = (stream_out_ != 0);
-
-  IOFlags flags = IO_FLAG_IS_SEEKABLE;
-
-  if(stream_in_)
-    flags |= IO_FLAG_IS_READABLE;
-  if(stream_out_)
-    flags |= IO_FLAG_IS_WRITEABLE;
-
-  return flags;
-}
-
-Glib::RefPtr<Glib::Source> StreamIOChannel::create_watch_vfunc(IOCondition)
-{
-  g_warning("Glib::StreamIOChannel::create_watch_vfunc() not implemented");
-  return Glib::RefPtr<Glib::Source>();
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/streamiochannel.h b/libs/glibmm2/glibmm/streamiochannel.h
deleted file mode 100644 (file)
index 7165de9..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _GLIBMM_STREAMIOCHANNEL_H
-#define _GLIBMM_STREAMIOCHANNEL_H
-
-#include <glibmm/iochannel.h>
-#include <glibmmconfig.h>
-#include <iosfwd>
-
-GLIBMM_USING_STD(istream)
-GLIBMM_USING_STD(ostream)
-GLIBMM_USING_STD(iostream)
-
-
-namespace Glib
-{
-
-/** This whole class is deprecated in glibmm&nbsp;2.2.
- * See the Glib::IOChannel documentation for an explanation.
- */
-class StreamIOChannel : public Glib::IOChannel
-{
-public:
-  virtual ~StreamIOChannel();
-
-  static Glib::RefPtr<StreamIOChannel> create(std::istream& stream);
-  static Glib::RefPtr<StreamIOChannel> create(std::ostream& stream);
-  static Glib::RefPtr<StreamIOChannel> create(std::iostream& stream);
-
-protected:
-  std::istream* stream_in_;
-  std::ostream* stream_out_;
-
-  StreamIOChannel(std::istream* stream_in, std::ostream* stream_out);
-
-  virtual IOStatus read_vfunc(char* buf, gsize count, gsize& bytes_read);
-  virtual IOStatus write_vfunc(const char* buf, gsize count, gsize& bytes_written);
-  virtual IOStatus seek_vfunc(gint64 offset, SeekType type);
-  virtual IOStatus close_vfunc();
-  virtual IOStatus set_flags_vfunc(IOFlags flags);
-  virtual IOFlags  get_flags_vfunc();
-  virtual Glib::RefPtr<Glib::Source> create_watch_vfunc(IOCondition cond);
-};
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_STREAMIOCHANNEL_H */
-
diff --git a/libs/glibmm2/glibmm/stringutils.cc b/libs/glibmm2/glibmm/stringutils.cc
deleted file mode 100644 (file)
index 7113c01..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/stringutils.h>
-#include <glibmm/utility.h>
-#include <glib.h>
-#include <cerrno>
-#include <stdexcept>
-#include <glibmmconfig.h>
-
-GLIBMM_USING_STD(out_of_range)
-GLIBMM_USING_STD(overflow_error)
-GLIBMM_USING_STD(underflow_error)
-
-
-bool Glib::str_has_prefix(const std::string& str, const std::string& prefix)
-{
-  return g_str_has_prefix(str.c_str(), prefix.c_str());
-}
-
-bool Glib::str_has_suffix(const std::string& str, const std::string& suffix)
-{
-  return g_str_has_suffix(str.c_str(), suffix.c_str());
-}
-
-double Glib::Ascii::strtod(const std::string& str)
-{
-  std::string::size_type dummy;
-  return Glib::Ascii::strtod(str, dummy, 0);
-}
-
-double Glib::Ascii::strtod(const std::string&      str,
-                           std::string::size_type& end_index,
-                           std::string::size_type  start_index)
-{
-  if(start_index > str.size())
-    throw std::out_of_range("out of range (strtod): start_index > str.size()");
-
-  const char *const bufptr = str.c_str();
-  char* endptr = 0;
-
-  const double result = g_ascii_strtod(bufptr + start_index, &endptr);
-  const int    err_no = errno;
-
-  if(err_no != 0)
-  {
-    g_return_val_if_fail(err_no == ERANGE, result);
-
-    if(result > 0.0)
-      throw std::overflow_error("overflow (strtod): positive number too large");
-
-    if(result < 0.0)
-      throw std::overflow_error("overflow (strtod): negative number too large");
-
-    throw std::underflow_error("underflow (strtod): number too small");
-  }
-
-  if(endptr)
-    end_index = endptr - bufptr;
-  else
-    end_index = str.size();
-
-  return result;
-}
-
-std::string Glib::Ascii::dtostr(double d)
-{
-  char buf[G_ASCII_DTOSTR_BUF_SIZE];
-
-  return g_ascii_dtostr(buf, sizeof(buf), d);
-}
-
-std::string Glib::strescape(const std::string& source)
-{
-  const Glib::ScopedPtr<char> buf (g_strescape(source.c_str(), 0));
-  return buf.get();
-}
-
-std::string Glib::strescape(const std::string& source, const std::string& exceptions)
-{
-  const Glib::ScopedPtr<char> buf (g_strescape(source.c_str(), exceptions.c_str()));
-  return buf.get();
-}
-
-std::string Glib::strcompress(const std::string& source)
-{
-  const Glib::ScopedPtr<char> buf (g_strcompress(source.c_str()));
-  return buf.get();
-}
-
-Glib::ustring Glib::strerror(int errnum)
-{
-  return g_strerror(errnum);
-}
-
-Glib::ustring Glib::strsignal(int signum)
-{
-  return g_strsignal(signum);
-}
-
diff --git a/libs/glibmm2/glibmm/stringutils.h b/libs/glibmm2/glibmm/stringutils.h
deleted file mode 100644 (file)
index c6920e0..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_STRINGUTILS_H
-#define _GLIBMM_STRINGUTILS_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/ustring.h>
-
-
-namespace Glib
-{
-
-/** @defgroup StringUtils String Utility Functions
- *
- * This section describes a number of utility functions for creating
- * and manipulating strings, as well as other string-related stuff.
- */
-
-/** Looks whether the string @a str begins with @a prefix.
- * @ingroup StringUtils
- * @param str A string.
- * @param prefix The prefix to look for.
- * @return <tt>true</tt> if @a str begins with @a prefix, <tt>false</tt> otherwise.
- */
-bool str_has_prefix(const std::string& str, const std::string& prefix);
-
-/** Looks whether the string @a str ends with @a suffix.
- * @ingroup StringUtils
- * @param str A string.
- * @param suffix The suffix to look for.
- * @return <tt>true</tt> if @a str ends with @a suffix, <tt>false</tt> otherwise.
- */
-bool str_has_suffix(const std::string& str, const std::string& suffix);
-
-
-namespace Ascii
-{
-
-/** Converts a string to a <tt>double</tt> value.
- * @ingroup StringUtils
- * This function behaves like the standard <tt>%strtod()</tt> function does in
- * the C&nbsp;locale. It does this without actually changing the current
- * locale, since that would not be thread-safe.
- *
- * This function is typically used when reading configuration files or other
- * non-user input that should be locale independent. To handle input from the
- * user you should normally use locale-sensitive C++ streams.
- *
- * To convert from a string to <tt>double</tt> in a locale-insensitive way, use
- * Glib::Ascii::dtostr().
- *
- * @param str The string to convert to a numeric value.
- * @return The <tt>double</tt> value.
- * @throw std::overflow_error  Thrown if the correct value would cause overflow.
- * @throw std::underflow_error Thrown if the correct value would cause underflow.
- */
-double strtod(const std::string& str);
-
-/** Converts a string to a <tt>double</tt> value.
- * @ingroup StringUtils
- * This function behaves like the standard <tt>%strtod()</tt> function does in
- * the C&nbsp;locale. It does this without actually changing the current
- * locale, since that would not be thread-safe.
- *
- * This function is typically used when reading configuration files or other
- * non-user input that should be locale independent. To handle input from the
- * user you should normally use locale-sensitive C++ streams.
- *
- * To convert from a string to <tt>double</tt> in a locale-insensitive way, use
- * Glib::Ascii::dtostr().
- *
- * @param str The string to convert to a numeric value.
- * @param start_index The index of the first character that should be used in the conversion.
- * @retval end_index The index of the character after the last character used in the conversion.
- * @return The <tt>double</tt> value.
- * @throw std::out_of_range    Thrown if @a start_index is out of range.
- * @throw std::overflow_error  Thrown if the correct value would cause overflow.
- * @throw std::underflow_error Thrown if the correct value would cause underflow.
- */
-double strtod(const std::string&      str,
-              std::string::size_type& end_index,
-              std::string::size_type  start_index = 0);
-
-/** Converts a <tt>double</tt> to a string, using the <tt>'.'</tt> as decimal point.
- * @ingroup StringUtils
- * This functions generates enough precision that converting the string back
- * using Glib::Ascii::strtod() gives the same machine-number (on machines with
- * IEEE compatible 64bit doubles).
- *
- * @param d The <tt>double</tt> value to convert.
- * @return The converted string.
- */
-std::string dtostr(double d);
-
-} // namespace Ascii
-
-
-/** Escapes all special characters in the string.
- * @ingroup StringUtils
- * Escapes the special characters <tt>'\\b'</tt>, <tt>'\\f'</tt>, <tt>'\\n'</tt>,
- * <tt>'\\r'</tt>, <tt>'\\t'</tt>, <tt>'\\'</tt> and <tt>'"'</tt> in the string
- * @a source by inserting a <tt>'\\'</tt> before them. Additionally all characters
- * in the range <tt>0x01</tt>&nbsp;-&nbsp;<tt>0x1F</tt> (everything below <tt>SPACE</tt>)
- * and in the range <tt>0x80</tt>&nbsp;-&nbsp;<tt>0xFF</tt> (all non-ASCII chars)
- * are replaced with a <tt>'\\'</tt> followed by their octal representation.
- *
- * Glib::strcompress() does the reverse conversion.
- *
- * @param source A string to escape.
- * @return A copy of @a source with certain characters escaped. See above.
- */
-std::string strescape(const std::string& source);
-
-/** Escapes all special characters in the string.
- * @ingroup StringUtils
- * Escapes the special characters <tt>'\\b'</tt>, <tt>'\\f'</tt>, <tt>'\\n'</tt>,
- * <tt>'\\r'</tt>, <tt>'\\t'</tt>, <tt>'\\'</tt> and <tt>'"'</tt> in the string
- * @a source by inserting a <tt>'\\'</tt> before them. Additionally all characters
- * in the range <tt>0x01</tt>&nbsp;-&nbsp;<tt>0x1F</tt> (everything below <tt>SPACE</tt>)
- * and in the range <tt>0x80</tt>&nbsp;-&nbsp;<tt>0xFF</tt> (all non-ASCII chars)
- * are replaced with a <tt>'\\'</tt> followed by their octal representation.
- * Characters supplied in @a exceptions are not escaped.
- *
- * Glib::strcompress() does the reverse conversion.
- *
- * @param source A string to escape.
- * @param exceptions A string of characters not to escape in @a source.
- * @return A copy of @a source with certain characters escaped. See above.
- */
-std::string strescape(const std::string& source, const std::string& exceptions);
-
-/** Replaces all escaped characters with their one byte equivalent.
- * @ingroup StringUtils
- * This function does the reverse conversion of Glib::strescape().
- *
- * @param source A string to compress.
- * @return A copy of @a source with all escaped characters compressed.
- */
-std::string strcompress(const std::string& source);
-
-/** Returns a string corresponding to the given error code, e.g.\ <tt>"no such process"</tt>.
- * @ingroup StringUtils
- * This function is included since not all platforms support the
- * <tt>%strerror()</tt> function.
- *
- * @param errnum The system error number. See the standard C <tt>errno</tt> documentation.
- * @return A string describing the error code. If the error code is unknown,
- * <tt>&quot;unknown error (<em>\<errnum\></em>)&quot;</tt> is returned.
- */
-Glib::ustring strerror(int errnum);
-
-/** Returns a string describing the given signal, e.g.\ <tt>"Segmentation fault"</tt>.
- * @ingroup StringUtils
- * This function is included since not all platforms support the
- * <tt>%strsignal()</tt> function.
- *
- * @param signum The signal number. See the <tt>signal()</tt> documentation.
- * @return A string describing the signal. If the signal is unknown,
- * <tt>&quot;unknown signal (<em>\<signum\></em>)&quot;</tt> is returned.
- */
-Glib::ustring strsignal(int signum);
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_STRINGUTILS_H */
-
diff --git a/libs/glibmm2/glibmm/thread.cc b/libs/glibmm2/glibmm/thread.cc
deleted file mode 100644 (file)
index 1910c6f..0000000
+++ /dev/null
@@ -1,399 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/thread.h>
-#include <glibmm/private/thread_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/exceptionhandler.h>
-#include <glib/gmessages.h>
-
-
-namespace
-{
-
-extern "C"
-{
-
-static void* call_thread_entry_slot(void* data)
-{
-  sigc::slot_base *const slot = reinterpret_cast<sigc::slot_base*>(data);
-
-  try
-  {
-    // Recreate the specific slot, and drop the reference obtained by create().
-    (*static_cast<sigc::slot<void>*>(slot))();
-  }
-  catch(Glib::Thread::Exit&)
-  {
-    // Just exit from the thread.  The Thread::Exit exception
-    // is our sane C++ replacement of g_thread_exit().
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  delete slot;
-  return 0;
-}
-
-} //extern "C"
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-// internal
-void thread_init_impl()
-{
-  // Make sure the exception map is initialized before creating any thread.
-  Glib::Error::register_init();
-}
-
-
-/**** Glib::Thread *********************************************************/
-
-// static
-Thread* Thread::create(const sigc::slot<void>& slot, bool joinable)
-{
-  // Make a copy of slot on the heap
-  sigc::slot_base *const slot_copy = new sigc::slot<void>(slot);
-
-  GError* error = 0;
-
-  GThread *const thread = g_thread_create(
-      &call_thread_entry_slot, slot_copy, joinable, &error);
-
-  if(error)
-  {
-    delete slot_copy;
-    Glib::Error::throw_exception(error);
-  }
-
-  return reinterpret_cast<Thread*>(thread);
-}
-
-// static
-Thread* Thread::create(const sigc::slot<void>& slot, unsigned long stack_size,
-                       bool joinable, bool bound, ThreadPriority priority)
-{
-  // Make a copy of slot on the heap
-  sigc::slot_base *const slot_copy = new sigc::slot<void>(slot);
-
-  GError* error = 0;
-
-  GThread *const thread = g_thread_create_full(
-      &call_thread_entry_slot, slot_copy, stack_size, joinable,
-      bound, (GThreadPriority) priority, &error);
-
-  if(error)
-  {
-    delete slot_copy;
-    Glib::Error::throw_exception(error);
-  }
-
-  return reinterpret_cast<Thread*>(thread);
-}
-
-// static
-Thread* Thread::self()
-{
-  return reinterpret_cast<Thread*>(g_thread_self());
-}
-
-bool Thread::joinable() const
-{
-  return gobject_.joinable;
-}
-
-void Thread::join()
-{
-  g_thread_join(&gobject_);
-}
-
-void Thread::set_priority(ThreadPriority priority)
-{
-  g_thread_set_priority(&gobject_, (GThreadPriority) priority);
-}
-
-ThreadPriority Thread::get_priority() const
-{
-  return (ThreadPriority) gobject_.priority;
-}
-
-// static
-void Thread::yield()
-{
-  g_thread_yield();
-}
-
-Thread* wrap(GThread* gobject)
-{
-  return reinterpret_cast<Thread*>(gobject);
-}
-
-
-/**** Glib::StaticMutex ****************************************************/
-
-void StaticMutex::lock()
-{
-  g_static_mutex_lock(&gobject_);
-}
-
-bool StaticMutex::trylock()
-{
-  return g_static_mutex_trylock(&gobject_);
-}
-
-void StaticMutex::unlock()
-{
-  g_static_mutex_unlock(&gobject_);
-}
-
-StaticMutex::operator Mutex&()
-{
-  // If GStaticMutex is implemented as struct (e.g. on Linux), its first struct
-  // member (runtime_mutex) is a GMutex pointer.  If the gthread implementation
-  // is native (i.e. the vtable pointer passed to g_thread_init() was 0), then
-  // the runtime_mutex pointer is unused, and the rest of the GStaticMutex
-  // struct resembles the mutex data.
-  //
-  // On Win32, GStaticMutex is just a typedef to struct _GMutex*.  Either way,
-  // the first sizeof(GMutex*) bytes of GStaticMutex always resemble a GMutex
-  // pointer.  The gthread implementation relies on that, and we'll also do so.
-
-  GMutex*& runtime_mutex = reinterpret_cast<GMutex*&>(gobject_);
-
-  // Fortunately, it cannot hurt if we set this to the GMutex pointer returned
-  // by g_static_mutex_get_mutex().  Either we just overwrite it with the same
-  // value, or it was unused anyway.  Doing that allows casting the pointer
-  // location to a Glib::Mutex reference (its only data member is a GMutex*).
-
-  runtime_mutex = g_static_mutex_get_mutex(&gobject_);
-
-  return reinterpret_cast<Mutex&>(runtime_mutex);
-}
-
-
-/**** Glib::Mutex **********************************************************/
-
-Mutex::Mutex()
-:
-  gobject_ (g_mutex_new())
-{}
-
-Mutex::~Mutex()
-{
-  g_mutex_free(gobject_);
-}
-
-void Mutex::lock()
-{
-  g_mutex_lock(gobject_);
-}
-
-bool Mutex::trylock()
-{
-  return g_mutex_trylock(gobject_);
-}
-
-void Mutex::unlock()
-{
-  g_mutex_unlock(gobject_);
-}
-
-
-/**** Glib::StaticRecMutex *************************************************/
-
-void StaticRecMutex::lock()
-{
-  g_static_rec_mutex_lock(&gobject_);
-}
-
-bool StaticRecMutex::trylock()
-{
-  return g_static_rec_mutex_trylock(&gobject_);
-}
-
-void StaticRecMutex::unlock()
-{
-  g_static_rec_mutex_unlock(&gobject_);
-}
-
-void StaticRecMutex::lock_full(unsigned int depth)
-{
-  g_static_rec_mutex_lock_full(&gobject_, depth);
-}
-
-unsigned int StaticRecMutex::unlock_full()
-{
-  return g_static_rec_mutex_unlock_full(&gobject_);
-}
-
-StaticRecMutex::operator RecMutex&()
-{
-  return static_cast<RecMutex&>(*this);
-}
-
-
-/**** Glib::RecMutex *******************************************************/
-
-RecMutex::RecMutex()
-{
-  g_static_rec_mutex_init(&gobject_);
-
-  // GLib doesn't have GRecMutex, only GStaticRecMutex.  Force initialization
-  // of the mutex now, to mimic the behaviour of a (hypothetical) GRecMutex.
-  g_static_mutex_get_mutex(&gobject_.mutex);
-}
-
-RecMutex::~RecMutex()
-{
-  g_static_rec_mutex_free(&gobject_);
-}
-
-
-/**** Glib::StaticRWLock ***************************************************/
-
-void StaticRWLock::reader_lock()
-{
-  g_static_rw_lock_reader_lock(&gobject_);
-}
-
-bool StaticRWLock::reader_trylock()
-{
-  return g_static_rw_lock_reader_trylock(&gobject_);
-}
-
-void StaticRWLock::reader_unlock()
-{
-  g_static_rw_lock_reader_unlock(&gobject_);
-}
-
-void StaticRWLock::writer_lock()
-{
-  g_static_rw_lock_writer_lock(&gobject_);
-}
-
-bool StaticRWLock::writer_trylock()
-{
-  return g_static_rw_lock_writer_trylock(&gobject_);
-}
-
-void StaticRWLock::writer_unlock()
-{
-  g_static_rw_lock_writer_unlock(&gobject_);
-}
-
-StaticRWLock::operator RWLock&()
-{
-  return static_cast<RWLock&>(*this);
-}
-
-
-/**** Glib::RWLock *********************************************************/
-
-RWLock::RWLock()
-{
-  g_static_rw_lock_init(&gobject_);
-
-  // GLib doesn't have GRWLock, only GStaticRWLock.  Force initialization
-  // of the mutex and the condition variables now, to mimic the behaviour
-  // of a (hypothetical) GRWLock.
-
-  if(g_static_mutex_get_mutex(&gobject_.mutex))
-  {
-    gobject_.read_cond  = g_cond_new();
-    gobject_.write_cond = g_cond_new();
-  }
-}
-
-RWLock::~RWLock()
-{
-  g_static_rw_lock_free(&gobject_);
-}
-
-
-/**** Glib::Cond ***********************************************************/
-
-Cond::Cond()
-:
-  gobject_ (g_cond_new())
-{}
-
-Cond::~Cond()
-{
-  g_cond_free(gobject_);
-}
-
-void Cond::signal()
-{
-  g_cond_signal(gobject_);
-}
-
-void Cond::broadcast()
-{
-  g_cond_broadcast(gobject_);
-}
-
-void Cond::wait(Mutex& mutex)
-{
-  g_cond_wait(gobject_, mutex.gobj());
-}
-
-bool Cond::timed_wait(Mutex& mutex, const Glib::TimeVal& abs_time)
-{
-  return g_cond_timed_wait(gobject_, mutex.gobj(), const_cast<Glib::TimeVal*>(&abs_time));
-}
-
-
-} // namespace Glib
-
-
-namespace
-{
-} // anonymous namespace
-
-
-Glib::ThreadError::ThreadError(Glib::ThreadError::Code error_code, const Glib::ustring& error_message)
-:
-  Glib::Error (G_THREAD_ERROR, error_code, error_message)
-{}
-
-Glib::ThreadError::ThreadError(GError* gobject)
-:
-  Glib::Error (gobject)
-{}
-
-Glib::ThreadError::Code Glib::ThreadError::code() const
-{
-  return static_cast<Code>(Glib::Error::code());
-}
-
-void Glib::ThreadError::throw_func(GError* gobject)
-{
-  throw Glib::ThreadError(gobject);
-}
-
-
diff --git a/libs/glibmm2/glibmm/thread.h b/libs/glibmm2/glibmm/thread.h
deleted file mode 100644 (file)
index a4fa61d..0000000
+++ /dev/null
@@ -1,1082 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_THREAD_H
-#define _GLIBMM_THREAD_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glib/gthread.h>
-#include <cstddef>
-
-#include <sigc++/sigc++.h>
-#include <glibmm/error.h>
-#include <glibmm/timeval.h>
-
-/* Shadow THREAD_PRIORITY_NORMAL macro (from winbase.h).
- */
-#if defined(THREAD_PRIORITY_NORMAL) && !defined(GLIBMM_MACRO_SHADOW_THREAD_PRIORITY_NORMAL)
-enum { GLIBMM_MACRO_DEFINITION_THREAD_PRIORITY_NORMAL = THREAD_PRIORITY_NORMAL };
-#undef THREAD_PRIORITY_NORMAL
-enum { THREAD_PRIORITY_NORMAL = GLIBMM_MACRO_DEFINITION_THREAD_PRIORITY_NORMAL };
-#define THREAD_PRIORITY_NORMAL THREAD_PRIORITY_NORMAL
-#define GLIBMM_MACRO_SHADOW_THREAD_PRIORITY_NORMAL 1
-#endif
-
-
-/** Initializer macro for Glib::StaticMutex.
- * @relates Glib::StaticMutex
- * @hideinitializer
- */
-#define GLIBMM_STATIC_MUTEX_INIT { G_STATIC_MUTEX_INIT }
-
-/** Initializer macro for Glib::StaticRecMutex.
- * @relates Glib::StaticRecMutex
- * @hideinitializer
- */
-#define GLIBMM_STATIC_REC_MUTEX_INIT { G_STATIC_REC_MUTEX_INIT }
-
-/** Initializer macro for Glib::StaticRWLock.
- * @relates Glib::StaticRWLock
- * @hideinitializer
- */
-#define GLIBMM_STATIC_RW_LOCK_INIT { G_STATIC_RW_LOCK_INIT }
-
-/** Initializer macro for Glib::StaticPrivate.
- * @relates Glib::StaticPrivate
- * @hideinitializer
- */
-#define GLIBMM_STATIC_PRIVATE_INIT { G_STATIC_PRIVATE_INIT }
-
-
-namespace Glib
-{
-
-/** @addtogroup glibmmEnums Enums and Flags */
-
-/** Specifies the priority of a thread.
- * @note It is not guaranteed, that threads with different priorities really
- * behave accordingly. On some systems (e.g. Linux) only <tt>root</tt> can
- * increase priorities. On other systems (e.g. Solaris) there doesn't seem to
- * be different scheduling for different priorities. All in all try to avoid
- * being dependent on priorities.
- * @ingroup glibmmEnums
- */
-enum ThreadPriority
-{
-  THREAD_PRIORITY_LOW,
-  THREAD_PRIORITY_NORMAL,
-  THREAD_PRIORITY_HIGH,
-  THREAD_PRIORITY_URGENT
-};
-
-
-/*! @var ThreadPriority THREAD_PRIORITY_LOW
- * A priority lower than normal.
- */
-/*! @var ThreadPriority THREAD_PRIORITY_NORMAL
- * The default priority.
- */
-/*! @var ThreadPriority THREAD_PRIORITY_HIGH
- * A priority higher than normal.
- */
-/*! @var ThreadPriority THREAD_PRIORITY_URGENT
- * The highest priority.
- */
-
-
-/** @defgroup Threads Threads
- * Thread abstraction; including threads, different mutexes,
- * conditions and thread private data.
- * @{
- */
-
-enum NotLock { NOT_LOCK };
-enum TryLock { TRY_LOCK };
-
-/** Initializes the GLib thread system.
- * Before you use a thread related function in glibmm, you should initialize
- * the thread system.  This is done by calling Glib::thread_init().
- *
- * @note You should only call thread_init() with a non-<tt>0</tt> parameter
- * if you really know what you are doing.
- *
- * @note thread_init() must not be called directly or indirectly as
- * a callback from glibmm.  Also no mutexes may be currently locked while
- * calling thread_init().
- *
- * thread_init() might only be called once.  On the second call it will
- * abort with an error.  If you want to make sure that the thread system
- * is initialized, you can do that too:
- * @code
- * if(!Glib::thread_supported()) Glib::thread_init();
- * @endcode
- * After that line either the thread system is initialized, or the program
- * will abort if no thread system is available in GLib, i.e. either
- * @c G_THREADS_ENABLED is not defined or @c G_THREADS_IMPL_NONE is defined.
- *
- * If no thread system is available and @a vtable is <tt>0</tt> or if not all
- * elements of @a vtable are non-<tt>0</tt>, then thread_init() will abort.
- *
- * @note To use thread_init() in your program, you have to link with the
- * libraries that the command <tt>pkg-config&nbsp;--libs&nbsp;gthread-2.0</tt>
- * outputs.  This is not the case for all the other thread related functions
- * of glibmm.  Those can be used without having to link with the thread
- * libraries.  (You @em have to link with <tt>gthread-2.0</tt> if you actually
- * want to use threads in your application, though.)
- *
- * @param vtable A function table of type @c GThreadFunctions, that provides
- * the entry points to the thread system to be used.
- */
-inline void thread_init(GThreadFunctions* vtable = 0);
-
-/** Returns whether the thread system is initialized.
- * @return @c true, if the thread system is initialized.
- */
-inline bool thread_supported();
-
-
-class Mutex;
-class RecMutex;
-class RWLock;
-struct StaticMutex;
-struct StaticRecMutex;
-struct StaticRWLock;
-
-
-/** Exception class for thread-related errors.
- */
-class ThreadError : public Glib::Error
-{
-public:
-  enum Code
-  {
-    AGAIN
-  };
-
-  ThreadError(Code error_code, const Glib::ustring& error_message);
-  explicit ThreadError(GError* gobject);
-  Code code() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-private:
-  static void throw_func(GError* gobject);
-  friend void wrap_init(); // uses throw_func()
-#endif
-};
-
-
-/** Represents a running thread.
- * An instance of this class can only be obtained with create(), self(),
- * or wrap(GThread*).  It's not possible to delete a Thread object.  If the
- * thread is @em not joinable, its resources will be freed automatically
- * when it exits.  Otherwise, if the thread @em is joinable, you must call
- * join() to avoid a memory leak.
- *
- * @note g_thread_exit() is not wrapped, because that function exits a thread
- * without any cleanup.  That's especially dangerous in C++ code, since the
- * destructors of automatic objects won't be invoked.  Instead, you can throw
- * a Thread::Exit exception, which will be caught by the internal thread
- * entry function.
- *
- * @note You might have noticed that the thread entry slot doesn't have the
- * usual void* return value.  If you want to return any data from your thread
- * you can pass an additional output argument to the thread's entry slot.
- */
-class Thread
-{
-public:
-  class Exit;
-
-  /** Creates a new thread with the priority <tt>THREAD_PRIORITY_NORMAL</tt>.
-   * If @a joinable is @c true, you can wait for this thread's termination by
-   * calling join().  Otherwise the thread will just disappear, when ready.
-   *
-   * The new thread executes the function or method @a slot points to.  You can
-   * pass additional arguments using sigc::bind().  If the thread was created
-   * successfully, it is returned, otherwise a ThreadError exception is thrown.
-   *
-   * @param slot A slot to execute in the new thread.
-   * @param joinable Should this thread be joinable?
-   * @return The new Thread* on success.
-   * @throw Glib::ThreadError
-   */
-  static Thread* create(const sigc::slot<void>& slot, bool joinable);
-
-  /** Creates a new thread with the priority @a priority. The stack gets the
-   * size @a stack_size or the default value for the current platform, if
-   * @a stack_size is <tt>0</tt>.
-   *
-   * If @a joinable is @c true, you can wait for this thread's termination by
-   * calling join().  Otherwise the thread will just disappear, when ready.
-   * If @a bound is @c true, this thread will be scheduled in the system scope,
-   * otherwise the implementation is free to do scheduling in the process
-   * scope.  The first variant is more expensive resource-wise, but generally
-   * faster.  On some systems (e.g. Linux) all threads are bound.
-   *
-   * The new thread executes the function or method @a slot points to.  You can
-   * pass additional arguments using sigc::bind().  If the thread was created
-   * successfully, it is returned.
-   *
-   * @note It is not guaranteed, that threads with different priorities really
-   * behave accordingly.  On some systems (e.g. Linux) only root can increase
-   * priorities.  On other systems (e.g. Solaris) there doesn't seem to be
-   * different scheduling for different priorities.  All in all try to avoid
-   * being dependent on priorities.  Use <tt>Glib::THREAD_PRIORITY_NORMAL</tt>
-   * here as a default.
-   *
-   * @note Only use the extended
-   * create(const sigc::slot<void>&, unsigned long, bool, bool, ThreadPriority)
-   * function, when you really can't use the simple
-   * create(const sigc::slot<void>&, bool)
-   * instead.  The latter overload does not take @a stack_size, @a bound and
-   * @a priority as arguments, as they should only be used for cases, where
-   * it is inevitable.
-   *
-   * @param slot A slot to execute in the new thread.
-   * @param stack_size A stack size for the new thread, or <tt>0</tt>.
-   * @param joinable Should this thread be joinable?
-   * @param bound Should this thread be bound to a system thread?
-   * @param priority A priority for the thread.
-   * @return The new Thread* on success.
-   * @throw Glib::ThreadError
-   */
-  static Thread* create(const sigc::slot<void>& slot, unsigned long stack_size,
-                        bool joinable, bool bound, ThreadPriority priority);
-
-  /** Returns the Thread* corresponding to the calling thread.
-   * @return The current thread.
-   */
-  static Thread* self();
-
-  /** Returns whether the thread is joinable.
-   * @return Whether the thread is joinable.
-   */
-  bool joinable() const;
-
-  /** Waits until the thread finishes.
-   * Waits until the thread finishes, i.e. the slot, as given to create(),
-   * returns or g_thread_exit() is called by the thread.  (Calling
-   * g_thread_exit() in a C++ program should be avoided.)  All resources of
-   * the thread including the Glib::Thread object are released.  The thread
-   * must have been created with <tt>joinable&nbsp;=&nbsp;true</tt>.
-   */
-  void join();
-
-  /** Changes the priority of the thread to @a priority.
-   * @note It is not guaranteed, that threads with different priorities really
-   * behave accordingly.  On some systems (e.g. Linux) only @c root can
-   * increase priorities.  On other systems (e.g. Solaris) there doesn't seem
-   * to be different scheduling for different priorities.  All in all try to
-   * avoid being dependent on priorities.
-   * @param priority A new priority for the thread.
-   */
-  void set_priority(ThreadPriority priority);
-
-  /** Returns the priority of the thread.
-   * @return The thread's priority.
-   */
-  ThreadPriority get_priority() const;
-
-  /** Gives way to other threads waiting to be scheduled.
-   * This function is often used as a method to make busy wait less evil.  But
-   * in most cases, you will encounter, there are better methods to do that.
-   * So in general you shouldn't use this function.
-   */
-  static void yield();
-
-  GThread*       gobj()       { return &gobject_; }
-  const GThread* gobj() const { return &gobject_; }
-
-private:
-  GThread gobject_;
-
-  // Glib::Thread can neither be constructed nor deleted.
-  Thread();
-  void operator delete(void*, size_t);
-
-  // noncopyable
-  Thread(const Thread&);
-  Thread& operator=(const Thread&);
-};
-
-/** %Exception class used to exit from a thread.
- * @code
- * throw Glib::Thread::Exit();
- * @endcode
- * Write this if you want to exit from a thread created by Thread::create().
- * Of course you must make sure not to catch Thread::Exit by accident, i.e.
- * when using <tt>catch(...)</tt> somewhere in your code.
- */
-class Thread::Exit
-{};
-
-/** @relates Glib::Thread */
-Thread* wrap(GThread* gobject);
-
-
-/** Like Glib::Mutex, but can be defined at compile time.
- * Use @c GLIBMM_STATIC_MUTEX_INIT to initialize a StaticMutex:
- * @code
- * Glib::StaticMutex mutex = GLIBMM_STATIC_MUTEX_INIT;
- * @endcode
- * A StaticMutex can be used without calling Glib::thread_init(), it will
- * silently do nothing then.  That will also work when using the implicit
- * conversion to Mutex&, thus you can safely use Mutex::Lock with a
- * StaticMutex.
- */
-struct StaticMutex
-{
-  void lock();
-  bool trylock();
-  void unlock();
-
-  operator Mutex&();
-
-  GStaticMutex* gobj() { return &gobject_; }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  // Must be public to allow initialization at compile time.
-  GStaticMutex gobject_;
-#endif
-};
-
-/** Represents a mutex (mutual exclusion).
- * It can be used to protect data against shared access.  Try to use
- * Mutex::Lock instead of calling lock() and unlock() directly&nbsp;--
- * it will make your life much easier.
- *
- * @note Before creating a Glib::Mutex, Glib::thread_init() has to be called.
- *
- * @note Glib::Mutex is not recursive, i.e. a thread will deadlock, if it
- * already has locked the mutex while calling lock().  Use Glib::RecMutex
- * instead, if you need recursive mutexes.
- */
-class Mutex
-{
-public:
-  class Lock;
-
-  Mutex();
-  ~Mutex();
-
-  /** Locks the mutex.
-   * If mutex is already locked by another thread, the current thread will
-   * block until mutex is unlocked by the other thread.
-   * @see Mutex::Lock
-   */
-  void lock();
-
-  /** Tries to lock the mutex.
-   * If the mutex is already locked by another thread, it immediately returns
-   * @c false.  Otherwise it locks the mutex and returns @c true.
-   * @return Whether the mutex could be locked.
-   * @see Mutex::Lock
-   */
-  bool trylock();
-
-  /** Unlocks the mutex.
-   * If another thread is blocked in a lock() call for this mutex, it will be
-   * woken and can lock the mutex itself.
-   * @see Mutex::Lock
-   */
-  void unlock();
-
-  GMutex* gobj() { return gobject_; }
-
-private:
-  GMutex* gobject_;
-
-  // noncopyable
-  Mutex(const Mutex&);
-  Mutex& operator=(const Mutex&);
-};
-
-/** Utility class for exception-safe mutex locking.
- * @par Usage example:
- * @code
- * {
- *   Glib::Mutex::Lock lock (mutex); // calls mutex.lock()
- *   do_something();
- * } // the destructor calls mutex.unlock()
- * @endcode
- * As you can see, the compiler takes care of the unlocking.  This is not
- * only exception safe but also much less error-prone.  You could even
- * <tt>return</tt> while still holding the lock and it will be released
- * properly.
- */
-class Mutex::Lock
-{
-public:
-  explicit inline Lock(Mutex& mutex);
-  inline Lock(Mutex& mutex, NotLock);
-  inline Lock(Mutex& mutex, TryLock);
-  inline ~Lock();
-
-  inline void acquire();
-  inline bool try_acquire();
-  inline void release();
-  inline bool locked() const;
-
-private:
-  Mutex&  mutex_;
-  bool    locked_;
-
-  // noncopyable
-  Lock(const Mutex::Lock&);
-  Mutex::Lock& operator=(const Mutex::Lock&);
-};
-
-
-/** Like Glib::RecMutex, but can be defined at compile time.
- * Use @c GLIBMM_STATIC_REC_MUTEX_INIT to initialize a StaticRecMutex:
- * @code
- * Glib::StaticRecMutex mutex = GLIBMM_STATIC_REC_MUTEX_INIT;
- * @endcode
- * A StaticRecMutex can be used without calling Glib::thread_init(), it will
- * silently do nothing then.  That will also work when using the implicit
- * conversion to RecMutex&, thus you can safely use RecMutex::Lock with a
- * StaticRecMutex.
- */
-struct StaticRecMutex
-{
-  void lock();
-  bool trylock();
-  void unlock();
-
-  void lock_full(unsigned int depth);
-  unsigned int unlock_full();
-
-  operator RecMutex&();
-
-  GStaticRecMutex* gobj() { return &gobject_; }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  // Must be public to allow initialization at compile time.
-  GStaticRecMutex gobject_;
-#endif
-};
-
-class RecMutex : public StaticRecMutex
-{
-public:
-  class Lock;
-
-  RecMutex();
-  ~RecMutex();
-
-private:
-  // noncopyable
-  RecMutex(const RecMutex&);
-  RecMutex& operator=(const RecMutex&);
-};
-
-/** Utility class for exception-safe locking of recursive mutexes.
- */
-class RecMutex::Lock
-{
-public:
-  explicit inline Lock(RecMutex& mutex);
-  inline Lock(RecMutex& mutex, NotLock);
-  inline Lock(RecMutex& mutex, TryLock);
-  inline ~Lock();
-
-  inline void acquire();
-  inline bool try_acquire();
-  inline void release();
-  inline bool locked() const;
-
-private:
-  RecMutex& mutex_;
-  bool      locked_;
-
-  // noncopyable
-  Lock(const RecMutex::Lock&);
-  RecMutex::Lock& operator=(const RecMutex::Lock&);
-};
-
-
-/** Like Glib::RWLock, but can be defined at compile time.
- * Use @c GLIBMM_STATIC_RW_LOCK_INIT to initialize a StaticRWLock:
- * @code
- * Glib::StaticRWLock rw_lock = GLIBMM_STATIC_RW_LOCK_INIT;
- * @endcode
- * A StaticRWLock can be used without calling Glib::thread_init(), it will
- * silently do nothing then.  That will also work when using the implicit
- * conversion to RWLock&, thus you can safely use RWLock::ReaderLock and
- * RWLock::WriterLock with a StaticRWLock.
- */
-struct StaticRWLock
-{
-  void reader_lock();
-  bool reader_trylock();
-  void reader_unlock();
-
-  void writer_lock();
-  bool writer_trylock();
-  void writer_unlock();
-
-  operator RWLock&();
-
-  GStaticRWLock* gobj() { return &gobject_; }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  // Must be public to allow initialization at compile time.
-  GStaticRWLock gobject_;
-#endif
-};
-
-class RWLock : public StaticRWLock
-{
-public:
-  class ReaderLock;
-  class WriterLock;
-
-  RWLock();
-  ~RWLock();
-
-private:
-  // noncopyable
-  RWLock(const RWLock&);
-  RWLock& operator=(const RWLock&);
-};
-
-/** Utility class for exception-safe locking of read/write locks.
- */
-class RWLock::ReaderLock
-{
-public:
-  explicit inline ReaderLock(RWLock& rwlock);
-  inline ReaderLock(RWLock& rwlock, NotLock);
-  inline ReaderLock(RWLock& rwlock, TryLock);
-  inline ~ReaderLock();
-
-  inline void acquire();
-  inline bool try_acquire();
-  inline void release();
-  inline bool locked() const;
-
-private:
-  RWLock& rwlock_;
-  bool    locked_;
-
-  // noncopyable
-  ReaderLock(const RWLock::ReaderLock&);
-  RWLock::ReaderLock& operator=(const RWLock::ReaderLock&);
-};
-
-/** Utility class for exception-safe locking of read/write locks.
- */
-class RWLock::WriterLock
-{
-public:
-  explicit inline WriterLock(RWLock& rwlock);
-  inline WriterLock(RWLock& rwlock, NotLock);
-  inline WriterLock(RWLock& rwlock, TryLock);
-  inline ~WriterLock();
-
-  inline void acquire();
-  inline bool try_acquire();
-  inline void release();
-  inline bool locked() const;
-
-private:
-  RWLock& rwlock_;
-  bool    locked_;
-
-  // noncopyable
-  WriterLock(const RWLock::WriterLock&);
-  RWLock::WriterLock& operator=(const RWLock::WriterLock&);
-};
-
-/** An opaque data structure to represent a condition. 
- * A @a Cond is an object that threads can block on, if they find a certain 
- * condition to be false. If other threads change the state of this condition 
- * they can signal the @a Cond, such that the waiting thread is woken up.
- * @par Usage example:
- * @code
- * Glib::Cond data_cond;
- * Glib::Mutex data_mutex;
- * void* current_data = NULL;
- * 
- * void push_data (void* data)
- * {
- *   data_mutex.lock();
- *   current_data = data;
- *   data_cond.signal();
- *   data_mutex.unlock();
- * }
- * 
- * void* pop_data ()
- * {
- *   void* data;
- * 
- *   data_mutex.lock();
- *   while (!current_data)
- *       data_cond.wait(data_mutex);
- *   data = current_data;
- *   current_data = NULL;
- *   data_mutex.unlock();
- *   return data;
- * }
- * @endcode
-*/
-class Cond
-{
-public:
-  Cond();
-  ~Cond();
-
-  /** If threads are waiting for this @a Cond, exactly one of them is woken up. 
-   * It is good practice to hold the same lock as the waiting thread, while calling 
-   * this method, though not required.
-   *
-   * @note This method can also be used if @a Glib::thread_init() has not yet been 
-   * called and will do nothing then.
-   */
-  void signal();
-
-  /** If threads are waiting for this @a Cond, all of them are woken up.
-   * It is good practice to hold the same lock as the waiting thread, while calling 
-   * this method, though not required.
-   *
-   * @note This method can also be used if @a Glib::thread_init() has not yet been 
-   * called and will do nothing then.
-   */
-  void broadcast();
-
-  /** Waits until this thread is woken up on this @a Cond.
-   * The mutex is unlocked before falling asleep and locked again before resuming.
-   *
-   * This method can also be used if @a Glib::thread_init() has not yet been 
-   * called and will immediately return then. 
-   *
-   * @param mutex a @a Mutex that is currently locked.
-   * 
-   * @note It is important to use the @a wait() and @a timed_wait() methods
-   * only inside a loop, which checks for the condition to be true as it is not 
-   * guaranteed that the waiting thread will find it fulfilled, even if the signaling 
-   * thread left the condition in that state. This is because another thread can have 
-   * altered the condition, before the waiting thread got the chance to be woken up, 
-   * even if the condition itself is protected by a @a Mutex.
-   */
-  void wait(Mutex& mutex);
-
-  /** Waits until this thread is woken up on this @a Cond, but not longer than until the time, that is specified by @a abs_time.
-   * The mutex is unlocked before falling asleep and locked again before resuming.
-   *
-   * This function can also be used, if @a Glib::thread_init() has not yet been 
-   * called and will immediately return @c true then. 
-   *
-   * @param mutex a @a Mutex that is currently locked.
-   * @param abs_time a max time to wait.
-   * 
-   * @note It is important to use the @a wait() and @a timed_wait() methods
-   * only inside a loop, which checks for the condition to be true as it is not 
-   * guaranteed that the waiting thread will find it fulfilled, even if the signaling 
-   * thread left the condition in that state. This is because another thread can have 
-   * altered the condition, before the waiting thread got the chance to be woken up, 
-   * even if the condition itself is protected by a @a Mutex.
-   */
-  bool timed_wait(Mutex& mutex, const Glib::TimeVal& abs_time);
-
-  GCond* gobj() { return gobject_; }
-
-private:
-  GCond* gobject_;
-
-  // noncopyable
-  Cond(const Cond&);
-  Cond& operator=(const Cond&);
-};
-
-
-template <class T>
-struct StaticPrivate
-{
-  typedef void (*DestroyNotifyFunc) (void*);
-
-  static void delete_ptr(void* data);
-
-  inline T* get();
-  inline void set(T* data, DestroyNotifyFunc notify_func = &StaticPrivate<T>::delete_ptr);
-
-  GStaticPrivate* gobj() { return &gobject_; }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  // Must be public to allow initialization at compile time.
-  GStaticPrivate gobject_;
-#endif
-};
-
-template <class T>
-class Private
-{
-public:
-  typedef void (*DestructorFunc) (void*);
-
-  static void delete_ptr(void* data);
-
-  explicit inline Private(DestructorFunc destructor_func = &Private<T>::delete_ptr);
-  inline T* get();
-  inline void set(T* data);
-
-  GPrivate* gobj() { return gobject_; }
-
-private:
-  GPrivate* gobject_;
-
-  // noncopyable
-  Private(const Private<T>&);
-  Private<T>& operator=(const Private<T>&);
-};
-
-/** @} group Threads */
-
-/*! A glibmm thread example.
- * @example thread/thread.cc
- */
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/***************************************************************************/
-/*  inline implementation                                                  */
-/***************************************************************************/
-
-// internal
-void thread_init_impl();
-
-/* This function must be inline, to avoid an unnecessary dependency on
- * libgthread even if the thread system is not used.  libgthread might
- * not even be available if GLib was compiled without thread support.
- */
-inline
-void thread_init(GThreadFunctions* vtable)
-{
-  g_thread_init(vtable);
-  Glib::thread_init_impl();
-}
-
-inline
-bool thread_supported()
-{
-  //MSVC++ needs the != 0 to avoid an int -> bool cast warning.
-  return (g_thread_supported() != 0);
-}
-
-
-/**** Glib::Mutex::Lock ****************************************************/
-
-inline
-Mutex::Lock::Lock(Mutex& mutex)
-:
-  mutex_  (mutex),
-  locked_ (true)
-{
-  mutex_.lock();
-}
-
-inline
-Mutex::Lock::Lock(Mutex& mutex, NotLock)
-:
-  mutex_  (mutex),
-  locked_ (false)
-{}
-
-inline
-Mutex::Lock::Lock(Mutex& mutex, TryLock)
-:
-  mutex_  (mutex),
-  locked_ (mutex.trylock())
-{}
-
-inline
-Mutex::Lock::~Lock()
-{
-  if(locked_)
-    mutex_.unlock();
-}
-
-inline
-void Mutex::Lock::acquire()
-{
-  mutex_.lock();
-  locked_ = true;
-}
-
-inline
-bool Mutex::Lock::try_acquire()
-{
-  locked_ = mutex_.trylock();
-  return locked_;
-}
-
-inline
-void Mutex::Lock::release()
-{
-  mutex_.unlock();
-  locked_ = false;
-}
-
-inline
-bool Mutex::Lock::locked() const
-{
-  return locked_;
-}
-
-
-/**** Glib::RecMutex::Lock *************************************************/
-
-inline
-RecMutex::Lock::Lock(RecMutex& mutex)
-:
-  mutex_  (mutex),
-  locked_ (true)
-{
-  mutex_.lock();
-}
-
-inline
-RecMutex::Lock::Lock(RecMutex& mutex, NotLock)
-:
-  mutex_  (mutex),
-  locked_ (false)
-{}
-
-inline
-RecMutex::Lock::Lock(RecMutex& mutex, TryLock)
-:
-  mutex_  (mutex),
-  locked_ (mutex.trylock())
-{}
-
-inline
-RecMutex::Lock::~Lock()
-{
-  if(locked_)
-    mutex_.unlock();
-}
-
-inline
-void RecMutex::Lock::acquire()
-{
-  mutex_.lock();
-  locked_ = true;
-}
-
-inline
-bool RecMutex::Lock::try_acquire()
-{
-  locked_ = mutex_.trylock();
-  return locked_;
-}
-
-inline
-void RecMutex::Lock::release()
-{
-  mutex_.unlock();
-  locked_ = false;
-}
-
-inline
-bool RecMutex::Lock::locked() const
-{
-  return locked_;
-}
-
-
-/**** Glib::RWLock::ReaderLock *********************************************/
-
-inline
-RWLock::ReaderLock::ReaderLock(RWLock& rwlock)
-:
-  rwlock_ (rwlock),
-  locked_ (true)
-{
-  rwlock_.reader_lock();
-}
-
-inline
-RWLock::ReaderLock::ReaderLock(RWLock& rwlock, NotLock)
-:
-  rwlock_ (rwlock),
-  locked_ (false)
-{}
-
-inline
-RWLock::ReaderLock::ReaderLock(RWLock& rwlock, TryLock)
-:
-  rwlock_ (rwlock),
-  locked_ (rwlock.reader_trylock())
-{}
-
-inline
-RWLock::ReaderLock::~ReaderLock()
-{
-  if(locked_)
-    rwlock_.reader_unlock();
-}
-
-inline
-void RWLock::ReaderLock::acquire()
-{
-  rwlock_.reader_lock();
-  locked_ = true;
-}
-
-inline
-bool RWLock::ReaderLock::try_acquire()
-{
-  locked_ = rwlock_.reader_trylock();
-  return locked_;
-}
-
-inline
-void RWLock::ReaderLock::release()
-{
-  rwlock_.reader_unlock();
-  locked_ = false;
-}
-
-inline
-bool RWLock::ReaderLock::locked() const
-{
-  return locked_;
-}
-
-
-/**** Glib::RWLock::WriterLock *********************************************/
-
-inline
-RWLock::WriterLock::WriterLock(RWLock& rwlock)
-:
-  rwlock_ (rwlock),
-  locked_ (true)
-{
-  rwlock_.writer_lock();
-}
-
-inline
-RWLock::WriterLock::WriterLock(RWLock& rwlock, NotLock)
-:
-  rwlock_ (rwlock),
-  locked_ (false)
-{}
-
-inline
-RWLock::WriterLock::WriterLock(RWLock& rwlock, TryLock)
-:
-  rwlock_ (rwlock),
-  locked_ (rwlock.writer_trylock())
-{}
-
-inline
-RWLock::WriterLock::~WriterLock()
-{
-  if(locked_)
-    rwlock_.writer_unlock();
-}
-
-inline
-void RWLock::WriterLock::acquire()
-{
-  rwlock_.writer_lock();
-  locked_ = true;
-}
-
-inline
-bool RWLock::WriterLock::try_acquire()
-{
-  locked_ = rwlock_.writer_trylock();
-  return locked_;
-}
-
-inline
-void RWLock::WriterLock::release()
-{
-  rwlock_.writer_unlock();
-  locked_ = false;
-}
-
-inline
-bool RWLock::WriterLock::locked() const
-{
-  return locked_;
-}
-
-
-/**** Glib::StaticPrivate **************************************************/
-
-// static
-template <class T>
-void StaticPrivate<T>::delete_ptr(void* data)
-{
-  delete static_cast<T*>(data);
-}
-
-template <class T> inline
-T* StaticPrivate<T>::get()
-{
-  return static_cast<T*>(g_static_private_get(&gobject_));
-}
-
-template <class T> inline
-void StaticPrivate<T>::set(T* data, typename StaticPrivate<T>::DestroyNotifyFunc notify_func)
-{
-  g_static_private_set(&gobject_, data, notify_func);
-}
-
-
-/**** Glib::Private ********************************************************/
-
-// static
-template <class T>
-void Private<T>::delete_ptr(void* data)
-{
-  delete static_cast<T*>(data);
-}
-
-template <class T> inline
-Private<T>::Private(typename Private<T>::DestructorFunc destructor_func)
-:
-  gobject_ (g_private_new(destructor_func))
-{}
-
-template <class T> inline
-T* Private<T>::get()
-{
-  return static_cast<T*>(g_private_get(gobject_));
-}
-
-template <class T> inline
-void Private<T>::set(T* data)
-{
-  g_private_set(gobject_, data);
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_THREAD_H */
-
diff --git a/libs/glibmm2/glibmm/threadpool.cc b/libs/glibmm2/glibmm/threadpool.cc
deleted file mode 100644 (file)
index db9b089..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/threadpool.h>
-#include <glibmm/exceptionhandler.h>
-#include <glib.h>
-#include <list>
-#include <glibmmconfig.h>
-
-GLIBMM_USING_STD(list)
-
-
-namespace Glib
-{
-
-// internal
-class ThreadPool::SlotList
-{
-public:
-  SlotList();
-  ~SlotList();
-
-  sigc::slot<void>* push(const sigc::slot<void>& slot);
-  sigc::slot<void>  pop(sigc::slot<void>* slot_ptr);
-
-  void lock_and_unlock();
-
-private:
-  Glib::Mutex                     mutex_;
-  std::list< sigc::slot<void> >  list_;
-
-  // noncopyable
-  SlotList(const ThreadPool::SlotList&);
-  ThreadPool::SlotList& operator=(const ThreadPool::SlotList&);
-};
-
-ThreadPool::SlotList::SlotList()
-{}
-
-ThreadPool::SlotList::~SlotList()
-{}
-
-sigc::slot<void>* ThreadPool::SlotList::push(const sigc::slot<void>& slot)
-{
-  Mutex::Lock lock (mutex_);
-
-  list_.push_back(slot);
-  return &list_.back();
-}
-
-sigc::slot<void> ThreadPool::SlotList::pop(sigc::slot<void>* slot_ptr)
-{
-  sigc::slot<void> slot;
-
-  {
-    Mutex::Lock lock (mutex_);
-
-    std::list< sigc::slot<void> >::iterator pslot = list_.begin();
-    while(pslot != list_.end() && slot_ptr != &*pslot)
-      ++pslot;
-
-    if(pslot != list_.end())
-    {
-      slot = *pslot;
-      list_.erase(pslot);
-    }
-  }
-
-  return slot;
-}
-
-void ThreadPool::SlotList::lock_and_unlock()
-{
-  mutex_.lock();
-  mutex_.unlock();
-}
-
-} // namespace Glib
-
-
-namespace
-{
-
-static void call_thread_entry_slot(void* data, void* user_data)
-{
-  try
-  {
-    Glib::ThreadPool::SlotList *const slot_list =
-        static_cast<Glib::ThreadPool::SlotList*>(user_data);
-
-    sigc::slot<void> slot (slot_list->pop(static_cast<sigc::slot<void>*>(data)));
-
-    slot();
-  }
-  catch(Glib::Thread::Exit&)
-  {
-    // Just exit from the thread.  The Thread::Exit exception
-    // is our sane C++ replacement of g_thread_exit().
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-ThreadPool::ThreadPool(int max_threads, bool exclusive)
-:
-  gobject_   (0),
-  slot_list_ (new SlotList())
-{
-  GError* error = 0;
-
-  gobject_ = g_thread_pool_new(
-      &call_thread_entry_slot, slot_list_, max_threads, exclusive, &error);
-
-  if(error)
-  {
-    delete slot_list_;
-    slot_list_ = 0;
-    Glib::Error::throw_exception(error);
-  }
-}
-
-ThreadPool::~ThreadPool()
-{
-  if(gobject_)
-    g_thread_pool_free(gobject_, 1, 1);
-
-  if(slot_list_)
-  {
-    slot_list_->lock_and_unlock();
-    delete slot_list_;
-  }
-}
-
-void ThreadPool::push(const sigc::slot<void>& slot)
-{
-  sigc::slot<void> *const slot_ptr = slot_list_->push(slot);
-
-  GError* error = 0;
-  g_thread_pool_push(gobject_, slot_ptr, &error);
-
-  if(error)
-  {
-    slot_list_->pop(slot_ptr);
-    Glib::Error::throw_exception(error);
-  }
-}
-
-void ThreadPool::set_max_threads(int max_threads)
-{
-  GError* error = 0;
-  g_thread_pool_set_max_threads(gobject_, max_threads, &error);
-
-  if(error)
-    Glib::Error::throw_exception(error);
-}
-
-int ThreadPool::get_max_threads() const
-{
-  return g_thread_pool_get_max_threads(gobject_);
-}
-
-unsigned int ThreadPool::get_num_threads() const
-{
-  return g_thread_pool_get_num_threads(gobject_);
-}
-
-unsigned int ThreadPool::unprocessed() const
-{
-  return g_thread_pool_unprocessed(gobject_);
-}
-
-bool ThreadPool::get_exclusive() const
-{
-  g_return_val_if_fail(gobject_ != 0, false);
-
-  return gobject_->exclusive;
-}
-
-void ThreadPool::shutdown(bool immediately)
-{
-  if(gobject_)
-  {
-    g_thread_pool_free(gobject_, immediately, 1);
-    gobject_ = 0;
-  }
-
-  if(slot_list_)
-  {
-    slot_list_->lock_and_unlock();
-    delete slot_list_;
-    slot_list_ = 0;
-  }
-}
-
-// static
-void ThreadPool::set_max_unused_threads(int max_threads)
-{
-  g_thread_pool_set_max_unused_threads(max_threads);
-}
-
-// static
-int ThreadPool::get_max_unused_threads()
-{
-  return g_thread_pool_get_max_unused_threads();
-}
-
-// static
-unsigned int ThreadPool::get_num_unused_threads()
-{
-  return g_thread_pool_get_num_unused_threads();
-}
-
-// static
-void ThreadPool::stop_unused_threads()
-{
-  g_thread_pool_stop_unused_threads();
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/threadpool.h b/libs/glibmm2/glibmm/threadpool.h
deleted file mode 100644 (file)
index 5cff035..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_THREADPOOL_H
-#define _GLIBMM_THREADPOOL_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/thread.h>
-
-extern "C" { typedef struct _GThreadPool GThreadPool; }
-
-
-namespace Glib
-{
-
-/** @defgroup ThreadPools Thread Pools
- * Pools of threads to execute work concurrently.
- * @{
- */
-
-/** A pool of threads to execute work concurrently.
- */
-class ThreadPool
-{
-public:
-  /** Constructs a new thread pool.
-   * Whenever you call ThreadPool::push(), either a new thread is created or an
-   * unused one is reused. At most @a max_threads threads are running
-   * concurrently for this thread pool. @a max_threads&nbsp;=&nbsp;-1 allows
-   * unlimited threads to be created for this thread pool.
-   *
-   * The parameter @a exclusive determines, whether the thread pool owns all
-   * threads exclusive or whether the threads are shared globally. If @a
-   * exclusive is <tt>true</tt>, @a max_threads threads are started immediately
-   * and they will run exclusively for this thread pool until it is destroyed
-   * by ~ThreadPool(). If @a exclusive is <tt>false</tt>, threads are created
-   * when needed and shared between all non-exclusive thread pools.  This
-   * implies that @a max_threads may not be -1 for exclusive thread pools.
-   *
-   * @param max_threads The maximal number of threads to execute concurrently
-   * in the new thread pool, -1 means no limit.
-   * @param exclusive Should this thread pool be exclusive?
-   * @throw Glib::ThreadError An error can only occur when @a exclusive is
-   * set to <tt>true</tt> and not all @a max_threads threads could be created.
-   */
-  explicit ThreadPool(int max_threads = -1, bool exclusive = false);
-  virtual ~ThreadPool();
-
-  /** Inserts @a slot into the list of tasks to be executed by the pool.
-   * When the number of currently running threads is lower than the maximal
-   * allowed number of threads, a new thread is started (or reused).  Otherwise
-   * @a slot stays in the queue until a thread in this pool finishes its
-   * previous task and processes @a slot.
-   * @param slot A new task for the thread pool.
-   * @throw Glib::ThreadError An error can only occur when a new thread
-   * couldn't be created. In that case @a slot is simply appended to the
-   * queue of work to do.
-   */
-  void push(const sigc::slot<void>& slot);
-
-  /** Sets the maximal allowed number of threads for the pool.
-   * A value of -1 means that the maximal number of threads is unlimited.
-   * Setting @a max_threads to 0 means stopping all work for pool. It is
-   * effectively frozen until @a max_threads is set to a non-zero value again.
-   *
-   * A thread is never terminated while it is still running. Instead the
-   * maximal number of threads only has effect for the allocation of new
-   * threads in ThreadPool::push().  A new thread is allocated whenever the
-   * number of currently running threads in the pool is smaller than the
-   * maximal number.
-   *
-   * @param max_threads A new maximal number of threads for the pool.
-   * @throw Glib::ThreadError An error can only occur when a new thread
-   * couldn't be created.
-   */
-  void set_max_threads(int max_threads);
-
-  /** Returns the maximal number of threads for the pool.
-   * @return The maximal number of threads.
-   */
-  int get_max_threads() const;
-
-  /** Returns the number of threads currently running in the pool.
-   * @return The number of threads currently running.
-   */
-  unsigned int get_num_threads() const;
-
-  /** Returns the number of tasks still unprocessed in the pool.
-   * @return The number of unprocessed tasks.
-   */
-  unsigned int unprocessed() const;
-
-  /** Returns whether all threads are exclusive to this pool.
-   * @return Whether all threads are exclusive to this pool.
-   */
-  bool get_exclusive() const;
-
-  /** Frees all resources allocated for the pool.
-   * If @a immediately is <tt>true</tt>, no new task is processed.  Otherwise the
-   * pool is not freed before the last task is processed.  Note however, that no
-   * thread of this pool is interrupted while processing a task. Instead at least
-   * all still running threads can finish their tasks before the pool is freed.
-   *
-   * This method does not return before all tasks to be processed (dependent on
-   * @a immediately, whether all or only the currently running) are ready.
-   * After calling shutdown() the pool must not be used anymore.
-   *
-   * @param immediately Should the pool shut down immediately?
-   */
-  void shutdown(bool immediately = false);
-
-  /** Sets the maximal number of unused threads to @a max_threads.
-   * If @a max_threads is -1, no limit is imposed on the number of unused threads.
-   * @param max_threads Maximal number of unused threads.
-   */
-  static void set_max_unused_threads(int max_threads);
-
-  /** Returns the maximal allowed number of unused threads.
-   * @return The maximal number of unused threads.
-   */
-  static int get_max_unused_threads();
-
-  /** Returns the number of currently unused threads.
-   * @return The number of currently unused threads.
-   */
-  static unsigned int get_num_unused_threads();
-
-  /** Stops all currently unused threads.
-   * This does not change the maximal number of unused threads.  This function can
-   * be used to regularly stop all unused threads e.g. from Glib::signal_timeout().
-   */
-  static void stop_unused_threads();
-
-  GThreadPool*       gobj()       { return gobject_; }
-  const GThreadPool* gobj() const { return gobject_; }
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  class SlotList;
-#endif
-
-private:
-  GThreadPool* gobject_;
-  SlotList*    slot_list_;
-
-  ThreadPool(const ThreadPool&);
-  ThreadPool& operator=(const ThreadPool&);
-};
-
-/** @} group ThreadPools */
-
-
-/***************************************************************************/
-/*  inline implementation                                                  */
-/***************************************************************************/
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/**** Glib::Private ********************************************************/
-
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_THREADPOOL_H */
-
diff --git a/libs/glibmm2/glibmm/timer.cc b/libs/glibmm2/glibmm/timer.cc
deleted file mode 100644 (file)
index 40a7fd3..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* timer.cc
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gtimer.h>
-#include <glibmm/timer.h>
-
-
-namespace Glib
-{
-
-Timer::Timer()
-:
-  gobject_ (g_timer_new())
-{}
-
-Timer::~Timer()
-{
-  g_timer_destroy(gobject_);
-}
-
-void Timer::start()
-{
-  g_timer_start(gobject_);
-}
-
-void Timer::stop()
-{
-  g_timer_stop(gobject_);
-}
-
-void Timer::reset()
-{
-  g_timer_reset(gobject_);
-}
-
-double Timer::elapsed() const
-{
-  return g_timer_elapsed(gobject_, 0);
-}
-
-double Timer::elapsed(unsigned long& microseconds) const
-{
-  return g_timer_elapsed(gobject_, &microseconds);
-}
-
-
-void usleep(unsigned long microseconds)
-{
-  g_usleep(microseconds);
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/timer.h b/libs/glibmm2/glibmm/timer.h
deleted file mode 100644 (file)
index a9ac479..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_TIMER_H
-#define _GLIBMM_TIMER_H
-
-/* $Id$ */
-
-/* timer.h
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-extern "C" { typedef struct _GTimer GTimer; }
-
-
-namespace Glib
-{
-
-/** Portable stop watch interface.
- * This resembles a convient and portable timer with microseconds resolution.
- */
-class Timer
-{
-public:
-  /** Create a new timer.
-   * Also starts timing by calling start() implicitly.
-   */
-  Timer();
-  ~Timer();
-
-  void start();
-  void stop();
-  void reset();
-
-  /** Get the elapsed time.
-   * @return The value in seconds.
-   */
-  double elapsed() const;
-
-  /** Get the elapsed time.
-   * @return The value in seconds.  Also fills @p microseconds
-   * with the corresponding @htmlonly&micro;s@endhtmlonly value.
-   */
-  double elapsed(unsigned long& microseconds) const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GTimer*       gobj()       { return gobject_; }
-  const GTimer* gobj() const { return gobject_; }
-#endif
-
-private:
-  GTimer* gobject_;
-
-  // not copyable
-  Timer(const Timer&);
-  Timer& operator=(const Timer&);
-};
-
-
-void usleep(unsigned long microseconds);
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_TIMER_H */
-
diff --git a/libs/glibmm2/glibmm/timeval.cc b/libs/glibmm2/glibmm/timeval.cc
deleted file mode 100644 (file)
index 6494d0f..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* timeval.cc
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gmain.h>
-#include <glib/gmessages.h>
-#include <glib/gtimer.h>
-
-#include <glibmm/timeval.h>
-
-
-namespace Glib
-{
-
-void TimeVal::assign_current_time()
-{
-  g_get_current_time(this);
-}
-
-void TimeVal::add(const TimeVal& rhs)
-{
-  g_return_if_fail(tv_usec >= 0 && tv_usec < G_USEC_PER_SEC);
-  g_return_if_fail(rhs.tv_usec >= 0 && rhs.tv_usec < G_USEC_PER_SEC);
-
-  tv_usec += rhs.tv_usec;
-
-  if(tv_usec >= G_USEC_PER_SEC)
-  {
-    tv_usec -= G_USEC_PER_SEC;
-    ++tv_sec;
-  }
-
-  tv_sec += rhs.tv_sec;
-}
-
-void TimeVal::subtract(const TimeVal& rhs)
-{
-  g_return_if_fail(tv_usec >= 0 && tv_usec < G_USEC_PER_SEC);
-  g_return_if_fail(rhs.tv_usec >= 0 && rhs.tv_usec < G_USEC_PER_SEC);
-
-  tv_usec -= rhs.tv_usec;
-
-  if(tv_usec < 0)
-  {
-    tv_usec += G_USEC_PER_SEC;
-    --tv_sec;
-  }
-
-  tv_sec -= rhs.tv_sec;
-}
-
-void TimeVal::add_seconds(long seconds)
-{
-  g_return_if_fail(tv_usec >= 0 && tv_usec < G_USEC_PER_SEC);
-
-  tv_sec += seconds;
-}
-
-void TimeVal::subtract_seconds(long seconds)
-{
-  g_return_if_fail(tv_usec >= 0 && tv_usec < G_USEC_PER_SEC);
-
-  tv_sec -= seconds;
-}
-
-void TimeVal::add_milliseconds(long milliseconds)
-{
-  g_return_if_fail(tv_usec >= 0 && tv_usec < G_USEC_PER_SEC);
-
-  tv_usec += (milliseconds % 1000) * 1000;
-
-  if(tv_usec < 0)
-  {
-    tv_usec += G_USEC_PER_SEC;
-    --tv_sec;
-  }
-  else if(tv_usec >= G_USEC_PER_SEC)
-  {
-    tv_usec -= G_USEC_PER_SEC;
-    ++tv_sec;
-  }
-
-  tv_sec += milliseconds / 1000;
-}
-
-void TimeVal::subtract_milliseconds(long milliseconds)
-{
-  add_milliseconds(-1 * milliseconds);
-}
-
-void TimeVal::add_microseconds(long microseconds)
-{ 
-  g_time_val_add(this, microseconds);
-}
-
-void TimeVal::subtract_microseconds(long microseconds)
-{
-  g_time_val_add(this, -1 * microseconds);
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/timeval.h b/libs/glibmm2/glibmm/timeval.h
deleted file mode 100644 (file)
index f27952c..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_TIMEVAL_H
-#define _GLIBMM_TIMEVAL_H
-
-/* $Id$ */
-
-/* timeval.h
- *
- * Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gtypes.h>
-#include <glib/gtimer.h>
-
-namespace Glib
-{
-
-/** Glib::TimeVal is a wrapper around the glib structure GTimeVal.
- * The glib structure GTimeVal itself is equivalent to struct timeval,
- * which is returned by the gettimeofday() UNIX call. Additionally
- * this wrapper provides an assortment of time manipulation functions.
- */
-struct TimeVal : public GTimeVal
-{
-  inline TimeVal();
-  inline TimeVal(long seconds, long microseconds);
-
-  inline TimeVal(const GTimeVal& gtimeval);
-  inline TimeVal& operator=(const GTimeVal& gtimeval);
-
-  /** Assigns the current time to the TimeVal instance.
-   * Equivalent to the UNIX gettimeofday() function, but is portable and 
-   * works also on Win32. 
-   */
-  void assign_current_time();
-
-  void add(const TimeVal& rhs);
-  void subtract(const TimeVal& rhs);
-  void add_seconds(long seconds);
-  void subtract_seconds(long seconds);
-  void add_milliseconds(long milliseconds);
-  void subtract_milliseconds(long milliseconds);
-  void add_microseconds(long microseconds);
-  void subtract_microseconds(long microseconds);
-
-  inline TimeVal& operator+=(const TimeVal& gtimeval);
-  inline TimeVal& operator-=(const TimeVal& gtimeval);
-  inline TimeVal& operator+=(long seconds);
-  inline TimeVal& operator-=(long seconds);
-
-  /** Returns a double representation of the time interval.
-   * This member function converts the time interval, that is
-   * internally stored as two long values for seconds and microseconds,
-   * to a double representation, whose unit is seconds.
-   */
-  inline double as_double() const;
-
-  inline bool negative() const;
-
-  /** Checks whether the stored time interval is positive.
-   * Returns true if the stored time / time interval is positive.
-   */
-  inline bool valid() const;
-};
-
-inline
-TimeVal::TimeVal()
-{
-  tv_sec  = 0;
-  tv_usec = 0;
-}
-
-inline
-TimeVal::TimeVal(long seconds, long microseconds)
-{
-  tv_sec  = seconds;
-  tv_usec = microseconds;
-}
-
-inline
-TimeVal::TimeVal(const GTimeVal& gtimeval)
-{
-  tv_sec  = gtimeval.tv_sec;
-  tv_usec = gtimeval.tv_usec;
-}
-
-inline
-TimeVal& TimeVal::operator=(const GTimeVal& gtimeval)
-{
-  tv_sec  = gtimeval.tv_sec;
-  tv_usec = gtimeval.tv_usec;
-  return *this;
-}
-
-inline
-TimeVal& TimeVal::operator+=(const TimeVal& gtimeval)
-{
-  add(gtimeval);
-
-  return *this;
-}
-
-inline
-TimeVal& TimeVal::operator-=(const TimeVal& gtimeval)
-{
-  subtract(gtimeval);
-
-  return *this;
-}
-
-inline
-TimeVal& TimeVal::operator+=(long seconds)
-{
-  add_seconds(seconds);
-
-  return *this;
-}
-
-inline
-TimeVal& TimeVal::operator-=(long seconds)
-{
-  subtract_seconds(seconds);
-
-  return *this;
-}
-
-inline
-double TimeVal::as_double() const
-{
-  return tv_sec + ((double) tv_usec / (double) G_USEC_PER_SEC);
-}
-
-inline
-bool TimeVal::negative() const
-{
-  return (tv_sec < 0);
-}
-
-inline
-bool TimeVal::valid() const
-{
-  return (tv_usec >= 0 && tv_usec < G_USEC_PER_SEC);
-}
-
-/** @relates Glib::TimeVal */
-inline
-TimeVal operator+(const TimeVal& lhs, const TimeVal& rhs)
-{ return TimeVal(lhs) += rhs; }
-
-/** @relates Glib::TimeVal */
-inline 
-TimeVal operator+(const TimeVal& lhs, long seconds)
-{ return TimeVal(lhs) += seconds; }
-
-/** @relates Glib::TimeVal */
-inline 
-TimeVal operator-(const TimeVal& lhs, const TimeVal& rhs)
-{ return TimeVal(lhs) -= rhs; }
-
-/** @relates Glib::TimeVal */
-inline 
-TimeVal operator-(const TimeVal& lhs, long seconds)
-{ return TimeVal(lhs) -= seconds; }
-
-
-/** @relates Glib::TimeVal */
-inline
-bool operator==(const TimeVal& lhs, const TimeVal& rhs)
-{
-  return (lhs.tv_sec == rhs.tv_sec && lhs.tv_usec == rhs.tv_usec);
-}
-
-/** @relates Glib::TimeVal */
-inline
-bool operator!=(const TimeVal& lhs, const TimeVal& rhs)
-{
-  return (lhs.tv_sec != rhs.tv_sec || lhs.tv_usec != rhs.tv_usec);
-}
-
-/** @relates Glib::TimeVal */
-inline
-bool operator<(const TimeVal& lhs, const TimeVal& rhs)
-{
-  return ((lhs.tv_sec < rhs.tv_sec) ||
-          (lhs.tv_sec == rhs.tv_sec && lhs.tv_usec < rhs.tv_usec));
-}
-
-/** @relates Glib::TimeVal */
-inline
-bool operator>(const TimeVal& lhs, const TimeVal& rhs)
-{
-  return ((lhs.tv_sec > rhs.tv_sec) ||
-          (lhs.tv_sec == rhs.tv_sec && lhs.tv_usec > rhs.tv_usec));
-}
-
-/** @relates Glib::TimeVal */
-inline
-bool operator<=(const TimeVal& lhs, const TimeVal& rhs)
-{
-  return ((lhs.tv_sec < rhs.tv_sec) ||
-          (lhs.tv_sec == rhs.tv_sec && lhs.tv_usec <= rhs.tv_usec));
-}
-
-/** @relates Glib::TimeVal */
-inline
-bool operator>=(const TimeVal& lhs, const TimeVal& rhs)
-{
-  return ((lhs.tv_sec > rhs.tv_sec) ||
-          (lhs.tv_sec == rhs.tv_sec && lhs.tv_usec >= rhs.tv_usec));
-}
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_TIMEVAL_H */
-
-
-
-
diff --git a/libs/glibmm2/glibmm/unicode.cc b/libs/glibmm2/glibmm/unicode.cc
deleted file mode 100644 (file)
index cb58371..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// Generated by gtkmmproc -- DO NOT MODIFY!
-
-#include <glibmm/unicode.h>
-#include <glibmm/private/unicode_p.h>
-
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/unicode.h>
-
-
-namespace
-{
-} // anonymous namespace
-
-
diff --git a/libs/glibmm2/glibmm/unicode.h b/libs/glibmm2/glibmm/unicode.h
deleted file mode 100644 (file)
index fd2f68a..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-// -*- c++ -*-
-// Generated by gtkmmproc -- DO NOT MODIFY!
-#ifndef _GLIBMM_UNICODE_H
-#define _GLIBMM_UNICODE_H
-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <glib/gmacros.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gunicode.h>
-
-// Not used, but we want to get rid of possible <ctype.h> macros.
-#include <cctype>
-
-#undef isalnum
-#undef isalpha
-#undef iscntrl
-#undef isdigit
-#undef isgraph
-#undef islower
-#undef isprint
-#undef ispunct
-#undef isspace
-#undef isupper
-#undef isxdigit
-#undef istitle
-#undef isdefined
-#undef iswide
-#undef toupper
-#undef tolower
-#undef totitle
-
-
-namespace Glib
-{
-
-/** @addtogroup glibmmEnums Enums and Flags */
-
-/**
- * @ingroup glibmmEnums
- */
-enum UnicodeType
-{
-  UNICODE_CONTROL,
-  UNICODE_FORMAT,
-  UNICODE_UNASSIGNED,
-  UNICODE_PRIVATE_USE,
-  UNICODE_SURROGATE,
-  UNICODE_LOWERCASE_LETTER,
-  UNICODE_MODIFIER_LETTER,
-  UNICODE_OTHER_LETTER,
-  UNICODE_TITLECASE_LETTER,
-  UNICODE_UPPERCASE_LETTER,
-  UNICODE_COMBINING_MARK,
-  UNICODE_ENCLOSING_MARK,
-  UNICODE_NON_SPACING_MARK,
-  UNICODE_DECIMAL_NUMBER,
-  UNICODE_LETTER_NUMBER,
-  UNICODE_OTHER_NUMBER,
-  UNICODE_CONNECT_PUNCTUATION,
-  UNICODE_DASH_PUNCTUATION,
-  UNICODE_CLOSE_PUNCTUATION,
-  UNICODE_FINAL_PUNCTUATION,
-  UNICODE_INITIAL_PUNCTUATION,
-  UNICODE_OTHER_PUNCTUATION,
-  UNICODE_OPEN_PUNCTUATION,
-  UNICODE_CURRENCY_SYMBOL,
-  UNICODE_MODIFIER_SYMBOL,
-  UNICODE_MATH_SYMBOL,
-  UNICODE_OTHER_SYMBOL,
-  UNICODE_LINE_SEPARATOR,
-  UNICODE_PARAGRAPH_SEPARATOR,
-  UNICODE_SPACE_SEPARATOR
-};
-
-
-/**
- * @ingroup glibmmEnums
- */
-enum UnicodeBreakType
-{
-  UNICODE_BREAK_MANDATORY,
-  UNICODE_BREAK_CARRIAGE_RETURN,
-  UNICODE_BREAK_LINE_FEED,
-  UNICODE_BREAK_COMBINING_MARK,
-  UNICODE_BREAK_SURROGATE,
-  UNICODE_BREAK_ZERO_WIDTH_SPACE,
-  UNICODE_BREAK_INSEPARABLE,
-  UNICODE_BREAK_NON_BREAKING_GLUE,
-  UNICODE_BREAK_CONTINGENT,
-  UNICODE_BREAK_SPACE,
-  UNICODE_BREAK_AFTER,
-  UNICODE_BREAK_BEFORE,
-  UNICODE_BREAK_BEFORE_AND_AFTER,
-  UNICODE_BREAK_HYPHEN,
-  UNICODE_BREAK_NON_STARTER,
-  UNICODE_BREAK_OPEN_PUNCTUATION,
-  UNICODE_BREAK_CLOSE_PUNCTUATION,
-  UNICODE_BREAK_QUOTATION,
-  UNICODE_BREAK_EXCLAMATION,
-  UNICODE_BREAK_IDEOGRAPHIC,
-  UNICODE_BREAK_NUMERIC,
-  UNICODE_BREAK_INFIX_SEPARATOR,
-  UNICODE_BREAK_SYMBOL,
-  UNICODE_BREAK_ALPHABETIC,
-  UNICODE_BREAK_PREFIX,
-  UNICODE_BREAK_POSTFIX,
-  UNICODE_BREAK_COMPLEX_CONTEXT,
-  UNICODE_BREAK_AMBIGUOUS,
-  UNICODE_BREAK_UNKNOWN,
-  UNICODE_BREAK_NEXT_LINE,
-  UNICODE_BREAK_WORD_JOINER
-};
-
-
-/**
- * @ingroup glibmmEnums
- * @par Bitwise operators:
- * <tt>%AsciiType operator|(AsciiType, AsciiType)</tt><br>
- * <tt>%AsciiType operator&(AsciiType, AsciiType)</tt><br>
- * <tt>%AsciiType operator^(AsciiType, AsciiType)</tt><br>
- * <tt>%AsciiType operator~(AsciiType)</tt><br>
- * <tt>%AsciiType& operator|=(AsciiType&, AsciiType)</tt><br>
- * <tt>%AsciiType& operator&=(AsciiType&, AsciiType)</tt><br>
- * <tt>%AsciiType& operator^=(AsciiType&, AsciiType)</tt><br>
- */
-enum AsciiType
-{
-  ASCII_ALNUM = 1 << 0,
-  ASCII_ALPHA = 1 << 1,
-  ASCII_CNTRL = 1 << 2,
-  ASCII_DIGIT = 1 << 3,
-  ASCII_GRAPH = 1 << 4,
-  ASCII_LOWER = 1 << 5,
-  ASCII_PRINT = 1 << 6,
-  ASCII_PUNCT = 1 << 7,
-  ASCII_SPACE = 1 << 8,
-  ASCII_UPPER = 1 << 9,
-  ASCII_XDIGIT = 1 << 10
-};
-
-/** @ingroup glibmmEnums */
-inline AsciiType operator|(AsciiType lhs, AsciiType rhs)
-  { return static_cast<AsciiType>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline AsciiType operator&(AsciiType lhs, AsciiType rhs)
-  { return static_cast<AsciiType>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline AsciiType operator^(AsciiType lhs, AsciiType rhs)
-  { return static_cast<AsciiType>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
-
-/** @ingroup glibmmEnums */
-inline AsciiType operator~(AsciiType flags)
-  { return static_cast<AsciiType>(~static_cast<unsigned>(flags)); }
-
-/** @ingroup glibmmEnums */
-inline AsciiType& operator|=(AsciiType& lhs, AsciiType rhs)
-  { return (lhs = static_cast<AsciiType>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline AsciiType& operator&=(AsciiType& lhs, AsciiType rhs)
-  { return (lhs = static_cast<AsciiType>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
-
-/** @ingroup glibmmEnums */
-inline AsciiType& operator^=(AsciiType& lhs, AsciiType rhs)
-  { return (lhs = static_cast<AsciiType>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
-
-
-/**
- * @ingroup glibmmEnums
- */
-enum NormalizeMode
-{
-  NORMALIZE_DEFAULT,
-  NORMALIZE_NFD,
-  NORMALIZE_DEFAULT_COMPOSE,
-  NORMALIZE_NFC = NORMALIZE_DEFAULT_COMPOSE,
-  NORMALIZE_ALL,
-  NORMALIZE_NFKD = NORMALIZE_ALL,
-  NORMALIZE_ALL_COMPOSE,
-  NORMALIZE_NFKC = NORMALIZE_ALL_COMPOSE
-};
-
-
-/** @defgroup Unicode Unicode Manipulation
- * Functions operating on Unicode characters and UTF-8 strings.
- * @{
- */
-
-namespace Unicode
-{
-
-inline bool validate(gunichar uc)
-  { return (g_unichar_validate(uc) != 0); }
-inline bool isalnum(gunichar uc)
-  { return (g_unichar_isalnum(uc) != 0); }
-inline bool isalpha(gunichar uc)
-  { return (g_unichar_isalpha(uc) != 0); }
-inline bool iscntrl(gunichar uc)
-  { return (g_unichar_iscntrl(uc) != 0); }
-inline bool isdigit(gunichar uc)
-  { return (g_unichar_isdigit(uc) != 0); }
-inline bool isgraph(gunichar uc)
-  { return (g_unichar_isgraph(uc) != 0); }
-inline bool islower(gunichar uc)
-  { return (g_unichar_islower(uc) != 0); }
-inline bool isprint(gunichar uc)
-  { return (g_unichar_isprint(uc) != 0); }
-inline bool ispunct(gunichar uc)
-  { return (g_unichar_ispunct(uc) != 0); }
-inline bool isspace(gunichar uc)
-  { return (g_unichar_isspace(uc) != 0); }
-inline bool isupper(gunichar uc)
-  { return (g_unichar_isupper(uc) != 0); }
-inline bool isxdigit(gunichar uc)
-  { return (g_unichar_isxdigit(uc) != 0); }
-inline bool istitle(gunichar uc)
-  { return (g_unichar_istitle(uc) != 0); }
-inline bool isdefined(gunichar uc)
-  { return (g_unichar_isdefined(uc) != 0); }
-inline bool iswide(gunichar uc)
-  { return (g_unichar_iswide(uc) != 0); }
-
-inline gunichar toupper(gunichar uc)
-  { return g_unichar_toupper(uc); }
-inline gunichar tolower(gunichar uc)
-  { return g_unichar_tolower(uc); }
-inline gunichar totitle(gunichar uc)
-  { return g_unichar_totitle(uc); }
-
-inline int digit_value(gunichar uc)
-  { return g_unichar_digit_value(uc); }
-inline int xdigit_value(gunichar uc)
-  { return g_unichar_xdigit_value(uc); }
-
-inline Glib::UnicodeType type(gunichar uc)
-  { return static_cast<Glib::UnicodeType>(static_cast<int>(g_unichar_type(uc))); }
-
-inline Glib::UnicodeBreakType break_type(gunichar uc)
-  { return static_cast<Glib::UnicodeBreakType>(static_cast<int>(g_unichar_break_type(uc))); }
-
-} // namespace Unicode
-
-
-namespace Ascii
-{
-
-inline bool isalnum(char c)
-  { return g_ascii_isalnum(c); }
-inline bool isalpha(char c)
-  { return g_ascii_isalpha(c); }
-inline bool iscntrl(char c)
-  { return g_ascii_iscntrl(c); }
-inline bool isdigit(char c)
-  { return g_ascii_isdigit(c); }
-inline bool isgraph(char c)
-  { return g_ascii_isgraph(c); }
-inline bool islower(char c)
-  { return g_ascii_islower(c); }
-inline bool isprint(char c)
-  { return g_ascii_isprint(c); }
-inline bool ispunct(char c)
-  { return g_ascii_ispunct(c); }
-inline bool isspace(char c)
-  { return g_ascii_isspace(c); }
-inline bool isupper(char c)
-  { return g_ascii_isupper(c); }
-inline bool isxdigit(char c)
-  { return g_ascii_isxdigit(c); }
-
-inline char tolower(char c)
-  { return g_ascii_tolower(c); }
-inline char toupper(char c)
-  { return g_ascii_toupper(c); }
-
-inline int digit_value(char c)
-  { return g_ascii_digit_value(c); }
-inline int xdigit_value(char c)
-  { return g_ascii_xdigit_value(c); }
-
-} // namespace Ascii
-
-
-/** @} group Unicode */
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_UNICODE_H */
-
diff --git a/libs/glibmm2/glibmm/ustring.cc b/libs/glibmm2/glibmm/ustring.cc
deleted file mode 100644 (file)
index 76e8d01..0000000
+++ /dev/null
@@ -1,1207 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/ustring.h>
-#include <glibmm/convert.h>
-#include <glibmm/error.h>
-#include <glibmm/utility.h>
-
-#include <algorithm>
-#include <iostream>
-
-#include <glibmmconfig.h>
-GLIBMM_USING_STD(find)
-
-
-namespace
-{
-
-using Glib::ustring;
-
-// Little helper to make the conversion from gunichar to UTF-8 a one-liner.
-//
-struct UnicharToUtf8
-{
-  char                buf[6];
-  ustring::size_type  len;
-
-  explicit UnicharToUtf8(gunichar uc)
-    : len (g_unichar_to_utf8(uc, buf)) {}
-};
-
-
-// All utf8_*_offset() functions return npos if offset is out of range.
-// The caller should decide if npos is a valid argument and just marks
-// the whole string, or if it is not allowed (e.g. for start positions).
-// In the latter case std::out_of_range should be thrown, but usually
-// std::string will do that for us.
-
-// First overload: stop on '\0' character.
-//
-static ustring::size_type utf8_byte_offset(const char* str, ustring::size_type offset)
-{
-  if(offset == ustring::npos)
-    return ustring::npos;
-
-  const char *const utf8_skip = g_utf8_skip;
-  const char* p = str;
-
-  for(; offset != 0; --offset)
-  {
-    const unsigned int c = static_cast<unsigned char>(*p);
-
-    if(c == 0)
-      return ustring::npos;
-
-    p += utf8_skip[c];
-  }
-
-  return (p - str);
-}
-
-// Second overload: stop when reaching maxlen.
-//
-static ustring::size_type utf8_byte_offset(const char* str, ustring::size_type offset,
-                                    ustring::size_type maxlen)
-{
-  if(offset == ustring::npos)
-    return ustring::npos;
-
-  const char *const utf8_skip = g_utf8_skip;
-  const char *const pend = str + maxlen;
-  const char* p = str;
-
-  for(; offset != 0; --offset)
-  {
-    if(p >= pend)
-      return ustring::npos;
-
-    p += utf8_skip[static_cast<unsigned char>(*p)];
-  }
-
-  return (p - str);
-}
-
-// Third overload: stop when reaching str.size().
-//
-inline
-ustring::size_type utf8_byte_offset(const std::string& str, ustring::size_type offset)
-{
-  return utf8_byte_offset(str.data(), offset, str.size());
-}
-
-// Takes UTF-8 character offset and count in ci and cn.
-// Returns the byte offset and count in i and n.
-//
-struct Utf8SubstrBounds
-{
-  ustring::size_type i;
-  ustring::size_type n;
-
-  Utf8SubstrBounds(const std::string& str, ustring::size_type ci, ustring::size_type cn)
-  :
-    i (utf8_byte_offset(str, ci)),
-    n (ustring::npos)
-  {
-    if(i != ustring::npos)
-      n = utf8_byte_offset(str.data() + i, cn, str.size() - i);
-  }
-};
-
-// Converts byte offset to UTF-8 character offset.
-inline
-ustring::size_type utf8_char_offset(const std::string& str, ustring::size_type offset)
-{
-  if(offset == ustring::npos)
-    return ustring::npos;
-
-  const char *const pdata = str.data();
-  return g_utf8_pointer_to_offset(pdata, pdata + offset);
-}
-
-
-// Helper to implement ustring::find_first_of() and find_first_not_of().
-// Returns the UTF-8 character offset, or ustring::npos if not found.
-//
-ustring::size_type utf8_find_first_of(const std::string& str, ustring::size_type offset,
-                                      const char* utf8_match, long utf8_match_size,
-                                      bool find_not_of)
-{
-  const ustring::size_type byte_offset = utf8_byte_offset(str, offset);
-  if(byte_offset == ustring::npos)
-    return ustring::npos;
-
-  long ucs4_match_size = 0;
-  const Glib::ScopedPtr<gunichar> ucs4_match
-      (g_utf8_to_ucs4_fast(utf8_match, utf8_match_size, &ucs4_match_size));
-
-  const gunichar *const match_begin = ucs4_match.get();
-  const gunichar *const match_end   = match_begin + ucs4_match_size;
-
-  const char *const str_begin = str.data();
-  const char *const str_end   = str_begin + str.size();
-
-  for(const char* pstr = str_begin + byte_offset;
-      pstr < str_end;
-      pstr = g_utf8_next_char(pstr))
-  {
-    const gunichar *const pfound = std::find(match_begin, match_end, g_utf8_get_char(pstr));
-
-    if((pfound != match_end) != find_not_of)
-      return offset;
-
-    ++offset;
-  }
-
-  return ustring::npos;
-}
-
-// Helper to implement ustring::find_last_of() and find_last_not_of().
-// Returns the UTF-8 character offset, or ustring::npos if not found.
-//
-ustring::size_type utf8_find_last_of(const std::string& str, ustring::size_type offset,
-                                     const char* utf8_match, long utf8_match_size,
-                                     bool find_not_of)
-{
-  long ucs4_match_size = 0;
-  const Glib::ScopedPtr<gunichar> ucs4_match
-      (g_utf8_to_ucs4_fast(utf8_match, utf8_match_size, &ucs4_match_size));
-
-  const gunichar *const match_begin = ucs4_match.get();
-  const gunichar *const match_end   = match_begin + ucs4_match_size;
-
-  const char *const str_begin = str.data();
-  const char* pstr = str_begin;
-
-  // Set pstr one byte beyond the actual start position.
-  const ustring::size_type byte_offset = utf8_byte_offset(str, offset);
-  pstr += (byte_offset < str.size()) ? byte_offset + 1 : str.size();
-
-  while(pstr > str_begin)
-  {
-    // Move to previous character.
-    do --pstr; while((*pstr & '\xC0') == '\x80');
-
-    const gunichar *const pfound = std::find(match_begin, match_end, g_utf8_get_char(pstr));
-
-    if((pfound != match_end) != find_not_of)
-      return g_utf8_pointer_to_offset(str_begin, pstr);
-  }
-
-  return ustring::npos;
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-#ifndef GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS
-// Initialize static member here, 
-// because the compiler did not allow us do it inline.
-const ustring::size_type ustring::npos = std::string::npos;
-#endif
-
-// We need our own version of g_utf8_get_char(), because the std::string
-// iterator is not necessarily a plain pointer (it's in fact not in GCC's
-// libstdc++-v3).  Copying the UTF-8 data into a temporary buffer isn't an
-// option since this operation is quite time critical.  The implementation
-// is quite different from g_utf8_get_char() -- both more generic and faster.
-//
-// By looking at the first byte of a UTF-8 character one can determine the
-// number of bytes used.  GLib offers the g_utf8_skip[] array for this purpose,
-// but accessing this global variable would introduce a function call to fetch
-// the Global Offset Table, plus two levels of indirection in order to read the
-// value.  Even worse, fetching the GOT is always done right at the start of
-// the function instead of the branch that actually uses the variable.
-//
-// Fortunately, there's a better way to get the byte count.  As this table
-// shows, there's a nice regular pattern in the UTF-8 encoding scheme:
-//
-// 0x00000000 - 0x0000007F: 0xxxxxxx
-// 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx
-// 0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
-// 0x00010000 - 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-// 0x00200000 - 0x03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-// 0x04000000 - 0x7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-//
-// Except for the single byte case, the number of leading 1-bits equals the
-// byte count.  All that is needed is to shift the first byte to the left
-// until bit 7 becomes 0.  Naturally, doing so requires a loop -- but since
-// we already have one, no additional cost is introduced.  This shifting can
-// further be combined with the computation of the bitmask needed to eliminate
-// the leading length bits, thus saving yet another register.
-//
-gunichar get_unichar_from_std_iterator(std::string::const_iterator pos)
-{
-  unsigned int result = static_cast<unsigned char>(*pos);
-
-  if((result & 0x80) != 0)
-  {
-    unsigned int mask = 0x40;
-
-    // This loop may look somewhat strange, but this happens to be the
-    // one variant g++ 3.3 generates optimum code for.  (In particular,
-    // the unconditional break avoids counterproductive loop alignment.)
-    for(++pos;; ++pos)
-    {
-      mask <<= 5;
-      const unsigned int c = static_cast<unsigned char>(*pos);
-      result = (result << 6) + c - 0x80;
-
-      if((result & mask) != 0)
-        continue;
-      break;
-    }
-
-    result &= --mask;
-  }
-
-  return result;
-}
-
-
-/**** Glib::ustring ********************************************************/
-
-ustring::ustring()
-:
-  string_ ()
-{}
-
-ustring::ustring(const ustring& other)
-:
-  string_ (other.string_)
-{}
-
-ustring::ustring(const ustring& src, ustring::size_type i, ustring::size_type n)
-:
-  string_ ()
-{
-  const Utf8SubstrBounds bounds (src.string_, i, n);
-  string_.assign(src.string_, bounds.i, bounds.n);
-}
-
-ustring::ustring(const char* src, ustring::size_type n)
-:
-  string_ (src, utf8_byte_offset(src, n))
-{}
-
-ustring::ustring(const char* src)
-:
-  string_ (src)
-{}
-
-ustring::ustring(ustring::size_type n, gunichar uc)
-:
-  string_ ()
-{
-  if(uc < 0x80)
-  {
-    // Optimize the probably most common case.
-    string_.assign(n, static_cast<char>(uc));
-  }
-  else
-  {
-    const UnicharToUtf8 conv (uc);
-    string_.reserve(n * conv.len);
-
-    for(; n > 0; --n)
-      string_.append(conv.buf, conv.len);
-  }
-}
-
-ustring::ustring(ustring::size_type n, char c)
-:
-  string_ (n, c)
-{}
-
-ustring::ustring(const std::string& src)
-:
-  string_ (src)
-{}
-
-ustring::~ustring()
-{}
-
-void ustring::swap(ustring& other)
-{
-  string_.swap(other.string_);
-}
-
-
-/**** Glib::ustring::operator=() *******************************************/
-
-ustring& ustring::operator=(const ustring& other)
-{
-  string_ = other.string_;
-  return *this;
-}
-
-ustring& ustring::operator=(const std::string& src)
-{
-  string_ = src;
-  return *this;
-}
-
-ustring& ustring::operator=(const char* src)
-{
-  string_ = src;
-  return *this;
-}
-
-ustring& ustring::operator=(gunichar uc)
-{
-  const UnicharToUtf8 conv (uc);
-  string_.assign(conv.buf, conv.len);
-  return *this;
-}
-
-ustring& ustring::operator=(char c)
-{
-  string_ = c;
-  return *this;
-}
-
-
-/**** Glib::ustring::assign() **********************************************/
-
-ustring& ustring::assign(const ustring& src)
-{
-  string_ = src.string_;
-  return *this;
-}
-
-ustring& ustring::assign(const ustring& src, ustring::size_type i, ustring::size_type n)
-{
-  const Utf8SubstrBounds bounds (src.string_, i, n);
-  string_.assign(src.string_, bounds.i, bounds.n);
-  return *this;
-}
-
-ustring& ustring::assign(const char* src, ustring::size_type n)
-{
-  string_.assign(src, utf8_byte_offset(src, n));
-  return *this;
-}
-
-ustring& ustring::assign(const char* src)
-{
-  string_ = src;
-  return *this;
-}
-
-ustring& ustring::assign(ustring::size_type n, gunichar uc)
-{
-  ustring temp (n, uc);
-  string_.swap(temp.string_);
-  return *this;
-}
-
-ustring& ustring::assign(ustring::size_type n, char c)
-{
-  string_.assign(n, c);
-  return *this;
-}
-
-
-/**** Glib::ustring::operator+=() ******************************************/
-
-ustring& ustring::operator+=(const ustring& src)
-{
-  string_ += src.string_;
-  return *this;
-}
-
-ustring& ustring::operator+=(const char* src)
-{
-  string_ += src;
-  return *this;
-}
-
-ustring& ustring::operator+=(gunichar uc)
-{
-  const UnicharToUtf8 conv (uc);
-  string_.append(conv.buf, conv.len);
-  return *this;
-}
-
-ustring& ustring::operator+=(char c)
-{
-  string_ += c;
-  return *this;
-}
-
-
-/**** Glib::ustring::push_back() *******************************************/
-
-void ustring::push_back(gunichar uc)
-{
-  const UnicharToUtf8 conv (uc);
-  string_.append(conv.buf, conv.len);
-}
-
-void ustring::push_back(char c)
-{
-  string_ += c;
-}
-
-
-/**** Glib::ustring::append() **********************************************/
-
-ustring& ustring::append(const ustring& src)
-{
-  string_ += src.string_;
-  return *this;
-}
-
-ustring& ustring::append(const ustring& src, ustring::size_type i, ustring::size_type n)
-{
-  const Utf8SubstrBounds bounds (src.string_, i, n);
-  string_.append(src.string_, bounds.i, bounds.n);
-  return *this;
-}
-
-ustring& ustring::append(const char* src, ustring::size_type n)
-{
-  string_.append(src, utf8_byte_offset(src, n));
-  return *this;
-}
-
-ustring& ustring::append(const char* src)
-{
-  string_ += src;
-  return *this;
-}
-
-ustring& ustring::append(ustring::size_type n, gunichar uc)
-{
-  string_.append(ustring(n, uc).string_);
-  return *this;
-}
-
-ustring& ustring::append(ustring::size_type n, char c)
-{
-  string_.append(n, c);
-  return *this;
-}
-
-
-/**** Glib::ustring::insert() **********************************************/
-
-ustring& ustring::insert(ustring::size_type i, const ustring& src)
-{
-  string_.insert(utf8_byte_offset(string_, i), src.string_);
-  return *this;
-}
-
-ustring& ustring::insert(ustring::size_type i, const ustring& src,
-                         ustring::size_type i2, ustring::size_type n)
-{
-  const Utf8SubstrBounds bounds2 (src.string_, i2, n);
-  string_.insert(utf8_byte_offset(string_, i), src.string_, bounds2.i, bounds2.n);
-  return *this;
-}
-
-ustring& ustring::insert(ustring::size_type i, const char* src, ustring::size_type n)
-{
-  string_.insert(utf8_byte_offset(string_, i), src, utf8_byte_offset(src, n));
-  return *this;
-}
-
-ustring& ustring::insert(ustring::size_type i, const char* src)
-{
-  string_.insert(utf8_byte_offset(string_, i), src);
-  return *this;
-}
-
-ustring& ustring::insert(ustring::size_type i, ustring::size_type n, gunichar uc)
-{
-  string_.insert(utf8_byte_offset(string_, i), ustring(n, uc).string_);
-  return *this;
-}
-
-ustring& ustring::insert(ustring::size_type i, ustring::size_type n, char c)
-{
-  string_.insert(utf8_byte_offset(string_, i), n, c);
-  return *this;
-}
-
-ustring::iterator ustring::insert(ustring::iterator p, gunichar uc)
-{
-  const size_type offset = p.base() - string_.begin();
-  const UnicharToUtf8 conv (uc);
-  string_.insert(offset, conv.buf, conv.len);
-  return iterator(string_.begin() + offset);
-}
-
-ustring::iterator ustring::insert(ustring::iterator p, char c)
-{
-  return iterator(string_.insert(p.base(), c));
-}
-
-void ustring::insert(ustring::iterator p, ustring::size_type n, gunichar uc)
-{
-  string_.insert(p.base() - string_.begin(), ustring(n, uc).string_);
-}
-
-void ustring::insert(ustring::iterator p, ustring::size_type n, char c)
-{
-  string_.insert(p.base(), n, c);
-}
-
-
-/**** Glib::ustring::replace() *********************************************/
-
-ustring& ustring::replace(ustring::size_type i, ustring::size_type n, const ustring& src)
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  string_.replace(bounds.i, bounds.n, src.string_);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::size_type i, ustring::size_type n,
-                          const ustring& src, ustring::size_type i2, ustring::size_type n2)
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  const Utf8SubstrBounds bounds2 (src.string_, i2, n2);
-  string_.replace(bounds.i, bounds.n, src.string_, bounds2.i, bounds2.n);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::size_type i, ustring::size_type n,
-                          const char* src, ustring::size_type n2)
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  string_.replace(bounds.i, bounds.n, src, utf8_byte_offset(src, n2));
-  return *this;
-}
-
-ustring& ustring::replace(ustring::size_type i, ustring::size_type n, const char* src)
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  string_.replace(bounds.i, bounds.n, src);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::size_type i, ustring::size_type n,
-                          ustring::size_type n2, gunichar uc)
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  string_.replace(bounds.i, bounds.n, ustring(n2, uc).string_);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::size_type i, ustring::size_type n,
-                          ustring::size_type n2, char c)
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  string_.replace(bounds.i, bounds.n, n2, c);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::iterator pbegin, ustring::iterator pend, const ustring& src)
-{
-  string_.replace(pbegin.base(), pend.base(), src.string_);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::iterator pbegin, ustring::iterator pend,
-                          const char* src, ustring::size_type n)
-{
-  string_.replace(pbegin.base(), pend.base(), src, utf8_byte_offset(src, n));
-  return *this;
-}
-
-ustring& ustring::replace(ustring::iterator pbegin, ustring::iterator pend, const char* src)
-{
-  string_.replace(pbegin.base(), pend.base(), src);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::iterator pbegin, ustring::iterator pend,
-                          ustring::size_type n, gunichar uc)
-{
-  string_.replace(pbegin.base(), pend.base(), ustring(n, uc).string_);
-  return *this;
-}
-
-ustring& ustring::replace(ustring::iterator pbegin, ustring::iterator pend,
-                          ustring::size_type n, char c)
-{
-  string_.replace(pbegin.base(), pend.base(), n, c);
-  return *this;
-}
-
-
-/**** Glib::ustring::erase() ***********************************************/
-
-void ustring::clear()
-{
-  string_.erase();
-}
-
-ustring& ustring::erase(ustring::size_type i, ustring::size_type n)
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  string_.erase(bounds.i, bounds.n);
-  return *this;
-}
-
-ustring& ustring::erase()
-{
-  string_.erase();
-  return *this;
-}
-
-ustring::iterator ustring::erase(ustring::iterator p)
-{
-  return iterator(string_.erase(p.base()));
-}
-
-ustring::iterator ustring::erase(ustring::iterator pbegin, ustring::iterator pend)
-{
-  return iterator(string_.erase(pbegin.base(), pend.base()));
-}
-
-
-/**** Glib::ustring::compare() *********************************************/
-
-int ustring::compare(const ustring& rhs) const
-{
-  return g_utf8_collate(string_.c_str(), rhs.string_.c_str());
-}
-
-int ustring::compare(const char* rhs) const
-{
-  return g_utf8_collate(string_.c_str(), rhs);
-}
-
-int ustring::compare(ustring::size_type i, ustring::size_type n, const ustring& rhs) const
-{
-  return ustring(*this, i, n).compare(rhs);
-}
-
-int ustring::compare(ustring::size_type i, ustring::size_type n,
-                     const ustring& rhs, ustring::size_type i2, ustring::size_type n2) const
-{
-  return ustring(*this, i, n).compare(ustring(rhs, i2, n2));
-}
-
-int ustring::compare(ustring::size_type i, ustring::size_type n,
-                     const char* rhs, ustring::size_type n2) const
-{
-  return ustring(*this, i, n).compare(ustring(rhs, n2));
-}
-
-int ustring::compare(ustring::size_type i, ustring::size_type n, const char* rhs) const
-{
-  return ustring(*this, i, n).compare(rhs);
-}
-
-
-/**** Glib::ustring -- index access ****************************************/
-
-ustring::value_type ustring::operator[](ustring::size_type i) const
-{
-  return g_utf8_get_char(g_utf8_offset_to_pointer(string_.data(), i));
-}
-
-ustring::value_type ustring::at(ustring::size_type i) const
-{
-  const size_type byte_offset = utf8_byte_offset(string_, i);
-
-  // Throws std::out_of_range if the index is invalid.
-  return g_utf8_get_char(&string_.at(byte_offset));
-}
-
-
-/**** Glib::ustring -- iterator access *************************************/
-
-ustring::iterator ustring::begin()
-{
-  return iterator(string_.begin());
-}
-
-ustring::iterator ustring::end()
-{
-  return iterator(string_.end());
-}
-
-ustring::const_iterator ustring::begin() const
-{
-  return const_iterator(string_.begin());
-}
-
-ustring::const_iterator ustring::end() const
-{
-  return const_iterator(string_.end());
-}
-
-ustring::reverse_iterator ustring::rbegin()
-{
-  return reverse_iterator(iterator(string_.end()));
-}
-
-ustring::reverse_iterator ustring::rend()
-{
-  return reverse_iterator(iterator(string_.begin()));
-}
-
-ustring::const_reverse_iterator ustring::rbegin() const
-{
-  return const_reverse_iterator(const_iterator(string_.end()));
-}
-
-ustring::const_reverse_iterator ustring::rend() const
-{
-  return const_reverse_iterator(const_iterator(string_.begin()));
-}
-
-
-/**** Glib::ustring::find() ************************************************/
-
-ustring::size_type ustring::find(const ustring& str, ustring::size_type i) const
-{
-  return utf8_char_offset(string_, string_.find(str.string_, utf8_byte_offset(string_, i)));
-}
-
-ustring::size_type ustring::find(const char* str, ustring::size_type i, ustring::size_type n) const
-{
-  return utf8_char_offset(string_, string_.find(str, utf8_byte_offset(string_, i),
-                                                     utf8_byte_offset(str, n)));
-}
-
-ustring::size_type ustring::find(const char* str, ustring::size_type i) const
-{
-  return utf8_char_offset(string_, string_.find(str, utf8_byte_offset(string_, i)));
-}
-
-ustring::size_type ustring::find(gunichar uc, ustring::size_type i) const
-{
-  const UnicharToUtf8 conv (uc);
-  return utf8_char_offset(string_, string_.find(conv.buf, utf8_byte_offset(string_, i), conv.len));
-}
-
-ustring::size_type ustring::find(char c, ustring::size_type i) const
-{
-  return utf8_char_offset(string_, string_.find(c, utf8_byte_offset(string_, i)));
-}
-
-
-/**** Glib::ustring::rfind() ***********************************************/
-
-ustring::size_type ustring::rfind(const ustring& str, ustring::size_type i) const
-{
-  return utf8_char_offset(string_, string_.rfind(str.string_, utf8_byte_offset(string_, i)));
-}
-
-ustring::size_type ustring::rfind(const char* str, ustring::size_type i,
-                                  ustring::size_type n) const
-{
-  return utf8_char_offset(string_, string_.rfind(str, utf8_byte_offset(string_, i),
-                                                      utf8_byte_offset(str, n)));
-}
-
-ustring::size_type ustring::rfind(const char* str, ustring::size_type i) const
-{
-  return utf8_char_offset(string_, string_.rfind(str, utf8_byte_offset(string_, i)));
-}
-
-ustring::size_type ustring::rfind(gunichar uc, ustring::size_type i) const
-{
-  const UnicharToUtf8 conv (uc);
-  return utf8_char_offset(string_, string_.rfind(conv.buf, utf8_byte_offset(string_, i), conv.len));
-}
-
-ustring::size_type ustring::rfind(char c, ustring::size_type i) const
-{
-  return utf8_char_offset(string_, string_.rfind(c, utf8_byte_offset(string_, i)));
-}
-
-
-/**** Glib::ustring::find_first_of() ***************************************/
-
-ustring::size_type ustring::find_first_of(const ustring& match, ustring::size_type i) const
-{
-  return utf8_find_first_of(string_, i, match.string_.data(), match.string_.size(), false);
-}
-
-ustring::size_type ustring::find_first_of(const char* match,
-                                          ustring::size_type i, ustring::size_type n) const
-{
-  return utf8_find_first_of(string_, i, match, n, false);
-}
-
-ustring::size_type ustring::find_first_of(const char* match, ustring::size_type i) const
-{
-  return utf8_find_first_of(string_, i, match, -1, false);
-}
-
-ustring::size_type ustring::find_first_of(gunichar uc, ustring::size_type i) const
-{
-  return find(uc, i);
-}
-
-ustring::size_type ustring::find_first_of(char c, ustring::size_type i) const
-{
-  return find(c, i);
-}
-
-
-/**** Glib::ustring::find_last_of() ****************************************/
-
-ustring::size_type ustring::find_last_of(const ustring& match, ustring::size_type i) const
-{
-  return utf8_find_last_of(string_, i, match.string_.data(), match.string_.size(), false);
-}
-
-ustring::size_type ustring::find_last_of(const char* match,
-                                         ustring::size_type i, ustring::size_type n) const
-{
-  return utf8_find_last_of(string_, i, match, n, false);
-}
-
-ustring::size_type ustring::find_last_of(const char* match, ustring::size_type i) const
-{
-  return utf8_find_last_of(string_, i, match, -1, false);
-}
-
-ustring::size_type ustring::find_last_of(gunichar uc, ustring::size_type i) const
-{
-  return rfind(uc, i);
-}
-
-ustring::size_type ustring::find_last_of(char c, ustring::size_type i) const
-{
-  return rfind(c, i);
-}
-
-
-/**** Glib::ustring::find_first_not_of() ***********************************/
-
-ustring::size_type ustring::find_first_not_of(const ustring& match, ustring::size_type i) const
-{
-  return utf8_find_first_of(string_, i, match.string_.data(), match.string_.size(), true);
-}
-
-ustring::size_type ustring::find_first_not_of(const char* match,
-                                              ustring::size_type i, ustring::size_type n) const
-{
-  return utf8_find_first_of(string_, i, match, n, true);
-}
-
-ustring::size_type ustring::find_first_not_of(const char* match, ustring::size_type i) const
-{
-  return utf8_find_first_of(string_, i, match, -1, true);
-}
-
-// Unfortunately, all of the find_*_not_of() methods for single
-// characters need their own special implementation.
-//
-ustring::size_type ustring::find_first_not_of(gunichar uc, ustring::size_type i) const
-{
-  const size_type bi = utf8_byte_offset(string_, i);
-  if(bi != npos)
-  {
-    const char *const pbegin = string_.data();
-    const char *const pend   = pbegin + string_.size();
-
-    for(const char* p = pbegin + bi;
-        p < pend;
-        p = g_utf8_next_char(p), ++i)
-    {
-      if(g_utf8_get_char(p) != uc)
-        return i;
-    }
-  }
-  return npos;
-}
-
-ustring::size_type ustring::find_first_not_of(char c, ustring::size_type i) const
-{
-  const size_type bi = utf8_byte_offset(string_, i);
-  if(bi != npos)
-  {
-    const char *const pbegin = string_.data();
-    const char *const pend   = pbegin + string_.size();
-
-    for(const char* p = pbegin + bi;
-        p < pend;
-        p = g_utf8_next_char(p), ++i)
-    {
-      if(*p != c)
-        return i;
-    }
-  }
-  return npos;
-}
-
-
-/**** Glib::ustring::find_last_not_of() ************************************/
-
-ustring::size_type ustring::find_last_not_of(const ustring& match, ustring::size_type i) const
-{
-  return utf8_find_last_of(string_, i, match.string_.data(), match.string_.size(), true);
-}
-
-ustring::size_type ustring::find_last_not_of(const char* match,
-                                             ustring::size_type i, ustring::size_type n) const
-{
-  return utf8_find_last_of(string_, i, match, n, true);
-}
-
-ustring::size_type ustring::find_last_not_of(const char* match, ustring::size_type i) const
-{
-  return utf8_find_last_of(string_, i, match, -1, true);
-}
-
-// Unfortunately, all of the find_*_not_of() methods for single
-// characters need their own special implementation.
-//
-ustring::size_type ustring::find_last_not_of(gunichar uc, ustring::size_type i) const
-{
-  const char *const pbegin = string_.data();
-  const char *const pend   = pbegin + string_.size();
-  size_type i_cur   = 0;
-  size_type i_found = npos;
-
-  for(const char* p = pbegin;
-      p < pend && i_cur <= i;
-      p = g_utf8_next_char(p), ++i_cur)
-  {
-    if(g_utf8_get_char(p) != uc)
-      i_found = i_cur;
-  }
-  return i_found;
-}
-
-ustring::size_type ustring::find_last_not_of(char c, ustring::size_type i) const
-{
-  const char *const pbegin = string_.data();
-  const char *const pend   = pbegin + string_.size();
-  size_type i_cur   = 0;
-  size_type i_found = npos;
-
-  for(const char* p = pbegin;
-      p < pend && i_cur <= i;
-      p = g_utf8_next_char(p), ++i_cur)
-  {
-    if(*p != c)
-      i_found = i_cur;
-  }
-  return i_found;
-}
-
-
-/**** Glib::ustring -- get size and resize *********************************/
-
-bool ustring::empty() const
-{
-  return string_.empty();
-}
-
-ustring::size_type ustring::size() const
-{
-  const char *const pdata = string_.data();
-  return g_utf8_pointer_to_offset(pdata, pdata + string_.size());
-}
-
-ustring::size_type ustring::length() const
-{
-  const char *const pdata = string_.data();
-  return g_utf8_pointer_to_offset(pdata, pdata + string_.size());
-}
-
-ustring::size_type ustring::bytes() const
-{
-  return string_.size();
-}
-
-ustring::size_type ustring::capacity() const
-{
-  return string_.capacity();
-}
-
-ustring::size_type ustring::max_size() const
-{
-  return string_.max_size();
-}
-
-void ustring::resize(ustring::size_type n, gunichar uc)
-{
-  const size_type size_now = size();
-  if(n < size_now)
-    erase(n, npos);
-  else if(n > size_now)
-    append(n - size_now, uc);
-}
-
-void ustring::resize(ustring::size_type n, char c)
-{
-  const size_type size_now = size();
-  if(n < size_now)
-    erase(n, npos);
-  else if(n > size_now)
-    string_.append(n - size_now, c);
-}
-
-void ustring::reserve(ustring::size_type n)
-{
-  string_.reserve(n);
-}
-
-
-/**** Glib::ustring -- C string access *************************************/
-
-const char* ustring::data() const
-{
-  return string_.data();
-}
-
-const char* ustring::c_str() const
-{
-  return string_.c_str();
-}
-
-// Note that copy() requests UTF-8 character offsets as
-// parameters, but returns the number of copied bytes.
-//
-ustring::size_type ustring::copy(char* dest, ustring::size_type n, ustring::size_type i) const
-{
-  const Utf8SubstrBounds bounds (string_, i, n);
-  return string_.copy(dest, bounds.n, bounds.i);
-}
-
-
-/**** Glib::ustring -- UTF-8 utilities *************************************/
-
-bool ustring::validate() const
-{
-  return (g_utf8_validate(string_.data(), string_.size(), 0) != 0);
-}
-
-bool ustring::validate(ustring::iterator& first_invalid)
-{
-  const char *const pdata = string_.data();
-  const char* valid_end = pdata;
-  const int is_valid = g_utf8_validate(pdata, string_.size(), &valid_end);
-
-  first_invalid = iterator(string_.begin() + (valid_end - pdata));
-  return (is_valid != 0);
-}
-
-bool ustring::validate(ustring::const_iterator& first_invalid) const
-{
-  const char *const pdata = string_.data();
-  const char* valid_end = pdata;
-  const int is_valid = g_utf8_validate(pdata, string_.size(), &valid_end);
-
-  first_invalid = const_iterator(string_.begin() + (valid_end - pdata));
-  return (is_valid != 0);
-}
-
-bool ustring::is_ascii() const
-{
-  const char* p = string_.data();
-  const char *const pend = p + string_.size();
-
-  for(; p != pend; ++p)
-  {
-    if((*p & '\x80') != 0)
-      return false;
-  }
-
-  return true;
-}
-
-ustring ustring::normalize(NormalizeMode mode) const
-{
-  const ScopedPtr<char> buf (g_utf8_normalize(string_.data(), string_.size(),
-                                              static_cast<GNormalizeMode>(int(mode))));
-  return ustring(buf.get());
-}
-
-ustring ustring::uppercase() const
-{
-  const ScopedPtr<char> buf (g_utf8_strup(string_.data(), string_.size()));
-  return ustring(buf.get());
-}
-
-ustring ustring::lowercase() const
-{
-  const ScopedPtr<char> buf (g_utf8_strdown(string_.data(), string_.size()));
-  return ustring(buf.get());
-}
-
-ustring ustring::casefold() const
-{
-  const ScopedPtr<char> buf (g_utf8_casefold(string_.data(), string_.size()));
-  return ustring(buf.get());
-}
-
-std::string ustring::collate_key() const
-{
-  const ScopedPtr<char> buf (g_utf8_collate_key(string_.data(), string_.size()));
-  return std::string(buf.get());
-}
-
-std::string ustring::casefold_collate_key() const
-{
-  char *const casefold_buf = g_utf8_casefold(string_.data(), string_.size());
-  char *const key_buf      = g_utf8_collate_key(casefold_buf, -1);
-  g_free(casefold_buf);
-  return std::string(ScopedPtr<char>(key_buf).get());
-}
-
-
-/**** Glib::ustring::SequenceToString **************************************/
-
-ustring::SequenceToString<Glib::ustring::iterator,gunichar>
-  ::SequenceToString(Glib::ustring::iterator pbegin, Glib::ustring::iterator pend)
-:
-  std::string(pbegin.base(), pend.base())
-{}
-
-ustring::SequenceToString<Glib::ustring::const_iterator,gunichar>
-  ::SequenceToString(Glib::ustring::const_iterator pbegin, Glib::ustring::const_iterator pend)
-:
-  std::string(pbegin.base(), pend.base())
-{}
-
-
-/**** Glib::ustring -- stream I/O operators ********************************/
-
-std::istream& operator>>(std::istream& is, Glib::ustring& utf8_string)
-{
-  std::string locale_string;
-  is >> locale_string;
-  utf8_string = Glib::locale_to_utf8(locale_string);
-  return is;
-}
-
-std::ostream& operator<<(std::ostream& os, const Glib::ustring& utf8_string)
-{
-  os << Glib::locale_from_utf8(utf8_string);
-  return os;
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/ustring.h b/libs/glibmm2/glibmm/ustring.h
deleted file mode 100644 (file)
index 86578b4..0000000
+++ /dev/null
@@ -1,997 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_USTRING_H
-#define _GLIBMM_USTRING_H
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gmacros.h>
-#include <glib/gunicode.h>
-#include <glibmm/unicode.h>
-
-#include <iosfwd>
-#include <iterator>
-#include <string>
-
-#include <glibmmconfig.h>
-GLIBMM_USING_STD(bidirectional_iterator_tag)
-GLIBMM_USING_STD(reverse_iterator)
-GLIBMM_USING_STD(string)
-GLIBMM_USING_STD(istream)
-GLIBMM_USING_STD(ostream)
-
-#ifdef GLIBMM_HAVE_STD_ITERATOR_TRAITS
-GLIBMM_USING_STD(iterator_traits)
-#else
-#include <cstddef> /* for ptrdiff_t */
-GLIBMM_USING_STD(random_access_iterator_tag)
-#endif
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#ifndef GLIBMM_HAVE_STD_ITERATOR_TRAITS
-
-template <class T>
-struct IteratorTraits
-{
-  typedef typename T::iterator_category iterator_category;
-  typedef typename T::value_type        value_type;
-  typedef typename T::difference_type   difference_type;
-  typedef typename T::pointer           pointer;
-  typedef typename T::reference         reference;
-};
-
-template <class T>
-struct IteratorTraits<T*>
-{
-  typedef std::random_access_iterator_tag iterator_category;
-  typedef T                               value_type;
-  typedef ptrdiff_t                       difference_type;
-  typedef T*                              pointer;
-  typedef T&                              reference;
-};
-
-template <class T>
-struct IteratorTraits<const T*>
-{
-  typedef std::random_access_iterator_tag iterator_category;
-  typedef T                               value_type;
-  typedef ptrdiff_t                       difference_type;
-  typedef const T*                        pointer;
-  typedef const T&                        reference;
-};
-
-#endif /* GLIBMM_HAVE_STD_ITERATOR_TRAITS */
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/** The iterator type of Glib::ustring.
- * Note this is not a random access iterator but a bidirectional one,
- * since all index operations need to iterate over the UTF-8 data.  Use
- * std::advance() to move to a certain position.  However, all of the
- * relational operators are available:
- * <tt>==&nbsp;!=&nbsp;<&nbsp;>&nbsp;<=&nbsp;>=</tt>
- *
- * A writeable iterator isn't provided because:  The number of bytes of
- * the old UTF-8 character and the new one to write could be different.
- * Therefore, any write operation would invalidate all other iterators
- * pointing into the same string.
- */
-template <class T>
-class ustring_Iterator
-{
-public:
-  typedef std::bidirectional_iterator_tag   iterator_category;
-  typedef gunichar                          value_type;
-  typedef std::string::difference_type      difference_type;
-  typedef value_type                        reference;
-  typedef void                              pointer;
-
-  inline ustring_Iterator();
-  inline ustring_Iterator(const ustring_Iterator<std::string::iterator>& other);
-
-  inline value_type operator*() const;
-
-  inline ustring_Iterator<T> &     operator++();
-  inline const ustring_Iterator<T> operator++(int);
-  inline ustring_Iterator<T> &     operator--();
-  inline const ustring_Iterator<T> operator--(int);
-
-  explicit inline ustring_Iterator(T pos);
-  inline T base() const;
-
-private:
-  T pos_;
-};
-
-
-/** Extract a UCS-4 character from UTF-8 data.
- * Convert a single UTF-8 (multibyte) character starting at @p pos to
- * a UCS-4 wide character.  This may read up to 6 bytes after the start
- * position, depending on the UTF-8 character width.  You have to make
- * sure the source contains at least one valid UTF-8 character.
- *
- * This is mainly used by the implementation of Glib::ustring::iterator,
- * but it might be useful as utility function if you prefer using
- * std::string even for UTF-8 encoding.
- */
-gunichar get_unichar_from_std_iterator(std::string::const_iterator pos) G_GNUC_PURE;
-
-
-/** Glib::ustring has much the same interface as std::string, but contains
- * %Unicode characters encoded as UTF-8.
- *
- * @par About UTF-8 and ASCII
- * @par
- * The standard character set ANSI_X3.4-1968&nbsp;-- more commonly known as
- * ASCII&nbsp;-- is a subset of UTF-8.  So, if you want to, you can use
- * Glib::ustring without even thinking about UTF-8.
- * @par
- * Whenever ASCII is mentioned in this manual, we mean the @em real ASCII
- * (i.e. as defined in ANSI_X3.4-1968), which contains only 7-bit characters.
- * Glib::ustring can @em not be used with ASCII-compatible extended 8-bit
- * charsets like ISO-8859-1.  It's a good idea to avoid string literals
- * containing non-ASCII characters (e.g. German umlauts) in source code,
- * or at least you should use UTF-8 literals.
- * @par
- * You can find a detailed UTF-8 and %Unicode FAQ here:
- * http://www.cl.cam.ac.uk/~mgk25/unicode.html
- *
- * @par Glib::ustring vs. std::string
- * @par
- * Glib::ustring has implicit type conversions to and from std::string.
- * These conversions do @em not convert to/from the current locale (see
- * Glib::locale_from_utf8() and Glib::locale_to_utf8() if you need that).  You
- * can always use std::string instead of Glib::ustring&nbsp;-- however, using
- * std::string with multi-byte characters is quite hard.  For instance,
- * <tt>std::string::operator[]</tt> might return a byte in the middle of a
- * character, and <tt>std::string::length()</tt> returns the number of bytes
- * rather than characters.  So don't do that without a good reason.
- * @par
- * In a perfect world the C++ Standard Library would contain a UTF-8 string
- * class.  Unfortunately, the C++ standard doesn't mention UTF-8 at all.  Note
- * that std::wstring is not a UTF-8 string class because it contains only
- * fixed-width characters (where width could be 32, 16, or even 8 bits).
- *
- * @par Glib::ustring and stream input/output
- * @par
- * The stream I/O operators, that is operator<<() and operator>>(), perform
- * implicit charset conversion to/from the current locale.  If that's not
- * what you intented (e.g. when writing to a configuration file that should
- * always be UTF-8 encoded) use ustring::raw() to override this behaviour.
- * @par
- * If you're using std::ostringstream to build strings for display in the
- * user interface, you must convert the result back to UTF-8 as shown below:
- * @code
- * std::ostringstream output;
- * output.imbue(std::locale("")); // use the user's locale for this stream
- * output << percentage << " % done";
- * label->set_text(Glib::locale_to_utf8(output.str()));
- * @endcode
- *
- * @par Implementation notes
- * @par
- * Glib::ustring does not inherit from std::string, because std::string was
- * intended to be a final class.  For instance, it does not have a virtual
- * destructor.  Also, a HAS-A relationship is more appropriate because
- * ustring can't just enhance the std::string interface.  Rather, it has to
- * reimplement the interface so that all operations are based on characters
- * instead of bytes.
- */
-class ustring
-{
-public:
-  typedef std::string::size_type                        size_type;
-  typedef std::string::difference_type                  difference_type;
-
-  typedef gunichar                                      value_type;
-  typedef gunichar &                                    reference;
-  typedef const gunichar &                              const_reference;
-
-  typedef ustring_Iterator<std::string::iterator>       iterator;
-  typedef ustring_Iterator<std::string::const_iterator> const_iterator;
-
-#ifndef GLIBMM_HAVE_SUN_REVERSE_ITERATOR
-
-  typedef std::reverse_iterator<iterator>               reverse_iterator;
-  typedef std::reverse_iterator<const_iterator>         const_reverse_iterator;
-
-#else
-
-  typedef std::reverse_iterator<iterator,
-                                iterator::iterator_category,
-                                iterator::value_type,
-                                iterator::reference,
-                                iterator::pointer,
-                                iterator::difference_type> reverse_iterator;
-  typedef std::reverse_iterator<const_iterator,
-                                const_iterator::iterator_category,
-                                const_iterator::value_type,
-                                const_iterator::reference,
-                                const_iterator::pointer,
-                                const_iterator::difference_type> const_reverse_iterator;
-
-#endif /* GLIBMM_HAVE_SUN_REVERSE_ITERATOR */
-
-#ifdef GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS
-  static const size_type npos = std::string::npos;
-#else
-  //The IRIX MipsPro compiler says "The indicated constant value is not known",
-  //so we need to initalize the static member data elsewhere.
-  static const size_type npos;
-#endif
-
-  /*! Default constructor, which creates an empty string.
-   */
-  ustring();
-  
-  ~ustring();
-
-  /*! Construct a ustring as a copy of another ustring.
-   * @param other A source string.
-   */
-  ustring(const ustring& other);
-
-  /*! Assign the value of another string to this string.
-   * @param other A source string.
-   */ 
-  ustring& operator=(const ustring& other);
-
-  /*! Swap contents with another string.
-   * @param other String to swap with.
-   */
-  void swap(ustring& other);
-
-  /*! Construct a ustring as a copy of another std::string.
-   * @param src A source <tt>std::string</tt> containing text encoded as UTF-8.
-   */
-  ustring(const std::string& src);
-
-  /*! Construct a ustring as a copy of a substring.
-   * @param src %Source ustring.
-   * @param i Index of first character to copy from.
-   * @param n Number of characters to copy (defaults to copying the remainder).
-   */
-  ustring(const ustring& src, size_type i, size_type n=npos);
-
-  /*! Construct a ustring as a partial copy of a C string.
-   * @param src %Source C string encoded as UTF-8.
-   * @param n Number of characters to copy.
-   */
-  ustring(const char* src, size_type n);
-
-  /*! Construct a ustring as a copy of a C string.
-   * @param src %Source C string encoded as UTF-8.
-   */
-  ustring(const char* src);
-
-  /*! Construct a ustring as multiple characters.
-   * @param n Number of characters.
-   * @param uc UCS-4 code point to use.
-   */  
-  ustring(size_type n, gunichar uc);
-
-  /*! Construct a ustring as multiple characters.
-   * @param n Number of characters.
-   * @param c ASCII character to use.
-   */  
-  ustring(size_type n, char c);
-
-  /*! Construct a ustring as a copy of a range.
-   * @param pbegin Start of range.
-   * @param pend End of range.
-   */  
-  template <class In> ustring(In pbegin, In pend);
-
-
-//! @name Assign new contents.
-//! @{
-
-  ustring& operator=(const std::string& src);
-  ustring& operator=(const char* src);
-  ustring& operator=(gunichar uc);
-  ustring& operator=(char c);
-
-  ustring& assign(const ustring& src);
-  ustring& assign(const ustring& src, size_type i, size_type n);
-  ustring& assign(const char* src, size_type n);
-  ustring& assign(const char* src);
-  ustring& assign(size_type n, gunichar uc);
-  ustring& assign(size_type n, char c);
-  template <class In> ustring& assign(In pbegin, In pend);
-
-//! @}
-//! @name Append to the string.
-//! @{
-
-  ustring& operator+=(const ustring& src);
-  ustring& operator+=(const char* src);
-  ustring& operator+=(gunichar uc);
-  ustring& operator+=(char c);
-  void push_back(gunichar uc);
-  void push_back(char c);
-
-  ustring& append(const ustring& src);
-  ustring& append(const ustring& src, size_type i, size_type n);
-  ustring& append(const char* src, size_type n);
-  ustring& append(const char* src);
-  ustring& append(size_type n, gunichar uc);
-  ustring& append(size_type n, char c);
-  template <class In> ustring& append(In pbegin, In pend);
-
-//! @}
-//! @name Insert into the string.
-//! @{
-
-  ustring& insert(size_type i, const ustring& src);
-  ustring& insert(size_type i, const ustring& src, size_type i2, size_type n);
-  ustring& insert(size_type i, const char* src, size_type n);
-  ustring& insert(size_type i, const char* src);
-  ustring& insert(size_type i, size_type n, gunichar uc);
-  ustring& insert(size_type i, size_type n, char c);
-
-  iterator insert(iterator p, gunichar uc);
-  iterator insert(iterator p, char c);
-  void     insert(iterator p, size_type n, gunichar uc);
-  void     insert(iterator p, size_type n, char c);
-  template <class In> void insert(iterator p, In pbegin, In pend);
-
-//! @}
-//! @name Replace sub-strings.
-//! @{
-
-  ustring& replace(size_type i, size_type n, const ustring& src);
-  ustring& replace(size_type i, size_type n, const ustring& src, size_type i2, size_type n2);
-  ustring& replace(size_type i, size_type n, const char* src, size_type n2);
-  ustring& replace(size_type i, size_type n, const char* src);
-  ustring& replace(size_type i, size_type n, size_type n2, gunichar uc);
-  ustring& replace(size_type i, size_type n, size_type n2, char c);
-
-  ustring& replace(iterator pbegin, iterator pend, const ustring& src);
-  ustring& replace(iterator pbegin, iterator pend, const char* src, size_type n);
-  ustring& replace(iterator pbegin, iterator pend, const char* src);
-  ustring& replace(iterator pbegin, iterator pend, size_type n, gunichar uc);
-  ustring& replace(iterator pbegin, iterator pend, size_type n, char c);
-  template <class In> ustring& replace(iterator pbegin, iterator pend, In pbegin2, In pend2);
-
-//! @}
-//! @name Erase sub-strings.
-//! @{
-
-  void clear();
-  ustring& erase(size_type i, size_type n=npos);
-  ustring& erase();
-  iterator erase(iterator p);
-  iterator erase(iterator pbegin, iterator pend);
-
-//! @}
-//! @name Compare and collate.
-//! @{
-
-  int compare(const ustring& rhs) const;
-  int compare(const char* rhs)    const;
-  int compare(size_type i, size_type n, const ustring& rhs) const;
-  int compare(size_type i, size_type n, const ustring& rhs, size_type i2, size_type n2) const;
-  int compare(size_type i, size_type n, const char* rhs, size_type n2) const;
-  int compare(size_type i, size_type n, const char* rhs) const;
-
-  /*! Create a unique sorting key for the UTF-8 string.  If you need to
-   * compare UTF-8 strings regularly, e.g. for sorted containers such as
-   * <tt>std::set<></tt>, you should consider creating a collate key first
-   * and compare this key instead of the actual string.
-   *
-   * The ustring::compare() methods as well as the relational operators
-   * <tt>==&nbsp;!=&nbsp;<&nbsp;>&nbsp;<=&nbsp;>=</tt> are quite costly
-   * because they have to deal with %Unicode and the collation rules defined by
-   * the current locale.  Converting both operands to UCS-4 is just the first
-   * of several costly steps involved when comparing ustrings.  So be careful.
-   */
-  std::string collate_key() const;
-
-  /*! Create a unique key for the UTF-8 string that can be used for caseless
-   * sorting.  <tt>ustr.casefold_collate_key()</tt> results in the same string
-   * as <tt>ustr.casefold().collate_key()</tt>, but the former is likely more
-   * efficient.
-   */
-  std::string casefold_collate_key() const;
-
-//! @}
-//! @name Extract characters and sub-strings.
-//! @{
-
-  /*! No reference return; use replace() to write characters. */
-  value_type operator[](size_type i) const;
-
-  /*! No reference return; use replace() to write characters. @throw std::out_of_range */
-  value_type at(size_type i) const;
-
-  inline ustring substr(size_type i=0, size_type n=npos) const;
-
-//! @}
-//! @name Access a sequence of characters.
-//! @{
-
-  iterator begin();
-  iterator end();
-  const_iterator begin() const;
-  const_iterator end()   const;
-  reverse_iterator rbegin();
-  reverse_iterator rend();
-  const_reverse_iterator rbegin() const;
-  const_reverse_iterator rend()   const;
-
-//! @}
-//! @name Find sub-strings.
-//! @{
-
-  size_type find(const ustring& str, size_type i=0) const;
-  size_type find(const char* str, size_type i, size_type n) const;
-  size_type find(const char* str, size_type i=0) const;
-  size_type find(gunichar uc, size_type i=0) const;
-  size_type find(char c, size_type i=0) const;
-
-  size_type rfind(const ustring& str, size_type i=npos) const;
-  size_type rfind(const char* str, size_type i, size_type n) const;
-  size_type rfind(const char* str, size_type i=npos) const;
-  size_type rfind(gunichar uc, size_type i=npos) const;
-  size_type rfind(char c, size_type i=npos) const;
-
-//! @}
-//! @name Match against a set of characters.
-//! @{
-
-  size_type find_first_of(const ustring& match, size_type i=0) const;
-  size_type find_first_of(const char* match, size_type i, size_type n) const;
-  size_type find_first_of(const char* match, size_type i=0) const;
-  size_type find_first_of(gunichar uc, size_type i=0) const;
-  size_type find_first_of(char c, size_type i=0) const;
-
-  size_type find_last_of(const ustring& match, size_type i=npos) const;
-  size_type find_last_of(const char* match, size_type i, size_type n) const;
-  size_type find_last_of(const char* match, size_type i=npos) const;
-  size_type find_last_of(gunichar uc, size_type i=npos) const;
-  size_type find_last_of(char c, size_type i=npos) const;
-
-  size_type find_first_not_of(const ustring& match, size_type i=0) const;
-  size_type find_first_not_of(const char* match, size_type i, size_type n) const;
-  size_type find_first_not_of(const char* match, size_type i=0) const;
-  size_type find_first_not_of(gunichar uc, size_type i=0) const;
-  size_type find_first_not_of(char c, size_type i=0) const;
-
-  size_type find_last_not_of(const ustring& match, size_type i=npos) const;
-  size_type find_last_not_of(const char* match, size_type i, size_type n) const;
-  size_type find_last_not_of(const char* match, size_type i=npos) const;
-  size_type find_last_not_of(gunichar uc, size_type i=npos) const;
-  size_type find_last_not_of(char c, size_type i=npos) const;
-
-//! @}
-//! @name Retrieve the string's size.
-//! @{
-
-  /** Returns true if the string is empty. Equivalent to *this == "".
-   * @result Whether the string is empty.
-   */
-  bool empty()  const;
-
-  /** Returns the number of characters in the string, not including any null-termination.
-   * @result The number of UTF-8 characters.
-   *
-   * @see bytes(), empty() 
-   */
-  size_type size()   const;
-
-  //We have length() as well as size(), because std::string has both.
-
-  /** This is the same as size().
-   */
-  size_type length() const;
-  
-  /** Returns the number of bytes in the string, not including any null-termination.
-   * @result The number of bytes.
-   *
-   * @see size(), empty()
-   */
-  size_type bytes()  const;
-
-//! @}
-//! @name Change the string's size.
-//! @{
-
-  void resize(size_type n, gunichar uc);
-  void resize(size_type n, char c='\0');
-
-//! @}
-//! @name Control the allocated memory.
-//! @{
-
-  size_type capacity() const;
-  size_type max_size() const;
-  void reserve(size_type n=0);
-
-//! @}
-//! @name Get a per-byte representation of the string.
-//! @{
-
-  inline operator std::string() const; // e.g. std::string str = ustring();
-  inline const std::string& raw() const;
-
-  // Not necessarily an ASCII char*. Use g_utf8_*() where necessary.
-  const char* data()  const;
-  const char* c_str() const;
-
-  /*! @return Number of copied @em bytes, not characters. */
-  size_type copy(char* dest, size_type n, size_type i=0) const;
-
-//! @}
-//! @name UTF-8 utilities.
-//! @{
-
-  /*! Check whether the string is valid UTF-8. */
-  bool validate() const;
-
-  /*! Check whether the string is valid UTF-8. */
-  bool validate(iterator& first_invalid);
-
-  /*! Check whether the string is valid UTF-8. */
-  bool validate(const_iterator& first_invalid) const;
-
-  /*! Check whether the string is plain 7-bit ASCII. @par
-   * Unlike any other ustring method, is_ascii() is safe to use on invalid
-   * UTF-8 strings.  If the string isn't valid UTF-8, it cannot be valid
-   * ASCII either, therefore is_ascii() will just return @c false then.
-   * @return Whether the string contains only ASCII characters.
-   */
-  bool is_ascii() const;
-
-  /*! "Normalize" the %Unicode character representation of the string. */
-  ustring normalize(NormalizeMode mode = NORMALIZE_DEFAULT_COMPOSE) const;
-
-//! @}
-//! @name Character case conversion.
-//! @{
-
-  /*! Returns a new UTF-8 string with all characters characters converted to
-   * their lowercase equivalent, while honoring the current locale.  The
-   * resulting string may change in the number of bytes as well as in the
-   * number of characters.  For instance, the German sharp&nbsp;s
-   * <tt>&quot;&szlig;&quot;</tt> will be replaced by two characters
-   * <tt>"SS"</tt> because there is no capital <tt>&quot;&szlig;&quot;</tt>.
-   */
-  ustring uppercase() const;
-
-  /*! Returns a new UTF-8 string with all characters characters converted to
-   * their lowercase equivalent, while honoring the current locale.  The
-   * resulting string may change in the number of bytes as well as in the
-   * number of characters.
-   */
-  ustring lowercase() const;
-
-  /*! Returns a caseless representation of the UTF-8 string.  The resulting
-   * string doesn't correspond to any particular case, therefore the result
-   * is only useful to compare strings and should never be displayed to the
-   * user.
-   */
-  ustring casefold() const;
-
-//! @}
-
-private:
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#ifdef GLIBMM_HAVE_STD_ITERATOR_TRAITS
-  template <class In, class ValueType = typename std::iterator_traits<In>::value_type>
-#else
-  template <class In, class ValueType = typename Glib::IteratorTraits<In>::value_type>
-#endif
-  struct SequenceToString;
-  
-  //The Tru64 compiler needs these partial specializations to be declared here,
-  //as well as defined later. That's probably correct. murrayc.
-  template <class In>
-  struct SequenceToString<In, char>;
-
-  template <class In>
-  struct SequenceToString<In, gunichar>;
-  
-  /*
-  template <>
-  struct ustring::SequenceToString<Glib::ustring::iterator, gunichar>;
-
-  template <>
-  struct ustring::SequenceToString<Glib::ustring::const_iterator, gunichar>;
-  */
-  
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-  std::string string_;
-};
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-template <class In, class ValueType>
-struct ustring::SequenceToString
-{};
-
-template <class In>
-struct ustring::SequenceToString<In, char> : public std::string
-{
-  SequenceToString(In pbegin, In pend);
-};
-
-template <class In>
-struct ustring::SequenceToString<In, gunichar> : public std::string
-{
-  SequenceToString(In pbegin, In pend);
-};
-
-template <>
-struct ustring::SequenceToString<Glib::ustring::iterator, gunichar> : public std::string
-{
-  SequenceToString(Glib::ustring::iterator pbegin, Glib::ustring::iterator pend);
-};
-
-template <>
-struct ustring::SequenceToString<Glib::ustring::const_iterator, gunichar> : public std::string
-{
-  SequenceToString(Glib::ustring::const_iterator pbegin, Glib::ustring::const_iterator pend);
-};
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/** Stream input operator.
- * @relates Glib::ustring
- * @throw Glib::ConvertError
- */
-std::istream& operator>>(std::istream& is, Glib::ustring& utf8_string);
-
-/** Stream output operator.
- * @relates Glib::ustring
- * @throw Glib::ConvertError
- */
-std::ostream& operator<<(std::ostream& os, const Glib::ustring& utf8_string);
-
-
-/***************************************************************************/
-/*  Inline implementation                                                  */
-/***************************************************************************/
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/**** Glib::ustring_Iterator<> *********************************************/
-
-template <class T> inline
-ustring_Iterator<T>::ustring_Iterator(T pos)
-:
-  pos_ (pos)
-{}
-
-template <class T> inline
-T ustring_Iterator<T>::base() const
-{
-  return pos_;
-}
-
-template <class T> inline
-ustring_Iterator<T>::ustring_Iterator()
-:
-  pos_ ()
-{}
-
-template <class T> inline
-ustring_Iterator<T>::ustring_Iterator(const ustring_Iterator<std::string::iterator>& other)
-:
-  pos_ (other.base())
-{}
-
-template <class T> inline
-typename ustring_Iterator<T>::value_type ustring_Iterator<T>::operator*() const
-{
-  return Glib::get_unichar_from_std_iterator(pos_);
-}
-
-template <class T> inline
-ustring_Iterator<T>& ustring_Iterator<T>::operator++()
-{
-  pos_ += g_utf8_skip[static_cast<unsigned char>(*pos_)];
-  return *this;
-}
-
-template <class T> inline
-const ustring_Iterator<T> ustring_Iterator<T>::operator++(int)
-{
-  const ustring_Iterator<T> temp (*this);
-  this->operator++();
-  return temp;
-}
-
-template <class T> inline
-ustring_Iterator<T>& ustring_Iterator<T>::operator--()
-{
-  do --pos_; while((*pos_ & '\xC0') == '\x80');
-  return *this;
-}
-
-template <class T> inline
-const ustring_Iterator<T> ustring_Iterator<T>::operator--(int)
-{
-  const ustring_Iterator<T> temp (*this);
-  this->operator--();
-  return temp;
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator==(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
-{
-  return (lhs.base() == rhs.base());
-}
-
-/** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator!=(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
-{
-  return (lhs.base() != rhs.base());
-}
-
-/** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator<(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
-{
-  return (lhs.base() < rhs.base());
-}
-
-/** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator>(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
-{
-  return (lhs.base() > rhs.base());
-}
-
-/** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator<=(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
-{
-  return (lhs.base() <= rhs.base());
-}
-
-/** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator>=(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
-{
-  return (lhs.base() >= rhs.base());
-}
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/**** Glib::ustring::SequenceToString **************************************/
-
-template <class In>
-ustring::SequenceToString<In,char>::SequenceToString(In pbegin, In pend)
-:
-  std::string(pbegin, pend)
-{}
-
-template <class In>
-ustring::SequenceToString<In,gunichar>::SequenceToString(In pbegin, In pend)
-{
-  char utf8_buf[6]; // stores a single UTF-8 character
-
-  for(; pbegin != pend; ++pbegin)
-  {
-    const std::string::size_type utf8_len = g_unichar_to_utf8(*pbegin, utf8_buf);
-    this->append(utf8_buf, utf8_len);
-  }
-}
-
-
-/**** Glib::ustring ********************************************************/
-
-template <class In>
-ustring::ustring(In pbegin, In pend)
-:
-  string_ (Glib::ustring::SequenceToString<In>(pbegin, pend))
-{}
-
-template <class In>
-ustring& ustring::assign(In pbegin, In pend)
-{
-  Glib::ustring::SequenceToString<In> temp_string (pbegin, pend);
-  string_.swap(temp_string); // constant-time operation
-  return *this;
-}
-
-template <class In>
-ustring& ustring::append(In pbegin, In pend)
-{
-  string_.append(Glib::ustring::SequenceToString<In>(pbegin, pend));
-  return *this;
-}
-
-template <class In>
-void ustring::insert(ustring::iterator p, In pbegin, In pend)
-{
-  string_.insert(p.base(), Glib::ustring::SequenceToString<In>(pbegin, pend));
-}
-
-template <class In>
-ustring& ustring::replace(ustring::iterator pbegin, ustring::iterator pend, In pbegin2, In pend2)
-{
-  string_.replace(
-      pbegin.base(), pend.base(),
-      Glib::ustring::SequenceToString<In>(pbegin2, pend2));
-  return *this;
-}
-
-// The ustring methods substr() and operator std::string() are inline,
-// so that the compiler has a fair chance to optimize the copy ctor away.
-
-inline
-ustring ustring::substr(ustring::size_type i, ustring::size_type n) const
-{
-  return ustring(*this, i, n);
-}
-
-inline
-ustring::operator std::string() const
-{
-  return string_;
-}
-
-inline
-const std::string& ustring::raw() const
-{
-  return string_;
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/** @relates Glib::ustring */
-inline
-void swap(ustring& lhs, ustring& rhs)
-{
-  lhs.swap(rhs);
-}
-
-
-/**** Glib::ustring -- comparison operators ********************************/
-
-/** @relates Glib::ustring */
-inline bool operator==(const ustring& lhs, const ustring& rhs)
-  { return (lhs.compare(rhs) == 0); }
-
-/** @relates Glib::ustring */
-inline bool operator==(const ustring& lhs, const char* rhs)
-  { return (lhs.compare(rhs) == 0); }
-
-/** @relates Glib::ustring */
-inline bool operator==(const char* lhs, const ustring& rhs)
-  { return (rhs.compare(lhs) == 0); }
-
-
-/** @relates Glib::ustring */
-inline bool operator!=(const ustring& lhs, const ustring& rhs)
-  { return (lhs.compare(rhs) != 0); }
-
-/** @relates Glib::ustring */
-inline bool operator!=(const ustring& lhs, const char* rhs)
-  { return (lhs.compare(rhs) != 0); }
-
-/** @relates Glib::ustring */
-inline bool operator!=(const char* lhs, const ustring& rhs)
-  { return (rhs.compare(lhs) != 0); }
-
-
-/** @relates Glib::ustring */
-inline bool operator<(const ustring& lhs, const ustring& rhs)
-  { return (lhs.compare(rhs) < 0); }
-
-/** @relates Glib::ustring */
-inline bool operator<(const ustring& lhs, const char* rhs)
-  { return (lhs.compare(rhs) < 0); }
-
-/** @relates Glib::ustring */
-inline bool operator<(const char* lhs, const ustring& rhs)
-  { return (rhs.compare(lhs) > 0); }
-
-
-/** @relates Glib::ustring */
-inline bool operator>(const ustring& lhs, const ustring& rhs)
-  { return (lhs.compare(rhs) > 0); }
-
-/** @relates Glib::ustring */
-inline bool operator>(const ustring& lhs, const char* rhs)
-  { return (lhs.compare(rhs) > 0); }
-
-/** @relates Glib::ustring */
-inline bool operator>(const char* lhs, const ustring& rhs)
-  { return (rhs.compare(lhs) < 0); }
-
-
-/** @relates Glib::ustring */
-inline bool operator<=(const ustring& lhs, const ustring& rhs)
-  { return (lhs.compare(rhs) <= 0); }
-
-/** @relates Glib::ustring */
-inline bool operator<=(const ustring& lhs, const char* rhs)
-  { return (lhs.compare(rhs) <= 0); }
-
-/** @relates Glib::ustring */
-inline bool operator<=(const char* lhs, const ustring& rhs)
-  { return (rhs.compare(lhs) >= 0); }
-
-
-/** @relates Glib::ustring */
-inline bool operator>=(const ustring& lhs, const ustring& rhs)
-  { return (lhs.compare(rhs) >= 0); }
-
-/** @relates Glib::ustring */
-inline bool operator>=(const ustring& lhs, const char* rhs)
-  { return (lhs.compare(rhs) >= 0); }
-
-/** @relates Glib::ustring */
-inline bool operator>=(const char* lhs, const ustring& rhs)
-  { return (rhs.compare(lhs) <= 0); }
-
-
-/**** Glib::ustring -- concatenation operators *****************************/
-
-/** @relates Glib::ustring */
-inline ustring operator+(const ustring& lhs, const ustring& rhs)
-  { ustring temp (lhs); temp += rhs; return temp; }
-
-/** @relates Glib::ustring */
-inline ustring operator+(const ustring& lhs, const char* rhs)
-  { ustring temp (lhs); temp += rhs; return temp; }
-
-/** @relates Glib::ustring */
-inline ustring operator+(const char* lhs, const ustring& rhs)
-  { ustring temp (lhs); temp += rhs; return temp; }
-
-/** @relates Glib::ustring */
-inline ustring operator+(const ustring& lhs, gunichar rhs)
-  { ustring temp (lhs); temp += rhs; return temp; }
-
-/** @relates Glib::ustring */
-inline ustring operator+(gunichar lhs, const ustring& rhs)
-  { ustring temp (1, lhs); temp += rhs; return temp; }
-
-/** @relates Glib::ustring */
-inline ustring operator+(const ustring& lhs, char rhs)
-  { ustring temp (lhs); temp += rhs; return temp; }
-
-/** @relates Glib::ustring */
-inline ustring operator+(char lhs, const ustring& rhs)
-  { ustring temp (1, lhs); temp += rhs; return temp; }
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_USTRING_H */
-
diff --git a/libs/glibmm2/glibmm/utility.cc b/libs/glibmm2/glibmm/utility.cc
deleted file mode 100644 (file)
index f415bcb..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// -*- c++ -*-
-
-/* $Id$ */
-
-/* Copyright (C) 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/utility.h>
-#include <glib/gstrfuncs.h>
-
-
-void Glib::append_canonical_typename(std::string& dest, const char* type_name)
-{
-  const std::string::size_type offset = dest.size();
-  dest += type_name;
-
-  std::string::iterator p = dest.begin() + offset;
-  const std::string::iterator pend = dest.end();
-
-  for(; p != pend; ++p)
-  {
-    if(!(g_ascii_isalnum(*p) || *p == '_' || *p == '-'))
-      *p = '+';
-  }
-}
-
diff --git a/libs/glibmm2/glibmm/utility.h b/libs/glibmm2/glibmm/utility.h
deleted file mode 100644 (file)
index 8890f9a..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_UTILITY_H
-#define _GLIBMM_UTILITY_H
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib/gmacros.h>
-#include <glibmm/ustring.h>
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-extern "C" void g_free(void*);
-
-
-/* Occasionally, a struct variable has to be initialized after its definition,
- * i.e. when using structs as class member data.  For convenience, the macro
- * GLIBMM_INITIALIZE_STRUCT(Var, Type) is provided.  It even avoids creating
- * a temporary if the compiler is GCC.
- */
-#if ((__GNUC__ >= 3) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) && !defined(__STRICT_ANSI__)
-
-#define GLIBMM_INITIALIZE_STRUCT(Var, Type) __builtin_memset(&(Var), 0, sizeof(Type))
-
-#else
-
-#define GLIBMM_INITIALIZE_STRUCT(Var, Type) \
-    G_STMT_START{ \
-        Type const temp_initializer__ = { 0, }; \
-        (Var) = temp_initializer__; \
-    }G_STMT_END
-
-#endif /* ((__GNUC__ >= 3) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) && !defined(__STRICT_ANSI__) */
-
-
-namespace Glib
-{
-
-// These are used by gtkmmproc-generated type conversions:
-
-// Helper to deal with memory allocated
-// by GLib functions in an exception-safe manner.
-template <typename T>
-class ScopedPtr
-{
-private:
-  T* ptr_;
-  ScopedPtr(const ScopedPtr<T>&);
-  ScopedPtr<T>& operator=(const ScopedPtr<T>&);
-
-public:
-  ScopedPtr()                 : ptr_ (0)   {}
-  explicit ScopedPtr(T* ptr)  : ptr_ (ptr) {}
-  ~ScopedPtr()                { g_free(ptr_); }
-  T*  get() const             { return ptr_;  }
-  T** addr()                  { return &ptr_; }
-};
-
-// Removes the const nature of a ptr
-template <class T>
-inline T* unconst(const T* t)
-  { return const_cast<T*>(t); }
-
-// Convert const gchar* to ustring, while treating NULL as empty string.
-inline
-Glib::ustring convert_const_gchar_ptr_to_ustring(const char* str)
-{
-  return (str) ? Glib::ustring(str) : Glib::ustring();
-}
-
-// Convert const gchar* to std::string, while treating NULL as empty string.
-inline
-std::string convert_const_gchar_ptr_to_stdstring(const char* str)
-{
-  return (str) ? std::string(str) : std::string();
-}
-
-// Convert a non-const gchar* return value to ustring, freeing it too.
-inline
-Glib::ustring convert_return_gchar_ptr_to_ustring(char* str)
-{
-  return (str) ? Glib::ustring(Glib::ScopedPtr<char>(str).get())
-               : Glib::ustring();
-}
-
-// Convert a non-const gchar* return value to std::string, freeing it too.
-inline
-std::string convert_return_gchar_ptr_to_stdstring(char* str)
-{
-  return (str) ? std::string(Glib::ScopedPtr<char>(str).get())
-               : std::string();
-}
-
-// Append type_name to dest, while replacing special characters with '+'.
-void append_canonical_typename(std::string& dest, const char* type_name);
-
-} // namespace Glib
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-#endif /* _GLIBMM_UTILITY_H */
-
diff --git a/libs/glibmm2/glibmm/value.cc b/libs/glibmm2/glibmm/value.cc
deleted file mode 100644 (file)
index adb3e90..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/value.h>
-#include <glibmm/objectbase.h>
-#include <glibmm/utility.h>
-#include <glibmm/wrap.h>
-
-
-namespace Glib
-{
-
-/**** Glib::ValueBase ******************************************************/
-
-ValueBase::ValueBase()
-{
-  GLIBMM_INITIALIZE_STRUCT(gobject_, GValue);
-}
-
-void ValueBase::init(GType type)
-{
-  g_value_init(&gobject_, type);
-}
-
-ValueBase::ValueBase(const ValueBase& other)
-{
-  GLIBMM_INITIALIZE_STRUCT(gobject_, GValue);
-
-  g_value_init(&gobject_, G_VALUE_TYPE(&other.gobject_));
-  g_value_copy(&other.gobject_, &gobject_);
-}
-
-ValueBase& ValueBase::operator=(const ValueBase& other)
-{
-  // g_value_copy() prevents self-assignment and deletes the destination.
-  g_value_copy(&other.gobject_, &gobject_);
-  return *this;
-}
-
-ValueBase::~ValueBase()
-{
-  g_value_unset(&gobject_);
-}
-
-void ValueBase::reset()
-{
-  g_value_reset(&gobject_);
-}
-
-
-/**** Glib::ValueBase_Boxed ************************************************/
-
-// static
-GType ValueBase_Boxed::value_type()
-{
-  return G_TYPE_BOXED;
-}
-
-void ValueBase_Boxed::set_boxed(const void* data)
-{
-  g_value_set_boxed(&gobject_, data);
-}
-
-void* ValueBase_Boxed::get_boxed() const
-{
-  return g_value_get_boxed(&gobject_);
-}
-
-GParamSpec* ValueBase_Boxed::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_boxed(
-      name.c_str(), 0, 0, G_VALUE_TYPE(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::ValueBase_Object ***********************************************/
-
-// static
-GType ValueBase_Object::value_type()
-{
-  return G_TYPE_OBJECT;
-}
-
-void ValueBase_Object::set_object(Glib::ObjectBase* data)
-{
-  g_value_set_object(&gobject_, (data) ? data->gobj() : 0);
-}
-
-Glib::ObjectBase* ValueBase_Object::get_object() const
-{
-  GObject *const data = static_cast<GObject*>(g_value_get_object(&gobject_));
-  return Glib::wrap_auto(data, false);
-}
-
-Glib::RefPtr<Glib::ObjectBase> ValueBase_Object::get_object_copy() const
-{
-  GObject *const data = static_cast<GObject*>(g_value_get_object(&gobject_));
-  return Glib::RefPtr<Glib::ObjectBase>(Glib::wrap_auto(data, true));
-}
-
-GParamSpec* ValueBase_Object::create_param_spec(const Glib::ustring& name) const
-{
-  // Glib::Value_Pointer<> derives from Glib::ValueBase_Object, because
-  // we don't know beforehand whether a certain type is derived from
-  // Glib::Object or not.  To keep create_param_spec() out of the template
-  // struggle, we dispatch here at runtime.
-
-  if(G_VALUE_HOLDS_OBJECT(&gobject_))
-  {
-    return g_param_spec_object(
-        name.c_str(), 0, 0, G_VALUE_TYPE(&gobject_),
-        GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-  }
-  else
-  {
-    g_return_val_if_fail(G_VALUE_HOLDS_POINTER(&gobject_), 0);
-
-    return g_param_spec_pointer(
-        name.c_str(), 0, 0,
-        GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-  }
-}
-
-
-/**** Glib::ValueBase_Enum *************************************************/
-
-// static
-GType ValueBase_Enum::value_type()
-{
-  return G_TYPE_ENUM;
-}
-
-void ValueBase_Enum::set_enum(int data)
-{
-  g_value_set_enum(&gobject_, data);
-}
-
-int ValueBase_Enum::get_enum() const
-{
-  return g_value_get_enum(&gobject_);
-}
-
-GParamSpec* ValueBase_Enum::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_enum(
-      name.c_str(), 0, 0,
-      G_VALUE_TYPE(&gobject_), g_value_get_enum(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::ValueBase_Flags ************************************************/
-
-// static
-GType ValueBase_Flags::value_type()
-{
-  return G_TYPE_FLAGS;
-}
-
-void ValueBase_Flags::set_flags(unsigned int data)
-{
-  g_value_set_flags(&gobject_, data);
-}
-
-unsigned int ValueBase_Flags::get_flags() const
-{
-  return g_value_get_flags(&gobject_);
-}
-
-GParamSpec* ValueBase_Flags::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_flags(
-      name.c_str(), 0, 0,
-      G_VALUE_TYPE(&gobject_), g_value_get_flags(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::ValueBase_String ***********************************************/
-
-// static
-GType ValueBase_String::value_type()
-{
-  return G_TYPE_STRING;
-}
-
-void ValueBase_String::set_cstring(const char* data)
-{
-  g_value_set_string(&gobject_, data);
-}
-
-const char* ValueBase_String::get_cstring() const
-{
-  if(const char *const data = g_value_get_string(&gobject_))
-    return data;
-  else
-    return "";
-}
-
-GParamSpec* ValueBase_String::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_string(
-      name.c_str(), 0, 0, get_cstring(),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<std::string> *********************************************/
-
-void Value<std::string>::set(const std::string& data)
-{
-  g_value_set_string(&gobject_, data.c_str());
-}
-
-
-/**** Glib::Value<Glib::ustring> *******************************************/
-
-void Value<Glib::ustring>::set(const Glib::ustring& data)
-{
-  g_value_set_string(&gobject_, data.c_str());
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/value.h b/libs/glibmm2/glibmm/value.h
deleted file mode 100644 (file)
index 94203a3..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_VALUE_H
-#define _GLIBMM_VALUE_H
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib-object.h>
-#include <glibmm/refptr.h>
-#include <glibmm/ustring.h>
-
-
-namespace Glib
-{
-
-class ObjectBase;
-class Object;
-
-/** @defgroup glibmmValue Generic Values
- *
- * Glib::Value<> is specialized for almost any type used within
- * the glibmm and gtkmm libraries.
- *
- * - Basic types like <tt>int</tt>, <tt>char</tt>, <tt>bool</tt>, etc., also <tt>void*</tt>.
- * - Glib::ustring and std::string.
- * - Pointers to classes derived from Glib::Object.
- * - Glib::RefPtr<> pointer types, which are assumed to be Glib::Object pointers.
- * - All flags and enum types used within the gtkmm libraries.
- *
- * If a type doesn't fit into any of these categories, then a generic
- * implementation for custom types will be used.  The requirements imposed
- * on custom types are described in the Glib::Value class documentation.
- */
-
-/**
- * @ingroup glibmmValue
- */
-class ValueBase
-{
-public:
-  /** Initializes the GValue, but without a type.  You have to
-   * call init() before using the set(), get(), or reset() methods.
-   */
-  ValueBase();
-
-  ValueBase(const ValueBase& other);
-  ValueBase& operator=(const ValueBase& other);
-
-  ~ValueBase();
-
-  /** Setup the GValue for storing the specified @a type.
-   * The contents will be initialized to the default value for this type.
-   * Note that init() should never be called twice.
-   *
-   * init() is not implemented as constructor, to avoid the necessity
-   * to implement a forward constructor in each derived class.
-   */
-  void init(GType type);
-
-  /** Reset contents to the default value of its type.
-   */
-  void reset();
-
-  GValue*       gobj()       { return &gobject_; }
-  const GValue* gobj() const { return &gobject_; }
-
-protected:
-  GValue gobject_;
-};
-
-/**
- * @ingroup glibmmValue
- */
-class ValueBase_Boxed : public ValueBase
-{
-public:
-  static GType value_type() G_GNUC_CONST;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-
-protected:
-  void  set_boxed(const void* data);
-  void* get_boxed() const; // doesn't copy  
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-class ValueBase_Object : public ValueBase
-{
-public:
-  static GType value_type() G_GNUC_CONST;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-
-protected:
-  void set_object(Glib::ObjectBase* data);
-  Glib::ObjectBase* get_object() const;
-  Glib::RefPtr<Glib::ObjectBase> get_object_copy() const;
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-class ValueBase_Enum : public ValueBase
-{
-public:
-  typedef gint CType;
-  static GType value_type() G_GNUC_CONST;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-
-protected:
-  void set_enum(int data);
-  int  get_enum() const;
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-class ValueBase_Flags : public ValueBase
-{
-public:
-  typedef guint CType;
-  static GType value_type() G_GNUC_CONST;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-
-protected:
-  void set_flags(unsigned int data);
-  unsigned int get_flags() const;
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-class ValueBase_String : public ValueBase
-{
-public:
-  typedef const gchar* CType;
-  static GType value_type() G_GNUC_CONST;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-
-protected:
-  void set_cstring(const char* data);
-  const char* get_cstring() const; // never returns 0
-};
-
-} // namespace Glib
-
-
-/* Include generic Glib::Value<> template, before any specializations:
- */
-#define _GLIBMM_VALUE_H_INCLUDE_VALUE_CUSTOM_H
-#include <glibmm/value_custom.h>
-#undef _GLIBMM_VALUE_H_INCLUDE_VALUE_CUSTOM_H
-
-
-namespace Glib
-{
-
-/**
- * @ingroup glibmmValue
- */
-template <class T>
-class Value_Boxed : public ValueBase_Boxed
-{
-public:
-  typedef T                           CppType;
-  typedef typename T::BaseObjectType* CType;
-
-  static GType value_type() { return T::get_type(); }
-
-  void set(const CppType& data) { set_boxed(data.gobj()); }
-  CppType get() const           { return CppType(static_cast<CType>(get_boxed())); }
-};
-
-//More spec-compliant compilers (such as Tru64) need this to be near Glib::Object instead.
-#ifdef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-
-/** Partial specialization for RefPtr<> to Glib::Object.
- * @ingroup glibmmValue
- */
-template <class T>
-class Value< Glib::RefPtr<T> > : public ValueBase_Object
-{
-public:
-  typedef Glib::RefPtr<T>             CppType;
-  typedef typename T::BaseObjectType* CType;
-
-  static GType value_type() { return T::get_base_type(); }
-
-  void set(const CppType& data) { set_object(data.operator->()); }
-  CppType get() const           { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
-};
-
-//The SUN Forte Compiler has a problem with this: 
-#ifdef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-/** Partial specialization for RefPtr<> to const Glib::Object.
- * @ingroup glibmmValue
- */
-template <class T>
-class Value< Glib::RefPtr<const T> > : public ValueBase_Object
-{
-public:
-  typedef Glib::RefPtr<const T>       CppType;
-  typedef typename T::BaseObjectType* CType;
-
-  static GType value_type() { return T::get_base_type(); }
-
-  void set(const CppType& data) { set_object(const_cast<T*>(data.operator->())); }
-  CppType get() const           { return Glib::RefPtr<T>::cast_dynamic(get_object_copy()); }
-};
-#endif //GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-
-#endif //GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-
-} // namespace Glib
-
-
-/* Include generated specializations of Glib::Value<> for fundamental types:
- */
-#define _GLIBMM_VALUE_H_INCLUDE_VALUE_BASICTYPES_H
-#include <glibmm/value_basictypes.h>
-#undef _GLIBMM_VALUE_H_INCLUDE_VALUE_BASICTYPES_H
-
-
-namespace Glib
-{
-
-/** Specialization for strings.
- * @ingroup glibmmValue
- */
-template <>
-class Value<std::string> : public ValueBase_String
-{
-public:
-  typedef std::string CppType;
-
-  void set(const std::string& data);
-  std::string get() const { return get_cstring(); }
-};
-
-/** Specialization for UTF-8 strings.
- * @ingroup glibmmValue
- */
-template <>
-class Value<Glib::ustring> : public ValueBase_String
-{
-public:
-  typedef Glib::ustring CppType;
-
-  void set(const Glib::ustring& data);
-  Glib::ustring get() const { return get_cstring(); }
-};
-
-
-/** Base class of Glib::Value<T> specializations for enum types.
- * @ingroup glibmmValue
- */
-template <class T>
-class Value_Enum : public ValueBase_Enum
-{
-public:
-  typedef T CppType;
-
-  void set(CppType data) { set_enum(data); }
-  CppType get() const    { return CppType(get_enum()); }
-};
-
-/** Base class of Glib::Value<T> specializations for flags types.
- * @ingroup glibmmValue
- */
-template <class T>
-class Value_Flags : public ValueBase_Flags
-{
-public:
-  typedef T CppType;
-
-  void set(CppType data) { set_flags(data); }
-  CppType get() const    { return CppType(get_flags()); }
-};
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_VALUE_H */
-
diff --git a/libs/glibmm2/glibmm/value_basictypes.cc b/libs/glibmm2/glibmm/value_basictypes.cc
deleted file mode 100644 (file)
index 4d76b89..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-// -*- c++ -*-
-// This is a generated file, do not edit.  Generated from value_basictypes.cc.m4
-
-#include <glibmm/value.h>
-
-namespace Glib
-{
-
-G_GNUC_EXTENSION typedef long long long_long;
-G_GNUC_EXTENSION typedef unsigned long long unsigned_long_long;
-
-
-/**** Glib::Value<bool> ****************************************************/
-
-// static
-GType Value<bool>::value_type()
-{
-  return G_TYPE_BOOLEAN;
-}
-
-void Value<bool>::set(bool data)
-{
-  g_value_set_boolean(&gobject_, data);
-}
-
-bool Value<bool>::get() const
-{
-  return g_value_get_boolean(&gobject_);
-}
-
-GParamSpec* Value<bool>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_boolean(
-      name.c_str(), 0, 0,
-      g_value_get_boolean(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<char> ****************************************************/
-
-// static
-GType Value<char>::value_type()
-{
-  return G_TYPE_CHAR;
-}
-
-void Value<char>::set(char data)
-{
-  g_value_set_char(&gobject_, data);
-}
-
-char Value<char>::get() const
-{
-  return g_value_get_char(&gobject_);
-}
-
-GParamSpec* Value<char>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_char(
-      name.c_str(), 0, 0,
-      -128, 127, g_value_get_char(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<unsigned char> *******************************************/
-
-// static
-GType Value<unsigned char>::value_type()
-{
-  return G_TYPE_UCHAR;
-}
-
-void Value<unsigned char>::set(unsigned char data)
-{
-  g_value_set_uchar(&gobject_, data);
-}
-
-unsigned char Value<unsigned char>::get() const
-{
-  return g_value_get_uchar(&gobject_);
-}
-
-GParamSpec* Value<unsigned char>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_uchar(
-      name.c_str(), 0, 0,
-      0, 255, g_value_get_uchar(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<int> *****************************************************/
-
-// static
-GType Value<int>::value_type()
-{
-  return G_TYPE_INT;
-}
-
-void Value<int>::set(int data)
-{
-  g_value_set_int(&gobject_, data);
-}
-
-int Value<int>::get() const
-{
-  return g_value_get_int(&gobject_);
-}
-
-GParamSpec* Value<int>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_int(
-      name.c_str(), 0, 0,
-      G_MININT, G_MAXINT, g_value_get_int(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<unsigned int> ********************************************/
-
-// static
-GType Value<unsigned int>::value_type()
-{
-  return G_TYPE_UINT;
-}
-
-void Value<unsigned int>::set(unsigned int data)
-{
-  g_value_set_uint(&gobject_, data);
-}
-
-unsigned int Value<unsigned int>::get() const
-{
-  return g_value_get_uint(&gobject_);
-}
-
-GParamSpec* Value<unsigned int>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_uint(
-      name.c_str(), 0, 0,
-      0, G_MAXUINT, g_value_get_uint(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<long> ****************************************************/
-
-// static
-GType Value<long>::value_type()
-{
-  return G_TYPE_LONG;
-}
-
-void Value<long>::set(long data)
-{
-  g_value_set_long(&gobject_, data);
-}
-
-long Value<long>::get() const
-{
-  return g_value_get_long(&gobject_);
-}
-
-GParamSpec* Value<long>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_long(
-      name.c_str(), 0, 0,
-      G_MINLONG, G_MAXLONG, g_value_get_long(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<unsigned long> *******************************************/
-
-// static
-GType Value<unsigned long>::value_type()
-{
-  return G_TYPE_ULONG;
-}
-
-void Value<unsigned long>::set(unsigned long data)
-{
-  g_value_set_ulong(&gobject_, data);
-}
-
-unsigned long Value<unsigned long>::get() const
-{
-  return g_value_get_ulong(&gobject_);
-}
-
-GParamSpec* Value<unsigned long>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_ulong(
-      name.c_str(), 0, 0,
-      0, G_MAXULONG, g_value_get_ulong(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<long_long> ***********************************************/
-
-// static
-GType Value<long_long>::value_type()
-{
-  return G_TYPE_INT64;
-}
-
-void Value<long_long>::set(long_long data)
-{
-  g_value_set_int64(&gobject_, data);
-}
-
-long_long Value<long_long>::get() const
-{
-  return g_value_get_int64(&gobject_);
-}
-
-GParamSpec* Value<long_long>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_int64(
-      name.c_str(), 0, 0,
-      G_GINT64_CONSTANT(0x8000000000000000), G_GINT64_CONSTANT(0x7fffffffffffffff), g_value_get_int64(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<unsigned_long_long> **************************************/
-
-// static
-GType Value<unsigned_long_long>::value_type()
-{
-  return G_TYPE_UINT64;
-}
-
-void Value<unsigned_long_long>::set(unsigned_long_long data)
-{
-  g_value_set_uint64(&gobject_, data);
-}
-
-unsigned_long_long Value<unsigned_long_long>::get() const
-{
-  return g_value_get_uint64(&gobject_);
-}
-
-GParamSpec* Value<unsigned_long_long>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_uint64(
-      name.c_str(), 0, 0,
-      G_GINT64_CONSTANT(0U), G_GINT64_CONSTANT(0xffffffffffffffffU), g_value_get_uint64(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<float> ***************************************************/
-
-// static
-GType Value<float>::value_type()
-{
-  return G_TYPE_FLOAT;
-}
-
-void Value<float>::set(float data)
-{
-  g_value_set_float(&gobject_, data);
-}
-
-float Value<float>::get() const
-{
-  return g_value_get_float(&gobject_);
-}
-
-GParamSpec* Value<float>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_float(
-      name.c_str(), 0, 0,
-      G_MINFLOAT, G_MAXFLOAT, g_value_get_float(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<double> **************************************************/
-
-// static
-GType Value<double>::value_type()
-{
-  return G_TYPE_DOUBLE;
-}
-
-void Value<double>::set(double data)
-{
-  g_value_set_double(&gobject_, data);
-}
-
-double Value<double>::get() const
-{
-  return g_value_get_double(&gobject_);
-}
-
-GParamSpec* Value<double>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_double(
-      name.c_str(), 0, 0,
-      G_MINDOUBLE, G_MAXDOUBLE, g_value_get_double(&gobject_),
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-/**** Glib::Value<void*> ***************************************************/
-
-// static
-GType Value<void*>::value_type()
-{
-  return G_TYPE_POINTER;
-}
-
-void Value<void*>::set(void* data)
-{
-  g_value_set_pointer(&gobject_, data);
-}
-
-void* Value<void*>::get() const
-{
-  return g_value_get_pointer(&gobject_);
-}
-
-GParamSpec* Value<void*>::create_param_spec(const Glib::ustring& name) const
-{
-  return g_param_spec_pointer(
-      name.c_str(), 0, 0,
-      GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/value_basictypes.h b/libs/glibmm2/glibmm/value_basictypes.h
deleted file mode 100644 (file)
index 3d81e3e..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-// -*- c++ -*-
-// This is a generated file, do not edit.  Generated from value_basictypes.h.m4
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#ifndef _GLIBMM_VALUE_H_INCLUDE_VALUE_BASICTYPES_H
-#error "glibmm/value_basictypes.h cannot be included directly"
-#endif
-#endif
-
-/* Suppress warnings about `long long' when GCC is in -pedantic mode.
- */
-#if (__GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
-#pragma GCC system_header
-#endif
-
-namespace Glib
-{
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<bool> : public ValueBase
-{
-public:
-  typedef bool CppType;
-  typedef gboolean CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(bool data);
-  bool get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<char> : public ValueBase
-{
-public:
-  typedef char CppType;
-  typedef gchar CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(char data);
-  char get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<unsigned char> : public ValueBase
-{
-public:
-  typedef unsigned char CppType;
-  typedef guchar CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(unsigned char data);
-  unsigned char get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<int> : public ValueBase
-{
-public:
-  typedef int CppType;
-  typedef gint CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(int data);
-  int get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<unsigned int> : public ValueBase
-{
-public:
-  typedef unsigned int CppType;
-  typedef guint CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(unsigned int data);
-  unsigned int get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<long> : public ValueBase
-{
-public:
-  typedef long CppType;
-  typedef glong CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(long data);
-  long get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<unsigned long> : public ValueBase
-{
-public:
-  typedef unsigned long CppType;
-  typedef gulong CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(unsigned long data);
-  unsigned long get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<long long> : public ValueBase
-{
-public:
-  typedef long long CppType;
-  typedef gint64 CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(long long data);
-  long long get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<unsigned long long> : public ValueBase
-{
-public:
-  typedef unsigned long long CppType;
-  typedef guint64 CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(unsigned long long data);
-  unsigned long long get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<float> : public ValueBase
-{
-public:
-  typedef float CppType;
-  typedef gfloat CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(float data);
-  float get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<double> : public ValueBase
-{
-public:
-  typedef double CppType;
-  typedef gdouble CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(double data);
-  double get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-
-/**
- * @ingroup glibmmValue
- */
-template <>
-class Value<void*> : public ValueBase
-{
-public:
-  typedef void* CppType;
-  typedef gpointer CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  void set(void* data);
-  void* get() const;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-  GParamSpec* create_param_spec(const Glib::ustring& name) const;
-#endif
-};
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/value_custom.cc b/libs/glibmm2/glibmm/value_custom.cc
deleted file mode 100644 (file)
index f277477..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/value.h>
-#include <glibmm/utility.h>
-#include <glib.h>
-
-
-namespace
-{
-
-void warn_already_registered(const char* location, const std::string& full_name)
-{
-  g_warning("file %s: (%s): The type name `%s' has been registered already.\n"
-            "This is not supposed to happen -- please send a mail with detailed "
-            "information about your platform to gtkmm-list@gnome.org.  Thanks.\n",
-            __FILE__, location, full_name.c_str());
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-GType custom_boxed_type_register(const char*   type_name,
-                                 ValueInitFunc init_func,
-                                 ValueFreeFunc free_func,
-                                 ValueCopyFunc copy_func)
-{
-  std::string full_name ("glibmm__CustomBoxed_");
-  Glib::append_canonical_typename(full_name, type_name);
-
-  // Templates of the same type _might_ be duplicated when instantiated in
-  // multiple translation units -- I'm not sure whether this is true.  If the
-  // static custom_type_ variable in Value<> is duplicated, then the type
-  // would be registered more than once.
-  //
-  // Lookup the type name to see whether this scenario actually happens.
-  // If this turns out to be common behaviour on some platform the warning
-  // should be removed.
-
-  if(const GType existing_type = g_type_from_name(full_name.c_str()))
-  {
-    warn_already_registered("Glib::custom_boxed_type_register", full_name);
-    return existing_type;
-  }
-
-  // Via GTypeValueTable, we can teach GValue how to instantiate,
-  // destroy, and copy arbitrary objects of the C++ type.
-
-  const GTypeValueTable value_table =
-  {
-    init_func,
-    free_func,
-    copy_func,
-    0, // value_peek_pointer
-    0, // collect_format
-    0, // collect_value
-    0, // lcopy_format
-    0, // lcopy_value
-  };
-
-  const GTypeInfo type_info =
-  {
-    0, // class_size
-    0, // base_init
-    0, // base_finalize
-    0, // class_init_func
-    0, // class_finalize
-    0, // class_data
-    0, // instance_size
-    0, // n_preallocs
-    0, // instance_init
-    &value_table,
-  };
-
-  // Don't use g_boxed_type_register_static(), because that wouldn't allow
-  // for a non-NULL default value.  The implementation of g_boxed_copy() will
-  // use our custom GTypeValueTable automatically.
-
-  return g_type_register_static(G_TYPE_BOXED, full_name.c_str(), &type_info, GTypeFlags(0));
-}
-
-GType custom_pointer_type_register(const char* type_name)
-{
-  std::string full_name ("glibmm__CustomPointer_");
-  Glib::append_canonical_typename(full_name, type_name);
-
-  // Templates of the same type _might_ be duplicated when instantiated in
-  // multiple translation units -- I'm not sure whether this is true.  If the
-  // static custom_type variable in Value<>::value_type_() is duplicated, then
-  // the type would be registered more than once.
-  //
-  // Lookup the type name to see whether this scenario actually happens.
-  // If this turns out to be common behaviour on some platform the warning
-  // should be removed.
-
-  if(const GType existing_type = g_type_from_name(full_name.c_str()))
-  {
-    warn_already_registered("Glib::custom_pointer_type_register", full_name);
-    return existing_type;
-  }
-
-  const GTypeInfo type_info =
-  {
-    0, // class_size
-    0, // base_init
-    0, // base_finalize
-    0, // class_init_func
-    0, // class_finalize
-    0, // class_data
-    0, // instance_size
-    0, // n_preallocs
-    0, // instance_init
-    0, // value_table
-  };
-
-  // We could probably use g_pointer_type_register_static(), but I want
-  // to keep this function symmetric to custom_boxed_type_register().  Also,
-  // g_pointer_type_register_static() would lookup the type name once again.
-
-  return g_type_register_static(G_TYPE_POINTER, full_name.c_str(), &type_info, GTypeFlags(0));
-}
-
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/value_custom.h b/libs/glibmm2/glibmm/value_custom.h
deleted file mode 100644 (file)
index ab4ad7d..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#ifndef _GLIBMM_VALUE_H_INCLUDE_VALUE_CUSTOM_H
-#error "glibmm/value_custom.h cannot be included directly"
-#endif
-#endif
-
-#include <new>
-#include <typeinfo>
-#include <glibmmconfig.h>
-
-GLIBMM_USING_STD(nothrow)
-
-
-namespace Glib
-{
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-extern "C"
-{
-  typedef void (* ValueInitFunc) (GValue*);
-  typedef void (* ValueFreeFunc) (GValue*);
-  typedef void (* ValueCopyFunc) (const GValue*, GValue*);
-}
-
-/* When using Glib::Value<T> with custom types, each T will be registered
- * as subtype of G_TYPE_BOXED, via this function.  The type_name argument
- * should be the C++ RTTI name.
- */
-GType custom_boxed_type_register(const char*   type_name,
-                                 ValueInitFunc init_func,
-                                 ValueFreeFunc free_func,
-                                 ValueCopyFunc copy_func);
-
-/* When using Glib::Value<T*> or Glib::Value<const T*> with custom types,
- * each T* or const T* will be registered as a subtype of G_TYPE_POINTER,
- * via this function.  The type_name argument should be the C++ RTTI name.
- */
-GType custom_pointer_type_register(const char* type_name);
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-/**
- * @ingroup glibmmValue
- */
-template <class T, class PtrT>
-class Value_Pointer : public ValueBase_Object
-{
-public:
-  typedef PtrT  CppType;
-  typedef void* CType;
-
-  static inline GType value_type() G_GNUC_CONST;
-
-  inline void set(CppType data);
-  inline CppType get() const;
-
-private:
-  inline
-  static GType value_type_(Glib::Object*);
-  static GType value_type_(void*);
-
-  inline void set_(CppType data, Glib::Object*);
-  inline void set_(CppType data, void*);
-
-  inline CppType get_(Glib::Object*) const;
-  inline CppType get_(void*) const;
-};
-
-  
-/** Generic value implementation for custom types.
- * @ingroup glibmmValue
- * Any type to be used with this template must implement:
- * - default constructor
- * - copy constructor
- * - assignment operator
- * - destructor
- *
- * Compiler-generated implementations are OK, provided they do the
- * right thing for the type.  In other words, any type that works with
- * <tt>std::vector</tt> will work with Glib::Value<>.
- *
- * @note None of the operations listed above are allowed to throw.  If you
- * cannot ensure that no exceptions will be thrown, consider using either
- * a normal pointer or a smart pointer to hold your objects indirectly.
- */
-template <class T>
-class Value : public ValueBase_Boxed
-{
-public:
-  typedef T  CppType;
-  typedef T* CType;
-
-  static GType value_type() G_GNUC_CONST;
-
-  inline void set(const CppType& data);
-  inline CppType get() const;
-
-private:
-  static GType custom_type_;
-
-  static void value_init_func(GValue* value);
-  static void value_free_func(GValue* value);
-  static void value_copy_func(const GValue* src_value, GValue* dest_value);
-};
-
-
-/** Specialization for pointers to instances of any type.
- * @ingroup glibmmValue
- * No attempt is made to manage the memory associated with the
- * pointer, you must take care of that yourself.
- */
-template <class T>
-class Value<T*> : public Value_Pointer<T,T*>
-{};
-
-/** Specialization for pointers to const instances of any type.
- * @ingroup glibmmValue
- * No attempt is made to manage the memory associated with the
- * pointer, you must take care of that yourself.
- */
-template <class T>
-class Value<const T*> : public Value_Pointer<T,const T*>
-{};
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-/**** Glib::Value_Pointer<T, PtrT> *****************************************/
-
-/** Implementation for Glib::Object pointers **/
-
-// static
-template <class T, class PtrT> inline
-GType Value_Pointer<T,PtrT>::value_type_(Glib::Object*)
-{
-  return T::get_base_type();
-}
-
-template <class T, class PtrT> inline
-void Value_Pointer<T,PtrT>::set_(PtrT data, Glib::Object*)
-{
-  set_object(const_cast<T*>(data));
-}
-
-//More spec-compliant compilers (such as Tru64) need this to be near Glib::Object instead.
-#ifdef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-template <class T, class PtrT> inline
-PtrT Value_Pointer<T,PtrT>::get_(Glib::Object*) const
-{
-  return dynamic_cast<T*>(get_object());
-}
-#endif //GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-
-/** Implementation for custom pointers **/
-
-// static
-template <class T, class PtrT>
-GType Value_Pointer<T,PtrT>::value_type_(void*)
-{
-  static GType custom_type = 0;
-
-  if(!custom_type)
-    custom_type = Glib::custom_pointer_type_register(typeid(PtrT).name());
-
-  return custom_type;
-}
-
-template <class T, class PtrT> inline
-void Value_Pointer<T,PtrT>::set_(PtrT data, void*)
-{
-  gobject_.data[0].v_pointer = const_cast<T*>(data);
-}
-
-template <class T, class PtrT> inline
-PtrT Value_Pointer<T,PtrT>::get_(void*) const
-{
-  return static_cast<T*>(gobject_.data[0].v_pointer);
-}
-
-/** Public forwarding interface **/
-
-// static
-template <class T, class PtrT> inline
-GType Value_Pointer<T,PtrT>::value_type()
-{
-  // Dispatch to the specific value_type_() overload.
-  return Value_Pointer<T,PtrT>::value_type_(static_cast<T*>(0));
-}
-
-template <class T, class PtrT> inline
-void Value_Pointer<T,PtrT>::set(PtrT data)
-{
-  // Dispatch to the specific set_() overload.
-  this->set_(data, static_cast<T*>(0));
-}
-
-template <class T, class PtrT> inline
-PtrT Value_Pointer<T,PtrT>::get() const
-{
-  // Dispatch to the specific get_() overload.
-  return this->get_(static_cast<T*>(0));
-}
-
-
-/**** Glib::Value<T> *******************************************************/
-
-// Static data, specific to each template instantiation.
-template <class T>
-GType Value<T>::custom_type_ = 0;
-
-template <class T> inline
-void Value<T>::set(const typename Value<T>::CppType& data)
-{
-  // Assume the value is already default-initialized.  See value_init_func().
-  *static_cast<T*>(gobject_.data[0].v_pointer) = data;
-}
-
-template <class T> inline
-typename Value<T>::CppType Value<T>::get() const
-{
-  // Assume the pointer is not NULL.  See value_init_func().
-  return *static_cast<T*>(gobject_.data[0].v_pointer);
-}
-
-// static
-template <class T>
-GType Value<T>::value_type()
-{
-  if(!custom_type_)
-  {
-    custom_type_ = Glib::custom_boxed_type_register(
-        typeid(CppType).name(),
-        &Value<T>::value_init_func,
-        &Value<T>::value_free_func,
-        &Value<T>::value_copy_func);
-  }
-  return custom_type_;
-}
-
-// static
-template <class T>
-void Value<T>::value_init_func(GValue* value)
-{
-  // Never store a NULL pointer (unless we're out of memory).
-  value->data[0].v_pointer = new(std::nothrow) T();
-}
-
-// static
-template <class T>
-void Value<T>::value_free_func(GValue* value)
-{
-  delete static_cast<T*>(value->data[0].v_pointer);
-}
-
-// static
-template <class T>
-void Value<T>::value_copy_func(const GValue* src_value, GValue* dest_value)
-{
-  // Assume the source is not NULL.  See value_init_func().
-  const T& source = *static_cast<T*>(src_value->data[0].v_pointer);
-  dest_value->data[0].v_pointer = new(std::nothrow) T(source);
-}
-
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-} // namespace Glib
-
diff --git a/libs/glibmm2/glibmm/wrap.cc b/libs/glibmm2/glibmm/wrap.cc
deleted file mode 100644 (file)
index 5a7d840..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-// -*- c++ -*-
-/* $Id$ */
-
-/* wrap.cc
- *
- * Copyright (C) 1998-2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib-object.h>
-#include <glib/gtypes.h>
-#include <glib/gmacros.h>
-
-#include <vector>
-#include <glibmm/object.h>
-#include <glibmm/quark.h>
-#include <glibmm/wrap.h>
-
-#include <glibmmconfig.h>
-GLIBMM_USING_STD(vector)
-
-
-namespace
-{
-
-// Although the new g_type_set_qdata() interface is used now, we still need
-// a table because we cannot assume that a function pointer fits into void*
-// on any platform.  Nevertheless, indexing a vector costs almost nothing
-// compared to a map lookup.
-
-typedef std::vector<Glib::WrapNewFunction> WrapFuncTable;
-
-static WrapFuncTable* wrap_func_table = 0;
-
-
-static Glib::ObjectBase* create_new_wrapper(GObject* object)
-{
-  g_return_val_if_fail(wrap_func_table != 0, 0);
-
-  bool gtkmm_wrapper_already_deleted = (bool)g_object_get_qdata((GObject*)object, Glib::quark_cpp_wrapper_deleted_);
-  if(gtkmm_wrapper_already_deleted)
-  {
-    g_warning("Glib::create_new_wrapper: Attempted to create a 2nd C++ wrapper for a C instance whose C++ wrapper has been deleted.");
-    return 0;
-  }
-
-  // Traverse upwards through the inheritance hierarchy
-  // to find the most-specialized wrap_new() for this GType.
-  //
-  for(GType type = G_OBJECT_TYPE(object); type != 0; type = g_type_parent(type))
-  {
-    // Look up the wrap table index stored in the type's static data.
-    // If a wrap_new() has been registered for the type then call it.
-    //
-    if(const gpointer idx = g_type_get_qdata(type, Glib::quark_))
-    {
-      const Glib::WrapNewFunction func = (*wrap_func_table)[GPOINTER_TO_UINT(idx)];
-      return (*func)(object);
-    }
-  }
-
-  return 0;
-}
-
-} // anonymous namespace
-
-
-namespace Glib
-{
-
-void wrap_register_init()
-{
-  g_type_init();
-
-  if(!Glib::quark_)
-  {
-    Glib::quark_ = g_quark_from_static_string("glibmm__Glib::quark_");
-    Glib::quark_cpp_wrapper_deleted_ = g_quark_from_static_string("glibmm__Glib::quark_cpp_wrapper_deleted_");
-  }
-
-  if(!wrap_func_table)
-  {
-    // Make the first element a dummy so we can detect unregistered types.
-    // g_type_get_qdata() returns NULL if no data has been set up.
-    wrap_func_table = new WrapFuncTable(1);
-  }
-}
-
-void wrap_register_cleanup()
-{
-  if(wrap_func_table)
-  {
-    delete wrap_func_table;
-    wrap_func_table = 0;
-  }
-}
-
-// Register the unique wrap_new() function of a new C++ wrapper type.
-// The GType argument specifies the parent C type to wrap from.
-//
-void wrap_register(GType type, WrapNewFunction func)
-{
-  const guint idx = wrap_func_table->size();
-  wrap_func_table->push_back(func);
-
-  // Store the table index in the type's static data.
-  g_type_set_qdata(type, Glib::quark_, GUINT_TO_POINTER(idx));
-}
-
-// This is a factory function that converts any type to
-// its C++ wrapper instance by looking up a wrap_new() function in a map.
-//
-ObjectBase* wrap_auto(GObject* object, bool take_copy)
-{
-  if(!object)
-    return 0;
-
-  // Look up current C++ wrapper instance:
-  ObjectBase* pCppObject =
-      static_cast<ObjectBase*>(g_object_get_qdata(object, Glib::quark_));
-
-  if(!pCppObject)
-  {
-    // There's not already a wrapper: generate a new C++ instance.
-    pCppObject = create_new_wrapper(object);
-
-    if(!pCppObject)
-    {
-      g_warning("failed to wrap type of '%s'", G_OBJECT_TYPE_NAME(object));
-      return 0;
-    }
-  }
-
-  // take_copy=true is used where the GTK+ function doesn't do
-  // an extra ref for us, and always for plain struct members.
-  if(take_copy)
-    pCppObject->reference();
-
-  return pCppObject;
-}
-
-Glib::RefPtr<Object> wrap(GObject* object, bool take_copy /* = false */)
-{
-  return Glib::RefPtr<Object>(dynamic_cast<Object*>(wrap_auto(object, take_copy)));
-}
-
-} /* namespace Glib */
-
diff --git a/libs/glibmm2/glibmm/wrap.h b/libs/glibmm2/glibmm/wrap.h
deleted file mode 100644 (file)
index 58288ec..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_WRAP_H
-#define _GLIBMM_WRAP_H
-
-/* $Id$ */
-
-/* Copyright (C) 1998-2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glib-object.h>
-#include <glibmm/refptr.h>
-
-
-namespace Glib
-{
-
-class ObjectBase;
-class Object;
-
-// Type of the per-class wrap_new() functions.
-typedef Glib::ObjectBase* (*WrapNewFunction) (GObject*);
-
-// Setup and free the structures used by wrap_register().
-// Both functions might be called more than once.
-void wrap_register_init();
-void wrap_register_cleanup();
-
-// Register a new type for auto allocation.
-void wrap_register(GType type, WrapNewFunction func);
-
-// Return the current C++ wrapper instance of the GObject,
-// or automatically generate a new wrapper if there's none.
-Glib::ObjectBase* wrap_auto(GObject* object, bool take_copy = false);
-
-// Get a C++ instance that wraps the C instance.
-// This always returns the same C++ instance for the same C instance.
-// Each wrapper has it's own override of Glib::wrap().
-// use take_copy = true when wrapping a struct member.
-// TODO: move to object.h ?
-/** @relates Glib::Object */
-Glib::RefPtr<Glib::Object> wrap(GObject* object, bool take_copy = false);
-
-
-/** Get the underlying C instance from the C++ instance.  This is just
- * like calling gobj(), but it does its own check for a NULL pointer.
- */
-template <class T> inline
-typename T::BaseObjectType* unwrap(T* ptr)
-{
-  return (ptr) ? ptr->gobj() : 0;
-}
-
-/** Get the underlying C instance from the C++ instance.  This is just
- * like calling gobj(), but it does its own check for a NULL pointer.
- */
-template <class T> inline
-const typename T::BaseObjectType* unwrap(const T* ptr)
-{
-  return (ptr) ? ptr->gobj() : 0;
-}
-
-/** Get the underlying C instance from the C++ instance.  This is just
- * like calling gobj(), but it does its own check for a NULL pointer.
- */
-template <class T> inline
-typename T::BaseObjectType* unwrap(const Glib::RefPtr<T>& ptr)
-{
-  return (ptr) ? ptr->gobj() : 0;
-}
-
-/** Get the underlying C instance from the C++ instance.  This is just
- * like calling gobj(), but it does its own check for a NULL pointer.
- */
-template <class T> inline
-const typename T::BaseObjectType* unwrap(const Glib::RefPtr<const T>& ptr)
-{
-  return (ptr) ? ptr->gobj() : 0;
-}
-
-/** Get the underlying C instance from the C++ instance and acquire a
- * reference.  This is just like calling gobj_copy(), but it does its own
- * check for a NULL pointer.
- */
-template <class T> inline
-typename T::BaseObjectType* unwrap_copy(const Glib::RefPtr<T>& ptr)
-{
-  return (ptr) ? ptr->gobj_copy() : 0;
-}
-
-/** Get the underlying C instance from the C++ instance and acquire a
- * reference.  This is just like calling gobj_copy(), but it does its own
- * check for a NULL pointer.
- */
-template <class T> inline
-const typename T::BaseObjectType* unwrap_copy(const Glib::RefPtr<const T>& ptr)
-{
-  return (ptr) ? ptr->gobj_copy() : 0;
-}
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_WRAP_H */
-
diff --git a/libs/glibmm2/glibmm/wrap_init.cc b/libs/glibmm2/glibmm/wrap_init.cc
deleted file mode 100644 (file)
index 54188b4..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-
-#include <glib.h>
-
-// Disable the 'const' function attribute of the get_type() functions.
-// GCC would optimize them out because we don't use the return value.
-#undef  G_GNUC_CONST
-#define G_GNUC_CONST /* empty */
-
-#include <glibmm/wrap_init.h>
-#include <glibmm/error.h>
-#include <glibmm/object.h>
-
-// #include the widget headers so that we can call the get_type() static methods:
-
-#include "convert.h"
-#include "date.h"
-#include "fileutils.h"
-#include "iochannel.h"
-#include "markup.h"
-#include "module.h"
-#include "optioncontext.h"
-#include "optionentry.h"
-#include "optiongroup.h"
-#include "shell.h"
-#include "spawn.h"
-#include "thread.h"
-#include "unicode.h"
-
-extern "C"
-{
-
-//Declarations of the *_get_type() functions:
-
-
-//Declarations of the *_error_quark() functions:
-
-GQuark g_convert_error_quark(void);
-GQuark g_file_error_quark(void);
-GQuark g_io_channel_error_quark(void);
-GQuark g_markup_error_quark(void);
-GQuark g_option_error_quark(void);
-GQuark g_shell_error_quark(void);
-GQuark g_spawn_error_quark(void);
-GQuark g_thread_error_quark(void);
-} // extern "C"
-
-
-//Declarations of the *_Class::wrap_new() methods, instead of including all the private headers:
-
-
-namespace Glib { 
-
-void wrap_init()
-{
-  // Register Error domains:
-  Glib::Error::register_domain(g_convert_error_quark(), &Glib::ConvertError::throw_func);
-  Glib::Error::register_domain(g_file_error_quark(), &Glib::FileError::throw_func);
-  Glib::Error::register_domain(g_io_channel_error_quark(), &Glib::IOChannelError::throw_func);
-  Glib::Error::register_domain(g_markup_error_quark(), &Glib::MarkupError::throw_func);
-  Glib::Error::register_domain(g_option_error_quark(), &Glib::OptionError::throw_func);
-  Glib::Error::register_domain(g_shell_error_quark(), &Glib::ShellError::throw_func);
-  Glib::Error::register_domain(g_spawn_error_quark(), &Glib::SpawnError::throw_func);
-  Glib::Error::register_domain(g_thread_error_quark(), &Glib::ThreadError::throw_func);
-
-// Map gtypes to gtkmm wrapper-creation functions:
-
-  // Register the gtkmm gtypes:
-
-} // wrap_init()
-
-} //Glib
-
-
diff --git a/libs/glibmm2/glibmm/wrap_init.h b/libs/glibmm2/glibmm/wrap_init.h
deleted file mode 100644 (file)
index 63c8a1c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_WRAP_INIT_H
-#define _GLIBMM_WRAP_INIT_H
-
-/* $Id$ */
-
-/* wrap_init.h
- *
- * Copyright 2002 The gtkmm Development Team
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <glibmm/error.h>
-
-
-namespace Glib
-{
-
-void wrap_init();
-
-} // namespace Glib
-
-
-#endif /* _GLIBMM_WRAP_INIT_H */
-
diff --git a/libs/glibmm2/glibmmconfig.h.in b/libs/glibmm2/glibmmconfig.h.in
deleted file mode 100644 (file)
index dddcc07..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef _GLIBMM_CONFIG_H
-#define _GLIBMM_CONFIG_H 1
-
-/* version numbers */
-#undef GLIBMM_MAJOR_VERSION
-#undef GLIBMM_MINOR_VERSION
-#undef GLIBMM_MICRO_VERSION
-
-// detect common platforms
-#if defined(_WIN32)
-// Win32 compilers have a lot of varation
-#if defined(_MSC_VER)
-#define GLIBMM_MSC
-#define GLIBMM_WIN32
-#define GLIBMM_DLL
-#elif defined(__CYGWIN__)
-#define GLIBMM_CONFIGURE
-#elif defined(__MINGW32__)
-#define GLIBMM_WIN32
-#define GLIBMM_CONFIGURE
-#else
-//AIX clR compiler complains about this even though it doesn't get this far:
-//#warning "Unknown architecture (send me gcc --dumpspecs or equiv)"
-#endif
-#else
-#define GLIBMM_CONFIGURE
-#endif /* _WIN32 */
-
-#ifdef GLIBMM_CONFIGURE
-/* compiler feature tests that are used during compile time and run-time
-   by gtk-- only. tests used by gdk-- and gtk-- should go into
-   gdk--config.h.in */
-#undef GLIBMM_CXX_HAVE_MUTABLE
-#undef GLIBMM_CXX_HAVE_NAMESPACES
-//#undef GLIBMM_CXX_GAUB
-//#undef GLIBMM_CXX_AMBIGUOUS_TEMPLATES
-#undef GLIBMM_HAVE_NAMESPACE_STD
-#undef GLIBMM_HAVE_STD_ITERATOR_TRAITS
-#undef GLIBMM_HAVE_SUN_REVERSE_ITERATOR
-#undef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
-#undef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
-#undef GLIBMM_COMPILER_SUN_FORTE
-#undef GLIBMM_DEBUG_REFCOUNTING
-#undef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
-#undef GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS
-#undef GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC
-#undef GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS
-#endif
-
-#ifdef GLIBMM_MSC
-  #define GLIBMM_CXX_HAVE_MUTABLE 1
-  #define GLIBMM_CXX_HAVE_NAMESPACES 1
-  #define GLIBMM_HAVE_NAMESPACE_STD 1
-  #define GLIBMM_HAVE_STD_ITERATOR_TRAITS 1
-  #define GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS 2
-  #define GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS 1
-  #define GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION 1
-  #define GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS 1
-  #define GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC 1
-  #define GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS 1
-  #pragma warning (disable: 4786 4355 4800 4181)
-#endif
-
-#ifndef GLIBMM_HAVE_NAMESPACE_STD
-#  define GLIBMM_USING_STD(Symbol) namespace std { using ::Symbol; }
-#else
-#  define GLIBMM_USING_STD(Symbol) /* empty */
-#endif
-
-#ifdef GLIBMM_DLL
-  #if defined(GLIBMM_BUILD) && defined(_WINDLL)
-    /* Do not dllexport as it is handled by gendef on MSVC */
-    #define GLIBMM_API 
-  #elif !defined(GLIBMM_BUILD)
-    #define GLIBMM_API __declspec(dllimport)
-  #else
-    /* Build a static library */
-    #define GLIBMM_API
-  #endif /* GLIBMM_BUILD - _WINDLL */
-#else
-  #define GLIBMM_API
-#endif /* GLIBMM_DLL */
-
-#endif /* _GLIBMM_CONFIG_H */
-
diff --git a/libs/glibmm2/scripts/.cvsignore b/libs/glibmm2/scripts/.cvsignore
deleted file mode 100644 (file)
index f480274..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-config.guess
-config.sub
-install-sh
-ltmain.sh
-missing
diff --git a/libs/glibmm2/scripts/cxx.m4 b/libs/glibmm2/scripts/cxx.m4
deleted file mode 100644 (file)
index 8dce019..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-
-dnl
-dnl AC_CXX_NAMESPACES(ACTION_FOUND,ACTION_NOT_FOUND)
-dnl
-AC_DEFUN([AC_CXX_NAMESPACES],[
-AC_MSG_CHECKING(if C++ compiler supports namespaces)
-AC_TRY_COMPILE(
-[
-namespace Foo { struct A {}; }
-using namespace Foo;
-],[
-A a;
-(void)a;
-],[
- ac_cxx_namespaces=yes
- AC_MSG_RESULT([$ac_cxx_namespaces])
- $1
-],[
- ac_cxx_namespaces=no
- AC_MSG_RESULT([$ac_cxx_namespaces])
- $2
-])
-])
-
-dnl
-dnl AC_CXX_NAMESPACES(ACTION_FOUND,ACTION_NOT_FOUND)
-dnl
-AC_DEFUN([AC_CXX_BOOL],[
-AC_MSG_CHECKING(if C++ compiler supports bool)
-AC_TRY_COMPILE(
-[
-],[
-   bool b=true;
-   bool b1=false;
-   (void)b;
-   (void)b1;
-],[
-  ac_cxx_bool=yes
-  AC_MSG_RESULT([$ac_cxx_bool])
-  $1
-],[
-  ac_cxx_bool=no
-  AC_MSG_RESULT([$ac_cxx_bool])
-  $2
-])
-])
-
-dnl
-dnl AC_CXX_MUTABLE(ACTION_FOUND,ACTION_NOT_FOUND)
-dnl
-AC_DEFUN([AC_CXX_MUTABLE],[
-AC_MSG_CHECKING(if C++ compiler supports mutable)
-AC_TRY_COMPILE(
-[
-class k {   
-  mutable char *c;
-public:
-   void foo() const { c=0; }
-};
-],[
-],[
-  ac_cxx_mutable=yes
-  AC_MSG_RESULT([$ac_cxx_mutable])
-  $1
-],[
-  ac_cxx_mutable=no
-  AC_MSG_RESULT([$ac_cxx_mutable])
-  $2
-]) 
-])
-
-
-dnl
-dnl AC_CXX_CONST_CAST(ACTION_FOUND,ACTION_NOT_FOUND)
-dnl
-AC_DEFUN([AC_CXX_CONST_CAST],[
-AC_MSG_CHECKING([if C++ compiler supports const_cast<>])
-AC_TRY_COMPILE(
-[
-   class foo;
-],[
-   const foo *c=0;
-   foo *c1=const_cast<foo*>(c);
-   (void)c1;
-],[
-  ac_cxx_const_cast=yes
-  AC_MSG_RESULT([$ac_cxx_const_cast])
-],[
-  ac_cxx_const_cast=no
-  AC_MSG_RESULT([$ac_cxx_const_cast])
-])
-])
-
-
-dnl
-dnl GLIBMM_CXX_MEMBER_FUNCTIONS_MEMBER_TEMPLATES(ACTION_FOUND,ACTION_NOT_FOUND)
-dnl
-dnl Test whether the compiler allows member functions to refer to spezialized member function templates.
-dnl Some compilers have problems with this. gcc 2.95.3 aborts with an internal compiler error.
-dnl
-AC_DEFUN([GLIBMM_CXX_MEMBER_FUNCTIONS_MEMBER_TEMPLATES],[
-AC_MSG_CHECKING([if C++ compiler allows member functions to refer to member templates])
-AC_TRY_COMPILE(
-[
-  struct foo {
-    template <class C> inline
-    void doit();
-    void thebug();
-  };
-
-  template <class C> inline
-  void foo::doit() {
-  }
-
-  struct bar {
-    void neitherabug();
-  };
-
-  void notabug() {
-    void (foo::*func)();
-    func = &foo::doit<int>;
-    (void)func;
-  }
-
-  void bar::neitherabug() {
-    void (foo::*func)();
-    func = &foo::doit<int>;
-    (void)func;
-  }
-
-  void foo::thebug() {
-    void (foo::*func)();
-    func = &foo::doit<int>; //Compiler bugs usually show here.
-    (void)func;
-  }
-],[],[
-  glibmm_cxx_member_functions_member_templates=yes
-  AC_DEFINE([GLIBMM_MEMBER_FUNCTIONS_MEMBER_TEMPLATES],[1],[does the C++ compiler allow member functions to refer to member templates])
-  AC_MSG_RESULT([$glibmm_cxx_member_functions_member_templates])
-],[
-  glibmm_cxx_member_functions_member_templates=no
-  AC_DEFINE([GLIBMM_MEMBER_FUNCTIONS_MEMBER_TEMPLATES],[0])
-  AC_MSG_RESULT([$glibmm_cxx_member_functions_member_templates])
-])
-])
-
-## GLIBMM_CXX_CAN_DISAMBIGUATE_CONST_TEMPLATE_SPECIALIZATIONS()
-##
-## Check whether the compiler finds it ambiguous to have both
-## const and non-const template specializations,
-## The SUN Forte compiler has this problem, though we are
-## not 100% sure that it's a C++ standards violation.
-##
-AC_DEFUN([GLIBMM_CXX_CAN_DISAMBIGUATE_CONST_TEMPLATE_SPECIALIZATIONS],
-[
-  AC_REQUIRE([GLIBMM_CXX_HAS_NAMESPACE_STD])
-
-  AC_CACHE_CHECK(
-    [whether the compiler finds it ambiguous to have both const and non-const template specializations],
-    [glibmm_cv_cxx_can_disambiguate_const_template_specializations],
-  [
-    AC_TRY_COMPILE(
-    [
-      #include <iostream>
-
-      template <class T> class Foo {};
-
-      template <typename T> class Traits {
-      public:
-          const char* whoami() {
-              return "generic template";
-          }
-      };
-
-      template <typename T> class Traits<Foo<T> > {
-      public:
-          const char* whoami() {
-              return "partial specialization for Foo<T>";
-          }
-      };
-
-      template <typename T> class Traits<Foo<const T> > {
-      public:
-          const char* whoami() {
-              return "partial specialization for Foo<const T>";
-          }
-      };
-      
-    ],[
-          Traits<int> it;
-          Traits<Foo<int> > fit;
-          Traits<Foo<const int> > cfit;
-
-          std::cout << "Traits<int>             --> "
-                    << it.whoami() << std::endl;
-          std::cout << "Traits<Foo<int>>        --> "
-                    << fit.whoami() << std::endl;
-          std::cout << "Traits<Foo<const int >> --> "
-                    << cfit.whoami() << std::endl;
-    ],
-      [glibmm_cv_cxx_can_disambiguate_const_template_specializations="yes"],
-      [glibmm_cv_cxx_can_disambiguate_const_template_specializations="no"]
-    )
-  ])
-
-  if test "x${glibmm_cv_cxx_can_disambiguate_const_template_specializations}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS],[1], [Defined if the compiler does not find it ambiguous to have both const and non-const template specializations])
-  }
-  fi
-])
-
-
-
-## GLIBMM_CXX_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION()
-##
-## Check whether the compiler allows us to define a template that uses 
-## dynamic_cast<> with an object whose type is not defined, 
-## even if we do not use that template before we have defined the type.
-## This should probably not be allowed anyway.
-##
-AC_DEFUN([GLIBMM_CXX_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION],
-[
-  AC_CACHE_CHECK(
-    [whether the compiler allows us to define a template that uses dynamic_cast<> with an object whose type is not yet defined],
-    [glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition],
-  [
-    AC_TRY_COMPILE(
-    [
-      class SomeClass;
-
-      SomeClass* some_function();
-
-      template <class T>
-      class SomeTemplate
-      {
-        static bool do_something()
-        {
-          //This does not compile, with the MipsPro (IRIX) compiler
-          //even if we don't use this template at all.
-          //(We would use it later, after we have defined the type).
-          return dynamic_cast<T*>(some_function());
-        }
-      };
-      
-    ],[
-       
-    ],
-      [glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition="yes"],
-      [glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition="no"]
-    )
-  ])
-
-  if test "x${glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION],[1], [Defined if the compiler allows us to define a template that uses dynamic_cast<> with an object whose type is not yet defined.])
-  }
-  fi
-])
-
-
-## GLIBMM_CXX_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS()
-##
-## Check whether the compiler allows us to use a non-extern "C" function, 
-## such as a static member function, to an extern "C" function pointer, 
-## such as a GTK+ callback.
-## This should not be allowed anyway.
-##
-AC_DEFUN([GLIBMM_CXX_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS],
-[
-  AC_CACHE_CHECK(
-    [whether the the compilerallows us to use a non-extern "C" function for an extern "C" function pointer.],
-    [glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks],
-  [
-    AC_TRY_COMPILE(
-    [
-      extern "C"
-      {
-        struct somestruct
-        {
-          void (*callback) (int);
-        };
-        
-      } // extern "C"
-      
-      void somefunction(int)
-      {
-      }
-      
-    ],[ 
-      somestruct something;
-      something.callback = &somefunction;
-    ],
-      [glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks="yes"],
-      [glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks="no"]
-    )
-  ])
-
-  if test "x${glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS],[1], [Defined if the compiler allows us to use a non-extern "C" function for an extern "C" function pointer.])
-  }
-  fi
-])
-
-## GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC()
-##
-## Check whether the compiler puts extern "C" functions in the global namespace, 
-## even inside a namespace declaration. The AIX xlC compiler does this, and also 
-## gets confused if we declare the namespace again inside the extern "C" block.
-## This seems like a compiler bug, but not a serious one.
-##
-AC_DEFUN([GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC],
-[
-  AC_CACHE_CHECK(
-    [whether the compiler uses namespace declarations inside extern "C" blocks.],
-    [glibmm_cv_cxx_can_use_namespaces_inside_externc],
-  [
-    AC_TRY_COMPILE(
-    [
-      namespace test
-      {
-      
-      extern "C"
-      {
-      
-      void do_something();
-      
-      } //extern C
-      
-      
-      class Something
-      {
-      protected:
-        int i;
-      
-        friend void do_something();
-      };
-      
-      void do_something()
-      {
-        Something something;
-        something.i = 1;
-      }
-      
-      } //namespace
-
-      
-    ],[ 
-     
-    ],
-      [glibmm_cv_cxx_can_use_namespaces_inside_externc="yes"],
-      [glibmm_cv_cxx_can_use_namespaces_inside_externc="no"]
-    )
-  ])
-
-  if test "x${glibmm_cv_cxx_can_use_namespaces_inside_externc}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC],[1], [Defined if the compiler whether the compiler uses namespace declarations inside extern "C" blocks.])
-  }
-  fi
-])
-
-
diff --git a/libs/glibmm2/scripts/cxx_std.m4 b/libs/glibmm2/scripts/cxx_std.m4
deleted file mode 100644 (file)
index cb64fd4..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-cv_cxx_has_namespace_std
-## GLIBMM_CXX_HAS_NAMESPACE_STD()
-##
-## Test whether libstdc++ declares namespace std.  For safety,
-## also check whether several randomly selected STL symbols
-## are available in namespace std.
-##
-## On success, #define GLIBMM_HAVE_NAMESPACE_STD to 1.
-##
-AC_DEFUN([GLIBMM_CXX_HAS_NAMESPACE_STD],
-[
-  AC_CACHE_CHECK(
-    [whether C++ library symbols are declared in namespace std],
-    [gtkmm_cv_cxx_has_namespace_std],
-  [
-    AC_TRY_COMPILE(
-    [
-      #include <algorithm>
-      #include <iterator>
-      #include <iostream>
-      #include <string>
-    ],[
-      using std::min;
-      using std::find;
-      using std::copy;
-      using std::bidirectional_iterator_tag;
-      using std::string;
-      using std::istream;
-      using std::cout;
-    ],
-      [gtkmm_cv_cxx_has_namespace_std="yes"],
-      [gtkmm_cv_cxx_has_namespace_std="no"]
-    )
-  ])
-
-  if test "x${gtkmm_cv_cxx_has_namespace_std}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_HAVE_NAMESPACE_STD],[1], [Defined when the libstdc++ declares the std-namespace])
-  }
-  fi
-])
-
-
-## GLIBMM_CXX_HAS_STD_ITERATOR_TRAITS()
-##
-## Check for standard-conform std::iterator_traits<>, and
-## #define GLIBMM_HAVE_STD_ITERATOR_TRAITS on success.
-##
-AC_DEFUN([GLIBMM_CXX_HAS_STD_ITERATOR_TRAITS],
-[
-  AC_REQUIRE([GLIBMM_CXX_HAS_NAMESPACE_STD])
-
-  AC_CACHE_CHECK(
-    [whether the C++ library supports std::iterator_traits],
-    [gtkmm_cv_cxx_has_std_iterator_traits],
-  [
-    AC_TRY_COMPILE(
-    [
-      #include <iterator>
-      #ifdef GLIBMM_HAVE_NAMESPACE_STD
-      using namespace std;
-      #endif
-    ],[
-      typedef iterator_traits<char*>::value_type ValueType;
-    ],
-      [gtkmm_cv_cxx_has_std_iterator_traits="yes"],
-      [gtkmm_cv_cxx_has_std_iterator_traits="no"]
-    )
-  ])
-
-  if test "x${gtkmm_cv_cxx_has_std_iterator_traits}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_HAVE_STD_ITERATOR_TRAITS],[1], [Defined if std::iterator_traits<> is standard-conforming])
-  }
-  fi
-])
-
-
-## GLIBMM_CXX_HAS_SUN_REVERSE_ITERATOR()
-##
-## Check for Sun libCstd style std::reverse_iterator,
-## and #define GLIBMM_HAVE_SUN_REVERSE_ITERATOR if found.
-##
-AC_DEFUN([GLIBMM_CXX_HAS_SUN_REVERSE_ITERATOR],
-[
-  AC_REQUIRE([GLIBMM_CXX_HAS_NAMESPACE_STD])
-
-  AC_CACHE_CHECK(
-    [for non-standard Sun libCstd reverse_iterator],
-    [gtkmm_cv_cxx_has_sun_reverse_iterator],
-  [
-    AC_TRY_COMPILE(
-    [
-      #include <iterator>
-      #ifdef GLIBMM_HAVE_NAMESPACE_STD
-      using namespace std;
-      #endif
-    ],[
-      typedef reverse_iterator<char*,random_access_iterator_tag,char,char&,char*,int> ReverseIter;
-    ],
-      [gtkmm_cv_cxx_has_sun_reverse_iterator="yes"],
-      [gtkmm_cv_cxx_has_sun_reverse_iterator="no"]
-    )
-  ])
-
-  if test "x${gtkmm_cv_cxx_has_sun_reverse_iterator}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_HAVE_SUN_REVERSE_ITERATOR],[1], [Defined if std::reverse_iterator is in Sun libCstd style])
-  }
-  fi
-])
-
-
-## GLIBMM_CXX_HAS_TEMPLATE_SEQUENCE_CTORS()
-##
-## Check whether the STL containers have templated sequence ctors,
-## and #define GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS on success.
-##
-AC_DEFUN([GLIBMM_CXX_HAS_TEMPLATE_SEQUENCE_CTORS],
-[
-  AC_REQUIRE([GLIBMM_CXX_HAS_NAMESPACE_STD])
-
-  AC_CACHE_CHECK(
-    [whether STL containers have templated sequence constructors],
-    [gtkmm_cv_cxx_has_template_sequence_ctors],
-  [
-    AC_TRY_COMPILE(
-    [
-      #include <vector>
-      #include <deque>
-      #include <list>
-      #ifdef GLIBMM_HAVE_NAMESPACE_STD
-      using namespace std;
-      #endif
-    ],[
-      const int array[8] = { 0, };
-      vector<int>  test_vector (&array[0], &array[8]);
-      deque<short> test_deque  (test_vector.begin(), test_vector.end());
-      list<long>   test_list   (test_deque.begin(),  test_deque.end());
-      test_vector.assign(test_list.begin(), test_list.end());
-    ],
-      [gtkmm_cv_cxx_has_template_sequence_ctors="yes"],
-      [gtkmm_cv_cxx_has_template_sequence_ctors="no"]
-    )
-  ])
-
-  if test "x${gtkmm_cv_cxx_has_template_sequence_ctors}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS],[1], [Defined if the STL containers have templated sequence ctors])
-  }
-  fi
-])
-
-## GLIBMM_CXX_ALLOWS_STATIC_INLINE_NPOS()
-##
-## Check whether the a static member variable may be initialized inline to std::string::npos.
-## The MipsPro (IRIX) compiler does not like this.
-## and #define GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS on success.
-##
-AC_DEFUN([GLIBMM_CXX_ALLOWS_STATIC_INLINE_NPOS],
-[
-  AC_REQUIRE([GLIBMM_CXX_HAS_NAMESPACE_STD])
-
-  AC_CACHE_CHECK(
-    [whether the compiler allows a static member variable to be initialized inline to std::string::npos],
-    [gtkmm_cv_cxx_has_allows_static_inline_npos],
-  [
-    AC_TRY_COMPILE(
-    [
-      #include <string>
-      #include <iostream>
-      
-      class ustringtest
-      {
-        public:
-        //The MipsPro compiler (IRIX) says "The indicated constant value is not known",
-        //so we need to initalize the static member data elsewhere.
-        static const std::string::size_type ustringnpos = std::string::npos;
-      };
-    ],[
-      std::cout << "npos=" << ustringtest::ustringnpos << std::endl;
-    ],
-      [gtkmm_cv_cxx_has_allows_static_inline_npos="yes"],
-      [gtkmm_cv_cxx_has_allows_static_inline_npos="no"]
-    )
-  ])
-
-  if test "x${gtkmm_cv_cxx_has_allows_static_inline_npos}" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS],[1], [Defined if a static member variable may be initialized inline to std::string::npos])
-  }
-  fi
-])
-
-
diff --git a/libs/glibmm2/scripts/macros.m4 b/libs/glibmm2/scripts/macros.m4
deleted file mode 100644 (file)
index 44a9c4d..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-dnl
-dnl Some macros needed for autoconf
-dnl
-
-dnl AL_PROG_GNU_M4(ACTION_NOT_FOUND)
-dnl  Check for GNU m4.  (sun won't do.)
-dnl
-AC_DEFUN([AL_PROG_GNU_M4],[
-AC_CHECK_PROGS(M4, gm4 m4, m4)
-
-if test "$M4" = "m4"; then
-  AC_MSG_CHECKING(whether m4 is GNU m4)
-  if $M4 --version </dev/null 2>/dev/null | grep '^GNU m4 ' >/dev/null ; then
-    AC_MSG_RESULT(yes)
-  else
-    AC_MSG_RESULT(no)
-    if test "$host_vendor" = "sun"; then
-      $1
-    fi
-  fi
-fi
-])
-
-
-dnl AL_PROG_GNU_MAKE(ACTION_NOT_FOUND)
-dnl   Check for GNU make (no sun make)
-dnl
-AC_DEFUN([AL_PROG_GNU_MAKE],[
-dnl 
-dnl Check for GNU make (stolen from gtk+/configure.in)
-AC_MSG_CHECKING(whether make is GNU Make)
-if ${MAKE-make} --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
-        AC_MSG_RESULT(yes)
-else
-        AC_MSG_RESULT(no)
-        if test "$host_vendor" = "sun" ; then
-           $1
-        fi
-fi
-])
-
-dnl AL_ACLOCAL_INCLUDE(macrodir)
-dnl   Add a directory to macro search (from gnome)
-AC_DEFUN([AL_ACLOCAL_INCLUDE],
-[
-  test "x$ACLOCAL_FLAGS" = "x" || ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
-  for dir in $1
-  do
-    ACLOCAL="$ACLOCAL -I $srcdir/$dir"
-  done
-])
-
-
-## GLIBMM_ARG_ENABLE_DEBUG_REFCOUNTING()
-##
-## Provide the --enable-debug-refcounting configure argument, disabled
-## by default.  If enabled, #define GTKMM_DEBUG_REFCOUNTING.
-##
-AC_DEFUN([GLIBMM_ARG_ENABLE_DEBUG_REFCOUNTING],
-[
-  AC_ARG_ENABLE([debug-refcounting],
-      [  --enable-debug-refcounting  Print a debug message on every ref/unref.
-                              [[default=disabled]]],
-      [glibmm_debug_refcounting="$enableval"],
-      [glibmm_debug_refcounting='no'])
-
-  if test "x$glibmm_debug_refcounting" = "xyes"; then
-  {
-    AC_DEFINE([GLIBMM_DEBUG_REFCOUNTING],[1], [Defined when the --enable-debug-refcounting configure argument was given])
-  }
-  fi
-])
-
-
-## GTKMM_ARG_ENABLE_WARNINGS()
-##
-## Provide the --enable-warnings configure argument, set to 'minimum'
-## by default.
-##
-AC_DEFUN([GTKMM_ARG_ENABLE_WARNINGS],
-[
-  AC_ARG_ENABLE([warnings],
-      [  --enable-warnings=[[none|minimum|maximum|hardcore]]
-                          Control compiler pickyness.  [[default=minimum]]],
-      [gtkmm_enable_warnings="$enableval"],
-      [gtkmm_enable_warnings='minimum'])
-
-  AC_MSG_CHECKING([for compiler warning flags to use])
-
-  gtkmm_warning_flags=''
-
-  case "$gtkmm_enable_warnings" in
-    minimum|yes) gtkmm_warning_flags='-Wall -Wno-long-long';;
-    maximum)     gtkmm_warning_flags='-pedantic -W -Wall -Wno-long-long';;
-    hardcore)    gtkmm_warning_flags='-pedantic -W -Wall -Wno-long-long -Werror';;
-  esac
-
-  gtkmm_use_flags=''
-
-  if test "x$gtkmm_warning_flags" != "x"
-  then
-    echo 'int foo() { return 0; }' > conftest.cc
-
-    for flag in $gtkmm_warning_flags
-    do
-      # Test whether the compiler accepts the flag.  GCC doesn't bail
-      # out when given an unsupported flag but prints a warning, so
-      # check the compiler output instead.
-      gtkmm_cxx_out="`$CXX $flag -c conftest.cc 2>&1`"
-      rm -f conftest.$OBJEXT
-      test "x${gtkmm_cxx_out}" = "x" && \
-        gtkmm_use_flags="${gtkmm_use_flags:+$gtkmm_use_flags }$flag"
-    done
-
-    rm -f conftest.cc
-    gtkmm_cxx_out=''
-  fi
-
-  if test "x$gtkmm_use_flags" != "x"
-  then
-    for flag in $gtkmm_use_flags
-    do
-      case " $CXXFLAGS " in
-        *" $flag "*) ;; # don't add flags twice
-        *)           CXXFLAGS="${CXXFLAGS:+$CXXFLAGS }$flag";;
-      esac
-    done
-  else
-    gtkmm_use_flags='none'
-  fi
-
-  AC_MSG_RESULT([$gtkmm_use_flags])
-])
-
diff --git a/libs/gtkmm2/gtk/gtkmm/assistant.cc b/libs/gtkmm2/gtk/gtkmm/assistant.cc
new file mode 100644 (file)
index 0000000..c608e7a
--- /dev/null
@@ -0,0 +1,586 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/assistant.h>
+#include <gtkmm/private/assistant_p.h>
+
+// -*- c++ -*-
+/* $Id: assistant.ccg,v 1.3 2006/05/11 11:40:24 murrayc Exp $ */
+
+/* 
+ *
+ * Copyright 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkassistant.h>
+#include <gtk/gtklabel.h>
+
+
+static gint SignalProxy_SlotForwardPage_gtk_callback(gint current_page, gpointer data)
+{
+  Gtk::Assistant::SlotForwardPage* the_slot = static_cast<Gtk::Assistant::SlotForwardPage*>(data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+    return (*the_slot)(current_page);
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+    return gint();
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+}
+
+static void SignalProxy_SlotForwardPage_gtk_callback_destroy(void* data)
+{
+  delete static_cast<Gtk::Assistant::SlotForwardPage*>(data);
+}
+
+
+namespace Gtk
+{
+
+void Assistant::set_forward_page_func(const SlotForwardPage& slot)
+{
+  // Create a copy of the slot object. A pointer to this will be passed
+  // through the callback's data parameter.  It will be deleted
+  // when SignalProxy_SlotForwardPage_gtk_callback_destroy() is called.
+  SlotForwardPage* slot_copy = new SlotForwardPage(slot);
+
+  gtk_assistant_set_forward_page_func(gobj(), 
+      &SignalProxy_SlotForwardPage_gtk_callback, slot_copy,
+      &SignalProxy_SlotForwardPage_gtk_callback_destroy);
+}
+  
+
+} // namespace Gtk
+
+
+namespace
+{
+
+
+static void Assistant_signal_prepare_callback(GtkAssistant* self, GtkWidget* p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,Gtk::Widget* > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo Assistant_signal_prepare_info =
+{
+  "prepare",
+  (GCallback) &Assistant_signal_prepare_callback,
+  (GCallback) &Assistant_signal_prepare_callback
+};
+
+
+static const Glib::SignalProxyInfo Assistant_signal_apply_info =
+{
+  "apply",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+static const Glib::SignalProxyInfo Assistant_signal_close_info =
+{
+  "close",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+static const Glib::SignalProxyInfo Assistant_signal_cancel_info =
+{
+  "cancel",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+} // anonymous namespace
+
+// static
+GType Glib::Value<Gtk::AssistantPageType>::value_type()
+{
+  return gtk_assistant_page_type_get_type();
+}
+
+
+namespace Glib
+{
+
+Gtk::Assistant* wrap(GtkAssistant* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::Assistant *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& Assistant_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &Assistant_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_assistant_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void Assistant_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->prepare = &prepare_callback;
+  klass->apply = &apply_callback;
+  klass->close = &close_callback;
+  klass->cancel = &cancel_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Assistant_Class::prepare_callback(GtkAssistant* self, GtkWidget* p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_prepare(Glib::wrap(p0)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->prepare)
+      (*base->prepare)(self, p0);
+  }
+}
+void Assistant_Class::apply_callback(GtkAssistant* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_apply();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->apply)
+      (*base->apply)(self);
+  }
+}
+void Assistant_Class::close_callback(GtkAssistant* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_close();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->close)
+      (*base->close)(self);
+  }
+}
+void Assistant_Class::cancel_callback(GtkAssistant* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_cancel();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->cancel)
+      (*base->cancel)(self);
+  }
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* Assistant_Class::wrap_new(GObject* o)
+{
+  return new Assistant((GtkAssistant*)(o)); //top-level windows can not be manage()ed.
+
+}
+
+
+/* The implementation: */
+
+Assistant::Assistant(const Glib::ConstructParams& construct_params)
+:
+  Gtk::Window(construct_params)
+{
+  }
+
+Assistant::Assistant(GtkAssistant* castitem)
+:
+  Gtk::Window((GtkWindow*)(castitem))
+{
+  }
+
+Assistant::~Assistant()
+{
+  destroy_();
+}
+
+Assistant::CppClassType Assistant::assistant_class_; // initialize static member
+
+GType Assistant::get_type()
+{
+  return assistant_class_.init().get_type();
+}
+
+GType Assistant::get_base_type()
+{
+  return gtk_assistant_get_type();
+}
+
+
+Assistant::Assistant()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Window(Glib::ConstructParams(assistant_class_.init()))
+{
+  }
+
+int Assistant::get_current_page() const
+{
+  return gtk_assistant_get_current_page(const_cast<GtkAssistant*>(gobj()));
+}
+
+void Assistant::set_current_page(int page_num)
+{
+gtk_assistant_set_current_page(gobj(), page_num); 
+}
+
+int Assistant::get_n_pages() const
+{
+  return gtk_assistant_get_n_pages(const_cast<GtkAssistant*>(gobj()));
+}
+
+Widget* Assistant::get_nth_page(int page_num)
+{
+  return Glib::wrap(gtk_assistant_get_nth_page(gobj(), page_num));
+}
+
+const Widget* Assistant::get_nth_page(int page_num) const
+{
+  return const_cast<Assistant*>(this)->get_nth_page(page_num);
+}
+
+int Assistant::prepend_page(Widget& page)
+{
+  return gtk_assistant_prepend_page(gobj(), (page).gobj());
+}
+
+int Assistant::append_page(Widget& page)
+{
+  return gtk_assistant_append_page(gobj(), (page).gobj());
+}
+
+int Assistant::insert_page(Widget& page, int position)
+{
+  return gtk_assistant_insert_page(gobj(), (page).gobj(), position);
+}
+
+void Assistant::set_page_type(const Widget& page, AssistantPageType type)
+{
+gtk_assistant_set_page_type(gobj(), const_cast<GtkWidget*>((page).gobj()), ((GtkAssistantPageType)(type))); 
+}
+
+AssistantPageType Assistant::get_page_type(const Widget& page) const
+{
+  return ((AssistantPageType)(gtk_assistant_get_page_type(const_cast<GtkAssistant*>(gobj()), const_cast<GtkWidget*>((page).gobj()))));
+}
+
+void Assistant::set_page_title(const Widget& page, const Glib::ustring& title)
+{
+gtk_assistant_set_page_title(gobj(), const_cast<GtkWidget*>((page).gobj()), title.c_str()); 
+}
+
+Glib::ustring Assistant::get_page_title(const Widget& page) const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_assistant_get_page_title(const_cast<GtkAssistant*>(gobj()), const_cast<GtkWidget*>((page).gobj())));
+}
+
+void Assistant::set_page_header_image(const Widget& page, const Glib::RefPtr<Gdk::Pixbuf>& pixbuf)
+{
+gtk_assistant_set_page_header_image(gobj(), const_cast<GtkWidget*>((page).gobj()), Glib::unwrap(pixbuf)); 
+}
+
+Glib::RefPtr<Gdk::Pixbuf> Assistant::get_page_header_image(const Widget& page)
+{
+  return Glib::wrap(gtk_assistant_get_page_header_image(gobj(), const_cast<GtkWidget*>((page).gobj())));
+}
+
+Glib::RefPtr<const Gdk::Pixbuf> Assistant::get_page_header_image(const Widget& page) const
+{
+  return const_cast<Assistant*>(this)->get_page_header_image(page);
+}
+
+void Assistant::set_page_side_image(const Widget& page, const Glib::RefPtr<Gdk::Pixbuf>& pixbuf)
+{
+gtk_assistant_set_page_side_image(gobj(), const_cast<GtkWidget*>((page).gobj()), Glib::unwrap(pixbuf)); 
+}
+
+Glib::RefPtr<Gdk::Pixbuf> Assistant::get_page_side_image(const Widget& page)
+{
+  return Glib::wrap(gtk_assistant_get_page_side_image(gobj(), const_cast<GtkWidget*>((page).gobj())));
+}
+
+Glib::RefPtr<const Gdk::Pixbuf> Assistant::get_page_side_image(const Widget& page) const
+{
+  return const_cast<Assistant*>(this)->get_page_side_image(page);
+}
+
+void Assistant::set_page_complete(const Widget& page, bool complete)
+{
+gtk_assistant_set_page_complete(gobj(), const_cast<GtkWidget*>((page).gobj()), static_cast<int>(complete)); 
+}
+
+bool Assistant::get_page_complete(const Widget& page) const
+{
+  return gtk_assistant_get_page_complete(const_cast<GtkAssistant*>(gobj()), const_cast<GtkWidget*>((page).gobj()));
+}
+
+void Assistant::add_action_widget(Widget& child)
+{
+gtk_assistant_add_action_widget(gobj(), (child).gobj()); 
+}
+
+void Assistant::remove_action_widget(Widget& child)
+{
+gtk_assistant_remove_action_widget(gobj(), (child).gobj()); 
+}
+
+void Assistant::update_buttons_state()
+{
+gtk_assistant_update_buttons_state(gobj()); 
+}
+
+
+Glib::SignalProxy1< void,Gtk::Widget* > Assistant::signal_prepare()
+{
+  return Glib::SignalProxy1< void,Gtk::Widget* >(this, &Assistant_signal_prepare_info);
+}
+
+
+Glib::SignalProxy0< void > Assistant::signal_apply()
+{
+  return Glib::SignalProxy0< void >(this, &Assistant_signal_apply_info);
+}
+
+
+Glib::SignalProxy0< void > Assistant::signal_close()
+{
+  return Glib::SignalProxy0< void >(this, &Assistant_signal_close_info);
+}
+
+
+Glib::SignalProxy0< void > Assistant::signal_cancel()
+{
+  return Glib::SignalProxy0< void >(this, &Assistant_signal_cancel_info);
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Gtk::Assistant::on_prepare(Gtk::Widget* page)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->prepare)
+    (*base->prepare)(gobj(),(GtkWidget*)Glib::unwrap(page));
+}
+void Gtk::Assistant::on_apply()
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->apply)
+    (*base->apply)(gobj());
+}
+void Gtk::Assistant::on_close()
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->close)
+    (*base->close)(gobj());
+}
+void Gtk::Assistant::on_cancel()
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->cancel)
+    (*base->cancel)(gobj());
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/assistant.h b/libs/gtkmm2/gtk/gtkmm/assistant.h
new file mode 100644 (file)
index 0000000..f932943
--- /dev/null
@@ -0,0 +1,258 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_ASSISTANT_H
+#define _GTKMM_ASSISTANT_H
+
+
+#include <glibmm.h>
+
+/* $Id: assistant.hg,v 1.4 2006/06/13 17:16:26 murrayc Exp $ */
+
+/* assistant.h
+ *
+ * Copyright (C) 2004 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/window.h>
+#include <gdkmm/pixbuf.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkAssistant GtkAssistant;
+typedef struct _GtkAssistantClass GtkAssistantClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class Assistant_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum AssistantPageType
+{
+  ASSISTANT_PAGE_CONTENT,
+  ASSISTANT_PAGE_INTRO,
+  ASSISTANT_PAGE_CONFIRM,
+  ASSISTANT_PAGE_SUMMARY,
+  ASSISTANT_PAGE_PROGRESS
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::AssistantPageType> : public Glib::Value_Enum<Gtk::AssistantPageType>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** TODO
+ *
+ * @newin2p10
+ * @ingroup Dialogs
+ */
+
+class Assistant : public Window
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef Assistant CppObjectType;
+  typedef Assistant_Class CppClassType;
+  typedef GtkAssistant BaseObjectType;
+  typedef GtkAssistantClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~Assistant();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class Assistant_Class;
+  static CppClassType assistant_class_;
+
+  // noncopyable
+  Assistant(const Assistant&);
+  Assistant& operator=(const Assistant&);
+
+protected:
+  explicit Assistant(const Glib::ConstructParams& construct_params);
+  explicit Assistant(GtkAssistant* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkAssistant*       gobj()       { return reinterpret_cast<GtkAssistant*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkAssistant* gobj() const { return reinterpret_cast<GtkAssistant*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual void on_prepare(Gtk::Widget* page);
+  virtual void on_apply();
+  virtual void on_close();
+  virtual void on_cancel();
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+  
+public:
+  Assistant();
+
+  
+  int get_current_page() const;
+  
+  void set_current_page(int page_num);
+  
+  int get_n_pages() const;
+  
+  Widget* get_nth_page(int page_num);
+  
+  const Widget* get_nth_page(int page_num) const;
+  
+  int prepend_page(Widget& page);
+  
+  int append_page(Widget& page);
+  
+  int insert_page(Widget& page, int position);
+  
+  typedef sigc::slot<int, int /* current_page */> SlotForwardPage;
+
+  void set_forward_page_func(const SlotForwardPage& slot);
+  
+
+  void set_page_type(const Widget& page, AssistantPageType type);
+  
+  AssistantPageType  get_page_type(const Widget& page) const;
+  
+  void set_page_title(const Widget& page, const Glib::ustring& title);
+  
+  Glib::ustring get_page_title(const Widget& page) const;
+  
+  void set_page_header_image(const Widget& page, const Glib::RefPtr<Gdk::Pixbuf>& pixbuf);
+  
+  Glib::RefPtr<Gdk::Pixbuf> get_page_header_image(const Widget& page);
+  
+  Glib::RefPtr<const Gdk::Pixbuf> get_page_header_image(const Widget& page) const;
+  
+  void set_page_side_image(const Widget& page, const Glib::RefPtr<Gdk::Pixbuf>& pixbuf);
+  
+  Glib::RefPtr<Gdk::Pixbuf> get_page_side_image(const Widget& page);
+  
+  Glib::RefPtr<const Gdk::Pixbuf> get_page_side_image(const Widget& page) const;
+  
+  void set_page_complete(const Widget& page, bool complete = true);
+  
+  bool get_page_complete(const Widget& page) const;
+  
+  void add_action_widget(Widget& child);
+  
+  void remove_action_widget(Widget& child);
+  
+  void update_buttons_state();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %prepare(Gtk::Widget* page)</tt>
+   */
+
+  Glib::SignalProxy1< void,Gtk::Widget* > signal_prepare();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %apply()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_apply();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %close()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_close();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %cancel()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_cancel();
+
+
+  //TODO: Child properties?
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::Assistant
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::Assistant* wrap(GtkAssistant* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_ASSISTANT_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/cellrendereraccel.cc b/libs/gtkmm2/gtk/gtkmm/cellrendereraccel.cc
new file mode 100644 (file)
index 0000000..0e10e4d
--- /dev/null
@@ -0,0 +1,381 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/cellrendereraccel.h>
+#include <gtkmm/private/cellrendereraccel_p.h>
+
+// -*- c++ -*-
+/* $Id: cellrendereraccel.ccg,v 1.2 2006/05/11 11:40:24 murrayc Exp $ */
+
+/* 
+ *
+ * Copyright 2005 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <gtk/gtkcellrendereraccel.h>
+
+namespace Gtk
+{
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_Base CellRendererAccel::_property_renderable()
+{
+  //Renderering just this one property would probably not be meaningful.
+  return property_accel_key();
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+} //namespace Gtk
+
+namespace
+{
+
+
+static void CellRendererAccel_signal_accel_edited_callback(GtkCellRendererAccel* self, const gchar* p0,guint p1,GdkModifierType p2,guint p3,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::ustring&,guint,Gdk::ModifierType,guint > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::convert_const_gchar_ptr_to_ustring(p0)
+, p1, ((Gdk::ModifierType)(p2))
+, p3);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo CellRendererAccel_signal_accel_edited_info =
+{
+  "accel_edited",
+  (GCallback) &CellRendererAccel_signal_accel_edited_callback,
+  (GCallback) &CellRendererAccel_signal_accel_edited_callback
+};
+
+
+static void CellRendererAccel_signal_accel_cleared_callback(GtkCellRendererAccel* self, const gchar* p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::ustring& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::convert_const_gchar_ptr_to_ustring(p0)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo CellRendererAccel_signal_accel_cleared_info =
+{
+  "accel_cleared",
+  (GCallback) &CellRendererAccel_signal_accel_cleared_callback,
+  (GCallback) &CellRendererAccel_signal_accel_cleared_callback
+};
+
+
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::CellRendererAccel* wrap(GtkCellRendererAccel* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::CellRendererAccel *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& CellRendererAccel_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &CellRendererAccel_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_cell_renderer_accel_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void CellRendererAccel_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->accel_edited = &accel_edited_callback;
+  klass->accel_cleared = &accel_cleared_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void CellRendererAccel_Class::accel_edited_callback(GtkCellRendererAccel* self, const gchar* p0, guint p1, GdkModifierType p2, guint p3)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_accel_edited(Glib::convert_const_gchar_ptr_to_ustring(p0)
+, p1, ((Gdk::ModifierType)(p2))
+, p3);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->accel_edited)
+      (*base->accel_edited)(self, p0, p1, p2, p3);
+  }
+}
+void CellRendererAccel_Class::accel_cleared_callback(GtkCellRendererAccel* self, const gchar* p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_accel_cleared(Glib::convert_const_gchar_ptr_to_ustring(p0)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->accel_cleared)
+      (*base->accel_cleared)(self, p0);
+  }
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* CellRendererAccel_Class::wrap_new(GObject* o)
+{
+  return manage(new CellRendererAccel((GtkCellRendererAccel*)(o)));
+
+}
+
+
+/* The implementation: */
+
+CellRendererAccel::CellRendererAccel(const Glib::ConstructParams& construct_params)
+:
+  Gtk::CellRendererText(construct_params)
+{
+  }
+
+CellRendererAccel::CellRendererAccel(GtkCellRendererAccel* castitem)
+:
+  Gtk::CellRendererText((GtkCellRendererText*)(castitem))
+{
+  }
+
+CellRendererAccel::~CellRendererAccel()
+{
+  destroy_();
+}
+
+CellRendererAccel::CppClassType CellRendererAccel::cellrendereraccel_class_; // initialize static member
+
+GType CellRendererAccel::get_type()
+{
+  return cellrendereraccel_class_.init().get_type();
+}
+
+GType CellRendererAccel::get_base_type()
+{
+  return gtk_cell_renderer_accel_get_type();
+}
+
+
+CellRendererAccel::CellRendererAccel()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::CellRendererText(Glib::ConstructParams(cellrendereraccel_class_.init()))
+{
+  }
+
+
+Glib::SignalProxy4< void,const Glib::ustring&,guint,Gdk::ModifierType,guint > CellRendererAccel::signal_accel_edited()
+{
+  return Glib::SignalProxy4< void,const Glib::ustring&,guint,Gdk::ModifierType,guint >(this, &CellRendererAccel_signal_accel_edited_info);
+}
+
+
+Glib::SignalProxy1< void,const Glib::ustring& > CellRendererAccel::signal_accel_cleared()
+{
+  return Glib::SignalProxy1< void,const Glib::ustring& >(this, &CellRendererAccel_signal_accel_cleared_info);
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<guint> CellRendererAccel::property_accel_key() 
+{
+  return Glib::PropertyProxy<guint>(this, "accel-key");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<guint> CellRendererAccel::property_accel_key() const
+{
+  return Glib::PropertyProxy_ReadOnly<guint>(this, "accel-key");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<Gdk::ModifierType> CellRendererAccel::property_accel_mods() 
+{
+  return Glib::PropertyProxy<Gdk::ModifierType>(this, "accel-mods");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Gdk::ModifierType> CellRendererAccel::property_accel_mods() const
+{
+  return Glib::PropertyProxy_ReadOnly<Gdk::ModifierType>(this, "accel-mods");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<guint> CellRendererAccel::property_keycode() 
+{
+  return Glib::PropertyProxy<guint>(this, "keycode");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<guint> CellRendererAccel::property_keycode() const
+{
+  return Glib::PropertyProxy_ReadOnly<guint>(this, "keycode");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Gtk::CellRendererAccel::on_accel_edited(const Glib::ustring& path_string, guint accel_key, Gdk::ModifierType accel_mods, guint hardware_keycode)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->accel_edited)
+    (*base->accel_edited)(gobj(),path_string.c_str(),accel_key,((GdkModifierType)(accel_mods)),hardware_keycode);
+}
+void Gtk::CellRendererAccel::on_accel_cleared(const Glib::ustring& path_string)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->accel_cleared)
+    (*base->accel_cleared)(gobj(),path_string.c_str());
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/cellrendereraccel.h b/libs/gtkmm2/gtk/gtkmm/cellrendereraccel.h
new file mode 100644 (file)
index 0000000..075be99
--- /dev/null
@@ -0,0 +1,217 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_CELLRENDERERACCEL_H
+#define _GTKMM_CELLRENDERERACCEL_H
+
+
+#include <glibmm.h>
+
+/* $Id: cellrendereraccel.hg,v 1.2 2006/05/11 11:40:24 murrayc Exp $ */
+
+/* cellrendereraccel.h
+ * 
+ * Copyright (C) 2005 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/cellrenderertext.h>
+#include <gtkmm/accelkey.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkCellRendererAccel GtkCellRendererAccel;
+typedef struct _GtkCellRendererAccelClass GtkCellRendererAccelClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class CellRendererAccel_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/**  .
+ * TODO.
+ *
+ * @ingroup TreeView
+ * @newin2p10
+ */
+
+class CellRendererAccel : public CellRendererText
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef CellRendererAccel CppObjectType;
+  typedef CellRendererAccel_Class CppClassType;
+  typedef GtkCellRendererAccel BaseObjectType;
+  typedef GtkCellRendererAccelClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~CellRendererAccel();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class CellRendererAccel_Class;
+  static CppClassType cellrendereraccel_class_;
+
+  // noncopyable
+  CellRendererAccel(const CellRendererAccel&);
+  CellRendererAccel& operator=(const CellRendererAccel&);
+
+protected:
+  explicit CellRendererAccel(const Glib::ConstructParams& construct_params);
+  explicit CellRendererAccel(GtkCellRendererAccel* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkCellRendererAccel*       gobj()       { return reinterpret_cast<GtkCellRendererAccel*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkCellRendererAccel* gobj() const { return reinterpret_cast<GtkCellRendererAccel*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual void on_accel_edited(const Glib::ustring& path_string, guint accel_key, Gdk::ModifierType accel_mods, guint hardware_keycode);
+  virtual void on_accel_cleared(const Glib::ustring& path_string);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+public:
+
+  CellRendererAccel();
+
+  //TODO: Wrap accel_key and accel_mods in an AccelKey?
+  
+/**
+   * @par Prototype:
+   * <tt>void %accel_edited(const Glib::ustring& path_string, guint accel_key, Gdk::ModifierType accel_mods, guint hardware_keycode)</tt>
+   */
+
+  Glib::SignalProxy4< void,const Glib::ustring&,guint,Gdk::ModifierType,guint > signal_accel_edited();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %accel_cleared(const Glib::ustring& path_string)</tt>
+   */
+
+  Glib::SignalProxy1< void,const Glib::ustring& > signal_accel_cleared();
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The keyval of the accelerator.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<guint> property_accel_key() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The keyval of the accelerator.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<guint> property_accel_key() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The modifier mask of the accelerator.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<Gdk::ModifierType> property_accel_mods() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The modifier mask of the accelerator.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Gdk::ModifierType> property_accel_mods() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The hardware keycode of the accelerator.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<guint> property_keycode() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The hardware keycode of the accelerator.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<guint> property_keycode() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+  virtual Glib::PropertyProxy_Base _property_renderable(); //override
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+};
+
+} /* namespace Gtk */
+
+
+namespace Glib
+{
+  /** @relates Gtk::CellRendererAccel
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::CellRendererAccel* wrap(GtkCellRendererAccel* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_CELLRENDERERACCEL_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/cellrendererspin.cc b/libs/gtkmm2/gtk/gtkmm/cellrendererspin.cc
new file mode 100644 (file)
index 0000000..396686d
--- /dev/null
@@ -0,0 +1,197 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/cellrendererspin.h>
+#include <gtkmm/private/cellrendererspin_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkcellrendererspin.h>
+
+namespace Gtk
+{
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_Base CellRendererSpin::_property_renderable()
+{
+  return CellRendererText::_property_renderable();
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+} //namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::CellRendererSpin* wrap(GtkCellRendererSpin* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::CellRendererSpin *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& CellRendererSpin_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &CellRendererSpin_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_cell_renderer_spin_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void CellRendererSpin_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* CellRendererSpin_Class::wrap_new(GObject* o)
+{
+  return manage(new CellRendererSpin((GtkCellRendererSpin*)(o)));
+
+}
+
+
+/* The implementation: */
+
+CellRendererSpin::CellRendererSpin(const Glib::ConstructParams& construct_params)
+:
+  Gtk::CellRendererText(construct_params)
+{
+  }
+
+CellRendererSpin::CellRendererSpin(GtkCellRendererSpin* castitem)
+:
+  Gtk::CellRendererText((GtkCellRendererText*)(castitem))
+{
+  }
+
+CellRendererSpin::~CellRendererSpin()
+{
+  destroy_();
+}
+
+CellRendererSpin::CppClassType CellRendererSpin::cellrendererspin_class_; // initialize static member
+
+GType CellRendererSpin::get_type()
+{
+  return cellrendererspin_class_.init().get_type();
+}
+
+GType CellRendererSpin::get_base_type()
+{
+  return gtk_cell_renderer_spin_get_type();
+}
+
+
+CellRendererSpin::CellRendererSpin()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::CellRendererText(Glib::ConstructParams(cellrendererspin_class_.init()))
+{
+  }
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<Gtk::Adjustment*> CellRendererSpin::property_adjustment() 
+{
+  return Glib::PropertyProxy<Gtk::Adjustment*>(this, "adjustment");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Gtk::Adjustment*> CellRendererSpin::property_adjustment() const
+{
+  return Glib::PropertyProxy_ReadOnly<Gtk::Adjustment*>(this, "adjustment");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<double> CellRendererSpin::property_climb_rate() 
+{
+  return Glib::PropertyProxy<double>(this, "climb-rate");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<double> CellRendererSpin::property_climb_rate() const
+{
+  return Glib::PropertyProxy_ReadOnly<double>(this, "climb-rate");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<guint> CellRendererSpin::property_digits() 
+{
+  return Glib::PropertyProxy<guint>(this, "digits");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<guint> CellRendererSpin::property_digits() const
+{
+  return Glib::PropertyProxy_ReadOnly<guint>(this, "digits");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/cellrendererspin.h b/libs/gtkmm2/gtk/gtkmm/cellrendererspin.h
new file mode 100644 (file)
index 0000000..45dc037
--- /dev/null
@@ -0,0 +1,191 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_CELLRENDERERSPIN_H
+#define _GTKMM_CELLRENDERERSPIN_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/cellrenderertext.h>
+//#include <gtkmm/treemodel.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkCellRendererSpin GtkCellRendererSpin;
+typedef struct _GtkCellRendererSpinClass GtkCellRendererSpinClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class CellRendererSpin_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/**  TODO. 
+ *
+ * @ingroup TreeView
+ */
+
+class CellRendererSpin : public CellRendererText
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef CellRendererSpin CppObjectType;
+  typedef CellRendererSpin_Class CppClassType;
+  typedef GtkCellRendererSpin BaseObjectType;
+  typedef GtkCellRendererSpinClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~CellRendererSpin();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class CellRendererSpin_Class;
+  static CppClassType cellrendererspin_class_;
+
+  // noncopyable
+  CellRendererSpin(const CellRendererSpin&);
+  CellRendererSpin& operator=(const CellRendererSpin&);
+
+protected:
+  explicit CellRendererSpin(const Glib::ConstructParams& construct_params);
+  explicit CellRendererSpin(GtkCellRendererSpin* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkCellRendererSpin*       gobj()       { return reinterpret_cast<GtkCellRendererSpin*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkCellRendererSpin* gobj() const { return reinterpret_cast<GtkCellRendererSpin*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+public:
+
+  CellRendererSpin();
+  
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The adjustment that holds the value of the spinbutton.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<Gtk::Adjustment*> property_adjustment() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The adjustment that holds the value of the spinbutton.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Gtk::Adjustment*> property_adjustment() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The acceleration rate when you hold down a button.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<double> property_climb_rate() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The acceleration rate when you hold down a button.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<double> property_climb_rate() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The number of decimal places to display.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<guint> property_digits() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The number of decimal places to display.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<guint> property_digits() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+  virtual Glib::PropertyProxy_Base _property_renderable(); //override
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::CellRendererSpin
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::CellRendererSpin* wrap(GtkCellRendererSpin* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_CELLRENDERERSPIN_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/linkbutton.cc b/libs/gtkmm2/gtk/gtkmm/linkbutton.cc
new file mode 100644 (file)
index 0000000..6f24067
--- /dev/null
@@ -0,0 +1,193 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/linkbutton.h>
+#include <gtkmm/private/linkbutton_p.h>
+
+// -*- c++ -*-
+/* $Id: linkbutton.ccg,v 1.1 2006/01/29 12:21:43 murrayc Exp $ */
+
+/*
+ *
+ * Copyright 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtklinkbutton.h>
+
+namespace Gtk
+{
+
+
+} // namespace Gtk
+
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::LinkButton* wrap(GtkLinkButton* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::LinkButton *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& LinkButton_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &LinkButton_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_link_button_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void LinkButton_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* LinkButton_Class::wrap_new(GObject* o)
+{
+  return manage(new LinkButton((GtkLinkButton*)(o)));
+
+}
+
+
+/* The implementation: */
+
+LinkButton::LinkButton(const Glib::ConstructParams& construct_params)
+:
+  Gtk::Button(construct_params)
+{
+  }
+
+LinkButton::LinkButton(GtkLinkButton* castitem)
+:
+  Gtk::Button((GtkButton*)(castitem))
+{
+  }
+
+LinkButton::~LinkButton()
+{
+  destroy_();
+}
+
+LinkButton::CppClassType LinkButton::linkbutton_class_; // initialize static member
+
+GType LinkButton::get_type()
+{
+  return linkbutton_class_.init().get_type();
+}
+
+GType LinkButton::get_base_type()
+{
+  return gtk_link_button_get_type();
+}
+
+
+LinkButton::LinkButton()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Button(Glib::ConstructParams(linkbutton_class_.init()))
+{
+  }
+
+LinkButton::LinkButton(const Glib::ustring& uri)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Button(Glib::ConstructParams(linkbutton_class_.init(), "uri", uri.c_str(), (char*) 0))
+{
+  }
+
+LinkButton::LinkButton(const Glib::ustring& uri, const Glib::ustring& label)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Button(Glib::ConstructParams(linkbutton_class_.init(), "uri", uri.c_str(), "label", label.c_str(), (char*) 0))
+{
+  }
+
+Glib::ustring LinkButton::get_uri() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_link_button_get_uri(const_cast<GtkLinkButton*>(gobj())));
+}
+
+void LinkButton::set_uri(const Glib::ustring& uri)
+{
+gtk_link_button_set_uri(gobj(), uri.c_str()); 
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<Glib::ustring> LinkButton::property_uri() 
+{
+  return Glib::PropertyProxy<Glib::ustring>(this, "uri");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> LinkButton::property_uri() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "uri");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/linkbutton.h b/libs/gtkmm2/gtk/gtkmm/linkbutton.h
new file mode 100644 (file)
index 0000000..093b60d
--- /dev/null
@@ -0,0 +1,160 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_LINKBUTTON_H
+#define _GTKMM_LINKBUTTON_H
+
+
+#include <glibmm.h>
+
+/* $Id: linkbutton.hg,v 1.2 2006/03/22 16:53:22 murrayc Exp $ */
+
+/* linkbutton.h
+ * 
+ * Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/button.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkLinkButton GtkLinkButton;
+typedef struct _GtkLinkButtonClass GtkLinkButtonClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class LinkButton_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** TODO
+ *
+ * @newin2p10
+ * @ingroup Widgets
+ */
+
+class LinkButton : public Button
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef LinkButton CppObjectType;
+  typedef LinkButton_Class CppClassType;
+  typedef GtkLinkButton BaseObjectType;
+  typedef GtkLinkButtonClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~LinkButton();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class LinkButton_Class;
+  static CppClassType linkbutton_class_;
+
+  // noncopyable
+  LinkButton(const LinkButton&);
+  LinkButton& operator=(const LinkButton&);
+
+protected:
+  explicit LinkButton(const Glib::ConstructParams& construct_params);
+  explicit LinkButton(GtkLinkButton* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkLinkButton*       gobj()       { return reinterpret_cast<GtkLinkButton*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkLinkButton* gobj() const { return reinterpret_cast<GtkLinkButton*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+public:
+  LinkButton();
+  explicit LinkButton(const Glib::ustring& uri);
+  explicit LinkButton(const Glib::ustring& uri, const Glib::ustring& label);
+
+  
+  Glib::ustring get_uri() const;
+  
+  void set_uri(const Glib::ustring& uri);
+
+
+  //TODO: GtkLinkButtonUriFunc  gtk_link_button_set_uri_hook(GtkLinkButtonUriFunc func, gpointer data, GDestroyNotify destroy);
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The URI bound to this button.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<Glib::ustring> property_uri() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The URI bound to this button.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_uri() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+                                           
+
+};
+
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::LinkButton
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::LinkButton* wrap(GtkLinkButton* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_LINKBUTTON_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/listviewtext.cc b/libs/gtkmm2/gtk/gtkmm/listviewtext.cc
new file mode 100644 (file)
index 0000000..eda2357
--- /dev/null
@@ -0,0 +1,183 @@
+/* Copyright(C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/listviewtext.h>
+
+namespace Gtk
+{
+
+ListViewText::TextModelColumns::TextModelColumns(guint columns_count)
+: m_columns_count(columns_count)
+{
+  m_columns = new Gtk::TreeModelColumn<Glib::ustring>[m_columns_count];
+
+  if(m_columns)
+  {
+    for(guint i = 0; i < m_columns_count; ++i)
+    {
+      add(m_columns[i]);
+    }
+  }
+}
+
+ListViewText::TextModelColumns::~TextModelColumns()
+{
+  if(m_columns)
+    delete[] m_columns;
+}
+
+guint ListViewText::TextModelColumns::get_num_columns() const
+{
+  return m_columns_count;
+}
+
+ListViewText::ListViewText(guint columns_count, bool editable, Gtk::SelectionMode mode)
+: m_model_columns(columns_count)
+{
+  char column_title[20];
+  
+  // Create model
+  m_model = Gtk::ListStore::create(m_model_columns);   
+  set_model(m_model);
+
+  // Append columns
+  for(guint i = 0; i < columns_count; ++i)
+  {
+    //Get text for the number:
+    sprintf(column_title, "%d", i);            
+
+    if(editable)
+      append_column_editable(column_title, m_model_columns.m_columns[i]);
+    else
+      append_column(column_title, m_model_columns.m_columns[i]);
+  }
+
+  // Set multiple or simple selection
+  get_selection()->set_mode(mode);
+}
+
+ListViewText::~ListViewText()
+{
+}
+
+void ListViewText::set_column_title(guint column, const Glib::ustring& title)
+{
+  g_return_if_fail( column < get_columns().size() );
+
+  get_column(column)->set_title(title);
+}
+
+Glib::ustring ListViewText::get_column_title(guint column) const
+{
+  g_return_val_if_fail( column < get_columns().size(), "" ); //Using Glib::ustring() fails sometimes: Bug #352226
+
+  return get_column(column)->get_title();
+}
+
+guint ListViewText::append_text(const Glib::ustring& column_one_value)
+{
+  Gtk::TreeModel::Row newRow = *(m_model->append());
+
+  newRow[m_model_columns.m_columns[0]] = column_one_value;
+
+  return size() - 1;
+}
+
+void ListViewText::prepend_text(const Glib::ustring& column_one_value)
+{
+  Gtk::TreeModel::Row newRow = *(m_model->prepend());
+
+  newRow[m_model_columns.m_columns[0]] = column_one_value;
+}
+
+void ListViewText::insert_text(guint row, const Glib::ustring& column_one_value)
+{
+  g_return_if_fail( row < size() );
+
+  Gtk::ListStore::const_iterator iter = m_model->children()[row];
+  Gtk::TreeModel::Row newRow = *(m_model->insert(iter));
+
+  if(!column_one_value.empty())
+  {
+    newRow[m_model_columns.m_columns[0]] = column_one_value;
+  }
+}
+
+void ListViewText::clear_items()
+{
+  m_model->clear();
+}
+
+Glib::ustring ListViewText::get_text(guint row, guint column) const
+{
+  Glib::ustring result;
+
+  g_return_val_if_fail( row < size(), result );
+
+  Gtk::TreeModel::iterator iter = m_model->children()[row];     
+  iter->get_value(column, result);
+
+  return result;
+}
+
+void ListViewText::set_text(guint row, guint column, const Glib::ustring& value)
+{
+  g_return_if_fail( row < size() );
+
+  Gtk::TreeModel::iterator iter = m_model->children()[row];
+  (*iter)->set_value(column, value);
+}
+
+void ListViewText::set_text(guint row, const Glib::ustring& value)
+{
+  g_return_if_fail( row < size() );
+
+  Gtk::TreeModel::iterator iter = m_model->children()[ row ];
+  (*iter)->set_value(0, value);
+}
+
+guint ListViewText::size() const
+{
+  return (guint)m_model->children().size();
+}
+
+guint ListViewText::get_num_columns() const
+{
+  return m_model_columns.get_num_columns();
+}
+
+ListViewText::SelectionList ListViewText::get_selected()
+{
+  Glib::RefPtr<Gtk::TreeSelection> selected = get_selection();
+  Gtk::TreeSelection::ListHandle_Path selectedRows = selected->get_selected_rows();
+
+  // Reserve space
+  SelectionList selectionList;
+  selectionList.reserve( selected->count_selected_rows() );
+
+  // Save selected rows
+
+  for(Gtk::TreeSelection::ListHandle_Path::const_iterator iter = selectedRows.begin(); iter != selectedRows.end(); ++iter)
+  {
+    selectionList.push_back( *((*iter).begin()) );
+  }
+
+  return selectionList;
+}
+
+} //namespace Gtk
+
diff --git a/libs/gtkmm2/gtk/gtkmm/listviewtext.h b/libs/gtkmm2/gtk/gtkmm/listviewtext.h
new file mode 100644 (file)
index 0000000..b8236ab
--- /dev/null
@@ -0,0 +1,136 @@
+/* Copyright(C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _GTKMM_LISTVIEW_TEXT_H
+#define _GTKMM_LISTVIEW_TEXT_H
+
+#include <gtkmm/treeview.h>
+#include <gtkmm/liststore.h>
+
+#include <vector>
+
+namespace Gtk
+{
+
+/** A simple listbox which presents some lines of information in columns and lets the user select some of them.
+ *
+ * This is a convenience class, based on Gtk::TreeView, which allows only text values and does not allow child items.
+ * In most cases you will actually need the functionality offered by a real Gtk::TreeView with your own type-safe 
+ * Gtk::TreeModel::ColumnRecord.
+ *
+ * @ingroup Widgets
+ * @ingroup Containers
+ * @ingroup TreeView
+ *
+ * @newin2p10
+ */
+class ListViewText : public Gtk::TreeView
+{
+public:
+
+  ListViewText(guint columns_count, bool editable = false, Gtk::SelectionMode mode = Gtk::SELECTION_SINGLE);
+  virtual ~ListViewText();
+
+  /** Adds a title to column @a column.
+   * @param column the column number.
+   * @param title the title for column @a column.
+   */
+  void set_column_title(guint column, const Glib::ustring& title);
+
+  /** Gets the title of column @a column.
+   * @param column the column number.
+   * @return the title of column @a column.
+   */
+  Glib::ustring get_column_title(guint column) const;
+
+  /** Add a new row at the end of the list
+   * @param column_one_value the new text for the new row, column 0
+   * @return the number of the row added
+   */
+  guint append_text(const Glib::ustring& column_one_value = Glib::ustring());
+
+  /** Insert a new row at the beginning of the list
+   * @param column_one_value the new text for the new row, column 0
+   */
+  void prepend_text(const Glib::ustring& column_one_value = Glib::ustring());
+
+  /** Insert a new row at an arbitrary position in the list
+   * @param row The row number
+   * @param column_one_value the new text for the new row, column 0
+   */
+  void insert_text(guint row, const Glib::ustring& column_one_value = Glib::ustring());
+
+  /// Discard all row:
+  void clear_items();
+
+  /** Obtain the value of an existing cell from the list.
+   * @param row the number of the row in the listbox.
+   * @param column the number of the column in the row.
+   * @return the value of that cell, if it exists.
+   */
+  Glib::ustring get_text(guint row, guint column = 0) const;
+
+  /** Change an existing value of cell of the list.
+   * @param row the number of the row in the list.
+   * @param column the number of the column in the row.         
+   * @param value the new contents of that row and column.
+   */
+  void set_text(guint row, guint column, const Glib::ustring& value);
+
+  /** Change an existing value of a column 0 of a row of the list
+   * @param row the number of the row in the list.
+   * @param value the new contents of column 0 of the row.
+   */
+  void set_text(guint row, const Glib::ustring& value);
+
+  /// @return the number of rows in the listbox
+  guint size() const;
+
+  /// @return the number of columns in the listbox
+  guint get_num_columns() const;
+
+  typedef std::vector<int> SelectionList;
+
+  /** Returns a vector of the indexes of the selected rows
+    * @return a SelectionList with the selection results
+    */
+  SelectionList get_selected();
+
+protected:
+
+ class TextModelColumns : public Gtk::TreeModel::ColumnRecord
+  {
+  public:
+    TextModelColumns(guint columns_count);
+    ~TextModelColumns();
+
+    guint get_num_columns() const;
+
+    Gtk::TreeModelColumn<Glib::ustring>* m_columns;
+
+  protected:
+    guint m_columns_count;
+  };
+
+  Glib::RefPtr<Gtk::ListStore> m_model;
+  TextModelColumns m_model_columns;
+};
+
+} //namespace Gtk
+
+#endif //_GTKMM_LISTVIEW_TEXT_H
+
diff --git a/libs/gtkmm2/gtk/gtkmm/pagesetup.cc b/libs/gtkmm2/gtk/gtkmm/pagesetup.cc
new file mode 100644 (file)
index 0000000..1fd7f16
--- /dev/null
@@ -0,0 +1,241 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/pagesetup.h>
+#include <gtkmm/private/pagesetup_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkpagesetup.h>
+#include <gtk/gtktypebuiltins.h>
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::PageSetup> wrap(GtkPageSetup* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::PageSetup>( dynamic_cast<Gtk::PageSetup*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& PageSetup_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &PageSetup_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_page_setup_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void PageSetup_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PageSetup_Class::wrap_new(GObject* object)
+{
+  return new PageSetup((GtkPageSetup*)object);
+}
+
+
+/* The implementation: */
+
+GtkPageSetup* PageSetup::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+PageSetup::PageSetup(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+PageSetup::PageSetup(GtkPageSetup* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+PageSetup::~PageSetup()
+{}
+
+
+PageSetup::CppClassType PageSetup::pagesetup_class_; // initialize static member
+
+GType PageSetup::get_type()
+{
+  return pagesetup_class_.init().get_type();
+}
+
+GType PageSetup::get_base_type()
+{
+  return gtk_page_setup_get_type();
+}
+
+
+PageSetup::PageSetup()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(pagesetup_class_.init()))
+{
+  }
+
+Glib::RefPtr<PageSetup> PageSetup::create()
+{
+  return Glib::RefPtr<PageSetup>( new PageSetup() );
+}
+PageOrientation PageSetup::get_orientation() const
+{
+  return (PageOrientation)gtk_page_setup_get_orientation(const_cast<GtkPageSetup*>(gobj()));
+}
+
+void PageSetup::set_orientation(PageOrientation orientation)
+{
+gtk_page_setup_set_orientation(gobj(), ((GtkPageOrientation)(orientation))); 
+}
+
+PaperSize PageSetup::get_paper_size()
+{
+  return Glib::wrap(gtk_page_setup_get_paper_size(gobj()), true);
+}
+
+const PaperSize PageSetup::get_paper_size() const
+{
+  return const_cast<PageSetup*>(this)->get_paper_size();
+}
+
+void PageSetup::set_paper_size(const PaperSize& paper_size)
+{
+gtk_page_setup_set_paper_size(gobj(), const_cast<GtkPaperSize*>((paper_size).gobj())); 
+}
+
+double PageSetup::get_top_margin(Unit unit) const
+{
+  return gtk_page_setup_get_top_margin(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+void PageSetup::set_top_margin(double margin, Unit unit)
+{
+gtk_page_setup_set_top_margin(gobj(), margin, ((GtkUnit)(unit))); 
+}
+
+double PageSetup::get_bottom_margin(Unit unit) const
+{
+  return gtk_page_setup_get_bottom_margin(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+void PageSetup::set_bottom_margin(double margin, Unit unit)
+{
+gtk_page_setup_set_bottom_margin(gobj(), margin, ((GtkUnit)(unit))); 
+}
+
+double PageSetup::get_left_margin(Unit unit) const
+{
+  return gtk_page_setup_get_left_margin(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+void PageSetup::set_left_margin(double margin, Unit unit)
+{
+gtk_page_setup_set_left_margin(gobj(), margin, ((GtkUnit)(unit))); 
+}
+
+double PageSetup::get_right_margin(Unit unit) const
+{
+  return gtk_page_setup_get_right_margin(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+void PageSetup::set_right_margin(double margin, Unit unit)
+{
+gtk_page_setup_set_right_margin(gobj(), margin, ((GtkUnit)(unit))); 
+}
+
+void PageSetup::set_paper_size_and_default_margins(const PaperSize& paper_size)
+{
+gtk_page_setup_set_paper_size_and_default_margins(gobj(), const_cast<GtkPaperSize*>((paper_size).gobj())); 
+}
+
+double PageSetup::get_paper_width(Unit unit) const
+{
+  return gtk_page_setup_get_paper_width(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+double PageSetup::get_paper_height(Unit unit) const
+{
+  return gtk_page_setup_get_paper_height(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+double PageSetup::get_page_width(Unit unit) const
+{
+  return gtk_page_setup_get_page_width(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+double PageSetup::get_page_height(Unit unit) const
+{
+  return gtk_page_setup_get_page_height(const_cast<GtkPageSetup*>(gobj()), ((GtkUnit)(unit)));
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/pagesetup.h b/libs/gtkmm2/gtk/gtkmm/pagesetup.h
new file mode 100644 (file)
index 0000000..5ff810c
--- /dev/null
@@ -0,0 +1,189 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PAGESETUP_H
+#define _GTKMM_PAGESETUP_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <gtkmm/enums.h>
+#include <gtkmm/papersize.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPageSetup GtkPageSetup;
+typedef struct _GtkPageSetupClass GtkPageSetupClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PageSetup_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** A PageSetup object stores the page size, orientation and margins. You can get one of these from the page setup dialog 
+ * and then pass it to the PrintOperation when printing. The benefit of splitting this out of the PrintSettings is that 
+ * these affect the actual layout of the page, and thus need to be set long before the user prints.
+ *
+ * The margins specified in this object are the "print margins", i.e. the parts of the page that the printer cannot print  
+ * on. These are different from the layout margins that a word processor uses; they are typically used to determine the 
+ * minimal size for the layout margins.
+ *
+ * To obtain a PageSetup use PageSetup::create() to get the defaults, or use run_page_setup_dialog() to show the page 
+ * setup dialog and receive the resulting page setup. 
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PageSetup : public Glib::Object
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef PageSetup CppObjectType;
+  typedef PageSetup_Class CppClassType;
+  typedef GtkPageSetup BaseObjectType;
+  typedef GtkPageSetupClass BaseClassType;
+
+private:  friend class PageSetup_Class;
+  static CppClassType pagesetup_class_;
+
+private:
+  // noncopyable
+  PageSetup(const PageSetup&);
+  PageSetup& operator=(const PageSetup&);
+
+protected:
+  explicit PageSetup(const Glib::ConstructParams& construct_params);
+  explicit PageSetup(GtkPageSetup* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~PageSetup();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkPageSetup*       gobj()       { return reinterpret_cast<GtkPageSetup*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkPageSetup* gobj() const { return reinterpret_cast<GtkPageSetup*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkPageSetup* gobj_copy();
+
+private:
+
+protected:
+  PageSetup();
+
+public:
+  
+  static Glib::RefPtr<PageSetup> create();
+
+
+  PageOrientation get_orientation() const;
+  
+  void set_orientation(PageOrientation orientation);
+
+  
+  PaperSize get_paper_size();
+  
+  const PaperSize get_paper_size() const;
+  
+  void set_paper_size(const PaperSize& paper_size);
+
+  
+  double get_top_margin(Unit unit) const;
+  
+  void set_top_margin(double margin, Unit unit);
+
+  
+  double get_bottom_margin(Unit unit) const;
+  
+  void set_bottom_margin(double margin, Unit unit);
+
+  
+  double get_left_margin(Unit unit) const;
+  
+  void set_left_margin(double margin, Unit unit);
+
+  
+  double get_right_margin(Unit unit) const;
+  
+  void set_right_margin(double margin, Unit unit);
+
+  
+  void set_paper_size_and_default_margins(const PaperSize& paper_size);
+
+  
+  double get_paper_width(Unit unit) const;
+  
+  double get_paper_height(Unit unit) const;
+
+  
+  double get_page_width(Unit unit) const;
+  
+  double get_page_height(Unit unit) const;
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PageSetup
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::PageSetup> wrap(GtkPageSetup* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_PAGESETUP_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/pagesetupunixdialog.cc b/libs/gtkmm2/gtk/gtkmm/pagesetupunixdialog.cc
new file mode 100644 (file)
index 0000000..0c37d00
--- /dev/null
@@ -0,0 +1,196 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/pagesetupunixdialog.h>
+#include <gtkmm/private/pagesetupunixdialog_p.h>
+
+// -*- c++ -*-
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkpagesetupunixdialog.h>
+
+namespace Gtk
+{
+
+PageSetupUnixDialog::PageSetupUnixDialog(Gtk::Window& parent, const Glib::ustring& title)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(pagesetupunixdialog_class_.init(), "title",title.c_str(), (char*) 0))
+{
+  set_transient_for(parent);
+}
+
+PageSetupUnixDialog::PageSetupUnixDialog(const Glib::ustring& title)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(pagesetupunixdialog_class_.init(), "title",title.c_str(), (char*) 0))
+{
+}
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::PageSetupUnixDialog* wrap(GtkPageSetupUnixDialog* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::PageSetupUnixDialog *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& PageSetupUnixDialog_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &PageSetupUnixDialog_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_page_setup_unix_dialog_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void PageSetupUnixDialog_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PageSetupUnixDialog_Class::wrap_new(GObject* o)
+{
+  return manage(new PageSetupUnixDialog((GtkPageSetupUnixDialog*)(o)));
+
+}
+
+
+/* The implementation: */
+
+PageSetupUnixDialog::PageSetupUnixDialog(const Glib::ConstructParams& construct_params)
+:
+  Gtk::Dialog(construct_params)
+{
+  }
+
+PageSetupUnixDialog::PageSetupUnixDialog(GtkPageSetupUnixDialog* castitem)
+:
+  Gtk::Dialog((GtkDialog*)(castitem))
+{
+  }
+
+PageSetupUnixDialog::~PageSetupUnixDialog()
+{
+  destroy_();
+}
+
+PageSetupUnixDialog::CppClassType PageSetupUnixDialog::pagesetupunixdialog_class_; // initialize static member
+
+GType PageSetupUnixDialog::get_type()
+{
+  return pagesetupunixdialog_class_.init().get_type();
+}
+
+GType PageSetupUnixDialog::get_base_type()
+{
+  return gtk_page_setup_unix_dialog_get_type();
+}
+
+
+void PageSetupUnixDialog::set_page_setup(const Glib::RefPtr<PageSetup>& page_setup)
+{
+gtk_page_setup_unix_dialog_set_page_setup(gobj(), Glib::unwrap(page_setup)); 
+}
+
+Glib::RefPtr<PageSetup> PageSetupUnixDialog::get_page_setup()
+{
+
+  Glib::RefPtr<PageSetup> retvalue = Glib::wrap(gtk_page_setup_unix_dialog_get_page_setup(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const PageSetup> PageSetupUnixDialog::get_page_setup() const
+{
+  return const_cast<PageSetupUnixDialog*>(this)->get_page_setup();
+}
+
+void PageSetupUnixDialog::set_print_settings(const Glib::RefPtr<PrintSettings>& print_settings)
+{
+gtk_page_setup_unix_dialog_set_print_settings(gobj(), Glib::unwrap(print_settings)); 
+}
+
+Glib::RefPtr<PrintSettings> PageSetupUnixDialog::get_print_settings()
+{
+
+  Glib::RefPtr<PrintSettings> retvalue = Glib::wrap(gtk_page_setup_unix_dialog_get_print_settings(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const PrintSettings> PageSetupUnixDialog::get_print_settings() const
+{
+  return const_cast<PageSetupUnixDialog*>(this)->get_print_settings();
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/pagesetupunixdialog.h b/libs/gtkmm2/gtk/gtkmm/pagesetupunixdialog.h
new file mode 100644 (file)
index 0000000..3177c56
--- /dev/null
@@ -0,0 +1,152 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PAGESETUPUNIXDIALOG_H
+#define _GTKMM_PAGESETUPUNIXDIALOG_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/dialog.h>
+#include <gtkmm/pagesetup.h>
+#include <gtkmm/printsettings.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPageSetupUnixDialog GtkPageSetupUnixDialog;
+typedef struct _GtkPageSetupUnixDialogClass GtkPageSetupUnixDialogClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PageSetupUnixDialog_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** PageSetupUnixDialog implements a page setup dialog for platforms
+ * which don't provide a native page setup dialog, like Unix. It can
+ * be used very much like any other GTK+ dialog, at the cost of
+ * the portability offered by the high-level printing API exposed
+ * through PrintOperation.
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PageSetupUnixDialog : public Dialog
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PageSetupUnixDialog CppObjectType;
+  typedef PageSetupUnixDialog_Class CppClassType;
+  typedef GtkPageSetupUnixDialog BaseObjectType;
+  typedef GtkPageSetupUnixDialogClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~PageSetupUnixDialog();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class PageSetupUnixDialog_Class;
+  static CppClassType pagesetupunixdialog_class_;
+
+  // noncopyable
+  PageSetupUnixDialog(const PageSetupUnixDialog&);
+  PageSetupUnixDialog& operator=(const PageSetupUnixDialog&);
+
+protected:
+  explicit PageSetupUnixDialog(const Glib::ConstructParams& construct_params);
+  explicit PageSetupUnixDialog(GtkPageSetupUnixDialog* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkPageSetupUnixDialog*       gobj()       { return reinterpret_cast<GtkPageSetupUnixDialog*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkPageSetupUnixDialog* gobj() const { return reinterpret_cast<GtkPageSetupUnixDialog*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+  //This is not available in on Win32.
+//This source file will not be compiled,
+//and the class will not be registered in wrap_init.h or wrap_init.cc
+
+
+public:
+  explicit PageSetupUnixDialog(Gtk::Window& parent, const Glib::ustring& title);
+  explicit PageSetupUnixDialog(const Glib::ustring& title);
+
+  
+  void set_page_setup(const Glib::RefPtr<PageSetup>& page_setup);
+  
+  Glib::RefPtr<PageSetup> get_page_setup();
+  
+  Glib::RefPtr<const PageSetup> get_page_setup() const;
+
+  
+  void set_print_settings(const Glib::RefPtr<PrintSettings>& print_settings);
+  
+  Glib::RefPtr<PrintSettings> get_print_settings();
+  
+  Glib::RefPtr<const PrintSettings> get_print_settings() const;
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PageSetupUnixDialog
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::PageSetupUnixDialog* wrap(GtkPageSetupUnixDialog* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_PAGESETUPUNIXDIALOG_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/papersize.cc b/libs/gtkmm2/gtk/gtkmm/papersize.cc
new file mode 100644 (file)
index 0000000..68606cf
--- /dev/null
@@ -0,0 +1,204 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/papersize.h>
+#include <gtkmm/private/papersize_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkpapersize.h>
+#include <gtk/gtktypebuiltins.h>
+
+namespace Gtk
+{
+
+//PaperSize::PaperSize()
+//:
+//  gobject_(gtk_paper_size_new(gtk_paper_size_get_default()))
+//{}
+
+PaperSize::PaperSize(const Glib::ustring& name)
+:
+  gobject_(gtk_paper_size_new(name.c_str()))
+{}
+
+PaperSize::PaperSize(const Glib::ustring& ppd_name, const Glib::ustring& ppd_display_name, double width, double height)
+:
+  gobject_(gtk_paper_size_new_from_ppd(ppd_name.c_str(),
+                                       ppd_display_name.c_str(),
+                                       gdouble(width),
+                                       gdouble(height)))
+{}
+
+PaperSize::PaperSize(const Glib::ustring& name, const Glib::ustring& display_name, double width, double height, Unit unit)
+:
+  gobject_(gtk_paper_size_new_custom(name.c_str(),
+                                     display_name.c_str(),
+                                     gdouble(width),
+                                     gdouble(height),
+                                     GtkUnit(unit)))
+{}
+
+bool PaperSize::equal(const PaperSize& other) const
+{
+  return (static_cast<bool>(gtk_paper_size_is_equal(const_cast<GtkPaperSize*>(this->gobj()),
+                                                    const_cast<GtkPaperSize*>(other.gobj()))));
+}
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+// static
+GType Glib::Value<Gtk::Unit>::value_type()
+{
+  return gtk_unit_get_type();
+}
+
+
+namespace Glib
+{
+
+Gtk::PaperSize wrap(GtkPaperSize* object, bool take_copy)
+{
+  return Gtk::PaperSize(object, take_copy);
+}
+
+} // namespace Glib
+
+
+namespace Gtk
+{
+
+
+// static
+GType PaperSize::get_type()
+{
+  return gtk_paper_size_get_type();
+}
+
+PaperSize::PaperSize()
+:
+  gobject_ (0) // Allows creation of invalid wrapper, e.g. for output arguments to methods.
+{}
+
+PaperSize::PaperSize(const PaperSize& other)
+:
+  gobject_ ((other.gobject_) ? gtk_paper_size_copy(other.gobject_) : 0)
+{}
+
+PaperSize::PaperSize(GtkPaperSize* gobject, bool make_a_copy)
+:
+  // For BoxedType wrappers, make_a_copy is true by default.  The static
+  // BoxedType wrappers must always take a copy, thus make_a_copy = true
+  // ensures identical behaviour if the default argument is used.
+  gobject_ ((make_a_copy && gobject) ? gtk_paper_size_copy(gobject) : gobject)
+{}
+
+PaperSize& PaperSize::operator=(const PaperSize& other)
+{
+  PaperSize temp (other);
+  swap(temp);
+  return *this;
+}
+
+PaperSize::~PaperSize()
+{
+  if(gobject_)
+    gtk_paper_size_free(gobject_);
+}
+
+void PaperSize::swap(PaperSize& other)
+{
+  GtkPaperSize *const temp = gobject_;
+  gobject_ = other.gobject_;
+  other.gobject_ = temp;
+}
+
+GtkPaperSize* PaperSize::gobj_copy() const
+{
+  return gtk_paper_size_copy(gobject_);
+}
+
+
+Glib::ustring PaperSize::get_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_paper_size_get_name(const_cast<GtkPaperSize*>(gobj())));
+}
+
+Glib::ustring PaperSize::get_display_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_paper_size_get_display_name(const_cast<GtkPaperSize*>(gobj())));
+}
+
+Glib::ustring PaperSize::get_ppd_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_paper_size_get_ppd_name(const_cast<GtkPaperSize*>(gobj())));
+}
+
+double PaperSize::get_width(Unit unit) const
+{
+  return gtk_paper_size_get_width(const_cast<GtkPaperSize*>(gobj()), ((GtkUnit)(unit)));
+}
+
+double PaperSize::get_height(Unit unit) const
+{
+  return gtk_paper_size_get_height(const_cast<GtkPaperSize*>(gobj()), ((GtkUnit)(unit)));
+}
+
+bool PaperSize::is_custom() const
+{
+  return gtk_paper_size_is_custom(const_cast<GtkPaperSize*>(gobj()));
+}
+
+void PaperSize::set_size(double width, double height, Unit unit)
+{
+gtk_paper_size_set_size(gobj(), width, height, ((GtkUnit)(unit))); 
+}
+
+double PaperSize::get_default_top_margin(Unit unit) const
+{
+  return gtk_paper_size_get_default_top_margin(const_cast<GtkPaperSize*>(gobj()), ((GtkUnit)(unit)));
+}
+
+double PaperSize::get_default_bottom_margin(Unit unit) const
+{
+  return gtk_paper_size_get_default_bottom_margin(const_cast<GtkPaperSize*>(gobj()), ((GtkUnit)(unit)));
+}
+
+double PaperSize::get_default_left_margin(Unit unit) const
+{
+  return gtk_paper_size_get_default_left_margin(const_cast<GtkPaperSize*>(gobj()), ((GtkUnit)(unit)));
+}
+
+double PaperSize::get_default_right_margin(Unit unit) const
+{
+  return gtk_paper_size_get_default_right_margin(const_cast<GtkPaperSize*>(gobj()), ((GtkUnit)(unit)));
+}
+
+Glib::ustring PaperSize::get_default()
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_paper_size_get_default());
+}
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/papersize.h b/libs/gtkmm2/gtk/gtkmm/papersize.h
new file mode 100644 (file)
index 0000000..d1e38bf
--- /dev/null
@@ -0,0 +1,212 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PAPERSIZE_H
+#define _GTKMM_PAPERSIZE_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+extern "C" { typedef struct _GtkPaperSize GtkPaperSize; }
+#endif
+
+namespace Gtk
+{
+
+/** Common paper names, from PWG 5101.1-2002 PWG: Standard for Media Standardized Names
+ *
+ */
+const Glib::ustring PAPER_NAME_A3 = "iso_a3";
+const Glib::ustring PAPER_NAME_A4 = "iso_a4";
+const Glib::ustring PAPER_NAME_A5 = "iso_a5";
+const Glib::ustring PAPER_NAME_B5 = "iso_b5";
+const Glib::ustring PAPER_NAME_LETTER = "na_letter";
+const Glib::ustring PAPER_NAME_EXECUTIVE = "na_executive";
+const Glib::ustring PAPER_NAME_LEGAL = "na_legal";
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum Unit
+{
+  UNIT_PIXEL,
+  UNIT_POINTS,
+  UNIT_INCH,
+  UNIT_MM
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::Unit> : public Glib::Value_Enum<Gtk::Unit>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** PaperSize handles paper sizes. It uses the standard called "PWG 5101.1-2002 PWG: Standard for Media Standardized Names" 
+ * to name the paper sizes (and to get the data for the page sizes). In addition to standard paper sizes, PaperSize allows 
+ * to construct custom paper sizes with arbitrary dimensions.
+ *
+ * The PaperSize object stores not only the dimensions (width and height) of a paper size and its name, it also provides 
+ * default print margins. 
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+class PaperSize
+{
+  // Cannot pass the _new function here, it must accept the 'name' argument.
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PaperSize CppObjectType;
+  typedef GtkPaperSize BaseObjectType;
+
+  static GType get_type() G_GNUC_CONST;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  PaperSize();
+
+  explicit PaperSize(GtkPaperSize* gobject, bool make_a_copy = true);
+
+  PaperSize(const PaperSize& other);
+  PaperSize& operator=(const PaperSize& other);
+
+  ~PaperSize();
+
+  void swap(PaperSize& other);
+
+  ///Provides access to the underlying C instance.
+  GtkPaperSize*       gobj()       { return gobject_; }
+
+  ///Provides access to the underlying C instance.
+  const GtkPaperSize* gobj() const { return gobject_; }
+
+  ///Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
+  GtkPaperSize* gobj_copy() const;
+
+protected:
+  GtkPaperSize* gobject_;
+
+private:
+
+public:
+  // Allowing no argument works because gtk_paper_size_new() will call
+  // gtk_paper_size_get_default() in case of NULL.
+  /// If a name is not specified, a default value will be used.
+  explicit PaperSize(const Glib::ustring& name = "");
+  explicit PaperSize(const Glib::ustring& ppd_name, const Glib::ustring& ppd_display_name, double width, double height);
+  explicit PaperSize(const Glib::ustring& name, const Glib::ustring& display_name, double width, double height, Unit unit);
+
+  
+  bool equal(const PaperSize& other) const;
+
+  
+  Glib::ustring get_name() const;
+  
+  Glib::ustring get_display_name() const;
+  
+  Glib::ustring get_ppd_name() const;
+
+  
+  double get_width(Unit unit) const;
+  
+  double get_height(Unit unit) const;
+  
+  bool is_custom() const;
+
+  
+  void set_size(double width, double height, Unit unit);
+  
+  double get_default_top_margin(Unit unit) const;
+  
+  double get_default_bottom_margin(Unit unit) const;
+  
+  double get_default_left_margin(Unit unit) const;
+  
+  double get_default_right_margin(Unit unit) const;
+
+  
+  static Glib::ustring get_default();
+
+
+};
+
+/** @relates Gtk::PaperSize */
+inline bool operator==(const PaperSize& lhs, const PaperSize& rhs)
+  { return lhs.equal(rhs); }
+
+/** @relates Gtk::PaperSize */
+inline bool operator!=(const PaperSize& lhs, const PaperSize& rhs)
+  { return !lhs.equal(rhs); }
+
+} // namespace Gtk
+
+
+namespace Gtk
+{
+
+/** @relates Gtk::PaperSize
+ * @param lhs The left-hand side
+ * @param rhs The right-hand side
+ */
+inline void swap(PaperSize& lhs, PaperSize& rhs)
+  { lhs.swap(rhs); }
+
+} // namespace Gtk
+
+namespace Glib
+{
+
+/** @relates Gtk::PaperSize
+ * @param object The C instance
+ * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+ * @result A C++ instance that wraps this C instance.
+ */
+Gtk::PaperSize wrap(GtkPaperSize* object, bool take_copy = false);
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+template <>
+class Value<Gtk::PaperSize> : public Glib::Value_Boxed<Gtk::PaperSize>
+{};
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+} // namespace Glib
+
+
+#endif /* _GTKMM_PAPERSIZE_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printcontext.cc b/libs/gtkmm2/gtk/gtkmm/printcontext.cc
new file mode 100644 (file)
index 0000000..695bf41
--- /dev/null
@@ -0,0 +1,230 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/printcontext.h>
+#include <gtkmm/private/printcontext_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprintcontext.h>
+
+namespace Gtk
+{
+
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::PrintContext> wrap(GtkPrintContext* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::PrintContext>( dynamic_cast<Gtk::PrintContext*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& PrintContext_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &PrintContext_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_print_context_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void PrintContext_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PrintContext_Class::wrap_new(GObject* object)
+{
+  return new PrintContext((GtkPrintContext*)object);
+}
+
+
+/* The implementation: */
+
+GtkPrintContext* PrintContext::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+PrintContext::PrintContext(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+PrintContext::PrintContext(GtkPrintContext* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+PrintContext::~PrintContext()
+{}
+
+
+PrintContext::CppClassType PrintContext::printcontext_class_; // initialize static member
+
+GType PrintContext::get_type()
+{
+  return printcontext_class_.init().get_type();
+}
+
+GType PrintContext::get_base_type()
+{
+  return gtk_print_context_get_type();
+}
+
+
+Cairo::RefPtr<Cairo::Context> PrintContext::get_cairo_context()
+{
+  return Cairo::RefPtr<Cairo::Context>(new Cairo::Context(gtk_print_context_get_cairo_context(gobj()), false /* take ref */));
+}
+
+Cairo::RefPtr<const Cairo::Context> PrintContext::get_cairo_context() const
+{
+  return const_cast<PrintContext*>(this)->get_cairo_context();
+}
+
+Glib::RefPtr<PageSetup> PrintContext::get_page_setup()
+{
+
+  Glib::RefPtr<PageSetup> retvalue = Glib::wrap(gtk_print_context_get_page_setup(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const PageSetup> PrintContext::get_page_setup() const
+{
+  return const_cast<PrintContext*>(this)->get_page_setup();
+}
+
+double PrintContext::get_width() const
+{
+  return gtk_print_context_get_width(const_cast<GtkPrintContext*>(gobj()));
+}
+
+double PrintContext::get_height() const
+{
+  return gtk_print_context_get_height(const_cast<GtkPrintContext*>(gobj()));
+}
+
+double PrintContext::get_dpi_x() const
+{
+  return gtk_print_context_get_dpi_x(const_cast<GtkPrintContext*>(gobj()));
+}
+
+double PrintContext::get_dpi_y() const
+{
+  return gtk_print_context_get_dpi_y(const_cast<GtkPrintContext*>(gobj()));
+}
+
+Glib::RefPtr<Pango::FontMap> PrintContext::get_pango_fontmap()
+{
+
+  Glib::RefPtr<Pango::FontMap> retvalue = Glib::wrap(gtk_print_context_get_pango_fontmap(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const Pango::FontMap> PrintContext::get_pango_fontmap() const
+{
+  return const_cast<PrintContext*>(this)->get_pango_fontmap();
+}
+
+Glib::RefPtr<Pango::Context> PrintContext::create_pango_context()
+{
+
+  Glib::RefPtr<Pango::Context> retvalue = Glib::wrap(gtk_print_context_create_pango_context(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<Pango::Layout> PrintContext::create_pango_layout()
+{
+
+  Glib::RefPtr<Pango::Layout> retvalue = Glib::wrap(gtk_print_context_create_pango_layout(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+void PrintContext::set_cairo_context(const Cairo::RefPtr<Cairo::Context>& cr, double dpi_x, double dpi_y)
+{
+gtk_print_context_set_cairo_context(gobj(), (cr)->cobj(), dpi_x, dpi_y); 
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printcontext.h b/libs/gtkmm2/gtk/gtkmm/printcontext.h
new file mode 100644 (file)
index 0000000..662a86b
--- /dev/null
@@ -0,0 +1,177 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTCONTEXT_H
+#define _GTKMM_PRINTCONTEXT_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+
+#include <cairomm/context.h>
+
+#include <pangomm/fontmap.h>
+#include <pangomm/context.h>
+#include <pangomm/layout.h>
+
+#include <gtkmm/pagesetup.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPrintContext GtkPrintContext;
+typedef struct _GtkPrintContextClass GtkPrintContextClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PrintContext_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** A PrintContext encapsulates context information that is required when
+ * drawing pages for printing, such as the cairo context and important 
+ * parameters like page size and resolution. It also lets you easily
+ * create Pango::Layout and Pango::Context objects that match the font metrics 
+ * of the cairo surface.
+ * 
+ * PrintContext objects gets passed to the begin-print, end-print, 
+ * request-page-setup and draw-page signals on the PrintOperation.
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PrintContext : public Glib::Object
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef PrintContext CppObjectType;
+  typedef PrintContext_Class CppClassType;
+  typedef GtkPrintContext BaseObjectType;
+  typedef GtkPrintContextClass BaseClassType;
+
+private:  friend class PrintContext_Class;
+  static CppClassType printcontext_class_;
+
+private:
+  // noncopyable
+  PrintContext(const PrintContext&);
+  PrintContext& operator=(const PrintContext&);
+
+protected:
+  explicit PrintContext(const Glib::ConstructParams& construct_params);
+  explicit PrintContext(GtkPrintContext* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~PrintContext();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkPrintContext*       gobj()       { return reinterpret_cast<GtkPrintContext*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkPrintContext* gobj() const { return reinterpret_cast<GtkPrintContext*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkPrintContext* gobj_copy();
+
+private:
+
+
+public:
+
+   
+  Cairo::RefPtr<Cairo::Context> get_cairo_context();
+  
+  Cairo::RefPtr<const Cairo::Context> get_cairo_context() const;
+
+  
+  Glib::RefPtr<PageSetup> get_page_setup();
+  
+  Glib::RefPtr<const PageSetup> get_page_setup() const;
+
+  
+  double get_width() const;
+  
+  double get_height() const;
+
+  
+  double get_dpi_x() const;
+  
+  double get_dpi_y() const;
+
+  
+  Glib::RefPtr<Pango::FontMap> get_pango_fontmap();
+  
+  Glib::RefPtr<const Pango::FontMap> get_pango_fontmap() const;
+
+  
+  Glib::RefPtr<Pango::Context> create_pango_context();
+  
+  Glib::RefPtr<Pango::Layout> create_pango_layout();
+
+  
+  void set_cairo_context(const Cairo::RefPtr<Cairo::Context>& cr, double dpi_x, double dpi_y);
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PrintContext
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::PrintContext> wrap(GtkPrintContext* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_PRINTCONTEXT_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printer.cc b/libs/gtkmm2/gtk/gtkmm/printer.cc
new file mode 100644 (file)
index 0000000..b9f049c
--- /dev/null
@@ -0,0 +1,393 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/printer.h>
+#include <gtkmm/private/printer_p.h>
+
+// -*- c++ -*-
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprinter.h>
+
+// This Signal Proxy allows the C++ coder to specify a sigc::slot instead of a static function.
+
+static gboolean SignalProxy_Custom_gtk_callback(GtkPrinter* gtk_printer, gpointer data)
+{
+  const Gtk::SlotPrinterEnumerator* the_slot = static_cast<Gtk::SlotPrinterEnumerator*>(data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+    // Create a suitable C++ instance to pass to the C++ method;
+    Glib::RefPtr<Gtk::Printer> printer = Glib::wrap(gtk_printer);
+
+    return (*the_slot)(printer);
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+    return false; // arbitrary default;
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+}
+
+static void SignalProxy_Custom_gtk_callback_destroy(void* data)
+{
+  delete static_cast<Gtk::SlotPrinterEnumerator*>(data);
+}
+
+namespace Gtk
+{
+
+bool Printer::equal(const Glib::RefPtr<Printer>& other) const
+{
+  return (static_cast<bool>(gtk_printer_compare(const_cast<GtkPrinter*>(this->gobj()),
+                                                const_cast<GtkPrinter*>(other->gobj()))));
+}
+
+void enumerate_printers(const SlotPrinterEnumerator& slot, bool wait)
+{
+  // Create a copy of the slot. A pointer to this will be passed through the callback's data parameter.
+  // It will be deleted when SignalProxy_Custom_gtk_callback_destroy() is called.
+  SlotPrinterEnumerator* slot_copy = new SlotPrinterEnumerator(slot);
+      
+  gtk_enumerate_printers(&SignalProxy_Custom_gtk_callback,
+                         slot_copy,
+                         &SignalProxy_Custom_gtk_callback_destroy,
+                         static_cast<int>(wait));
+}
+
+} // namespace Gtk
+
+namespace
+{
+
+
+static void Printer_signal_details_acquired_callback(GtkPrinter* self, gboolean p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,bool > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(p0
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo Printer_signal_details_acquired_info =
+{
+  "details_acquired",
+  (GCallback) &Printer_signal_details_acquired_callback,
+  (GCallback) &Printer_signal_details_acquired_callback
+};
+
+
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::Printer> wrap(GtkPrinter* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::Printer>( dynamic_cast<Gtk::Printer*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& Printer_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &Printer_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_printer_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void Printer_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->details_acquired = &details_acquired_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Printer_Class::details_acquired_callback(GtkPrinter* self, gboolean p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_details_acquired(p0
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->details_acquired)
+      (*base->details_acquired)(self, p0);
+  }
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* Printer_Class::wrap_new(GObject* object)
+{
+  return new Printer((GtkPrinter*)object);
+}
+
+
+/* The implementation: */
+
+GtkPrinter* Printer::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+Printer::Printer(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+Printer::Printer(GtkPrinter* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+Printer::~Printer()
+{}
+
+
+Printer::CppClassType Printer::printer_class_; // initialize static member
+
+GType Printer::get_type()
+{
+  return printer_class_.init().get_type();
+}
+
+GType Printer::get_base_type()
+{
+  return gtk_printer_get_type();
+}
+
+
+Glib::ustring Printer::get_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_printer_get_name(const_cast<GtkPrinter*>(gobj())));
+}
+
+Glib::ustring Printer::get_state_message() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_printer_get_state_message(const_cast<GtkPrinter*>(gobj())));
+}
+
+Glib::ustring Printer::get_description() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_printer_get_description(const_cast<GtkPrinter*>(gobj())));
+}
+
+Glib::ustring Printer::get_location() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_printer_get_location(const_cast<GtkPrinter*>(gobj())));
+}
+
+Glib::ustring Printer::get_icon_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_printer_get_icon_name(const_cast<GtkPrinter*>(gobj())));
+}
+
+int Printer::get_job_count() const
+{
+  return gtk_printer_get_job_count(const_cast<GtkPrinter*>(gobj()));
+}
+
+bool Printer::is_active() const
+{
+  return gtk_printer_is_active(const_cast<GtkPrinter*>(gobj()));
+}
+
+bool Printer::is_virtual() const
+{
+  return gtk_printer_is_virtual(const_cast<GtkPrinter*>(gobj()));
+}
+
+bool Printer::is_default() const
+{
+  return gtk_printer_is_default(const_cast<GtkPrinter*>(gobj()));
+}
+
+bool Printer::accepts_pdf() const
+{
+  return gtk_printer_accepts_pdf(const_cast<GtkPrinter*>(gobj()));
+}
+
+bool Printer::accepts_ps() const
+{
+  return gtk_printer_accepts_ps(const_cast<GtkPrinter*>(gobj()));
+}
+
+
+Glib::SignalProxy1< void,bool > Printer::signal_details_acquired()
+{
+  return Glib::SignalProxy1< void,bool >(this, &Printer_signal_details_acquired_info);
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> Printer::property_name() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "name");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> Printer::property_is_virtual() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "is-virtual");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> Printer::property_state_message() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "state-message");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> Printer::property_location() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "location");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> Printer::property_icon_name() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "icon-name");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> Printer::property_job_count() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "job-count");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> Printer::property_accepts_pdf() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "accepts-pdf");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> Printer::property_accepts_ps() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "accepts-ps");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Gtk::Printer::on_details_acquired(bool success)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->details_acquired)
+    (*base->details_acquired)(gobj(),static_cast<int>(success));
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printer.h b/libs/gtkmm2/gtk/gtkmm/printer.h
new file mode 100644 (file)
index 0000000..1ca588d
--- /dev/null
@@ -0,0 +1,290 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTER_H
+#define _GTKMM_PRINTER_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPrinter GtkPrinter;
+typedef struct _GtkPrinterClass GtkPrinterClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class Printer_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** A Printer object represents a printer. You only need to deal directly with printers if you use the 
+ * non-portable PrintUnixDialog API.
+ *
+ * A Printer object allows to get status information about the printer, such as its description, its location, 
+ * the number of queued jobs, etc. Most importantly, a Printer object can be used to create a PrintJob object, 
+ * which lets you print to the printer.
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class Printer : public Glib::Object
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef Printer CppObjectType;
+  typedef Printer_Class CppClassType;
+  typedef GtkPrinter BaseObjectType;
+  typedef GtkPrinterClass BaseClassType;
+
+private:  friend class Printer_Class;
+  static CppClassType printer_class_;
+
+private:
+  // noncopyable
+  Printer(const Printer&);
+  Printer& operator=(const Printer&);
+
+protected:
+  explicit Printer(const Glib::ConstructParams& construct_params);
+  explicit Printer(GtkPrinter* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~Printer();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkPrinter*       gobj()       { return reinterpret_cast<GtkPrinter*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkPrinter* gobj() const { return reinterpret_cast<GtkPrinter*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkPrinter* gobj_copy();
+
+private:
+
+  //This is not available in on Win32.
+//This source file will not be compiled,
+//and the class will not be registered in wrap_init.h or wrap_init.cc
+
+
+public:
+  //TODO: _WRAP_CREATE() - probably not, it's only accessible through PrintUnixDialog + GtkPrintBackend should be ignored
+  
+  //TODO: I think these are not needed as well, and that Printer should generally be read-only - marko.
+  
+  
+  bool equal(const Glib::RefPtr<Printer>& other) const;
+
+  //TODO: _WRAP_METHOD(Glib::RefPtr<PrintBackend> get_backend(), gtk_printer_get_backend. refreturn)
+  //_WRAP_METHOD(Glib::RefPtr<const PrintBackend> get_backend() const, gtk_printer_get_backend, refreturn, constversion)
+  
+  Glib::ustring get_name() const;
+  
+  Glib::ustring get_state_message() const;
+  
+  Glib::ustring get_description() const;
+  
+  Glib::ustring get_location() const;
+  
+  Glib::ustring get_icon_name() const;
+  
+  int get_job_count() const;
+  
+  bool is_active() const;
+  
+  bool is_virtual() const;
+  
+  bool is_default() const;
+  
+  bool accepts_pdf() const;
+  
+  bool accepts_ps() const;
+  
+  
+/**
+   * @par Prototype:
+   * <tt>void %details_acquired(bool success)</tt>
+   */
+
+  Glib::SignalProxy1< void,bool > signal_details_acquired();
+
+  
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Name of the printer.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_name() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  //TODO: _WRAP_PROPERTY("backend", Glib::RefPtr<PrintBackend>)
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** FALSE if this represents a real hardware printer.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_is_virtual() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** String giving the current state of the printer.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_state_message() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The location of the printer.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_location() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The icon name to use for the printer.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_icon_name() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Number of jobs queued in the printer.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_job_count() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if this printer can accept PDF.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_accepts_pdf() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if this printer can accept PostScript.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_accepts_ps() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual void on_details_acquired(bool success);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+/** @relates Gtk::Printer */
+inline bool operator==(const Glib::RefPtr<Printer>& lhs, const Glib::RefPtr<Printer>& rhs)
+  { return lhs->equal(rhs); }
+
+/** @relates Gtk::Printer */
+inline bool operator!=(const Glib::RefPtr<Printer>& lhs, const Glib::RefPtr<Printer>& rhs)
+  { return !lhs->equal(rhs); }
+
+/** For example, 
+ * bool on_enumerate_printers(const Glib::RefPtr<Printer>& printer);
+ *
+ * TODO: document return value.
+ *
+ * @relates Gtk::Printer
+ */
+typedef sigc::slot< bool, const Glib::RefPtr<Printer>& > SlotPrinterEnumerator;
+
+/** TODO: document this
+ *
+ * @relates Gtk::Printer
+ */
+void enumerate_printers(const SlotPrinterEnumerator& slot, bool wait = true);
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::Printer
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::Printer> wrap(GtkPrinter* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_PRINTER_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printjob.cc b/libs/gtkmm2/gtk/gtkmm/printjob.cc
new file mode 100644 (file)
index 0000000..89894d7
--- /dev/null
@@ -0,0 +1,389 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/printjob.h>
+#include <gtkmm/private/printjob_p.h>
+
+// -*- c++ -*-
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprintjob.h>
+#include <gtk/gtktypebuiltins.h>
+
+// This Signal Proxy allows the C++ coder to specify a sigc::slot instead of a static function.
+
+static void SignalProxy_Custom_gtk_callback(GtkPrintJob* print_job, gpointer data, GError* gerror)
+{
+  const Gtk::PrintJob::SlotPrintJobComplete* the_slot = static_cast<Gtk::PrintJob::SlotPrintJobComplete*>(data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+
+    // Create a suitable C++ instance to pass to the C++ method;
+    Glib::RefPtr<Gtk::PrintJob> job = Glib::wrap(print_job);
+
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    if (gerror) Glib::Error::throw_exception(gerror);
+    (*the_slot)(job);
+    #else
+    std::auto_ptr<Glib::Error> error = Glib::Error::throw_exception(gerror);
+    (*the_slot)(job, error);
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+}
+
+static void SignalProxy_Custom_gtk_callback_destroy(void* data)
+{
+  delete static_cast<Gtk::PrintJob::SlotPrintJobComplete*>(data);
+}
+
+namespace Gtk
+{
+
+void PrintJob::send(const SlotPrintJobComplete& slot)
+{
+  // Create a copy of the slot. A pointer to this will be passed through the callback's data parameter.
+  // It will be deleted when SignalProxy_Custom_gtk_callback_destroy() is called.
+  SlotPrintJobComplete* slot_copy = new SlotPrintJobComplete(slot);
+      
+  gtk_print_job_send(gobj(), &SignalProxy_Custom_gtk_callback, slot_copy, &SignalProxy_Custom_gtk_callback_destroy);
+}
+
+} // namespace Gtk
+
+namespace
+{
+
+
+static const Glib::SignalProxyInfo PrintJob_signal_status_changed_info =
+{
+  "status_changed",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+} // anonymous namespace
+
+// static
+GType Glib::Value<Gtk::PrintCapabilities>::value_type()
+{
+  return gtk_print_capabilities_get_type();
+}
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::PrintJob> wrap(GtkPrintJob* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::PrintJob>( dynamic_cast<Gtk::PrintJob*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& PrintJob_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &PrintJob_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_print_job_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void PrintJob_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->status_changed = &status_changed_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void PrintJob_Class::status_changed_callback(GtkPrintJob* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_status_changed();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->status_changed)
+      (*base->status_changed)(self);
+  }
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PrintJob_Class::wrap_new(GObject* object)
+{
+  return new PrintJob((GtkPrintJob*)object);
+}
+
+
+/* The implementation: */
+
+GtkPrintJob* PrintJob::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+PrintJob::PrintJob(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+PrintJob::PrintJob(GtkPrintJob* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+PrintJob::~PrintJob()
+{}
+
+
+PrintJob::CppClassType PrintJob::printjob_class_; // initialize static member
+
+GType PrintJob::get_type()
+{
+  return printjob_class_.init().get_type();
+}
+
+GType PrintJob::get_base_type()
+{
+  return gtk_print_job_get_type();
+}
+
+
+PrintJob::PrintJob(const Glib::ustring& title, const Glib::RefPtr<Printer>& printer, const Glib::RefPtr<PrintSettings>& settings, const Glib::RefPtr<PageSetup>& page_setup)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(printjob_class_.init(), "title", title.c_str(), "printer", Glib::unwrap(printer), "settings", Glib::unwrap(settings), "page_setup", Glib::unwrap(page_setup), (char*) 0))
+{
+  }
+
+Glib::RefPtr<PrintJob> PrintJob::create(const Glib::ustring& title, const Glib::RefPtr<Printer>& printer, const Glib::RefPtr<PrintSettings>& settings, const Glib::RefPtr<PageSetup>& page_setup)
+{
+  return Glib::RefPtr<PrintJob>( new PrintJob(title, printer, settings, page_setup) );
+}
+Glib::RefPtr<PrintSettings> PrintJob::get_settings()
+{
+
+  Glib::RefPtr<PrintSettings> retvalue = Glib::wrap(gtk_print_job_get_settings(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const PrintSettings> PrintJob::get_settings() const
+{
+  return const_cast<PrintJob*>(this)->get_settings();
+}
+
+Glib::RefPtr<Printer> PrintJob::get_printer()
+{
+
+  Glib::RefPtr<Printer> retvalue = Glib::wrap(gtk_print_job_get_printer(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const Printer> PrintJob::get_printer() const
+{
+  return const_cast<PrintJob*>(this)->get_printer();
+}
+
+Glib::ustring PrintJob::get_title() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_job_get_title(const_cast<GtkPrintJob*>(gobj())));
+}
+
+PrintStatus PrintJob::get_status() const
+{
+  return (PrintStatus)gtk_print_job_get_status(const_cast<GtkPrintJob*>(gobj()));
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+void PrintJob::set_source_file(const std::string& filename)
+#else
+void PrintJob::set_source_file(const std::string& filename, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  gtk_print_job_set_source_file(gobj(), filename.c_str(), &(gerror));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+Cairo::RefPtr<Cairo::Surface> PrintJob::get_surface()
+#else
+Cairo::RefPtr<Cairo::Surface> PrintJob::get_surface(std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  Cairo::RefPtr<Cairo::Surface> retvalue = Cairo::RefPtr<Cairo::Surface>(new Cairo::Surface(gtk_print_job_get_surface(gobj(), &(gerror)), false /* take reference */));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+void PrintJob::set_track_print_status(bool track_status)
+{
+gtk_print_job_set_track_print_status(gobj(), static_cast<int>(track_status)); 
+}
+
+bool PrintJob::get_track_print_status() const
+{
+  return gtk_print_job_get_track_print_status(const_cast<GtkPrintJob*>(gobj()));
+}
+
+
+Glib::SignalProxy0< void > PrintJob::signal_status_changed()
+{
+  return Glib::SignalProxy0< void >(this, &PrintJob_signal_status_changed_info);
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> PrintJob::property_title() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "title");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Printer> > PrintJob::property_printer() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Printer> >(this, "printer");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> > PrintJob::property_settings() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> >(this, "settings");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> > PrintJob::property_page_setup() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> >(this, "page-setup");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Gtk::PrintJob::on_status_changed()
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->status_changed)
+    (*base->status_changed)(gobj());
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printjob.h b/libs/gtkmm2/gtk/gtkmm/printjob.h
new file mode 100644 (file)
index 0000000..9da6a9e
--- /dev/null
@@ -0,0 +1,331 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTJOB_H
+#define _GTKMM_PRINTJOB_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <gtkmm/pagesetup.h>
+#include <gtkmm/printer.h>
+#include <gtkmm/printoperation.h>
+#include <gtkmm/printsettings.h>
+#include <cairomm/surface.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPrintJob GtkPrintJob;
+typedef struct _GtkPrintJobClass GtkPrintJobClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PrintJob_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ * @par Bitwise operators:
+ * <tt>%PrintCapabilities operator|(PrintCapabilities, PrintCapabilities)</tt><br>
+ * <tt>%PrintCapabilities operator&(PrintCapabilities, PrintCapabilities)</tt><br>
+ * <tt>%PrintCapabilities operator^(PrintCapabilities, PrintCapabilities)</tt><br>
+ * <tt>%PrintCapabilities operator~(PrintCapabilities)</tt><br>
+ * <tt>%PrintCapabilities& operator|=(PrintCapabilities&, PrintCapabilities)</tt><br>
+ * <tt>%PrintCapabilities& operator&=(PrintCapabilities&, PrintCapabilities)</tt><br>
+ * <tt>%PrintCapabilities& operator^=(PrintCapabilities&, PrintCapabilities)</tt><br>
+ */
+enum PrintCapabilities
+{
+  PRINT_CAPABILITY_PAGE_SET = 1 << 0,
+  PRINT_CAPABILITY_COPIES = 1 << 1,
+  PRINT_CAPABILITY_COLLATE = 1 << 2,
+  PRINT_CAPABILITY_REVERSE = 1 << 3,
+  PRINT_CAPABILITY_SCALE = 1 << 4,
+  PRINT_CAPABILITY_GENERATE_PDF = 1 << 5,
+  PRINT_CAPABILITY_GENERATE_PS = 1 << 6
+};
+
+/** @ingroup gtkmmEnums */
+inline PrintCapabilities operator|(PrintCapabilities lhs, PrintCapabilities rhs)
+  { return static_cast<PrintCapabilities>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
+
+/** @ingroup gtkmmEnums */
+inline PrintCapabilities operator&(PrintCapabilities lhs, PrintCapabilities rhs)
+  { return static_cast<PrintCapabilities>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
+
+/** @ingroup gtkmmEnums */
+inline PrintCapabilities operator^(PrintCapabilities lhs, PrintCapabilities rhs)
+  { return static_cast<PrintCapabilities>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
+
+/** @ingroup gtkmmEnums */
+inline PrintCapabilities operator~(PrintCapabilities flags)
+  { return static_cast<PrintCapabilities>(~static_cast<unsigned>(flags)); }
+
+/** @ingroup gtkmmEnums */
+inline PrintCapabilities& operator|=(PrintCapabilities& lhs, PrintCapabilities rhs)
+  { return (lhs = static_cast<PrintCapabilities>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
+
+/** @ingroup gtkmmEnums */
+inline PrintCapabilities& operator&=(PrintCapabilities& lhs, PrintCapabilities rhs)
+  { return (lhs = static_cast<PrintCapabilities>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
+
+/** @ingroup gtkmmEnums */
+inline PrintCapabilities& operator^=(PrintCapabilities& lhs, PrintCapabilities rhs)
+  { return (lhs = static_cast<PrintCapabilities>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintCapabilities> : public Glib::Value_Flags<Gtk::PrintCapabilities>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** A PrintJob object represents a job that is sent to a printer. You only need to deal 
+ * directly with print jobs if you  use the non-portable PrintUnixDialog API.
+ * 
+ * Use get_surface() to obtain the cairo surface onto which the pages must be drawn. 
+ * Use send() to send the finished job to the printer.If you don't use cairo then 
+ * PrintJob also supports printing of manually generated postscript, via set_source_file().
+ * 
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PrintJob : public Glib::Object
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef PrintJob CppObjectType;
+  typedef PrintJob_Class CppClassType;
+  typedef GtkPrintJob BaseObjectType;
+  typedef GtkPrintJobClass BaseClassType;
+
+private:  friend class PrintJob_Class;
+  static CppClassType printjob_class_;
+
+private:
+  // noncopyable
+  PrintJob(const PrintJob&);
+  PrintJob& operator=(const PrintJob&);
+
+protected:
+  explicit PrintJob(const Glib::ConstructParams& construct_params);
+  explicit PrintJob(GtkPrintJob* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~PrintJob();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkPrintJob*       gobj()       { return reinterpret_cast<GtkPrintJob*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkPrintJob* gobj() const { return reinterpret_cast<GtkPrintJob*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkPrintJob* gobj_copy();
+
+private:
+
+  //This is not available in on Win32.
+//This source file will not be compiled,
+//and the class will not be registered in wrap_init.h or wrap_init.cc
+
+
+protected:
+  explicit PrintJob(const Glib::ustring& title, const Glib::RefPtr<Printer>& printer, const Glib::RefPtr<PrintSettings>& settings, const Glib::RefPtr<PageSetup>& page_setup);
+
+public:
+  
+  static Glib::RefPtr<PrintJob> create(const Glib::ustring& title, const Glib::RefPtr<Printer>& printer, const Glib::RefPtr<PrintSettings>& settings, const Glib::RefPtr<PageSetup>& page_setup);
+
+
+  Glib::RefPtr<PrintSettings> get_settings();
+  
+  Glib::RefPtr<const PrintSettings> get_settings() const;
+
+  
+  Glib::RefPtr<Printer> get_printer();
+  
+  Glib::RefPtr<const Printer> get_printer() const;
+
+  
+  Glib::ustring get_title() const;
+  
+  PrintStatus get_status() const;
+   // this appears in gtkprinter-private.h
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  void set_source_file(const std::string& filename);
+#else
+  void set_source_file(const std::string& filename, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  Cairo::RefPtr<Cairo::Surface> get_surface();
+#else
+  Cairo::RefPtr<Cairo::Surface> get_surface(std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  //TODO: _WRAP_METHOD(Cairo::RefPtr<const Cairo::Surface> get_surface() const, gtk_print_job_get_surface, constversion, errthrow)
+
+  
+  void set_track_print_status(bool track_status = true);
+  
+  bool get_track_print_status() const;
+
+  
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  /** For example, 
+   * void on_print_job_complete(const Glib::RefPtr<PrintJob>& job);
+   *
+   * @throws exception
+   */
+  typedef sigc::slot< void, const Glib::RefPtr<PrintJob>& > SlotPrintJobComplete;
+  #else
+  /** For example, 
+   * void on_print_job_complete(const Glib::RefPtr<PrintJob>& job, std::auto_ptr<Glib::Error>& error);
+   */
+  typedef sigc::slot< void, const Glib::RefPtr<PrintJob>&, std::auto_ptr<Glib::Error>& > SlotPrintJobComplete;
+  #endif
+
+  /** TODO: document this
+   *
+   */
+  void send(const SlotPrintJobComplete& slot);
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %status_changed()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_status_changed();
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Title of the print job.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_title() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Printer to print the job to.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Printer> > property_printer() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Printer settings.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> > property_settings() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Page Setup.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> > property_page_setup() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual void on_status_changed();
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PrintJob
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::PrintJob> wrap(GtkPrintJob* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_PRINTJOB_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printoperation.cc b/libs/gtkmm2/gtk/gtkmm/printoperation.cc
new file mode 100644 (file)
index 0000000..b3181b3
--- /dev/null
@@ -0,0 +1,1549 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/printoperation.h>
+#include <gtkmm/private/printoperation_p.h>
+
+// -*- c++ -*-
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprintoperation.h>
+
+// This Signal Proxy allows the C++ coder to specify a sigc::slot instead of a static function.
+
+static void
+SignalProxy_PrintSetupDone_gtk_callback(GtkPageSetup* page_setup, gpointer data)
+{
+  const Gtk::SlotPrintSetupDone* the_slot = static_cast<Gtk::SlotPrintSetupDone*>(data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+    Glib::RefPtr<Gtk::PageSetup> ps = Glib::wrap(page_setup);
+    (*the_slot)(ps);
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch (...)
+  {
+    Glib::exception_handlers_invoke();
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  delete the_slot;
+}
+
+namespace Gtk
+{
+
+PrintOperationResult
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+PrintOperation::run(PrintOperationAction action)
+#else
+PrintOperation::run(PrintOperationAction action, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  PrintOperationResult res =
+    (PrintOperationResult)gtk_print_operation_run(this->gobj(), (GtkPrintOperationAction)action, 0, &gerror);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if (res == PRINT_OPERATION_RESULT_ERROR)
+  {
+    gtk_print_operation_get_error(this->gobj(), &gerror);
+    ::Glib::Error::throw_exception(gerror);
+  }
+  #else
+  if (res == PRINT_OPERATION_RESULT_ERROR)
+  {
+    gtk_print_operation_get_error(this->gobj(), &gerror);
+    error = ::Glib::Error::throw_exception(gerror);
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return res;
+}
+
+Glib::RefPtr<PageSetup>
+run_page_setup_dialog(Window& parent,
+                      const Glib::RefPtr<const PageSetup>& page_setup,
+                      const Glib::RefPtr<const PrintSettings>& print_settings)
+{
+  // Specify the exact type with template specialization, to avoid possible
+  // ambiguities between the const and non-const versions of unwrap() reported
+  // by Sun's compiler (specifying unwrap<const Object> was reported
+  // not to work):
+  return Glib::wrap(
+    gtk_print_run_page_setup_dialog(
+      parent.gobj(),
+      const_cast<GtkPageSetup*>(Glib::unwrap<PageSetup>(page_setup)),
+      const_cast<GtkPrintSettings*>(Glib::unwrap<PrintSettings>(print_settings))));
+
+}
+
+void
+run_page_setup_dialog_async(Window& parent,
+                            const Glib::RefPtr<const PageSetup>& page_setup,
+                            const Glib::RefPtr<const PrintSettings>& print_settings,
+                            const SlotPrintSetupDone& slot)
+{
+  SlotPrintSetupDone* slot_copy = new SlotPrintSetupDone(slot);
+
+  // Specify the exact type with template specialization, to avoid possible
+  // ambiguities between the const and non-const versions of unwrap() reported
+  // by Sun's compiler (specifying unwrap<const Object> was reported
+  // not to work):
+  gtk_print_run_page_setup_dialog_async(
+    parent.gobj(),
+    const_cast<GtkPageSetup*>(Glib::unwrap<PageSetup>(page_setup)),
+    const_cast<GtkPrintSettings*>(Glib::unwrap<PrintSettings>(print_settings)),
+    &SignalProxy_PrintSetupDone_gtk_callback,
+    slot_copy);
+}
+
+} // namespace Gtk
+
+namespace
+{
+
+
+static void PrintOperation_signal_done_callback(GtkPrintOperation* self, GtkPrintOperationResult p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,PrintOperationResult > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))((PrintOperationResult)p0
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_done_info =
+{
+  "done",
+  (GCallback) &PrintOperation_signal_done_callback,
+  (GCallback) &PrintOperation_signal_done_callback
+};
+
+
+static void PrintOperation_signal_begin_print_callback(GtkPrintOperation* self, GtkPrintContext* p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintContext>& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_begin_print_info =
+{
+  "begin_print",
+  (GCallback) &PrintOperation_signal_begin_print_callback,
+  (GCallback) &PrintOperation_signal_begin_print_callback
+};
+
+
+static gboolean PrintOperation_signal_paginate_callback(GtkPrintOperation* self, GtkPrintContext* p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< bool,const Glib::RefPtr<PrintContext>& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        return static_cast<int>((*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+));
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+
+static gboolean PrintOperation_signal_paginate_notify_callback(GtkPrintOperation* self, GtkPrintContext* p0, void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintContext>& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_paginate_info =
+{
+  "paginate",
+  (GCallback) &PrintOperation_signal_paginate_callback,
+  (GCallback) &PrintOperation_signal_paginate_notify_callback
+};
+
+
+static void PrintOperation_signal_request_page_setup_callback(GtkPrintOperation* self, GtkPrintContext* p0,gint p1,GtkPageSetup* p2,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintContext>&,int,const Glib::RefPtr<PageSetup>& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+, p1
+, Glib::wrap(p2, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_request_page_setup_info =
+{
+  "request_page_setup",
+  (GCallback) &PrintOperation_signal_request_page_setup_callback,
+  (GCallback) &PrintOperation_signal_request_page_setup_callback
+};
+
+
+static void PrintOperation_signal_draw_page_callback(GtkPrintOperation* self, GtkPrintContext* p0,gint p1,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintContext>&,int > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+, p1
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_draw_page_info =
+{
+  "draw_page",
+  (GCallback) &PrintOperation_signal_draw_page_callback,
+  (GCallback) &PrintOperation_signal_draw_page_callback
+};
+
+
+static void PrintOperation_signal_end_print_callback(GtkPrintOperation* self, GtkPrintContext* p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintContext>& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_end_print_info =
+{
+  "end_print",
+  (GCallback) &PrintOperation_signal_end_print_callback,
+  (GCallback) &PrintOperation_signal_end_print_callback
+};
+
+
+static const Glib::SignalProxyInfo PrintOperation_signal_status_changed_info =
+{
+  "status_changed",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+static GtkWidget* PrintOperation_signal_create_custom_widget_callback(GtkPrintOperation* self, void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< Widget* > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        return (GtkWidget*)Glib::unwrap((*static_cast<SlotType*>(slot))());
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef GtkWidget* RType;
+  return RType();
+}
+
+static GtkWidget* PrintOperation_signal_create_custom_widget_notify_callback(GtkPrintOperation* self,  void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef GtkWidget* RType;
+  return RType();
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_create_custom_widget_info =
+{
+  "create_custom_widget",
+  (GCallback) &PrintOperation_signal_create_custom_widget_callback,
+  (GCallback) &PrintOperation_signal_create_custom_widget_notify_callback
+};
+
+
+static void PrintOperation_signal_custom_widget_apply_callback(GtkPrintOperation* self, GtkWidget* p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,Widget* > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_custom_widget_apply_info =
+{
+  "custom_widget_apply",
+  (GCallback) &PrintOperation_signal_custom_widget_apply_callback,
+  (GCallback) &PrintOperation_signal_custom_widget_apply_callback
+};
+
+
+static gboolean PrintOperation_signal_preview_callback(GtkPrintOperation* self, GtkPrintOperationPreview* p0,GtkPrintContext* p1,GtkWindow* p2,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< bool,const Glib::RefPtr<PrintOperationPreview>&,const Glib::RefPtr<PrintContext>&,Window* > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        return static_cast<int>((*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+, Glib::wrap(p1, true)
+, Glib::wrap(p2)
+));
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+
+static gboolean PrintOperation_signal_preview_notify_callback(GtkPrintOperation* self, GtkPrintOperationPreview* p0,GtkPrintContext* p1,GtkWindow* p2, void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintOperationPreview>&,const Glib::RefPtr<PrintContext>&,Window* > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+, Glib::wrap(p1, true)
+, Glib::wrap(p2)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+
+static const Glib::SignalProxyInfo PrintOperation_signal_preview_info =
+{
+  "preview",
+  (GCallback) &PrintOperation_signal_preview_callback,
+  (GCallback) &PrintOperation_signal_preview_notify_callback
+};
+
+
+} // anonymous namespace
+
+// static
+GType Glib::Value<Gtk::PrintStatus>::value_type()
+{
+  return gtk_print_status_get_type();
+}
+
+// static
+GType Glib::Value<Gtk::PrintOperationResult>::value_type()
+{
+  return gtk_print_operation_result_get_type();
+}
+
+// static
+GType Glib::Value<Gtk::PrintOperationAction>::value_type()
+{
+  return gtk_print_operation_action_get_type();
+}
+
+
+Gtk::PrintError::PrintError(Gtk::PrintError::Code error_code, const Glib::ustring& error_message)
+:
+  Glib::Error (GTK_PRINT_ERROR, error_code, error_message)
+{}
+
+Gtk::PrintError::PrintError(GError* gobject)
+:
+  Glib::Error (gobject)
+{}
+
+Gtk::PrintError::Code Gtk::PrintError::code() const
+{
+  return static_cast<Code>(Glib::Error::code());
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+void Gtk::PrintError::throw_func(GError* gobject)
+{
+  throw Gtk::PrintError(gobject);
+}
+#else
+//When not using exceptions, we just pass the Exception object around without throwing it:
+std::auto_ptr<Glib::Error> Gtk::PrintError::throw_func(GError* gobject)
+{
+  return std::auto_ptr<Glib::Error>(new Gtk::PrintError(gobject));
+}
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+// static
+GType Glib::Value<Gtk::PrintError::Code>::value_type()
+{
+  return gtk_print_error_get_type();
+}
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::PrintOperation> wrap(GtkPrintOperation* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::PrintOperation>( dynamic_cast<Gtk::PrintOperation*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& PrintOperation_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &PrintOperation_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_print_operation_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  PrintOperationPreview::add_interface(get_type());
+  }
+
+  return *this;
+}
+
+void PrintOperation_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->done = &done_callback;
+  klass->begin_print = &begin_print_callback;
+  klass->paginate = &paginate_callback;
+  klass->request_page_setup = &request_page_setup_callback;
+  klass->draw_page = &draw_page_callback;
+  klass->end_print = &end_print_callback;
+  klass->status_changed = &status_changed_callback;
+  klass->create_custom_widget = &create_custom_widget_callback;
+  klass->custom_widget_apply = &custom_widget_apply_callback;
+  klass->preview = &preview_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void PrintOperation_Class::done_callback(GtkPrintOperation* self, GtkPrintOperationResult p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_done((PrintOperationResult)p0
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->done)
+      (*base->done)(self, p0);
+  }
+}
+void PrintOperation_Class::begin_print_callback(GtkPrintOperation* self, GtkPrintContext* p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_begin_print(Glib::wrap(p0, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->begin_print)
+      (*base->begin_print)(self, p0);
+  }
+}
+gboolean PrintOperation_Class::paginate_callback(GtkPrintOperation* self, GtkPrintContext* p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      return static_cast<int>(obj->on_paginate(Glib::wrap(p0, true)
+));
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->paginate)
+      return (*base->paginate)(self, p0);
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+void PrintOperation_Class::request_page_setup_callback(GtkPrintOperation* self, GtkPrintContext* p0, gint p1, GtkPageSetup* p2)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_request_page_setup(Glib::wrap(p0, true)
+, p1
+, Glib::wrap(p2, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->request_page_setup)
+      (*base->request_page_setup)(self, p0, p1, p2);
+  }
+}
+void PrintOperation_Class::draw_page_callback(GtkPrintOperation* self, GtkPrintContext* p0, gint p1)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_draw_page(Glib::wrap(p0, true)
+, p1
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->draw_page)
+      (*base->draw_page)(self, p0, p1);
+  }
+}
+void PrintOperation_Class::end_print_callback(GtkPrintOperation* self, GtkPrintContext* p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_end_print(Glib::wrap(p0, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->end_print)
+      (*base->end_print)(self, p0);
+  }
+}
+void PrintOperation_Class::status_changed_callback(GtkPrintOperation* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_status_changed();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->status_changed)
+      (*base->status_changed)(self);
+  }
+}
+GtkWidget* PrintOperation_Class::create_custom_widget_callback(GtkPrintOperation* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      return (GtkWidget*)Glib::unwrap(obj->on_create_custom_widget());
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->create_custom_widget)
+      return (*base->create_custom_widget)(self);
+  }
+
+  typedef GtkWidget* RType;
+  return RType();
+}
+void PrintOperation_Class::custom_widget_apply_callback(GtkPrintOperation* self, GtkWidget* p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_custom_widget_apply(Glib::wrap(p0)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->custom_widget_apply)
+      (*base->custom_widget_apply)(self, p0);
+  }
+}
+gboolean PrintOperation_Class::preview_callback(GtkPrintOperation* self, GtkPrintOperationPreview* p0, GtkPrintContext* p1, GtkWindow* p2)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      return static_cast<int>(obj->on_preview(Glib::wrap(p0, true)
+, Glib::wrap(p1, true)
+, Glib::wrap(p2)
+));
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->preview)
+      return (*base->preview)(self, p0, p1, p2);
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PrintOperation_Class::wrap_new(GObject* object)
+{
+  return new PrintOperation((GtkPrintOperation*)object);
+}
+
+
+/* The implementation: */
+
+GtkPrintOperation* PrintOperation::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+PrintOperation::PrintOperation(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+PrintOperation::PrintOperation(GtkPrintOperation* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+PrintOperation::~PrintOperation()
+{}
+
+
+PrintOperation::CppClassType PrintOperation::printoperation_class_; // initialize static member
+
+GType PrintOperation::get_type()
+{
+  return printoperation_class_.init().get_type();
+}
+
+GType PrintOperation::get_base_type()
+{
+  return gtk_print_operation_get_type();
+}
+
+
+PrintOperation::PrintOperation()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(printoperation_class_.init()))
+{
+  }
+
+Glib::RefPtr<PrintOperation> PrintOperation::create()
+{
+  return Glib::RefPtr<PrintOperation>( new PrintOperation() );
+}
+void PrintOperation::set_default_page_setup(const Glib::RefPtr<PageSetup>& default_page_setup)
+{
+gtk_print_operation_set_default_page_setup(gobj(), Glib::unwrap(default_page_setup)); 
+}
+
+Glib::RefPtr<PageSetup> PrintOperation::get_default_page_setup() const
+{
+  return Glib::wrap(gtk_print_operation_get_default_page_setup(const_cast<GtkPrintOperation*>(gobj())));
+}
+
+void PrintOperation::set_print_settings(const Glib::RefPtr<PrintSettings>& print_settings)
+{
+gtk_print_operation_set_print_settings(gobj(), Glib::unwrap(print_settings)); 
+}
+
+Glib::RefPtr<PrintSettings> PrintOperation::get_print_settings() const
+{
+
+  Glib::RefPtr<PrintSettings> retvalue = Glib::wrap(gtk_print_operation_get_print_settings(const_cast<GtkPrintOperation*>(gobj())));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+void PrintOperation::set_job_name(const Glib::ustring& job_name)
+{
+gtk_print_operation_set_job_name(gobj(), job_name.c_str()); 
+}
+
+void PrintOperation::set_n_pages(int n_pages)
+{
+gtk_print_operation_set_n_pages(gobj(), n_pages); 
+}
+
+void PrintOperation::set_current_page(int current_page)
+{
+gtk_print_operation_set_current_page(gobj(), current_page); 
+}
+
+void PrintOperation::set_use_full_page(bool use_full_page)
+{
+gtk_print_operation_set_use_full_page(gobj(), static_cast<int>(use_full_page)); 
+}
+
+void PrintOperation::set_unit(Unit unit)
+{
+gtk_print_operation_set_unit(gobj(), ((GtkUnit)(unit))); 
+}
+
+void PrintOperation::set_export_filename(const std::string& filename)
+{
+gtk_print_operation_set_export_filename(gobj(), filename.c_str()); 
+}
+
+void PrintOperation::set_track_print_status(bool track_status)
+{
+gtk_print_operation_set_track_print_status(gobj(), static_cast<int>(track_status)); 
+}
+
+void PrintOperation::set_show_progress(bool show_progress)
+{
+gtk_print_operation_set_show_progress(gobj(), static_cast<int>(show_progress)); 
+}
+
+void PrintOperation::set_allow_async(bool allow_async)
+{
+gtk_print_operation_set_allow_async(gobj(), static_cast<int>(allow_async)); 
+}
+
+void PrintOperation::set_custom_tab_label(const Glib::ustring& label)
+{
+gtk_print_operation_set_custom_tab_label(gobj(), label.c_str()); 
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+PrintOperationResult PrintOperation::run(PrintOperationAction action, Window& parent)
+#else
+PrintOperationResult PrintOperation::run(PrintOperationAction action, Window& parent, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  PrintOperationResult retvalue = (PrintOperationResult)gtk_print_operation_run(gobj(), ((GtkPrintOperationAction)(action)), (parent).gobj(), &(gerror));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+PrintStatus PrintOperation::get_status() const
+{
+  return (PrintStatus)gtk_print_operation_get_status(const_cast<GtkPrintOperation*>(gobj()));
+}
+
+Glib::ustring PrintOperation::get_status_string() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_operation_get_status_string(const_cast<GtkPrintOperation*>(gobj())));
+}
+
+void PrintOperation::cancel()
+{
+gtk_print_operation_cancel(gobj()); 
+}
+
+bool PrintOperation::is_finished() const
+{
+  return gtk_print_operation_is_finished(const_cast<GtkPrintOperation*>(gobj()));
+}
+
+
+Glib::SignalProxy1< void,PrintOperationResult > PrintOperation::signal_done()
+{
+  return Glib::SignalProxy1< void,PrintOperationResult >(this, &PrintOperation_signal_done_info);
+}
+
+
+Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& > PrintOperation::signal_begin_print()
+{
+  return Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& >(this, &PrintOperation_signal_begin_print_info);
+}
+
+
+Glib::SignalProxy1< bool,const Glib::RefPtr<PrintContext>& > PrintOperation::signal_paginate()
+{
+  return Glib::SignalProxy1< bool,const Glib::RefPtr<PrintContext>& >(this, &PrintOperation_signal_paginate_info);
+}
+
+
+Glib::SignalProxy3< void,const Glib::RefPtr<PrintContext>&,int,const Glib::RefPtr<PageSetup>& > PrintOperation::signal_request_page_setup()
+{
+  return Glib::SignalProxy3< void,const Glib::RefPtr<PrintContext>&,int,const Glib::RefPtr<PageSetup>& >(this, &PrintOperation_signal_request_page_setup_info);
+}
+
+
+Glib::SignalProxy2< void,const Glib::RefPtr<PrintContext>&,int > PrintOperation::signal_draw_page()
+{
+  return Glib::SignalProxy2< void,const Glib::RefPtr<PrintContext>&,int >(this, &PrintOperation_signal_draw_page_info);
+}
+
+
+Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& > PrintOperation::signal_end_print()
+{
+  return Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& >(this, &PrintOperation_signal_end_print_info);
+}
+
+
+Glib::SignalProxy0< void > PrintOperation::signal_status_changed()
+{
+  return Glib::SignalProxy0< void >(this, &PrintOperation_signal_status_changed_info);
+}
+
+
+Glib::SignalProxy0< Widget* > PrintOperation::signal_create_custom_widget()
+{
+  return Glib::SignalProxy0< Widget* >(this, &PrintOperation_signal_create_custom_widget_info);
+}
+
+
+Glib::SignalProxy1< void,Widget* > PrintOperation::signal_custom_widget_apply()
+{
+  return Glib::SignalProxy1< void,Widget* >(this, &PrintOperation_signal_custom_widget_apply_info);
+}
+
+
+Glib::SignalProxy3< bool,const Glib::RefPtr<PrintOperationPreview>&,const Glib::RefPtr<PrintContext>&,Window* > PrintOperation::signal_preview()
+{
+  return Glib::SignalProxy3< bool,const Glib::RefPtr<PrintOperationPreview>&,const Glib::RefPtr<PrintContext>&,Window* >(this, &PrintOperation_signal_preview_info);
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy< Glib::RefPtr<PageSetup> > PrintOperation::property_default_page_setup() 
+{
+  return Glib::PropertyProxy< Glib::RefPtr<PageSetup> >(this, "default-page-setup");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> > PrintOperation::property_default_page_setup() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> >(this, "default-page-setup");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy< Glib::RefPtr<PrintSettings> > PrintOperation::property_print_settings() 
+{
+  return Glib::PropertyProxy< Glib::RefPtr<PrintSettings> >(this, "print-settings");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> > PrintOperation::property_print_settings() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> >(this, "print-settings");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<Glib::ustring> PrintOperation::property_job_name() 
+{
+  return Glib::PropertyProxy<Glib::ustring>(this, "job-name");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> PrintOperation::property_job_name() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "job-name");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<int> PrintOperation::property_n_pages() 
+{
+  return Glib::PropertyProxy<int>(this, "n-pages");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> PrintOperation::property_n_pages() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "n-pages");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<int> PrintOperation::property_current_page() 
+{
+  return Glib::PropertyProxy<int>(this, "current-page");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> PrintOperation::property_current_page() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "current-page");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> PrintOperation::property_use_full_page() 
+{
+  return Glib::PropertyProxy<bool>(this, "use-full-page");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> PrintOperation::property_use_full_page() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "use-full-page");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<Unit> PrintOperation::property_unit() 
+{
+  return Glib::PropertyProxy<Unit>(this, "unit");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Unit> PrintOperation::property_unit() const
+{
+  return Glib::PropertyProxy_ReadOnly<Unit>(this, "unit");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> PrintOperation::property_show_progress() 
+{
+  return Glib::PropertyProxy<bool>(this, "show-progress");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> PrintOperation::property_show_progress() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "show-progress");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> PrintOperation::property_allow_async() 
+{
+  return Glib::PropertyProxy<bool>(this, "allow-async");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> PrintOperation::property_allow_async() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "allow-async");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<std::string> PrintOperation::property_export_filename() 
+{
+  return Glib::PropertyProxy<std::string>(this, "export-filename");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<std::string> PrintOperation::property_export_filename() const
+{
+  return Glib::PropertyProxy_ReadOnly<std::string>(this, "export-filename");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<PrintStatus> PrintOperation::property_status() const
+{
+  return Glib::PropertyProxy_ReadOnly<PrintStatus>(this, "status");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> PrintOperation::property_status_string() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "status-string");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<Glib::ustring> PrintOperation::property_custom_tab_label() 
+{
+  return Glib::PropertyProxy<Glib::ustring>(this, "custom-tab-label");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> PrintOperation::property_custom_tab_label() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "custom-tab-label");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Gtk::PrintOperation::on_done(PrintOperationResult result)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->done)
+    (*base->done)(gobj(),((GtkPrintOperationResult)(result)));
+}
+void Gtk::PrintOperation::on_begin_print(const Glib::RefPtr<PrintContext>& context)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->begin_print)
+    (*base->begin_print)(gobj(),Glib::unwrap(context));
+}
+bool Gtk::PrintOperation::on_paginate(const Glib::RefPtr<PrintContext>& context)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->paginate)
+    return (*base->paginate)(gobj(),Glib::unwrap(context));
+
+  typedef bool RType;
+  return RType();
+}
+void Gtk::PrintOperation::on_request_page_setup(const Glib::RefPtr<PrintContext>& context, int page_no, const Glib::RefPtr<PageSetup>& setup)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->request_page_setup)
+    (*base->request_page_setup)(gobj(),Glib::unwrap(context),page_no,Glib::unwrap(setup));
+}
+void Gtk::PrintOperation::on_draw_page(const Glib::RefPtr<PrintContext>& context, int page_nr)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->draw_page)
+    (*base->draw_page)(gobj(),Glib::unwrap(context),page_nr);
+}
+void Gtk::PrintOperation::on_end_print(const Glib::RefPtr<PrintContext>& context)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->end_print)
+    (*base->end_print)(gobj(),Glib::unwrap(context));
+}
+void Gtk::PrintOperation::on_status_changed()
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->status_changed)
+    (*base->status_changed)(gobj());
+}
+Widget* Gtk::PrintOperation::on_create_custom_widget()
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->create_custom_widget)
+    return Glib::wrap((*base->create_custom_widget)(gobj()));
+
+  typedef Widget* RType;
+  return RType();
+}
+void Gtk::PrintOperation::on_custom_widget_apply(Widget* widget)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->custom_widget_apply)
+    (*base->custom_widget_apply)(gobj(),(GtkWidget*)Glib::unwrap(widget));
+}
+bool Gtk::PrintOperation::on_preview(const Glib::RefPtr<PrintOperationPreview>& preview, const Glib::RefPtr<PrintContext>& context, Window* parent)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->preview)
+    return (*base->preview)(gobj(),(preview)->gobj(),Glib::unwrap(context),Glib::unwrap(parent));
+
+  typedef bool RType;
+  return RType();
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printoperation.h b/libs/gtkmm2/gtk/gtkmm/printoperation.h
new file mode 100644 (file)
index 0000000..54888c7
--- /dev/null
@@ -0,0 +1,749 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTOPERATION_H
+#define _GTKMM_PRINTOPERATION_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+
+#include <gtkmm/pagesetup.h>
+#include <gtkmm/printcontext.h>
+#include <gtkmm/printoperationpreview.h>
+#include <gtkmm/printsettings.h>
+#include <gtkmm/window.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPrintOperation GtkPrintOperation;
+typedef struct _GtkPrintOperationClass GtkPrintOperationClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PrintOperation_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum PrintStatus
+{
+  PRINT_STATUS_INITIAL,
+  PRINT_STATUS_PREPARING,
+  PRINT_STATUS_GENERATING_DATA,
+  PRINT_STATUS_SENDING_DATA,
+  PRINT_STATUS_PENDING,
+  PRINT_STATUS_PENDING_ISSUE,
+  PRINT_STATUS_PRINTING,
+  PRINT_STATUS_FINISHED,
+  PRINT_STATUS_FINISHED_ABORTED
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintStatus> : public Glib::Value_Enum<Gtk::PrintStatus>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum PrintOperationResult
+{
+  PRINT_OPERATION_RESULT_ERROR,
+  PRINT_OPERATION_RESULT_APPLY,
+  PRINT_OPERATION_RESULT_CANCEL,
+  PRINT_OPERATION_RESULT_IN_PROGRESS
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintOperationResult> : public Glib::Value_Enum<Gtk::PrintOperationResult>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum PrintOperationAction
+{
+  PRINT_OPERATION_ACTION_PRINT_DIALOG,
+  PRINT_OPERATION_ACTION_PRINT,
+  PRINT_OPERATION_ACTION_PREVIEW,
+  PRINT_OPERATION_ACTION_EXPORT
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintOperationAction> : public Glib::Value_Enum<Gtk::PrintOperationAction>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+class PrintError : public Glib::Error
+{
+public:
+  enum Code
+  {
+    GENERAL,
+    INTERNAL_ERROR,
+    NOMEM
+  };
+
+  PrintError(Code error_code, const Glib::ustring& error_message);
+  explicit PrintError(GError* gobject);
+  Code code() const;
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+private:
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  static void throw_func(GError* gobject);
+#else
+  //When not using exceptions, we just pass the Exception object around without throwing it:
+  static std::auto_ptr<Glib::Error> throw_func(GError* gobject);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  friend void wrap_init(); // uses throw_func()
+#endif
+};
+
+} // namespace Gtk
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintError::Code> : public Glib::Value_Enum<Gtk::PrintError::Code>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** @defgroup Printing Printing
+ */
+
+/** PrintOperation is the high-level, portable printing API. It looks a bit different than other 
+ * GTK+ dialogs such as the FileChooser, since some platforms don't expose enough infrastructure 
+ * to implement a good print dialog. On such platforms, PrintOperation uses the native print 
+ * dialog. On platforms which do not provide a native print dialog, GTK+ uses its own, see PrintUnixDialog.
+ *
+ * The typical way to use the high-level printing API is to create a PrintOperation object 
+ * when the user chooses to print. Then you set some properties on it,such as the page size, any PrintSettings 
+ * from previous print operations, the number of  pages, the current page, etc.
+ *
+ * Then you start the print operation by calling run(). It will then show a dialog to 
+ * let the user select a printer and options. When the user finishes the dialog various signals will be 
+ * emitted by the PrintOperation for you to handle, the main one being draw_page. You should then 
+ * render the page on the provided PrintContext using Cairo.
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PrintOperation :
+  public Glib::Object,
+  public PrintOperationPreview
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef PrintOperation CppObjectType;
+  typedef PrintOperation_Class CppClassType;
+  typedef GtkPrintOperation BaseObjectType;
+  typedef GtkPrintOperationClass BaseClassType;
+
+private:  friend class PrintOperation_Class;
+  static CppClassType printoperation_class_;
+
+private:
+  // noncopyable
+  PrintOperation(const PrintOperation&);
+  PrintOperation& operator=(const PrintOperation&);
+
+protected:
+  explicit PrintOperation(const Glib::ConstructParams& construct_params);
+  explicit PrintOperation(GtkPrintOperation* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~PrintOperation();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkPrintOperation*       gobj()       { return reinterpret_cast<GtkPrintOperation*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkPrintOperation* gobj() const { return reinterpret_cast<GtkPrintOperation*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkPrintOperation* gobj_copy();
+
+private:
+
+  
+protected:
+  PrintOperation();
+
+public:
+  
+  static Glib::RefPtr<PrintOperation> create();
+
+
+  void set_default_page_setup(const Glib::RefPtr<PageSetup>& default_page_setup);
+  
+  Glib::RefPtr<PageSetup> get_default_page_setup() const;
+
+  
+  void set_print_settings(const Glib::RefPtr<PrintSettings>& print_settings);
+  
+  Glib::RefPtr<PrintSettings> get_print_settings() const;
+
+  
+  void set_job_name(const Glib::ustring& job_name);
+  
+  void set_n_pages(int n_pages);
+  
+  void set_current_page(int current_page);
+  
+  void set_use_full_page(bool use_full_page = true);
+  
+  void set_unit(Unit unit);
+  
+  void set_export_filename(const std::string& filename);
+  
+  void set_track_print_status(bool track_status = true);
+  
+  void set_show_progress (bool show_progress = true);
+  
+  void set_allow_async(bool allow_async = true);
+  
+  void set_custom_tab_label(const Glib::ustring& label);
+
+   
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  PrintOperationResult run(PrintOperationAction action = PRINT_OPERATION_ACTION_PRINT_DIALOG);
+  #else
+  PrintOperationResult run(PrintOperationAction action, std::auto_ptr<Glib::Error>& error);
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  PrintOperationResult run(PrintOperationAction action, Window& parent);
+#else
+  PrintOperationResult run(PrintOperationAction action, Window& parent, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+  PrintStatus get_status() const;
+  
+  Glib::ustring get_status_string() const;
+  
+  void cancel();
+  
+  bool is_finished() const;
+
+  
+  //TODO: point out in the docs that the PrintOperationResult enum may also indicate
+  // that an error occurred, and in that case it is up to him to handle it.
+  
+/**
+   * @par Prototype:
+   * <tt>void %done(PrintOperationResult result)</tt>
+   */
+
+  Glib::SignalProxy1< void,PrintOperationResult > signal_done();
+
+
+/**
+   * @par Prototype:
+   * <tt>void %begin_print(const Glib::RefPtr<PrintContext>& context)</tt>
+   */
+
+  Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& > signal_begin_print();
+
+  
+/**
+   * @par Prototype:
+   * <tt>bool %paginate(const Glib::RefPtr<PrintContext>& context)</tt>
+   */
+
+  Glib::SignalProxy1< bool,const Glib::RefPtr<PrintContext>& > signal_paginate();
+
+
+/**
+   * @par Prototype:
+   * <tt>void %request_page_setup(const Glib::RefPtr<PrintContext>& context, int page_no, const Glib::RefPtr<PageSetup>& setup)</tt>
+   */
+
+  Glib::SignalProxy3< void,const Glib::RefPtr<PrintContext>&,int,const Glib::RefPtr<PageSetup>& > signal_request_page_setup();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %draw_page(const Glib::RefPtr<PrintContext>& context, int page_nr)</tt>
+   */
+
+  Glib::SignalProxy2< void,const Glib::RefPtr<PrintContext>&,int > signal_draw_page();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %end_print(const Glib::RefPtr<PrintContext>& context)</tt>
+   */
+
+  Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& > signal_end_print();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %status_changed()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_status_changed();
+
+
+/**
+   * @par Prototype:
+   * <tt>Widget* %create_custom_widget()</tt>
+   */
+
+  Glib::SignalProxy0< Widget* > signal_create_custom_widget();
+
+
+/**
+   * @par Prototype:
+   * <tt>void %custom_widget_apply(Widget* widget)</tt>
+   */
+
+  Glib::SignalProxy1< void,Widget* > signal_custom_widget_apply();
+
+
+  //TODO: This is causing crashes:
+  
+/**
+   * @par Prototype:
+   * <tt>bool %preview(const Glib::RefPtr<PrintOperationPreview>& preview, const Glib::RefPtr<PrintContext>& context, Window* parent)</tt>
+   */
+
+  Glib::SignalProxy3< bool,const Glib::RefPtr<PrintOperationPreview>&,const Glib::RefPtr<PrintContext>&,Window* > signal_preview();
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPageSetup used by default.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy< Glib::RefPtr<PageSetup> > property_default_page_setup() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPageSetup used by default.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> > property_default_page_setup() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPrintSettings used for initializing the dialog.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy< Glib::RefPtr<PrintSettings> > property_print_settings() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPrintSettings used for initializing the dialog.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> > property_print_settings() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** A string used for identifying the print job.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<Glib::ustring> property_job_name() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** A string used for identifying the print job.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_job_name() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The number of pages in the document.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<int> property_n_pages() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The number of pages in the document.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_n_pages() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The current page in the document.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<int> property_current_page() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The current page in the document.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_current_page() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if the the origin of the context should be at the corner of the page and not the corner of the imageable area.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_use_full_page() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if the the origin of the context should be at the corner of the page and not the corner of the imageable area.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_use_full_page() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The unit in which distances can be measured in the context.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<Unit> property_unit() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The unit in which distances can be measured in the context.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Unit> property_unit() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if a progress dialog is shown while printing.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_show_progress() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if a progress dialog is shown while printing.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_show_progress() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if print process may run asynchronous.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_allow_async() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** TRUE if print process may run asynchronous.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_allow_async() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Export filename.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<std::string> property_export_filename() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** Export filename.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<std::string> property_export_filename() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The status of the print operation.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<PrintStatus> property_status() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** A human-readable description of the status.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_status_string() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Label for the tab containing custom widgets.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<Glib::ustring> property_custom_tab_label() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** Label for the tab containing custom widgets.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_custom_tab_label() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual void on_done(PrintOperationResult result);
+  virtual void on_begin_print(const Glib::RefPtr<PrintContext>& context);
+  virtual bool on_paginate(const Glib::RefPtr<PrintContext>& context);
+  virtual void on_request_page_setup(const Glib::RefPtr<PrintContext>& context, int page_no, const Glib::RefPtr<PageSetup>& setup);
+  virtual void on_draw_page(const Glib::RefPtr<PrintContext>& context, int page_nr);
+  virtual void on_end_print(const Glib::RefPtr<PrintContext>& context);
+  virtual void on_status_changed();
+  virtual Widget* on_create_custom_widget();
+  virtual void on_custom_widget_apply(Widget* widget);
+  virtual bool on_preview(const Glib::RefPtr<PrintOperationPreview>& preview, const Glib::RefPtr<PrintContext>& context, Window* parent);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+  //TODO: Make these static members of a class instead of non-class functions?
+
+  //Note: gtk_run_page_setup_dialog() can take a null page_setup object, but the application should always 
+  //store and reuse a page_setup object, so I see no need to provide an overload for that. murrayc.
+  //TODO: The parent parameter may also be null, so maybe we should add an overload for that.
+
+  /** Runs a page setup dialog, letting the user modify the values from page_setup. 
+   * If the user cancels the dialog, the returned PageSetup is identical to that passed in @a page_setup, 
+   * otherwise it contains the modifications done in the dialog.
+   * 
+   * Note that this function may use a recursive mainloop to show the page setup dialog. 
+   * See run_page_setup_dialog_async() if this is a problem.
+   *
+   * @param parent Transient parent.
+   * @param page_setup An existing GtkPageSetup.
+   * @param settings Print settings.
+   * @result A new PageSetup object.
+   *
+   * @since 2.10
+   */
+  Glib::RefPtr<PageSetup> run_page_setup_dialog(Window& parent,
+                                                const Glib::RefPtr<const PageSetup>& page_setup,
+                                                const Glib::RefPtr<const PrintSettings>& print_settings);
+
+  /** For example, 
+   * void on_setup_done(const Glib::RefPtr<PageSetup>& page_setup);
+   */
+  typedef sigc::slot< void, const Glib::RefPtr<PageSetup>& > SlotPrintSetupDone;
+
+  /** Runs a page setup dialog, letting the user modify the values from page_setup.
+   *
+   * In contrast to run_page_setup_dialog(), this function returns after showing the 
+   * page setup dialog on platforms that support this, and calls the @a slot from a 
+   * signal handler for the ::response signal of the dialog.
+   *
+   * @param parent Transient parent.
+   * @param page_setup An existing GtkPageSetup.
+   * @param settings Print settings.
+   * @result A new PageSetup object.
+   * @param slot
+   *
+   * @since 2.10
+   */
+  void run_page_setup_dialog_async(Window& parent,
+                                   const Glib::RefPtr<const PageSetup>& page_setup,
+                                   const Glib::RefPtr<const PrintSettings>& print_settings,
+                                   const SlotPrintSetupDone& slot);
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PrintOperation
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::PrintOperation> wrap(GtkPrintOperation* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_PRINTOPERATION_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printoperationpreview.cc b/libs/gtkmm2/gtk/gtkmm/printoperationpreview.cc
new file mode 100644 (file)
index 0000000..222759c
--- /dev/null
@@ -0,0 +1,489 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/printoperationpreview.h>
+#include <gtkmm/private/printoperationpreview_p.h>
+
+// -*- c++ -*-
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprintoperationpreview.h>
+
+namespace
+{
+
+
+static void PrintOperationPreview_signal_ready_callback(GtkPrintOperationPreview* self, GtkPrintContext* p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintContext>& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperationPreview_signal_ready_info =
+{
+  "ready",
+  (GCallback) &PrintOperationPreview_signal_ready_callback,
+  (GCallback) &PrintOperationPreview_signal_ready_callback
+};
+
+
+static void PrintOperationPreview_signal_got_page_size_callback(GtkPrintOperationPreview* self, GtkPrintContext* p0,GtkPageSetup* p1,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,const Glib::RefPtr<PrintContext>&,const Glib::RefPtr<PageSetup>& > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true)
+, Glib::wrap(p1, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+}
+
+static const Glib::SignalProxyInfo PrintOperationPreview_signal_got_page_size_info =
+{
+  "got_page_size",
+  (GCallback) &PrintOperationPreview_signal_got_page_size_callback,
+  (GCallback) &PrintOperationPreview_signal_got_page_size_callback
+};
+
+
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::PrintOperationPreview> wrap(GtkPrintOperationPreview* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::PrintOperationPreview>( dynamic_cast<Gtk::PrintOperationPreview*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} // namespace Glib
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Interface_Class& PrintOperationPreview_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Interface_Class has to know the interface init function
+    // in order to add interfaces to implementing types.
+    class_init_func_ = &PrintOperationPreview_Class::iface_init_function;
+
+    // We can not derive from another interface, and it is not necessary anyway.
+    gtype_ = gtk_print_operation_preview_get_type();
+  }
+
+  return *this;
+}
+
+void PrintOperationPreview_Class::iface_init_function(void* g_iface, void*)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_iface);
+
+  //This is just to avoid an "unused variable" warning when there are no vfuncs or signal handlers to connect.
+  //This is a temporary fix until I find out why I can not seem to derive a GtkFileChooser interface. murrayc
+  g_assert(klass != 0); 
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+  klass->render_page = &render_page_vfunc_callback;
+  klass->end_preview = &end_preview_vfunc_callback;
+  klass->is_selected = &is_selected_vfunc_callback;
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->ready = &ready_callback;
+  klass->got_page_size = &got_page_size_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+void PrintOperationPreview_Class::render_page_vfunc_callback(GtkPrintOperationPreview* self, gint page_nr)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->render_page_vfunc(page_nr
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->render_page)
+      (*base->render_page)(self, page_nr);
+  }
+}
+void PrintOperationPreview_Class::end_preview_vfunc_callback(GtkPrintOperationPreview* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->end_preview_vfunc();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->end_preview)
+      (*base->end_preview)(self);
+  }
+}
+gboolean PrintOperationPreview_Class::is_selected_vfunc_callback(GtkPrintOperationPreview* self, gint page_nr)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      return static_cast<int>(obj->is_selected_vfunc(page_nr
+));
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->is_selected)
+      return (*base->is_selected)(self, page_nr);
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void PrintOperationPreview_Class::ready_callback(GtkPrintOperationPreview* self, GtkPrintContext* p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_ready(Glib::wrap(p0, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->ready)
+      (*base->ready)(self, p0);
+  }
+}
+void PrintOperationPreview_Class::got_page_size_callback(GtkPrintOperationPreview* self, GtkPrintContext* p0, GtkPageSetup* p1)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_got_page_size(Glib::wrap(p0, true)
+, Glib::wrap(p1, true)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->got_page_size)
+      (*base->got_page_size)(self, p0, p1);
+  }
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PrintOperationPreview_Class::wrap_new(GObject* object)
+{
+  return new PrintOperationPreview((GtkPrintOperationPreview*)(object));
+}
+
+
+/* The implementation: */
+
+PrintOperationPreview::PrintOperationPreview()
+:
+  Glib::Interface(printoperationpreview_class_.init())
+{}
+
+PrintOperationPreview::PrintOperationPreview(GtkPrintOperationPreview* castitem)
+:
+  Glib::Interface((GObject*)(castitem))
+{}
+
+PrintOperationPreview::~PrintOperationPreview()
+{}
+
+// static
+void PrintOperationPreview::add_interface(GType gtype_implementer)
+{
+  printoperationpreview_class_.init().add_interface(gtype_implementer);
+}
+
+PrintOperationPreview::CppClassType PrintOperationPreview::printoperationpreview_class_; // initialize static member
+
+GType PrintOperationPreview::get_type()
+{
+  return printoperationpreview_class_.init().get_type();
+}
+
+GType PrintOperationPreview::get_base_type()
+{
+  return gtk_print_operation_preview_get_type();
+}
+
+
+void PrintOperationPreview::render_page(int page_nr)
+{
+gtk_print_operation_preview_render_page(gobj(), page_nr); 
+}
+
+void PrintOperationPreview::end_preview()
+{
+gtk_print_operation_preview_end_preview(gobj()); 
+}
+
+bool PrintOperationPreview::is_selected(int page_nr) const
+{
+  return gtk_print_operation_preview_is_selected(const_cast<GtkPrintOperationPreview*>(gobj()), page_nr);
+}
+
+
+Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& > PrintOperationPreview::signal_ready()
+{
+  return Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& >(this, &PrintOperationPreview_signal_ready_info);
+}
+
+
+Glib::SignalProxy2< void,const Glib::RefPtr<PrintContext>&,const Glib::RefPtr<PageSetup>& > PrintOperationPreview::signal_got_page_size()
+{
+  return Glib::SignalProxy2< void,const Glib::RefPtr<PrintContext>&,const Glib::RefPtr<PageSetup>& >(this, &PrintOperationPreview_signal_got_page_size_info);
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Gtk::PrintOperationPreview::on_ready(const Glib::RefPtr<PrintContext>& context)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->ready)
+    (*base->ready)(gobj(),Glib::unwrap(context));
+}
+void Gtk::PrintOperationPreview::on_got_page_size(const Glib::RefPtr<PrintContext>& context, const Glib::RefPtr<PageSetup>& page_setup)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->got_page_size)
+    (*base->got_page_size)(gobj(),Glib::unwrap(context),Glib::unwrap(page_setup));
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+void Gtk::PrintOperationPreview::render_page_vfunc(int page_nr) 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->render_page)
+    (*base->render_page)(gobj(),page_nr);
+}
+void Gtk::PrintOperationPreview::end_preview_vfunc() 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->end_preview)
+    (*base->end_preview)(gobj());
+}
+bool Gtk::PrintOperationPreview::is_selected_vfunc(int page_nr) const
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->is_selected)
+    return (*base->is_selected)(const_cast<GtkPrintOperationPreview*>(gobj()),page_nr);
+
+  typedef bool RType;
+  return RType();
+}
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printoperationpreview.h b/libs/gtkmm2/gtk/gtkmm/printoperationpreview.h
new file mode 100644 (file)
index 0000000..596a9a8
--- /dev/null
@@ -0,0 +1,169 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTOPERATIONPREVIEW_H
+#define _GTKMM_PRINTOPERATIONPREVIEW_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprintoperationpreview.h>
+
+#include <glibmm/interface.h>
+
+#include <gtkmm/pagesetup.h>
+#include <gtkmm/printcontext.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPrintOperationPreview GtkPrintOperationPreview;
+typedef struct _GtkPrintOperationPreviewClass GtkPrintOperationPreviewClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PrintOperationPreview_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** TODO:
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PrintOperationPreview : public Glib::Interface
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef PrintOperationPreview CppObjectType;
+  typedef PrintOperationPreview_Class CppClassType;
+  typedef GtkPrintOperationPreview BaseObjectType;
+  typedef GtkPrintOperationPreviewIface BaseClassType;
+
+private:
+  friend class PrintOperationPreview_Class;
+  static CppClassType printoperationpreview_class_;
+
+  // noncopyable
+  PrintOperationPreview(const PrintOperationPreview&);
+  PrintOperationPreview& operator=(const PrintOperationPreview&);
+
+protected:
+  PrintOperationPreview(); // you must derive from this class
+  explicit PrintOperationPreview(GtkPrintOperationPreview* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~PrintOperationPreview();
+
+  static void add_interface(GType gtype_implementer);
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkPrintOperationPreview*       gobj()       { return reinterpret_cast<GtkPrintOperationPreview*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.  
+  const GtkPrintOperationPreview* gobj() const { return reinterpret_cast<GtkPrintOperationPreview*>(gobject_); }
+
+private:
+
+public:
+
+  
+  void render_page(int page_nr);
+  
+  void end_preview();
+  
+  bool is_selected(int page_nr) const;
+
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual void render_page_vfunc(int page_nr);
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual void end_preview_vfunc();
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual bool is_selected_vfunc(int page_nr) const;
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+/**
+   * @par Prototype:
+   * <tt>void %ready(const Glib::RefPtr<PrintContext>& context)</tt>
+   */
+
+  Glib::SignalProxy1< void,const Glib::RefPtr<PrintContext>& > signal_ready();
+
+  
+/**
+   * @par Prototype:
+   * <tt>void %got_page_size(const Glib::RefPtr<PrintContext>& context, const Glib::RefPtr<PageSetup>& page_setup)</tt>
+   */
+
+  Glib::SignalProxy2< void,const Glib::RefPtr<PrintContext>&,const Glib::RefPtr<PageSetup>& > signal_got_page_size();
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual void on_ready(const Glib::RefPtr<PrintContext>& context);
+  virtual void on_got_page_size(const Glib::RefPtr<PrintContext>& context, const Glib::RefPtr<PageSetup>& page_setup);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PrintOperationPreview
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::PrintOperationPreview> wrap(GtkPrintOperationPreview* object, bool take_copy = false);
+
+} // namespace Glib
+
+
+#endif /* _GTKMM_PRINTOPERATIONPREVIEW_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printsettings.cc b/libs/gtkmm2/gtk/gtkmm/printsettings.cc
new file mode 100644 (file)
index 0000000..a802ebb
--- /dev/null
@@ -0,0 +1,580 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/printsettings.h>
+#include <gtkmm/private/printsettings_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprintsettings.h>
+#include <gtk/gtktypebuiltins.h>
+
+#include <vector>
+
+#include <glib/gmem.h>
+
+namespace // anonymous
+{
+
+static void proxy_foreach_callback(const gchar* key, const gchar* value, void* data)
+{
+  typedef Gtk::PrintSettings::SlotForeach SlotType;
+  SlotType& slot = *static_cast<SlotType*>(data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+    Glib::ustring k(key);
+    Glib::ustring v(value);
+    slot(k, v);
+    //slot(Glib::ustring(key), Glib::ustring(value)); // TODO: this won't work
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+}
+
+} // anonymous namespace
+
+namespace Gtk
+{
+
+//Initialize static members:
+const Glib::ustring PrintSettings::Keys::PRINTER = GTK_PRINT_SETTINGS_PRINTER;
+const Glib::ustring PrintSettings::Keys::ORIENTATION = GTK_PRINT_SETTINGS_ORIENTATION;
+const Glib::ustring PrintSettings::Keys::PAPER_FORMAT = GTK_PRINT_SETTINGS_PAPER_FORMAT;
+const Glib::ustring PrintSettings::Keys::PAPER_WIDTH = GTK_PRINT_SETTINGS_PAPER_WIDTH;
+const Glib::ustring PrintSettings::Keys::PAPER_HEIGHT = GTK_PRINT_SETTINGS_PAPER_HEIGHT;
+const Glib::ustring PrintSettings::Keys::NUM_COPIES = GTK_PRINT_SETTINGS_N_COPIES;
+const Glib::ustring PrintSettings::Keys::DEFAULT_SOURCE = GTK_PRINT_SETTINGS_DEFAULT_SOURCE;
+const Glib::ustring PrintSettings::Keys::QUALITY = GTK_PRINT_SETTINGS_QUALITY;
+const Glib::ustring PrintSettings::Keys::RESOLUTION = GTK_PRINT_SETTINGS_RESOLUTION;
+const Glib::ustring PrintSettings::Keys::USE_COLOR = GTK_PRINT_SETTINGS_USE_COLOR;
+const Glib::ustring PrintSettings::Keys::DUPLEX = GTK_PRINT_SETTINGS_DUPLEX;
+const Glib::ustring PrintSettings::Keys::COLLATE = GTK_PRINT_SETTINGS_COLLATE;
+const Glib::ustring PrintSettings::Keys::REVERSE = GTK_PRINT_SETTINGS_REVERSE;
+const Glib::ustring PrintSettings::Keys::MEDIA_TYPE = GTK_PRINT_SETTINGS_MEDIA_TYPE;
+const Glib::ustring PrintSettings::Keys::DITHER = GTK_PRINT_SETTINGS_DITHER;
+const Glib::ustring PrintSettings::Keys::SCALE = GTK_PRINT_SETTINGS_SCALE;
+const Glib::ustring PrintSettings::Keys::PRINT_PAGES = GTK_PRINT_SETTINGS_PRINT_PAGES;
+const Glib::ustring PrintSettings::Keys::PAGE_RANGES = GTK_PRINT_SETTINGS_PAGE_RANGES;
+const Glib::ustring PrintSettings::Keys::PAGE_SET = GTK_PRINT_SETTINGS_PAGE_SET;
+const Glib::ustring PrintSettings::Keys::FINISHINGS = GTK_PRINT_SETTINGS_FINISHINGS;
+const Glib::ustring PrintSettings::Keys::NUMBER_UP = GTK_PRINT_SETTINGS_NUMBER_UP;
+const Glib::ustring PrintSettings::Keys::OUTPUT_BIN = GTK_PRINT_SETTINGS_OUTPUT_BIN;
+
+const Glib::ustring PrintSettings::Keys::OUTPUT_FILE_FORMAT = GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT;
+const Glib::ustring PrintSettings::Keys::OUTPUT_URI = GTK_PRINT_SETTINGS_OUTPUT_URI;
+
+const Glib::ustring PrintSettings::Keys::WIN32_DRIVER_VERSION = GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION;
+const Glib::ustring PrintSettings::Keys::WIN32_DRIVER_EXTRA = GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA;
+
+
+void PrintSettings::setting_foreach(const SlotForeach& slot)
+{
+  SlotForeach slot_copy(slot);
+  gtk_print_settings_foreach(const_cast<GtkPrintSettings*>(gobj()), &proxy_foreach_callback, &slot_copy);
+}
+
+PrintSettings::PageRange::PageRange()
+:
+  start(0),
+  end(0)
+{}
+
+PrintSettings::PageRange::PageRange(int start_, int end_)
+:
+  start(start_),
+  end(end_)
+{}
+
+Glib::ArrayHandle<PrintSettings::PageRange> PrintSettings::get_page_ranges() const
+{
+  int num_ranges;
+  GtkPageRange* page_ranges =
+    gtk_print_settings_get_page_ranges(const_cast<GtkPrintSettings*>(gobj()), &num_ranges);
+  std::vector<PrintSettings::PageRange> v(num_ranges);
+
+  for (int i = 0; i < num_ranges; ++i)
+  {
+    v.push_back(PrintSettings::PageRange(page_ranges[i].start, page_ranges[i].end));
+  }
+
+  g_free(page_ranges);
+
+  Glib::ArrayHandle<PrintSettings::PageRange> ah(v);
+
+  return ah;
+}
+
+void PrintSettings::set_page_ranges(const Glib::ArrayHandle<PrintSettings::PageRange>& page_ranges)
+{
+  int n = page_ranges.size();
+  GtkPageRange* ranges = g_new0(GtkPageRange, n);
+  std::vector<PrintSettings::PageRange> v_ranges(page_ranges);
+
+  for (int i = 0; i < n; ++i)
+  {
+    ranges[i].start = v_ranges[i].start;
+    ranges[i].end = v_ranges[i].end;
+  }
+
+  gtk_print_settings_set_page_ranges(const_cast<GtkPrintSettings*>(gobj()), ranges, n);
+  g_free(ranges);
+}
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+// static
+GType Glib::Value<Gtk::PrintDuplex>::value_type()
+{
+  return gtk_print_duplex_get_type();
+}
+
+// static
+GType Glib::Value<Gtk::PrintQuality>::value_type()
+{
+  return gtk_print_quality_get_type();
+}
+
+// static
+GType Glib::Value<Gtk::PrintPages>::value_type()
+{
+  return gtk_print_pages_get_type();
+}
+
+// static
+GType Glib::Value<Gtk::PageSet>::value_type()
+{
+  return gtk_page_set_get_type();
+}
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::PrintSettings> wrap(GtkPrintSettings* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::PrintSettings>( dynamic_cast<Gtk::PrintSettings*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& PrintSettings_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &PrintSettings_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_print_settings_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void PrintSettings_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PrintSettings_Class::wrap_new(GObject* object)
+{
+  return new PrintSettings((GtkPrintSettings*)object);
+}
+
+
+/* The implementation: */
+
+GtkPrintSettings* PrintSettings::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+PrintSettings::PrintSettings(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+PrintSettings::PrintSettings(GtkPrintSettings* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+PrintSettings::~PrintSettings()
+{}
+
+
+PrintSettings::CppClassType PrintSettings::printsettings_class_; // initialize static member
+
+GType PrintSettings::get_type()
+{
+  return printsettings_class_.init().get_type();
+}
+
+GType PrintSettings::get_base_type()
+{
+  return gtk_print_settings_get_type();
+}
+
+
+PrintSettings::PrintSettings()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(printsettings_class_.init()))
+{
+  }
+
+Glib::RefPtr<PrintSettings> PrintSettings::create()
+{
+  return Glib::RefPtr<PrintSettings>( new PrintSettings() );
+}
+bool PrintSettings::has_key(const Glib::ustring& key) const
+{
+  return gtk_print_settings_has_key(const_cast<GtkPrintSettings*>(gobj()), key.c_str());
+}
+
+Glib::ustring PrintSettings::get(const Glib::ustring& key) const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_settings_get(const_cast<GtkPrintSettings*>(gobj()), key.c_str()));
+}
+
+void PrintSettings::set(const Glib::ustring& key, const Glib::ustring& value)
+{
+gtk_print_settings_set(gobj(), key.c_str(), value.c_str()); 
+}
+
+void PrintSettings::unset(const Glib::ustring& key)
+{
+gtk_print_settings_unset(gobj(), key.c_str()); 
+}
+
+bool PrintSettings::get_bool(const Glib::ustring& key) const
+{
+  return gtk_print_settings_get_bool(const_cast<GtkPrintSettings*>(gobj()), key.c_str());
+}
+
+void PrintSettings::set_bool(const Glib::ustring& key, bool value)
+{
+gtk_print_settings_set_bool(gobj(), key.c_str(), static_cast<int>(value)); 
+}
+
+double PrintSettings::get_double(const Glib::ustring& key) const
+{
+  return gtk_print_settings_get_double(const_cast<GtkPrintSettings*>(gobj()), key.c_str());
+}
+
+double PrintSettings::get_double_with_default(const Glib::ustring& key, double def) const
+{
+  return gtk_print_settings_get_double_with_default(const_cast<GtkPrintSettings*>(gobj()), key.c_str(), def);
+}
+
+void PrintSettings::set_double(const Glib::ustring& key, double value)
+{
+gtk_print_settings_set_double(gobj(), key.c_str(), value); 
+}
+
+double PrintSettings::get_length(const Glib::ustring& key, Unit unit) const
+{
+  return gtk_print_settings_get_length(const_cast<GtkPrintSettings*>(gobj()), key.c_str(), ((GtkUnit)(unit)));
+}
+
+void PrintSettings::set_length(const Glib::ustring& key, double value, Unit unit)
+{
+gtk_print_settings_set_length(gobj(), key.c_str(), value, ((GtkUnit)(unit))); 
+}
+
+int PrintSettings::get_int(const Glib::ustring& key) const
+{
+  return gtk_print_settings_get_int(const_cast<GtkPrintSettings*>(gobj()), key.c_str());
+}
+
+int PrintSettings::get_int_with_default(const Glib::ustring& key, int def) const
+{
+  return gtk_print_settings_get_int_with_default(const_cast<GtkPrintSettings*>(gobj()), key.c_str(), def);
+}
+
+void PrintSettings::set_int(const Glib::ustring& key, int value)
+{
+gtk_print_settings_set_int(gobj(), key.c_str(), value); 
+}
+
+Glib::ustring PrintSettings::get_printer() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_settings_get_printer(const_cast<GtkPrintSettings*>(gobj())));
+}
+
+void PrintSettings::set_printer(const Glib::ustring& name)
+{
+gtk_print_settings_set_printer(gobj(), name.c_str()); 
+}
+
+PageOrientation PrintSettings::get_orientation() const
+{
+  return (PageOrientation)gtk_print_settings_get_orientation(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_orientation(PageOrientation orientation)
+{
+gtk_print_settings_set_orientation(gobj(), ((GtkPageOrientation)(orientation))); 
+}
+
+PaperSize PrintSettings::get_paper_size()
+{
+  return Glib::wrap(gtk_print_settings_get_paper_size(gobj()), true);
+}
+
+const PaperSize PrintSettings::get_paper_size() const
+{
+  return const_cast<PrintSettings*>(this)->get_paper_size();
+}
+
+void PrintSettings::set_paper_size(const PaperSize& paper_size)
+{
+gtk_print_settings_set_paper_size(gobj(), const_cast<GtkPaperSize*>((paper_size).gobj())); 
+}
+
+double PrintSettings::get_paper_width(Unit unit) const
+{
+  return gtk_print_settings_get_paper_width(const_cast<GtkPrintSettings*>(gobj()), ((GtkUnit)(unit)));
+}
+
+void PrintSettings::set_paper_width(double width, Unit unit)
+{
+gtk_print_settings_set_paper_width(gobj(), width, ((GtkUnit)(unit))); 
+}
+
+double PrintSettings::get_paper_height(Unit unit) const
+{
+  return gtk_print_settings_get_paper_height(const_cast<GtkPrintSettings*>(gobj()), ((GtkUnit)(unit)));
+}
+
+void PrintSettings::set_paper_height(double height, Unit unit)
+{
+gtk_print_settings_set_paper_height(gobj(), height, ((GtkUnit)(unit))); 
+}
+
+bool PrintSettings::get_use_color() const
+{
+  return gtk_print_settings_get_use_color(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_use_color(bool use_color)
+{
+gtk_print_settings_set_use_color(gobj(), static_cast<int>(use_color)); 
+}
+
+bool PrintSettings::get_collate() const
+{
+  return gtk_print_settings_get_collate(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_collate(bool collate)
+{
+gtk_print_settings_set_collate(gobj(), static_cast<int>(collate)); 
+}
+
+bool PrintSettings::get_reverse() const
+{
+  return gtk_print_settings_get_reverse(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_reverse(bool reverse)
+{
+gtk_print_settings_set_reverse(gobj(), static_cast<int>(reverse)); 
+}
+
+PrintDuplex PrintSettings::get_duplex() const
+{
+  return (PrintDuplex)gtk_print_settings_get_duplex(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_duplex(PrintDuplex duplex)
+{
+gtk_print_settings_set_duplex(gobj(), ((GtkPrintDuplex)(duplex))); 
+}
+
+PrintQuality PrintSettings::get_quality() const
+{
+  return (PrintQuality)gtk_print_settings_get_quality(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_quality(PrintQuality quality)
+{
+gtk_print_settings_set_quality(gobj(), ((GtkPrintQuality)(quality))); 
+}
+
+int PrintSettings::get_n_copies() const
+{
+  return gtk_print_settings_get_n_copies(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_n_copies(int num_copies)
+{
+gtk_print_settings_set_n_copies(gobj(), num_copies); 
+}
+
+int PrintSettings::get_number_up() const
+{
+  return gtk_print_settings_get_number_up(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_number_up(int number_up)
+{
+gtk_print_settings_set_number_up(gobj(), number_up); 
+}
+
+int PrintSettings::get_resolution() const
+{
+  return gtk_print_settings_get_resolution(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_resolution(int resolution)
+{
+gtk_print_settings_set_resolution(gobj(), resolution); 
+}
+
+double PrintSettings::get_scale() const
+{
+  return gtk_print_settings_get_scale(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_scale(double scale)
+{
+gtk_print_settings_set_scale(gobj(), scale); 
+}
+
+PrintPages PrintSettings::get_print_pages() const
+{
+  return (PrintPages)gtk_print_settings_get_print_pages(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_print_pages(PrintPages print_pages)
+{
+gtk_print_settings_set_print_pages(gobj(), ((GtkPrintPages)(print_pages))); 
+}
+
+PageSet PrintSettings::get_page_set() const
+{
+  return (PageSet)gtk_print_settings_get_page_set(const_cast<GtkPrintSettings*>(gobj()));
+}
+
+void PrintSettings::set_page_set(PageSet page_set)
+{
+gtk_print_settings_set_page_set(gobj(), ((GtkPageSet)(page_set))); 
+}
+
+Glib::ustring PrintSettings::get_default_source() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_settings_get_default_source(const_cast<GtkPrintSettings*>(gobj())));
+}
+
+void PrintSettings::set_default_source(const Glib::ustring& default_source)
+{
+gtk_print_settings_set_default_source(gobj(), default_source.c_str()); 
+}
+
+Glib::ustring PrintSettings::get_media_type() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_settings_get_media_type(const_cast<GtkPrintSettings*>(gobj())));
+}
+
+void PrintSettings::set_media_type(const Glib::ustring& media_type)
+{
+gtk_print_settings_set_media_type(gobj(), media_type.c_str()); 
+}
+
+Glib::ustring PrintSettings::get_dither() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_settings_get_dither(const_cast<GtkPrintSettings*>(gobj())));
+}
+
+void PrintSettings::set_dither(const Glib::ustring& dither)
+{
+gtk_print_settings_set_dither(gobj(), dither.c_str()); 
+}
+
+Glib::ustring PrintSettings::get_finishings() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_settings_get_finishings(const_cast<GtkPrintSettings*>(gobj())));
+}
+
+void PrintSettings::set_finishings(const Glib::ustring& finishings)
+{
+gtk_print_settings_set_finishings(gobj(), finishings.c_str()); 
+}
+
+Glib::ustring PrintSettings::get_output_bin() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_print_settings_get_output_bin(const_cast<GtkPrintSettings*>(gobj())));
+}
+
+void PrintSettings::set_output_bin(const Glib::ustring& output_bin)
+{
+gtk_print_settings_set_output_bin(gobj(), output_bin.c_str()); 
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printsettings.h b/libs/gtkmm2/gtk/gtkmm/printsettings.h
new file mode 100644 (file)
index 0000000..f171d88
--- /dev/null
@@ -0,0 +1,477 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTSETTINGS_H
+#define _GTKMM_PRINTSETTINGS_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <gtkmm/enums.h>
+#include <gtkmm/papersize.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPrintSettings GtkPrintSettings;
+typedef struct _GtkPrintSettingsClass GtkPrintSettingsClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PrintSettings_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum PrintDuplex
+{
+  PRINT_DUPLEX_SIMPLEX,
+  PRINT_DUPLEX_HORIZONTAL,
+  PRINT_DUPLEX_VERTICAL
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintDuplex> : public Glib::Value_Enum<Gtk::PrintDuplex>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum PrintQuality
+{
+  PRINT_QUALITY_LOW,
+  PRINT_QUALITY_NORMAL,
+  PRINT_QUALITY_HIGH,
+  PRINT_QUALITY_DRAFT
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintQuality> : public Glib::Value_Enum<Gtk::PrintQuality>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum PrintPages
+{
+  PRINT_PAGES_ALL,
+  PRINT_PAGES_CURRENT,
+  PRINT_PAGES_RANGES
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PrintPages> : public Glib::Value_Enum<Gtk::PrintPages>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum PageSet
+{
+  PAGE_SET_ALL,
+  PAGE_SET_EVEN,
+  PAGE_SET_ODD
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::PageSet> : public Glib::Value_Enum<Gtk::PageSet>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** A PrintSettings object represents the settings of a print dialog in a system-independent way. 
+ * The main use for this object is that once you've printed you can get a settings object that 
+ * represents the settings the user chose, and the next time you print you can pass that object 
+ * in so that the user doesn't have to re-set all his settings.
+ * 
+ * It's also possible to enumerate the settings so that you can easily save the settings for the 
+ * next time your app runs, or even store them in a document. The predefined keys try to use shared 
+ * values as much as possible so that moving such a document between systems still works. 
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PrintSettings : public Glib::Object
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef PrintSettings CppObjectType;
+  typedef PrintSettings_Class CppClassType;
+  typedef GtkPrintSettings BaseObjectType;
+  typedef GtkPrintSettingsClass BaseClassType;
+
+private:  friend class PrintSettings_Class;
+  static CppClassType printsettings_class_;
+
+private:
+  // noncopyable
+  PrintSettings(const PrintSettings&);
+  PrintSettings& operator=(const PrintSettings&);
+
+protected:
+  explicit PrintSettings(const Glib::ConstructParams& construct_params);
+  explicit PrintSettings(GtkPrintSettings* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~PrintSettings();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkPrintSettings*       gobj()       { return reinterpret_cast<GtkPrintSettings*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkPrintSettings* gobj() const { return reinterpret_cast<GtkPrintSettings*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkPrintSettings* gobj_copy();
+
+private:
+
+protected:
+  PrintSettings();
+
+public:
+  
+  static Glib::RefPtr<PrintSettings> create();
+
+
+  /** Print settings keys.
+   */
+  class Keys
+  {
+  public:
+    static const Glib::ustring PRINTER;
+    static const Glib::ustring ORIENTATION;
+    static const Glib::ustring PAPER_FORMAT;
+    static const Glib::ustring PAPER_WIDTH;
+    static const Glib::ustring PAPER_HEIGHT;
+    static const Glib::ustring NUM_COPIES;
+    static const Glib::ustring DEFAULT_SOURCE;
+    static const Glib::ustring QUALITY;
+    static const Glib::ustring RESOLUTION;
+    static const Glib::ustring USE_COLOR;
+    static const Glib::ustring DUPLEX;
+    static const Glib::ustring COLLATE;
+    static const Glib::ustring REVERSE;
+    static const Glib::ustring MEDIA_TYPE;
+    static const Glib::ustring DITHER;
+    static const Glib::ustring SCALE;
+    static const Glib::ustring PRINT_PAGES;
+    static const Glib::ustring PAGE_RANGES;
+    static const Glib::ustring PAGE_SET;
+    static const Glib::ustring FINISHINGS;
+    static const Glib::ustring NUMBER_UP;
+    static const Glib::ustring OUTPUT_BIN;
+
+    static const Glib::ustring OUTPUT_FILE_FORMAT;
+    static const Glib::ustring OUTPUT_URI;
+
+    static const Glib::ustring WIN32_DRIVER_VERSION;
+    static const Glib::ustring WIN32_DRIVER_EXTRA;
+  };
+
+  
+  //TODO: add a @see link?
+  
+  bool has_key(const Glib::ustring& key) const;
+
+  
+  Glib::ustring get(const Glib::ustring& key) const;
+
+  
+  void set(const Glib::ustring& key, const Glib::ustring& value);
+  
+  void unset(const Glib::ustring& key);
+
+  /** For example, 
+   * void on_foreach_setting(const Glib::ustring& key, const Glib::ustring& value);
+   */
+  typedef sigc::slot<void, Glib::ustring&, Glib::ustring&> SlotForeach;
+
+  /** Calls a function for each print setting.
+  * @param slot The callback to call for each print setting.
+  */
+  void setting_foreach(const SlotForeach& slot);
+
+  bool get_bool(const Glib::ustring& key) const;
+  
+  void set_bool(const Glib::ustring& key, bool value = true);
+
+  
+  double get_double(const Glib::ustring& key) const;
+  
+  double get_double_with_default(const Glib::ustring& key, double def) const;
+  
+  void set_double(const Glib::ustring& key, double value);
+
+  
+  double get_length(const Glib::ustring& key, Unit unit) const;
+  
+  void set_length(const Glib::ustring& key, double value, Unit unit);
+
+  
+  int get_int(const Glib::ustring& key) const;
+  
+  int get_int_with_default(const Glib::ustring& key, int def) const;
+  
+  void set_int(const Glib::ustring& key, int value);
+
+  // helpers:
+
+  
+  Glib::ustring get_printer() const;
+  
+  void set_printer(const Glib::ustring& name);
+
+  
+  PageOrientation get_orientation() const;
+  
+  void set_orientation(PageOrientation orientation);
+
+  
+  PaperSize get_paper_size();
+  
+  const PaperSize get_paper_size() const;
+  
+  void set_paper_size(const PaperSize& paper_size);
+
+  
+  double get_paper_width(Unit unit) const;
+  
+  void set_paper_width(double width, Unit unit);
+  
+  double get_paper_height(Unit unit) const;
+  
+  void set_paper_height(double height, Unit unit);
+
+  
+  bool get_use_color() const;
+  
+  void set_use_color(bool use_color = true);
+
+  
+  bool get_collate() const;
+  
+  void set_collate(bool collate = true);
+
+  
+  bool get_reverse() const;
+  
+  void set_reverse(bool reverse = true);
+
+  
+  PrintDuplex get_duplex() const;
+  
+  void set_duplex(PrintDuplex duplex);
+
+  
+  PrintQuality get_quality() const;
+  
+  void set_quality(PrintQuality quality);
+
+  
+  int get_n_copies() const;
+  
+  void set_n_copies(int num_copies);
+
+  
+  int get_number_up() const;
+  
+  void set_number_up(int number_up);
+
+  
+  int get_resolution() const;
+  
+  void set_resolution(int resolution);
+
+  
+  double get_scale() const;
+  
+  void set_scale(double scale);
+
+  
+  PrintPages get_print_pages() const;
+  
+  void set_print_pages(PrintPages print_pages);
+
+  //TODO: What part of the C API does this correspond to?
+  class PageRange
+  {
+  public:
+    PageRange();
+    PageRange(int start, int end);
+
+    int start;
+    int end;
+  };
+
+  Glib::ArrayHandle<PageRange> get_page_ranges() const;
+  void set_page_ranges(const Glib::ArrayHandle<PageRange>& page_ranges);
+
+  
+  PageSet get_page_set() const;
+  
+  void set_page_set(PageSet page_set);
+
+  
+  Glib::ustring get_default_source() const;
+  
+  void set_default_source(const Glib::ustring& default_source);
+
+  
+  Glib::ustring get_media_type() const;
+  
+  void set_media_type(const Glib::ustring& media_type);
+
+  
+  Glib::ustring get_dither() const;
+  
+  void set_dither(const Glib::ustring& dither);
+
+  
+  Glib::ustring get_finishings() const;
+  
+  void set_finishings(const Glib::ustring& finishings);
+
+  
+  Glib::ustring get_output_bin() const;
+  
+  void set_output_bin(const Glib::ustring& output_bin);
+
+  //TODO: Properties.
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PrintSettings
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::PrintSettings> wrap(GtkPrintSettings* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_PRINTSETTINGS_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printunixdialog.cc b/libs/gtkmm2/gtk/gtkmm/printunixdialog.cc
new file mode 100644 (file)
index 0000000..c71eede
--- /dev/null
@@ -0,0 +1,293 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/printunixdialog.h>
+#include <gtkmm/private/printunixdialog_p.h>
+
+// -*- c++ -*-
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkprintunixdialog.h>
+#include <gtkmm/label.h>
+
+namespace Gtk
+{
+
+PrintUnixDialog::PrintUnixDialog(Gtk::Window& parent, const Glib::ustring& title)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(printunixdialog_class_.init(), "title",title.c_str(), (char*) 0))
+{
+  set_transient_for(parent);
+}
+
+PrintUnixDialog::PrintUnixDialog(const Glib::ustring& title)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(printunixdialog_class_.init(), "title",title.c_str(), (char*) 0))
+{
+}
+
+void PrintUnixDialog::add_custom_tab(const Widget& child, const Glib::ustring& tab_label)
+{
+  Gtk::Label* label = Gtk::manage(new Gtk::Label(tab_label));
+  add_custom_tab(child, *label); 
+}
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::PrintUnixDialog* wrap(GtkPrintUnixDialog* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::PrintUnixDialog *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& PrintUnixDialog_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &PrintUnixDialog_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_print_unix_dialog_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void PrintUnixDialog_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* PrintUnixDialog_Class::wrap_new(GObject* o)
+{
+  return manage(new PrintUnixDialog((GtkPrintUnixDialog*)(o)));
+
+}
+
+
+/* The implementation: */
+
+PrintUnixDialog::PrintUnixDialog(const Glib::ConstructParams& construct_params)
+:
+  Gtk::Dialog(construct_params)
+{
+  }
+
+PrintUnixDialog::PrintUnixDialog(GtkPrintUnixDialog* castitem)
+:
+  Gtk::Dialog((GtkDialog*)(castitem))
+{
+  }
+
+PrintUnixDialog::~PrintUnixDialog()
+{
+  destroy_();
+}
+
+PrintUnixDialog::CppClassType PrintUnixDialog::printunixdialog_class_; // initialize static member
+
+GType PrintUnixDialog::get_type()
+{
+  return printunixdialog_class_.init().get_type();
+}
+
+GType PrintUnixDialog::get_base_type()
+{
+  return gtk_print_unix_dialog_get_type();
+}
+
+
+void PrintUnixDialog::set_page_setup(const Glib::RefPtr<PageSetup>& page_setup)
+{
+gtk_print_unix_dialog_set_page_setup(gobj(), Glib::unwrap(page_setup)); 
+}
+
+Glib::RefPtr<PageSetup> PrintUnixDialog::get_page_setup()
+{
+
+  Glib::RefPtr<PageSetup> retvalue = Glib::wrap(gtk_print_unix_dialog_get_page_setup(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const PageSetup> PrintUnixDialog::get_page_setup() const
+{
+  return const_cast<PrintUnixDialog*>(this)->get_page_setup();
+}
+
+void PrintUnixDialog::set_current_page(int current_page)
+{
+gtk_print_unix_dialog_set_current_page(gobj(), current_page); 
+}
+
+int PrintUnixDialog::get_current_page() const
+{
+  return gtk_print_unix_dialog_get_current_page(const_cast<GtkPrintUnixDialog*>(gobj()));
+}
+
+void PrintUnixDialog::set_settings(const Glib::RefPtr<PrintSettings>& print_settings)
+{
+gtk_print_unix_dialog_set_settings(gobj(), Glib::unwrap(print_settings)); 
+}
+
+Glib::RefPtr<PrintSettings> PrintUnixDialog::get_settings()
+{
+
+  Glib::RefPtr<PrintSettings> retvalue = Glib::wrap(gtk_print_unix_dialog_get_settings(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const PrintSettings> PrintUnixDialog::get_settings() const
+{
+  return const_cast<PrintUnixDialog*>(this)->get_settings();
+}
+
+Glib::RefPtr<Printer> PrintUnixDialog::get_selected_printer()
+{
+
+  Glib::RefPtr<Printer> retvalue = Glib::wrap(gtk_print_unix_dialog_get_selected_printer(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const Printer> PrintUnixDialog::get_selected_printer() const
+{
+
+  Glib::RefPtr<const Printer> retvalue = Glib::wrap(gtk_print_unix_dialog_get_selected_printer(const_cast<GtkPrintUnixDialog*>(gobj())));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+void PrintUnixDialog::add_custom_tab(const Widget& child, const Widget& tab_label)
+{
+gtk_print_unix_dialog_add_custom_tab(gobj(), const_cast<GtkWidget*>((child).gobj()), const_cast<GtkWidget*>((tab_label).gobj())); 
+}
+
+void PrintUnixDialog::set_manual_capabilities(PrintCapabilities capabilities)
+{
+gtk_print_unix_dialog_set_manual_capabilities(gobj(), ((GtkPrintCapabilities)(capabilities))); 
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy< Glib::RefPtr<PageSetup> > PrintUnixDialog::property_page_setup() 
+{
+  return Glib::PropertyProxy< Glib::RefPtr<PageSetup> >(this, "page-setup");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> > PrintUnixDialog::property_page_setup() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> >(this, "page-setup");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<int> PrintUnixDialog::property_current_page() 
+{
+  return Glib::PropertyProxy<int>(this, "current-page");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> PrintUnixDialog::property_current_page() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "current-page");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy< Glib::RefPtr<PrintSettings> > PrintUnixDialog::property_print_settings() 
+{
+  return Glib::PropertyProxy< Glib::RefPtr<PrintSettings> >(this, "print-settings");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> > PrintUnixDialog::property_print_settings() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> >(this, "print-settings");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Printer> > PrintUnixDialog::property_selected_printer() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Printer> >(this, "selected-printer");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/printunixdialog.h b/libs/gtkmm2/gtk/gtkmm/printunixdialog.h
new file mode 100644 (file)
index 0000000..89bc2d9
--- /dev/null
@@ -0,0 +1,249 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTUNIXDIALOG_H
+#define _GTKMM_PRINTUNIXDIALOG_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/dialog.h>
+#include <gtkmm/pagesetup.h>
+#include <gtkmm/printer.h>
+#include <gtkmm/printjob.h>
+#include <gtkmm/printsettings.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkPrintUnixDialog GtkPrintUnixDialog;
+typedef struct _GtkPrintUnixDialogClass GtkPrintUnixDialogClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class PrintUnixDialog_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** PrintUnixDialog implements a print dialog for platforms
+ * which don't provide a native print dialog, like Unix. It can 
+ * be used very much like any other GTK+ dialog, at the cost of 
+ * the portability offered by the high-level printing API exposed
+ * through PrintOperation.
+ *
+ * In order to print something with PrintUnixDialog, you need
+ * to use get_selected_printer() to obtain a Printer object and
+ * use it to construct a PrintJob using PrintJob::create().
+ *
+ * PrintUnixDialog uses the following response values:
+ * - RESPONSE_OK for the "Print" button
+ * - RESPONSE_APPLY for the "Preview" button
+ * - RESPONSE_CANCEL for the "Cancel" button
+ *
+ * @newin2p10
+ *
+ * @ingroup Printing
+ */
+
+class PrintUnixDialog : public Dialog
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PrintUnixDialog CppObjectType;
+  typedef PrintUnixDialog_Class CppClassType;
+  typedef GtkPrintUnixDialog BaseObjectType;
+  typedef GtkPrintUnixDialogClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~PrintUnixDialog();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class PrintUnixDialog_Class;
+  static CppClassType printunixdialog_class_;
+
+  // noncopyable
+  PrintUnixDialog(const PrintUnixDialog&);
+  PrintUnixDialog& operator=(const PrintUnixDialog&);
+
+protected:
+  explicit PrintUnixDialog(const Glib::ConstructParams& construct_params);
+  explicit PrintUnixDialog(GtkPrintUnixDialog* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkPrintUnixDialog*       gobj()       { return reinterpret_cast<GtkPrintUnixDialog*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkPrintUnixDialog* gobj() const { return reinterpret_cast<GtkPrintUnixDialog*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+  //This is not available in on Win32.
+//This source file will not be compiled,
+//and the class will not be registered in wrap_init.h or wrap_init.cc
+
+
+public:
+  explicit PrintUnixDialog(Gtk::Window& parent, const Glib::ustring& title);
+  explicit PrintUnixDialog(const Glib::ustring& title);
+
+  
+  void set_page_setup(const Glib::RefPtr<PageSetup>& page_setup);
+  
+  Glib::RefPtr<PageSetup> get_page_setup();
+  
+  Glib::RefPtr<const PageSetup> get_page_setup() const;
+
+  
+  void set_current_page(int current_page);
+  
+  int get_current_page() const;
+
+  
+  void set_settings(const Glib::RefPtr<PrintSettings>& print_settings);
+  
+  Glib::RefPtr<PrintSettings> get_settings();
+  
+  Glib::RefPtr<const PrintSettings> get_settings() const;
+
+   
+  Glib::RefPtr<Printer> get_selected_printer();
+  
+  Glib::RefPtr<const Printer> get_selected_printer() const;
+
+  void add_custom_tab(const Widget& child, const Glib::ustring& tab_label);
+  
+  void add_custom_tab(const Widget& child, const Widget& tab_label);
+  
+  void set_manual_capabilities(PrintCapabilities capabilities);
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPageSetup to use.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy< Glib::RefPtr<PageSetup> > property_page_setup() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPageSetup to use.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> > property_page_setup() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The current page in the document.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<int> property_current_page() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The current page in the document.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_current_page() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPrintSettings used for initializing the dialog.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy< Glib::RefPtr<PrintSettings> > property_print_settings() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPrintSettings used for initializing the dialog.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> > property_print_settings() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The GtkPrinter which is selected.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Printer> > property_selected_printer() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::PrintUnixDialog
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::PrintUnixDialog* wrap(GtkPrintUnixDialog* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_PRINTUNIXDIALOG_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/assistant_p.h b/libs/gtkmm2/gtk/gtkmm/private/assistant_p.h
new file mode 100644 (file)
index 0000000..069325a
--- /dev/null
@@ -0,0 +1,55 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_ASSISTANT_P_H
+#define _GTKMM_ASSISTANT_P_H
+
+
+#include <gtkmm/private/window_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class Assistant_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef Assistant CppObjectType;
+  typedef GtkAssistant BaseObjectType;
+  typedef GtkAssistantClass BaseClassType;
+  typedef Gtk::Window_Class CppClassParent;
+  typedef GtkWindowClass BaseClassParent;
+
+  friend class Assistant;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static void prepare_callback(GtkAssistant* self, GtkWidget* p0);
+  static void apply_callback(GtkAssistant* self);
+  static void close_callback(GtkAssistant* self);
+  static void cancel_callback(GtkAssistant* self);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_ASSISTANT_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/cellrendereraccel_p.h b/libs/gtkmm2/gtk/gtkmm/private/cellrendereraccel_p.h
new file mode 100644 (file)
index 0000000..abf103d
--- /dev/null
@@ -0,0 +1,53 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_CELLRENDERERACCEL_P_H
+#define _GTKMM_CELLRENDERERACCEL_P_H
+
+
+#include <gtkmm/private/cellrenderertext_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class CellRendererAccel_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef CellRendererAccel CppObjectType;
+  typedef GtkCellRendererAccel BaseObjectType;
+  typedef GtkCellRendererAccelClass BaseClassType;
+  typedef Gtk::CellRendererText_Class CppClassParent;
+  typedef GtkCellRendererTextClass BaseClassParent;
+
+  friend class CellRendererAccel;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static void accel_edited_callback(GtkCellRendererAccel* self, const gchar* p0, guint p1, GdkModifierType p2, guint p3);
+  static void accel_cleared_callback(GtkCellRendererAccel* self, const gchar* p0);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_CELLRENDERERACCEL_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/cellrendererspin_p.h b/libs/gtkmm2/gtk/gtkmm/private/cellrendererspin_p.h
new file mode 100644 (file)
index 0000000..f415315
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_CELLRENDERERSPIN_P_H
+#define _GTKMM_CELLRENDERERSPIN_P_H
+
+
+#include <gtkmm/private/cellrenderertext_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class CellRendererSpin_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef CellRendererSpin CppObjectType;
+  typedef GtkCellRendererSpin BaseObjectType;
+  typedef GtkCellRendererSpinClass BaseClassType;
+  typedef Gtk::CellRendererText_Class CppClassParent;
+  typedef GtkCellRendererTextClass BaseClassParent;
+
+  friend class CellRendererSpin;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_CELLRENDERERSPIN_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/linkbutton_p.h b/libs/gtkmm2/gtk/gtkmm/private/linkbutton_p.h
new file mode 100644 (file)
index 0000000..4b8d931
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_LINKBUTTON_P_H
+#define _GTKMM_LINKBUTTON_P_H
+
+
+#include <gtkmm/private/button_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class LinkButton_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef LinkButton CppObjectType;
+  typedef GtkLinkButton BaseObjectType;
+  typedef GtkLinkButtonClass BaseClassType;
+  typedef Gtk::Button_Class CppClassParent;
+  typedef GtkButtonClass BaseClassParent;
+
+  friend class LinkButton;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_LINKBUTTON_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/pagesetup_p.h b/libs/gtkmm2/gtk/gtkmm/private/pagesetup_p.h
new file mode 100644 (file)
index 0000000..beb8d38
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PAGESETUP_P_H
+#define _GTKMM_PAGESETUP_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class PageSetup_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PageSetup CppObjectType;
+  typedef GtkPageSetup BaseObjectType;
+  typedef GtkPageSetupClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class PageSetup;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PAGESETUP_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/pagesetupunixdialog_p.h b/libs/gtkmm2/gtk/gtkmm/private/pagesetupunixdialog_p.h
new file mode 100644 (file)
index 0000000..697f91a
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PAGESETUPUNIXDIALOG_P_H
+#define _GTKMM_PAGESETUPUNIXDIALOG_P_H
+
+
+#include <gtkmm/private/dialog_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class PageSetupUnixDialog_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PageSetupUnixDialog CppObjectType;
+  typedef GtkPageSetupUnixDialog BaseObjectType;
+  typedef GtkPageSetupUnixDialogClass BaseClassType;
+  typedef Gtk::Dialog_Class CppClassParent;
+  typedef GtkDialogClass BaseClassParent;
+
+  friend class PageSetupUnixDialog;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PAGESETUPUNIXDIALOG_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/papersize_p.h b/libs/gtkmm2/gtk/gtkmm/private/papersize_p.h
new file mode 100644 (file)
index 0000000..4438869
--- /dev/null
@@ -0,0 +1,8 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PAPERSIZE_P_H
+#define _GTKMM_PAPERSIZE_P_H
+
+
+#endif /* _GTKMM_PAPERSIZE_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/printcontext_p.h b/libs/gtkmm2/gtk/gtkmm/private/printcontext_p.h
new file mode 100644 (file)
index 0000000..a4102e3
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTCONTEXT_P_H
+#define _GTKMM_PRINTCONTEXT_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class PrintContext_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PrintContext CppObjectType;
+  typedef GtkPrintContext BaseObjectType;
+  typedef GtkPrintContextClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class PrintContext;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PRINTCONTEXT_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/printer_p.h b/libs/gtkmm2/gtk/gtkmm/private/printer_p.h
new file mode 100644 (file)
index 0000000..e694c97
--- /dev/null
@@ -0,0 +1,52 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTER_P_H
+#define _GTKMM_PRINTER_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class Printer_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef Printer CppObjectType;
+  typedef GtkPrinter BaseObjectType;
+  typedef GtkPrinterClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class Printer;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static void details_acquired_callback(GtkPrinter* self, gboolean p0);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PRINTER_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/printjob_p.h b/libs/gtkmm2/gtk/gtkmm/private/printjob_p.h
new file mode 100644 (file)
index 0000000..c1ff73b
--- /dev/null
@@ -0,0 +1,52 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTJOB_P_H
+#define _GTKMM_PRINTJOB_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class PrintJob_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PrintJob CppObjectType;
+  typedef GtkPrintJob BaseObjectType;
+  typedef GtkPrintJobClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class PrintJob;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static void status_changed_callback(GtkPrintJob* self);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PRINTJOB_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/printoperation_p.h b/libs/gtkmm2/gtk/gtkmm/private/printoperation_p.h
new file mode 100644 (file)
index 0000000..794ddf3
--- /dev/null
@@ -0,0 +1,62 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTOPERATION_P_H
+#define _GTKMM_PRINTOPERATION_P_H
+
+
+#include <glibmm/private/object_p.h>
+#include <gtk/gtkprintoperation.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class PrintOperation_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PrintOperation CppObjectType;
+  typedef GtkPrintOperation BaseObjectType;
+  typedef GtkPrintOperationClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class PrintOperation;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static void done_callback(GtkPrintOperation* self, GtkPrintOperationResult p0);
+  static void begin_print_callback(GtkPrintOperation* self, GtkPrintContext* p0);
+  static gboolean paginate_callback(GtkPrintOperation* self, GtkPrintContext* p0);
+  static void request_page_setup_callback(GtkPrintOperation* self, GtkPrintContext* p0, gint p1, GtkPageSetup* p2);
+  static void draw_page_callback(GtkPrintOperation* self, GtkPrintContext* p0, gint p1);
+  static void end_print_callback(GtkPrintOperation* self, GtkPrintContext* p0);
+  static void status_changed_callback(GtkPrintOperation* self);
+  static GtkWidget* create_custom_widget_callback(GtkPrintOperation* self);
+  static void custom_widget_apply_callback(GtkPrintOperation* self, GtkWidget* p0);
+  static gboolean preview_callback(GtkPrintOperation* self, GtkPrintOperationPreview* p0, GtkPrintContext* p1, GtkWindow* p2);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PRINTOPERATION_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/printoperationpreview_p.h b/libs/gtkmm2/gtk/gtkmm/private/printoperationpreview_p.h
new file mode 100644 (file)
index 0000000..94cfe71
--- /dev/null
@@ -0,0 +1,53 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTOPERATIONPREVIEW_P_H
+#define _GTKMM_PRINTOPERATIONPREVIEW_P_H
+
+
+#include <glibmm/private/interface_p.h>
+
+#include <glibmm/private/interface_p.h>
+
+namespace Gtk
+{
+
+class PrintOperationPreview_Class : public Glib::Interface_Class
+{
+public:
+  typedef PrintOperationPreview CppObjectType;
+  typedef GtkPrintOperationPreview BaseObjectType;
+  typedef GtkPrintOperationPreviewIface BaseClassType;
+  typedef Glib::Interface_Class CppClassParent;
+
+  friend class PrintOperationPreview;
+
+  const Glib::Interface_Class& init();
+
+  static void iface_init_function(void* g_iface, void* iface_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static void ready_callback(GtkPrintOperationPreview* self, GtkPrintContext* p0);
+  static void got_page_size_callback(GtkPrintOperationPreview* self, GtkPrintContext* p0, GtkPageSetup* p1);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+  static void render_page_vfunc_callback(GtkPrintOperationPreview* self, gint page_nr);
+  static void end_preview_vfunc_callback(GtkPrintOperationPreview* self);
+  static gboolean is_selected_vfunc_callback(GtkPrintOperationPreview* self, gint page_nr);
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PRINTOPERATIONPREVIEW_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/printsettings_p.h b/libs/gtkmm2/gtk/gtkmm/private/printsettings_p.h
new file mode 100644 (file)
index 0000000..8297647
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTSETTINGS_P_H
+#define _GTKMM_PRINTSETTINGS_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class PrintSettings_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PrintSettings CppObjectType;
+  typedef GtkPrintSettings BaseObjectType;
+  typedef GtkPrintSettingsClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class PrintSettings;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PRINTSETTINGS_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/printunixdialog_p.h b/libs/gtkmm2/gtk/gtkmm/private/printunixdialog_p.h
new file mode 100644 (file)
index 0000000..8a55fc2
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_PRINTUNIXDIALOG_P_H
+#define _GTKMM_PRINTUNIXDIALOG_P_H
+
+
+#include <gtkmm/private/dialog_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class PrintUnixDialog_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef PrintUnixDialog CppObjectType;
+  typedef GtkPrintUnixDialog BaseObjectType;
+  typedef GtkPrintUnixDialogClass BaseClassType;
+  typedef Gtk::Dialog_Class CppClassParent;
+  typedef GtkDialogClass BaseClassParent;
+
+  friend class PrintUnixDialog;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_PRINTUNIXDIALOG_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/recentchooser_p.h b/libs/gtkmm2/gtk/gtkmm/private/recentchooser_p.h
new file mode 100644 (file)
index 0000000..e4f0475
--- /dev/null
@@ -0,0 +1,55 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSER_P_H
+#define _GTKMM_RECENTCHOOSER_P_H
+
+
+#include <glibmm/private/interface_p.h>
+
+#include <glibmm/private/interface_p.h>
+
+namespace Gtk
+{
+
+class RecentChooser_Class : public Glib::Interface_Class
+{
+public:
+  typedef RecentChooser CppObjectType;
+  typedef GtkRecentChooser BaseObjectType;
+  typedef GtkRecentChooserIface BaseClassType;
+  typedef Glib::Interface_Class CppClassParent;
+
+  friend class RecentChooser;
+
+  const Glib::Interface_Class& init();
+
+  static void iface_init_function(void* g_iface, void* iface_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+  static gchar* get_current_uri_vfunc_callback(GtkRecentChooser* self);
+  static void unselect_uri_vfunc_callback(GtkRecentChooser* self, const gchar* uri);
+  static void select_all_vfunc_callback(GtkRecentChooser* self);
+  static void unselect_all_vfunc_callback(GtkRecentChooser* self);
+  static GtkRecentManager* get_recent_manager_vfunc_callback(GtkRecentChooser* self);
+  static void add_filter_vfunc_callback(GtkRecentChooser* self, GtkRecentFilter* filter);
+  static void remove_filter_vfunc_callback(GtkRecentChooser* self, GtkRecentFilter* filter);
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_RECENTCHOOSER_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/recentchooserdialog_p.h b/libs/gtkmm2/gtk/gtkmm/private/recentchooserdialog_p.h
new file mode 100644 (file)
index 0000000..4bd87e1
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSERDIALOG_P_H
+#define _GTKMM_RECENTCHOOSERDIALOG_P_H
+
+
+#include <gtkmm/private/dialog_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class RecentChooserDialog_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentChooserDialog CppObjectType;
+  typedef GtkRecentChooserDialog BaseObjectType;
+  typedef GtkRecentChooserDialogClass BaseClassType;
+  typedef Gtk::Dialog_Class CppClassParent;
+  typedef GtkDialogClass BaseClassParent;
+
+  friend class RecentChooserDialog;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_RECENTCHOOSERDIALOG_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/recentchoosermenu_p.h b/libs/gtkmm2/gtk/gtkmm/private/recentchoosermenu_p.h
new file mode 100644 (file)
index 0000000..39010af
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSERMENU_P_H
+#define _GTKMM_RECENTCHOOSERMENU_P_H
+
+
+#include <gtkmm/private/menu_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class RecentChooserMenu_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentChooserMenu CppObjectType;
+  typedef GtkRecentChooserMenu BaseObjectType;
+  typedef GtkRecentChooserMenuClass BaseClassType;
+  typedef Gtk::Menu_Class CppClassParent;
+  typedef GtkMenuClass BaseClassParent;
+
+  friend class RecentChooserMenu;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_RECENTCHOOSERMENU_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/recentchooserwidget_p.h b/libs/gtkmm2/gtk/gtkmm/private/recentchooserwidget_p.h
new file mode 100644 (file)
index 0000000..bc5746a
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSERWIDGET_P_H
+#define _GTKMM_RECENTCHOOSERWIDGET_P_H
+
+
+#include <gtkmm/private/box_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class RecentChooserWidget_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentChooserWidget CppObjectType;
+  typedef GtkRecentChooserWidget BaseObjectType;
+  typedef GtkRecentChooserWidgetClass BaseClassType;
+  typedef Gtk::VBox_Class CppClassParent;
+  typedef GtkVBoxClass BaseClassParent;
+
+  friend class RecentChooserWidget;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_RECENTCHOOSERWIDGET_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/recentfilter_p.h b/libs/gtkmm2/gtk/gtkmm/private/recentfilter_p.h
new file mode 100644 (file)
index 0000000..59292fe
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTFILTER_P_H
+#define _GTKMM_RECENTFILTER_P_H
+
+
+#include <gtkmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class RecentFilter_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentFilter CppObjectType;
+  typedef GtkRecentFilter BaseObjectType;
+  typedef GtkRecentFilterClass BaseClassType;
+  typedef Gtk::Object_Class CppClassParent;
+  typedef GtkObjectClass BaseClassParent;
+
+  friend class RecentFilter;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_RECENTFILTER_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/recentinfo_p.h b/libs/gtkmm2/gtk/gtkmm/private/recentinfo_p.h
new file mode 100644 (file)
index 0000000..51acae2
--- /dev/null
@@ -0,0 +1,8 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTINFO_P_H
+#define _GTKMM_RECENTINFO_P_H
+
+
+#endif /* _GTKMM_RECENTINFO_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/recentmanager_p.h b/libs/gtkmm2/gtk/gtkmm/private/recentmanager_p.h
new file mode 100644 (file)
index 0000000..debc7cf
--- /dev/null
@@ -0,0 +1,52 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTMANAGER_P_H
+#define _GTKMM_RECENTMANAGER_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class RecentManager_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentManager CppObjectType;
+  typedef GtkRecentManager BaseObjectType;
+  typedef GtkRecentManagerClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class RecentManager;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static void changed_callback(GtkRecentManager* self);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_RECENTMANAGER_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/private/statusicon_p.h b/libs/gtkmm2/gtk/gtkmm/private/statusicon_p.h
new file mode 100644 (file)
index 0000000..bf396fb
--- /dev/null
@@ -0,0 +1,52 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_STATUSICON_P_H
+#define _GTKMM_STATUSICON_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class StatusIcon_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef StatusIcon CppObjectType;
+  typedef GtkStatusIcon BaseObjectType;
+  typedef GtkStatusIconClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class StatusIcon;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+  static gboolean size_changed_callback(GtkStatusIcon* self, gint p0);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_STATUSICON_P_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchooser.cc b/libs/gtkmm2/gtk/gtkmm/recentchooser.cc
new file mode 100644 (file)
index 0000000..c056ad3
--- /dev/null
@@ -0,0 +1,956 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/recentchooser.h>
+#include <gtkmm/private/recentchooser_p.h>
+
+/* Copyright 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentchooser.h>
+
+// This Signal Proxy allows the C++ coder to specify a sigc::slot instead of a static function.
+
+static int SignalProxy_Compare_gtk_callback(GtkRecentInfo* a, GtkRecentInfo* b, gpointer data)
+{
+  const Gtk::RecentChooser::SlotCompare* the_slot = static_cast<Gtk::RecentChooser::SlotCompare*>(data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+    return (*the_slot)(Glib::wrap(a, true /* take reference */), Glib::wrap(b, true /* take reference */));
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+  }
+
+  return 0;
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+}
+
+static void SignalProxy_Compare_gtk_callback_destroy(gpointer data)
+{
+  delete static_cast<Gtk::RecentChooser::SlotCompare*>(data);
+}
+
+
+namespace Gtk
+{
+
+//Allow the generated code to work without the prefix:
+typedef RecentChooser::ListHandle_RecentInfos ListHandle_RecentInfos;
+
+void RecentChooser::set_sort_func(const SlotCompare& slot)
+{
+  SlotCompare* slot_copy = new SlotCompare(slot);
+
+  gtk_recent_chooser_set_sort_func(
+      gobj(),
+      &SignalProxy_Compare_gtk_callback, slot_copy,
+      &SignalProxy_Compare_gtk_callback_destroy);
+}
+
+Glib::StringArrayHandle RecentChooser::get_uris() const
+{
+  return Glib::StringArrayHandle(gtk_recent_chooser_get_uris(const_cast<GtkRecentChooser*>(gobj()), NULL));
+}
+
+void RecentChooser::unset_limit()
+{
+  gtk_recent_chooser_set_limit(gobj(), -1 /* See C docs */);
+}
+
+} // namespace Gtk
+
+
+namespace
+{
+
+
+static const Glib::SignalProxyInfo RecentChooser_signal_selection_changed_info =
+{
+  "selection-changed",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+static const Glib::SignalProxyInfo RecentChooser_signal_item_activated_info =
+{
+  "item-activated",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+} // anonymous namespace
+
+// static
+GType Glib::Value<Gtk::RecentSortType>::value_type()
+{
+  return gtk_recent_sort_type_get_type();
+}
+
+
+Gtk::RecentChooserError::RecentChooserError(Gtk::RecentChooserError::Code error_code, const Glib::ustring& error_message)
+:
+  Glib::Error (GTK_RECENT_CHOOSER_ERROR, error_code, error_message)
+{}
+
+Gtk::RecentChooserError::RecentChooserError(GError* gobject)
+:
+  Glib::Error (gobject)
+{}
+
+Gtk::RecentChooserError::Code Gtk::RecentChooserError::code() const
+{
+  return static_cast<Code>(Glib::Error::code());
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+void Gtk::RecentChooserError::throw_func(GError* gobject)
+{
+  throw Gtk::RecentChooserError(gobject);
+}
+#else
+//When not using exceptions, we just pass the Exception object around without throwing it:
+std::auto_ptr<Glib::Error> Gtk::RecentChooserError::throw_func(GError* gobject)
+{
+  return std::auto_ptr<Glib::Error>(new Gtk::RecentChooserError(gobject));
+}
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+// static
+GType Glib::Value<Gtk::RecentChooserError::Code>::value_type()
+{
+  return gtk_recent_chooser_error_get_type();
+}
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::RecentChooser> wrap(GtkRecentChooser* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::RecentChooser>( dynamic_cast<Gtk::RecentChooser*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} // namespace Glib
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Interface_Class& RecentChooser_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Interface_Class has to know the interface init function
+    // in order to add interfaces to implementing types.
+    class_init_func_ = &RecentChooser_Class::iface_init_function;
+
+    // We can not derive from another interface, and it is not necessary anyway.
+    gtype_ = gtk_recent_chooser_get_type();
+  }
+
+  return *this;
+}
+
+void RecentChooser_Class::iface_init_function(void* g_iface, void*)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_iface);
+
+  //This is just to avoid an "unused variable" warning when there are no vfuncs or signal handlers to connect.
+  //This is a temporary fix until I find out why I can not seem to derive a GtkFileChooser interface. murrayc
+  g_assert(klass != 0); 
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+  klass->get_current_uri = &get_current_uri_vfunc_callback;
+  klass->unselect_uri = &unselect_uri_vfunc_callback;
+  klass->select_all = &select_all_vfunc_callback;
+  klass->unselect_all = &unselect_all_vfunc_callback;
+  klass->get_recent_manager = &get_recent_manager_vfunc_callback;
+  klass->add_filter = &add_filter_vfunc_callback;
+  klass->remove_filter = &remove_filter_vfunc_callback;
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+gchar* RecentChooser_Class::get_current_uri_vfunc_callback(GtkRecentChooser* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      return g_strdup((obj->get_current_uri_vfunc()).c_str());
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->get_current_uri)
+      return (*base->get_current_uri)(self);
+  }
+
+  typedef gchar* RType;
+  return RType();
+}
+void RecentChooser_Class::unselect_uri_vfunc_callback(GtkRecentChooser* self, const gchar* uri)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->unselect_uri_vfunc(Glib::convert_const_gchar_ptr_to_ustring(uri)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->unselect_uri)
+      (*base->unselect_uri)(self, uri);
+  }
+}
+void RecentChooser_Class::select_all_vfunc_callback(GtkRecentChooser* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->select_all_vfunc();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->select_all)
+      (*base->select_all)(self);
+  }
+}
+void RecentChooser_Class::unselect_all_vfunc_callback(GtkRecentChooser* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->unselect_all_vfunc();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->unselect_all)
+      (*base->unselect_all)(self);
+  }
+}
+GtkRecentManager* RecentChooser_Class::get_recent_manager_vfunc_callback(GtkRecentChooser* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      return Glib::unwrap(obj->get_recent_manager_vfunc());
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->get_recent_manager)
+      return (*base->get_recent_manager)(self);
+  }
+
+  typedef GtkRecentManager* RType;
+  return RType();
+}
+void RecentChooser_Class::add_filter_vfunc_callback(GtkRecentChooser* self, GtkRecentFilter* filter)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->add_filter_vfunc(*Glib::wrap(filter)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->add_filter)
+      (*base->add_filter)(self, filter);
+  }
+}
+void RecentChooser_Class::remove_filter_vfunc_callback(GtkRecentChooser* self, GtkRecentFilter* filter)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->remove_filter_vfunc(*Glib::wrap(filter)
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
+)    );
+
+    // Call the original underlying C function:
+    if(base && base->remove_filter)
+      (*base->remove_filter)(self, filter);
+  }
+}
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* RecentChooser_Class::wrap_new(GObject* object)
+{
+  return new RecentChooser((GtkRecentChooser*)(object));
+}
+
+
+/* The implementation: */
+
+RecentChooser::RecentChooser()
+:
+  Glib::Interface(recentchooser_class_.init())
+{}
+
+RecentChooser::RecentChooser(GtkRecentChooser* castitem)
+:
+  Glib::Interface((GObject*)(castitem))
+{}
+
+RecentChooser::~RecentChooser()
+{}
+
+// static
+void RecentChooser::add_interface(GType gtype_implementer)
+{
+  recentchooser_class_.init().add_interface(gtype_implementer);
+}
+
+RecentChooser::CppClassType RecentChooser::recentchooser_class_; // initialize static member
+
+GType RecentChooser::get_type()
+{
+  return recentchooser_class_.init().get_type();
+}
+
+GType RecentChooser::get_base_type()
+{
+  return gtk_recent_chooser_get_type();
+}
+
+
+void RecentChooser::set_show_private(bool show_private)
+{
+gtk_recent_chooser_set_show_private(gobj(), static_cast<int>(show_private)); 
+}
+
+bool RecentChooser::get_show_private() const
+{
+  return gtk_recent_chooser_get_show_private(const_cast<GtkRecentChooser*>(gobj()));
+}
+
+void RecentChooser::set_show_not_found(bool show_not_found)
+{
+gtk_recent_chooser_set_show_not_found(gobj(), static_cast<int>(show_not_found)); 
+}
+
+bool RecentChooser::get_show_not_found() const
+{
+  return gtk_recent_chooser_get_show_not_found(const_cast<GtkRecentChooser*>(gobj()));
+}
+
+void RecentChooser::set_select_multiple(bool select_multiple)
+{
+gtk_recent_chooser_set_select_multiple(gobj(), static_cast<int>(select_multiple)); 
+}
+
+bool RecentChooser::get_select_multiple() const
+{
+  return gtk_recent_chooser_get_select_multiple(const_cast<GtkRecentChooser*>(gobj()));
+}
+
+void RecentChooser::set_limit(int limit)
+{
+gtk_recent_chooser_set_limit(gobj(), limit); 
+}
+
+int RecentChooser::get_limit() const
+{
+  return gtk_recent_chooser_get_limit(const_cast<GtkRecentChooser*>(gobj()));
+}
+
+void RecentChooser::set_local_only(bool local_only)
+{
+gtk_recent_chooser_set_local_only(gobj(), static_cast<int>(local_only)); 
+}
+
+bool RecentChooser::get_local_only() const
+{
+  return gtk_recent_chooser_get_local_only(const_cast<GtkRecentChooser*>(gobj()));
+}
+
+void RecentChooser::set_show_tips(bool show_tips)
+{
+gtk_recent_chooser_set_show_tips(gobj(), static_cast<int>(show_tips)); 
+}
+
+bool RecentChooser::get_show_tips() const
+{
+  return gtk_recent_chooser_get_show_tips(const_cast<GtkRecentChooser*>(gobj()));
+}
+
+void RecentChooser::set_show_icons(bool show_icons)
+{
+gtk_recent_chooser_set_show_icons(gobj(), static_cast<int>(show_icons)); 
+}
+
+bool RecentChooser::get_show_icons() const
+{
+  return gtk_recent_chooser_get_show_icons(const_cast<GtkRecentChooser*>(gobj()));
+}
+
+void RecentChooser::set_sort_type(RecentSortType sort_type)
+{
+gtk_recent_chooser_set_sort_type(gobj(), ((GtkRecentSortType)(sort_type))); 
+}
+
+RecentSortType RecentChooser::get_sort_type() const
+{
+  return ((RecentSortType)(gtk_recent_chooser_get_sort_type(const_cast<GtkRecentChooser*>(gobj()))));
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+bool RecentChooser::set_current_uri(const Glib::ustring& uri)
+#else
+bool RecentChooser::set_current_uri(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  bool retvalue = gtk_recent_chooser_set_current_uri(gobj(), uri.c_str(), &(gerror));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+Glib::ustring RecentChooser::get_current_uri() const
+{
+  return Glib::convert_return_gchar_ptr_to_ustring(gtk_recent_chooser_get_current_uri(const_cast<GtkRecentChooser*>(gobj())));
+}
+
+Glib::RefPtr<RecentInfo> RecentChooser::get_current_item()
+{
+
+  Glib::RefPtr<RecentInfo> retvalue = Glib::wrap(gtk_recent_chooser_get_current_item(gobj()));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const RecentInfo> RecentChooser::get_current_item() const
+{
+
+  Glib::RefPtr<const RecentInfo> retvalue = Glib::wrap(gtk_recent_chooser_get_current_item(const_cast<GtkRecentChooser*>(gobj())));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+bool RecentChooser::select_uri(const Glib::ustring& uri)
+#else
+bool RecentChooser::select_uri(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  bool retvalue = gtk_recent_chooser_select_uri(gobj(), uri.c_str(), &(gerror));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+void RecentChooser::unselect_uri(const Glib::ustring& uri)
+{
+gtk_recent_chooser_unselect_uri(gobj(), uri.c_str()); 
+}
+
+void RecentChooser::select_all()
+{
+gtk_recent_chooser_select_all(gobj()); 
+}
+
+void RecentChooser::unselect_all()
+{
+gtk_recent_chooser_unselect_all(gobj()); 
+}
+
+ListHandle_RecentInfos RecentChooser::get_items() const
+{
+  return ListHandle_RecentInfos(gtk_recent_chooser_get_items(const_cast<GtkRecentChooser*>(gobj())), Glib::OWNERSHIP_SHALLOW);
+}
+
+void RecentChooser::add_filter(const RecentFilter& filter)
+{
+gtk_recent_chooser_add_filter(gobj(), const_cast<GtkRecentFilter*>((filter).gobj())); 
+}
+
+void RecentChooser::remove_filter(const RecentFilter& filter)
+{
+gtk_recent_chooser_remove_filter(gobj(), const_cast<GtkRecentFilter*>((filter).gobj())); 
+}
+
+Glib::SListHandle<RecentFilter*> RecentChooser::list_filters()
+{
+  return Glib::SListHandle<RecentFilter*>(gtk_recent_chooser_list_filters(gobj()), Glib::OWNERSHIP_SHALLOW);
+}
+
+Glib::SListHandle<const RecentFilter*> RecentChooser::list_filters() const
+{
+  return Glib::SListHandle<const RecentFilter*>(gtk_recent_chooser_list_filters(const_cast<GtkRecentChooser*>(gobj())), Glib::OWNERSHIP_SHALLOW);
+}
+
+void RecentChooser::set_filter(const RecentFilter& filter)
+{
+gtk_recent_chooser_set_filter(gobj(), const_cast<GtkRecentFilter*>((filter).gobj())); 
+}
+
+RecentFilter* RecentChooser::get_filter()
+{
+  return Glib::wrap(gtk_recent_chooser_get_filter(gobj()));
+}
+
+const RecentFilter* RecentChooser::get_filter() const
+{
+  return Glib::wrap(gtk_recent_chooser_get_filter(const_cast<GtkRecentChooser*>(gobj())));
+}
+
+
+Glib::SignalProxy0< void > RecentChooser::signal_selection_changed()
+{
+  return Glib::SignalProxy0< void >(this, &RecentChooser_signal_selection_changed_info);
+}
+
+
+Glib::SignalProxy0< void > RecentChooser::signal_item_activated()
+{
+  return Glib::SignalProxy0< void >(this, &RecentChooser_signal_item_activated_info);
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<RecentManager> > RecentChooser::property_recent_manager() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<RecentManager> >(this, "recent-manager");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> RecentChooser::property_show_private() 
+{
+  return Glib::PropertyProxy<bool>(this, "show-private");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> RecentChooser::property_show_private() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "show-private");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> RecentChooser::property_show_tips() 
+{
+  return Glib::PropertyProxy<bool>(this, "show-tips");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> RecentChooser::property_show_tips() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "show-tips");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> RecentChooser::property_show_icons() 
+{
+  return Glib::PropertyProxy<bool>(this, "show-icons");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> RecentChooser::property_show_icons() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "show-icons");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> RecentChooser::property_show_not_found() 
+{
+  return Glib::PropertyProxy<bool>(this, "show-not-found");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> RecentChooser::property_show_not_found() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "show-not-found");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> RecentChooser::property_select_multiple() 
+{
+  return Glib::PropertyProxy<bool>(this, "select-multiple");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> RecentChooser::property_select_multiple() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "select-multiple");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> RecentChooser::property_local_only() 
+{
+  return Glib::PropertyProxy<bool>(this, "local-only");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> RecentChooser::property_local_only() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "local-only");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<int> RecentChooser::property_limit() 
+{
+  return Glib::PropertyProxy<int>(this, "limit");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> RecentChooser::property_limit() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "limit");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<RecentSortType> RecentChooser::property_sort_type() 
+{
+  return Glib::PropertyProxy<RecentSortType>(this, "sort-type");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<RecentSortType> RecentChooser::property_sort_type() const
+{
+  return Glib::PropertyProxy_ReadOnly<RecentSortType>(this, "sort-type");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<RecentFilter*> RecentChooser::property_filter() 
+{
+  return Glib::PropertyProxy<RecentFilter*>(this, "filter");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<RecentFilter*> RecentChooser::property_filter() const
+{
+  return Glib::PropertyProxy_ReadOnly<RecentFilter*>(this, "filter");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+Glib::ustring Gtk::RecentChooser::get_current_uri_vfunc() const
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->get_current_uri)
+    return Glib::convert_const_gchar_ptr_to_ustring((*base->get_current_uri)(const_cast<GtkRecentChooser*>(gobj())));
+
+  typedef Glib::ustring RType;
+  return RType();
+}
+void Gtk::RecentChooser::unselect_uri_vfunc(const Glib::ustring& uri) 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->unselect_uri)
+    (*base->unselect_uri)(gobj(),uri.c_str());
+}
+void Gtk::RecentChooser::select_all_vfunc() 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->select_all)
+    (*base->select_all)(gobj());
+}
+void Gtk::RecentChooser::unselect_all_vfunc() 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->unselect_all)
+    (*base->unselect_all)(gobj());
+}
+Glib::RefPtr<RecentManager> Gtk::RecentChooser::get_recent_manager_vfunc() 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->get_recent_manager)
+    return Glib::wrap((*base->get_recent_manager)(gobj()));
+
+  typedef Glib::RefPtr<RecentManager> RType;
+  return RType();
+}
+void Gtk::RecentChooser::add_filter_vfunc(const RecentFilter& filter) 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->add_filter)
+    (*base->add_filter)(gobj(),const_cast<GtkRecentFilter*>((filter).gobj()));
+}
+void Gtk::RecentChooser::remove_filter_vfunc(const RecentFilter& filter) 
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
+g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
+)  );
+
+  if(base && base->remove_filter)
+    (*base->remove_filter)(gobj(),const_cast<GtkRecentFilter*>((filter).gobj()));
+}
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchooser.h b/libs/gtkmm2/gtk/gtkmm/recentchooser.h
new file mode 100644 (file)
index 0000000..327c819
--- /dev/null
@@ -0,0 +1,597 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSER_H
+#define _GTKMM_RECENTCHOOSER_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentchooser.h>
+#include <glibmm/interface.h>
+#include <gtkmm/recentinfo.h>
+#include <gtkmm/recentfilter.h>
+#include <gtkmm/recentmanager.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkRecentChooser GtkRecentChooser;
+typedef struct _GtkRecentChooserClass GtkRecentChooserClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class RecentChooser_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum RecentSortType
+{
+  RECENT_SORT_NONE,
+  RECENT_SORT_MRU,
+  RECENT_SORT_LRU,
+  RECENT_SORT_CUSTOM
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::RecentSortType> : public Glib::Value_Enum<Gtk::RecentSortType>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** Exception class for Gtk::RecentChooser errors.
+ */
+class RecentChooserError : public Glib::Error
+{
+public:
+  enum Code
+  {
+    NOT_FOUND,
+    INVALID_URI
+  };
+
+  RecentChooserError(Code error_code, const Glib::ustring& error_message);
+  explicit RecentChooserError(GError* gobject);
+  Code code() const;
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+private:
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  static void throw_func(GError* gobject);
+#else
+  //When not using exceptions, we just pass the Exception object around without throwing it:
+  static std::auto_ptr<Glib::Error> throw_func(GError* gobject);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  friend void wrap_init(); // uses throw_func()
+#endif
+};
+
+} // namespace Gtk
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::RecentChooserError::Code> : public Glib::Value_Enum<Gtk::RecentChooserError::Code>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** RecentChooser is an interface that can be implemented by widgets
+ * displaying the list of recently used files.  In GTK+, the main objects
+ * that implement this interface are RecentChooserWidget, RecentChooserDialog
+ * and RecentChooserMenu.
+ *
+ * @newin2p10
+ *
+ * @ingroup RecentFiles
+ */
+
+class RecentChooser : public Glib::Interface
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef RecentChooser CppObjectType;
+  typedef RecentChooser_Class CppClassType;
+  typedef GtkRecentChooser BaseObjectType;
+  typedef GtkRecentChooserIface BaseClassType;
+
+private:
+  friend class RecentChooser_Class;
+  static CppClassType recentchooser_class_;
+
+  // noncopyable
+  RecentChooser(const RecentChooser&);
+  RecentChooser& operator=(const RecentChooser&);
+
+protected:
+  RecentChooser(); // you must derive from this class
+  explicit RecentChooser(GtkRecentChooser* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~RecentChooser();
+
+  static void add_interface(GType gtype_implementer);
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkRecentChooser*       gobj()       { return reinterpret_cast<GtkRecentChooser*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.  
+  const GtkRecentChooser* gobj() const { return reinterpret_cast<GtkRecentChooser*>(gobject_); }
+
+private:
+
+public:
+
+  
+  void set_show_private(bool show_private = true);
+  
+  bool get_show_private() const;
+  
+  void set_show_not_found(bool show_not_found = true);
+  
+  bool get_show_not_found() const;
+  
+  void set_select_multiple(bool select_multiple = true);
+  
+  bool get_select_multiple() const;
+  
+  void set_limit(int limit);
+  void unset_limit();
+  
+  int get_limit() const;
+  
+  void set_local_only(bool local_only = true);
+  
+  bool get_local_only() const;
+  
+  void set_show_tips(bool show_tips = true);
+  
+  bool get_show_tips() const;
+
+  // TODO: These methods are declared in gtkrecentchooser.h but throw errors when
+  // using them on RecentChooserWidget or RecentChooserDialog.
+  // RecentChooserMenu reimplements them.
+  // In an email titled "GtkRecentChooser API glitch", Emmanuele Bassi said that these would be 
+  // deprecated in GTK+ 2.12. murrayc.
+  //_WRAP_METHOD(void set_show_numbers(bool show_numbers = true), gtk_recent_chooser_set_show_numbers)
+  //_WRAP_METHOD(bool get_show_numbers() const, gtk_recent_chooser_get_show_numbers)
+  
+
+  void set_show_icons(bool show_icons = true);
+  
+  bool get_show_icons() const;
+  
+  void set_sort_type(RecentSortType sort_type);
+  
+  RecentSortType get_sort_type() const;
+
+
+  /** This callback should return -1 if b compares before a, 0 if they compare
+   * equal and 1 if a compares after b.
+   * For instance, int on_sort_compare(const Glib::RefPtr<Gtk::RecentInfo>& a, const Gtk::RecentInfo& b);
+   */
+  typedef sigc::slot<int, const Glib::RefPtr<RecentInfo>&, const Glib::RefPtr<RecentInfo>&> SlotCompare;
+  
+
+  /** Sets the comparison function used when sorting the list of recently
+   * used resources and the sort type is #RECENT_SORT_CUSTOM.
+   */
+  void set_sort_func(const SlotCompare& slot);
+
+  // TODO: Return type should be void since it will never return false but
+  // throwing RecentChooserError instead
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  bool set_current_uri(const Glib::ustring& uri);
+#else
+  bool set_current_uri(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+  Glib::ustring get_current_uri() const;
+  
+  Glib::RefPtr<RecentInfo> get_current_item();
+  
+  Glib::RefPtr<const RecentInfo> get_current_item() const;
+  // TODO: Same here
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  bool select_uri(const Glib::ustring& uri);
+#else
+  bool select_uri(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+  void unselect_uri(const Glib::ustring& uri);
+  
+  void select_all();
+  
+  void unselect_all();
+
+  typedef Glib::ListHandle<RecentInfo, RecentInfoTraits> ListHandle_RecentInfos;
+  
+
+  ListHandle_RecentInfos get_items() const;
+
+  /** Gets the URI of the recently used resources.
+   *
+   * The return value of this function is affected by the "sort-type" and
+   * "limit" properties of the recent chooser.
+   */
+  Glib::StringArrayHandle get_uris() const;
+  
+
+  void add_filter(const RecentFilter& filter);
+  
+  void remove_filter(const RecentFilter& filter);
+  
+  Glib::SListHandle<RecentFilter*> list_filters();
+  
+  Glib::SListHandle<const RecentFilter*> list_filters() const;
+  
+  void set_filter(const RecentFilter& filter);
+  
+  RecentFilter* get_filter();
+  
+  const RecentFilter* get_filter() const;
+
+  /** This signal is emitted when there is a change in the set of
+   * selected recently used resources.  This can happen when a user
+   * modifies the selection with the mouse or the keyboard, or when
+   * explicitely calling functions to change the selection.
+   */
+  
+/**
+   * @par Prototype:
+   * <tt>void %selection_changed()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_selection_changed();
+
+
+  /** This signal is emitted when the user "activates" a recent item
+   * in the recent chooser.  This can happen by double-clicking on an item
+   * in the recently used resources list, or by pressing
+   * <keycap>Enter</keycap>.
+   */
+  
+/**
+   * @par Prototype:
+   * <tt>void %item_activated()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_item_activated();
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<RecentManager> > property_recent_manager() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_show_private() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_show_private() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_show_tips() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_show_tips() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_show_icons() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_show_icons() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_show_not_found() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_show_not_found() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_select_multiple() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_select_multiple() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_local_only() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_local_only() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<int> property_limit() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_limit() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<RecentSortType> property_sort_type() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<RecentSortType> property_sort_type() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<RecentFilter*> property_filter() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** 
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<RecentFilter*> property_filter() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+protected:
+
+  // As in editable.hg
+  
+
+  // TODO: How to wrap those vfuncs?
+
+  //__CONVERSION(`ListHandle_RecentInfos', `GList*', `($3).data()')
+  //__CONVERSION(`Glib::SListHandle<RecentFilter*>', `GSList*', `($3).data()')
+
+  //_WRAP_VFUNC(bool set_current_uri(const Glib::ustring& uri), "set_current_uri", errthrow)
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual Glib::ustring get_current_uri_vfunc() const;
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //_WRAP_VFUNC(bool select_uri(const Glib::ustring& uri), "select_uri", errthrow)
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual void unselect_uri_vfunc(const Glib::ustring& uri);
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual void select_all_vfunc();
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual void unselect_all_vfunc();
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //_WRAP_VFUNC(ArrayHandle_RecentInfos get_items() const, "get_items")
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual Glib::RefPtr<RecentManager> get_recent_manager_vfunc();
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual void add_filter_vfunc(const RecentFilter& filter);
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  #ifdef GLIBMM_VFUNCS_ENABLED
+  virtual void remove_filter_vfunc(const RecentFilter& filter);
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //_WRAP_VFUNC(Glib::SListHandle<RecentFilter*> list_filters(), "list_filters")
+  //_WRAP_VFUNC(void set_sort_func(const SlotCompare& slot), "set_sort_func")
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::RecentChooser
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::RecentChooser> wrap(GtkRecentChooser* object, bool take_copy = false);
+
+} // namespace Glib
+
+
+#endif /* _GTKMM_RECENTCHOOSER_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchooserdialog.cc b/libs/gtkmm2/gtk/gtkmm/recentchooserdialog.cc
new file mode 100644 (file)
index 0000000..77b2390
--- /dev/null
@@ -0,0 +1,172 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/recentchooserdialog.h>
+#include <gtkmm/private/recentchooserdialog_p.h>
+
+/* Copyright 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentchooserdialog.h>
+
+
+namespace Gtk
+{
+
+RecentChooserDialog::RecentChooserDialog(Gtk::Window& parent, const Glib::ustring& title)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(recentchooserdialog_class_.init(), "title",title.c_str(), (char*) 0))
+{
+  set_transient_for(parent);
+}
+
+RecentChooserDialog::RecentChooserDialog(const Glib::ustring& title)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(recentchooserdialog_class_.init(), "title",title.c_str(), (char*) 0))
+{
+}
+
+RecentChooserDialog::RecentChooserDialog(const Glib::ustring& title, const Glib::RefPtr<RecentManager>& recent_manager)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(recentchooserdialog_class_.init(), "title",title.c_str(),"recent-manager",recent_manager->gobj(), (char*) 0))
+{
+}
+
+RecentChooserDialog::RecentChooserDialog(Gtk::Window& parent, const Glib::ustring& title, const Glib::RefPtr<RecentManager>& recent_manager)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Dialog(Glib::ConstructParams(recentchooserdialog_class_.init(), "title",title.c_str(),"recent-manager",recent_manager->gobj(), (char*) 0))
+{
+  set_transient_for(parent);
+}
+
+} // namespace Gtk
+
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::RecentChooserDialog* wrap(GtkRecentChooserDialog* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::RecentChooserDialog *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& RecentChooserDialog_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &RecentChooserDialog_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_recent_chooser_dialog_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  RecentChooser::add_interface(get_type());
+  }
+
+  return *this;
+}
+
+void RecentChooserDialog_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* RecentChooserDialog_Class::wrap_new(GObject* o)
+{
+  return new RecentChooserDialog((GtkRecentChooserDialog*)(o)); //top-level windows can not be manage()ed.
+
+}
+
+
+/* The implementation: */
+
+RecentChooserDialog::RecentChooserDialog(const Glib::ConstructParams& construct_params)
+:
+  Gtk::Dialog(construct_params)
+{
+  }
+
+RecentChooserDialog::RecentChooserDialog(GtkRecentChooserDialog* castitem)
+:
+  Gtk::Dialog((GtkDialog*)(castitem))
+{
+  }
+
+RecentChooserDialog::~RecentChooserDialog()
+{
+  destroy_();
+}
+
+RecentChooserDialog::CppClassType RecentChooserDialog::recentchooserdialog_class_; // initialize static member
+
+GType RecentChooserDialog::get_type()
+{
+  return recentchooserdialog_class_.init().get_type();
+}
+
+GType RecentChooserDialog::get_base_type()
+{
+  return gtk_recent_chooser_dialog_get_type();
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchooserdialog.h b/libs/gtkmm2/gtk/gtkmm/recentchooserdialog.h
new file mode 100644 (file)
index 0000000..cb80a90
--- /dev/null
@@ -0,0 +1,145 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSERDIALOG_H
+#define _GTKMM_RECENTCHOOSERDIALOG_H
+
+
+#include <glibmm.h>
+
+/* recentchooserdialog.h
+ *
+ * Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/dialog.h>
+#include <gtkmm/recentchooser.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkRecentChooserDialog GtkRecentChooserDialog;
+typedef struct _GtkRecentChooserDialogClass GtkRecentChooserDialogClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class RecentChooserDialog_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** RecentChooserDialog is a dialog box suitable for displaying the recently
+ * used documents. This widget works by putting a RecentChooserWidget inside
+ * a Dialog. It exposes the RecentChooser interface, so you can use
+ * all the RecentChooser functions on the recent chooser dialog as well as
+ * those for Dialog.
+ *
+ * Note that RecentChooserDialog does not have any methods of its own.
+ * Instead, you should use the functions that work on a RecentChooser.
+ *
+ * @newin2p10
+ *
+ * @ingroup RecentFiles
+ */
+
+class RecentChooserDialog
+  : public Dialog,
+    public RecentChooser
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentChooserDialog CppObjectType;
+  typedef RecentChooserDialog_Class CppClassType;
+  typedef GtkRecentChooserDialog BaseObjectType;
+  typedef GtkRecentChooserDialogClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~RecentChooserDialog();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class RecentChooserDialog_Class;
+  static CppClassType recentchooserdialog_class_;
+
+  // noncopyable
+  RecentChooserDialog(const RecentChooserDialog&);
+  RecentChooserDialog& operator=(const RecentChooserDialog&);
+
+protected:
+  explicit RecentChooserDialog(const Glib::ConstructParams& construct_params);
+  explicit RecentChooserDialog(GtkRecentChooserDialog* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkRecentChooserDialog*       gobj()       { return reinterpret_cast<GtkRecentChooserDialog*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkRecentChooserDialog* gobj() const { return reinterpret_cast<GtkRecentChooserDialog*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+  
+public:
+  
+  explicit RecentChooserDialog(Gtk::Window& parent, const Glib::ustring& title);
+  explicit RecentChooserDialog(const Glib::ustring& title);
+
+  
+  explicit RecentChooserDialog(Gtk::Window& parent, const Glib::ustring& title, const Glib::RefPtr<RecentManager>& recent_manager);
+  explicit RecentChooserDialog(const Glib::ustring& title, const Glib::RefPtr<RecentManager>& recent_manager);
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::RecentChooserDialog
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::RecentChooserDialog* wrap(GtkRecentChooserDialog* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_RECENTCHOOSERDIALOG_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchoosermenu.cc b/libs/gtkmm2/gtk/gtkmm/recentchoosermenu.cc
new file mode 100644 (file)
index 0000000..5664cdc
--- /dev/null
@@ -0,0 +1,165 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/recentchoosermenu.h>
+#include <gtkmm/private/recentchoosermenu_p.h>
+
+/* Copyright 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentchoosermenu.h>
+
+namespace Gtk
+{
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::RecentChooserMenu* wrap(GtkRecentChooserMenu* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::RecentChooserMenu *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& RecentChooserMenu_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &RecentChooserMenu_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_recent_chooser_menu_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  RecentChooser::add_interface(get_type());
+  }
+
+  return *this;
+}
+
+void RecentChooserMenu_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* RecentChooserMenu_Class::wrap_new(GObject* o)
+{
+  return manage(new RecentChooserMenu((GtkRecentChooserMenu*)(o)));
+
+}
+
+
+/* The implementation: */
+
+RecentChooserMenu::RecentChooserMenu(const Glib::ConstructParams& construct_params)
+:
+  Gtk::Menu(construct_params)
+{
+  }
+
+RecentChooserMenu::RecentChooserMenu(GtkRecentChooserMenu* castitem)
+:
+  Gtk::Menu((GtkMenu*)(castitem))
+{
+  }
+
+RecentChooserMenu::~RecentChooserMenu()
+{
+  destroy_();
+}
+
+RecentChooserMenu::CppClassType RecentChooserMenu::recentchoosermenu_class_; // initialize static member
+
+GType RecentChooserMenu::get_type()
+{
+  return recentchoosermenu_class_.init().get_type();
+}
+
+GType RecentChooserMenu::get_base_type()
+{
+  return gtk_recent_chooser_menu_get_type();
+}
+
+
+RecentChooserMenu::RecentChooserMenu()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Menu(Glib::ConstructParams(recentchoosermenu_class_.init()))
+{
+  }
+
+RecentChooserMenu::RecentChooserMenu(const Glib::RefPtr<RecentManager>& recent_manager)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Menu(Glib::ConstructParams(recentchoosermenu_class_.init(), "recent_manager", Glib::unwrap(recent_manager), (char*) 0))
+{
+  }
+
+void RecentChooserMenu::set_show_numbers(bool show_numbers)
+{
+gtk_recent_chooser_menu_set_show_numbers(gobj(), static_cast<int>(show_numbers)); 
+}
+
+bool RecentChooserMenu::get_show_numbers() const
+{
+  return gtk_recent_chooser_menu_get_show_numbers(const_cast<GtkRecentChooserMenu*>(gobj()));
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchoosermenu.h b/libs/gtkmm2/gtk/gtkmm/recentchoosermenu.h
new file mode 100644 (file)
index 0000000..7d455cb
--- /dev/null
@@ -0,0 +1,144 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSERMENU_H
+#define _GTKMM_RECENTCHOOSERMENU_H
+
+
+#include <glibmm.h>
+
+/* recentchoosermenu.h
+ *
+ * Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/menu.h>
+#include <gtkmm/recentchooser.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkRecentChooserMenu GtkRecentChooserMenu;
+typedef struct _GtkRecentChooserMenuClass GtkRecentChooserMenuClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class RecentChooserMenu_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** RecentChooserMenu is a widget suitable for displaying recently used files
+ * inside a menu.  It can be used to set a sub-menu of a MenuItem using
+ * MenuItem::item_set_submenu(), or as the menu of a MenuToolButton.
+ *
+ * Note that RecentChooserMenu does not have any methods of its own. Instead,
+ * you should use the functions that work on a RecentChooser.
+ *
+ * @newin2p10
+ *
+ * @ingroup RecentFiles
+ */
+
+class RecentChooserMenu
+  : public Menu,
+    public RecentChooser
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentChooserMenu CppObjectType;
+  typedef RecentChooserMenu_Class CppClassType;
+  typedef GtkRecentChooserMenu BaseObjectType;
+  typedef GtkRecentChooserMenuClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~RecentChooserMenu();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class RecentChooserMenu_Class;
+  static CppClassType recentchoosermenu_class_;
+
+  // noncopyable
+  RecentChooserMenu(const RecentChooserMenu&);
+  RecentChooserMenu& operator=(const RecentChooserMenu&);
+
+protected:
+  explicit RecentChooserMenu(const Glib::ConstructParams& construct_params);
+  explicit RecentChooserMenu(GtkRecentChooserMenu* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkRecentChooserMenu*       gobj()       { return reinterpret_cast<GtkRecentChooserMenu*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkRecentChooserMenu* gobj() const { return reinterpret_cast<GtkRecentChooserMenu*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+  
+public:
+  RecentChooserMenu();
+
+  explicit RecentChooserMenu(const Glib::RefPtr<RecentManager>& recent_manager);
+
+  
+  void set_show_numbers(bool show_numbers = true);
+  
+  bool get_show_numbers() const;
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::RecentChooserMenu
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::RecentChooserMenu* wrap(GtkRecentChooserMenu* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_RECENTCHOOSERMENU_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchooserwidget.cc b/libs/gtkmm2/gtk/gtkmm/recentchooserwidget.cc
new file mode 100644 (file)
index 0000000..1f8cf7e
--- /dev/null
@@ -0,0 +1,155 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/recentchooserwidget.h>
+#include <gtkmm/private/recentchooserwidget_p.h>
+
+/* Copyright 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentchooserwidget.h>
+
+namespace Gtk
+{
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Gtk::RecentChooserWidget* wrap(GtkRecentChooserWidget* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::RecentChooserWidget *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& RecentChooserWidget_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &RecentChooserWidget_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_recent_chooser_widget_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  RecentChooser::add_interface(get_type());
+  }
+
+  return *this;
+}
+
+void RecentChooserWidget_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* RecentChooserWidget_Class::wrap_new(GObject* o)
+{
+  return manage(new RecentChooserWidget((GtkRecentChooserWidget*)(o)));
+
+}
+
+
+/* The implementation: */
+
+RecentChooserWidget::RecentChooserWidget(const Glib::ConstructParams& construct_params)
+:
+  Gtk::VBox(construct_params)
+{
+  }
+
+RecentChooserWidget::RecentChooserWidget(GtkRecentChooserWidget* castitem)
+:
+  Gtk::VBox((GtkVBox*)(castitem))
+{
+  }
+
+RecentChooserWidget::~RecentChooserWidget()
+{
+  destroy_();
+}
+
+RecentChooserWidget::CppClassType RecentChooserWidget::recentchooserwidget_class_; // initialize static member
+
+GType RecentChooserWidget::get_type()
+{
+  return recentchooserwidget_class_.init().get_type();
+}
+
+GType RecentChooserWidget::get_base_type()
+{
+  return gtk_recent_chooser_widget_get_type();
+}
+
+
+RecentChooserWidget::RecentChooserWidget()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::VBox(Glib::ConstructParams(recentchooserwidget_class_.init()))
+{
+  }
+
+RecentChooserWidget::RecentChooserWidget(const Glib::RefPtr<RecentManager>& recent_manager)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::VBox(Glib::ConstructParams(recentchooserwidget_class_.init(), "recent_manager", Glib::unwrap(recent_manager), (char*) 0))
+{
+  }
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentchooserwidget.h b/libs/gtkmm2/gtk/gtkmm/recentchooserwidget.h
new file mode 100644 (file)
index 0000000..3e3f77a
--- /dev/null
@@ -0,0 +1,138 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTCHOOSERWIDGET_H
+#define _GTKMM_RECENTCHOOSERWIDGET_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/box.h>
+#include <gtkmm/recentchooser.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkRecentChooserWidget GtkRecentChooserWidget;
+typedef struct _GtkRecentChooserWidgetClass GtkRecentChooserWidgetClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class RecentChooserWidget_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** RecentChooserWidget is a widget suitable for selecting recently used
+ * files.  It is the main building block of a RecentChooserDialog. Most
+ * applications will only need to use the latter; you can use
+ * RecentChooserWidget as part of a larger window if you have special needs.
+ *
+ * Note that RecentChooserWidget does not have any methods of its own.
+ * Instead, you should use the functions that work on a RecentChooser.
+ *
+ * @newin2p10
+ *
+ * @ingroup RecentFiles
+ */
+
+class RecentChooserWidget
+: public VBox,
+  public RecentChooser
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentChooserWidget CppObjectType;
+  typedef RecentChooserWidget_Class CppClassType;
+  typedef GtkRecentChooserWidget BaseObjectType;
+  typedef GtkRecentChooserWidgetClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~RecentChooserWidget();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class RecentChooserWidget_Class;
+  static CppClassType recentchooserwidget_class_;
+
+  // noncopyable
+  RecentChooserWidget(const RecentChooserWidget&);
+  RecentChooserWidget& operator=(const RecentChooserWidget&);
+
+protected:
+  explicit RecentChooserWidget(const Glib::ConstructParams& construct_params);
+  explicit RecentChooserWidget(GtkRecentChooserWidget* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkRecentChooserWidget*       gobj()       { return reinterpret_cast<GtkRecentChooserWidget*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkRecentChooserWidget* gobj() const { return reinterpret_cast<GtkRecentChooserWidget*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+  
+public:
+  RecentChooserWidget();
+  
+  explicit RecentChooserWidget(const Glib::RefPtr<RecentManager>& recent_manager);
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::RecentChooserWidget
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::RecentChooserWidget* wrap(GtkRecentChooserWidget* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_RECENTCHOOSERWIDGET_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentfilter.cc b/libs/gtkmm2/gtk/gtkmm/recentfilter.cc
new file mode 100644 (file)
index 0000000..661fe3a
--- /dev/null
@@ -0,0 +1,265 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/recentfilter.h>
+#include <gtkmm/private/recentfilter_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentfilter.h>
+#include <gtk/gtktypebuiltins.h>
+
+#include <glibmm/ustring.h>
+
+// This Signal Proxy allows the C++ coder to specify a sigc::slot instead of a static function.
+
+static gboolean SignalProxy_Custom_gtk_callback(const GtkRecentFilterInfo* filter_info, gpointer data)
+{
+  const Gtk::RecentFilter::SlotCustom* the_slot = static_cast<Gtk::RecentFilter::SlotCustom*>(data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+    // Create a suitable C++ instance to pass to the C++ method:
+    Gtk::RecentFilter::Info cppInfo;
+    cppInfo.contains = (Gtk::RecentFilterFlags)filter_info->contains;
+    cppInfo.uri = Glib::convert_const_gchar_ptr_to_ustring(filter_info->uri);
+    cppInfo.display_name = Glib::convert_const_gchar_ptr_to_ustring(filter_info->display_name);
+    cppInfo.mime_type = Glib::convert_const_gchar_ptr_to_ustring(filter_info->mime_type);
+    
+    // Create string lists from char**s.
+    
+    for(int i = 0; filter_info->groups[i] != 0; ++i)
+    {
+      cppInfo.groups.push_back( Glib::convert_const_gchar_ptr_to_ustring(filter_info->groups[i]) );
+    }
+    for(int i = 0; filter_info->applications[i] != 0; ++i)
+    {
+      cppInfo.applications.push_back( Glib::convert_const_gchar_ptr_to_ustring(filter_info->applications[i]) );
+    }
+    
+    cppInfo.age = filter_info->age;
+  
+    return (*the_slot)(cppInfo);
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+    return false; // arbitrary default;
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+}
+
+static void SignalProxy_Custom_gtk_callback_destroy(void* data)
+{
+  delete static_cast<Gtk::RecentFilter::SlotCustom*>(data);
+}
+
+namespace Gtk
+{
+
+RecentFilter::Info::Info()
+: contains(Gtk::RECENT_FILTER_MIME_TYPE), //arbitrary default
+  age(0)
+{
+}
+
+void RecentFilter::add_custom(RecentFilterFlags needed, const SlotCustom& slot)
+{
+  // Create a copy of the slot. A pointer to this will be passed through the callback's data parameter.
+  // It will be deleted when SignalProxy_Custom_gtk_callback_destroy() is called.
+  SlotCustom* slot_copy = new SlotCustom(slot);
+      
+  gtk_recent_filter_add_custom(gobj(), (GtkRecentFilterFlags)needed,
+                               &SignalProxy_Custom_gtk_callback,
+                               slot_copy,
+                               &SignalProxy_Custom_gtk_callback_destroy);
+}
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+// static
+GType Glib::Value<Gtk::RecentFilterFlags>::value_type()
+{
+  return gtk_recent_filter_flags_get_type();
+}
+
+
+namespace Glib
+{
+
+Gtk::RecentFilter* wrap(GtkRecentFilter* object, bool take_copy)
+{
+  return dynamic_cast<Gtk::RecentFilter *> (Glib::wrap_auto ((GObject*)(object), take_copy));
+}
+
+} /* namespace Glib */
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& RecentFilter_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &RecentFilter_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_recent_filter_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void RecentFilter_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* RecentFilter_Class::wrap_new(GObject* o)
+{
+  return manage(new RecentFilter((GtkRecentFilter*)(o)));
+
+}
+
+
+/* The implementation: */
+
+RecentFilter::RecentFilter(const Glib::ConstructParams& construct_params)
+:
+  Gtk::Object(construct_params)
+{
+  }
+
+RecentFilter::RecentFilter(GtkRecentFilter* castitem)
+:
+  Gtk::Object((GtkObject*)(castitem))
+{
+  }
+
+RecentFilter::~RecentFilter()
+{
+  destroy_();
+}
+
+RecentFilter::CppClassType RecentFilter::recentfilter_class_; // initialize static member
+
+GType RecentFilter::get_type()
+{
+  return recentfilter_class_.init().get_type();
+}
+
+GType RecentFilter::get_base_type()
+{
+  return gtk_recent_filter_get_type();
+}
+
+
+RecentFilter::RecentFilter()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Gtk::Object(Glib::ConstructParams(recentfilter_class_.init()))
+{
+  }
+
+void RecentFilter::set_name(const Glib::ustring& name)
+{
+gtk_recent_filter_set_name(gobj(), name.c_str()); 
+}
+
+Glib::ustring RecentFilter::get_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_recent_filter_get_name(const_cast<GtkRecentFilter*>(gobj())));
+}
+
+void RecentFilter::add_mime_type(const Glib::ustring& mime_type)
+{
+gtk_recent_filter_add_mime_type(gobj(), mime_type.c_str()); 
+}
+
+void RecentFilter::add_pattern(const Glib::ustring& pattern)
+{
+gtk_recent_filter_add_pattern(gobj(), pattern.c_str()); 
+}
+
+void RecentFilter::add_pixbuf_formats()
+{
+gtk_recent_filter_add_pixbuf_formats(gobj()); 
+}
+
+void RecentFilter::add_application(const Glib::ustring& application)
+{
+gtk_recent_filter_add_application(gobj(), application.c_str()); 
+}
+
+void RecentFilter::add_group(const Glib::ustring& group)
+{
+gtk_recent_filter_add_group(gobj(), group.c_str()); 
+}
+
+void RecentFilter::add_age(int days)
+{
+gtk_recent_filter_add_age(gobj(), days); 
+}
+
+RecentFilterFlags RecentFilter::get_needed() const
+{
+  return (RecentFilterFlags)gtk_recent_filter_get_needed(const_cast<GtkRecentFilter*>(gobj()));
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentfilter.h b/libs/gtkmm2/gtk/gtkmm/recentfilter.h
new file mode 100644 (file)
index 0000000..6f45077
--- /dev/null
@@ -0,0 +1,270 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTFILTER_H
+#define _GTKMM_RECENTFILTER_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/object.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkRecentFilter GtkRecentFilter;
+typedef struct _GtkRecentFilterClass GtkRecentFilterClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class RecentFilter_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ * @par Bitwise operators:
+ * <tt>%RecentFilterFlags operator|(RecentFilterFlags, RecentFilterFlags)</tt><br>
+ * <tt>%RecentFilterFlags operator&(RecentFilterFlags, RecentFilterFlags)</tt><br>
+ * <tt>%RecentFilterFlags operator^(RecentFilterFlags, RecentFilterFlags)</tt><br>
+ * <tt>%RecentFilterFlags operator~(RecentFilterFlags)</tt><br>
+ * <tt>%RecentFilterFlags& operator|=(RecentFilterFlags&, RecentFilterFlags)</tt><br>
+ * <tt>%RecentFilterFlags& operator&=(RecentFilterFlags&, RecentFilterFlags)</tt><br>
+ * <tt>%RecentFilterFlags& operator^=(RecentFilterFlags&, RecentFilterFlags)</tt><br>
+ */
+enum RecentFilterFlags
+{
+  RECENT_FILTER_URI = 1 << 0,
+  RECENT_FILTER_DISPLAY_NAME = 1 << 1,
+  RECENT_FILTER_MIME_TYPE = 1 << 2,
+  RECENT_FILTER_APPLICATION = 1 << 3,
+  RECENT_FILTER_GROUP = 1 << 4,
+  RECENT_FILTER_AGE = 1 << 5
+};
+
+/** @ingroup gtkmmEnums */
+inline RecentFilterFlags operator|(RecentFilterFlags lhs, RecentFilterFlags rhs)
+  { return static_cast<RecentFilterFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
+
+/** @ingroup gtkmmEnums */
+inline RecentFilterFlags operator&(RecentFilterFlags lhs, RecentFilterFlags rhs)
+  { return static_cast<RecentFilterFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
+
+/** @ingroup gtkmmEnums */
+inline RecentFilterFlags operator^(RecentFilterFlags lhs, RecentFilterFlags rhs)
+  { return static_cast<RecentFilterFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
+
+/** @ingroup gtkmmEnums */
+inline RecentFilterFlags operator~(RecentFilterFlags flags)
+  { return static_cast<RecentFilterFlags>(~static_cast<unsigned>(flags)); }
+
+/** @ingroup gtkmmEnums */
+inline RecentFilterFlags& operator|=(RecentFilterFlags& lhs, RecentFilterFlags rhs)
+  { return (lhs = static_cast<RecentFilterFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
+
+/** @ingroup gtkmmEnums */
+inline RecentFilterFlags& operator&=(RecentFilterFlags& lhs, RecentFilterFlags rhs)
+  { return (lhs = static_cast<RecentFilterFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
+
+/** @ingroup gtkmmEnums */
+inline RecentFilterFlags& operator^=(RecentFilterFlags& lhs, RecentFilterFlags rhs)
+  { return (lhs = static_cast<RecentFilterFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::RecentFilterFlags> : public Glib::Value_Flags<Gtk::RecentFilterFlags>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** RecentFilter can be used to restrict the files being shown
+ * in a RecentChooser.  Files can be filtered based on their name
+ * (with add_pattern()), on their mime type (with add_mime_type()),
+ * on the application that has registered them (with add_application()),
+ * or by a custom filter function (with add_custom()).
+ *
+ * Filtering by mime type handles aliasing and subclassing of mime
+ * types; e.g. a filter for text/plain also matches a file with mime
+ * type application/rtf, since application/rtf is a subclass of text/plain.
+ * Note that RecentFilter allows wildcards for the subtype of a
+ * mime type, so you can e.g. filter for image/ *.
+ *
+ * Normally, filters are used by adding them to a RecentChooser,
+ * see RecentChooser::add_filter(), but it is also possible to
+ * manually use a filter on a file with filter().
+ *
+ * @newin2p10
+ *
+ * @ingroup RecentFiles
+ */
+
+class RecentFilter : public Gtk::Object
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentFilter CppObjectType;
+  typedef RecentFilter_Class CppClassType;
+  typedef GtkRecentFilter BaseObjectType;
+  typedef GtkRecentFilterClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  virtual ~RecentFilter();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+  friend class RecentFilter_Class;
+  static CppClassType recentfilter_class_;
+
+  // noncopyable
+  RecentFilter(const RecentFilter&);
+  RecentFilter& operator=(const RecentFilter&);
+
+protected:
+  explicit RecentFilter(const Glib::ConstructParams& construct_params);
+  explicit RecentFilter(GtkRecentFilter* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GtkObject.
+  GtkRecentFilter*       gobj()       { return reinterpret_cast<GtkRecentFilter*>(gobject_); }
+
+  ///Provides access to the underlying C GtkObject.
+  const GtkRecentFilter* gobj() const { return reinterpret_cast<GtkRecentFilter*>(gobject_); }
+
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+private:
+
+public:
+  RecentFilter();
+
+  
+  void set_name(const Glib::ustring& name);
+  
+  Glib::ustring get_name() const;
+
+  
+  void add_mime_type(const Glib::ustring& mime_type);
+  
+  void add_pattern(const Glib::ustring& pattern);
+  
+  void add_pixbuf_formats();
+  
+  void add_application(const Glib::ustring& application);
+  
+  void add_group(const Glib::ustring& group);
+  
+  void add_age(int days);
+
+  /** A RecentFilter::Info class is used to pass information
+   * about the tested file to filter().
+   *
+   * - contains: Flags indicating which of the following fields need are filled
+   * - uri: the URI of the file being tested
+   * - display_name: the string that will be used to display the file in the recent chooser
+   * - mime_type: the mime type of the file
+   * - applications: the list of applications that have registered the file
+   * - groups: the groups to which the file belongs to
+   * - age: the number of days elapsed since the file has been registered
+   */
+  class Info
+  {
+  public:
+    Info();
+
+    ///This bitmask tells us which of the other variables contain useful information.
+    RecentFilterFlags contains;
+
+    Glib::ustring uri;
+    Glib::ustring display_name;
+    Glib::ustring mime_type;
+    std::list<Glib::ustring> applications;
+    std::list<Glib::ustring> groups;
+    int age;
+  };
+
+  /// For instance, bool on_custom(const Gtk::RecentFilter::Info& filter_info);
+  typedef sigc::slot<bool, const Info&> SlotCustom;
+  
+  void add_custom(RecentFilterFlags needed, const SlotCustom& slot);
+  
+
+  RecentFilterFlags get_needed() const;
+
+  // Method is used by class RecentChooser implementors.
+  
+  //_WRAP_METHOD(bool filter(const GtkRecentFilterInfo* filter_info), gtk_recent_filter_filter)
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::RecentFilter
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Gtk::RecentFilter* wrap(GtkRecentFilter* object, bool take_copy = false);
+} //namespace Glib
+
+
+#endif /* _GTKMM_RECENTFILTER_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentinfo.cc b/libs/gtkmm2/gtk/gtkmm/recentinfo.cc
new file mode 100644 (file)
index 0000000..0605127
--- /dev/null
@@ -0,0 +1,238 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/recentinfo.h>
+#include <gtkmm/private/recentinfo_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentmanager.h>
+
+namespace Gtk
+{
+
+bool RecentInfo::equal(const RecentInfo& other) const
+{
+  return (static_cast<bool>(gtk_recent_info_match(const_cast<GtkRecentInfo*>(this->gobj()),
+                                                  const_cast<GtkRecentInfo*>(other.gobj()))));
+}
+
+RecentInfo::operator bool() const
+{
+  return gobj() != 0;
+}
+
+Glib::StringArrayHandle RecentInfo::get_applications() const
+{
+  //We pass 0 for the length output argument, because we don't need it, because the returned array is null-terminated.
+  return Glib::StringArrayHandle(gtk_recent_info_get_applications(const_cast<GtkRecentInfo*>(this->gobj()), 0));
+}
+
+Glib::StringArrayHandle RecentInfo::get_groups() const
+{
+  //We pass 0 for the length output argument, because we don't need it, because the returned array is null-terminated.
+  return Glib::StringArrayHandle(gtk_recent_info_get_groups(const_cast<GtkRecentInfo*>(this->gobj()), 0));
+}
+
+RecentInfoTraits::CppType RecentInfoTraits::to_cpp_type(const CType& obj)
+{
+  return Glib::wrap(const_cast<CTypeNonConst>(obj), true);
+}
+
+} // namespace Gtk
+
+namespace
+{
+} // anonymous namespace
+
+
+/* Why reinterpret_cast<RecentInfo*>(gobject) is needed:
+ *
+ * A RecentInfo instance is in fact always a GtkRecentInfo instance.
+ * Unfortunately, GtkRecentInfo cannot be a member of RecentInfo,
+ * because it is an opaque struct.  Also, the C interface does not provide
+ * any hooks to install a destroy notification handler, thus we cannot
+ * wrap it dynamically either.
+ *
+ * The cast works because RecentInfo does not have any member data, and
+ * it is impossible to derive from it.  This is ensured by not implementing
+ * the (protected) default constructor.  The ctor is protected rather than
+ * private just to avoid a compile warning.
+ */
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::RecentInfo> wrap(GtkRecentInfo* object, bool take_copy)
+{
+  if(take_copy && object)
+    gtk_recent_info_ref(object);
+
+  // See the comment at the top of this file, if you want to know why the cast works.
+  return Glib::RefPtr<Gtk::RecentInfo>(reinterpret_cast<Gtk::RecentInfo*>(object));
+}
+
+} // namespace Glib
+
+
+namespace Gtk
+{
+
+
+void RecentInfo::reference() const
+{
+  // See the comment at the top of this file, if you want to know why the cast works.
+  gtk_recent_info_ref(reinterpret_cast<GtkRecentInfo*>(const_cast<RecentInfo*>(this)));
+}
+
+void RecentInfo::unreference() const
+{
+  // See the comment at the top of this file, if you want to know why the cast works.
+  gtk_recent_info_unref(reinterpret_cast<GtkRecentInfo*>(const_cast<RecentInfo*>(this)));
+}
+
+GtkRecentInfo* RecentInfo::gobj()
+{
+  // See the comment at the top of this file, if you want to know why the cast works.
+  return reinterpret_cast<GtkRecentInfo*>(this);
+}
+
+const GtkRecentInfo* RecentInfo::gobj() const
+{
+  // See the comment at the top of this file, if you want to know why the cast works.
+  return reinterpret_cast<const GtkRecentInfo*>(this);
+}
+
+GtkRecentInfo* RecentInfo::gobj_copy() const
+{
+  // See the comment at the top of this file, if you want to know why the cast works.
+  GtkRecentInfo *const gobject = reinterpret_cast<GtkRecentInfo*>(const_cast<RecentInfo*>(this));
+  gtk_recent_info_ref(gobject);
+  return gobject;
+}
+
+
+Glib::ustring RecentInfo::get_uri() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_recent_info_get_uri(const_cast<GtkRecentInfo*>(gobj())));
+}
+
+Glib::ustring RecentInfo::get_display_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_recent_info_get_display_name(const_cast<GtkRecentInfo*>(gobj())));
+}
+
+Glib::ustring RecentInfo::get_description() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_recent_info_get_description(const_cast<GtkRecentInfo*>(gobj())));
+}
+
+Glib::ustring RecentInfo::get_mime_type() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_recent_info_get_mime_type(const_cast<GtkRecentInfo*>(gobj())));
+}
+
+time_t RecentInfo::get_added() const
+{
+  return gtk_recent_info_get_added(const_cast<GtkRecentInfo*>(gobj()));
+}
+
+time_t RecentInfo::get_modified() const
+{
+  return gtk_recent_info_get_modified(const_cast<GtkRecentInfo*>(gobj()));
+}
+
+time_t RecentInfo::get_visited() const
+{
+  return gtk_recent_info_get_visited(const_cast<GtkRecentInfo*>(gobj()));
+}
+
+bool RecentInfo::get_private_hint() const
+{
+  return gtk_recent_info_get_private_hint(const_cast<GtkRecentInfo*>(gobj()));
+}
+
+bool RecentInfo::get_application_info(const Glib::ustring& app_name, Glib::StringArrayHandle& app_exec, guint& count, time_t& time) const
+{
+  return gtk_recent_info_get_application_info(const_cast<GtkRecentInfo*>(gobj()), app_name.c_str(), const_cast<gchar**>((app_exec).data()), &(count), &(time));
+}
+
+Glib::ustring RecentInfo::last_application() const
+{
+  return Glib::convert_return_gchar_ptr_to_ustring(gtk_recent_info_last_application(const_cast<GtkRecentInfo*>(gobj())));
+}
+
+bool RecentInfo::has_application(const Glib::ustring& app_name) const
+{
+  return gtk_recent_info_has_application(const_cast<GtkRecentInfo*>(gobj()), app_name.c_str());
+}
+
+bool RecentInfo::has_group(const Glib::ustring& group) const
+{
+  return gtk_recent_info_has_group(const_cast<GtkRecentInfo*>(gobj()), group.c_str());
+}
+
+Glib::RefPtr<Gdk::Pixbuf> RecentInfo::get_icon(int size)
+{
+
+  Glib::RefPtr<Gdk::Pixbuf> retvalue = Glib::wrap(gtk_recent_info_get_icon(gobj(), size));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::RefPtr<const Gdk::Pixbuf> RecentInfo::get_icon(int size) const
+{
+
+  Glib::RefPtr<const Gdk::Pixbuf> retvalue = Glib::wrap(gtk_recent_info_get_icon(const_cast<GtkRecentInfo*>(gobj()), size));
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+
+}
+
+Glib::ustring RecentInfo::get_short_name() const
+{
+  return Glib::convert_return_gchar_ptr_to_ustring(gtk_recent_info_get_short_name(const_cast<GtkRecentInfo*>(gobj())));
+}
+
+Glib::ustring RecentInfo::get_uri_display() const
+{
+  return Glib::convert_return_gchar_ptr_to_ustring(gtk_recent_info_get_uri_display(const_cast<GtkRecentInfo*>(gobj())));
+}
+
+int RecentInfo::get_age() const
+{
+  return gtk_recent_info_get_age(const_cast<GtkRecentInfo*>(gobj()));
+}
+
+bool RecentInfo::is_local() const
+{
+  return gtk_recent_info_is_local(const_cast<GtkRecentInfo*>(gobj()));
+}
+
+bool RecentInfo::exists() const
+{
+  return gtk_recent_info_exists(const_cast<GtkRecentInfo*>(gobj()));
+}
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentinfo.h b/libs/gtkmm2/gtk/gtkmm/recentinfo.h
new file mode 100644 (file)
index 0000000..0ba088a
--- /dev/null
@@ -0,0 +1,186 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTINFO_H
+#define _GTKMM_RECENTINFO_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gdkmm/pixbuf.h>
+
+#include <time.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkRecentInfo GtkRecentInfo;
+#endif //DOXYGEN_SHOULD_SKIP_THIS
+
+namespace Gtk
+{
+
+
+/** Contains informations found when looking up an entry of the
+ * recently used files list.
+ *
+ * @newin2p10
+ *
+ * @ingroup RecentFiles
+ */
+class RecentInfo
+{
+  public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef RecentInfo CppObjectType;
+  typedef GtkRecentInfo BaseObjectType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+  // For use with Glib::RefPtr<> only.
+  void reference()   const;
+  void unreference() const;
+
+  ///Provides access to the underlying C instance.
+  GtkRecentInfo*       gobj();
+
+  ///Provides access to the underlying C instance.
+  const GtkRecentInfo* gobj() const;
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkRecentInfo* gobj_copy() const;
+
+protected:
+  // Do not derive this.  Gtk::RecentInfo can neither be constructed nor deleted.
+  RecentInfo();
+  void operator delete(void*, size_t);
+
+private:
+  // noncopyable
+  RecentInfo(const RecentInfo&);
+  RecentInfo& operator=(const RecentInfo&);
+
+
+public:
+
+  bool equal(const RecentInfo& other) const;
+  /// Tests whether the RecentInfo is valid.
+  operator bool() const;
+
+  
+  Glib::ustring get_uri() const;
+  
+  Glib::ustring get_display_name() const;
+  
+  Glib::ustring get_description() const;
+  
+  Glib::ustring get_mime_type() const;
+  
+  
+  time_t get_added() const;
+  
+  time_t get_modified() const;
+  
+  time_t get_visited() const;
+  
+  
+  bool get_private_hint() const;
+
+  
+  bool get_application_info(const Glib::ustring& app_name, Glib::StringArrayHandle& app_exec, guint& count, time_t& time) const;
+  Glib::StringArrayHandle get_applications() const;
+  
+  //_WRAP_METHOD(Glib::StringArrayHandle get_applications(unsigned& length) const, gtk_recent_info_get_applications)
+  
+  Glib::ustring last_application() const;
+  
+  bool has_application(const Glib::ustring& app_name) const;
+  
+  Glib::StringArrayHandle get_groups() const;
+  
+  //_WRAP_METHOD(Glib::StringArrayHandle get_groups(unsigned& length) const, gtk_recent_info_get_groups)
+  
+  bool has_group(const Glib::ustring& group) const;
+  
+  
+  Glib::RefPtr<Gdk::Pixbuf> get_icon(int size);
+  
+  Glib::RefPtr<const Gdk::Pixbuf> get_icon(int size) const;
+  
+  
+  Glib::ustring get_short_name() const;
+  
+  Glib::ustring get_uri_display() const;
+  
+  
+  int get_age() const;
+  
+  bool is_local() const;
+  
+  bool exists() const;
+
+  
+  //_WRAP_METHOD(bool match(const RecentInfo& b) const, gtk_recent_info_match)
+
+
+};
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+struct RecentInfoTraits
+{
+  typedef Glib::RefPtr<RecentInfo> CppType;
+  typedef const GtkRecentInfo* CType;
+  typedef GtkRecentInfo* CTypeNonConst;
+
+  static CType to_c_type(const CppType& obj) { return Glib::unwrap(obj); }
+  static CType to_c_type(const CType& obj) { return obj; }
+  static CppType to_cpp_type(const CType& obj); //Implemented in the .cpp file
+  static void release_c_type(const CType& /* obj */) { /* gtk_recent_info_unref(const_cast<CTypeNonConst>(obj)); */}
+};
+#endif
+
+//TODO: We normally put these inside the class:
+
+/** @relates Gtk::RecentInfo */
+inline bool operator==(const RecentInfo& lhs, const RecentInfo& rhs)
+  { return lhs.equal(rhs); }
+
+/** @relates Gtk::RecentInfo */
+inline bool operator!=(const RecentInfo& lhs, const RecentInfo& rhs)
+  { return !lhs.equal(rhs); }
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+
+  /** @relates Gtk::RecentInfo
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::RecentInfo> wrap(GtkRecentInfo* object, bool take_copy = false);
+
+} // namespace Glib
+
+
+#endif /* _GTKMM_RECENTINFO_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentmanager.cc b/libs/gtkmm2/gtk/gtkmm/recentmanager.cc
new file mode 100644 (file)
index 0000000..5709b36
--- /dev/null
@@ -0,0 +1,458 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/recentmanager.h>
+#include <gtkmm/private/recentmanager_p.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkrecentmanager.h>
+#include <gtk/gtktypebuiltins.h>
+
+namespace Gtk
+{
+
+//Allow the generated code to work without the prefix:
+typedef RecentManager::ListHandle_RecentInfos ListHandle_RecentInfos;
+
+} //namespace Gtk
+
+namespace
+{
+
+
+static const Glib::SignalProxyInfo RecentManager_signal_changed_info =
+{
+  "changed",
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
+  (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
+};
+
+
+} // anonymous namespace
+
+
+Gtk::RecentManagerError::RecentManagerError(Gtk::RecentManagerError::Code error_code, const Glib::ustring& error_message)
+:
+  Glib::Error (GTK_RECENT_MANAGER_ERROR, error_code, error_message)
+{}
+
+Gtk::RecentManagerError::RecentManagerError(GError* gobject)
+:
+  Glib::Error (gobject)
+{}
+
+Gtk::RecentManagerError::Code Gtk::RecentManagerError::code() const
+{
+  return static_cast<Code>(Glib::Error::code());
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+void Gtk::RecentManagerError::throw_func(GError* gobject)
+{
+  throw Gtk::RecentManagerError(gobject);
+}
+#else
+//When not using exceptions, we just pass the Exception object around without throwing it:
+std::auto_ptr<Glib::Error> Gtk::RecentManagerError::throw_func(GError* gobject)
+{
+  return std::auto_ptr<Glib::Error>(new Gtk::RecentManagerError(gobject));
+}
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+// static
+GType Glib::Value<Gtk::RecentManagerError::Code>::value_type()
+{
+  return gtk_recent_manager_error_get_type();
+}
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::RecentManager> wrap(GtkRecentManager* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::RecentManager>( dynamic_cast<Gtk::RecentManager*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& RecentManager_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &RecentManager_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_recent_manager_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void RecentManager_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->changed = &changed_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void RecentManager_Class::changed_callback(GtkRecentManager* self)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      obj->on_changed();
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->changed)
+      (*base->changed)(self);
+  }
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* RecentManager_Class::wrap_new(GObject* object)
+{
+  return new RecentManager((GtkRecentManager*)object);
+}
+
+
+/* The implementation: */
+
+GtkRecentManager* RecentManager::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+RecentManager::RecentManager(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+RecentManager::RecentManager(GtkRecentManager* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+RecentManager::~RecentManager()
+{}
+
+
+RecentManager::CppClassType RecentManager::recentmanager_class_; // initialize static member
+
+GType RecentManager::get_type()
+{
+  return recentmanager_class_.init().get_type();
+}
+
+GType RecentManager::get_base_type()
+{
+  return gtk_recent_manager_get_type();
+}
+
+
+RecentManager::RecentManager()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(recentmanager_class_.init()))
+{
+  }
+
+Glib::RefPtr<RecentManager> RecentManager::create()
+{
+  return Glib::RefPtr<RecentManager>( new RecentManager() );
+}
+Glib::RefPtr<RecentManager> RecentManager::get_default()
+{
+
+  Glib::RefPtr<RecentManager> retvalue = Glib::wrap(gtk_recent_manager_get_default());
+
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+}
+
+
+Glib::RefPtr<RecentManager> RecentManager::get_for_screen(const Glib::RefPtr<Gdk::Screen>& screen)
+{
+
+  Glib::RefPtr<RecentManager> retvalue = Glib::wrap(gtk_recent_manager_get_for_screen(Glib::unwrap(screen)));
+
+  if(retvalue)
+    retvalue->reference(); //The function does not do a ref for us.
+  return retvalue;
+}
+
+
+void RecentManager::set_screen(const Glib::RefPtr<Gdk::Screen>& screen)
+{
+gtk_recent_manager_set_screen(gobj(), Glib::unwrap(screen)); 
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+bool RecentManager::add_item(const Glib::ustring& uri)
+#else
+bool RecentManager::add_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  bool retvalue = gtk_recent_manager_add_item(gobj(), uri.c_str());
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+bool RecentManager::add_item(const Glib::ustring& uri, const Data& recent_data)
+{
+  return gtk_recent_manager_add_full(gobj(), uri.c_str(), (GtkRecentData*)(&(recent_data)));
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+bool RecentManager::remove_item(const Glib::ustring& uri)
+#else
+bool RecentManager::remove_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  bool retvalue = gtk_recent_manager_remove_item(gobj(), uri.c_str(), &(gerror));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+Glib::RefPtr<RecentInfo> RecentManager::lookup_item(const Glib::ustring& uri)
+#else
+Glib::RefPtr<RecentInfo> RecentManager::lookup_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  Glib::RefPtr<RecentInfo> retvalue = Glib::wrap(gtk_recent_manager_lookup_item(gobj(), uri.c_str(), &(gerror)));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+Glib::RefPtr<const RecentInfo> RecentManager::lookup_item(const Glib::ustring& uri) const
+#else
+Glib::RefPtr<const RecentInfo> RecentManager::lookup_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error) const
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  Glib::RefPtr<const RecentInfo> retvalue = Glib::wrap(gtk_recent_manager_lookup_item(const_cast<GtkRecentManager*>(gobj()), uri.c_str(), &(gerror)));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+bool RecentManager::has_item(const Glib::ustring& uri) const
+{
+  return gtk_recent_manager_has_item(const_cast<GtkRecentManager*>(gobj()), uri.c_str());
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+bool RecentManager::move_item(const Glib::ustring& uri, const Glib::ustring& new_uri)
+#else
+bool RecentManager::move_item(const Glib::ustring& uri, const Glib::ustring& new_uri, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  bool retvalue = gtk_recent_manager_move_item(gobj(), uri.c_str(), new_uri.c_str(), &(gerror));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+void RecentManager::set_limit(int limit)
+{
+gtk_recent_manager_set_limit(gobj(), limit); 
+}
+
+int RecentManager::get_limit() const
+{
+  return gtk_recent_manager_get_limit(const_cast<GtkRecentManager*>(gobj()));
+}
+
+ListHandle_RecentInfos RecentManager::get_items() const
+{
+  return ListHandle_RecentInfos(gtk_recent_manager_get_items(const_cast<GtkRecentManager*>(gobj())), Glib::OWNERSHIP_SHALLOW);
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+int RecentManager::purge_items()
+#else
+int RecentManager::purge_items(std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  GError* gerror = 0;
+  int retvalue = gtk_recent_manager_purge_items(gobj(), &(gerror));
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  if(gerror)
+    ::Glib::Error::throw_exception(gerror);
+#else
+  if(gerror)
+    error = ::Glib::Error::throw_exception(gerror);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  return retvalue;
+
+}
+
+
+Glib::SignalProxy0< void > RecentManager::signal_changed()
+{
+  return Glib::SignalProxy0< void >(this, &RecentManager_signal_changed_info);
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> RecentManager::property_filename() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "filename");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<int> RecentManager::property_limit() 
+{
+  return Glib::PropertyProxy<int>(this, "limit");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> RecentManager::property_limit() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "limit");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> RecentManager::property_size() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "size");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+void Gtk::RecentManager::on_changed()
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->changed)
+    (*base->changed)(gobj());
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/recentmanager.h b/libs/gtkmm2/gtk/gtkmm/recentmanager.h
new file mode 100644 (file)
index 0000000..c48ffff
--- /dev/null
@@ -0,0 +1,363 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_RECENTMANAGER_H
+#define _GTKMM_RECENTMANAGER_H
+
+
+#include <glibmm.h>
+
+/* Copyright (C) 2006 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gdkmm/screen.h>
+#include <gdkmm/pixbuf.h>
+
+#include <gtkmm/recentinfo.h>
+
+#include <glibmm/object.h>
+#include <glibmm/containers.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkRecentManager GtkRecentManager;
+typedef struct _GtkRecentManagerClass GtkRecentManagerClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class RecentManager_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** Exception class for Gtk::RecentManager errors.
+ */
+class RecentManagerError : public Glib::Error
+{
+public:
+  enum Code
+  {
+    NOT_FOUND,
+    INVALID_URI,
+    INVALID_ENCODING,
+    NOT_REGISTERED,
+    READ,
+    WRITE,
+    UNKNOWN
+  };
+
+  RecentManagerError(Code error_code, const Glib::ustring& error_message);
+  explicit RecentManagerError(GError* gobject);
+  Code code() const;
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+private:
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  static void throw_func(GError* gobject);
+#else
+  //When not using exceptions, we just pass the Exception object around without throwing it:
+  static std::auto_ptr<Glib::Error> throw_func(GError* gobject);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  friend void wrap_init(); // uses throw_func()
+#endif
+};
+
+} // namespace Gtk
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::RecentManagerError::Code> : public Glib::Value_Enum<Gtk::RecentManagerError::Code>
+{
+public:
+  static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** @defgroup RecentFiles RecentFiles
+ */
+
+/** RecentManager provides a facility for adding, removing and
+ * looking up recently used files.  Each recently used file is
+ * identified by its URI, and has meta-data associated to it, like
+ * the names and command lines of the applications that have
+ * registered it, the number of time each application has registered
+ * the same file, the mime type of the file and whether the file
+ * should be displayed only by the applications that have
+ * registered it.
+ *
+ * The RecentManager acts like a database of all the recently
+ * used files.  You can create new RecentManager objects, but
+ * it is more efficient to use the standard recent manager for
+ * the Gdk::Screen so that informations about the recently used
+ * files is shared with other people using them. Normally, you
+ * retrieve the recent manager for a particular screen using
+ * get_for_screen() and it will contain information about current
+ * recent manager for that screen.
+ *
+ * @newin2p10
+ *
+ * @ingroup RecentFiles
+ */
+
+class RecentManager : public Glib::Object
+{
+  
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef RecentManager CppObjectType;
+  typedef RecentManager_Class CppClassType;
+  typedef GtkRecentManager BaseObjectType;
+  typedef GtkRecentManagerClass BaseClassType;
+
+private:  friend class RecentManager_Class;
+  static CppClassType recentmanager_class_;
+
+private:
+  // noncopyable
+  RecentManager(const RecentManager&);
+  RecentManager& operator=(const RecentManager&);
+
+protected:
+  explicit RecentManager(const Glib::ConstructParams& construct_params);
+  explicit RecentManager(GtkRecentManager* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~RecentManager();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkRecentManager*       gobj()       { return reinterpret_cast<GtkRecentManager*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkRecentManager* gobj() const { return reinterpret_cast<GtkRecentManager*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkRecentManager* gobj_copy();
+
+private:
+
+
+protected:
+  RecentManager();
+
+public:
+  
+  static Glib::RefPtr<RecentManager> create();
+
+
+  static Glib::RefPtr<RecentManager> get_default();
+  
+  static Glib::RefPtr<RecentManager> get_for_screen(const Glib::RefPtr<Gdk::Screen>& screen);
+
+  /** Meta-data passed to add_item().  You should
+   * use RecentManager::Data if you want to control the meta-data associated
+   * to an entry of the recently used files list when you are adding
+   * a new file to it.
+   *
+   * - display_name: the string to be used when displaying the file inside a RecentChooser
+   * - description: a user readable description of the file
+   * - mime_type: the mime type of the file
+   * - app_name: the name of the application that is registering the file
+   * - app_exec: the command line that should be used when launching the file
+   * - groups: the list of group names to which the file belongs to
+   * - is_private: whether the file should be displayed only by the applications that have registered it
+  */
+  class Data
+  { 
+  public:
+    Glib::ustring display_name;
+    Glib::ustring description;
+    
+    Glib::ustring mime_type;
+    
+    Glib::ustring app_name;
+    Glib::ustring app_exec;
+    
+    Glib::StringArrayHandle groups;
+  
+    bool is_private;
+  };
+
+  void set_screen(const Glib::RefPtr<Gdk::Screen>& screen);
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  bool add_item(const Glib::ustring& uri);
+#else
+  bool add_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+  bool add_item(const Glib::ustring& uri, const Data& recent_data);
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  bool remove_item(const Glib::ustring& uri);
+#else
+  bool remove_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  Glib::RefPtr<RecentInfo> lookup_item(const Glib::ustring& uri);
+#else
+  Glib::RefPtr<RecentInfo> lookup_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  Glib::RefPtr<const RecentInfo> lookup_item(const Glib::ustring& uri) const;
+#else
+  Glib::RefPtr<const RecentInfo> lookup_item(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error) const;
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+  bool has_item(const Glib::ustring& uri) const;
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  bool move_item(const Glib::ustring& uri, const Glib::ustring& new_uri);
+#else
+  bool move_item(const Glib::ustring& uri, const Glib::ustring& new_uri, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  
+  void set_limit(int limit);
+  
+  int get_limit() const;
+
+  typedef Glib::ListHandle<RecentInfo, RecentInfoTraits> ListHandle_RecentInfos;
+  
+
+  ListHandle_RecentInfos get_items() const;
+
+  
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  int purge_items();
+#else
+  int purge_items(std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+
+  /// For instance, void on_changed();
+  typedef sigc::slot<void> SlotChanged;
+
+  /** The "changed" signal is emitted when an item in the recently used resources list is changed.
+  */
+  
+/**
+   * @par Prototype:
+   * <tt>void %changed()</tt>
+   */
+
+  Glib::SignalProxy0< void > signal_changed();
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The full path to the file to be used to store and read the list.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_filename() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The maximum number of items to be returned by gtk_recent_manager_get_items.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<int> property_limit() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The maximum number of items to be returned by gtk_recent_manager_get_items.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_limit() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The size of the recently used resources list.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_size() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual void on_changed();
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::RecentManager
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::RecentManager> wrap(GtkRecentManager* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_RECENTMANAGER_H */
+
diff --git a/libs/gtkmm2/gtk/gtkmm/statusicon.cc b/libs/gtkmm2/gtk/gtkmm/statusicon.cc
new file mode 100644 (file)
index 0000000..a02cf92
--- /dev/null
@@ -0,0 +1,495 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <gtkmm/statusicon.h>
+#include <gtkmm/private/statusicon_p.h>
+
+// -*- c++ -*-
+/* $Id: statusicon.ccg,v 1.4 2006/06/21 20:34:39 murrayc Exp $ */
+
+/* Copyright 2005 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtkstatusicon.h>
+
+
+namespace Gtk
+{
+
+Glib::RefPtr<StatusIcon> StatusIcon::create_from_file(const std::string& filename)
+{
+  Glib::RefPtr<StatusIcon> status_icon( new StatusIcon() );
+  status_icon->set_from_file(filename);
+  return status_icon;
+}
+
+bool StatusIcon::get_geometry(Glib::RefPtr<Gdk::Screen>& screen, Gdk::Rectangle& area, Orientation& orientation)
+{
+  GdkScreen* cscreen = 0;
+  GdkRectangle carea;
+  const bool result = gtk_status_icon_get_geometry(const_cast<GtkStatusIcon*>(gobj()), &cscreen, &carea, (GtkOrientation*)(&orientation));
+
+  if(cscreen)
+    screen = Glib::wrap(cscreen);
+
+  *(area.gobj()) = carea;
+
+  return result;
+}
+
+
+} // namespace Gtk
+
+
+namespace
+{
+
+
+static gboolean StatusIcon_signal_size_changed_callback(GtkStatusIcon* self, gint p0,void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< bool,int > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        return static_cast<int>((*static_cast<SlotType*>(slot))(p0
+));
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+
+static gboolean StatusIcon_signal_size_changed_notify_callback(GtkStatusIcon* self, gint p0, void* data)
+{
+  using namespace Gtk;
+  typedef sigc::slot< void,int > SlotType;
+
+  // Do not try to call a signal on a disassociated wrapper.
+  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+        (*static_cast<SlotType*>(slot))(p0
+);
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+
+static const Glib::SignalProxyInfo StatusIcon_signal_size_changed_info =
+{
+  "size_changed",
+  (GCallback) &StatusIcon_signal_size_changed_callback,
+  (GCallback) &StatusIcon_signal_size_changed_notify_callback
+};
+
+
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Gtk::StatusIcon> wrap(GtkStatusIcon* object, bool take_copy)
+{
+  return Glib::RefPtr<Gtk::StatusIcon>( dynamic_cast<Gtk::StatusIcon*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} /* namespace Glib */
+
+
+namespace Gtk
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Class& StatusIcon_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Class has to know the class init function to clone custom types.
+    class_init_func_ = &StatusIcon_Class::class_init_function;
+
+    // This is actually just optimized away, apparently with no harm.
+    // Make sure that the parent type has been created.
+    //CppClassParent::CppObjectType::get_type();
+
+    // Create the wrapper type, with the same class/instance size as the base type.
+    register_derived_type(gtk_status_icon_get_type());
+
+    // Add derived versions of interfaces, if the C type implements any interfaces:
+  }
+
+  return *this;
+}
+
+void StatusIcon_Class::class_init_function(void* g_class, void* class_data)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+  CppClassParent::class_init_function(klass, class_data);
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  klass->size_changed = &size_changed_callback;
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+gboolean StatusIcon_Class::size_changed_callback(GtkStatusIcon* self, gint p0)
+{
+  CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+      Glib::ObjectBase::_get_current_wrapper((GObject*)self));
+
+  // Non-gtkmmproc-generated custom classes implicitly call the default
+  // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
+  // generated classes can use this optimisation, which avoids the unnecessary
+  // parameter conversions if there is no possibility of the virtual function
+  // being overridden:
+  if(obj && obj->is_derived_())
+  {
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    try // Trap C++ exceptions which would normally be lost because this is a C callback.
+    {
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+      // Call the virtual member method, which derived classes might override.
+      return static_cast<int>(obj->on_size_changed(p0
+));
+    #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    }
+    catch(...)
+    {
+      Glib::exception_handlers_invoke();
+    }
+    #endif //GLIBMM_EXCEPTIONS_ENABLED
+  }
+  else
+  {
+    BaseClassType *const base = static_cast<BaseClassType*>(
+        g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
+    );
+
+    // Call the original underlying C function:
+    if(base && base->size_changed)
+      return (*base->size_changed)(self, p0);
+  }
+
+  typedef gboolean RType;
+  return RType();
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* StatusIcon_Class::wrap_new(GObject* object)
+{
+  return new StatusIcon((GtkStatusIcon*)object);
+}
+
+
+/* The implementation: */
+
+GtkStatusIcon* StatusIcon::gobj_copy()
+{
+  reference();
+  return gobj();
+}
+
+StatusIcon::StatusIcon(const Glib::ConstructParams& construct_params)
+:
+  Glib::Object(construct_params)
+{}
+
+StatusIcon::StatusIcon(GtkStatusIcon* castitem)
+:
+  Glib::Object((GObject*)(castitem))
+{}
+
+StatusIcon::~StatusIcon()
+{}
+
+
+StatusIcon::CppClassType StatusIcon::statusicon_class_; // initialize static member
+
+GType StatusIcon::get_type()
+{
+  return statusicon_class_.init().get_type();
+}
+
+GType StatusIcon::get_base_type()
+{
+  return gtk_status_icon_get_type();
+}
+
+
+StatusIcon::StatusIcon()
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(statusicon_class_.init()))
+{
+  }
+
+StatusIcon::StatusIcon(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(statusicon_class_.init(), "pixbuf", Glib::unwrap(pixbuf), (char*) 0))
+{
+  }
+
+StatusIcon::StatusIcon(const StockID& stock)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(statusicon_class_.init(), "stock", (stock).get_c_str(), (char*) 0))
+{
+  }
+
+StatusIcon::StatusIcon(const Glib::ustring& icon_name)
+:
+  Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+  Glib::Object(Glib::ConstructParams(statusicon_class_.init(), "icon_name", icon_name.c_str(), (char*) 0))
+{
+  }
+
+Glib::RefPtr<StatusIcon> StatusIcon::create(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf)
+{
+  return Glib::RefPtr<StatusIcon>( new StatusIcon(pixbuf) );
+}
+Glib::RefPtr<StatusIcon> StatusIcon::create(const StockID& stock_id)
+{
+  return Glib::RefPtr<StatusIcon>( new StatusIcon(stock_id) );
+}
+Glib::RefPtr<StatusIcon> StatusIcon::create(const Glib::ustring& icon_name)
+{
+  return Glib::RefPtr<StatusIcon>( new StatusIcon(icon_name) );
+}
+void StatusIcon::set(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf)
+{
+gtk_status_icon_set_from_pixbuf(gobj(), Glib::unwrap(pixbuf)); 
+}
+
+void StatusIcon::set_from_file(const Glib::ustring& filename)
+{
+gtk_status_icon_set_from_file(gobj(), filename.c_str()); 
+}
+
+void StatusIcon::set(const StockID& stock_id)
+{
+gtk_status_icon_set_from_stock(gobj(), (stock_id).get_c_str()); 
+}
+
+void StatusIcon::set(const Glib::ustring& icon_name)
+{
+gtk_status_icon_set_from_icon_name(gobj(), icon_name.c_str()); 
+}
+
+ImageType StatusIcon::get_storage_type() const
+{
+  return ((ImageType)(gtk_status_icon_get_storage_type(const_cast<GtkStatusIcon*>(gobj()))));
+}
+
+Glib::RefPtr<Gdk::Pixbuf> StatusIcon::get_pixbuf()
+{
+  return Glib::wrap(gtk_status_icon_get_pixbuf(gobj()));
+}
+
+Glib::RefPtr<const Gdk::Pixbuf> StatusIcon::get_pixbuf() const
+{
+  return const_cast<StatusIcon*>(this)->get_pixbuf();
+}
+
+StockID StatusIcon::get_stock() const
+{
+  return StockID(gtk_status_icon_get_stock(const_cast<GtkStatusIcon*>(gobj())));
+}
+
+Glib::ustring StatusIcon::get_icon_name() const
+{
+  return Glib::convert_const_gchar_ptr_to_ustring(gtk_status_icon_get_icon_name(const_cast<GtkStatusIcon*>(gobj())));
+}
+
+int StatusIcon::get_size() const
+{
+  return gtk_status_icon_get_size(const_cast<GtkStatusIcon*>(gobj()));
+}
+
+void StatusIcon::set_tooltip(const Glib::ustring& tooltip_text)
+{
+gtk_status_icon_set_tooltip(gobj(), tooltip_text.c_str()); 
+}
+
+void StatusIcon::set_visible(bool visible)
+{
+gtk_status_icon_set_visible(gobj(), static_cast<int>(visible)); 
+}
+
+bool StatusIcon::get_visible() const
+{
+  return gtk_status_icon_get_visible(const_cast<GtkStatusIcon*>(gobj()));
+}
+
+void StatusIcon::set_blinking(bool blinking)
+{
+gtk_status_icon_set_blinking(gobj(), static_cast<int>(blinking)); 
+}
+
+bool StatusIcon::get_blinking() const
+{
+  return gtk_status_icon_get_blinking(const_cast<GtkStatusIcon*>(gobj()));
+}
+
+bool StatusIcon::is_embedded() const
+{
+  return gtk_status_icon_is_embedded(const_cast<GtkStatusIcon*>(gobj()));
+}
+
+
+Glib::SignalProxy1< bool,int > StatusIcon::signal_size_changed()
+{
+  return Glib::SignalProxy1< bool,int >(this, &StatusIcon_signal_size_changed_info);
+}
+
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy< Glib::RefPtr<Gdk::Pixbuf> > StatusIcon::property_pixbuf() 
+{
+  return Glib::PropertyProxy< Glib::RefPtr<Gdk::Pixbuf> >(this, "pixbuf");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gdk::Pixbuf> > StatusIcon::property_pixbuf() const
+{
+  return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gdk::Pixbuf> >(this, "pixbuf");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_WriteOnly<std::string> StatusIcon::property_file() 
+{
+  return Glib::PropertyProxy_WriteOnly<std::string>(this, "file");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<StockID> StatusIcon::property_stock() 
+{
+  return Glib::PropertyProxy<StockID>(this, "stock");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<StockID> StatusIcon::property_stock() const
+{
+  return Glib::PropertyProxy_ReadOnly<StockID>(this, "stock");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<Glib::ustring> StatusIcon::property_icon_name() 
+{
+  return Glib::PropertyProxy<Glib::ustring>(this, "icon-name");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<Glib::ustring> StatusIcon::property_icon_name() const
+{
+  return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "icon-name");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<ImageType> StatusIcon::property_storage_type() const
+{
+  return Glib::PropertyProxy_ReadOnly<ImageType>(this, "storage-type");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<int> StatusIcon::property_size() const
+{
+  return Glib::PropertyProxy_ReadOnly<int>(this, "size");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy<bool> StatusIcon::property_blinking() 
+{
+  return Glib::PropertyProxy<bool>(this, "blinking");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+Glib::PropertyProxy_ReadOnly<bool> StatusIcon::property_blinking() const
+{
+  return Glib::PropertyProxy_ReadOnly<bool>(this, "blinking");
+}
+#endif //GLIBMM_PROPERTIES_ENABLED
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+bool Gtk::StatusIcon::on_size_changed(int size)
+{
+  BaseClassType *const base = static_cast<BaseClassType*>(
+      g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
+  );
+
+  if(base && base->size_changed)
+    return (*base->size_changed)(gobj(),size);
+
+  typedef bool RType;
+  return RType();
+}
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Gtk
+
+
diff --git a/libs/gtkmm2/gtk/gtkmm/statusicon.h b/libs/gtkmm2/gtk/gtkmm/statusicon.h
new file mode 100644 (file)
index 0000000..c3842c0
--- /dev/null
@@ -0,0 +1,366 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_STATUSICON_H
+#define _GTKMM_STATUSICON_H
+
+
+#include <glibmm.h>
+
+/* $Id: statusicon.hg,v 1.6 2006/07/05 16:59:28 murrayc Exp $ */
+
+/* Copyright (C) 2005 The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <gtkmm/image.h> //For ImageType.
+#include <gtkmm/stockid.h>
+#include <gdkmm/pixbuf.h>
+#include <gdkmm/types.h>
+#include <gtkmm/object.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkStatusIcon GtkStatusIcon;
+typedef struct _GtkStatusIconClass GtkStatusIconClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class StatusIcon_Class; } // namespace Gtk
+namespace Gtk
+{
+
+/** The "system tray" or notification area is normally used for transient icons that indicate some 
+ * special state. For example, a system tray icon might appear to tell the user that they have new 
+ * mail, or have an incoming instant message, or something along those lines. The basic idea is 
+ * that creating an icon in the notification area is less annoying than popping up a dialog.
+ *
+ * A StatusIcon object can be used to display an icon in a "system tray". The icon can have a 
+ * tooltip, and the user can interact with it by activating it or popping up a context menu. 
+ * Critical information should not solely be displayed in a StatusIcon, since it may not be 
+ * visible (e.g. when the user doesn't have a notification area on his panel). This can be checked 
+ * with is_embedded().
+ *
+ * On X11, the implementation follows the freedesktop.org "System Tray" specification.  
+ * Implementations of the "tray" side of this specification can be found e.g. in the GNOME and KDE 
+ * panel applications. 
+ *
+ * @newin2p10
+ */
+
+class StatusIcon : public Glib::Object
+{
+   
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef StatusIcon CppObjectType;
+  typedef StatusIcon_Class CppClassType;
+  typedef GtkStatusIcon BaseObjectType;
+  typedef GtkStatusIconClass BaseClassType;
+
+private:  friend class StatusIcon_Class;
+  static CppClassType statusicon_class_;
+
+private:
+  // noncopyable
+  StatusIcon(const StatusIcon&);
+  StatusIcon& operator=(const StatusIcon&);
+
+protected:
+  explicit StatusIcon(const Glib::ConstructParams& construct_params);
+  explicit StatusIcon(GtkStatusIcon* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~StatusIcon();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  GtkStatusIcon*       gobj()       { return reinterpret_cast<GtkStatusIcon*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.
+  const GtkStatusIcon* gobj() const { return reinterpret_cast<GtkStatusIcon*>(gobject_); }
+
+  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+  GtkStatusIcon* gobj_copy();
+
+private:
+
+protected:
+  StatusIcon();
+  
+  explicit StatusIcon(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf);
+  explicit StatusIcon(const StockID& stock);
+  explicit StatusIcon(const Glib::ustring& icon_name);
+
+public:
+  /** Creates a new Gtk::StatusIcon object.
+   * @return A Glib::RefPtr<> to a newly created Gtk::StatusIcon object.
+   */
+  
+  static Glib::RefPtr<StatusIcon> create(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf);
+
+  
+  static Glib::RefPtr<StatusIcon> create(const StockID& stock_id);
+
+  
+  static Glib::RefPtr<StatusIcon> create(const Glib::ustring& icon_name);
+
+
+ /** Creates a status icon displaying the file @a filename. 
+  * The image will be scaled down to fit in the available 
+  * space in the notification area, if necessary.
+  * 
+  * @param filename A filename.
+  * @result A new StatusIcon
+  *
+  * @newin2p10
+  */
+  static Glib::RefPtr<StatusIcon> create_from_file(const std::string& filename);
+  
+
+  void set(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf);
+  
+  void set_from_file(const Glib::ustring& filename);
+  
+  void set(const StockID& stock_id);
+  
+  void set(const Glib::ustring& icon_name);
+
+  
+  ImageType get_storage_type() const;
+
+  
+  Glib::RefPtr<Gdk::Pixbuf> get_pixbuf();
+  
+  Glib::RefPtr<const Gdk::Pixbuf> get_pixbuf() const;
+
+  
+  StockID get_stock() const;
+  
+  Glib::ustring get_icon_name() const;
+
+  
+  int get_size() const;
+
+  
+  void set_tooltip(const Glib::ustring& tooltip_text);
+
+  
+  void set_visible(bool visible = true);
+  
+  bool get_visible() const;
+  
+  void set_blinking(bool blinking = true);
+  
+  bool get_blinking() const;
+
+  
+  bool is_embedded() const;
+
+
+  //In gtk_status_icon_get_geometry(), any of the parameters may be NULL,
+  //but we don't need 6 different overloads, with different parameters.
+  //But we can add some if there are common cases.
+
+  /** Obtains information about the location of the status icon
+   * on screen. This information can be used to e.g. position 
+   * popups like notification bubbles. 
+   * See gtk_status_icon_position_menu() for a more convenient 
+   * alternative for positioning menus.
+   *
+   * Note that some platforms do not allow GTK+ to provide 
+   * this information.
+   *
+   * @param screen: The screen.
+   * @param area The area occupied by the status icon.
+   * @param orientation The orientation of the panel  in which the status icon is embedded. A panel 
+   * at the top or bottom of the screen is horizontal, a panel at the left or right is vertical.
+   * @result true if the location information has been filled in.
+   *
+   * @newin2p10
+   */
+  bool get_geometry(Glib::RefPtr<Gdk::Screen>& screen, Gdk::Rectangle& area, Orientation& orientation);
+  
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** A GdkPixbuf to display.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy< Glib::RefPtr<Gdk::Pixbuf> > property_pixbuf() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** A GdkPixbuf to display.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gdk::Pixbuf> > property_pixbuf() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Filename to load and display.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_WriteOnly<std::string> property_file() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Stock ID for a stock image to display.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<StockID> property_stock() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** Stock ID for a stock image to display.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<StockID> property_stock() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The name of the icon from the icon theme.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<Glib::ustring> property_icon_name() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** The name of the icon from the icon theme.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<Glib::ustring> property_icon_name() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The representation being used for image data.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<ImageType> property_storage_type() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** The size of the icon.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<int> property_size() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+  #ifdef GLIBMM_PROPERTIES_ENABLED
+/** Whether or not the status icon is blinking.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy<bool> property_blinking() ;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+#ifdef GLIBMM_PROPERTIES_ENABLED
+/** Whether or not the status icon is blinking.
+   *
+   * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+   * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+   * the value of the property changes.
+   */
+  Glib::PropertyProxy_ReadOnly<bool> property_blinking() const;
+#endif //#GLIBMM_PROPERTIES_ENABLED
+
+
+/**
+   * @par Prototype:
+   * <tt>bool %size_changed(int size)</tt>
+   */
+
+  Glib::SignalProxy1< bool,int > signal_size_changed();
+
+   //Keybinding signal.
+   //Keybinding signal.  
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  virtual bool on_size_changed(int size);
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+  /** @relates Gtk::StatusIcon
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Gtk::StatusIcon> wrap(GtkStatusIcon* object, bool take_copy = false);
+}
+
+
+#endif /* _GTKMM_STATUSICON_H */
+
diff --git a/libs/gtkmm2/pango/pangomm/cairofontmap.cc b/libs/gtkmm2/pango/pangomm/cairofontmap.cc
new file mode 100644 (file)
index 0000000..3008993
--- /dev/null
@@ -0,0 +1,163 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <pangomm/cairofontmap.h>
+#include <pangomm/private/cairofontmap_p.h>
+
+// -*- c++ -*-
+/* $Id: cairofontmap.ccg,v 1.1 2006/05/30 17:14:21 murrayc Exp $ */
+
+/* 
+ *
+ * Copyright 2001      The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <pangomm/context.h>
+#include <pango/pangocairo.h>
+
+namespace Pango
+{
+
+} /* namespace Pango */
+
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Glib::RefPtr<Pango::CairoFontMap> wrap(PangoCairoFontMap* object, bool take_copy)
+{
+  return Glib::RefPtr<Pango::CairoFontMap>( dynamic_cast<Pango::CairoFontMap*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
+  //We use dynamic_cast<> in case of multiple inheritance.
+}
+
+} // namespace Glib
+
+
+namespace Pango
+{
+
+
+/* The *_Class implementation: */
+
+const Glib::Interface_Class& CairoFontMap_Class::init()
+{
+  if(!gtype_) // create the GType if necessary
+  {
+    // Glib::Interface_Class has to know the interface init function
+    // in order to add interfaces to implementing types.
+    class_init_func_ = &CairoFontMap_Class::iface_init_function;
+
+    // We can not derive from another interface, and it is not necessary anyway.
+    gtype_ = pango_cairo_font_map_get_type();
+  }
+
+  return *this;
+}
+
+void CairoFontMap_Class::iface_init_function(void* g_iface, void*)
+{
+  BaseClassType *const klass = static_cast<BaseClassType*>(g_iface);
+
+  //This is just to avoid an "unused variable" warning when there are no vfuncs or signal handlers to connect.
+  //This is a temporary fix until I find out why I can not seem to derive a GtkFileChooser interface. murrayc
+  g_assert(klass != 0); 
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+}
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+Glib::ObjectBase* CairoFontMap_Class::wrap_new(GObject* object)
+{
+  return new CairoFontMap((PangoCairoFontMap*)(object));
+}
+
+
+/* The implementation: */
+
+CairoFontMap::CairoFontMap()
+:
+  Glib::Interface(cairofontmap_class_.init())
+{}
+
+CairoFontMap::CairoFontMap(PangoCairoFontMap* castitem)
+:
+  Glib::Interface((GObject*)(castitem))
+{}
+
+CairoFontMap::~CairoFontMap()
+{}
+
+// static
+void CairoFontMap::add_interface(GType gtype_implementer)
+{
+  cairofontmap_class_.init().add_interface(gtype_implementer);
+}
+
+CairoFontMap::CppClassType CairoFontMap::cairofontmap_class_; // initialize static member
+
+GType CairoFontMap::get_type()
+{
+  return cairofontmap_class_.init().get_type();
+}
+
+GType CairoFontMap::get_base_type()
+{
+  return pango_cairo_font_map_get_type();
+}
+
+
+void CairoFontMap::set_resolution(double dpi)
+{
+pango_cairo_font_map_set_resolution(gobj(), dpi); 
+}
+
+double CairoFontMap::get_resolution() const
+{
+  return pango_cairo_font_map_get_resolution(const_cast<PangoCairoFontMap*>(gobj()));
+}
+
+Glib::RefPtr<Context> CairoFontMap::create_context()
+{
+  return Glib::wrap(pango_cairo_font_map_create_context(gobj()));
+}
+
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+
+} // namespace Pango
+
+
diff --git a/libs/gtkmm2/pango/pangomm/cairofontmap.h b/libs/gtkmm2/pango/pangomm/cairofontmap.h
new file mode 100644 (file)
index 0000000..9dcce07
--- /dev/null
@@ -0,0 +1,164 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _PANGOMM_CAIROFONTMAP_H
+#define _PANGOMM_CAIROFONTMAP_H
+
+
+#include <glibmm.h>
+
+/* $Id: cairofontmap.hg,v 1.1 2006/05/30 17:14:21 murrayc Exp $ */
+
+/* fontmap.h
+ *
+ * Copyright 2001      The gtkmm Development Team
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/interface.h>
+#include <pangomm/context.h>
+#include <pango/pangocairo.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _PangoCairoFontMapIface PangoCairoFontMapIface;
+#endif //DOXYGEN_SHOULD_SKIP_THIS
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _PangoCairoFontMap PangoCairoFontMap;
+typedef struct _PangoCairoFontMapClass PangoCairoFontMapClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Pango
+{ class CairoFontMap_Class; } // namespace Pango
+namespace Pango
+{
+
+class Context;
+
+/** A Pango::CairoFontMap represents the set of fonts available for a particular rendering system.
+ */
+
+class CairoFontMap : public Glib::Interface
+{
+   
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+  typedef CairoFontMap CppObjectType;
+  typedef CairoFontMap_Class CppClassType;
+  typedef PangoCairoFontMap BaseObjectType;
+  typedef PangoCairoFontMapIface BaseClassType;
+
+private:
+  friend class CairoFontMap_Class;
+  static CppClassType cairofontmap_class_;
+
+  // noncopyable
+  CairoFontMap(const CairoFontMap&);
+  CairoFontMap& operator=(const CairoFontMap&);
+
+protected:
+  CairoFontMap(); // you must derive from this class
+  explicit CairoFontMap(PangoCairoFontMap* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+  virtual ~CairoFontMap();
+
+  static void add_interface(GType gtype_implementer);
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  static GType get_type()      G_GNUC_CONST;
+  static GType get_base_type() G_GNUC_CONST;
+#endif
+
+  ///Provides access to the underlying C GObject.
+  PangoCairoFontMap*       gobj()       { return reinterpret_cast<PangoCairoFontMap*>(gobject_); }
+
+  ///Provides access to the underlying C GObject.  
+  const PangoCairoFontMap* gobj() const { return reinterpret_cast<PangoCairoFontMap*>(gobject_); }
+
+private:
+
+
+public:
+  //_WRAP_METHOD(static Glib::RefPtr<PangoFontMap> get_default(), pango_cairo_font_map_get_default) //TODO: ref this?
+
+  
+  /** Sets the resolution for the fontmap. This is a scale factor between
+   * points specified in a Pango::FontDescription and Cairo units. The
+   * default value is 96, meaning that a 10 point font will be 13
+   * units high. (10 * 96. / 72. = 13.3).
+   * 
+   * Since: 1.10
+   * @param dpi The resolution in "dots per inch". (Physical inches aren't actually
+   * involved; the terminology is conventional.).
+   */
+  void set_resolution(double dpi);
+  
+  /** Gets the resolutions for the fontmap. See pango_cairo_font_map_set_resolution.
+   * @return The resolution in "dots per inch"
+   * 
+   * Since: 1.10.
+   */
+  double get_resolution() const;
+  
+  /** Create a Pango::Context for the given fontmap.
+   * @return The newly created context; free with Glib::object_unref().
+   * 
+   * Since: 1.10.
+   */
+  Glib::RefPtr<Context> create_context();
+
+
+public:
+
+public:
+  //C++ methods used to invoke GTK+ virtual functions:
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+protected:
+  //GTK+ Virtual Functions (override these to change behaviour):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+
+  //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+
+};
+
+} /* namespace Pango */
+
+
+namespace Glib
+{
+  /** @relates Pango::CairoFontMap
+   * @param object The C instance
+   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+   * @result A C++ instance that wraps this C instance.
+   */
+  Glib::RefPtr<Pango::CairoFontMap> wrap(PangoCairoFontMap* object, bool take_copy = false);
+
+} // namespace Glib
+
+
+#endif /* _PANGOMM_CAIROFONTMAP_H */
+
diff --git a/libs/gtkmm2/pango/pangomm/private/cairofontmap_p.h b/libs/gtkmm2/pango/pangomm/private/cairofontmap_p.h
new file mode 100644 (file)
index 0000000..2bda5e6
--- /dev/null
@@ -0,0 +1,48 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _PANGOMM_CAIROFONTMAP_P_H
+#define _PANGOMM_CAIROFONTMAP_P_H
+
+
+#include <glibmm/private/interface_p.h>
+
+#include <glibmm/private/interface_p.h>
+
+namespace Pango
+{
+
+class CairoFontMap_Class : public Glib::Interface_Class
+{
+public:
+  typedef CairoFontMap CppObjectType;
+  typedef PangoCairoFontMap BaseObjectType;
+  typedef PangoCairoFontMapIface BaseClassType;
+  typedef Glib::Interface_Class CppClassParent;
+
+  friend class CairoFontMap;
+
+  const Glib::Interface_Class& init();
+
+  static void iface_init_function(void* g_iface, void* iface_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+
+protected:
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+  //Callbacks (default signal handlers):
+  //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
+  //You could prevent the original default signal handlers being called by overriding the *_impl method.
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+
+  //Callbacks (virtual functions):
+#ifdef GLIBMM_VFUNCS_ENABLED
+#endif //GLIBMM_VFUNCS_ENABLED
+};
+
+
+} // namespace Pango
+
+
+#endif /* _PANGOMM_CAIROFONTMAP_P_H */
+