 1.3.14:
	
2002-05-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* autogen.sh: Prefer autoconf2.50 over autoconf if it exists.
	This is a temporary hack for Debian, as recommended on gtkmm-main.
	Also, use the opportunity for a cleanup of autogen.sh.

2002-05-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treeiter.{ccg,hg} (Gtk::TreeNodeChildren): Use
	Gtk::TreeRow as value_type instead of Gtk::TreeIter.  Add
	iterator and const_iterator typedefs.

2002-05-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/pm/Enum.pm, tools/pm/Output.pm, tools/pm/WrapParser.pm:
	Implement flexible substitution of enum elements for _WRAP_ENUM()
	and _WRAP_GERROR().  You can now do e.g. s#^2BIG#TOOBIG# to fix
	leading digits, or whatever you want to do.  Moving enums into
	class scope currently only works for NO_GTYPE enums.

	* glib/src/date.hg: Move all Glib::Date* enums into class
	Glib::Date, and use the new substitution feature to remove the
	DATE_ prefix.

	* glib/src/fileutils.hg (Glib::FileError::Code): Rename the errno
	enum values to something sensible, and document all of them.

	* glib/src/spawn.hg (Glib::SpawnError::Code): Substitute
	s/^2BIG$/TOOBIG/ -- this has been a hack in gtkmmproc until now.

	* gdk/src/event.hg (Gdk::EventType): Likewise for 2BUTTON_PRESS
	and 3BUTTON_PRESS.

2002-05-10  Murray Cumming  <murrayc@usa.net>

	* Gtk::Box::pack_start() and pack_end():
	Replaced the bool expand and fill parameters with one
	Gtk::AttachOptions bitwise mask, whic is already used by
	Gtk::Table::attach(). This should make code easier to read.

2002-05-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treeiter.ccg (Gtk::TreeIter::equal): Ignore
	GtkTreeIter::user_data2 and GtkTreeIter::user_data3, because
	GtkListStore and GtkTreeStore only use GtkTreeIter::user_data.
	This fixes Gtk::TreeIter comparison when the the unused pointers
	contain bogus values.  Obviously this breaks if the model does
	make use of user_data[23] -- it's a serious problem that needs
	ranting about on gtk-devel-list.

2002-05-09  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeSelection, TreeView, TreeDragSource, TreeDragDest:
	replaced use of TreePath with TreeModel::Path typedef.
	* Gtk::TextBuffer: Implemented clipboard methods.

2002-05-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/class_boxedtype_static.m4: Make the wrap ctor
	explicit, as it should be.
	* gtk/src/treeiter.hg, gtk/gtkmm/treemodelcolumn.h: Update
	reference documentation.

2002-05-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treemodel.hg: Remove commented methods set_value() and
	get_value().  Reformat Doxygen comments.

	* gtk/src/treeiter.{ccg,hg}: Implement Gtk::TreeRow::set_value()
	and Gtk::TreeRow::get_value().  Use them in TreeValueProxy<>.

	* gtk/src/treeselection.{ccg,hg} (TreeSelection::get_selected):
	Make this a non-const method, because you can change the data
	via the returned iterator.

2002-05-09  Muray Cumming  <murrayc@usa.net>

	* TreeModel: Added typedefs for ColumnRecord, iterator, Path, and
	Row. Used the typedefs in interfaces, but there are still some
	lingering "TreePaths"s.
	* TreeView: Added typedefs for Selection and Column.
	* Used these typdefs in examples/paned and
	demos/gtk-demo/example_stockbrowser.cc.

2002-05-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treeiter.{ccg,hg}: Add an internal method
	Gtk::TreeIter::set_model_refptr(), which is useful if you
	already have a Gtk::TreeModel wrapper object.

	* gtk/src/treeselection.{ccg,hg}: Implement selected_foreach(),
	and cleanup set_select_function() a bit.  Add missing exception
	checks.

2002-05-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* examples/paned/paned.cc, demos/gtk-demo/*.cc: Retrieve the
	Gtk::TreeRow via *iter, and then operate directly on the row.
	This way, (*iter)[column] now becomes row[column].

2002-05-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/src/date.{ccg,hg}: New files, copied from the glibmm/
	directory.  gtkmmproc is needed to generate the enums.
	* glib/glibmm/date.{cc,h}: Remove now autogenerated files.

2002-05-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treeview.hg: Move append_column() member template
	out of the class' body, and add the missing return statement.

2002-05-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treemodel.{ccg,hg}: Make get_value_impl() virtual, and
	add a virtual set_value_impl(), in order to be implemented in
	Gtk::ListStore and Gtk::TreeStore.  Also, remove the public
	get_value() method.
	* gtk/src/liststore.{ccg,hg}, gtk/src/treestore.{ccg,hg}:
	Manually implement set_value_impl(), because gtkmmproc doesn't
	like the virtual keyword.  Remove the public set_value() methods.

	* gtk/src/treeiter.{ccg,hg}: Implement class Gtk::TreeRow and
	template class Gtk::TreeValueProxy<>.  Move several Gtk::TreeIter
	methods into Gtk::TreeRow.  Add TreeIter::operator*, operator->,
	and TreeRow::operator[] (replaces set_value() and get_value()).
	Also rename Gtk::TreeIterChildren to Gtk::TreeNodeChildren.

	* examples/paned/paned.cc, demos/gtk-demo/*.cc: Use the new
	Gtk::TreeIter interface, especially Gtk::TreeRow::operator[].

2002-05-08  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeViewColumn
	  - Replaced overriden TreeViewColumn(modelcolumn) constructors
	  with a templated constructor, which avoids the ambiguity problem
	  and minimises code duplication. The CellRenderer generation 
	  namespace and functionnames need to be cleaned up a bit.
	  - Added tempalted pack_start(modelcolumn) method, which greatly
	  simplifies many-modelcolumns-in-one-viewcolumn situations.	
	* Used this in demos/gtk-demo/example-stockbrowser.cc 
	
2002-05-08  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeView: Added templated append_column(modelcolumn)
	method, so that people don't need to worry at all about the
	TreeViewColumn, or the CellRenderer for simple columns.
	* Used this in
	demos/gtk-demo/example-stockbrowser.cc and exampels/paned.	

2002-05-08  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeViewColumn: Added TreeViewColumn(title, modelcolumn) 
	constructors to allow easy creation of ViewColumns with whatever
	CellRender is appropriate for the model's data type. Daniel
	Elstner helped out with this. I'm not totally sure that the
	catch-all TreeViewColumn(title, const ModelColumnBase&)
	constructor won't have ambiguity problems - we might need to
	template the constructor isntead.
	* Used this in
	demos/gtk-demo/example-stockbrowser.cc and exampels/paned.

2002-05-07  Murray Cumming  <murrayc@usa.net>

	* Gtk::CellRenderer: Added virtual _property_renderable() method,
	which returns the PropertyProxy of whatever property that renderer
	actually renders, so that application coders don't need to
	manually specify it.
	* Gtk::TreeViewColumn: Added set_renderer() which is much like the
	existing add_atrribute(), but which gets the appropriate
	renderable property.
	*Used this in demos/gtk-demo/example_stockbrowser.cc.

2002-05-07  Murray Cumming  <murrayc@usa.net>

	* Gtk::Object: wrapped "destroy" signal.
	* Gtk::Container: Added override of on_destroy(), to remove child
	widgets before the refcount reaches zero rather than
	afterwards. See comments in code. This fixes an occasional
	refcount problem when using Gtk::manage().
	Problem found by Jarek Dukat.

2002-05-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* demos/gtk-demo/example_treeview_editable_cells.cc: Remove
	Glib::wrap() for GtkTreePath*, because Gtk::TreeModel::get_path()
	now returns the C++ type Gtk::TreePath.

2002-05-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/class_boxedtype_static.m4: Ooops, forgot to generate
	the Glib::Value<> specializations for static Boxed Types.

2002-05-06  root  <murrayc@usa.net>

	* Gtk::TreePath: Added TreePath(const TreeIter&) constructor, as a
	convenience.

2002-05-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* tests: New testsuite directory.
	* tests/main.cc: Just #include all toplevel headers, and provide
	a dummy main() function.
	* tests/glibmm_value.cc: Try various explicit instantiations of
	the Glib::Value<> template.

2002-05-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/value_custom.h: Rename Glib::Value_Custom<> to
	Glib::Value<>.  Merge the Glib::Value code for generic pointers
	and Glib::Object pointers into one Glib::Value_Pointer<> template.
	By using a freaky overloading technique, it transparently switches
	to the right implementation.  The Glib::Value<> specializations
	for pointers simply inherit from Value_Pointer<>.

	* glib/glibmm/value.h: Rename Glib::Value<> to Glib::Value_Boxed<>.
	Remove the Glib::Value<> specializations for pointers, since this
	is now implemented in value_custom.h.

	* tools/m4/class_boxedtype.m4: Generate a specialization of
	Glib::Value<> for each BoxedType wrapper class.

	* gtk/gtkmm/treemodelcolumn.h: Gtk::TreeModelColumn_Custom<> is
	no longer needed, since custom types can now be used transparently.

	* demos/gtk-demo/demowindow.cc: Use TreeModelColumn<type_slotDo>
	for the slot column -- TreeModelColumn_Custom is no longer needed.

2002-05-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/value_custom.{cc,h}: New files, implementing a
	Glib::Value_Custom<> template.  It can be used with any C++ types
	which are suitable for use with containers (i.e. copyable).  For
	each C++ type, a subtype of G_TYPE_BOXED is created on the fly,
	using typeid().name().  Value_Custom<> also has specializations
	for pointer types, which use G_TYPE_POINTER instead.

	* glib/glibmm/value.{cc,h}: Remove Glib::ValueBase_Pointer and
	Glib::Value_Pointer<>.  They are replaced by Glib::Value_Custom<>.

	* gtk/gtkmm/treemodelcolumn.h: Replace TreeModelColumn_Pointer<>
	with TreeModelColumn_Custom<>, using the new Glib::Value_Custom<>.
	Make the Gtk::TreeModelColumnRecord dtor virtual, and the data
	members private again.

	* demos/gtk-demo/demowindow.cc: Use TreeModelColumn_Custom<> for
	the slot column.  This is much cleaner, because we no longer rely
	on the SigC::Slot being static data.

	Note:  Without the patch attached to bug #80814, you'll see a lot
	of GObject warnings when running the demos, but it'll work anyway.

2002-05-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treemodel.hg: If Gtk::TreeModel::get_value() is const,
	get_value_impl() has to be const as well.

2002-05-05  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeSelection: removed get_user_data() because it's only
	relevant to C callbacks.
	* Gtk::TreeModel: made get_value() const.	

2002-05-05  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeView, TreeModel, TreeStore, TreeViewColumn: many
	get_ and is_ methods are now const. Problem found by Jarek Dukat.
	
2002-05-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/notebook.ccg (insert_page): Remove default arguments
	from the implementation's prototype, so that it builds again with
	gcc-3.1 and other recent compilers.

2002-05-04  Murray Cumming  <murrayc@usa.net>

	* Gtk::Notebook: Removed STL-style interface because the
	GtkNotebook GList* is private in GTK+, and the STL-style interface
	was only still working due to a terrible hack. Maybe we'll add an
	STL-style interface in future if we see how, but it's difficult.
	* demos/gtk-demo and examples/notebook: Updated for changed
	Gtk::Notebook interface.
	* Added new GtkNotebook methods.

2002-05-02  Murray Cumming  <murrayc@usa.net>

	* tools/m4/WrapParser.pm: Added custom_default_handler optional
	arg to _WRAP_SIGNAL() macro.
	* Gdk::Dialog: Used that optional arg to implement a custom
	default signal handler for the response signal, to ensure that the
	dialog is hidden when run() is about to end.

2002-05-02  Murray Cumming  <murrayc@usa.net>

	* Docs/tutorial/gtkmm-tut.xml: Added RefPtr information for people
	who aren't familiar with smartpointers.

2002-05-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/toolbar.hg (Gtk::Toolbar): Rename the methods
	{get,set,unset}_style() to {get,set,unset}_toolbar_style(),
	and signal_style_changed() to signal_toolbar_style_changed().
	The original names were insane, because they hid several
	Gtk::Widget methods with identical names.  The new naming
	convention matches those of property "toolbar_style".

	* examples/stock/stock.cc: Take account for the Gtk::Toolbar
	API change described above.

2002-05-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/style.hg: Remove "Style::" prefix from the method
	declaration of get_background().  Looks like an accident.

2002-05-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/table.hg (Gtk::Table): Reformat reference documentation,
	and convert all tags to Doxygen.  Also remove all method comments,
	since they weren't in Doxygen style and should be merged from the
	GTK+ documentation anyway.  (This patch fixes bug #80489.)

2002-04-30  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.in: Require GTK+ 2.0.1 -- we rely at least on the
	UTF-8 version of g_logv(), and probably some other stuff too.
	Bump gtkmm version to 1.3.13.  (I'm not sure about the binary
	interface version, thus left it as is.)

2002-04-30  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/src/unicode.{ccg,hg}: New files, containing several
	enums and functions for character classification.
	* glib/glibmm/ustring.{cc,h}: Use C++ enum Glib::NormalizeMode.

	* glib/src/fileutils.{ccg,hg}: Remove the currently unused 2nd
	argument of Glib::Dir::Dir() -- we can just overload if needed.
	Add comment explaining why Glib::DirIterator::operator++(int)
	returns void.

2002-04-30  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/private/Makefile.am: Distribute and install
	the gtkmmproc-generated private headers.

2002-04-30  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/pm/Enum.pm (beautify_values): Rewrite.  The former
	implementation was too tricky, it could end up assigning plain
	wrong enumeration values.
	* glib/src/glib_enums.defs: Correct misdetected enums.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/base.m4: Don't #include <glibmm.h> when building
	glibmm itself.
	* tools/m4/enum.m4: Add support for NO_GTYPE flag, to be used
	if the C enum type isn't registered in the GObject type system.
	* tools/pm/WrapParser.pm, tools/pm/Output.pm: Add support for
	NO_GTYPE flag to _WRAP_ENUM, as decribed above.
	* tools/pm/WrapParser.pm (on_wrap_enum): Also handle Qt-style
	comment blocks.

	* glib/src/convert.hg: Fix typo: GIconv -> GIConv.
	* glib/src/spawn.hg: Wrap enum GSpawnError.
	* glib/src/spawn.ccg: Catch any exceptions from the child_setup
	slot.  Avoid passing the callback pointer if child_setup is empty.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/base.m4: Remove the quotes in di`'vert and un`'divert,
	because they broke the build and aren't needed.  (Never let the
	syntax highlighting confuse you :)

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/base.m4: Change the m4 builtin macro aliasing scheme,
	e.g. builtin() is aliased to m4_builtin() instead of _BUILTIN().
	This makes m4 builtins easier recognizeable and improves syntax
	highlighting in decent editors.
	* tools/m4/base.m4, tools/m4/convert_base.m4: Use the new m4
	builtin macro aliases.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/gerror.m4: Place the implementation in
	SECTION_SRC_GENERATED instead of SECTION_CC.  It seems
	SECTION_CC is only pulled from the _CLASS* macros, which
	glibmm doesn't use currently.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/convert.{cc,h}, glib/glibmm/thread.{cc,h}:
	Remove files.
	* glib/src/convert.{ccg,hg}, glib/src/thread.{ccg,hg}:
	New files, replacing the old ones in the glib/glibmm/
	directory.  Make use of _WRAP_GERROR().

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* gdk/src/pixbuf.hg: Remove _WRAP_ENUM() for GdkPixbufError,
	since it is now wrapped automatically as Gdk::PixbufError::Code.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/src/glib_enums.defs, glib/src/glib_functions.defs,
	glib/src/gobject.defs, glib/src/gobject_enums.defs,
	glib/src/gobject_functions.defs: New .defs files for glibmm.

	* glib/glibmm/fileutils.{cc,h}, glib/glibmm/shell.{cc,h},
	glib/glibmm/spawn.{cc,h}: Remove files.

	* glib/src/fileutils.{ccg,hg}, glib/src/shell.{ccg,hg},
	glib/src/spawn.{ccg,hg}: New files, replacing the old ones
	in the glib/glibmm/ directory.  Make use of _WRAP_GERROR().

	* glib/glibmm/value.cc, glib/src/value_basictypes.cc.m4:
	Remove #include <glibmm/value_basictypes.cc> from value.cc,
	since it can be built separately now.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/pm/Enum.pm: Add missing array initializers.
	* tools/pm/WrapParser.pm: New sub on_wrap_gerror() for _WRAP_GERROR.
	The enum type is now wrapped automatically, and defined in the
	corresponding exception class.  Gdk::PIXBUF_ERROR_FAILED becomes
	Gdk::PixbufError::FAILED, for instance.  Also, _WRAP_GERROR now
	supports an optional NO_GTYPE flag, to be used if the C enum type
	has no _get_type() function.
	* tools/pm/Output.pm: New sub output_wrap_gerror().  Look up the
	enum defs and pass name=value pairs to the m4 _GERROR() macro.
	* tools/m4/gerror.m4: Rename _WRAP_GERROR to _GERROR.  Wrap the
	error code enum in the exception class as described above.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/pm/GtkDefs.pm: Split the scary mega-regex (the one that
	breaks up the Lisp statements) into multiple lines.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* build_shared/Makefile_build*.am_fragment: Add .PHONY targets.
	* gtk/Makefile.am: Remove superfluous 'gtkmm.h' from EXTRA_DIST.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	Glibmm has now separate source/build directories,
	so that gtkmmproc can be used to generate the code.

	* glib/glibmm/*.m4: Move files into glib/src/.
	* glib/glibmm/wrap_init.cc: Remove, it's now auto-generated.
	* glib/glibmm/Makefile.am: Remove *.m4 build rules.
	* glib/Makefile.am: Add 'src' to SUBDIRS.
	* glib/src/Makefile.am, glib/src/Makefile_list_of_hg.am_fragment:
	New files.
	* configure.in: Add new Makefiles.

2002-04-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/class.{cc,h}: Remove ctor and dtor of Glib::Class,
	because it is used only statically.  See the comment in class.h.

2002-04-27  Martin Schulze  <MHL.Schulze@t-online.de>

	* demos/gtk-demo/demowindow.cc: fix segfault in
	DemoWindow::on_treeview_row_activated() when clicking on the `Tree
	View` parent item.

2002-04-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/gerror.m4: Make throw_func() private rather than
	protected, and exclude friend void wrap_init() from Doxygen.

2002-04-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/generate_wrap_init.pl.in: Define G_GNUC_CONST to empty,
	so that the get_type() functions won't be optimized away if the
	return value is unused.

2002-04-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/class.{cc,h}, tools/m4/class_shared.m4: Move most
	of the get_type() code into Glib::Class::register_derived_type().
	The base class information is always retrieved dynamically using
	g_type_query().  This fixes the AtkStateSet/AtkRealStateSet problem.

2002-04-27  Murray Cumming  <murrayc@usa.net>

	* examples/paned/paned.cc: Updated to use the
	derived-TreeModelColumnRecord technique with Gtk::TreeView.

2002-04-24  Martin Schulze  <MHL.Schulze@t-online.de>

	Modifications to the Stock-API:
	* gtk/src/button.{ccg,hg}: Remove convinience constructor for
	BuiltinStockID. It should be redundant because of removed ambiguity.
	* gtk/gtkmm/stock.{cc,h}:
	- Put BuiltinStockID in namespace Gtk rather in Gtk::Stock. Then
	we have Gtk::StockID, Gtk::BuildinStockID, Gtk::StockItem and
	the Gtk::Stock namespace for globals and static functions. This
	looks like the most consistent hierarchy.
	- Add two functions to make the API clearer:
	bool lookup(const Gtk::StockID&, Gtk::IconSet&);
	bool lookup(const Gtk::StockID&, Gtk::IconSize, Gtk::Image&);
	The pure gtk API for stock-ids, -items, -icons is a bit
	confusing and it's difficult to find the functions to lookup the
	different things that can be associated with stock-ids. Secondly
	the list returned by Gtk::Stock::get_list_ids() includes both
	stock-ids associated with stock-items and stock-icons. So again
	this is more consistent.
	* gtk/src/stockitem.{ccg,hg}: Add static method to StockItem:
	static StockItem lookup(const Gtk::StockID& stock_id);
	This makes the API consistent with Gtk::IconSet and Gtk::Image
	because these classes also have functions to look up a stock-id.
	* gtk/gtkmm/stockid.{cc,h}: Gtk::Stock::BuiltinStockID becomes
	Gtk::BuiltinStockID.

2002-04-25  Michael v. Szombathely <szombath@bifab.de>

	* gtk/src/table.hg: Added cast when ORing Gtk::AttachOptions
	flags for a default argument value, because some versions (certain 
	patches?) of Sun/Forte don't  the operator| overloads for
	enums. Users of those compilers might still have problems with the
	examples.

2002-04-25  Murray Cumming  <murrayc@usa.net>

	* tools/generate_wrap_init.pl.in: wrap_init() functions now
	call the get_type() methods to register the gtypes. It is
	therefore necessary for them to #include the widget headers,
	I needed to add some extra code to stop the compiler from optimising
	away the get_type() call - that is strange.
	* tools/m4/gerro.m4:The above change showed that the Error
	throw_func() methods should be protected+friend rather than
	private.
	* These changes were needed by libglademm, which instantiates
	gtkmm's derived gtypes based on the registered gtype names.

2002-04-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* docs/reference/Makefile.am: 'make post-html' no longer rebuilds
	the docs unnecessarily.  Also, merge the post-html-tarball and
	post-html rules, i.e. 'make post-html' does now upload a .tar.bz2
	package first, and extracts it on the SF server.  This greatly
	speeds up matters, particularly because of bzip2.

2002-04-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* docs/reference/Makefile.am: If the GTK+ reference documentation
	isn't installed, try looking into $(top_srcdir)/../gtk+ for a GTK+
	source tree from CVS.

2002-04-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* scripts/cxx_std.m4, configure.in, glib/glibmmconfig.h.in:
	Implement macro GTKMM_CXX_HAS_TEMPLATE_SEQUENCE_CTORS, in order
	to work	around the lack of proper sequence ctors in Sun's libCstd.

	* glib/glibmm/containerhandle_shared.h, glib/glibmm/arrayhandle.h,
	glib/glibmm/listhandle.h, glib/glibmm/slisthandle.h: Don't rely
	on standard-conform sequence constructors, unless the macro
	GTKMM_HAVE_TEMPLATE_SEQUENCE_CTORS is defined.

2002-04-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* build_shared/Makefile_gensrc.am_fragment: Take into account
	that generate_wrap_init.pl now lives in $(top_builddir)/tools/.
	Also, change wrap_init.cc's dependency on generate_wrap_init.pl
	to generate_wrap_init.pl.in, to avoid excessive rebuilds.

	* scripts/macros.m4 (GTKMM_CHECK_PERL): Bring to perfection.

2002-04-21  Michael v. Szombathely <szombath@bifab.de>

	* examples/idle/idle.cc, examples/book/timeout/timerexample.cc,
	examples/dialog/dialog1.cc, examples/dialog/dialog3.cc,
	examples/dialog/dialog2.cc, examples/entry/entry.cc,
	examples/progressbar/progressbar.cc, examples/filesel/filesel.cc,
	examples/scrolledwin/scrolledwin.cc: compatibility patch for Sun
	Forte C++ compiler (pointer to member functions are only allowed
	for implemented member functions of a class, not for non-static
	member functions of base classes)
	
2002-04-25  Murray Cumming  <murrayc@usa.net>

	* Gtk::Dialog::get_action_area() now returns a HButtonBox instead
	of a HBox. It's just a GtkWidget* in the GTK+ header, so we didn't
	know it had changed.

2002-04-24  Murray Cumming  <murrayc@usa.net>

	* tools: generate_wrap_init.pl is now generated from 
	generate_wrap_init.pl.in in the same way as gtkmmproc. This allows
	it to contain the correct perl path. Also like gtkmmproc, it is
	now installed as an executable script.

2002-04-24  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/extra_defs_gen/Makefile.am: Don't use $(common_ldflags),
	since it is defined in build_shared/Makefile_build.am_fragment,
	which is not included.  Reported by <szombath@bifab.de>.

2002-04-24  Murray Cumming  <murrayc@usa.net>

	* tools/m4/base.m4: Added _GTKMMPROC_H_AND_C() macro, used to 
	put stuff in the .h and .cc files. Needed for surrounding
	generated code with #ifndef/#endif for Windows.

2002-04-24  Daniel Elstner  <daniel.elstner@gmx.net>

	* scripts/macros.m4 (GTKMM_CHECK_PERL): Re-indent, and make
	use of AC_CACHE_CHECK.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/generate_wrap_init.pl: Look for _WRAP_GERROR, and
	not its old name _CLASS_GERROR.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* scripts/cxx_std.m4, glib/glibmmconfig.h.in, configure.in:
	Implement specific configure tests for std::iterator_traits<>
	and Sun's std::reverse_iterator<>.  Define macros accordingly.
	* glib/glibmm/ustring.h: Check for the new specific macros
	instead of #ifdef __SUNPRO_CC.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/ustring.h: Remove (hopefully) redundant uses of
	the 'typename' keyword -- when I added them I wasn't sure if those
	are needed, but it doesn't seem so.  It might well be that some
	compilers choke on too extensive 'typename' usage.

2002-04-21  Michael v. Szombathely <szombath@bifab.de>

	* glib/glibmm/arrayhandle.h, glib/glibmm/listhandle.h,
	glib/glibmm/slisthandle.h, glib/glibmm/thread.h:  Proper use of
	typename, added for template members, where typedefs are involved.

2002-04-23  Murray Cumming  <murrayc@usa.net>

	* tools/pm/Output.pm: output_wrap_create(): Default method arg
	values will not now appear in the .cc files, because various
	compilers complain about that.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/gtkmm/stock.{cc,h}, demos/gtk-demo/example_stockbrowser.cc:
	Rename Gtk::Stock::get_list_ids() to Gtk::Stock::get_ids().

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/gtkmm/stock.h: Use the @image tag to include the
	stock icon pixmaps in the reference docs.  Looks cute!

	* gtk/gtkmm/stock.{cc,h}: Remove BuiltinStockID::operator
	Glib::ustring(), to avoid overloading ambiguities.  Return
	a list of StockIDs from Stock::get_list_ids(), instead of
	a ustring list.
	* gtk/gtkmm/stockid.{cc,h}: Make the StockID(const Glib::ustring&)
	ctor explicit, and also add an explicit StockID(const char*) ctor,
	which accepts 0 strings.  Implement StockID::equal(), and call it
	from non-member operators == and !=.
	* gtk/gtkmm/stockid.{cc,h}: Add get_c_str() method, so that the
	questionable construct 'get_string().c_str()' is no longer needed.
	* gtk/gtkmm/stockid.h: Define StockID_Traits for use with the
	container handles, and a Glib::Value<Gtk::StockID> specialization.

	* tools/m4/convert_gtk.m4, gtk/src/button.ccg,
	gtk/src/dialog.{ccg,hg}, gtk/src/image.ccg,
	gtk/src/imagemenuitem.ccg: Overload for Gtk::StockID where
	necessary, and replace 'get_string().c_str()' with get_c_str().

	* gtk/src/treesortable.hg, tools/m4/convert_gtk.m4: Rename the
	original set_sort_column_id() to set_sort_column_id_vfunc(), and
	use two overloaded set_sort_column() methods instead.  Now we
	have an overload for const TreeModelColumnBase&.

	* demos/gtk-demo/example_stockbrowser.cc: Convert to the new
	StockID interface, and make use of the Gtk::TreeSortable sorting
	facility, rather than doing it manually.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/value.{cc,h} (Glib::ValueBase_String): Add
	set_cstring() method, which might be useful when deriving
	from Glib::ValueBase_String.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* demos/gtk-demo/example_dialog.cc: Don't use sprintf(), it's
	just insane.  Comment out unused variables to avoid warnings.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/box.hg: Reference documentation cleanup.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/pm/DocsParser.pm: Refine the regexps a bit, and add
	a special "g_" -> "Glib::" substitution.

	* docs/reference/Makefile.am, docs/reference/Doxyfile.in:
	Try to determine the GTK+ HTML docs location, and pass it as
	IMAGE_PATH to Doxygen.  Thus we can now use the @image tag to
	include images from the GTK+ docs.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/ustring.h: Define our own Glib::IteratorTraits<T>
	when compiling with Sun's libCstd.  This way, we can honestly
	blame the std::string implementation for any remaining problems.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/ustring.h: Add Sun libCstd kludge.  This is broken
	since it disables API, but it might help to get gtkmm itself
	compiled.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/main.{cc,h}: Make Glib::PollFD a real class, not
	just a typedef.  This allows wrapping the gushort events/revents
	members with Glib::IOCondition accessors.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* autogen.sh: Abort on errors.

2002-04-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* scripts/docgen.m4: New file containing macros related to
	generation of reference documentation.
	* scripts/macros.m4: Add GTKMM_CHECK_PERL(version) macro, which
	checks for the given Perl version but doesn't require it, unless
	maintainer-mode is enabled.
	* configure.in: Use the new macros.

2002-04-22  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/ustring.{cc,h}: Implement new SequenceToString<>
	converter concept, which allows now for both 'char' and 'gunichar'
	sequences.  Also, make some methods strongly exception-safe as they
	should be, remove a couple of unnecessary methods, and improve the
	reference documentation (member groups -- looks really nice).

2002-04-22  Murray Cumming  <murrayc@usa.net>

	* tools/convert_gdk.m4: Changed some conversions from 
	const RefPtr<const>& to non-const gobjects, in an attempt to 
	solve ambiguities when using Sun's Forte compiler. Problem
	found by Michael v. Szombathely.

2002-04-21  Michael v. Szombathely <szombath@bifab.de>

	* glib/glibmm/ustring.h: special typedef for reverse_iterator in
	case of the Forte C++ Compiler introduced (#ifdef__SUNPRO_CC
	... #endif)
	
2002-04-21  Michael v. Szombathely <szombath@bifab.de>

	* glib/glibmm/object.h, glib/glibmm/interface.h,
	tools/m4/class_gtkobject.m4, tools/m4/class_shared.m4,
	tools/m4/class_interface.m4, tools/m4/class_gobject.m4: some
	friend declarations changed (a typedef name cannot be used in an
	elaborated type specifier)

2002-04-21  Michael v. Szombathely <szombath@bifab.de>
 
 	* gdk/src/types.hg, gtk/gtkmm/clipboard.cc,
 	examples/eventbox/eventbox.cc: some missing return added
	
2002-04-21  Michael v. Szombathely <szombath@bifab.de>

	* gtk/src/radiobutton.hg, gtk/src/radiomenuitem.hg: Gtk:: added
	for nested namespace irritations in friend declarations
	
2002-04-21  Michael v. Szombathely <szombath@bifab.de>

 	* pango/src/fontfamily.hg, gdk/src/visual.hg, gdk/src/drawable.hg,
	gtk/src/widget.hg, gtk/src/entry.hg, gtk/src/statusbar.hg: extra
	semicolons after some wrapper macros removed (Warning: extra ";"
	ignored.)
	
2002-04-21  Michael v. Szombathely <szombath@bifab.de>
 
 	* pango/src/layoutline.hg, gdk/src/pixmap.hg, gtk/src/adjustment.ccg,
 	gtk/src/bin.ccg, gtk/src/imagemenuitem.ccg, gtk/src/statusbar.ccg:
 	illegal default arguments (in function declarations) removed
 
	
2002-04-21  Murray Cumming  <murrayc@usa.net>

	* gtkmmproc now parses _WRAP_CORBA_METHOD() and emits a suitable
	_CORBA_METHOD() m4 macro. This is for libbonobomm, which
	implements that m4 macro. This is not the ideal place for this,
	but it's easier to do the text processing in perl here than in m4 
	later.

2002-04-21  Murray Cumming  <murrayc@usa.net>

	* tools/m4/WrapParser.m4: Don't hardcode _CLASS_GTKOBJECT, 
	_CLASS_GOBJECT, etc - just check for the _CLASS prefix. This
	allows other packages to implement other _CLASS
	macros following the same pattern. e.g. _CLASS_BONOBOOBJECT in
	libbonobomm.
	* tools/m4/class_gerror.m4 renamed to gerror.m4, and renamed
	_CLASS_GERROR to _WRAP_GERROR, because it doesn't follow the
	_CLASS_* macro pattern.

2002-04-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/container.{ccg,hg} (Gtk::Container): Clean up
	foreach(), and rename ForeachCallback to ForeachSlot.  Make
	use of foreach() to simplify show_all_children().
	* gtk/src/fileselection.hg (Gtk::FileSelection): Change the
	return type of get_filename() to std::string, since it doesn't
	return a UTF-8 string.  Add missing get_selections() wrapper.

2002-04-19  Murray Cumming  <murrayc@usa.net>

	* /build_shared/Makefile_build.am_fragment:
	Fix for Solaris/Forte link error: removed -no-undefined argument, 
	which seems to cause the -z defs argument to be supplied, which
	seems to lead to linker errors.
	The same fix was recently applied to libsigc++.

2002-04-16  Martin Schulze  <MHL.Schulze@t-online.de>

	* gdk/src/types.{ccg,hg}: Change Gdk::Point into a real
	wrapper using _CLASS_GENERIC and handcoding gobj() and wrap().

2002-04-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/thread.cc (Glib::StaticMutex::operator Mutex&):
	Don't assume GStaticMutex is a struct.  On Win32, for instance,
	it's just a typedef to struct _GMutex*.

	* glib/glibmm/main.h: Add missing CppObjectType and BaseObjectType
	typedefs in Glib::MainLoop and Glib::MainContext.
	* glib/glibmm/main.cc: Check whether the fds vector is empty in
	MainContext::query() and MainContext::check().  Also, simplify
	the code a little.

2002-04-18  Murray Cumming  <murrayc@usa.net>

	* Gtk::Adjustment constructor now set the value. Bug #79128
	reported by co2b@ceres.dti.ne.jp.

2002-04-18  Murray Cumming  <murrayc@usa.net>

	* gtk/gtkmm/stock.cc: The BuiltinStockID constants are now set
	from the GTK+ #define macros, not by duplicating the text to which
	those macros are defined.
	* Examples updated for namespaced enums and stock ids.

2002-04-18  Murray Cumming  <murrayc@usa.net>

	* Some GObject-based wrappers had public constructors. Now they don't.

2002-04-18  Murray Cumming  <murrayc@usa.net>

	* tools/m4/class_shared.m4: gtkmm's derived gtype names are now
	just the base gtype name prefixed with "gtkmm__". This will allow
	libglade to instantiate the appropriate gobject for
	libglademm. These gobjects will have hooks to our C++ instances
	after Glib::wrap() is called on them to create the C++ instance.

2002-04-17  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeView: Changed some functions to use SigC::Slots rather
	than function pointer callbacks.

2002-04-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/main.cc: Implement MainContext::wakeup(), rather
	than just declaring it.  Reported by Erwin Rol <erwin@muffin.org>.

2002-04-17  Murray Cumming  <murrayc@usa.net>

	* API review of Gtk::Toolbar, adding some _IGNORE()s and
	implementing some methods and properties.

2002-04-16  Martin Schulze  <MHL.Schulze@t-online.de>

	In the following function definitions occurencies of
	"const Glib::ustring& stock_id" were changed to
	"const Gtk::StockID& stock_id":

	* gdk/src/dragcontext.hg: Gtk::DragContext::set_icon()
	* gtk/src/toolbar.{ccg,hg}:
	Gtk::Toolbar_Helpers::Element::Element(),
	Gtk::Toolbar_Helpers::StockElem::StockElem()
	* gtk/src/image.{ccg,hg}: Gtk::Image::Image(),
	Gtk::Image::set(), Gtk::Image::get_stock()
	* gtk/src/widget.hg: Gtk::Widget::render_icon(),
	Gtk::Widget::drag_source_set_icon()
	* gtk/src/iconset.{ccg,hg}: Gtk::IconSet::lookup_default()
	* gtk/gtkmm/stock.{cc,h}: Gtk::Stock::lookup()

	* tools/m4/convert_gtk.m4: Add conversion from
	"const Gtk::StockID&" to "const char*"
	
2002-04-16  Murray Cumming  <murrayc@usa.net>

	* Removed lots of gtk C header includes, by generating struct
	prototypes for gobject and boxedtype wrappers. There's probably
	still a few more to remove.

2002-04-15  Murray Cumming  <murrayc@usa.net>

	* Gtk::AccelGroup: Added signals
	* Added a couple more _IGNORE()s.

2002-04-15  Martin Schulze  <MHL.Schulze@t-online.de>
 
	* gtk/src/menuitem.{ccg,hg}: Add "explicit MenuItem(Widget& widget)"
	constructor. It creates a MenuItem with "widget" as its child.

	* gtk/gtkmm/menu_elems.{cc,h}: Add "Element(MenuItem& child)"
 	constructor. It creates a MenuItem with "widget" as its child.
 	Implement ImageMenuElem. Change StockMenuElem constructors to
 	take a "const Gtk::StockID&" rather than a "const Glib::ustring&"
	
2002-04-15  Murray Cumming  <murrayc@usa.net>

	* Dealt with a few TODO comments in the .hg files, adding
	Atk::StateSet::add_states() and contains_states()
	
1.3.11:

2002-04-13  Daniel Elstner  <daniel.elstner@gmx.net>

	* gdk/gdkmm.h: Remove #include <gdkmm/main.h>.  Bug reported
	by Kfir Ozer.
	* demos/gtk-demo/Makefile.am: Add pixmap files to EXTRA_DIST.
	Reported by Kfir Ozer.

	* configure.in: Only check for Perl if maintainer-mode is
	enabled, and use autoconf macros for the version check.

	* configure.in: Bump version to 1.3.11.

2002-04-13  Murray Cumming  <murrayc@usa.net>

	* glib/glibmm-2.0.pc.in: glibmm now requires gobject. This fixes
	a linker problem when using glibmm without gtkmm. Bug reported by
	Kfir Ozer.

1.3.10:
	
2002-04-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/button.hg: Make the Doxygen @example tag work, just by
	using buttons.h as example file.  It doesn't work with buttons.cc,
	because that file doesn't mention Gtk::Button anywhere.  Note the
	use of a /*! ... */ (Qt-style) comment block: with /** ... */, the
	brief description got lost somehow.
	* docs/reference/Doxyfile.in: Replace ../../examples with
	@top_srcdir@/examples.
	* gtk/src/buttonbox.hg: Put the anonymous enum that defines
	BUTTONBOX_DEFAULT into the gtkmmEnums group.  Also, remove
	obsolete comment about the possible values of GtkButtonBoxStyle.

2002-04-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* docs/reference/Makefile.am: Delete the html directory before
	running Doxygen, to avoid outdated files in the documentation.

2002-04-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* build_shared/Makefile_build_gensrc.am_fragment: Add new
	target "cvsignore" for quick'n'easy auto-generation of
	$(srcdir)/.cvsignore and $(srcdir)/private/.cvsignore.

	(There was a simple *.cc *.h pattern in gtk/gtkmm/.cvsignore.
	I don't think that's a good idea, since some of the sources
	aren't built.  Also, the '?' on cvs update is quite helpful,
	for instance as a reminder to delete those files before running
	Doxygen.  "make cvsignore" will do the job for you now.)

2002-04-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* gdk/src/pixbuf.hg (Pixbuf::save): Use Glib::StringArrayHandle
	instead of Glib::SArray.
	* gdk/src/pixbuf.ccg (Pixbuf::save): Call gdk_pixbuf_savev()
	instead of gdk_pixbuf_save(): the latter just forwards to
	gdk_pixbuf_savev() anyway, thus there's no reason to use the
	ugly varargs function at all.

2002-04-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/main.cc (SignalIO::connect): wrap(context_)
	should have been called with take_copy=true.  But instead of
	doing so, just call g_source_attach() directly, which avoids
	the unnecessary referencing.
	* glib/glibmm/main.{cc,h}: Clean up the code a bit, and add
	more documentation.
	* glib/glibmm/containers.h: Hide the entire header from Doxygen.

2002-04-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/progressbar.hg: Remove accessors for deprecated
	properties, as well as the ProgressBar(Adjustment&) ctor.
	* examples/idle/idle.cc, examples/progressbar/progressbar.cc:
	Fix examples to work with the new ProgressBar interface.
	* glib/glibmm/main.h: Use PRIORITY_DEFAULT_IDLE as default
	priority argument to SignalIdle::connect().

2002-04-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/arrayhandle.h:
	Add ArrayHandleIterator<Tr>::operator[], just to be complete.

2002-04-07  Martin Schulze  <MHL.Schulze@t-online.de>

	* glib/glibmm/main.{cc,h}: Add Glib::IOSource, Glib::SignalIO,
	Glib::signal_io() and Glib::MainContext::signal_io() for polling
	file descriptors or the OS's equivalent.

2002-04-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* build_shared/Makefile_build.am_fragment: Define
	{G,GDK,GTK}_DISABLE_DEPRECATED when building gtkmm.

	* gdk/gdkmm/main.{cc,h}, gdk/src/font.{ccg,hg}: Deprecated.
	Surround entire headers by #if 0 / #endif, and exclude them
	from the build.
	* gdk/src/colormap.hg, gdk/src/drawable.hg, gdk/src/window.hg:
	Remove wrappers of deprecated functions.

	* gtk/src/progress.{hg,ccg}: Deprecated.  Surround entire
	header by #if 0 / #endif, and exclude it from the build.
	* gtk/src/progressbar.hg, tools/m4/class_shared.m4:
	Gtk::ProgressBar now derives directly from Gtk::Widget.  In
	class_shared.m4, use (CppClassParent::BaseClassType*) instead
	of (BaseClassParent*) when calling the gtkmm base class' init
	function.
	* gtk/src/container.hg, gtk/src/notebook.hg, gtk/src/object.ccg,
	gtk/src/object.hg, gtk/src/progressbar.hg, gtk/src/rc.ccg,
	gtk/src/rc.hg, gtk/src/style.ccg, gtk/src/style.hg,
	gtk/src/tooltips.hg: Remove wrappers of deprecated functions.

2002-04-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/pm/DocsParser.pm: Convert the C documentation to C++,
	i.e. replace references to types or functions where possible.
	Move the Doxygen comment generation out of the parser callbacks
	and into lookup_documentation().  Also, parse the parameter and
	return value descriptions as well.
	* tools/pm/Object.pm: New perl module for parsing (define-object)
	defs.  This is currently used only by DocsParser.pm, but might be
	useful elsewhere as well.  For instance, we could add sanity
	checks to _WRAP_CTOR, to ensure a property actually exists in
	the class or one of its base classes.
	* tools/pm/GtkDefs.pm: Add new subs lookup_object() and
	lookup_method_dont_mark(), for use by DocsParser.pm.

	* tools/pm/Function.pm (get_refdoc_comment): Generate a prototype
	instead of @param tags for each parameter.  The reasons are:
	1) Doxygen complains since the @param tags don't correspond
	to actual parameters of our signal accessors.
	2) @param is for documentation of parameters, but we just
	mentioned the argument type.  This style doesn't correspond
	to our other documentation either.
	3) A prototype is just much easier to read.  Also, think of
	cut'n'paste into source code.

	* tools/pm/Enum.pm, tools/pm/Output.pm: New sub beautify_values(),
	stripping enum values if they aren't needed, to make the docs less
	noisy.  Move the hack for GdkEventType into Enum.pm.
	* tools/pm/WrapParser.pm (output_wrap_enum): Look back if there
	was a Doxygen comment in front of _WRAP_ENUM.  If so, strip it
	from the output and pass it to the m4 _ENUM macro instead.
	* tools/m4/enum.m4: Put all enums and corresponding bitwise
	operators into a separate Doxygen group, e.g. gtkmm_Enums if the
	module is gtkmm.  Don't use @relates for the operators, because
	Doxygen doesn't support it for enums.  Instead, mention them in
	the docs of the corresponding enum type, in a separate paragraph.
	* gtk/src/enums.hg: Rename IconSizeBuiltin to BuiltinIconSize.

	* docs/reference/beautify_docs.pl, docs/reference/Makefile.am:
	New perl script to modify the html generated by Doxygen, in favor
	of our coding style.  For instance, it replaces "Foo &bar" with
	"Foo& bar" in prototypes.  I tried to hack Doxygen itself instead,
	but the code is horrible (not to mention the Qt specific stuff), and
	it seems to rely in several places on a certain prototype format.

2002-04-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/base.m4: Introduce more alternative names for m4
	built-in macros: _TRANSLIT, _PATSUBST and _REGEXP.  The old
	ones are still there, to allow slow transition.  Also unify
	the _PH_INCLUDE and _CC_INCLUDE macros.
	* tools/m4/base.m4, tools/m4/class_boxedtype*.m4:  Define new
	shared utility macro _GET_TYPE_FUNC in base.m4, and use it
	instead of a custom __GET_TYPE__ macro in the other m4 files.

2002-04-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treeiter.ccg, gtk/src/{list,tree}store.ccg:
	Fix crash in erase() after erasing the last row.
	* gtk/src/treeiter.hg, gtk/gtkmm/treemodelcolumn.h:
	Add documentation.

2002-04-02  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/value.{cc,h}: Use Glib::RefPtr<Glib::ObjectBase>
	as return type of get_object_copy(), to avoid a leaked
	reference if the dynamic_cast<> fails.

2002-04-02  Murray Cumming  <murrayc@usa.net>

	* Updated examples for new namespace enums.

2002-04-02  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/base.m4: Add temporary extern "C" kludge for
	gdk/gdkenumtypes.h.  Should be removed if GDK has been fixed.
	* glib/glibmm/utility.h, glib/glibmm/value.cc,
	tools/m4/class_boxedtype_static.m4: #define and use the helper
	macro GLIBMM_INITIALIZE_STRUCT.  If supported, the macro makes
	use of compound literals to assign { 0, } to a struct variable.
	* tools/pm/WrapParser.pm: Don't eat the line following #m4.
	* tools/m4/convert_gtk.m4, gtk/src/scale.hg: Move the
	ustring->gchar* conversion that calls g_strdup() into scale.hg,
	and add a comment about it.  I think this should not be in the
	generic convert_gtk.m4 file, which is included everywhere.  It
	could have been used silently somewhere else by accident.
	* tools/pm/gtkmmproc.in, tools/pm/Output.pm: Use the configure
	substitution @M4@, instead of m4 directly.  It could be gm4 on
	some Unices, for instance.
	* tools/pm/Output.pm: Major cleanup of write_sections_to_files().
	It's about half of the original code size now.
	* gtk/src/preview.{ccg,hg}: Deprecated.  Surround the entire file
	by #if 0 / #endif, and no longer include it in the build.

2002-04-01  Daniel Elstner  <daniel.elstner@gmx.net>

	Redesign of Glib::Value and Glib::PropertyProxy
	-----------------------------------------------

	* glib/glibmm/value.{cc,h}: Move generic GValue wrapper into
	class ValueBase.  Replace the overloaded get/set methods by
	specializations of Glib::Value<T>.
	* glib/glibmm/value_basictypes.{cc,h}.m4: Auto-generate the
	Value<T> specializations for fundamental types (e.g. int).
	* tools/m4/class_*.m4: Generate get_base_type() static method,
	to retrieve the GType of the underlying GObject.  This is used
	by the Value<T> specializations for Object pointers.
	* glib/glibmm/property_proxy*.{cc,h}: Use the new Glib::Value<T>
	interface in PropertyProxy<T>, and its _ReadOnly/_WriteOnly
	variants.  The specialized PropertyProxy_Foo classes (e.g. for
	RefPtr) are no longer needed.  Also, derive public from
	PropertyProxy_Base, to allow implicit upcasting.
	* tools/pm/Output.pm, tools/m4/property.m4: Remove all
	PropertyProxy suffixes, except for _ReadOnly/_WriteOnly.
	Note that you now have to pass the complete type to the
	_WRAP_PROPERTY macro, e.g. Glib::RefPtr<Gdk::Bitmap>.

	Implement enum and flags wrapping
	---------------------------------

	* tools/enum.pl: Several fixes and changes, improving the
	correctness and style of the generated defs.  To be able to
	distinguish between the standard enum defs and our special gtkmm
	variation, output define-enum-extended instead of define-enum.
	* pango/src/pango_enums.defs, atk/src/atk_enums.defs,
	gdk/src/gdk_enums.defs, gtk/src/gtk_enums.defs: New .defs
	files containing our extended enum and flags definitions.
	* tools/pm/Enum.pm, tools/pm/Output.pm, tools/pm/WrapParser.pm,
	tools/pm/GtkDefs.pm: Implement defs parser for enums and flags,
	and incorporate it into the code generator.
	* tools/m4/enum.m4: Implement the _ENUM macro.  Apart from the
	enum definition, it also generates a specialization of Value<T>
	for each enum type.  For bitflags enum types, the convenience
	operators | & ~ are generated, too.

	* tools/m4/convert*.m4: Define _CONV_ENUM convenience macro,
	and use it for all wrapped enum types.
	* */*/*: Use _WRAP_ENUM to wrap all flags enum and types used.
	Replace almost all occurences of C enums by C++ enums.
	* gtk/src/enums.{ccg,hg}: New files containing shared enum
	definitions.
	* gtk/src/enums.{ccg,hg}, gtk/src/iconfactory.{ccg,hg}:
	Implement Gtk::IconSize as class rather than enum type, since
	new icon sizes can be added at runtime.  Gtk::IconSize behaves
	like a usual enum, though.  The actual GtkIconSize enum is
	wrapped as Gtk::IconSizeBuiltin.
	* gtk/gtkmm/stock.{cc,h}: Wrap all GTK_STOCK_FOO macros as
	Gtk::Stock::FOO.  Add a simple BuiltinStockID struct to hold
	the predefined stock ids.  This allows overloading of the
	Gtk::Button ctor for BuiltinStockID, to increase convenience.

	* demos/pixbuf-demo.cc, demos/gtk-demo/*.{cc,h}: Search/replace
	changes to use the new C++ enum values.

	TreeModel and TreeIter API improvements
	---------------------------------------

	* gtk/src/treeiter.{ccg,hg}: Extend Gtk::TreeIter to support
	operator++ as well as [begin,end) ranges.  The implementation of
	the latter is quite hacky; documentation coming soon.  Also add
	Gtk::TreeIterChildren class, representing a 'virtual' container
	of child nodes.
	* gtk/src/treemodel.{ccg,hg}, gtk/src/treestore.{ccg,hg},
	gtk/src/liststore.{ccg,hg}: Provide a more STL-like interface.
	For instance, insert/insert_before/insert_after has been replaced
	by a single insert() method with the same functionality.  Adapted
	the code to support the new Gtk::TreeIter: Unfortunately, the code
	needed to emulate [begin,end) ranges is quite fragile.
	* gtk/gtkmm/treemodelcolumn.{cc,h}: Implement the template class
	Gtk::TreeModelColumn, used to bind a column data type to a column
	number.  Gtk::TreeModelColumnRecord is used to store a vector of
	TreeModelColumns.
	* gtk/src/treemodel.{ccg,hg}, gtk/src/treestore.{ccg,hg},
	gtk/src/liststore.{ccg,hg}: Reimplement set_value() / get_value()
	using the new Glib::Value<> interface.  The new methods now use a
	TreeModelColumn<T> instead of the column index.  The cell type
	will be deducted implicitly from the TreeModelColumn passed in.
	Thus, the API is now type-safe, and get_cell() doesn't need to
	use an output argument.
	* gtk/src/treeviewcolumn.{ccg,hg}: New convient method overload
	add_attribute(PropertyProxy_Base, TreeModelColumnBase).
	* demos/gtk-demo/*.cc: Modify to use the new TreeModel API.

	Gdk::Window, Gdk::Pixmap, Gdk::Bitmap fixes
	-------------------------------------------

	* tools/m4/class_*.m4: Add support for 2 optional arguments to
	the _CLASS_* macros: __REAL_CNAME__ and __REAL_CPARENT__, and use
	those in place of __CNAME__ and __CPARENT__.  Only the cast ctor
	and Glib::wrap() still use the 'unreal' types.
	* gdk/src/window.hg: Use GdkWindowObject as real C instance type.
	* gdk/src/pixmap.hg: Use GdkPixmapObject as real C instance type.
	* gdk/src/bitmap.hg: Use GdkPixmapObject as real C instance and
	parent instance type.

	Loosely related fixes and modifications
	---------------------------------------

	* tools/pm/Output.pm: Apparently, expressions like ($1 eq "#t")
	don't result in either 0 or 1, but in "" or 1.  That caused the
	the property code to never apply _ReadOnly/_WriteOnly suffixes.
	Replace the ($foo eq 0) tests by ($foo ne 1) to get around it.
	* tools/m4/base.m4: Define new macro _CC_INCLUDE to #include a
	header at the top of the .cc file.  The macro magically prevents
	multiple #includes of the same header.
	* tools/m4/base.m4: Rename several m4 builtins to something less
	likely to clash with our code.  I ran into this problem with the
	index() macro, but other ones look problematic too.
	* tools/m4/class_opaque_refcounted.m4: Add comments to explain
	the reasoning for the reinterpret_cast<>.
	* gdk/gdkmm/types.{cc,h}, gdk/src/types.{ccg,hg}: Move the code
	into .ccg/.hg files in the src directory.

2002-04-01  Murray Cumming  <murrayc@usa.net>

	* _DEFS() macros in *.hg files are now used like so:
	_DEFS(modulename,defsname) - e.g. _DEFS(gtkmm,gtk).
	The greater flexibility is needed by libbonobouimm.
	* Added _STRUCT_NOT_HIDDEN which prevents generation of
	forward references for Bonobo, which doesn't use the 
	"typedef struct _SomeStruct SomeStruct" system.

2002-03-25  Daniel Elstner  <daniel.elstner@gmx.net>

	Completely reworked the BoxedType wrappers.  Short summary:

	1) the Glib::BoxedType base class has been removed
	2) simple assignable structs are no longer allocated dynamically
	3) new separate wrapper macros for non-BoxedType opaque structs
	4) automatic generation of relational operators is now separated
	   from the BoxedType wrappers

	* tools/m4/class_boxedtype.m4: Generate static get_type() method,
	to match the other wrappers.  Remove is_null() and operator bool(),
	because they're too internal -- those might be implemented
	individually if the need should arise.  Remove ability to wrap
	foo_type_equal() functions.
	* tools/m4/class_boxedtype_static.m4: New _CLASS_BOXEDTYPE_STATIC
	macro for simple assignable structs like GdkRectangle.  Similar to
	_CLASS_BOXEDTYPE, but the C struct is not allocated dynamically.
	* tools/m4/class_opaque_copyable.m4: New _CLASS_OPAQUE_COPYABLE
	macro for opaque structs with corresponding copy/free functions.
	Very similar to _CLASS_BOXEDTYPE, but without a get_type() method.
	* tools/m4/class_opaque_refcounted.m4: New _CLASS_OPAQUE_REFCOUNTED
	macro for reference-counted opaque structs.  The C++ wrappers are
	not instantiateable and can only be used with Glib::RefPtr<>.
	* tools/m4/class_generic.m4: New _CLASS_GENERIC macro to wrap
	structs which don't fit into any specialized category.  Currently,
	it is only needed to wrap PangoLayoutIter.
	* tools/m4/compare.m4: New macros to generate relational operators:
	_WRAP_EQUAL implements only == and != via a foo_equal() function.
	_WRAP_COMPARE implements all relational operators via foo_compare().
	_WRAP_EQUAL_AND_COMPARE implements == and != via foo_equal(), and
	the remaining operators via foo_compare().
	* tools/pm/WrapParser.pm: Add new _CLASS macros.
	* tools/m4/base.m4: Include new macro files, and generate slightly
	more readable code.
	* glib/glibmm/wrap.h: Remove unwrap_boxed(), because it's useless.
	* glib/glibmm/boxedtype.h: Remove file.
	* glib/glibmm/propertyproxy_boxed.h: Don't use unwrap_boxed().
	* tools/m4/convert*.m4: Don't use unwrap_boxed().  Also adapt
	several type conversions.

	To keep the ChangeLog readable, the changes to the source
	files to use the new wrapper macros aren't listed in detail.

	* pango/src/*.{ccg,hg}, gdk/src/*.{ccg,hg}, gtk/src/*.{ccg,hg}:
	Use the reworked BoxedType wrappers.  For all BoxedType wrappers
	that actually aren't BoxedTypes, use one of the new generic
	wrapper macros instead.  Make use of _WRAP_EQUAL/_WRAP_COMPARE.

	* demos/gtk-demo/example_stockbrowser.cc: Use the bool return
	value of Stock::lookup() instead of StockItem::operator bool()
	and StockItem::is_null().

2002-03-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* gdk/gdkmm/types.{cc,h}: Delete the old GDK wrappers.  Add simple
	Gdk::Point wrapper struct.

2002-03-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/main.{cc,h}: Make Glib::MainLoop an opaque and
	underiveable class, to be used with Glib::RefPtr<> only.  That
	avoids having copy operations which actually don't copy by value.
	* glib/glibmm/main.{cc,h}: Replace the MainContext helper methods
	create_timeout_source() and create_idle_source() by signal proxy
	classes + accessor methods.  For convenience, also add global
	accessor functions which access the app's default MainContext.
	* demos/pixbuf-demo.cc: Use the new Glib::signal_timeout() accessor.

2002-03-24  Murray Cumming  <murrayc@usa.net>

	* Fixed the rulers example, and added comments to
	examples/Makefile.am saying why the other broken
	examples are still broken.

2002-03-24  Murray Cumming  <murrayc@usa.net>

	* Added Gtk::Window::raise() so that people don't need to 
	access the Gdk::Window just to bring the window to the front.

2002-03-23  Murray Cumming  <murrayc@usa.net>

	* Generated interface vfunc wrappers are now properly const. 

2002-03-22  Murray Cumming  <murrayc@usa.net>

	* Added wrappers for GtkTreeSortable, GtkDragDest and
	GtkDragSource interfaces, used by Gtk::ListStore and 
	Gtk::TreeStore.
	* Added class documentation for several TreeView-related
	classes.

2002-03-22  Murray Cumming  <murrayc@usa.net>

	* Gdk::Pixbuf: render* method args are now const-correct,
	as suggested by Martin Schultze. Also added 
	Gdk::Pixbuf::render_threshold_alpha().

2002-03-21  Martin Schultze  <MHL.Schulze@t-online.de>

	* Added Gdk::Color::rgb_find_color() as wrapper for
	gdk_rgb_find_color().

2002-03-21  Murray Cumming  <murrayc@usa.net>

	* Added Paolo Pinto's header and footer html fragments to
	reference documentation.

2002-03-21  Murray Cumming  <murrayc@usa.net>

	* Added some more class documentation, copied from GTK+ with
	some slight editing.
	* Made Gtk::Container::add() virtual so that it could be 
	overriden in Gtk::ScrolledWindow to use gtk_container_add()
	or gtk_scrolled_window_add_with_viewport(), depending on the
	child widget's capabilities. 
	Gtk::ScrolledWindow::add_with_viewport() has therefore been 
	removed.

2002-03-20  Murray Cumming  <murrayc@usa.net>

	* .hg files no longer need to use _CTOR_CAST or _DTOR. These
	are now automatic.

2002-03-20  Murray Cumming  <murrayc@usa.net>

	* Regenerated gtk_signals.defs, trying to keep the manual
	changes.
	* Gtk::Paned: Added signals.

2002-03-19  Murray Cumming  <murrayc@usa.net>

	* Gtk::MessageDialog: changed args order in constructors, to
	allow for GTK_MESSAGE_INFO and GTK_BUTTONS_OK as defaults.

2002-03-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/editable.hg:  Remove the length argument from the
	insert_text C++ signal/vfunc.  Passing the length in bytes is
	error-prone, and Glib::ustring maintains its size itself anyway.
	A lot of messy m4 stuff was needed to cope with the different
	count of arguments, if we need it regularly we should think
	about extending the source generator.

2002-03-18  Murray Cumming  <murrayc@usa.net>

	* demos/gtk-demo/example_stockbrowser.cc:
	Some more reformatting and extra comments.
	* Added default parameter values to Gtk::Widget::render_icon() and
	Gtk::TreeViewColumn::pack_start() and pack_end().

2002-03-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/ustring.{cc,h}: Add is_ascii() utility method.
	Rename strup() and strdown() to uppercase() and lowercase(),
	respectively, to improve code readability.
	* demos/gtk-demo/example_stockbrowser.cc (id_to_macro):
	Use the Glib::ustring interface with STL algorithms.

2002-03-17  Murray Cumming  <murrayc@usa.net>

	* Used unwrap_boxed() in PropertyProxy_Boxed, instead of 
	unwrap().

2002-03-17  Matthew Walton  <mxw00u@cs.nott.ac.uk>

	* Rewrote the stock-browser part of gtk-demo, using normal
	techniques instead of attempting to translate the hack that's in
	the C original. It actually works now.

2002-03-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/refptr.h (operator=): Don't do an implicit
	static_cast<> of the pointer type.  You should use
	RefPtr<>::cast_static() instead if you need it.
	* gtk/src/treemodel.hg (get_value_object): Don't rely on
	the implicit RefPtr<> static_cast, which has been removed.
	* gtk/src/treemodel.hg (get_value_boxedtype): This one was
	utterly broken.  Obviously nobody tried using it yet.
	* examples/exception/exceptiontest.cc: Add missing
	#include <glibmm/exceptionhandler.h>.

2002-03-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtk/src/treeselection.ccg (get_selection): Add missing
	take_copy=true to Glib::wrap(pModel, true).
	* docs/reference/Doxyfile.in: Remove the function macro kludge
	that was needed to deal with GTKMM_USING_STD().  The current
	Doxygen release seems to handle it fine now.

2002-03-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/template.macros.m4: Use _GLIBMM instead of
	SIGCXX as include guard prefix.
	* glib/glibmm/signalproxy.{cc,h.m4}: Remove the glib callbacks
	from the SignalProxy# templates, and get rid of the void and bool
	specializations.  SignalProxyNormal now stores a pointer to a
	SignalProxyInfo struct, which contains the signal name and pointers
	to callback functions.  Thus, callbacks no longer have to be exposed,
	and signal proxies doing type conversion can now be implemented
	without creating special SignalProxyCustom classes.
	* tools/m4/base.m4: Add new anonymous namespace section, and
	comment out the custom signal proxy stuff.
	* tools/m4/class_*.m4: Comment out custom signal proxy stuff.
	* tools/m4/signal.m4, tools/pm/WrapParser.pm, tools/pm/Output.pm: 
	Merge signal proxy and custom signal proxy generation.  The
	macro _SIGNAL_PROXY() now generates custom callbacks and the
	SignalProxyInfo struct for each signal.
	* tools/m4/signal.m4, tools/m4/vfunc.m4: Beautify generated source.
	Replace the g_warning() on a NULL base class by g_assert().

2002-03-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/propertyproxy_enum.{cc,h},
	glib/glibmm/propertyproxy_flags.{cc,h}: New PropertyProxy_Enum
	and PropertyProxy_Flags classes: we need them because get_value()
	of the generic PropertyProxy doesn't compile with enum types.  This
	also reduces the binary size, because enums are internally stored as
	plain int, thus the real implementation can go into a .cc file.
	* tools/pm/Output.pm:  Add necessary property class suffixes for
	GParamEnum and GParamFlags.
	* glib/glibmm/propertyproxy_base.cc: Implement reset_value()
	here, it doesn't need to be exposed in a header file.
	* glib/glibmm/propertyproxy_boxed.cc,
	glib/glibmm/propertyproxy_refptr.cc: New files, implementing
	PropertyProxy_Boxed_Base and PropertyProxy_RefPtr_Base.
	* glib/glibmm/propertyproxy_boxed.h,
	glib/glibmm/propertyproxy_refptr.h: Move the real implementation
	into _Base classes, to avoid exposing it in the header files.
	* glib/glibmm/propertyproxy*.{cc,h}: Add missing methods to special
	PropertyProxy_* classes, i.e. operator=(), the conversion operator,
	reset_value() and signal_changed().  Delete space between operator
	and = in operator=(): the space is not valid C++.  Also, some style
	fixes and unifications.
	* glib/glibmm/Makefile.am: Add new propertyproxy*.{cc,h} files.
	* glib/glibmm/value.{cc,h}: Replace get_flags(gpointer&) with
	get_boxed(gpointer&): that was probably a typo.
	* glib/glibmm/refptr.h: Replace cast_static<>() and cast_dynamic<>()
	member templates with static templated methods.  The syntax of
	refptr.cast_static<Foo>() is not standard C++, and it seems to screw
	at least gcc3 if Foo is itself a template parameter.  The correct
	syntax would be refptr.template cast_static<Foo>(), but that looks
	freaky, and gcc2 doesn't accept it anyway.  The new syntax is:
	RefPtr<Derived> derived = RefPtr<Derived>::cast_static(base).
	* gtk/gtkmm/menu_elems.cc: Use new RefPtr<>::cast_dynamic syntax.
	* gtk/src/image.hg: For the "icon-set" property, use the C++ type
	Gtk::IconSet instead of GtkIconSet.

2002-03-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* pango/pangomm.h, atk/atkmm.h: New toplevel headers.
	* pango/Makefile.am, atk/Makefile.am: Install toplevel headers.
	* atk/src/object.hg: Add missing quote after property name:  The
	WrapParser seems to ignore it anyway, but it confuses vim's syntax
	highlighting.

2002-03-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/main.{cc,h}: Put Glib::MainContext into Glib::RefPtr<>,
	because it's closer to the original API, and the previously used
	copy-by-value semantics are a bit strange for this type.  Implement
	convenience methods MainContext::create_timeout_source() and
	MainContext::create_idle_source().
	* demos/pixbuf-demo.cc: Replace Gtk::Main::signal_timeout().connect()
	with Glib::MainContext::get_default()->create_timeout_source(), in
	order to demonstrate the new glibmm API.
	* glib/glibmm/fileutils.h, glib/glibmm/main.h, glib/glibmm/spawn.h:
	Fix convenience operator|() for bit-flag enums: the enum type must
	be casted to int, otherwise operator|() calls itself recursively.

2002-03-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* demos/gtk-demo/*: Use C++ types in signal handlers, so that
	the demos now build with the CustomSignalProxy API changes.

2002-03-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.in: Fix minimum GTK+ version number typo.
	* configure.in, build_shared/Makefile_build.am_fragment: Check
	for gthread-2.0 but don't require it.  Use GTHREAD_CFLAGS when
	building gtkmm, and GTHREAD_LIBS for the thread examples.
	* glib/glibmm/threadpool.{cc,h}: New GThreadPool wrapper.
	* examples/thread/threadpool.cc: New example.
	* glib/glibmm/thread.h: Minor documentation changes.
	* glib/glibmm/ustring.{cc,h}: Rename std_string() to raw(), because
	that's what it does: it returns the UTF-8 data as raw byte sequence.
	In the stream I/O operators, remove the silly special-casing for
	cin/cout/cerr, and always convert to the current locale instead.
	The old behaviour was just confusing and could lead to unexpected
	results.  Coders should use ustring::raw() if they want to store
	strings always in UTF-8 encoding.
	* gtk/src/widget.{ccg,hg}: Add a Widget::intersect() overload
	without a destination rectangle parameter.

2002-03-13  Murray Cumming <murrayc@usa.net>

	* Implemented merging of C GTK+ documentation, mostly in 
	tools/pm/DocsParser.pm:
	- People developing from cvs will need the XML::parser perl module:
	http://wwwx.netheaven.com/~coopercc/xmlparser/XML-Parser-2.30.tar.gz
	- But the documentation will not actually be used unless you give 
	the --enable-fulldocs option to autogen.sh or configure.	
	- gtk_docs.xml is generated with pygtk/codegen/docextract_to_xml.py.
	It has documentation for each GTK+ code that might be wrapped, taken
	from the GTK+ source code.
	- gtk_docs_override.xml is written manually. It contains replacement
	documentation when the C documentation is inappropriate. Some of the
	documentation that is now in our .hg files should be moved into this 
	file.
	- Similarly named files should be created for atkmm/pangomm/gdkmm.
	
2002-03-13  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/exceptionhandler.cc (exception_handlers_invoke):
	Check for dead slots.  I suddenly understood Karl's comment:
	Calling an empty slot would mean ignoring any exception.

2002-03-13  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/exceptionhandler.cc: In the slot disconnection code,
	correctly handle the unlikely but possible case of multiple
	identical slots in the handler list.
	* glib/glibmm/thread.h: More documentation.

2002-03-12  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/main.{cc,h}: New wrappers of GMainLoop, GMainContext,
	GSource, etc.
	* glib/glibmm/miscutils.{cc,h}: New miscellaneous utilities.
	* glib/glibmm/pattern.{cc,h}: New shell pattern matching stuff.
	* glib/glibmm/random.{cc,h}: New GRand wrapper, a random number
	generator.
	* glib/glibmm/shell.{cc,h}: Some new shell-related utilities.
	* glib/glibmm/spawn.{cc,h}: New wrappers for easy and portable
	process spawning.
	* glib/glibmm/thread.{cc,h}: New wrapper of GLib's portable
	thread interface.  The C++ API should be a lot easier to use.
	* glib/glibmm/timer.{cc,h}: Add g_usleep() wrapper.
	* glib/glibmm/timeval.{cc,h}: Simple wrapper of GTimeVal, which
	is itself just a portable struct tm replacement.
	* glib/glibmm.h, glib/glibmm/Makefile.am: Add new files.
	* glib/glibmm/wrap_init.cc: Register new GError domains.
	* glib/glibmm/containerhandler_shared.h: Specialize TypeTraits
	for std::string, too.
	* examples/thread/*, examples/Makefile.am, configure.in: Replace
	the old threads example by something sane, using the new glibmm
	threading interface.  Also, include it in the examples build.

	* glib/glibmm/error.cc, gtk/src/main.ccg: In Error::register_init(),
	call Glib::wrap_init() to make sure that at least the Glib exceptions
	are registered at this point.  If needed, invoke register_init() from
	throw_exception().  Also, remove the Glib::wrap_init() call from
	Gtk::Main::init().  Thus, most of the glibmm utilities (all but the
	GObject type system) can now be used before instantiating Gtk::Main,
	or even without using Gtk::Main at all.
	* glib/glibmm/exceptionhandler.cc: Remove the ExceptionListInfo class
	and access the list directly, because it isn't really needed, and the
	extra indirection complicated the code.  Implement a connection class
	to allow disconnection of exception handlers.  Use thread-specific
	handler lists, to avoid reentrancy issues.  (Glib::StaticPrivate
	works fine even if threads are disabled.)
	* examples/exception/exceptiontest.cc: Demonstrate the different
	behaviour on Glib::Error exceptions, and also show off the new
	disconnection facility of the global exception handler system.

	* gtk/src/main.hg: Use G_PRIORITY_DEFAULT_IDLE instead of the
	deprecated GTK_PRIORITY_DEFAULT.  Replace guint32 interval by
	guint interval, to match the C API.
	* build_shared/Makefile_gensrc.am_fragment: Make the source
	generation rule depend on gtkmmproc.in, rather than gtkmmproc.
	That avoids unecessary rebuilds just because ./configure ran.

gtkmm 1.3.8:
	
2002-03-11  Murray Cumming  <murrayc@usa.net>

	* Corrected typo in Gdk::Pixbuf::render_to_drawable() method
	name, as suggested by Barta Andras.

2002-03-09  Murray Cumming  <murrayc@usa.net>

	* Hid the whole of the custom SignalProxy classes from Doxygen,
	because I can't see how to insert them above the class comments.

2002-03-09  Murray Cumming  <murrayc@usa.net>

	* Reviewed all signals and changed them to to use C++ types where
	wrappers exist. Had to add a const override of wrap() for 
	BoxedTypes, so that we can generated temporary instances - that 
	might be a hack, or it might be a case of 2 different meanings of
	const.
	* This showed that it was necessary to use Glib::unwrap() instead
	of plain gobj() in conversions. It was also necessary to add
	Glib::unwrap_boxed().
	* Removed unnecessary Gtk:: from some parameter types, to reduce
	code size..

2002-03-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* Changed distribution policy for generated sources:
	Generated source files will now be included in the dist tarball,
	in order to avoid unnecessary dependencies on special tools.
	All source autogeneration rules are disabled by default, you
	should configure with --enable-maintainer-mode if you want to
	develop gtkmm (requires a writable source directory).  Use
	make maintainer-clean to delete all built sources.

	* examples/Makefile.am_fragment: Fix INCLUDES, and clean up
	the whole file a bit.

2002-03-09  Andreas Holzmann  <Andreas.Holzmann@epost.de>

	* Fixed OptionMenu to use the new menu API/system.
	
2002-03-09  Murray Cumming  <murrayc@usa.net>

	* Widget drag signals now use C++ types. Also added parameter
	names to the _event signals.

2002-03-08  Murray Cumming  <murrayc@usa.net>

	* After discovering that signals with C++ types were just
	casting incorrect C callbacks instead of doing any type
	conversion:
	Generate custom SignalProxy classes whenever the types 
	used in _WRAP_SIGNAL() are not the same as those in the 
	.defs file. These SignalProxies derived from the templated
	SignalProxies, but reimplement the callbacks and connect()
	methods. For instance, see Gtk::StatusBar.
	* You can minimise unnecessary conversions in
	tools/pm/GtkDefs.pm: types_are_equal().

2002-03-08  Patrick Crosby  <pcrosby@pobox.com>

	* demos: Corrected copy-pasted header comments, and
	use of local instead of class variable.

2002-03-02  Andreas Holzmann  <Andreas.Holzmann@epost.de>

	* Menu accelerator changes:
 	* examples/menu/{menu2.cc,stock.cc}: Fixed
	* gtk/gtkmm/accelkey.{cc,h}: Use gtk+ parse/unparse.
	* gtk/gtkmm/menu_elems.{cc,h}: Left justify Element label,
	StockMenuElem can set AccelKey.
	* gtk/src/imagemenuitem.ccg: Configure accel key when
	configured by stock id.
	* gtk/src/menubar.{ccg,hg}, gtk/src/menuitem.{ccg,hg},
	gtk/src/menushell.{ccg,hg}: Setup of accelerators fixed.
	* gtk/gtkmm/accelkey.{cc,hh}, gtk/gtkmm/menu_elems.{cc,hh}:
	Cleanup.
	* Enable changeable accelerators.

2002-03-06  Andreas Holzmann  <Andreas.Holzmann@epost.de>

	* gtk/src/gtk_signals.defs,gtk/src/settings.hg:
	Add missing Gtk::Settings properties, installed by objects that use
	GtkSettings, such as GtkMenu, and GtkToolbar.

2002-03-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* gdk/src/pixbuf.{ccg,hg} (Gdk::Pixbuf::save): Remove the bool
	return value: It just indicates an error, which means we throw
	an exception anyway.  Also add missing 0-terminator to the
	gdk_pixbuf_save() varargs list.

2002-03-05  Murray Cumming  <murrayc@usa.net>

	* Implemented wrappers for gdk_pixbuf_save() and gdk_pixbuf_save(),
	using the new Glib::Error exception wrappers.
	* Added Gtk::Container::show_all_children(), and used it in
	examples/buttons. This allows you to delay showing the window itself.

2002-03-04  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/exceptionhandler.{cc,h}: New files.
	* glib/glibmm/exception.{cc,h}: Move contents over to
	exceptionhandler.{cc,h}.  exception.{cc,h} now implements
	Glib::Exception, an abstract base class for all gtkmm exceptions.
	* glib/glibmm/error.{cc,h}: Derive Glib::Error from
	Glib::Exception.  Implement an exception factory: each
	GError domain will be wrapped by its own exception class.
	* glib/glibmm/wrap_init.{cc,h}: New files, to register
	GError domains in the exception factory.

	* glib/glibmm/exceptionhandler.{cc,h}: Major cleanup.  Show
	a critical warning message if a Glib::Error exception has been
	caught in a signal handler, but invoke g_error() for all others.
	Rename exception_handler_throw() to exception_handlers_invoke().
	* glib/glibmm/signalproxy.h.m4, tools/m4/signal.m4,
	glib/glibmm/object.h: Change #includes, and replace all
	occurrences of exception_handler_throw().

	* glib/glibmm/convert.{cc,h}, glib/glibmm/date.{cc,h},
	glib/glibmm/ustring.cc: Modify to use the Glib::Error
	exception factory system.
	* glib/glibmm/fileutils.{cc,h}: New wrappers.  Implement
	Glib::FileError exception class.

	* tools/m4/class_gerror.m4: New _CLASS_GERROR() macro for
	auto-generating exception classes.
	* tools/generate_wrap_init.pl: Parse for _CLASS_GERROR() and
	generate code to register the exception classes.
	* tools/m4/Makefile.am, glib/glibmm/Makefile.am: Add new files.

	* gtk/src/main.ccg: Add exception guards to main signals. Simplify
	the code by using GSList* instead of std::list<>: This avoids
	problems with global objects, and reduces the amount of never-freed
	memory.

	* gdk/src/pixbuf.{ccg,hg}: Add Gdk::PixbufError exception wrapper.
	Throw an exception if Gdk::Pixbuf::create_from_file() fails.
	* demos/pixbuf-demo.cc: Make use of Glib::Error exceptions.

	* glib/glibmm.h, glib/Makefile.am: New toplevel header.
	* docs/reference/Doxyfile.in: Exclude wrap_init.h.

2002-03-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.in: Remove AC_CXX_IN_STD() checks.
	* scripts/cxx_in_std.m4: Cosmetic: say symbol, not identifier.
	* glib/glibmmconfig.h.in, gdk/gdkmmconfig.h.in,
	gtk/gtkmmconfig.h.in: Remove #undefs of GTKMM_USING_STD_*.
	* glib/glibmm/exception.cc, glib/glibmm/wrap.cc,
	pango/src/tabarray.hg, gtk/src/main.ccg: Use new
	GTKMM_USING_STD(foo) macro.

2002-03-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/convert.{cc,h}: New class IConv that wraps the
	iconv() interface more or less directly.  However, it could be
	useful when doing a lot of conversions between the same charsets.
	Also improve the documentation a bit.

2002-02-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/convert.{cc,h}: New functions for filename
	and URI conversion.
	* glib/glibmm/containerhandle_shared.h, glib/glibmm/date.cc:
	Replace GTKMM_USING_STD_FOO by GTKMM_USING_STD(foo).

2002-02-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* docs/reference/Doxyfile.in: Enable some macro expansion
	magic, so that the function-like macro GTKMM_USING_STD()
	no longer confuses the parser.  I'm really glad that this
	freaky stuff seems to work.

2002-02-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/ustring.{cc,h}: Add operator<< and operator>>
	for STL stream input/output.  If the stream used is std::cin
	or std::cout, convert to the currently used locale.
	* examples/*/*.cc: Remove the Glib::ustring -> std::string
	casts that were previously needed for writing to std::cout.
	* demos/pixbuf-demo.cc: Minor beautifications.

2002-02-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/class_*.m4: Put the Doxygen tag @relates in front
	of each Glib::wrap() declaration, for better readable docs.
	* glib/glibmm/*.h: Documentation updates, make use of @relates
	where apropriate (i.e. for all operators outside of a class).
	Group things together via @defgroup and @ingroup.
	* gtk/src/dialog.hg, gtk/src/widget.hg: Add missing title to
	@defgroup tag, to avoid warnings from Doxygen.
	* docs/reference/Doxyfile.in: Beautify output by setting
	ENUM_VALUES_PER_LINE = 1.

2002-02-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/convert.{cc,h},
	  glib/glibmm/date.{cc,h},
	  glib/glibmm/timer.{cc,h}: New files.  These implement
	new wrappers of g_convert*(), GDate, and GTimer.
	* glib/glibmm/Makefile.am:  Add new files.

2002-02-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* scripts/cxx_std.m4, configure.in, glib/glibmmconfig.in:
	Add new autoconf macro GTKMM_CXX_HAS_NAMESPACE_STD and use it.
	Conditionally #define GTKMM_USING_STD(), which generalizes the
	old GTKMM_USING_STD_FOO checks.  The old stuff is still there,
	view these changes as proposal of a sane replacement.

2002-02-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/error.{cc,h}: Put the default ctor back in place.
	Re-add necessary code to avoid crashes if gobject_ == 0.  Add
	bool take_copy argument to the GError* ctor.

2002-02-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/arrayhandle.h (create_array): Use the default
	ctor CType() to terminate the array instead of trying to
	static_cast<>(0).  Hopefully this will work with all compilers.

2002-02-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/error.{cc,h}: Remove unnecessary default ctor.
	This allows great simplification of the other code too, since
	gobject_ cannot be 0.  Make the dtor virtual, because exception
	classes are likely to be used polymorphically.  Also fix
	operator=(), and make the Error(GError* gobject) ctor not
	taking a copy.

2002-02-26  Murray Cumming  <murrayc@usa.net>

	* Finish dnd Drag and Drop example. You'll need to update 
	libsigc++ again.

2002-02-25  Murray Cumming  <murrayc@usa.net>

	* Added initial GtkClipboard wrapper - hand coded because it
	doesn't seem to be an Object or a BoxedType.
	* Added Gdk::DragContext and wrapped drag methods and signals
	of Gtk::Widget. Already it looks clearer and better organised
	than the original C mess.
	* Added dnd Drag and Drop example, based on gtk+/tests/dndtest.

2002-02-25  Muray Cumming  <murrayc@usa.net>

	* Implemented Gtk::TreeSelection::set_select_function().
	* Added Gtk::FileSelection accessors for Gtk::TreeView*
	members.
	* Cleaned up drawingarea and timeout examples and put
	them in book directory.

gtkmm 1.3.7:

2002-02-24  Daniel Elstner  <daniel.elstner@gmx.net>

	* pango/src/tabarray.{hg,ccg} (get_tabs): Since
	std::pair<PangoTabAlign,int> is POD (plain old data), we can
	use it as the C type for ArrayHandle<> directly.  This means
	the ugly _pair_PangoTabAlign_intTraits stuff isn't necessary.

	* configure.in, glib/glibmmconfig.h.in: New namespace std
	check for std::pair.

	* pango/src/fontfamily.hg (FontFamilyRefPtrTraits):
	Use g_object_unref(), not g_free().


2002-02-24  Daniel Elstner  <daniel.elstner@gmx.net>

	* tools/m4/class_boxedtype.m4 (operator=): Free the current
	contents before taking the new ones over.  Also, when testing
	for self-assignment, compare the gobject_ pointers intead of
	this != &src.  It's quite possible to have two C++ boxed objects
	pointing to the same C instance.

2002-02-24  ERDI Gergo  <cactus@cactus.rulez.org>

	* pango/src/tabarray.hg: get_tabs () returns an ArrayHandle of STL
	Pairs instead of two separate std::lists

	* pango/src/layout.hg:
	* pango/src/fontmap.hg:
	* pango/src/context.hg:
	The API now uses Glib::ArrayHandle instead of std::list, so you
	can use any STL container to store the return value

	* pango/src/layout.hg: Implemented Pango::Layout::get_lines ()

	* tools/m4/convert_pango.m4: Added GSList conversion for
	Pango::Layout::get_lines ()

2002-02-24  Andreas Holzmann <Andreas.Holzmann@epost.de>

 	* gdk/src/cursor.hg: Make constructor public
 	* glib/glibmm/propertyproxy_refptr.h: (get_value)
 	  Typo fixed; Avoid generation of temporary object.

2002-02-24  Murray Cumming  <murrayc@usa.net>

	* Added wrappers for Atk::Relation, Atk::RelationSet, and
	Atk::StateSet, and used them in Atk::Object.

2002-02-24  Murray Cumming  <murrayc@usa.net>

	* Implemented Pango::Coverage(const guchar* bytes, int n_bytes).

2002-02-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/ustring.{cc,h}: Add some documentation and new ustring
	methods for case conversion.  Reformat the code for better
	readability.  (yes, I dare now exceeding 80 columns ;)

2002-02-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm/*listhandle.h (iterators): Use forward_iterator_tag
	instead of input_iterator_tag.  Initially I assumed they should
	be input iterators because operator*() returns by value.  That
	was wrong: input_iterators have really special semantics, e.g.
	you cannot iterate twice over the same sequence.
	* glib/glibmm/arrayhandle.h (iterator): Don't use input_iterator_tag
	for the reason stated above.  ArrayHandleIterator<> now implements
	the full random access iterator interface, to take advantage of
	optimized STL algorithms.
	* configure.in, glib/glibmmconfig.in,
	glib/glibmm/containerhandle_shared.h: Add namespace checks for
	std::random_access_iterator_tag, std::min, std::max.  Only the first
	one is used right now, but std::min and std::max will probably soon
	be used too.

	* glib/glibmm/*handle.h (Handle -> STL container conversions):
	Make the conversion operators member templates.  There's no way to
	templatize the returned container type itself, but it's possible to
	make the element type a template parameter (std::auto_ptr<> uses a
	similar technique).  Thus, it's now possible to take advantage of
	any implicit conversion available for the elements.

2002-02-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* Update for latest GTK+: GtkWindow::type is a guint bitfield now.
	* tools/m4/convert_gtk.m4: Replace several Foo(bar) casts by
	static_cast<Foo>(bar), because the former syntax is sometimes
	ambiguous -- e.g. std::vector vec (int(size)); is interpreted as
	function declaration by gcc.

2002-02-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* gtkmmproc now exits on failed conversion:
	Make use of m4exit(1) in _CONVERT() to quit m4, and check the
	exit code of m4 in gtkmmproc.  On failure, print an error message
	and abort.

2002-02-23  Murray Cumming  <murrayc@usa.net>

	* Gtk::TreeModel: Fixed several methods, such as iter_next(), to use
	C++ types instead of C types - problem found by Matthew Walton.
	Also added some extra methods to provide the special functionality 
	available in C when some args are NULL. 
	* The Gtk::TreeView "move_cursor" signal's return type changed from
	void to gboolean. gtkmm updated accordingly.

gtkmm 1.3.6

2002-02-20  Murray Cumming  <murrayc@usa.net>

	* configure.in mentioned a Makefile.am that isn't distributed. Fixed.
	* gcc 2.95.4 seems to have a problem with a use of 
	RefPtr::operator bool() in textbuffer.ccg, so I've used is_null() there
	as a workaround. This is mysterious - surely we use this technique in
	lots of places.

2002-02-19  Murray Cumming  <murrayc@usa.net>

	* Added examples/book, which will contain examples from the tutorial.

gtkmm 1.3.5:

2002-02-18  Murray Cuming  <murrayc@usa.net>

	* The examples now have regular Makefile.am build files, and build them
	all at once from the top-level examples directory. Some of the examples
	are not easily fixed so they aren't built at the moment - see 
	examples/Makefile.am. Some uses of deprecated widgets was fixed now 
	that some of the origianl GTK+ examples have been updated.
	* Changed Gtk::Style::get_background() to get_background_pixmap() and
	added get_backgroun() which returns a Gdk::Color.

2002-02-17  Murray Cumming  <murrayc@usa.net>

	* The tutorial has now been renamed to "Programming with gtkmm",
	and converted to DoxBook XML 4.1.2 format, using the book format
	instead of the article format. You'll need this stuff for `make html`
	to work:
	http://lists.gnome.org/archives/gnome-hackers-readonly/2002-February/msg00166.html

2002-02-17  Murray Cumming  <murrayc@usa.net>

	* Glib::Error: prevented some warnings about NULLs.

2002-02-16  Andreas Holzmann  <Andreas.Holzmann@epost.de>

	* Gdk::Cursor: Use const Gdk::Color arguments

2002-02-16  Andreas Holzmann  <Andreas.Holzmann@epost.de>

	* Gtk::Toolbar: Added StockElem, used to add stock items.
	Demonstrated in a new stock example.

2002-02-16  Murray Cumming  <murrayc@usa.net>

	* Gdk::Bitmap now derives from Gdk::Pixmap.
	In GTK+, GdkBitmap inherits from GdkDrawable, not GdkPixmap, 
	but the way that they've done that, via a typedef,
	means that they can use GdkBitmap and GdkPixmap interchangeably.
	Rather than provide a Bitmap override for every  method tha uses 
	Pixmap, the C++ wrapper inherits from Pixmap, as it probably should in
	GTK+. Problem identified by Andreas Holzmann.

2002-02-15  Andreas Holzmann  <Andreas.Holzmann@epost.de>

	* PropertyProxy: fixed typo in get_value().

2002-02-02  Daniel Elstner  <daniel.elstner@gmx.net>

	* Implemented a hacky work-around for the missing
	  GtkTextBuffer::tag_table property:  This won't be fixed
	  in GTK+ 2.0; see bugzilla #70227.

	  Also added overloads of Gtk::TextBuffer::insert() etc., which
	  take a const char* sequence instead of Glib::ustring.

2002-01-31  Daniel Elstner  <daniel.elstner@gmx.net>

	* Use GdkModifierType instead of plain guint:  This requires
	  the latest GTK+ from CVS.

2002-01-28  Murray Cumming  <murrayc@usa.net>

	* Slightly more wrapping of Atk::Object. Added .defs files for atk.
	  This requires the latest atk from cvs.

gtkmm 1.3.4:

2002-01-25  Murray Cumming  <murrayc@usa.net>

	* Removed Karl's Glib::RefPtr::operator*(): I see no need for people to
	use RefPtr with Widgets. Used the operator->() hack in menu_elems.cc 
	instead, with a comment.

2002-01-24  Murray Cumming  <murrayc@usa.net>

	* Classes derived from Gtk::Widget now have `@ingroup Widgets' in 
	their Doxygen comment block, which makes them show up on a special 
	Widgets page in the reference documentation. Likewise Dialogs.

2002-01-23  Murray Cumming  <murrayc@usa.net>

	* Gtk::Statusbar: Removed messages() iterator interface, because it
	use private struct fields from GtkStatusbar, suggesting that it
	shouldn't be part of the API. Also reordered some method arguments
	to allow the default context id of 0.

2002-01-22  Murray Cumming  <murrayc@usa.net>

	* list proxy accessors such as Notebook::pages() now return references,
	with a const override. This not only preserves some compatibility with
	older code, but allows const list operations on const widgets.

2002-01-22  Murray Cumming  <murrayc@usa.net>

	* signal accessors now have doxygen documentation which lists
	the names of the signal arguments. With this, and the use of the 
	simpler signal proxies, signals are now much clearer than in gtkmm 1.2.

2002-01-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* Rewrote the container converters from scratch
	  (ArrayHandle, ListHandle, SListHandle):

	Renamed Glib::Array to Glib::ArrayHandle, to make it clear that it
	isn't a real container, and to have a common naming scheme.  The
	features of the new implementation are:

	  - cleaner and generalized TypeTraits system
	  - a shared set of predefined TypeTraits specializations
	  - support for conversion from builtin arrays to lists
	  - support for 3 ownership levels (none, shallow, deep)
	  - using ArrayHandle as return value now really works

	Here's a brief list of changes made to integrate the new code:

	* gtk/gtkmm/stock.*: minor adaptions
	* gtk/src/combo.* (set_popdown_strings): removed the GList code
	* gtk/src/container.*: use plain Gtk::Widget*, not RefPtr<>
	* gtk/src/curve.*: replaced the array code by Glib::ArrayHandle
	* gtk/src/iconset.*: minor adaptions
	* gtk/src/liststore.*: ditto
	* gtk/src/rc.h.*: minor stuff, and implemented get_default_files()
	* gtk/src/textbuffer.* (insert_with_tags): Implemented it for
	  containers of RefPtr<Gtk::TextTag>, too.  Renamed the ustring
	  overload to insert_with_tags_by_name() in order to resolve an
	  ambiguity.  Also rewrote the method implementations to use the
	  GTK+ functions directly, in order to avoid triple conversions
	  from C++ to C to C++ to C.
	* gtk/src/textchildanchor.hg: use Gtk::Widget*
	* gtk/src/textiter.hg: use SListHandle< RefPtr<Foo> >
	* gtk/src/treepath.* (get_indices): generalized it
	* gtk/src/treestore.*: minor adaptions
	* gtk/src/treeview.*, treeviewcolumn.*: ditto
	* gtk/src/window.*: ditto
	* tools/m4/convert_g[dt]k.m4: updated _CONVERSIONs

2002-01-17 Karl Nelson <kenelson@ece.ucdavis.edu>
        * Removed the now unused kludge for creating Menu Elements.
        Elements are once again clipable and thus can be stored in 
        arrays.  Fixed long standing memory leak.
        * Had to add operator* and =(T*) to RefPtr so that it could
        be used to do "RefPtr<Widget> w;  w=manage(new Widget);"

2002-01-13 Karl Nelson <kenelson@ece.ucdavis.edu>
        * Added try/catch for vfuncs and signals,  should transfer the 
        control to Glib::exception_handler() rather than aborting from
        now on.  Added example/exception to show its use.  Features are 
        preliminary and thus subject to change.

2002-01-12  Murray Cumming  <murrayc@usa.net>

	* Removed deprecated GtkList, GtkCList, GtkTree, and GtkCTree wrappers.
	People should use Gtk::TreeView now.

2002-01-11  Murray Cumming  <murrayc@usa.net>

	* _WRAP_VFUNC_ONLY can now be used in Interfaces when the C++ method 
	needs to be custom coded. It's used in Gtk::TreeModel with get_iter().

2002-01-11  Murray Cumming  <murrayc@usa.net>

	* Added operator bool to BoxedTypes, like RefPtr.

gtkmm 1.3.3:
	
2002-01-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* Gtk::Entry does no longer inherit virtually from all its base
	  classes.  That's not needed because Glib::ObjectBase is already
	  a virtual base class of both Glib::Object and Glib::Interface.
	  See docs/internal/gtk_entry.dia for a proper hierarchy graph.

2002-01-07  Murray Cumming  <murrayc@usa.net>

	* Added changed signal to property proxies. For instance, you can
	now do:
	something.property_example().signal_changed().connect( ... ).
	This actually wraps the GObject::"notify" signal, for which C coders
	have to write a switch statement in their signal handler.

	As part of this, I removed some of the protected/private inheritance
	from the PropertyProxy inheritance. If it was necessary then it should
	have been documented.

2002-01-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* Simplified the inheritance hierarchy:
	  Renamed Glib::Instance_Base to Glib::ObjectBase, because we
	  actually require the underlying C instance to be of type GObject.
	  GTypeInstance isn't sufficient since we need qdata and refcounting.

	  Glib::ObjectBase derives from SigC::Object, thus Glib::Object no
	  longer needs to derive from SigC::Object by using MI.  This also
	  means that sigc++ functionality is available for Interfaces now.

	  To simplify the initialization of the virtual base, Glib::ObjectBase
	  only has a default ctor and an initialize() method, which is called
	  by the Glib::Interface and Glib::Object non-default ctors.

2002-01-04  Murray Cumming  <murrayc@usa.net>

	* The overrideable virtual functions in Interfaces are now
	suffixed with _vfunc, and there are now methods without the 
	suffix that just call the _vfunc virtual function. Therefore 
	you would override the do_something__vfunc() method to change 
	the GTK+ interface's behaviour, and call the do_something()
	method to call that method. This allows overriding without 
	excessive C++ <-> C type conversion, but also allows C++ types
	when the method is called from C++.

2002-01-03  Murray Cumming  <murrayc@usa.net>

	* tools/generate_wrap_init.pl now accepts more than one 
	--namespace argument to allow, for instance, Gnome::UI::App.

gtkmm-1.3.2:
	
2001-12-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* Removed the Gtk::Widget::signal_delete_event() workaround.
	  We now override the GObject::dispose vfunc instead, to catch
	  all uses gtk_object_destroy() by GTK+ code.

	  This means whenever a widget is going to be destroyed we will
	  prevent that, unless our C++ destructor caused the destroy, or
	  the widget is managed.

2001-12-16  Murray Cumming  <murrayc@usa.net>

	* Removed Gtk::Pixmap, because it's deprecated. People should 
	use Gtk::Image instead.

2001-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* Got rid of Glib::nstring in Gtk::Toolbar_Helpers::Element
	  and its subclasses.

	  That means the entire API is now nstring-free.  The contents
	  of nstring.h and nstring.cc have been commented out, ready
	  for deletion.

2001-12-15  Murray Cumming  <murrayc@usa.net>

	* Gtk::Main: init_gtkmm_internals() is now static so that it
	can be called before Gtk::Main is instantiated. This allows
	Gnome::canvas_init(), for instance, to use it before 
	Gtk::Main::Main() and just before calling 
	Gnome::canvas_wrap_init().
	Also made events_pending return a bool instead of an int - 
	GTK+ needs to fix its declaration.
	Also added some extra checks for >1 Main instance, and for
	proper destruction if that happens, as suggested by Daniel
	Elstner.

2001-12-11  Murray Cumming <murrayc@localhost.localdomain>

	* Removed gtkmm2-gtkmmproc-config. We use the prefix reported 
	by pkgconfig instead.

2001-12-04  Murray Cumming  <murrayc@usa.net>

	* Replaced all gint, gdouble, gfloat, and glong with int,
	  double, float, long in our API, because they are always
	  the same on all platforms.

2001-12-04  Murray Cumming  <murrayc@usa.net>

	* The tools directory has been reorganised into m4 and pm
	  sub-directories.

2001-12-01  Murray Cumming  <murrayc@usa.net>

	* configure now checks that perl 5.6 is available.
	  (Sebastian Kapp, Michael A. Koziarski)

2001-12-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* Got rid of Glib::nstring almost everywhere.  We have now
	  remove_*() methods instead of set_*(0) to remove a string.
	  Return strings will be initialized to the empty string if
	  the GTK+ function returned NULL.

	  Glib::nstring is still used by Gtk::Toolbar_Helpers::Element.
	  Expect that to be changed soon.

2001-11-30  Murray Cumming  <murrayc@usa.net>

	* Reworked menu wrappers even though I'm not sure that I fully
	  understand the old way. I find it ironic that the only comment
	  in the old menu wrapping system complains about the lack of
	  documentation in the GTK+ menu system.

	  AccelKey and the MenuElems are in separate files now to make 
	  it a bit clearer. I have removed the nav_key stuff, because it
	  seems like we can use the underscore mnemonic stuff from GTK+2
	  now. I have also moved some code from MenuItem::accelerate()
	  into MenuItem::on_realize() now that we can break binary
	  compatibility.

	  We now add and accelerator for the "activate" 
	  signal, not the "activate-item" signal, because "activate-item"
	  is not G_RUN_ACTION, and because "activate" is what the gtk+ 
	  examples use. Hopefully that's correct.

	  All of MenuItem::show_accel_label is commented out. It puts an
	  accel label (showing the key combination) next to the current
	  child widget if there is no accel_label already. But I don't know
	  when this would be necessary.

	  This seems to work in the menu2 example and the gtk-demo demo.

gtkmm-1.3.1:
	
2001-11-26  ERDI Gergo  <cactus@cactus.rulez.org>

	* Lib names are now:
	  libglibmm-1.3 	(change this to 2.0 for final release)
	  libatkmm-0.0		(change this to 1.0 for final release)
	  libpangomm-0.0	(change this to 1.0 for final release)
	  libgdkmm-1.3		(change this to 2.0 for final release)
	  libgtkmm-1.3		(change this to 2.0 for final release)

	* -release names are no longer used for libraries (conflicts
	  with the GTKmm 1.2 series 

2001-11-25  ERDI Gergo  <cactus@cactus.rulez.org>

	* Changed the .pc files to use -lfoomm instead of -lfoomm-1.3 as
	  the library to link third-party apps to

2001-11-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* Added a nearly complete std::string-like interface to
	  Glib::ustring.  The iterator is only bidirectional and
	  doesn't support write access, and all indexing operations
	  have O(n) costs.

	  The Glib::ustring interface is not meant to be final, and
	  needs broader investigation.

2001-11-24  ERDI Gergo  <cactus@cactus.rulez.org>

	* Implemented Gtk::ImageMenuItem and the corresponding
	  Gtk::Menu_Helpers::StockMenuElem. Stock accelerators don't work
	  yet. Gtk::Menu_Helpers::ImageMenuElem looks tiresome to
	  implement so it's postponed until someone strongly needs it :)

2001-11-13  Murray Cumming  <murrayc@usa.net>

	* The examples now use the new Gtk::Main::run(window) override,
	  instead of that unpleasant delete_event signal stuff.
	  Gtk::Main::run(window) shows the window, starts the event loop,
	  and stops the event loop when the window is closed. You can
	  think of it as a way to say 'This is the main application
	  window.' or 'The window and the application have the same
	  lifetime.'

2001-11-12  Daniel Elstner  <daniel.elstner@gmx.net>

	* Changed behaviour on delete_event:

	  Our GTK+ callback for GtkWidget's delete_event is no longer
	  directly wrapped by a ProxySignal.  We have now a special
	  callback function that always returns true in order to avoid
	  self-destruction.

	  The callback emits signal_delete_event which is now a standard
	  sigc++ signal.  If the signal's return value is false then the
	  widget will be hidden, but not destroyed.

2001-11-12  Murray Cumming  <murrayc@usa.net>

	* Boxed Types now have wrap() overrides. Unlike other wrap()
	  functions, they will not return the same C++ instance for the
	  same C instance, because there is no way to associate data
	  with a boxed type instance. But that shouldn't be a problem.

	* All Boxed Types now have default constructors, even if that
	  results in a null gobject_. This allows their use as output
	  arguments. Glib::BoxedType::is_null() can be used to check
	  for null underlying instances.

	* Object-derived types used in WRAP_PROPERTY() are now
	  implicitly wrapped as RefPtrs to those types, so you can
	  use _WRAP_PROPERTY("something", Gdk::Something) instead of
	  _WRAP_PROPERTY("something", Glib::RefPtr<Gdk::Something>)

2001-11-10  ERDI Gergo  <cactus@cactus.rulez.org>

	* gtk/src/progressbar.hg: implemented new (2.0) ProgressBar API

2001-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* Reworked build system:
	  Moved as much stuff as possible from the various Makefile.am's
	  into shared Makefile.am fragments in directory build_shared.
	  The functionality has been split up as follows:

	    gensrc       - source generation with gtkmmproc
	    build        - generic sub-library build/dist/install
	    build_gensrc - sub-library build from generated sources

	  Splitting up the latter two was needed because of the
	  difference of the glibmm build, which doesn't use gtkmmproc.
	  The Makefile.am fragments contain comments with a usage
	  example.

	  Also implemented several workarounds to make the build system
	  work with both automake-1.4 and automake-1.5.  Fortunately
	  it wasn't needed to create different Makefile.am's for each
	  version.  All targets including dist and distcheck succeed.

2001-11-06  Murray Cumming  <murrayc@usa.net>

	* Added glib interface wrapping system. Interface wrappers,
	  such as Gtk::TreeModel can be created with _CLASS_INTERFACE().
	  Wrappers of objects that implement the interface, such as
	  Gtk::TreeStore, should use the _IMPLEMENTS_INTERFACE() macro.
	  This allows the interface's virtual methods to be overridden,
	  and for the Gtk::TreeStore to be cast to a Gtk::TreeModel as
	  well as well as a Glib::Object, so the C++ heirarchy reflects
	  the GTK heirarchy.
	
	  However, this does not allow us to create new implementers
	  simply by inheriting from one of the interface wrappers,
	  because there must be a new glib type to implement the
	  interface. I'm still working on that.

	  Glib::Object and Glib::Interface now both inherit virtually
	  from Glib::Object_instance which contains the gobject_
	  instance. This allows the Interface wrapper classes to
	  access the implementing glib instance.

	  The vfunc and default signal handler code has changed a bit,
	  so that it an get the GClass for normal function pointers,
	  or the IFace for Interface function pointers.

2001-11-04  Daniel Elstner  <daniel.elstner@gmx.net>

	* Added a new _MEMBER_PTR() macro to method.m4, in order to
	  generate two get_*() methods:  One for const objects and one
	  for non-const objects.  Also modified _MEMBER_GOBJECT() in a
	  similar way, it returns either RefPtr<Foo> or RefPtr<const Foo>.

	  Note that you now have to omit RefPtr<> in the C++ type
	  parameter of _MEMBER_GOBJECT().

2001-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* Use the new g_type_[sg]et_qdata() interface to register our
	  wrap_new() functions.  This completely avoids dealing with
	  strings in wrap_register() and wrap_auto().  wrap_register()
	  now takes a GType instead of a type name string, which is
	  retrieved in wrap_init.cc by using the corresponding
	  *_get_type() function.

2001-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* Removed take_copy argument from wrap_new():
	  Glib::wrap_auto() now pays attention to reference() if
	  take_copy=true, as it already did for existing wrapper
	  instances.

2001-10-31  Murray Cumming  <murrayc@usa.net>

	* Moved some parts of PropertyProxy into a new Glib::Value
	  wrapper, so that it can be reused in a templated
	  Gtk::TextStore::set_value() method.

2001-10-29  Murray Cumming <murrayc@usa.net>

	* Added _WRAP_PROPERTY() to .hg/.ccg format, which uses def
	  file define-property sections to determine whether the
	  property should be readable/writable. The property will
	  be used like so:
	  obj.property_something.set_value(2);
	  int something = obj.property.get_value();

2001-10-29  Daniel Elstner  <daniel.elstner@gmx.net>

	* Added new GList wrapper for GObject pointers that does
	  reference counting and maps all access operations as if
	  it contains Glib::RefPtr<> objects.
	  Commented out the old GList wrapper in container.h.


gtkmm-1.3.0:

2001-10-26  Murray Cumming  <murrayc@usa.net>

	* Added simple wrappers for the various Tree objects. These
	  embody various concepts such as iteration which we should
	  probably wrap in a more std:: way. But for now I'm
	  exploring the API by building the gtk-demo, which uses the
	  GtkTreeView.

2001-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* Reverted parts of the recent RefPtr<> modifications:
	  The static_cast<> is now in place again.  I didn't know that
	  allowing conversion from Base* to Derived* was intentional.
	  Also replaced the swap technique assignment operators with the
	  original implementation, since that's expected to be clearer.

2001-10-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* Fixed and cleaned up RefPtr<>:
	  Removed the static_cast<> from the templated copy ctor since
	  it would allow initialization with a base class RefPtr<>.  The
	  implicit conversion from SubClass* to SuperClass* should be
	  sufficient here.
	  Also reimplemented both RefPtr<>::operator=() to use the copy
	  and swap technique, which simplifies the code a lot.

2001-10-25  Murray Cumming  <murrayc@usa.net>

	* Changed const RefPtr<Something>& const RefPtr<const Something>&
	and RefPtr<Something>& const RefPtr<Something>&, because the const&
	for the smartpointer is just for efficiency. The const is with the
	underlying type if that's what it's a smart pointer of.
	I don't think that we'll have many RefPtr<const Something> because 
	it is never copied by the called function, just referenced, so we 
	can't claim that the input parameter won't be changed.

2001-10-24  Murray Cumming  <murrayc@usa.net>

	* Added _WRAP_CTOR() .hg macro e.g.:
	_WRAP_CTOR(SomeWidget(gint something) gtk_some_widget_new_with_something)
	This assumes that the _new function's args are all properties,
	as they are meant to be. Language bindings are supposed to
	specify these properties in the varargs of g_object_new().

2001-10-22  Murray Cumming  <murrayc@usa.net>

	* *config.h headers installed in $(libdir)/gtkmm-2.0/

2001-10-21  Murray Cumming  <murrayc@usa.net>

	* Implemented signal disconnection using the
	  SigC::Connection(SigC::Connection_*) mechanism.

2001-10-21  Murray Cumming  <murrayc@usa.net>

	* _WRAP_METHOD() now takes an extra optional argument. If this
	  equals refcount then the return value will be ref()ed. Almost
	  all methods that return a GObject should use this. Methods
	  that return a newly-created object should not, because those
	  C functions will do an extra ref for us. It would be best to ref
	  as default, and specify a norefreturn instead, but it's hard not
	  to ref a gint, for example.

	  This doesn't help for output parameters (e.g. with gtk_pixmap_get).
	  They will still need to be manually coded.

2001-10-21  Daniel Elstner  <daniel.elstner@gmx.net>

	* Implemented the disconnect facility of Gtk::Main pseudo signals
	  with a common GtkSigConnection_ class.  The class derives from
	  SigC::Connection_ and calls gtk_*_remove() in the disconnect()
	  virtual method.  There's a large comment in sigc++/connection.h
	  describing how it works.

2001-10-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* Reversed the handling of types declared in namespace std:

	  Instead of cluttering namespace Gtk and/or the global namespace
	  with 'using std::foo;' declarations, std::foo is now everywhere
	  used directly.  Thus the preprocessor code deciding which
	  namespaces to clutter is no longer needed.

	  To allow compilation with ancient compilers or C++ libraries, the
	  GTKMM_USING_* macros now expand to 'namespace std {using ::foo;}'
	  if needed.  This violates the C++ standard, but only for compilers
	  which aren't standard-compliant anyway.

2001-10-16  Murray Cumming  <murrayc@usa.net>

	* We now use Glib::ustring in our interfaces instead of std::string.
	  Glib::ustring is meant to have the same interface as std::string,
	  and seemlessly interoperates with std::string, but Glib::ustring
	  can deal with UTF8 strings, as used by GTK+/GNOME.

2001-10-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* More make dist fixes:

	  Replaced docs/FAQ/Makefile and docs/tutorial/Makefile with
	  new Makefile.am's.  Did tricky automake stuff in docs/Makefile.am
	  to include the subdirs in the distribution but excluding them
	  from recursive make's.

	  The examples are now included in the distribution, too.  Needed
	  some special GNU make functions to exclude .* and CVS.

	  In glib/glibmm/Makefile.am, moved 'private' directory from
	  EXTRA_DIST to SUBDIRS, and added glib/glibmm/private/Makefile.am
	  to configure.in.

2001-10-16  Murray Cumming  <murrayc@usa.net>

	* Added _MEMBER_GOBJECT which uses the normal type
	  conversion table, like _MEMBER, but which does the
	  necessary extra ref.

2001-10-16  Murray Cumming  <murrayc@usa.net>

	* Glib::wrap() now has an optional take_copy argument,
	  which should be used when getting a wrapper of a bare
	  struct member.

2001-10-16  Murray Cumming  <murrayc@usa.net>

	* AccelGroup is now a GObject wrapper.

2001-10-16  Murray Cumming  <murrayc@usa.net>

	* Default signal handlers are now e.g.
	  virtual Button::on_clicked().
	  This seems to make it clearer that it's a signal handler,
	  to be overridden, not just a vfunc impl.
	
	  gtk+ virtual functions are now e.g.
	  virtual Widget::something()
	  or if there is a name clash:
	  virtual Widget::something_vfunc().
	  The 'virtual' gives enough information here.

	  This involved the removal of Karl's unified _WRAP()
	  mechanism from gtkmmproc.in, which I have been saying
	  is not appropriate, because functions with the same name
	  as signals/vfuncs are not necessarily related.

	  As I had to make changes to GObject and GtkObject wrappers,
	  I moved duplicated code into class_shared.m4, as macros
	  to be used by class_gobject.m4 and class_gtkobject.m4.

	  I added tools/vfunc.m4, which contains macros to create
	  the virtual function hooks. These are *very* similar to the
	  default signal handler bits in signal.m4. I thought that it
	  would be best to keep conceptually different things separate
	  even if it meant duplication of code.

2001-10-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* make dist now works:
	  1) implemented --defs parameter in gtkmmproc
	  2) fixed Makefile.am bugs preventing a VPATH build
	  3) added missing dist files
	  4) Makefile.am changes to prevent distribution of built sources
	  5) split header files into foo_HEADERS and foo_DATA, the latter is
	     for built sources
	  6) minor Makefile.am cleanups

