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

	* examples/book/signals: Added custom signals example.
	* docs/tutorial/gtkmm-tut.xml: Added customs signals appendix.

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

	* Gtk::Menu: Changed popup() override to accepts a SigC::Slot to
	calculate the menu position, instead of a static function pointer.

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

	* tools/pm/DocsParser: Corrected the removal of <para> tags from
	reused GTK+ docs.

2002-07-13  Morten Brix Pedersen  <morten@wtf.dk>

        * docs/FAQ/gtkmm-faq.sgml: Fix wrong references to mailinglist.html
        * gtk/src/scrolledwindow.hg: Referenced GtkAdjustment instead of
          Gtk::Adjustment.
        * gtk/src/gtk_docs_override.xml: GTK+ documentation said that the
          value should be free()ed, it shouldn't in gtkmm.
	
2002-07-13  Murray Cumming  <murrayc@usa.net>

	* examples/book/menus: Added popup example.
	* Gtk::Menu::popup(): Now calls accelerate. This is not a perfect
	solution because the accelerator key can then only be used after
	the popup has already been shown once. See bug #87944.

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

	* reference docs: Added a Menus group and added lots of class
	documentation, and some method documentation.
	* examples/books/menus: Added a main_menu example.
	* Added Gtk::SeparatorMenuItem, and used it in 
	Gtk::Menu_Helpers::SeparatorMenuElem.

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

	* examples/Makefile.am: Don't upload the empty directories.
	* docs/index.html: Add link to the examples.

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

	* docs/tutorial/gtkmm-tut.xml: Added some information about the
	Selection, as suggested by Matthew Tuck.

2002-07-12  Andreas Holzmann  <Andreas.Holzmann@epost.de>

	* glib/glibmm/miscutils.[cc|hh]: Added build_filename() 
	convenience function.	
	
2002-07-12  Murray Cumming  <murrayc@usa.net>

	* Gtk::ListStore, TreeStore: Added erase(row) and insert(row) overrides
	for convenience.
	* Gtk::TreeMode, ListStore, TreeStore, TreeRow: set_value_impl()
	and get_value_impl() take a column index so that they can be used
	by all overrides of the public get_value() and set_value() methods.

2002-07-09  Jarek Dukat  <madmaxer@poczta.fm>

	* glib/src/convert.{ccg,hg}: Added error handling to Glib::IConv
	constructor. It now throws Glib::ConvertError when conversion
 	is not possible.
 
2002-07-09  Jarek Dukat  <madmaxer@poczta.fm>
 
 	* gtk/src/textbuffer.ccg: Fixed default argument bug. 
	
2002-07-10  Murray Cumming  <murrayc@usa.net>

	* docs/tutorial/gtkmm_tut.xml: Removed 2nd explanation of
	TreeModel::Row operator[].

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

	* TreeModel::Row: Added operator bool() to show whether the row is
	valid. Allows checking when using treemodel->children()[index].
	* TreeSelection: Added select(const TreeModel::Row&) override, for
	use with the return value of TreeModel::operator[].
	* TreeView: Added insert_column() and append_column() overrides so
	that they share the same 3 overrides.
	* tools/pm/DocsParser.pm: Remove <para> tags from C sgml tmpl text
	so they don't show up in our doxygen output.
	* docs/tutorial/gtkmm_tut.xml: Completed a first version of the
	book's TreeView chapter.

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

	* * gtk/src/gtk_docs.xml: Regenerated from gtk+ docs using
	docextract_to_xml.py, with jamesh's fix to get the docs from the
	GTK+ docs tmpl sgml files - needs the patch in bug #86860.

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

	* gtk/src/gtk_docs.xml: Regenerated from gtk+ docs using
	docextract_to_xml.py

2002-07-09  Murray Cumming  <murrayc@usa.net>
 
 	* Gtk::RadioButton: It seems that the Group does need to be
 	updated before use with another RadioButton, so it really
 	shouldn't be const. It's possible that this worked better before I
 	started messing with it, but I don't understand how it worked
	before. Bug #87492.
	
2002-07-08  Morten Brix Pedersen  <morten@wtf.dk>
        
        * gtk/src/: More descriptions for classes.

2002-07-07  Morten Brix Pedersen  <morten@wtf.dk>
 
        * gtk/src/: Added description for several classes.
	
2002-07-07  Morten Brix Pedersen  <morten@wtf.dk>
        
        * gtk/src/treeselection.hg: Mention that get_selected() returns NULL
          if no rows were selected.

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

	* TreeModel: Added set_value() and get_value() that take an int
	column index instead of a TreeModelColumn<>, for use with columns
	added at runtime, when there is no compiler to provide the type
	information.
	
2002-07-07  Murray Cumming  <murrayc@usa.net>

	* book: Added outline and some text of a TreeView chapter.

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

	* Gtk::TextBuffer: insert*() returns the iterator and doesn't
	modfify the input iterator, like the STL. Code like this
	refBuffer->insert(iter, "sometext");
	that relies on iter being changed and ready for the next insert,
	should be changed to this:
	iter = refBuffer->insert(iter, "sometext");
	
2002-07-07  Murray Cumming  <murrayc@usa.net>

	* Removed Glib::Object::create(). It was meant as an example for
	derived classes, but it is inherited publically so it just
	confuses the API of derived classes, such as Gtk::Style, that have
	no create() method, because they can not be instantiated. Problem
	found by Morten Brix Pedersen.

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

	* reference docs: Put CellRenderers in TreeView group, as
	suggested by Morten.

2002-07-07  Morten Brix Pedersen  <morten@wtf.dk>

        * PORTING: Be clear about new slot() behaviour. Mention removal of
          set_policy()
        * README.win32: Fix typo.

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

	* gtk/src/radiobutton.hg: RadioButton_Helpers::Group: Added copy
	constructor, which seems to be required by
	RadioButton::get_group(), thought it compiled anyway. Made add()
	const to simplifiy things. It's protected anyway, so it won't
	confuse the API.
	* gtk/src/radiomenuitem.hg: Reuses the Group class from
	radiobutton.hg, instead of copy-and-pasting code for its own Group.
	* RadioButton and RadioMenuItem: made constructors and set_group() 
	take a const Group& so that they be used with get_group() -
	problem found by Matthew Tuck
	
2002-07-03  Murray Cumming  <murrayc@usa.net>

	* PORTING: Added bits, with help from Jarek Dukat.

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

	* Removed my TreeModel::size() implementation because I now
	realise that it is in TreeNodeChildren, returned by children().
	* tools/m4/convert_gdk.m4: Specified the template instance more
	exactly for Gdk::GC's unwrap(). Hopefully this fixes bug #85978
	with Sun's Forte compiler.

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

	* tools/pm/WrapParser.pm: Made the _vfunc suffix the default, and 
	removed it from all the _WRAP_VFUNC() macros in the .hg files.
	* tools/pm/Output.pm: Removed the commented-out VFUNC_INTERFACE
	stuff.
	* tools/m4/boxedtype_static.m4: Allowed treeiter.hg to prevent
	generation of a wrap() function, because
	TreeIterBase* wrap(GtkTreeIter*) isn't very useful. I'm not sure
	how to write a wrap() for TreeIter or TreeRow instead.
	* gtk/src/treemodel.hg: Uncommented out the get_iter_* vfuncs so
	that people can theoretically derive new TreeModels. They use C
	types at the moment - see the TreeIterBase comment above.

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

	* tools/m4/enums.m4: Renamed some variables so that m4 doesn't
	confuse them with _CLASS_* variables. It still needs more work to
	allow enums to be inside classes. 

2002-07-01  Liam Girdwood <liam@nova-ioe.org>
 
 	* examples/menu/menu2.cc: Changed MenuList items to references.
	
2002-07-01  Marcelo Magallon <mmagallo@debian.org>

	* Correct _DEPS description in tools/using_gtkmmproc.txt

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

	* Gtk::Invisible: Call realize() in the constructor, to match what
	happens in gtk_invisible_new(). This might fix the segfault
	discovered by Tony <a_a_c@bellsouth.net>.

2002-06-30  Murray Cumming  <murrayc@usa.net>

	* TextBuffer:: Added typedefs for Tag, TagTable, and Mark. The
	originals (e.g. TextTag, TextMark) still appear in some other
	classes, because of circular dependencies. We can declare TextMark
	but we can't just declare TextBuffer::TextMark.
	* Refererence docs: Added TextView group, and mentioned it on docs
	overview page.

2002-06-30  Murray Cumming  <murrayc@usa.net>

	* TextBuffer, TextIter, TextView, etc:
	* Made some get_() methods const.
	* Changed TextBuffer::delete_() to delete_text().
	* typedefed TextIter as TextBuffer::iterator.
	* TextBuffer::get_start_iter() and get_end_iter() are now begin()
	and end(), to be more STL-like.

2002-06-29  Murray Cumming  <murrayc@usa.net>

	Dealt with some minor TODO comments in the code:
	* gdk/src/types.hg: Make Geometry a simple typedef of GdkGeometry
	instead of inheriting from it. We don't wrap any methods anyway.
	* Removed preview.[hg|ccg] from cvs - it's deprecated, and we
	don't build it anyway.

2002-06-29  Murray Cumming  <murrayc@usa.net>

	* Added Cedric Gusting's README.win32 about building on Windows.
	* Gtk::Table_Helpers::Child: Added get_*() accessors for some more
	of the fields, because it looks silly with just get_widget(). I'm
	still waiting for official information about what's public/useful
	API. Maybe a future version of gtkmm will just hide the
	GtkTableChild and use Widgets directly.

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

	* docs/index.html: Added link to gcc's libstdc++ reference
	documentation.

2002-06-28  Erdi Gergo  <cactus@cactus.rulez.org>

	* glib/glibmm/containers.h: Added typename declarations for gcc 3.1.

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

	* Gtk::Table: STL-style list now works. Previously we thought that
	the GList container Widgets, but it really contains GtkTableChild
	items. That's what Karl meant in his cryptic "This doesn't work
	and we can't fix it due to API freeze" comments. I worry that
	there are no more real mysteries left. This fixes bug #86085.

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

	* glib/src/containers.h: Cleaned up the Iterator templates used
	by the STL-style interfaces. Mostly just white space and more
	meaningful names.

2002-06-25  Christof Petig <christof@petig-baender.de>

	* Show icons for stock menu items.

1.3.17:
	
2002-06-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* glib/glibmm.h: Don't include glibmm/dispatcher.h on Win32.

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

	* tools/m4/base.m4: Remove the SECTION_CC_BEGIN/SECTION_CC_END
	kludge.

	* configure.in: Get rid of the GTKMM_INSTALL_EXCLUDE nastyness.
	* configure.in: Bump to version 1.3.17, binary age 11:0:0.

2002-06-23  Cedric Gustin  <cgustin@ibelgique.com>

	* build_shared/Makefile_gensrc_platform.am_fragment: New file,
	used to add platform-specific files to $(files_hg).  Also defines
	$(files_all_hg) which contains all files of any platform.

	* build_shared/Makefile_build_extra.am_fragment: New file, used
	to separate platform-specific non-built source files.  Variables
	$(files_extra_all_cc) and $(files_extra_all_h) are defined similar
	to $(files_all_hg).

	* build_shared/Makefile_build.am_fragment: Split $(files_all_cc)
	and $(files_all_h) into platform-specific variables, similar to
	the $(files_extra_foo) stuff.  Also, get rid of the filtering via
	GTKMM_INSTALL_EXCLUDE uglyness.

	* build_shared/Makefile_build_gensrc.am_fragment: More splitting
	up of the files_built_{cc,h} variables, just like above.

	* build_shared/Makefile_gensrc.am_fragment: Use $(files_all_hg)
	to build and install all of the source files, no matter what the
	platform is.

	* atk/src/Makefile_list_of_hg.am_fragment: Split the variable
	files_hg into files_posix_hg, files_win32_hg and files_general_hg.
	* gdk/src/Makefile_list_of_hg.am_fragment: ditto
	* glib/src/Makefile_list_of_hg.am_fragment: ditto
	* gtk/src/Makefile_list_of_hg.am_fragment: ditto
	* pango/src/Makefile_list_of_hg.am_fragment: ditto.

	* atk/atkmm/Makefile.am: Split variables files_extra_{cc,h} into
	sublib_files_extra_posix_{cc,h}, sublib_files_extra_win32_{cc,h}
	and sublib_files_extra_general_{cc,h}.  Also, use automake
	conditionals to build a different set source files depending on
	the target platform.
	* gdk/gdkmm/Makefile.am: ditto
	* glib/glibmm/Makefile.am: ditto, and exclude dispatcher on Win32
	* gtk/gtkmm/Makefile.am: ditto
	* pango/pangomm/Makefile.am: ditto.

	* atk/atkmm/private/Makefile.am: Distribute all headers, but
	install only the platform-specific headers.
	* gdk/gdkmm/private/Makefile.am: ditto
	* glib/glibmm/private/Makefile.am: ditto
	* gtk/gtkmm/private/Makefile.am: ditto
	* pango/pangomm/private/Makefile.am: ditto.

	* Makefile.am: Add new files in the build_shared/ directory.

	* configure.in: Look for GModule too, and use its CFLAGS and LIBS
	when building glibmm.

	* gtk/src/plug.hg: Remove the silly SECTION_CC_BEGIN/END stuff that
	was used to insert #ifndef _WIN32 into the code -- the source file
	is now excluded from the build on that platform.
	* gtk/src/socket.hg: ditto.

	* gtk/src/main.ccg: Use #ifndef GTKMM_WIN32 instead of _WIN32.
	* glib/glibmm/threadpool.cc: ditto
	* demos/gtk-demo/example_stockbrowser.cc: ditto.

	* gdk/src/window.hg: Use #ifndef GDKMM_WIN32 instead of _WIN32.
	Seems odd, can't we use GTKMM_WIN32 here too?  It might be a good
	idea to merge all *config.h files into a single one.

	* examples/thread/Makefile.am: Don't build the dispatcher example
	on Win32.  (Should work, TODO)

2002-06-22  Martin Schulze  <MHL.Schulze@t-online.de>

	* glib/glibmm/object.h
	pango/src/fontmetrics.hg
	pango/src/tabarray.hg
	gdk/src/color.hg
	gtk/gtkmm/base.h
	gtk/gtkmm/targetentry.h
	gtk/src/object.hg: Remove #include <glibmm/containers.h>

	* tools/m4/list.m4
	glib/glibmm/containers.h
	glib/glibmm/helperlist.h
	gtk/src/menushell.ccg
	gtk/src/toolbar.ccg
	demos/gtk-demo/example_menus.cc
	examples/menu/menu2.cc
	examples/stock/stock.cc: Avoid double indirection when using the
	iterators of our STL-style wrappers for box, menushell, table,
	toolbar. The syntax now reads i->some_method() instead
	of the ugly (*i)->some_method().
	Adapt demos and examples to the changes.

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

	* Bug #83244: Added Gdk::RgbCmap wrapper, as suggested by Oliver
	Samyn. Used it in Gdk::Drawable::draw_indexed_image().

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

	* Added Pango::GlyphString wrapper.

2002-06-21  Morten Brix Pedersen  <morten@wtf.dk>

	* Makefile.am: Ship CHANGES file with gtkmm tarball.

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

	Changes to Cedric's Win32 patch to make it work with automake 1.4:

	* gtk/src/Makefile_list_of_hg.am_fragment: Remove the automake
	conditional code that was used to exclude plug.hg and socket.hg
	from Win32 builds.

	* configure.in: Introduce Makefile variable GTKMM_INSTALL_EXCLUDE,
	which contains a list of headers to be skipped on make install.
	Set it to 'plug.h plug_p.h socket.h socket_p.h' when building on
	Win32.

	* build_shared/Makefile_build.am_fragment: Use the make function
	$(filter-out) to exlude the files listed in GTKMM_INSTALL_EXCLUDE
	from the installed headers.  It's hackish and uses a special GNU
	make feature, but it seems to work.
	* gtk/gtkmm/private/Makefile.am: ditto.

	* tools/m4/base.m4: Add two new sections SECTION_CC_BEGIN and
	SECTION_CC_END, which can be used to insert code at the very
	beginning or very end of the generated .cc file.

	* gtk/src/plug.hg: Use the new BEGIN and END sections to insert
	#ifndef _WIN32 guards into the source code.  Thus, the file is
	essentially empty when building on Win32 -- not pretty, but it
	works.  (Excluding the files from the build would be nicer, but
	I couldn't get that to work.)
	* gtk/src/socket.hg: ditto.

2002-06-13  Cedric Gustin  <cgustin@ibelgique.com>

	* configure.in : Added support for win32 DLL (tests on win32
	platform + call to AC_LIBTOOL_WIN32). Added config.h.in in
	AM_CONFIG_HEADER to be used for platform dependent functions (like
	flockfile) in demos, examples. Added pkg-config check for gobject
	for glibmm (DLL dependency).
	* atk/atkmm/Makefile.am, pango/pangomm/Makefile.am,
	gdk/gdkmm/Makefile.am, gtk/gtkmm/Makefile.am : Added
	win32_dlls_extra_libs (defined in
	build_shared/Makefile_build.am_fragment) to library LIBADD for DLL
	dependency.
	* build_shared/Makefile_build.am_fragment : Added support for
	win32 DLL (no_undefined and win32_dlls_extra_libs variables).
	* demos/pixbuf-demo.cc, demos/gtk-demo/example_pixbufs.cc : Added
	definition of M_PI is not available on target platform.
	* demos/gtk-demo/demowindow.cc : Added tests on stdio.h functions
	(HAVE_* macro defined in config.h in root directory) which are not
	available on mingw32.
	* demos/gtk-demo/example_stockbrowser.cc :  Adding the icon to the
	treeview column generates a bunch of warnings on win32. As long as
	a fix has not been found, let's comment this out.
	* glib/glibmmconfig.h.in, gdk/gdkmmconfig.in.h,
	gtk/gtkmmconfig.h.in : Renamed a few win32-related macros to
	better separate the platform and compiler options. Added support
	for mingw32. Slightly changed the *_API macros to support latest
	versions of libtool.
	* gdk/src/dragcontext.hg : Changed first argument of set_icon
	method from StockID to ustring to avoid cross-dependence between
	gdkmm and gtkmm.
	* gdk/src/window.hg : Removed get_decorations from the list of
	wrapped methods for the win32 platform.
	* glib/glibmm/containers.h, glib/glibmm/quark.h : Tagged a few
	variables as GLIBMM_API.
	* glib/glibmm/threadpool.cc : Win32 does not defined
	g_thread_pool_get_max_unused_threads and
	g_thread_pool_stop_unused_threads. Removed the corresponding
	methods when building on win32.
	* gtk/gtkmm/stock.h : Tagged a few variables as GTKMM_API.
	* gtk/src/Makefile_list_of_hg.am_fragment : Splitted the list of
	generated source files into two list, the general and unix files
	(basically plug and socket which are not supported on win32).
	* gtk/src/main.ccg : This is a bug in the win32 port of
	gtk+-2.0. gtk_init, called in Main::init, is a macro that calls
	gtk_init_abi_check whose fourth argument is
	sizeof(GtkWindow) and the fifth GtkBox. Because both have not been
	declared yet, we have to do it explicitly.
	* tools/extra_defs_gen/Makefile.am : Check for win32 platform and
	add the no-undefined flag if necessary.
	* tools/extra_defs_gen/generate_defs_gtk.cc : Removed PLUG and
	SOCKET related lines when building on win32.

2002-06-20  Jarek Dukat  <madmaxer@poczta.fm>
 
	* gtk/src/box.{ccg,hg}: Gtk::Box_Helpers::Element() and
	Gtk::Box_Helpers::EndElem() now use Gtk::AttachOptions
	instead of two bool arguments, just like Gtk::Box::pack_start().

2002-06-20  Jarek Dukat  <madmaxer@poczta.fm>

	Changed many get_...() methods to be const:
	* gdk/src/event.hg:
		Gdk::Event::get_time()
		Gdk::Event::get_state()
		Gdk::Event::get_coords()
		Gdk::Event::get_root_coords()
		Gdk::Event::get_axis()
	* gdk/src/image.hg:
		Gdk::Image::get_pixel()
	* gdk/src/pixbufanimation.hg:
		Gdk::PixbufAnimation::get_width()
		Gdk::PixbufAnimation::get_height()
		Gdk::PixbufAnimation::is_static_image()
	* gdk/src/window.hg:
		Gdk::Window::is_visible()
		Gdk::Window::is_viewable()
		Gdk::Window::get_state()
		Gdk::Window::get_geometry()
		Gdk::Window::get_position()
		Gdk::Window::get_origin()
		Gdk::Window::get_root_origin()
		Gdk::Window::get_events()
 
	* gtk/src/calendar.hg:
		Gtk::Calendar::get_date()
	* gtk/src/cellrenderertoggle.hg:
		Gtk::CellRendererToggle::get_radio()
		Gtk::CellRendererToggle::get_active()
	* gtk/src/colorselection.hg:
		Gtk::ColorSelection::get_previous_alpha()
		Gtk::ColorSelection::is_adjusting()
	* gtk/src/frame.hg:
		Gtk::Frame::get_label_align()
	* gtk/src/iconsource.hg:
		Gtk::IconSource::get_filename()
	* gtk/src/image.hg:
		Gtk::Image::get_storage_type()
	* gtk/src/label.hg:
		Gtk::Label::get_selection_bounds()
		Gtk::Label::get_layout_offsets()
	* gtk/src/misc.hg:
		Gtk::Misc::get_alignment()
		Gtk::Misc::get_padding()
	* gtk/src/treeview.hg:
		Gtk::TreeView::get_headers_visible()
		Gtk::TreeView::get_rules_hint()
		Gtk::TreeView::get_reorderable()
		Gtk::TreeView::get_enable_search()
		Gtk::TreeView::get_search_column()
	* gtk/src/widget.hg:
		Gtk::Widget::get_name()
		Gtk::Widget::get_extension_events()
		Gtk::Widget::get_events()
		Gtk::Widget::get_pointer()
		Gtk::Widget::is_ancestor()
		Gtk::Widget::get_composite_name()

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

	* Gtk::TextBuffer::create_mark(). Do additional reference() on
	return value. The GTK+ docs say that it doesn't happen
	automatically. Bug reported by Andrew E. Makeev <andrew@solvo.ru>.

2002-06-20  Michael v. Szombathely  <szombath@bifab.de>

	* gdk/src/drawable.ccg: Specify template specialization when using
	unwrap() with Gdk::GC, to avoid ambiguity with Sun's Forte compiler.

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

	* Added links to old gtkmm 1.2 docs to documentation overview page.

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

	* examples/gdk/radar.cc: Add missing namespace SigC:: prefix.
	I have no idea how it could compile without that.  A quick grep
	of the gtkmm headers didn't reveal anything nasty.  Hmm.

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

	* examples/gdk/radar.cc: Add missing namespace std:: prefixes,
	do some minor generic cleanup, and fix the value of PI ;)

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

	* tools/pm/WrapParser.pm: Comment-out the special case code
	for interface vfuncs and _WRAP_VFUNC_ONLY().

	* tools/m4/vfunc.m4: Disable the VFUNC_INTERFACE_* macros.

	* gtk/src/celleditable.hg: Split interface methods up into
	separate invoker and virtual method (with _vfunc suffix).
	Also try to use C++ types for vfuncs whereever possible.
	* gtk/src/editable.hg: ditto
	* gtk/src/treedragdest.hg: ditto
	* gtk/src/treedragsource.hg: ditto
	* gtk/src/treemodel.hg: ditto
	* gtk/src/treesortable.hg: ditto.

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

	* glib/src/module.hg (Module::Module): Add default argument
	ModuleFlags flags = ModuleFlags(0).

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

	* glib/src/gmodule_enums.defs: New file.
	* glib/src/glib.defs: Include gmodule_enums.defs.
	* glib/src/Makefile.am (files_defs): Add new .defs files.
	* glib/glibmm.h: #include <glibmm/module.h>.

	* glib/src/module.{ccg,hg}: Wrap enum GModuleFlags, and get rid
	of the gmodule.h header dependency.  Also make class Glib::Module
	noncopyable.
	(Module::get_symbol): Use void*& instead of gpointer&.

	* tools/m4/convert_gtk.m4: Add necessary conversions.

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

	* Added Glib::Module wrapper for gmodule functions. Bug #85915.

2002-06-19  Alain Rouge  <alain.rouge@enac.fr>

	* Added examples/gdk "radar" example. It demonstrates drawing with 
	gdkmm.

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

	* tools/: Split README into gtkmmproc_internals.txt and
	using_gtkmmproc.txt. Added Daniels' ChangeLog comments about the
	various _CLASS_BOXEDTYPE_* macros.

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

	* glib/src/fileutils.hg: FileError enum: rename TRY_AGAIN enum
	member to TRYAGAIN, to avoid a clash with a TRY_AGAIN macro that
	is in some unknown UNIX C header. Fixes problem with libbonobouimm.

1.3.16:

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

	* configure.in: Version 1.3.16, binary age 10:0:0.
	* configure.in: Require GLib >= 2.0.4; GTK+ >= 2.0.5.

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

	* glib/glibmm/main.{cc,h} (TimeoutSource): Try to get
	interval > G_MAXINT right, as GLib now does (#82624).  It seems
	as if this currently works only if sizeof(long) > sizeof(int),
	which is not the case on x86.  Hmm.

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

	* examples/cellrenderercustom/Makefile.am: Add missing header
	files, so that they'll be distributed.  Doh!

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

	* glib/src/thread.hg (Mutex::Lock): Replace the acquire_immediately
	parameter with overloaded ctors.  There are overloads on 2 distinct
	enum types: NotLock and TryLock.  Thus, the choice is evaluated at
	compile time now, and I think it's more readable too.
	(RecMutex::Lock): ditto
	(RWLock::ReaderLock): ditto
	(RWLock::WriterLock): ditto.

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

	* glib/src/thread.hg: Use 'struct' to forward-declare structs.

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

	* glib/src/thread.{ccg,hg}: Wrap the GThreadPriority enumeration
	as Glib::ThreadPriority, and document it.

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

	* glib/glibmm/dispatcher.cc: Fix embarassing spelling error.
	(struct DispatchNotifyData): Swap dispatcher and notifier pointers,
	so that dispatcher is now in the middle of the data.  This seems
	more appropriate since the other fields are used for sanity checks.

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

	* gtk/src/frame.{ccg,hg}: s/\<remove_/unset_/ for methods
	which pass 0 to the corresponding GTK+ setter function.  "unset"
	is a better term because "remove" implies a container action.
	* gtk/src/menu.{ccg,hg}: ditto
	* gtk/src/range.{ccg,hg}: ditto
	* gtk/src/spinbutton.{ccg,hg}: ditto
	* gtk/src/tooltips.{ccg,hg}: ditto
	* gtk/src/treeviewcolumn.{ccg,hg}: ditto
	* gtk/src/widget.{ccg,hg}: ditto.

	* gtk/src/frame.{ccg,hg}: Use _CTOR_DEFAULT() instead of
	implementing the default ctor manually.

	* gtk/src/spinbutton.hg: Add anonymous enum for GTK_INPUT_ERROR,
	and adapt the signal_input() documentation too.

	* gtk/src/widget.{ccg,hg} (get_path): Use Glib::ustring rather
	than std::string.
	(get_class_path): ditto.

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

	* gtk/src/fileselection.hg (set_filename): Change the filename
	argument type to std::string.  The get_filename/set_filename
	inconsistency has been fixed in GTK+ 2.0.4.

1.3.15:

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

	* configure.in: Bump version to 1.3.15, and binary age to 9:0:0.

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

	* configure.in: Now depends on newer libsigc++.
	* tools/m4/: vfunc and signal callbacks - Added
	explanatory comments about the is_derived_ optimisation.

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

	* examples/thread/dispatcher.cc: Add comments.

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

	* glib/glibmm/dispatcher.h: Add reference documentation.
	* glib/glibmm/dispatcher.cc: Minor tweaks.

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

	* glib/glibmm/dispatcher.{cc,h}: New files, implementing a special
	Glib::Dispatcher signal for easy inter-thread communication through
	a pipe.
	* glib/glibmm/Makefile.am: Add dispatcher.{cc,h}.
	* glib/glibmm.h: ditto.

	* examples/thread/dispatcher.cc: New example demonstrating
	Glib::Dispatcher.
	* examples/thread/Makefile.am: Add dispatcher.cc.

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

	* gtk/src/widget.{ccg,hg} (Gtk::WidgetFlags): New enum.
	(Widget::set_flags): Use the enum instead of guint32.
	(Widget::unset_flags): ditto.
	(Widget::get_flags): New method to get the flags.

	* gtk/src/widget.{ccg,hg} (Widget::width): Rename to get_width().
	(Widget::height): Rename to get_height().

	* examples/cellrenderercustom/popupentry.cc:
	s/GTK_CAN_FOCUS/Gtk::CAN_FOCUS/
	* examples/entry/entry.cc: s/GTK_CAN_DEFAULT/Gtk::CAN_DEFAULT/
	* examples/calendar/calendar.cc: ditto
	* examples/rangewidgets/rangewidgets.cc: ditto
	* examples/scrolledwin/scrolledwin.cc: ditto
	* examples/book/buttons/radiobutton/radiobuttons.cc: ditto.

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

	* gtk/src/menubar.ccg (MenuBar::hierarchy_changed_handler_):
	Check for gobj() != 0.  This hack is necessary because the
	"hierarchy_changed" signal is emitted during destruction.  We
	need a way to tell sigc++ to disconnect all slots prematurely.

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

	* gtk/src/menushell.ccg (MenuList::insert): Don't check for
	errors without handling them (sigh).  Get rid of "return the
	right iterator" crap -- I've no idea what the purpose of this
	special casing was.

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

	* gtk/src/menushell.{ccg,hg} (Gtk::MenuShell::MenuShell): Since
	all ctors are manually implemented anyway, we can as well do the
	items_proxy_ initialization here.
	(Gtk::MenuItem::items): Don't create a new MenuList, since it's
	now done only once in the constructor.

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

	* gtk/src/menushell.{ccg,hg}: Override the GtkMenuItem::insert
	vfunc by using the same hack as for GObject::dispose.  Move the
	accelerator activation code into insert_vfunc_callback(), so that
	it works independent of the method used to insert the MenuItem.
	This should hopefully fix all remaining menu accelerator problems.

2002-06-06  Jarek Dukat  <madmaxer@poczta.fm>

	* gtk/src/treesortable.hg: has_default_sort_func() changed to
	const.

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

	* gtk/src/menubar.{ccg,hg} (Gtk::MenuBar): Use a signal handler
	instead of overriding on_realize(), because it isn't invoked
	anymore for plain gtkmm classes.  Also, don't use signal_realize()
	but signal_hierarchy_changed(), since the latter seems more
	appropriate.

	* gtk/src/menushell.{ccg,hg} (Gtk::MenuShell): Replace the GObject
	qdata stuff with a member variable.  Unfortunately this requires
	all ctors to be implemented manually, in order to initialize the
	accel_window_ pointer.
	(Gtk::Menu_Helpers::MenuList): Make use of the accel_window_
	pointer.  Also, make the code slightly more sane.

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

	* gdk/src/drawable.hg (Gdk::Drawable): Make it build again ;)

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

	* gdk/src/drawable.hg (Gdk::Drawable): Constness fixes.

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

	* gdk/src/drawable.{ccg,hg} (Gdk::Drawable): Convert most methods
	to use C++ types.  draw_segments() and draw_glyphs() still use C
	types, because the necessary wrappers don't exist yet.

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

	* scripts/macros.m4 (GTKMM_CHECK_PERL): Remove the m4_pushdef()
	cruft and use an auxilary GTKMM_CV_PERL_VERSION() macro instead.
	This should hopefully solve any remaining autoconf/automake
	compatibility problems.

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

	* autogen.sh: Urgh, how got the backticks around the if-condition?
	Must have been sleepy when I wrote this.  Fixed.

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

	* gtk/src/cellrenderertext.{ccg,hg}: Add edited() method to emit
	the "edited" signal.  This signal is needed by derived cell
	renderers -- in plain GTK+, you're supposed to emit it directly.

	* examples/cellrenderercustom/cellrendererpopup.cc: Make use of
	the new CellRendererText::edited() method.

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

	* examples/cellrenderercustom/popupentry.cc: More minor cleanup.
	* examples/cellrenderercustom/cellrendererpopup.cc: ditto.

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

	* examples/cellrenderercustom/popupentry.cc (get_button_width):
	Use Gtk::manage() to simplify lifetime issues.

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

	* examples/cellrenderercustom/popupentry.cc: Get rid of
	accidentally left-over debug cruft.
	* examples/cellrenderercustom/cellrendererpopup.cc: ditto.

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

	* tools/m4/signal.m4 tools/m4/vfunc.m4: Replace g_assert(base != 0)
	with a normal if().  This is necessary because interfaces added to
	custom types don't have a parent interface class.

	* examples/cellrenderercustom/cellrendererlist.{cc,h}
	examples/cellrenderercustom/cellrendererpopup.{cc,h}
	examples/cellrenderercustom/popupentry.{cc,h}
	examples/cellrenderercustom/testpopup.cc: New example files.
	These implement a custom CellRendererList, which works like a
	Gtk::ComboBox.  This is a gtkmm port of the custom cell renderer
	in MrProject.  Thanks to them!

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

	* glib/glibmm/private/interface_p.h (Glib::Interface_Class): Add
	generic add_interface() method.  Also kill some unnecessary cruft.

	* glib/glibmm/interface.{cc,h}: Replace default ctor with a new
	ctor taking a reference to Glib::Interface_Class.  This way, we
	can add interfaces to an implementing type automatically.  Also
	remove interface_class static data from Glib::Interface, because
	it's useless.

	* tools/m4/class_interface.m4: Store a pointer to the interface
	init function in the class struct, as it's already done for non-
	interface classes.  Pass the Interface_Class to the Interface
	constructor.

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

	* demos/gtk-demo/example_sizegroup.cc: Add on_response() handler
	to hide() the window.  I'm still unsure whether Gtk::Dialog should
	always hide() on response.  If we decide to bring this feature
	back to live, we can use a similar hack as for "destroy".

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

	Implement on-the-fly creation of custom types:

	* glib/glibmm/class.{cc,h} (Glib::Class): Implement new method
	clone_custom_type(), used to derive a new GType from our wrapper
	class' parent type on the fly.  Make GClassInitFunc a member of
	Glib::Class, so that it can be accessed via the class_data pointer
	in Class::custom_class_init_function().

	* tools/m4/class_shared.m4 tools/m4/class_interface.m4: Rename
	Foo_Class::get_type() to init(), which returns a reference to
	Glib::Class rather than the GType.  This is necessary because
	Glib::Object has to access the Glib::Class object in order to
	clone a custom type.  See below.

	* glib/glibmm/objectbase.{cc,h} (Glib::ObjectBase): Add data
	member custom_type_name_, and two extra ctors to set it.  This
	is used by Glib::Object to clone custom types -- for details, see
	the comments in glibmm/objectbase.h and glibmm/object.cc.

	* glib/glibmm/object.{cc,h}: Implement auxilary ConstructParams
	class, and add a Glib::Object ctor that uses it.  This works
	similar to g_object_new(), but allows to move the actual GObject
	creation into the Glib::Object ctor.  In combination with the new
	special Glib::ObjectBase ctors, custom types can be derived
	easily -- see the code comments for details.

	* tools/m4/class_gobject.m4 tools/m4/class_gtkobject.m4: Generate
	__CPPNAME__(const Glib::ConstructParams&) ctor, for use by derived
	classes.  The __CPPNAME__(__CNAME__*) ctor should only be used by
	wrap_new() now.

	* gtk/src/object.{ccg,hg}: Remove wrapper of "destroy" signal.
	Its usage in Gtk::Container conflicts with the optimization of
	non-custom types as decribed below.  Also, implement new ctor
	Gtk::Object::Object(const Glib::ConstructParams&).

	* tools/m4/ctor.m4 (_CTOR_DEFAULT): Replace g_object_new() with
	Glib::ConstructParams, and call the ctor of Glib::ObjectBase with
	custom_type_name = 0.
	(_CTOR_IMPL): ditto.
	(_CONSTRUCT): New macro: Sometimes it's necessary to implement
	ctors manually.  This is a convenience macro which generates the
	code that calls the base ctors.  It's useful since with direct
	base classes and virtual ones it's slighty more complicated now.
	(_CONSTRUCT_SPECIFIC): Yikes!  Same as _CONSTRUCT(), but takes
	BaseClass and Class parameters.  It's necessary if a gtkmmproc
	input file defines more than one class.

	* tools/m4/signal.m4 tools/m4/vfunc.m4: In the signal handler
	and vfunc callbacks, skip the invocation of C++ virtual methods
	if the object's class is not a user-derived class.  A large
	comment in glibmm/objectbase.h describes how it works.  Also,
	fix a bug with a missing 'return' statement if the base class'
	function returns a value.

	* gtk/src/*.ccg: Convert all custom ctors to use _CONSTRUCT()
	or _CONSTRUCT_SPECIFIC().

	* gtk/src/dialog.{ccg,hg}: Remove the custom on_response()
	handler -- it conflicts with the optimization of non-custom
	types, and what it does (calling hide) is questionable anyway.

	* gtk/src/container.{ccg,hg}: Hook in a custom "destroy" handler
	by using the same hack as in widget.hg for "delete_event".  Use
	plain C to implement it, because at this stage (we're in the middle
	of destroying, after all) it's no good using our wrappers.  We have
	a lot of wrapper-recreation problems during destroy, which I'm
	trying to reduce.

	* gtk/gtkmm/cellrenderercustom.{cc,h}
	gtk/gtkmm/private/cellrenderercustom_p.h: Remove files, they're
	no longer necessary to create a custom Gtk::CellRenderer.

	* examples/cellrenderercustom/cellrenderertoggle.cc: Derive from
	Gtk::CellRenderer directly, and use the Glib::ObjectBase ctor to
	create a custom type.

	* examples/Makefile.am: Add cellrenderercustom directory.

	* demos/gtk-demo/example_colorsel.cc (on_button_clicked): Put
	the Gtk::ColorSelectionDialog on the stack rather than manually
	deleting it.

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

	* glib/glibmm/property.cc: Redefine G_STRLOC so that it works
	with g++.  This is a temporary hack till GLib gets fixed.

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

	* glib/src/value_basictypes.cc.m4: Replace G_MININT64, G_MAXINT64
	and G_MAXUINT64 with G_GINT64_CONSTANT(hexnumber).  The min/max
	macros don't work with GCC 2.95.4, probably because they weren't
	using the correct number literal suffix.  I hope it works now.

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

	* tools/m4/base.m4: Remove #include <gdk/gdkenumtypes.h>
	kludge -- it's now fixed in GTK+.

	* configure.in: Require GLib >= 2.0.3 and GTK+ >= 2.0.3.

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

	* gtk/gtkmm/cellrenderercustom.{cc,h}
	gtk/gtkmm/private/cellrenderercustom_p.h: New files, implementing
	a Gtk::CellRendererCustom base class for custom cell renderers.

	* gtk/gtkmm/Makefile.am gtk/gtkmm/private/Makefile.am gtk/gtkmm.h:
	Add new source files.

	* examples/cellrenderercustom: New directory, containing a
	re-implementation of Gtk::CellRendererToggle in C++, using
	Gtk::CellRendererCustom.

	* configure.in: Add the new example directory.

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

	* glib/glibmm/property.{cc,h}: New files, implementing the
	Glib::Property<> template class.  This can be used to create new
	GObject properties on the fly, which is important for custom
	CellRenderer implementations.

	* glib/glibmm/Makefile.am glib/glibmm.h: Add new files.

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

	* glib/glibmm/objectbase.h: Make ObjectBase::_get_current_wrapper()
	public, so that it can be used freely in internal gtkmm code.

	* glib/glibmm/utility.{cc,h}: Add internal utility function
	Glib::append_canonical_typename().  This should be used to create
	GObject typenames from C++ RTTI names, because they might contain
	characters not allowed by GObject.

	* glib/glibmm/value_custom.cc: Use append_canonical_typename().

	* glib/glibmm/value.{cc,h} glib/src/value_basictypes.{cc,h}.m4:
	Add internal create_param_spec() method to all Glib::ValueBase_Foo
	classes.  These can be used to create a GParamSpec for the GType
	that is stored in the GValue.

	* glib/glibmm/value_custom.h (Glib::Value<T>): Derive from
	Glib::ValueBase_Boxed, so that its create_param_spec() method
	gets inherited.

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

	* gtk/src/cellrenderer.{ccg,hg}: Add the _vfunc() suffix to all
	vfunc wrapper methods, so that they no longer have the same name
	as the interface methods.  Convert the vfuncs to use C++ types.

	* tools/m4/convert_{gdk,gtk}.m4: Add necessary conversions for
	the types used by Gtk::CellRenderer vfuncs.

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

	* gtk/src/style.{ccg,hg}, tools/m4/convert_{gtk,pango}.m4:
	Wrap the gtk_paint_*() family of functions in class Gtk::Style.

2002-05-31  Jarek Dukat  <madmaxer@poczta.fm>

	* gtk/src/treesortable.{ccg,hg}: Implement SignalProxy_Compare,
	so that TreeSortable::set_sort_func() and set_default_sort_func()
	can use SigC::Slots now.

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

	* gtk/src/notebook.{ccg,hg}: Reimplement STL-style interface.
	Since the data stored in GtkNotebook's GList is inaccessible
	the iterator "PageIterator" has to hold a pointer to the Notebook
	that owns the list. "Page" (the value_type of "PageList")
	inherits "PageIterator" privately and uses Notebook-API-functions
	to retrieve and manipulate data.
	* examples/notebook/notebook.cc: Use the STL-style interface.
	Add a "find page 4" button to demonstrate the use of PageIterator.

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

	* gtk/src/stockitem.ccg (Gtk::StockItem::lookup): Don't assign
	the returned GtkStockItem if it is invalid.

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

	* gtk/src/stockitem.{ccg,hg} (Gtk::StockItem): Add constructor
	to create a new stock item.  Use a StockItem& as output parameter
	in lookup(), and return true if the stock ID is known.  With this
	change, it's actually possible to check that.

	* gtk/gtkmm/stock.{cc,h}: Implement Gtk::Stock::add(), and make
	Gtk::Stock::lookup(const Gtk::StockID&, Gtk::StockItem&) using
	the modified Gtk::StockItem::lookup() function.

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

	* glib/glibmm/ustring.h: Rearrange the member group tags in the
	Glib::ustring documentation, so that it works with Doxygen 1.2.16.
	In Glib::ustring_Iterator<T>, remove the unnecessary assignment
	operator for Glib::ustring_Iterator<std::string::iterator> --
	the implicit conversion constructor is sufficient.

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

	* demos/gtk-demo/example_panes.cc: Use Gtk::manage() instead of
	member variables for widgets that aren't accessed after setting
	them up.  Also move everything into the anonymous namespace.

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

	* gtk/src/paned.{ccg,hg} (Gtk::Paned::pack[12]): Use the enum
	Gtk::AttachOptions instead of two bool arguments, just like
	Gtk::Box already uses.  Although it isn't a perfect match either,
	it seems very nice having similar interfaces.

	* gtk/src/paned.hg (Gtk::Paned): Get rid of the _MEMBER_GET()
	accessors to private GtkPaned fields.

	* demos/gtk-demo/example_panes.cc: Adapt to new Gtk::Paned API.
	This task turned out harder than expected, because this example
	has been accessing private GtkPaned member data.  Furthermore,
	the code seemed to be nothing but a rotten and fragile hack.
	I ended up rewriting half of it, and it looks much simpler now.

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

	* glib/glibmm/object.{cc,h}: Remove wrap_specific_type(),
	and simplify Glib::Object_Class::get_type() by using
	Glib::Class::register_derived_type().

	* gtk/src/style.{ccg,hg}: Replace hand-coded setters for the
	Gtk::Style colors with a _STYLE_MEMBER_COLOR() macro, which
	autogenerates them.  Also add missing get_*() methods.

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

	* gtk/src/main.{ccg,hg}: Remove Gtk::IdleSig, Gtk::TimeoutSig
	and Gtk::InputSig, as well as the corresponding accessors in
	class Gtk::Main.  All three signals are now supported in glibmm,
	with an almost identical interface and either the same or even
	more functionality.

	* gtk/src/main.hg (Gtk::Kit): Remove this silly typedef.  Its
	existence is utter nonsense -- please redirect your flames to
	/dev/null :-P

	* demos/gtk-demo/*.cc: Get rid of all occurrences of Gtk::Kit,
	Gtk::Main::signal_idle() and Gtk::Main::signal_timeout().
	* examples/*/*.cc: ditto

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

	* gdk/src/pixmap.ccg (Gdk::Pixmap_Class::wrap_new): Ouch,
	Gdk::Bitmap of course has a depth of 1, rather than 2.

	* gdk/src/bitmap.hg: Correct comment about Gdk::Bitmap depth.

	* examples/window/wheelbarrow.cc: Beautify the code and remove
	unnecessary stuff.  Make the example more useful by showing off
	the Gtk::Window::begin_move_drag() feature.

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

	Large patch to get rid of wrap_specific_type():

	* tools/m4/class_gobject.m4, tools/m4/class_interface.m4: Remove
	all stuff related to wrap_specific_type().  No longer recognize
	the _NO_DERIVED_CLASS flag, and comment out _NO_WRAP_FUNCTION.

	* tools/generate_wrap_init.pl.in: Ignore _NO_WRAP_FUNCTION flag.

	* gdk/src/pixbuf.hg: Kill _NO_DERIVED_CLASS, _NO_WRAP_FUNCTION,
	and/or specializations of Glib::Container_Helpers::TypeTraits<>.
	* gdk/src/pixbufanimation.hg: ditto
	* gdk/src/pixbufanimationiter.hg: ditto
	* gdk/src/pixmap.hg: ditto
	* gdk/src/visual.hg: ditto
	* gdk/src/window.hg: ditto
	* pango/src/context.hg: ditto
	* pango/src/font.hg: ditto
	* pango/src/fontface.hg: ditto
	* pango/src/fontfamily.hg: ditto
	* pango/src/fontmap.hg: ditto
	* pango/src/fontset.hg: ditto
	* pango/src/layout.hg: ditto

	* gdk/src/window.{ccg,hg}: Use GDK_WINDOW_OBJECT as C cast macro,
	and remove the gdk_window_get_type #define.

	* tools/m4/class_gobject.m4: Allow for a custom wrap_new()
	function by setting the _CUSTOM_WRAP_NEW flag.

	* gdk/src/bitmap.{ccg,hg}: Make Gdk::Bitmap a C++-only type.  In
	GDK itself, there is no (typewise) difference between GdkPixmap and
	GdkBitmap -- not even internally.

	* gdk/src/pixmap.{ccg,hg}: Implement a custom wrap_new() function
	that creates Gdk::Bitmap instead of Gdk::Pixmap if depth == 2.

	* gdk/src/pixmap.ccg, gdk/src/window.ccg: Adapt the code, because
	Glib::wrap() for Gdk::Pixmap now takes a GdkPixmapObject* argument.
	Also, add extra cast_dynamic() calls when wrapping to Gdk::Bitmap.

	* tools/m4/convert_gdk.m4: Replace all wrap_specific_type()
	conversions with normal Glib::wrap() calls.  Add casts to the
	right C type if necessary.

	* demos/gtk-demo/example_drawingarea.cc: Replace call to
	Gdk::Window::wrap_specific_type().

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

	* build_shared/Makefile_build.am_fragment (extra_defines):
	Add -DGDK_PIXBUF_DISABLE_DEPRECATED, just for completeness.

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

	* gtk/src/treeviewcolumn.{ccg,hg} (SlotCellData): Reduce the
	number of arguments to the callback slot.  One can always use
	SigC::bind() to add parameters which aren't accessed often.

	* gtk/gtkmm/treeview_private.{cc,h} (SignalProxy_CellData):
	Code cleanup, don't check for errors without handling them,
	and add missing exception traps.

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

	* demos/gtk-demo/example_stockbrowser.cc
	(Example_StockBrowser::on_selection_changed): Display the
	accelerator key in the details box on the right, just like
	the GTK+ stock browser demo does.

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

