2.2.1: 2003-03-15 Murray Cumming <murrayc@usa.net> * Makefile.am: Added examples to SUBDIRS so that they are installed by default and because I would like to make sure they always build. This significantly adds to the build time. 2003-03-14 Cedric Gustin <cgustin@ibelgique.com> * build_shared/Makefile_build.am_fragment : Removed OS_WIN32 platform option in sublib_include_HEADERS. All header files are installed whatever the platform. * docs/Makefile_web.am_fragment, docs/tutorial/Makefile.am, docs/FAQ/Makefile.am : Changed installation directory for documentation (see http://bugzilla.gnome.org/show_bug.cgi?id=103688 for details). Added install rule for FAQ. * examples/Makefile.am_fragment : Added install rule for examples source files (.cc and .h) referenced by the gtkmm book (docs/tutorial). 2003-03-14 Sven Grottke <sfs@cs.tu-berlin.de> * gdk/src/cursor.hg: * gdk/src/displaymanager.hg: * gdk/src/drawable.hg: * gdk/src/event.hg: * gdk/src/screen.hg: * gdk/src/visual.hg: * gtk/src/clipboard.hg: * gtk/src/menu.hg: * gtk/src/rc.ccg: * gtk/src/widget.hg: Used refreturn on various methods. This should close bug #108233 (hopefully) 2003-03-14 Murray Cumming <murrayc@usa.net> * configure.in: Depends on atk 1.2 instead of just atk 1.0, because the source actually requires it. 2003-03-13 Martin Schulze <MHL.Schulze@t-online.de> * docs/internal/using_gtkmmproc.txt: Correct name of [...]signals.defs generation utiliy. 2003-03-04 Cedric Gustin <cgustin@ibelgique.com> * configure.in : Removed libstdc++ in LDFLAGS on win32. Latest libtool is taking care of it. * atk/src/action.hg, atk/src/component.hg, atk/src/object.hg, atk/src/text.hg, gdk/src/display.hg, gdk/src/displaymanager.hg, gdk/src/screen.hg, gdk/src/window.hg, glib/glibmm/threadpool.cc, gtk/gtkmm/menu_elems.cc, gtk/src/clipboard.hg, gtk/src/treerowreference.hg, gtk/src/widget.hg, gtk/src/window.hg: Added _GTKMMPROC_H_AND_CC when relevant around methods and signals not available on win32. * build_shared/Makefile_build.am_fragment, tools/extra_defs_gen/Makefile.am : Added --export-all-symbols linker flag on win32 (required by latest libtool to build DLLs). * build_shared/Makefile_gensrc.am_fragment : Modifiy rule that builds wrap_init.cc. wrap_init.cc now contains reference to all objects, event on win32. #ifdefs are included when needed. * demos/gtk-demo/example_change_display.cc : Added #ifdef G_OS_WIN32 to remove references to methods not available on win32 (will be removed when DisplayManager becomes available). * gdk/src/Makefile_list_of_hg.am_fragment, gtk/src/Makefile_list_of_hg.am_fragment : moved displaymanager.hg, clipboard.hg and treerowreference.hg to posix files (the corresponding objects are currently not available on win32). * README.win32 : updated for version 2.2. Added list of missing methods and signals on win32 * tools/extra_defs_gen/generate_defs_gtk.cc : Commented out DISPLAYMANAGER on win32. * tools/m4/base.m4 : Added _GTKMMPROC_SIGNAL_H_AND_CC macro. 2003-02-27 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu> * glib/src/thread.hg Cond: Add documentation 2003-02-27 Bryan Forbes <mxpxfifws@yahoo.com> * gtk/src/accelgroup.hg: * gtk/src/accellabel.hg: * gtk/src/adjustment.hg: * gtk/src/alignment.hg: * gtk/src/arrow.hg: * gtk/src/aspectframe.hg: * gtk/src/bin.hg: Added documentation for constructors and _MEMBER_GET() wrappers. * gtk/src/box.hg: Added the PackOptions enum into the gtkmmEnums group so it is now on the correct documentation page. * gtk/src/enums.hg: Allow Doxygen to grab Gtk::AlignmentEnum (used in alignment.hg and others) and added it to the gtkmmEnums group. * gtk/src/gtk_docs_override.xml: Added documentation for methods in accelgroup.hg, accellabel.hg, adjusment.hg, and arrow.hg. 2003-01-27 Murray Cumming <murrayc@usa.net> * gdk/src/display.hg: Used refreturn on get_default() and get_core_pointer(), preventing segfaults. 2003-01-24 Murray Cumming <murrayc@usa.net> * gtk/gtkmm/menu_elems.cc: Element::Element(MenuItem): Use the Glib::RefPtr<> constructor explicitly, for clarity, and do the necessary extra ref - fixes lifetime bug 104194 2003-01-09 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/utility.h (GLIBMM_INITIALIZE_STRUCT): Replace __builtin_bzero() with __builtin_memset() because the former is deprecated. Also, it looks like GCC is able to optimize the 0 case so we don't lose anything here. 2003-01-09 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/miscutils.cc (Glib::build_path): Reserve 256 bytes in advance to improve performance. 2003-01-09 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/miscutils.{cc,h} (Glib::build_path): Fix to make it behave exactly like g_build_path(). (#102885, Jarek Dukat) (Glib::build_filename(const std::string&, const std::string&)): Implement in terms of Glib::build_path(). 2003-01-08 Murray Cumming <murrayc@usa.net> * gtk/src/treeview.hg: Change TreeView::_auto_store_on_cellrenderer_text_edited_numerical() to use strtod instead of strtol, so that it can be used for doubles and floats. Added float and double specializations of TreeView_Private::_connect_auto_store_editable_signal_handler() to allow use of TreeView::append_column_editable() with float and double model columns. We think that the addition of these specializations would break API though, so these are commented-out, with a TODO comment. 2.2.0: 2003-01-06 Daniel Elstner <daniel.elstner@gmx.net> * examples/cellrenderercustom/cellrenderertoggle.cc: Be a good boy and ditch g_strdup_printf() plus internal Glib::ScopedPtr<> in favor of std::ostringstream. * examples/cellrenderercustom/testpopup.cc: ditto. 2003-01-05 Murray Cumming <murrayc@usa.net> * gdk/src/window.[hg|ccg]: Added the extra pointer_grab() overload needed by examples/customcellrenderer/ 2003-01-05 Murray Cumming <murrayc@usa.net> * demos/gtk-demo/: Added Change Display part, based on the same part in the C version, to exercise Gdk::Display and Gdk::Screen. * gdk/src/display.[hg|ccg], screen.[hg|ccg]: Added some overloads now that gtk-demo has shown that some method arguments can be 0. Wrapped signals. * gdk/src/displaymanager.hg: Wrapped signal. * gdk/src/window.[hg|ccg]: Wrapped pointer_grab(), pointer_ungrab(), keyboard_grab() and keyboard_ungrab(). * gdk/gdkmm/general.[h|cc]: Added Gdk::flush(). 2003-01-04 Murray Cumming <murrayc@usa.net> * Added the beginnings of a TextView book chapter and example. 2003-01-04 Murray Cumming <murrayc@usa.net> * gtk/src/clipboard.hg: Added some documentation, based on the C documentation, for methods that aren't produced by _WRAP_METHOD(). 2003-01-04 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/object.{cc,h} (Glib::Object): ([gs]et_property_value): Implement. ([gs]et_property): Implement. 2003-01-03 Murray Cumming <murrayc@usa.net> * gtk/src/gtk_docs_override.xml: Added C++-ized version of the documentation for Gtk::Dialog::run(). 2.1.3: 2003-01-01 Daniel Elstner <daniel.elstner@gmx.net> * tools/pm/DocsParser.pm (convert_tags_to_doxygen): Add a few more substitutions to improve the output. 2003-01-01 Daniel Elstner <daniel.elstner@gmx.net> * atk/src/table.hg (Atk::Table): Fix copy'n'paste mistakes. 2003-01-01 Daniel Elstner <daniel.elstner@gmx.net> * atk/src/noopobject.hg: Don't hide Atk::NoOpObject from the docs, because otherwise it's hard to know that all the ATK interfaces belong together; i.e. you can dynamic_cast<> between them. Also, if you want to use atkmm seriously you probably have to understand the architecture of the object hierarchy anyway. 2002-12-31 Daniel Elstner <daniel.elstner@gmx.net> * tools/extra_defs_gen/generate_extra_defs.cc: Tweak the code a bit to make it list signals of interfaces too. * tools/extra_defs_gen/generate_defs_gtk.cc: Add a couple of ATK interface types. * atk/src/atk_signals.defs: Add missing signal defs. * atk/src/atk_vfuncs.defs: Add missing vfunc defs. * atk/src/editabletext.{ccg,hg}: * atk/src/image.{ccg,hg}: * atk/src/selection.{ccg,hg}: * atk/src/table.{ccg,hg}: * atk/src/text.{ccg,hg}: * atk/src/value.{ccg,hg}: New wrappers of ATK interfaces. * atk/src/noopobject.{ccg,hg}: New wrapper of AtkNoOpObject, a dummy class that implements all of the interfaces in ATK as no-ops. * atk/src/object.{ccg,hg} (Atk::Object_Class::wrap_new): Abuse Atk::NoOpObject to avoid instantiating Atk::Object directly. This is necessary because there is no C++ wrapper for gail, thus the interfaces would never be available from C++ code. * atk/src/Makefile_list_of_hg.am_fragment: Add new files. * atk/atkmm.h: ditto. * tools/m4/convert_atk.m4: * tools/m4/convert_glib.m4: * tools/m4/convert_gtk.m4: Add/fix several conversions. 2002-12-30 Murray Cumming <murrayc@usa.net> * configure.in: Changed LIBGTKMM_SO_VERSION to what it would be if we had never increased the interface number (the first one). We want libtool to think that gtkmm 2.2.0 is not API incompatible with gtkmm 2.0.0. GTK+ doesn't even use this libtool feature. People will need to remove the previous unstable gtkmm 2.1.x so libraries - we'll give instructions. 2002-12-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/textbuffer.hg: Use a nasty _CONVERSION() hack to get insert_text_callback() to use the length argument, rather than depending on 0-termination of the string. This fixes an invalid read of size 1 detected by valgrind. 2.1.2: 2002-12-30 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/fileutils.hg: Add missing @ingroup tags. 2002-12-30 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/fileutils.{ccg,hg} (Glib::file_open_tmp): Implement. (Glib::file_get_contents): Implement. 2002-12-30 Daniel Elstner <daniel.elstner@gmx.net> * docs/tutorial/figures/Makefile.am (figures_DATA): Remove treeview_draganddrop.png because it's not in the repository. 2002-12-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treemodelsort.ccg (Gtk::TreeModelSort): (convert_iter_to_child_iter): Fix cut'n'paste mistake. (set_value_impl): Don't forget to convert the iterator. 2002-12-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treemodelsort.{ccg,hg}: New files, implementing Gtk::TreeModelSort. * gtk/src/Makefile_list_of_hg.am_fragment: Add new files. * gtk/src/treemodel.hg (Gtk::TreeModel): Add friend declaration of Gtk::TreeModelSort, which is necessary to forward set_value_impl(). 2002-12-30 Murray Cumming <murrayc@usa.net> * gtk/src/treeiter.[hg|ccg] Removed the new const overrides of get_iter(), because they need more serious attention. Added TODOs for the next API break. 2002-12-29 Murray Cumming <murrayc@usa.net> * gtk/src/treeview.hg: enable_model_drag_source(), and enable_model_drag_dest(): Add Gdk::ACTION_MOVE to default argument value, because moving seems like an expected behaviour in a tree. Added enable_model_drag_source() override without targets, to use the standard GTK_TREE_MODEL_ROW target, as expected by the default drag-and-drop handlers. * gtk/src/treepath.[hg|ccg]: Added get_from_selection_data() and set_in_selection_data(). This might not be the best place to put them but they seem only loosely connected with SelectionData too. * gtk/src/treeiter.[hg|ccg]: Added const overrides of the get_iter() methods, using a const_iterator typedef. I'm not sure whether we should do something more complicated for const_iterator. * examples/book/treeview/tree/: Use TreeView::set_reorderable(), to show it working. * examples/book/treeview/drag_and_drop: Instead of overriding a TreeView, override the TreeModel and reimplement the row_draggable() and drop_possible() methods, using data from the model itself. 2002-12-29 Daniel Elstner <daniel.elstner@gmx.net> * gdk/src/types.{ccg,hg}: Use std::string instead of Glib::ustring for GdkAtom names. While it's true that atom names should probably always be pure ASCII and thus valid UTF-8, they should definitely not be compared using locale-dependent collation algorithms. Thus play safe and use std::string; it's more efficient too. * gtk/src/selectiondata.{ccg,hg}: Likewise. * examples/book/clipboard/ideal/examplewindow.cc: Likewise. Also fix another dangling reference, and use std::find() instead of an explicit loop to iterate over the target list. 2002-12-29 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/selectiondata.{ccg,hg} (Gtk::SelectionData::set): Use guint8* rather than guchar* -- they're identical, but guint8* is better suited to point out that raw bytes are requested. Recent GdkPixbuf code is using guint8 as well. (Gtk::SelectionData::get_{data,length}): Add these accessors, since it's not always appropriate to copy std::strings around. (Gtk::SelectionData::get_selection): Add accessor that returns the selection ID. Some code might require this information. (Gtk::SelectionData::get_data_type): New accessor to the 'type' struct member. This is different from get_target() in that it returns the type of the currently assigned data, rather than the possible destinations. (Gtk::SelectionData::include_text): Rename to targets_include_text() as in GTK+ -- include_text() was meaningless, or at least spelled incorrectly. * examples/book/clipboard/ideal/examplewindow.cc (on_clipboard_get): Eeek, don't store a reference to a temporary. 2002-12-29 Daniel Elstner <daniel.elstner@gmx.net> * gdk/src/types.{ccg,hg} (Gdk::AtomStringTraits): Implement traits for use with Glib::ArrayHandle<>. * gtk/src/selectiondata.{ccg,hg} (Gtk::SelectionData::get_targets): Get rid of the broken list construction code and just return a Glib::ArrayHandle<Glib::ustring,Gdk::AtomStringTraits>. (Gtk::SelectionData::set): Take a std::string argument since it's raw data. (Gtk::SelectionData::get_data_as_text): Return a std::string, and rename to get_data_as_string(). Murray, I hope it's OK to do this? The existence of get_text() vs. get_data_as_text() seemed quite confusing; at least it confused me. Also, the returned data is by no means required to be text AFAICT. * examples/book/clipboard/ideal/examplewindow.cc: Replace call to get_data_as_text() with get_data_as_string(). * examples/book/treeview/drag_and_drop/treeview_dndable.cc: Comment-out an unused static variable to silence the compiler. 2002-12-29 Murray Cumming <murrayc@usa.net> * examples/book/treeview: Added the beginnings of a drag_and_drop example for the TreeView. 2002-12-29 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/box.hg (Child): Fix my last commit: Now we finally know what this ctor declaration was for. I replaced it with a dummy friend declaration plus comment instead. * gtk/src/table.hg (Child): ditto * gtk/src/toolbar.hg (Tool): ditto. 2002-12-29 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/box.hg (Child): Get rid of the insane ctor declaration Child(void* do_not_derive_this). We have comments for that in C++, and there's nothing to gain or lose by by deriving from Child anyway. I reckon Karl (or whoever wrote this) was just on crack. * gtk/src/table.hg (Child): ditto * gtk/src/toolbar.hg (Tool): ditto. 2002-12-29 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/accelgroup.{ccg,hg} (Gtk::AccelGroup::activate): Make this a static method that wraps gtk_accel_groups_activate(). * tools/m4/convert_gtk.m4: Add Gtk::Object& conversion. 2002-12-29 Murray Cumming <murrayc@usa.net> * gdk/src/display.hg: Added lookup_pixmap(). * gdk/src/pixmap.[hd|ccg]: Wrapped gdk_pixmap_foreign_new_for_display as a constructor and create() method. * gdk/src/screen.hg: Added get_setting() as a templated method. * gtk/src/treeview.[hg|ccg]: enable_model_drag_dest() - added a default argument value. Added enable_model_drag_source() overload with a different argument order which allows default argument values. 2002-12-27 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/refptr.h (Glib::swap<>): Add @relates tag. 2002-12-27 Daniel Elstner <daniel.elstner@gmx.net> * demos/gtk-demo/demowindow.{cc,h}: Install a select_function() that allows only leaf nodes to be selected. This nicely prevents the ugly warning message when clicking on the "Tree View" node. 2002-12-27 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/refptr.h (Glib::RefPtr<>::operator=): Reimplement copy assignment by using the swap technique described in Herb Sutter's "Exceptional C++". Also elaborate about this stuff in a fairly large comment. (Glib::RefPtr<>::clear): Make use of swap() here too. 2002-12-27 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/refptr.h (Glib::RefPtr<>::swap): Implement. (Glib::swap<>): Implement. (Glib::RefPtr<>): For clarity, use the 'inline' keyword in method declarations too, not only in the implementation's prototype. 2002-12-27 Daniel Elstner <daniel.elstner@gmx.net> * scripts/docgen.m4 (GTKMM_ARG_ENABLE_FULLDOCS): Make the default setting of --enable-fulldocs depend on --enable-maintainer-mode. Also try to check for the XML::Parser module if we need to build sources. I remember having had some trouble with this; i.e. I'm not sure if the test always suceeds, particularly with Perl 5.8. * scripts/macros.m4 (GTKMM_CHECK_PERL): Some minor corrections. 2002-12-26 Daniel Elstner <daniel.elstner@gmx.net> * gdk/src/pixmap.ccg (Gdk::Pixmap::create_*): Use Glib::unwrap() instead of gobj() since the RefPtr<> can be 0. * gdk/src/pixmap.hg (Gdk::Pixmap::create): This has no equivalent in GDK and thus doesn't work at all. A Gdk::Pixmap created via this function causes a segmentation fault on the last unreference, as the GDK code tries to access data that has never been set up. Add TODO comment stating that it should be removed at some point. * gdk/src/{bitmap,pixmap}.hg: The ctors and create() methods should all take a Gdk::Drawable instead of a Gdk::Window -- add TODOs. This has recently been fixed in GDK but we can't follow the change without breaking ABI. 2002-12-25 Naofumi Yasufuku <naofumi@yasufuku.net> * glib/glibmm/dispatcher.cc: Under mingw32, macro definitions in fcntl.h are required by pipe(). 2002-12-24 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/colorselection.ccg (global_change_palette_hook_callback): Trap all exceptions thrown from the C++ callback slot. 2002-12-24 Daniel Elstner <daniel.elstner@gmx.net> * examples/book/clipboard/ideal/examplewindow.cc (on_clipboard_get): Remove unused parameter name to avoid a warning. Also convert some macros to properly typed constants. 2002-12-24 Murray Cumming <murrayc@usa.net> * docs/tutorial/gtkmm-tut.xml: Wrote the Clipboard chapter. 2002-12-24 Daniel Elstner <daniel.elstner@gmx.net> * autogen.sh: Pass --enable-warnings=hardcore to configure when building with gcc3, and the user didn't say otherwise on the command line. 2002-12-24 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/selectiondata.hg (Gtk::SelectionData::get_targets): Remove extra qualification from declaration to silence GCC. 2002-12-24 Murray Cumming <murrayc@usa.net> * gtk/src/clipboard.[hg|ccg] renamed one of the request_contents() methods to request_targets() because that's all it does. 2002-12-24 Murray Cumming <murrayc@usa.net> * gtk/src/clipboard.ccg: SignalProxy_GetClear::gtk_callback_get(): Don't clear() the slot, so it can be called again. This was just copy/ pasted from elsewhere. * examples/book/clipboard/ideal: This now works normally. Added code to disable the Paste button if no suitable data is available. 2002-12-24 Murray Cumming <murrayc@usa.net> * gtk/src/selectiondata.[hg|ccg]: Added accessors, and a wrapper for gtk_selection_data_get_targets(), with documentation about how it could be used. * gtk/src/clipboard.[hg|ccg]: Added a request_contents() overload that uses the special TARGETS target, with documentation. * examples/book/clipboard/ideal/examplewindow.cc (on_clipboard_get): Check the selection_data's target, not the info parameter, because that seems to be always 0. 2.1.1: 2002-12-23 Mark Jones <mark.jones106@verizon.net> * gtk/src/fileselection.hg (Gtk::FileSelection::get_history_pulldown): New convenience method to get the history option menu so that it can be hidden if desired. 2002-12-23 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/widget.hg (Gtk::Widget::get_parent): We should return Gtk::Container* here -- add TODO comment. (Gtk::Widget::get_toplevel): ditto. 2002-12-23 Daniel Elstner <daniel.elstner@gmx.net> * atk/src/atk_docs.xml: Regenerate from latest CVS sources. * gdk/src/gdk_docs.xml: ditto * gtk/src/gtk_docs.xml: ditto * pango/src/pango_docs.xml: ditto. * tools/pm/DocsParser.pm (convert_tags_to_doxygen): Replace "—" with "@htmlonly—@endhtmlonly" because Doxygen is too dumb to recognize it. 2002-12-23 Murray Cumming <murrayc@usa.net> * gtk/gtkmm/selectiondata_private.h: Hid from doxygen. * gtk/src/clipboard.[hg|ccg]: wait_*() methods are now const. * atk/relation.[hg|ccg]: Added const overload of get_target(). 2002-12-23 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/liststore.{ccg,hg} (Gtk::ListStore::iter_swap): Implement. (Gtk::ListStore::move): Implement. (Gtk::ListStore::reorder): Implement. (Gtk::ListStore::iter_is_valid): Implement. * gtk/src/treestore.{ccg,hg} (Gtk::TreeStore::iter_swap): Implement. (Gtk::TreeStore::move): Implement. (Gtk::TreeStore::reorder): Implement. (Gtk::TreeStore::iter_is_valid): Implement. 2002-12-23 Murray Cumming <murrayc@usa.net> * gtk/gtkmm/: Added selectiondata_private.[h|c], with a SelectionData_WithoutOwnership, for use as an output arg. * gtk/src/clipboard.hg: SlotGet now takes a SelectionData& instead of a GtkSelectionData*. It's actually a SelectionData_WithoutOwnership, but people don't need to know that. 2002-12-23 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/widget.{ccg,hg} (Gtk::Widget::modify_bg_pixmap): New convenience method to change the widget's background pixmap. This seems to be truly missing in GTK+, considering that modify_bg() has no effect if a background pixmap is set by the theme. (Gtk::Widget::get_modifier_style): Add const overload. * tools/m4/convert_gtk.m4: Add const Gtk::RcStyle conversion. * demos/gtk-demo/example_colorsel.cc: Get rid of the recently added expose_event handler and use modify_bg_pixmap() instead. 2002-12-23 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/style.{ccg,hg} (Gtk::Style::set_[xy]thickness): Wrap manually because _MEMBER_SET() forces reference arguments, which looks weird with simple types like 'int'. Unfortunately we can't fix _MEMBER_SET() at this point because that would break ABI. * gtk/src/rc.{ccg,hg} (Gtk::RcStyle): Implement accessors to public GtkRcStyle fields so that Gtk::RcStyle is actually useful for a change. 2002-12-23 Murray Cumming <murrayc@usa.net> * gtk/src/: Added selectiondata.[hg|ccg] as wrapper of GtkSelectionData. * gtk/src/clipboard.hg: Used the C++ SelectionData wrapper, but not where a GtkSelectionData* is non-const - see comment in code. 2002-12-22 Daniel Elstner <daniel.elstner@gmx.net> * demos/gtk-demo/example_colorsel.cc: Add an expose event handler in order to get the color display to work with pixmap themes. Note that the palette colors in the color selection dialog still won't be shown without the GTK+ patch attached to bug #101732. 2002-12-22 Daniel Elstner <daniel.elstner@gmx.net> * gdk/src/color.hg (Gdk::ColorTraits): Add Gdk::Color traits for use with Glib::ArrayHandle<>. * gtk/src/colorselection.{ccg,hg} (Gtk::ColorSelection): Remove _UNMANAGEABLE() macro call. (palette_from_string): Implement. (palette_to_string): Implement. (set_change_palette_hook): Implement. (Gtk::ColorSelectionDialog): Make _UNMANAGEABLE(). (ColorSelectionDialog::ColorSelectionDialog): Don't implement the default ctor manually -- we have _CTOR_DEFAULT() for that. * gtk/src/fontselection.{ccg,hg} (Gtk::FontSelection::PropertyType): Get rid of unused enum. Probably left-over from gtkmm-1.2. (Gtk::FontSelectionDialog): Mark as _UNMANAGEABLE(). (FontSelectionDialog::FontSelectionDialog): Use ctor macros rather than implementing them manually. 2002-12-22 Murray Cumming <murrayc@usa.net> * gtk/src/clipboard.hg: request_contents() now takes a Glib::ustring instead of a GdkAtom, because it seems that people are meant to just get a GdkAtom from a string anyway. * example/book/clipboard: Moved existing example into simple directory, and started a more perfect but complex example in the ideal directory. 2002-12-22 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/widget.hg (Gtk::Widget::get_style_property): New wrapper of gtk_widget_style_get_property(). Although templated, it's not really compile-time type safe -- but certainly much less dangerous than the varargs interface. (Gtk::Widget::get_style_property_value): This is the non-templated implementation part of get_style_property(). 2002-12-22 Murray Cumming <murrayc@usa.net> * gtk/src/clipboard.hg: Removed WRAP_CREATE() and _DEFAULT_CTOR - Added get() as wrapper of gtk_clipboard_get() instead. Added some _IGNORE()s. * example/book/: Added clipboard example. At the moment it uses the text clipboard format - maybe we should do something more advanced. 2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/objectbase.cc: * gtk/src/container.ccg: * gtk/src/object.ccg: * gtk/src/window.ccg: Test for GTKMM_DEBUG_REFCOUNTING rather than DEF_DEBUG_REFCOUNTING. Also don't indent all the #ifdefs in line with the C++ code. Indenting preprocessor magic like that is just lying to yourself. 2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/label.ccg (Gtk::Label::Label): Don't set "use_underline" to 1 in the default ctor. Actually, there is no need to set any properties at all. * gtk/src/label.hg (Gtk::Label::get_layout): Fix crash by adding the missing "refreturn". Also add a const overload. * tools/m4/convert_pango.m4: Add const Pango::Layout conversion. 2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/widget.hg (Gtk::Widget::get_style): Add const overload. * tools/m4/convert_gtk.m4: Add const Gtk::Style conversion. 2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/style.{ccg,hg} (Gtk::Style::paint_hline): Uncomment. I have absolutely no idea why this was commented out. (Style::[gs]et_black): Add getter and setter for this style color. (Style::[gs]et_white): ditto. (Style::[gs]et_xthickness): Another missing getter/setter. (Style::[gs]et_ythickness): ditto. (Style::[gs]et_bg_pixmap): New getters/setter for the bg pixmap, e.g. as used by pixmap themes. (Style::get_background): Deprecate. It's a useless and potentially confusing alias of get_bg(). (Style::get_background_pixmap): Deprecate another confusing rename of the widely adopted 'bg' naming convention. * tools/m4/convert_gdk.m4: Add some Gdk::Color conversions. 2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/objectbase.cc (Glib::ObjectBase::~ObjectBase): Do g_object_unref() if gobject_ != 0. That's necessary to prevent a reference leak if a derived class's ctor threw an exception. gobject_ should be 0 in any other case -- I elaborated about that in a comment. Also move most of the code from Glib::Object::~Object() hitherto, in order to avoid relying on destruction order in MI hierarchies. (Glib::ObjectBase::destroy_notify_): Set gobject_ = 0 before invoking delete. * glib/glibmm/object.cc (Glib::Object::~Object): Move most of the code into Glib::ObjectBase::~ObjectBase(). See above. 2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/miscutils.h: Documentation fixes + cleanup. * gtk/src/object.ccg (Gtk::Object::_destroy_c_instance): Comment another comment stating that managed widgets are referenced when added to a container. That's simply not true. 2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> * tests/Makefile.am_fragment (INCLUDES): Add $(GTHREAD_CFLAGS). * tests/dispatcher/Makefile.am (INCLUDES): Get rid of it. This works around a nasty problem involving a combination of certain releases of automake, escaped newlines in variable assignments, and the += operator. 2002-12-17 Ross Burton <ross@burtonini.com> * docs/tutorial/gtkmm-tut.xml: Proof-read, and validation cleanups. 2002-12-14 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/iochannel.hg (Glib::IOChannel): Document that the feature of implementing a custom IOChannel is deprecated in glibmm 2.2. The GIOChannel vfunc interface hasn't stabilized yet and is therefore not intended for public use. * glib/glibmm/streamiochannel.h (Glib::StreamIOChannel): Document the whole class as deprecated in glibmm 2.2. See above. 2002-12-14 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/value.h: * glib/glibmm/value_custom.h: * glib/src/iochannel.hg: * glib/src/markup.hg: * gdk/src/pixbufloader.hg: * gdk/src/window.hg: Update and fix lots of Doxygen comments. 2002-12-14 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/miscutils.{cc,h} (Glib::get_application_name): Add. (set_application_name): Add. * glib/glibmm/threadpool.{cc,h} (Glib::ThreadPool): Add loads of reference documentation. (ThreadPool::get_exclusive): New accessor method to read-only data field GThreadPool::exclusive. 2002-12-14 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/miscutils.cc (Glib::get_prgname): Don't free the string returned by g_get_prgname(). It is static data, the GLib header is missing a G_CONST_RETURN. 2002-12-13 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/wrap.h (Glib::unwrap_copy): Add. * tools/pm/WrapParser.pm (on_wrap_vfunc|output_wrap_vfunc): Handle new argument "refreturn_ctype" that can be used whenever GObject vfuncs are supposed to take a reference on the returned object. * tools/pm/Output.pm (output_wrap_vfunc_cc): Pass "refreturn_ctype" to _VFUNC_PCC(). * tools/m4/vfunc.m4 (_VFUNC_PCC): Make use of Glib::unwrap_copy() if "refreturn_ctype" has been specified. * atk/src/component.hg (Atk::Component::ref_accessible_at_point): Rename to get_accessible_at_point(). atkmm should hide all the refcounting obscurity whenever possible. (ref_accessible_at_point_vfunc): Also rename to get_accessible_at_point_vfunc(), and make use of "refreturn_ctype" to indicate that the C vfunc callback is supposed to take an extra reference. * atk/src/object.hg (Atk::Object::get_parent): Add "refreturn". (ref_accessible_child): Rename to get_accessible_child(). (ref_relation_set): Rename to get_relation_set(). (ref_state_set): Rename to get_state_set(). 2002-12-09 Daniel Elstner <daniel.elstner@gmx.net> * atk/src/object.hg (Atk::Object::get_layer): Remove because it's deprecated. We don't need to maintain API stability _within_ the gtkmm 2.1.x series. (Atk::Object::get_mdi_zorder): ditto. 2002-12-07 Gary Peck <gbpeck@sbcglobal.net> * gtkmm.spec.in: Removed "--without docs" option and simplified the spec file since the documentation is included in the tarball now. 2.1.0: 2002-12-06 Daniel Elstner <daniel.elstner@gmx.net> * tests/dialog_deletethis/main.cc: * tests/scrolledwindow/main.cc: Get rid of compiler warnings. 2002-12-06 Daniel Elstner <daniel.elstner@gmx.net> * examples/book/drag_and_drop/dndwindow.cc: * examples/book/drawingarea/myarea.cc: * examples/book/eventbox/examplewindow.cc: * examples/book/label/examplewindow.cc: * examples/book/range_widgets/examplewindow.cc: * examples/book/signals/custom/main.cc: * examples/book/spinbutton/examplewindow.cc: * examples/dnd/dndwindow.cc: * examples/gdk/radar.cc: * examples/statusbar/statusbar.cc: Fix all sorts of problems that caused compiler warnings. * examples/calendar/calendar.cc: Likewise, but also make use of Glib::Date rather than horribly low-level C code. 2002-12-05 Walter H. van Holst <walter.van.holst@xs4all.nl> * gtkmm.spec.in: Remove obsolete reference to patch file and add the documentation files to the %files section. 2002-12-05 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treemodel.{ccg,hg} (TreeModel::foreach): Add overload for a SigC::Slot that gets passed both TreePath and TreeIter. Although you could always easily get one out of the other, it might cause a performance problem. GTK+ increments both the GtkTreePath and the GtkTreeIter simultaneously in the foreach() implementation to avoid extra tree traversion. * gtk/src/treeselection.{ccg,hg} (TreeSelection::get_model): Actually implement the const overload. (selected_foreach): Add overload for a SigC::Slot that gets passed both TreePath and TreeIter, for the same reason as described above for TreeModel::foreach(). (get_selected_rows): Make the overload which returns the TreeModel non-const. We could add another overload that returns a const TreeModel but this seems overkill. In fact, I'm tempted to get rid of the output argument entirely. 2002-12-05 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/convert_gtk.m4: Fix memory leak on _all_ GtkTreePath* to Gtk::TreePath conversions, i.e. for return values. Also use the Gtk::TreePath ctor directly instead of Glib::wrap() in order to avoid an extra copy. 2002-12-05 Murray Cumming <murrayc@usa.net> * examples/Makefile.am: Don't try to build notebook and dialogs directories - they have been removed. * docs/reference/Makefile.am: Minor change to make it the same as the gtkmm-2-0 file, to try to fix a make distcheck problem. 2002-12-04 Daniel Elstner <daniel.elstner@gmx.net> Big atkmm fix breaking API and ABI. No need to worry, see the list. * tools/m4/convert_atk.m4: Add/fix a few type conversions, and get rid of the evil 'Glib::ustring' -> 'const char*' conversion. The latter was used by vfuncs that return const char* -- that is, ended up calling c_str() on a local variable. Ouch. * atk/src/action.hg (Action::get_description_vfunc): Change return type to 'const char*'. This is the only option, see above why. (get_name_vfunc): ditto (get_keybinding_vfunc): ditto. * atk/src/component.hg (Atk::CoordType): New enum. (Atk::Layer): Enum, moved here from object.hg. * atk/src/component.hg (Component::contains): Use C++ types in API. (ref_accessible_at_point): ditto (get_extents): ditto (get_position): ditto (get_layer): ditto (set_extents): ditto (set_position): ditto. * atk/src/object.hg (Atk::State): New typedef from guint64. (Atk::Layer): Move to component.hg. (Atk::Object): Make public what is supposed to be public. * atk/src/object.hg (Object::add_relationship): Use C++ types. (remove_relationship): ditto. * atk/src/objectaccessible.hg (ObjectAccessible::get_object): Make use of 'refreturn'. (for_object): ditto. * atk/src/relation.hg (Relation::create): Add missing method. (get_target): ditto. * atk/src/stateset.hg (StateSet::contains_states): Make const. * atk/src/*.{ccg,hg}: Get rid of all dependencies on ATK headers. 2002-12-04 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/class_boxedtype.m4: Don't generate a forward declaration of the C type's class struct because Boxed Types don't have one. * gtk/src/treerowreference.hg: No need to forward declare struct GtkTreeRowReference since it's autogenerated. 2002-12-04 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treepath.hg (TreePath_Traits): Don't pass the C type by reference since it's only a pointer anyway. * gtk/src/treerowreference.{ccg,hg}: Add some TODO comments. 2002-12-04 Murray Cumming <murrayc@usa.net> * Removed dialog and notebook examples - they were replaced by new examples in examples/book/. 2002-12-03 Murray Cumming <murrayc@usa.net> These are API breaks of API that could not have been used before: * gtk/src: Added clipboard.[hg|ccg] to replace gtk/gtkmm/clipboard.[h|c]. Gtk::Clipboard is now wrapped as the GObject that it is, so it is now used with Glib::RefPtr<> * gtk/src/window.hg: Added get_clipboard(), new in 2.2 * gtk/src/textbuffer.[hg|ccg]: Methods that use Gtk::Clipboard now do so via Glib::RefPtr<>. 2002-12-03 Murray Cumming <murrayc@usa.net> * gtk/src/treepath.hg: TreePath_Traits: Resolved ambiguity. 2002-12-02 Murray Cumming <murrayc@usa.net> * gtk/src/treerowreference.[hg|ccg]: GtkTreeRowReference is now a boxed type, so we wrap it as such, and it can now be copied. This should not break any API. 2002-12-02 Murray Cumming <murrayc@usa.net> * docs/tutorial/gtkmm-tut.xml: Completed Internationalization and Localization chapter. 2002-12-02 Murray Cumming <murrayc@usa.net> * gtk/src/treeselection.[hg|ccg], treepath.hg: Defined Traits for TreePath and used them in the ListHandle<> for Gtk::TreeSelection::get_selected_rows(). 2002-12-02 Murray Cumming <murrayc@usa.net> * gtk/src/treeselection.[hg|ccg]: Added commented-out Gtk::TreeSelection::get_selected_rows() methods. The ListHandle stuff isn't working yet. 2002-12-02 Murray Cumming <murrayc@usa.net> * tools/pm/Output.pm (output_wrap_meth), tools/m4/method.m4 (_STATIC_METHOD): Allow static _WRAP_METHOD() methods touse the optional refreturn and throwerr parameters. * gtk/src/window.hg, gtk/src/settings.hg: Used the static method fix to wrap new methods. 2002-12-01 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/main.h (Glib::SignalIO::connect): Fix comment about the return type: 'false' means disconnect -- not 'true'. 2002-11-27 Daniel Sundberg <dss@home.se> * gtk/src: Added most of new gtk+-2.1 API except from ListStore, TreeStore, TreeModel, TreeSelection and TreeIter 2002-12-01 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/vfunc.m4 (_VFUNC_CC): Add optional "refreturn" parameter. * tools/pm/Output.pm (output_wrap_vfunc_cc): Pass optional refreturn argument to _VFUNC_CC(). * tools/pm/WrapParser.pm (on_wrap_vfunc): Extract "refreturn" from the parameter list and pass it to output_wrap_vfunc_cc() if set. * gtk/src/widget.hg (Gtk::Widget::get_accessible): Use "refreturn". (get_accessible_vfunc): ditto. 2002-12-01 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treeview.ccg (_auto_store_on_cellrenderer_toggle_edited): Remove unused parameter name in order to avoid a warning. 2002-12-01 Daniel Elstner <daniel.elstner@gmx.net> * docs/tutorial/gtkmm-tut.xml: Remove several superfluous xi:include tags that caused the example sources to be included twice. * docs/tutorial/insert_example_code.pl: Pre-process the example sources via Perl code instead of using XInclude. That way we can easily strip the license comment block from the examples. * docs/tutorial/Makefile.am: Add dependencies to some targets. 2002-12-01 Murray Cumming <murrayc@usa.net> * docs/tutorial/: Added insert_example_code.pl, to insert XInclude statements in the XML, to show the example code inline. 2002-11-30 Murray Cumming <murrayc@usa.net> * gtk/src/treeview.ccg (_auto_store_on_cellrenderer_toggle_edited): NOT the existing model value instead of trying to get a new value from the CellRenderer. Fixed bug #99986. * examples/book/treeview/editable_cells/: demos/gtk-demos/treeview_liststore.cc, demos/gtk-demos/treeview_treestore.cc: Used append_editable() for bool columns. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * examples/thread/Makefile.am: Build dispatcher and dispatcher2 examples unconditionally too. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/Makefile.am: Build dispatcher.{cc,h} unconditionally on all platforms, including win32. I think I fixed the win32 problem a while ago -- if not, please complain. * glib/glibmm.h: Remove the #ifdef GTKMM_WIN32 for dispatcher.h. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/widget.ccg (Widget_Class::dispose_vfunc_callback): Correct one of the comments, and add a few chunks of text elaborating on the tricky details. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * gdk/src/Makefile_list_of_hg.am_fragment: * gdk/src/display.hg: * tools/m4/convert_gdk.m4: Re-apply Murray's Gdk::Device patch. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/class_boxedtype.m4: Generate a swap() method for all non-static boxed types, together with an inlined swap() function in the class' namespace. swap() is often useful, can be highly efficient, and is sometimes used implicitely by the STL if available. * gtk/src/treepath.{ccg,hg} (swap): Remove manually implemented function since it's now automatically generated. (TreePath::TreePath()): No need to implement the default ctor manually because _CLASS_BOXEDTYPE() can do it for us. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treepath.{ccg,hg} (Gtk::TreePath::clear): Implement. (template <class In> TreePath(In, In)): ditto (template <class In> assign(In, In)): ditto (template <class In> append(In, In)): ditto. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/widget.ccg (Widget_Class::dispose_vfunc_callback): Make sure hide() is the last thing we call on the widget. This is absolutely necessary since the signal_hide() handler might delete the C++ object -- testing cpp_destruction_in_progress_ again is _not_ sufficient and means accessing deallocated memory. This fixes a reproducable segfault in the gtkmm demo. The demo code deletes the example windows in a signal_hide() handler, which used to crash after a few window open/close cycles. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treepath.{ccg,hg} (Gtk::TreePath): Implement an STL style interface similar to std::vector<>, and mark the old interface as deprecated in the documentation. I had to use a little hack to get rid of the TreePath(bool) ctor (which was evil) without breaking ABI or API. See the comment in treepath.hg for details. * demos/gtk-demo/example_treeview_editable_cells.cc: Simplify the code by using the new STL style interface of Gtk::TreePath. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/convert_glib.m4: Don't use ptr->gobj() in the conversion from RefPtr<const T> because ptr might be 0. 2002-11-30 Daniel Elstner <daniel.elstner@gmx.net> * gdk/src/Makefile_list_of_hg.am_fragment: * gdk/src/display.hg: * tools/m4/convert_gdk.m4: Back out Murray's last commit on these files because it broke the build. Murray, you definitely need to verify the output of 'cvs update' and look for '?' marks before going to bed :P 2002-11-30 Murray Cumming <murrayc@usa.net> * Added Gdk::Device wrapper, although some of the stable API already uses a bare GdkDevice* C type. Added TODOs for them. 2002-11-30 Murray Cumming <murrayc@usa.net> * Gdk::DisplayManager::list_displays(): uses a SListHandle. 2002-11-28 Murray Cumming <murrayc@usa.net> * gtk/gtkmm.h: Included fontselection.h. * examples/book/dialog: Added MessageDialog, FileSelection, FontSelectionDialog, and ColorSelectionDialog examples. * docs/tutorial/gtkmm-faq.xml: Mentioned these dialogs and examples. * docs/tutorial/figures/Makefile.am: Mentioned the menu pngs again. 2002-11-28 Daniel Elstner <daniel.elstner@gmx.net> * docs/tutorial/figures/Makefile.am (figures_DATA): Temporarily remove menus_menubar.png menus_menu.png from the list. Murray, please add these files to CVS first :) 2002-11-28 Murray Cumming <murrayc@usa.net> * gtk/src/gtk_signals.defs, gtk/src/treeview.hg: Changed the return types of teh keybinding signals, because GTK+ 2.2 broke API on these. Luckily they shouldn't be wrapped anyway, so nobody is using them, so we can probably break them in gtkmm too. 2002-11-27 Murray Cumming <murrayc@usa.net> * docs/tutorial.gtkmm-tut.xml: The book is now licensed under the GNU FDL. 2002-11-26 Daniel Elstner <daniel.elstner@gmx.net> * examples/book/toolbar/examplewindow.cc: Add #include <iostream>. 2002-11-26 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/stringutils.cc: Ooops, forgot to #include <cerrno>. Bug reported by kmaraas. 2002-11-26 Murray Cumming <murrayc@usa.net> * docs/tutorial/figures/Makefile.am: Added some .pngs to the makefile. 2002-11-25 Murray Cumming <murrayc@usa.net> * pango/src/*.[hg|ccg]: Removed some old FSF copyrights that were still around. 2002-11-25 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/stringutils.h (Glib::Ascii::strtod): In the Doxygen comment, use @retval instead of @return for the end_index output argument. 2002-11-25 Daniel Elstner <daniel.elstner@gmx.net> * docs/reference/Doxyfile.in (DOT_IMAGE_FORMAT): Change to 'png'. * docs/reference/Makefile.am (html/index.html): Depend on $(doxygen_configfile) rather than $(doxygen_configfile_source). (install-reference): Get rid of *.gif wildcard. (uninstall-reference): ditto. * Makefile.am (gtkmm-docs.tar.gz): Also include *.xml files from the examples in the tarball. 2002-11-25 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/stringutils.{cc,h}: New files, containing a selection of string-related utility functions. Not all of the GLib string functions are wrapped: I included only the functions that aren't easily replaceable in C++, and/or exist for portability reasons. * glib/glibmm/Makefile.am: Add stringutils.{cc,h}. * glib/glibmm.h: #include <glibmm/stringutils.h>. 2002-11-25 Murray Cumming <murrayc@usa.net> * gtk/src/toolbar.[hg|ccg]: Added Gtk::Toolbar non-STL-style interface append, prepend, insert methods, because every container should have both interfaces. 2002-11-25 Daniel Elstner <daniel.elstner@gmx.net> * examples/thread/dispatcher.cc: Make the progress bars a little bit more livid. * examples/thread/dispatcher2.cc: Canonicalize s/on_clicked_event/on_button_clicked/ 2002-11-25 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/dispatcher.cc (DispatchNotifier::pipe_io_handler): Make this method private. It's quite irrelevant since the whole class is internal anyway, but there is no reason for this method to be public. 2002-11-24 Murray Cumming <murrayc@usa.net> * tools/pm/DocParser.pm (append_parameter_docs): Added workaround for perl 5.8.0 crash when doing regex on empty string. This only affects cvs builds. Fixes #98706 2002-11-24 Daniel Elstner <daniel.elstner@gmx.net> * examples/markup/parser.cc: No need to write line number and character index to std::cerr. Apparently this information is already included in the Glib::Markup::Error message string. 2002-11-24 Murray Cumming <murrayc@usa.net> * gdk/src/dragcontext.ccg: Fixed typo in #include. 2002-11-24 Daniel Elstner <daniel.elstner@gmx.net> * examples/markup/parser.cc: New example demonstrating the Glib::Markup parser. * examples/Makefile.am: Add markup/ directory. * configure.in (AC_CONFIG_FILES): Add examples/markup/Makefile. 2002-11-24 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/markup.hg: No need to #include <glib/gmarkup.h>. 2002-11-24 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/markup.{ccg,hg}: New files wrapping GMarkup, a simple XML subset parser. * glib/src/Makefile_list_of_hg.am_fragment: Add markup.{ccg,hg}. * glib/glibmm.h: #include <glibmm/markup.h>. 2002-11-24 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/gerror.m4 (_GERROR): Add parameter __CQUARK__ in order to generate a Foo(Code code, const Glib::ustring& message) ctor. * tools/pm/Output.pm (output_wrap_gerror): Pass the additional domain parameter to _GERROR(). 2002-11-23 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treesortable.{ccg,hg} (TreeSortable::set_sort_func): Add method overload which takes a const TreeModelColumnBase& argument. * gtk/src/treeview.hg (TreeView::set_search_column): ditto * gtk/src/treeviewcolumn.hg (TreeViewColumn::set_sort_column_id): ditto. 2002-11-21 Murray Cumming <murrayc@usa.net> * gdk/src: Added Display, DisplayManager, and Screen wrappers, new in GTK+ 2.2, along with some related methods in other gtkmm classses. 2002-11-21 Murray Cumming <murrayc@usa.net> * atk/src/: Added Atk::Action and Atk::Component interface wrappers, and Atk::ObjectAccessible class wrapper. * atk/src/object: Wrapped new add_relationship() and remove_relationship() methods. 2002-11-20 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/textbuffer.{ccg,hg}: Get rid of the hackish work-around of bug #70227 (missing "tag_table" property in GTK+ 2.0). 2002-11-20 Murray Cumming <murrayc@usa.net> * pango/src: Added newly-generated pango_methods.defs instead of putting it inside pango.defs. Updated pango_enums.defs. 2002-11-20 Murray Cumming <murrayc@usa.net> * gdk/src/gdk_methods.defs, gdk_enums.pl, gdk_pixbuf.defs: Updated. 2002-11-20 Murray Cumming <murrayc@usa.net> * atk/src/atk_methods.defs and atk_enums.defs: Updated with h2defs.py. 2002-11-20 Murray Cumming <murrayc@usa.net> * This is the HEAD branch, for gtkmm 2.2. * configure.in: Change version to 2.1.0. Require GTK+ 2.1.x. * gtk/src/gtk_methods.defs: Regnerated with h2defs.py. * gtk/src/container.hg: child_type() now returns a GType instead of a GtkType. It is just a typedef. * gtk/src/widget.hg: get_ancestor() now takes a GType instead of a GtkType. 2002-11-17 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/thread.hg: Rather than temporarily undefining the macro THREAD_PRIORITY_NORMAL, do some preprocessor magic to mutate the macro into an enum. This way, we don't have to copy'n'paste macro definitions from Win32 headers (ouch!). Plus, the gtkmm identifier can actually be used since it's properly namespaced. * gdk/src/event.hg: Likewise for macro DELETE. * gdk/src/types.hg: Likewise for macro ERROR. * gtk/gtkmm/stock.h: Likewise for macro DELETE. * gtk/gtkmm/stock.cc: Play safe and #undef DELETE unconditionally. 2002-11-16 Daniel Elstner <daniel.elstner@gmx.net> * examples/book/menus/main_menu/examplewindow.cc: Use builtin stock IDs from the Gtk::Stock namespace instead of plain string literals. 2002-11-16 Daniel Elstner <daniel.elstner@gmx.net> * configure.in (AC_OUTPUT): Split the list of output files into two parts and use AC_CONFIG_FILES() for them. This fixes a problem with automake 1.7 which is apparently not able to process huge output file lists. 2002-11-16 Daniel Elstner <daniel.elstner@gmx.net> * scripts/docgen.m4 (GTKMM_ARG_ENABLE_FULLDOCS): Fix help text of --enable-fulldocs option. 2.0.1: 2002-11-16 Daniel Elstner <daniel.elstner@gmx.net> * docs/Makefile.am: Install the documentation files. * docs/images/Makefile.am: ditto * docs/tutorial/figures/Makefile.am: ditto. * docs/Makefile_web.am_fragment (gtkmm_docdir): New variable defining the base directory of the installed documentation. * docs/reference/Makefile.am: Manually implement install-data-local and uninstall-local in order to install the html directory. * docs/tutorial/Makefile.am: ditto. 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * tests/dispatcher: New test, trying to brute-force reentrancy problems in Glib::Dispatcher. * tests/Makefile.am configure.in: Integrate the new test. 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/dispatcher.cc (fd_set_close_on_exec): Surround the whole function with #ifndef G_OS_WIN32, so that Glib::Dispatcher could potentially compile on Win32. The missing function is no problem at all since Win32 doesn't have exec() anyway. (DispatchNotifier::DispatchNotifier): Don't leak the fd pair if SignalIO::connect() throws -- you can never know. (DispatchNotifier::send_notification): Don't try to write the data block in multiple chunks. This shouldn't happen since the fd is not in nonblocking mode, and if it happened we would get into big trouble wrt. reentrancy. A g_return_if_fail() should catch this pathologic case. 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/value_custom.cc (custom_boxed_type_register): Replace the g_return_val_if_fail() in case the type is already registered with a proper warning message. Include the type name and a please-report request in the message. * glib/src/thread.hg (Glib::Mutex::Lock): Explain this a bit more and add a simple usage example -- for those who aren't familiar with the lets-scope-everything-we-can-get-our-hands-one technique :) 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * docs/reference/Makefile.am (html/index.html): Get rid of the whole html directory before running doxygen. 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * Makefile.am: Uuh, it's $(doc_tarball_files) not $(doc_files). 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * Makefile.am: Implement the recursive targets doc-clean, doc-rebuild and post-html. Also, try not to include all kind of crap in the gtkmm-docs.tar.gz tarball. 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * docs/Makefile_web.am_fragment: Revert Murray's last change. This was not how it's supposed to work: The target post-html is recursive now! 2002-11-15 Murray Cumming <murrayc@usa.net> * Makefile.am, docs/Makefile_web.am_fragment: Top-level docs upload now works - The html directories were not uploaded because they were in the .cvsignore files, so we don't use the --cvsignore rsync option anymore. 2002-11-15 Daniel Elstner <daniel.elstner@gmx.net> * docs/Makefile_web.am_fragment (rsync_args): New variable holding common arguments to rsync. Get rid of the -a flag and the --cvs-exclude option. The latter is no longer necessary since the html directories are going to be removed from CVS. * docs/FAQ/Makefile.am: Properly implement already existing rules, and add a doc-clean rule. Also, use maintainer-clean-local instead of clean-local since we're now distributing the documentation. * docs/images/Makefile.am: ditto * docs/internal/Makefile.am: ditto * docs/reference/Makefile.am: ditto. * docs/Makefile.am: Clean up and implement the recursive rules post-html and doc-clean. Also add a convenience rule doc-rebuild, which is a shortcut for make doc-clean all. 2002-11-14 Naofumi Yasufuku <naofumi@yasufuku.net> * configure.in: Use -mms-bitfields option for MinGW gcc3. This option is required to build GTK programs under Win32 platforms. 2002-11-12 Naofumi Yasufuku <naofumi@yasufuku.net> * glib/src/thread.hg (Glib::ThreadPriority): Undefine THREAD_PRIORITY_NORMAL macro for Win32 (previously defined in winbase.h). * gdk/src/event.hg (Gdk::EventType): Undefine DELETE macro for Win32 (previously defined in winnt.h). * gdk/src/types.hg (Gdk::Status): Undefine ERROR macro for Win32 (previously defined in wingdi.h). * gtk/gtkmm/stock.{h,cc} (Gtk::Stock::DELETE): Undefine DELETE macro for Win32 (previously defined in winnt.h). 2002-11-14 Murray Cumming <murrayc@usa.net> * gtk/src/statusbar.hg: Documentation: removed mention of non-existant messages() method. Bug #98410. 2002-11-14 Murray Cumming <murrayc@usa.net> * gtk/src/widget.ccg (Widget_Class::dispose_vfunc_callback): Removed non-manage()ed child widgets from their containers when they are disposed (destroyed), as well as preventing disposal. Previously some child widgets were not being properly removed from destroyed containers. Fixes bug #97729. * gtk/src/container.ccg: (Container_Class:destroy_callback): Commented-out the code that removes non-manage()ed child widgets from their containers before destruction. The Widget_Class::dispose_vfunc_callback should now take care of this. Also that code should work with both gtkmm containers and non-wrapped GTK+ containers. 2002-11-12 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/signalproxy.h.m4 (SignalProxyBase::data_to_slot): Return 0 if the connection is blocked. * tools/m4/signal.m4 (_SIGNAL_PROXY): Check whether the pointer returned by data_to_slot() is non-0 before invoking the SigC::Slot callback function. This fixes a nasty bug with gtkmm signals -- the 'blocked' flag of the SigC::ConnectionNode was just ignored. * glib/glibmm/signalproxy.cc (slot0_void_callback): ditto * glib/glibmm/propertyproxy_base.cc (SignalProxyProperty::callback): ditto. 2002-11-12 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/iochannel.{ccg,hg}: Fix typos/mistakes in comments. 2002-11-11 Murray Cumming <murrayc@usa.net> * examples: Used regexxer to change all kit.run() lines to Gtk::Main::run() - it is a static method. 2002-11-10 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treeiter.ccg (TreeIter::operator++): Get rid of the GLIBMM_INITIALIZE_STRUCT() -- the bug that required us to zero out the GtkTreeIter has been fixed months ago in GTK+ 2.0.3. (TreeIter::setup_end_iterator): ditto. (TreeIter::equal): For the same reason, reactivate the code that compares all user_data pointers. 2002-11-10 Murray Cumming <murrayc@usa.net> * Reference docs: Added Toolbars module. 2002-11-10 Murray Cumming <murrayc@usa.net> * gtk/src/bin.hg: remove(): Added documentation about the automatically-created Viewport in ScrolledWindows. 2002-11-06 Murray Cumming <murrayc@usa.net> * docs/FAQ/Makefile.am, docs/tutorial/Makefile.am, docs/reference/Makefile.am: Distribute generated html documentation. Note that the reference documentation must now be manually rebuilt with "make clean all" because Doxygen doesn't know when the source files have been updated. * scripts/docgen.m4: Make the --enable-fulldocs option default to yes, because people don't seem to be having problems with it. 2002-11-09 Murray Cumming <murrayc@usa.net> * Added tests/scrolledwindow, for bug #97729 (Matthew Tuck). 2002-11-06 Murray Cumming <murrayc@usa.net> * docs/FAQ/Makefile.am, docs/tutorial/Makefile.am: Correct make target dependencies. Don't mkdir the html directories - they are in cvs so they will always exist. 2002-11-06 Murray Cumming <murrayc@usa.net> * Makefile.am: Added post-html target to top-level build, though you still need to run make in each docs subdirectory manually - I don't know how to do recursive build targets other than "all". It also uploads a tar.gz of the docs and examples directories, so that people can use it offline. * docs/index.html: Added link to the docs tarball. 2002-11-05 Murray Cumming <murrayc@usa.net> * examples/book/treeview: Added examples. * docs/tutorial/gtkmm-tut.xml: Included examples. 2002-11-04 Morten Brix Pedersen <morten@wtf.dk> * Add gtkmm.spec.in. A file to help people create their own RPMs of gtkmm. Based on a spec file provided by Gary Peck. 2002-11-04 Murray Cumming <murrayc@usa.net> * EventBox: Corrected reference documetation - it's not really transparent. Suggested by Alex Pavloff. 2002-11-03 Ole Laursen <olau@hardworking.dk> * docs/tutorial/gtkmm-tut.xml: Wrote the i18n chapter. Heavily rewritten by Murray Cumming. 2002-11-03 Xavier Dufresne <xdufresne@gmx.fr> * examples/book/box/examplewindow.cc, examples/book/box/main.cc, examples/book/table/examplewindow.cc: #include <iostream> which fix compiler error. 2002-11-02 Daniel Elstner <daniel.elstner@gmx.net> Emergency API addition, not breaking ABI (bug #97498): * gtk/src/windowgroup.hg (Gtk::WindowGroup::create): Add missing static method. (Gtk::WindowGroup ctor): Make it protected. * configure.in: Bump version to 2.0.1, .so version 2:0:1. 2002-10-31 Daniel Elstner <daniel.elstner@gmx.net> * docs/FAQ/gtkmm-faq.xml: Update FAQ entries about exceptions, image file loading, and threads. 2.0.0: 2002-10-31 Michael v. Szombathely <szombath@bifab.de> * book/paned/messageslist.cc, cellrenderercustom/cellrendererlist.cc, cellrenderercustom/cellrenderertoggle.cc, cellrenderercustom/testpopup.cc: code removed, which was introduced to workaround a now resolved Sun Forte C++ compiler bug (not handling constructors with template parameters) * README.SUN: updated to newest compiler patch level 2002-10-31 Daniel Elstner <daniel.elstner@gmx.net> * examples/cellrenderercustom/popupentry.cc: Fix compiler warnings. * examples/cellrenderercustom/cellrendererpopup.cc: Explicitely #include some GTK+ headers to avoid relying on indirect includes by gtkmm headers. 2002-10-31 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/ustring.{cc,h} (ustring::clear): Add missing method. This method is standard for all other STL containers but it wasn't mentioned in Stroustrup for std::string. But since libstdc++-v3 supports std::string::clear() unconditionally I guess this has been added to the standard. It won't hurt anyway. 2002-10-31 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/notebook.ccg: Remove a default argument from a method definition's prototype, and clean up the code a bit. 2002-10-31 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/signalproxy.cc (slot0_void_callback): Don't try to invoke a signal on a disassociated wrapper. We already prevent this in the m4 generated callbacks and this one slipped through. 2002-10-30 Murray Cumming <murrayc@usa.net> * gtk/src/notebook.[hg|ccg]: Moved some Notebook_Helpers implementation into the .cc file. 2002-10-30 Murray Cumming <murrayc@usa.net> * docs/FAQ: Converted it from SGML to DocBook XML. 2002-10-30 Murray Cumming <murrayc@usa.net> * docs/FAQ/gtkmm-faq.sgml: Added some questions to counter the incorrect information in the inti project's FAQ. 2002-10-28 Murray Cumming <murrayc@usa.net> * Gtk::AspectFrame: Added a constructor that uses Gtk::AlignmentEnum as an alternative to the float. 2002-10-27 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/unicode.hg (Glib::Ascii::tolower): Ooops, forgot to wrap this function. I think the API addition is justified because it doesn't break anything (not even the ABI since it's inline). Furthermore, we already have Glib::Unicode::tolower() thus lacking Glib::Ascii::tolower() would be annoyingly inconsistent. (Glib::Ascii::toupper): ditto. 2002-10-27 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/main.cc (MainContext::check): As in query(), prefer the clear reinterpret_cast<GPollFD*>(&fds.front()) over the innocent-looking fds.front().gobj() -- we might as well say what we're doing and what semantics are required. 2002-10-26 Daniel Elstner <daniel.elstner@gmx.net> Last minute API fix: * gtk/src/box.hg (Box::pack_start): Remove the 'bool fill = true' default argument to avoid overloading ambiguities. (Box::pack_end): ditto. * gtk/src/image.hg (Image::Image(const Glib::ustring&)): Change argument type to std::string because it's a filename. (Image::set(const Glib::ustring&)): ditto. 2002-10-26 Daniel Elstner <daniel.elstner@gmx.net> Last minute API fix: * glib/glibmm/ustring.h (ustring_Iterator): Change the reference typedef from void to value_type. Although the iterator doesn't actually support reference access, the typedef must be functional so that adaptors like std::reverse_iterator<> can work. * glib/glibmm/arrayhandle.h (ArrayHandleIterator): ditto * glib/glibmm/listhandle.h (ListHandleIterator): ditto * glib/glibmm/slisthandle.h (SListHandleIterator): ditto * glib/src/fileutils.hg (DirIterator): ditto. 2002-10-24 Murray Cumming <murrayc@usa.net> * Fixed atk/atkmm-1.0.pc.in too. 2002-10-24 Murray Cumming <murrayc@usa.net> * gdk/gdkmm-2.0.pc.in, glib/glibmm-1.0.pc.in, pango/pangomm-1.0.pc.in: Make pkg-config report the new library names, such as -lglibmm-1.0. 2002-10-24 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/exceptionhandler.cc: Add a few comments. (Glib::add_exception_handler): Make this function exception-safe. 2002-10-24 Daniel Elstner <daniel.elstner@gmx.net> * examples/exception/exceptiontest.cc: Code cleanup. An example that demonstrates exception handling should itself be entirely exception-safe :) 2002-10-23 Christof Petig <christof@petig-baender.de> * gtk/gtkmm/menu_elems.*: provide constructors for a StockMenuElems with a submenu * examples/book/menus/main_menu/examplewindow.*: test it 2002-10-23 Daniel Elstner <daniel.elstner@gmx.net> * pango/src/attributes.hg (Attribute::get_string): Use _MEMBER_GET() instead of _MEMBER_GET_PTR(), and return a Glib::ustring. (AttributeTraits): New traits type for use with container handles. * pango/src/attriter.{ccg,hg} (AttrIter::get_extra_attrs): Return Glib::SListhandle<Attribute,AttributeTraits>. * pango/src/item.{ccg,hg} (Analysis::get_extra_attrs): ditto. * pango/src/item.{ccg,hg} (Item::get_analysis): Implement manually rather than using _MEMBER_GET_PTR(). This isn't a pointer and returning const objects by value is pointless most of the time. (ItemTraits): New traits type for use with container handles. * pango/src/context.{ccg,hg} (Context::itemize): Return Glib::ListHandle<Item,ItemTraits>. * pango/src/layoutrun.hg (LayoutRun::get_item): Don't use _MEMBER_GET_PTR(). See above. (LayoutRun::get_glyphs): ditto. 2002-10-23 Daniel Elstner <daniel.elstner@gmx.net> * docs/tutorial/gtkmm-tut.xml: Fix section on Intermediate Types. 2002-10-23 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/property.h: Don't use extern "C" for callback functions that will be invoked from C code. Strictly speaking, the use of extern "C" for such callbacks is required. The problem is that gtkmm already relies on identical calling conventions in C and C++ in countless places, thus declaring some of them extern "C" is rather pointless. What's worse is that extern "C" makes the linker silently ignore namespaces (because there's no such thing in C) which could lead to ABI clashes if we're not careful. * glib/src/spawn.ccg: ditto * gtk/src/treemodel.ccg: ditto * gtk/src/treeselection.ccg: ditto. 2002-10-22 Daniel Elstner <daniel.elstner@gmx.net> * demos/gtk-demo/demos.h: Fix build with --enable-warnings=hardcore. * demos/gtk-demo/demowindow.cc: ditto * demos/gtk-demo/example_appwindow.cc: ditto * demos/gtk-demo/example_menus.cc: ditto * demos/gtk-demo/example_pixbufs.cc: ditto. 2002-10-22 Daniel Elstner <daniel.elstner@gmx.net> * scripts/macros.m4 (GTKMM_ARG_ENABLE_WARNINGS): New m4 macro providing the --enable-warnings configure option. Possible warning levels are: none, minimum, maximum, hardcore. The latter enables -Werror. minimum is the default and enables -Wall only. * configure.in: Make use of GTKMM_ARG_ENABLE_WARNINGS(). If you're brave enough try --enable-warnings=hardcore. gtkmm itself builds fine with this option and GCC 3.2, but the demos probably won't. * gtk/src/menu.ccg (SignalProxy_*): More cleanups: 1) Add try/catch blocks to all callbacks. 2) Get rid of the bug-hiding NULL pointer checks -- it should either crash or run into a g_assert(); but just ignoring errors is evil. 3) Move all SignalProxy_* classes into the anonymous namespace. This stuff is pure implementation and should not be exported. * gtk/gtkmm/clipboard.cc (SignalProxy_*): ditto. 2002-10-22 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/signal.m4: In the signal_foo_notify_callback(), don't forget to check whether the instance still has a C++ wrapper. We already did this in signal_foo_callback() but it should be done in both. As a side effect, we got rid of all warnings due to unused parameters. * gtk/src/treeview.ccg (SignalProxy_ColumnDrop::gtk_callback): Thanks to the warnings cleanup a real problem became visible in this function: column was passed 3 times to the slot but prev_column and next_column were just ignored. * gtk/src/treeview.ccg (SignalProxy_*): 1) Add try/catch blocks to all callbacks. 2) Get rid of the bug-hiding NULL pointer checks -- it should either crash or run into a g_assert(); but just ignoring errors is evil. 3) Move all SignalProxy_* classes into the anonymous namespace. This stuff is pure implementation and should not be exported. 2002-10-22 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/ustring.h: Add documentation for (almost) all non-standard Glib::ustring methods. 2002-10-22 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/debug.h: Improve the output of the refcounting debug macros and use G_LOG_LEVEL_DEBUG to distinguish them from warnings. Also, use proper G_STMT_START{ ... }G_STMT_END constructs so that these macros can be used almost like functions. * scripts/macros.m4 (GTKMM_ARG_ENABLE_DEBUG_REFCOUNTING): New m4 macro providing the --enable-debug-refcounting configure argument. * configure.in: Use GTKMM_ARG_ENABLE_DEBUG_REFCOUNTING(). * glib/glibmmconfig.h.in: #undef GTKMM_DEBUG_REFCOUNTING. * glib/glibmm/objectbase.cc: Use new GTKMM_DEBUG_REFERENCE() rpt. GTKMM_DEBUG_UNREFERENCE() macro syntax. * glib/glibmm/containerhandle_shared.h: ditto * gtk/src/object.ccg: ditto. 2002-10-21 Murray Cumming <murrayc@usa.net> * Library names changed from 1.3 to 2.0, and 0.0 to 1.0, in anticipation of the binary API freeze. 2002-10-21 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/container.ccg (Gtk::Container::destroy_callback): Don't reference the *container* on each iteration. Actually the code was supposed to ref the child widget, but even that isn't really necessary at this point. 2002-10-21 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/container.ccg (Gtk::Container::destroy_callback): Fix fatal typo. 2002-10-21 Daniel Elstner <daniel.elstner@gmx.net> * demos/gtk-demo/example_images.cc: Explicitely close the Gdk::PixbufLoader stream on destruction, as requested by the annoying GDK warning we got all the time. 2002-10-21 Daniel Elstner <daniel.elstner@gmx.net> * demos/gtk-demo/example_images.cc: Adapt to Gdk::PixbufLoader changes, and convert the example to use Glib::IOChannel for file access. * demos/gtk-demo/example_drawingarea.cc: Fix some warnings and tidy up the code a bit. * demos/gtk-demo/example_sizegroup.cc: ditto * demos/gtk-demo/example_treeview_editable_cells.cc: ditto. 2002-10-21 Murray Cumming <murrayc@usa.net> * Gtk::Container_Class:destroy_callback(): dynamic_cast<> child widgets to Widget*, instead of Container*, of course. This seems to fix lots of lifetime bugs. 2002-10-19 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/iconfactory.hg (Gtk::IconFactory::add): Fix constness of icon_set parameter. * tools/convert_gtk.m4: Add necessary conversion. 2002-10-19 Daniel Elstner <daniel.elstner@gmx.net> API changes breaking binary compatibility: * gdk/src/pixbufloader.{ccg,hg} (Gdk::PixbufLoader ctor): Throw an exception rather than using an ugly GError* output argument. (create): ditto (write): ditto (close): ditto. 2002-10-19 Daniel Elstner <daniel.elstner@gmx.net> More API additions: * gdk/src/pixbuf.{ccg,hg} (Gdk::Pixbuf::create_from_data): Wrap missing method. (create_from_inline): ditto. * tools/m4/convert_gdk.m4: Add guint8 <-> guchar conversions. * tools/m4/convert_glib.m4: Remove some wrong conversions. 2002-10-18 Daniel Elstner <daniel.elstner@gmx.net> Binary compatible API changes: * gtk/src/treemodel.hg (Gtk::TreeModel::row_changed): Wrap missing method. (row_inserted): ditto (row_has_child_toggled): ditto (row_deleted): ditto (rows_reordered): ditto. * configure.in: Bump version to 1.3.27. 1.3.26: 2002-10-17 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/utility.h (GLIBMM_INITIALIZE_STRUCT): Don't use __builtin_bzero() unless the compiler is GCC >= 2.96. Fixes build with GCC 2.95.4. 1.3.25: 2002-10-17 Murray Cumming <murrayc@usa.net> * docs/tutorial/gtkmm-tut.xml: Started to remove inline example code, replacing it with links to the actual example code. We might process the XML in future to insert the code automatically. * Documentation now uploads to /gtkmm2/docs to allow relative links to the examples. 2002-10-17 Daniel Elstner <daniel.elstner@gmx.net> * docs/tutorial/gtkmm-tut.xml: Fix hello world example; the colon preceding the initializer list was missing. Globally substitute kit.run() with Gtk::Main::run() to avoid confusion because of the bizarre syntax used to call a static method. I also started fixing the timeout intro but gave up quickly due to the large amount of outdated inline example code, which Murray wants to replace with links anyway. 2002-10-16 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/ustring.h: Add a paragraph about ustring vs. streams to the Glib::ustring class documentation. 2002-10-16 Daniel Elstner <daniel.elstner@gmx.net> * PORTING: set_usize() should be replaced with set_size_request(), not set_default_size(). Reported by Jussi Pakkanen <jpakkane@yahoo.com> 2002-10-16 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/main.h (IOCondition): Wheee, it's operator|=() not operator|(), likewise for & and ^. This must be the dumbest error I ever made. Shudder. 2002-10-16 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/main.cc (glibmm_source_get_callback_data): Ooops, forgot the return value for g_return_val_if_fail(). Fixed. 2002-10-15 Martin Schulze <MHL.Schulze@t-online.de> * glib/glibmm/main.{cc,h}: Add SignalIO::connect() and IOSource::create() overloads that take a const Glib::RefPtr<IOChannel>&. * glib/src/iochannel.{ccg,hg}: Add IOChannel::create_watch(). 2002-10-16 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/textbuffer.{ccg,hg} (TextBuffer::insert_interactive): Return std::pair<iterator,bool> rather than just the iterator, since iter == end() isn't a sufficient indicator that the insertion failed. This is an incompatible API change, see gtkmm-list for information. (erase_interactive): ditto. 2002-10-16 Murray Cumming <murrayc@usa.net> * book: Started to add screenshots of examples. 2002-10-16 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treeview.{ccg,hg} (TreeView::unset_hadjustment): New method adding the possibility to unset the adjustment object. This is the equivalent of gtk_tree_view_set_hadjustment(foo, 0) in GTK+. (unset_vadjustment): ditto (unset_expander_column): ditto. (set_cursor): New overload taking only the TreePath argument. This is another necessary API addition due to the usage of NULL pointers in GTK+. * gtk/src/textview.hg: Minor beautification. 2002-10-16 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treeview.{ccg,hg} (TreeView::map_expanded_rows): Make slot a const reference argument. The missing & was probably a typo. (enable_model_drag_source): Get rid of GtkTargetEntry* in favor of the corresponding C++ type. This requires the method to be implemented manually since we need an ArrayHandle. (enable_model_drag_dest): ditto. 2002-10-15 Daniel Elstner <daniel.elstner@gmx.net> * examples/thread/thread.cc: Write to std::cout instead of std::cerr and flush() the stream explicitely. (The implicit flushing is the only reason why std::cerr has been used.) * examples/thread/threadpool.cc: ditto. 2002-10-15 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/enum.m4: Generate all bitwise operators for flags enumerations, rather than just 3 (| & ~). It's hard to judge which ones are necessary and which not, and there is no particular reason to exclude any of them. * glib/glibmm/main.h (Glib::IOCondition): Manually implement the missing bitwise operators. * glib/glibmm/main.cc: Minor coding style adaption. 2002-10-15 Daniel Elstner <daniel.elstner@gmx.net> Glib::IOChannel patch from Tassos Bassoukos <abas@aix.meng.auth.gr> with major modifications. See bugzilla #93585 for the originally submitted patch. * glib/src/iochannel.{ccg,hg}: New files implementing class Glib::IOChannel, which wraps GIOChannel. * glib/glibmm/streamiochannel.{cc,h}: New files implementing class Glib::StreamIOChannel, which provides the Glib::IOChannel interface for standard C++ streams. * glib/src/glib_enums.defs: Fix several enumeration values that weren't parsed correctly. This is obviously quick and dirty, I should fix tools/enum.pl instead. * glib/glibmm/error.{cc,h} (Glib::Error::propagate): New internal utility method for use by the Glib::IOChannel code. * tools/m4/convert_glib.m4: New file defining glibmm-specific type conversions. * tools/m4/convert_base.m4: Include convert_glib.m4 * tools/m4/convert_gtkmm.m4: ditto. * glib/glibmm/Makefile.am: Add new files * glib/src/Makefile_list_of_hg.am_fragment: ditto * tools/m4/Makefile_list_of_sources.am_fragment: ditto * glib/glibmm.h: ditto. 2002-10-12 Murray Cumming <murrayc@usa.net> * gdk/src/gc.hg: _IGNORE()ed some convenience functions. 2002-10-12 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/textbuffer.ccg (TextBuffer::insert_with_tags_by_name): Don't return immediately if an invalid tag name is in the array, because there are others following and we should try to apply all of them. 2002-10-12 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/textbuffer.{ccg,hg}: Gtk::TextBuffer API changes for STL compliance, probably breaking stuff: (insert_at_cursor): Don't return the insertion point. That's a) not STL compliant since the returned iterator should point *after* the inserted range, and b) useless since easy to retrieve. (insert_range): Rename to insert(). (insert_range_interactive): Rename to insert_interactive(). (delete_text): Rename to erase(). (delete_interactive_text): Rename to erase_interactive(). (delete_selection): Rename to erase_selection(). (insert_child_anchor): Return an iterator. (paste_clipboard): New overload without override_location. (signal_insert_text): Rename to signal_insert(). (signal_delete_range): Rename to signal_erase(). (assign): New alias method for set_text(). Also fix several occasions of supiciously-looking code dealing with iterators. * demos/gtk-demo/example_textview.cc: Fix invalid iterator warnings. * demos/gtk-demo/textwidget.cc: s/delete_text/erase/ 2002-10-12 Murray Cumming <murrayc@usa.net> * gtk/gtkmm/clipboard.[h|cc]: Documented Slot types. Slots are now passed as const &. Added const overload of get_owner(). 2002-10-12 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/textiter.hg (TextIter::operator bool): Return !is_end() rather than is_end(). Ouch -- am I really the first one to notice this? Also update reference documentation. 2002-10-12 Daniel Elstner <daniel.elstner@gmx.net> * tools/m4/convert_pango.m4: Add conversion for Pango::Language. * gtk/src/textiter.{ccg,hg}: Gtk::TextIter API changes (all safe, except for the get_language() change none of these modifications will make existing code not compile): (iterator_category): Change to bidirectional_iterator_tag. (reference): Impossible -- make it the same as value_type. (pointer): Impossible -- make it a void typedef. (operator--): Implement. (operator*): Return by value not reference. (operator->): Remove. (get_marks): Change to const method (get_child_anchor): ditto (get_toggled_tags): ditto (get_tags): ditto (forward_search): ditto (backward_search): ditto. (get_language): s/PangoLanguage*/Pango::Language/ (forward_find_char): Make predicate a const reference (backward_find_char): ditto. Also, make all operators inline since they're just plain forwarders to the real methods. 2002-10-12 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/treeview.{cc,hg} (TreeView::scroll_to_cell): Split up this method into scroll_to_cell(), scroll_to_row() and scroll_to_column() with 2 overloads each, i.e. 6 methods. Also document all 6 of them. The API change is justified by the fact that scrolling to a row without changing the column and vice versa was impossible with the old API. 2002-10-11 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/textbuffer.{ccg,hg} (TextBuffer::create_mark): Add missing overload to create anonymous marks. 2002-10-11 Murray Cumming <murrayc@usa.net> * Changed all copyrights to The gtkmm Development Team. 2002-10-11 Daniel Elstner <daniel.elstner@gmx.net> Fix most warnings issued by g++-3.2 -pedantic -W -Wall: * gdk/src/color.ccg: Explicitely initialize all struct members, not just the first. GCC 3.2 is pickier than ever before. * glib/glibmm/class.cc: ditto * glib/glibmm/dispatcher.cc: ditto * gtk/src/stockitem.ccg: ditto * tools/extra_defs_gen/generate_extra_defs.cc: ditto * glib/glibmm/utility.h (GLIBMM_INITIALIZE_STRUCT): Use __builtin_bzero() instead of compound literals to avoid warnings because of not explicitly initialized struct members. * glib/glibmm/main.cc (Source::dispatch_vfunc): Omit unused parameter name. * glib/glibmm/propertyproxy_base.cc (callback): ditto * gtk/src/treemodel.ccg (TreeModel::set_value_impl): ditto * gtk/src/treeviewcolumn.ccg (generate_cellrenderer): ditto * glib/glibmm/error.cc: In the copy ctor explicitely call the base class's (copy) ctor. This warning really makes sense. * tools/m4/list.m4: ditto * glib/glibmm/signalproxy_connectionnode.cc: Reorder initializer list to match declaration order. That's not a new warning! * glib/src/value_basictypes.cc.m4: Prevent warnings about long long by using typedefs prefixed by G_GNUC_EXTENSION. * gtk/gtkmm/menu_elems.cc: An unused accel_key parameter in one of the ctors caused a warning. This was an actual bug -- fixed. * gtk/src/box.ccg (Child::set_options): padding was unused. Another actual bug -- enable compiler warnings, dudes! * gtk/src/object.ccg (Object::_init_unmanage): is_toplevel is unused -- I commented it out for now, though I'm not sure whether this is right. (could someone please investigate?) (Object::callback_destroy_): Omit unused parameter name. * gtk/src/textiter.ccg (TextIter::get_attributes): Remove the initializer for GtkTextAttributes (thereby avoiding a warning) and add a comment explaining that it isn't strictly necessary. * pango/src/attributes.ccg (get_type): Fix enum type mismatch. 2002-10-11 Daniel Elstner <daniel.elstner@gmx.net> * gtk/src/entry.hg (Entry::get_layout): Add missing "refreturn". * gtk/gtkmm.h: Include treemodel.h and treerowreference.h. 2002-10-09 Murray Cumming <murrayc@usa.net> * Now requires libsigc++ 1.2.0. 1.2.24: 2002-09-23 Martin Schulze <MHL.Schulze@t-online.de> * glib/glibmm/main.{cc,h} (Glib::Source): Change the implementation of Glib::Source. Now it doesn't use a derived but rather a native GSource object and installs a SourceCallbackData on construction that contains both the pointer to the c++ wrapper and the pointer to the connection node that is currently used (i.e. 0 until a slot is connected). Glib::Source::finalize() is replaced with Glib::Source::destroy_notify_callback() which gets called when the SourceCallbackData object is notified from glib. The change allows us to wrap existing GSource objects. A new Glib::Source(GSource*, GSourceFunc) ctor is added to support this. 2002-10-06 Stephan Puchegger <stephan.puchegger@ap.univie.ac.at> * API additions to Glib::TimeVal - convenience methods rather than wrappers of glibmm functions. 2002-10-06 Daniel Elstner <daniel.elstner@gmx.net> * glib/src/convert.{ccg,hg} (Glib::IConv): Add reset() method which provides an obvious and portable way of resetting the conversion descriptor. * glib/src/convert.ccg (Glib::IConv::IConv): Get around the untranslated error message problem by abusing g_convert() to generate the GError for us. Might be slightly unorthodox but neatly avoids any inconsistencies with GLib. 2002-10-02 Murray Cumming <murrayc@usa.net> * Added Gdk::screen_height() and Gdk::screen_width() in the new gdk/gdkmm/general.[h|cc] files. 2002-10-02 Murray Cumming <murrayc@usa.net> * glib/glibmm/main.h: Added documentation line from ebuddington@wesleyan.edu about SignalIO disconnection based on handler's return type. 2002-09-30 Murray Cumming <murrayc@usa.net> * docs/tutorial/gtkmm-tut.xml: Made the Basics chapter more basic, moving detailed information into the appendices and the Container Widgets chapter. This chapter should do no more than introduce basic things such as widgets and signals. * docs/index.html: Updated links for renumbered book chapters. 2002-09-25 Mike McEwan <mike@lotusland.demon.co.uk> * gtk/src/textmark.ccg (get_iter): Do a reference on the Glib::RefPtr<TextMark>(this) passed to Gtk::TextBuffer::get_iter_at_mark(). 2002-09-21 Daniel Elstner <daniel.elstner@gmx.net> * examples/paned/paned.cc: Get rid of g_strdup_printf() in favor of std::ostringstream. 2002-09-21 Daniel Elstner <daniel.elstner@gmx.net> * examples/thread/dispatcher2.cc: Remove unnecessary #include. 2002-09-21 Stephan Puchegger <puchs@ap.univie.ac.at> * examples/thread/dispatcher2.cc: New example demonstrating the use of Glib::Dispatcher with multiple main loops. * examples/thread/Makefile.am: Add new example file. 2002-09-21 Daniel Elstner <daniel.elstner@gmx.net> * tests/dialog_deletethis/main.cc: Add missing #include <iostream> as well as a missing namespace std:: prefix. 2002-09-21 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/main.{cc,h} (Glib::Source): Make the static vfunc_table_ data const. 2002-09-21 Stephan Puchegger <puchs@ap.univie.ac.at> * glib/glibmm/dispatcher.{cc,h} (Glib::Dispatcher): Add extra ctor which accepts an arbitrary Glib::MainContext instance to operate on. (#93694) 2002-09-20 Murray Cumming <murrayc@usa.net> * Added platform-specific READMEs to the docs overview page. 2002-09-20 Murray Cumming <murrayc@usa.net> * gtk/src/object.ccg: Container_Class::destroy_callback(): Added a g_object_ref before the gtk_container_remove for un-manage()ed child widgets, so that they are not destroyed before their C++ destructors destroy them with gtk_object_destroy(). 2002-09-20 Murray Cumming <murrayc@usa.net> * Added tests/dialog, for bug #93703. 2002-09-19 Murray Cumming <murrayc@usa.net> * reference documentation: Hid TypeTraits and Value specializations. Added libsigc++ reference docs URL to overview page. 2002-09-18 Christian Meyer <chrisime@gnome.org> * docs/internal/using_gtkmmproc.txt: added how _CLASS_GOBJECT() and _CLASS_GTKOBJECT() work. _CLASS_GOBJECT() is still "FIXME". 2002-09-18 Murray Cumming <murrayc@usa.net> * Updated the FAQ, with information about the gcc 2.9* dynamic_cast<> bug, and gcode. 2002-09-18 Murray Cumming <murrayc@usa.net> * docs/reference/Doxyfile.in: Generate a doxygen tags file, for use by other doxygen docs, such as the gnomemm docs. 2002-09-16 Daniel Elstner <daniel.elstner@gmx.net> * docs/reference/Doxyfile.in: Predefine the macro GTKMM_API to an empty string, so that it won't mess up the documentation. * docs/reference/Makefile.am: Add all image directories that have been found to DOXYGEN_IMAGE_PATH, not just the first. (In other words, make it work for me ;) * gtk/gtkmm/stock.h (Gtk::Stock::MISSING_IMAGE): Correct the @image link to stock_broken_image_24.png (it hasn't been correct before because of a GTK+ doc bug at the time I wrote this). 2002-09-16 Murray Cumming <murrayc@usa.net> * gtk/src/textbuffer.ccg: Removed a default parameter value from the method definition. 1.3.23: 2002-09-15 Murray Cumming <murrayc@usa.net> * gtk/src/container.ccg: Container_Class::destroy_callback(): We don't remove child widgets if they are not manage()ed, so that gtk_container_destroy will call destroy them properly. gtk_widget_destroy() will always succeed, but gtk_container_remove() isn't guarranteed to cause destruction. It is now clear that this callback was necessary, not just as a refcount hack - we really do need to remove non-manage()ed widgets, because SINKing them does not prevent them from being destroyed in gtk_container_destroy(). 2002-09-15 Daniel Elstner <daniel.elstner@gmx.net> * gtk/gtkmm/menu_elems.h gtk/src/object.hg: Remove extra qualification of class members inside the class declaration, in order to avoid compiler warnings. 2002-09-15 Daniel Elstner <daniel.elstner@gmx.net> * glib/glibmm/miscutils.cc (build_filename): The 2-argument convenience overload of build_filename() did not strip trailing rpt. leading separators from its arguments. Fixed to match the other build_filename() and the documentation. 2002-09-13 Bassoukos Tassos <abas@aix.meng.auth.gr> * tools/m4/method.m4, tools/pm/Function.pm, tools/pm/Output.pm: implemented an "errthrow" flag to _WRAP_METHOD, which generates code to throw GErrors as exceptions in automatically wrapped methods. When using this flag, omit the trailing GError** parameter from the signature of the 1st argument to _WRAP_METHOD. 2002-09-13 Murray Cumming <murrayc@usa.net> * Glib::Dispatcher: Put emit() back. It is in SigC::Signal*, but not in Slots. 2002-09-13 Murray Cumming <murrayc@usa.net> * Glib::Dispatcher: removed emit(), leaving the operator() overload, like libsigc++ signals. 2002-09-12 Murray Cumming <murrayc@usa.net> * Pango::Attributes, Color, Language: Changed some std::string parameters to Glib::ustring because there is no reason to believe that they can not be UTF8. 2002-09-12 Murray Cumming <murrayc@usa.net> * Gtk::TreeView::Column(): set_widget() now takes a Gtk::Widget& rather than a GtkWidget*. Suggested by Andrew E. Makeev. 2002-09-12 Murray Cumming <murrayc@usa.net> * gtk/src/widget.hg, style.hg, iconset.hg: Changed includes so that people have to include widget.h manally when using iconset.h, rather then having to include style.h manually when using widget.h. This should have less impact. 2002-09-11 Murray Cumming <murrayc@usa.net> * Gtk::Style: wrapped the virtual functions, as suggested by Andrew S. Novikov. 2002-09-11 Murray Cumming <murrayc@usa.net> * gtk/src/textbuffer.[hg|ccg]: Added Gtk::TextBuffer::get_text() overload to get all of the text. Suggested by Michael Gariss. 2002-09-08 Marcelo E. Magallon <mmagallo@debian.org> * tools/pm/Enum.pm, tools/pm/Function.pm, tools/pm/GtkDefs.pm, tools/pm/Output.pm, tools/pm/WrapParser.pm: fix sub prototypes. Perl doesn't use commas to separate arguments. 2002-09-04 Martin Schulze <MHL.Schulze@t-online.de> * api_status.txt: Reflect recent API additions to pangomm. * TODO: Add TODO item about adding some pangomm examples. * tools/pm/DocParser.pm: Comment out conditional if-clause around conversion from C documentation to C++. It prevented conversion of the documentation in *_docs_override.xml which currently is in the same style as *_docs.xml and lead to results mistakes in our overridden gtk documentation. * pangomm/src/attributes.hg: - Make Attr* default constructors protected. They don't construct legal attribute objects. Attribute::Attribute() constructs an object with gobject_==0. This is handled as if it were an attribute type ATTR_INVALID and allows wrapping of 0 ret vals from pango functions. - Change const char* into std::string& or const Glib::ustring&. * pangomm/src/attriter.ccg: Correct bug in AttrIter::get_font(). (Taken a hint in pagno c ref doc serious :) * pangomm/src/attriter.hg: - Rename AttrIter::get() to AttrIter::get_attribute(). - Rename AttrIter::range() to AttrIter::get_range(). * pangomm/src/attrlist.hg: Add default argument for: explicit AttrList::AttrList(const Glib::ustring&, gunichar accel_marker=0). * pangomm/src/color.hg: Change const char* into const std::string&. * pangomm/src/context.{hg,ccg}: - Remove _WRAP_CREATE(). It can't possibly initialize the Pango::Context correctly because some PangoFontMap is needed from a pango backend. - Add function overload for Context::get_metrics() without any argument. Passes 0 into the language arg of the pango function. - Remove "length" parameter in Context::itemize() for the simple overload. Compute the length from the passed text argument instead. * pangomm/src/coverage.{hg,ccg}: - Change Coverage::to_bytes() to return a Glib::ArrayHandle instead of guchar*. - Remove Coverage::copy(). The pango docs state that is is superfluous. * pangomm/src/font.hg: - Add function overload for Font::get_metrics() without any argument. Passes 0 into the language arg of the pango function. - Rename Font::get_glyph_extents_{ink,logical}_rect_only() to Font::get_glyph_{ink,logical}_extents() and make them return a Rectangle. * pangomm/src/fontdescription.hg: Remove FontDescription::{set_family_static,merge_static}. These functions can cause memory leaks. See comments in fontdescription.hg. * pangomm/src/glyph.{hg,ccg}: - Add Glib::wrap(PangoGlyphInfo*). I forget it last time. - Comment out set_* in GlyphInfo and GlyphGeometry. They don't make sense as GlyphInfo and GlyphGeometry are merely output classes to the user. * pangomm/src/glyphstring.{hg,ccg}: - Add GlyphString::GlyphString(const Glib::ustring&, const Analysis&). This wraps pango_shape which didn't do up to now. - Make GlyphString::get_logical_widths(), GlyphString::index_to_x() and GlyphString::x_to_index() calculate the size from the passed text parameter rather than demanding an extra argument. GlyphString::get_logical_width() now allocaltes an array to store the results rather than expecting the user to do this and index_to_x() returns the result instead of using an ouput argument. - Added overloads that return one Rectangle for get_extents(). - Make GlyphString::get_logical_widths() return a Glib::ArrayHandle<int>. * pangomm/src/item.{hg,ccg}: Add Item::get_segment() and Item::shape(). The former computes the text segment that is covered by the item (convenience one-line-function not available in pango), the latter wraps the new GlyphString constructor and thus pango_shape(). * pangomm/src/language.{hg,ccg}: - Add Language::Language() that constructs an object with gobject_==0. - Adapt Language::get_string to allow for objects with gobjct_==0. - Change const char* into std::string. * pangomm/src/layout.{hg,ccg}: - Bug fix: use text.bytes() instead of text.size(). - Bug fix: use refreturn parameter of _WRAP_METHOD for Layout::get_context() and Layout::get_line(). - Make Layout::index_to_pos() return a rectangle instead of expecting an output argument. * pangomm/src/layoutiter.{hg,ccg}: - Bug fix: use refreturn parameter of _WRAP_METHOD for LayoutIter::get_line(). - Make LayoutIter::get_char_extents() return a rectangle instead of expecting an output argument. - Make LayoutIter::get_run() return a LayoutRun object. * pangomm/src/layoutline.{hg,ccg}: - Make index_to_x() return an int instead of using an output argument. - Make get_x_ranges() return a Glib::ArrayHandle<std::pair<int,int> >. * pangomm/src/layoutrun.{hg,ccg}: New files adding wrapper LayoutRun. * pangomm/src/tabarray.{hg,ccg}: Make TabArray::get_tab() return a std::pair<TabAlign,int> instead of using two output arguments. * pangomm/src/Makefile_list_of_hg.am_fragment: Add new file. * tools/m4/convert_pango.hg: Add entries for the new wrapper LayoutRun. * pangomm/src/{*.hg,*.ccg}: - Make lots of get_* and other functions const. - Add more functions like Layout::get_ink_extents() where pango functions use two PangoRectangle* output arguments. - Add lots of documentation. Hopefully some things I had to learn the hard way become clear in the class description of Pango::Context! 2002-09-01 Martin Schulze <MHL.Schulze@t-online.de> * {pango,atk,gdk}/src/{pango,atk,gdk}_docs.xml: New files holding the GTK C docs for these namespaces. They were generated by the pygtk/codegen/docextract_to_xml.py python script in the gnome-python cvs module. Glib is omitted because no docs can be reused. * {pango,atk,gdk}/src/{pango,atk,gdk}_docs_override.xml: New files that will hold documentation for functions where the GTK docs are not appropriate. * {pango,atk,gdk}/src/Makefile.am: Include above files in the 'files_defs' variables so they get passed to gtkmmproc. 2002-08-29 Michael v. Szombathely <szombath@bifab.de> * README.sun: build instructions for Sun Forte C++ added 1.3.22: 2002-08-28 Michael v. Szombathely <szombath@bifab.de> * gtk/src/table.hg, examples/dnd/dndwindow.cc, docs/tutorial/gtkmm-tut.xml: use of AttachOptions around operator| removed 2002-08-28 Michael v. Szombathely <szombath@bifab.de> * tools/m4/convert_pango.m4: for Pango::Layout and Pango::LayoutLine conversion of const RefPtr's changed to special macro __CONVERT_CONST_REFPTR_TO_P_SUN, to avoid ambiguity errors with Sun's Forte C++ compiler. 2002-08-26 Martin Schulze <MHL.Schulze@t-online.de> * tools/m4/members.m4: - Improve indentation of generated code. - _MEMBER_SET_PTR, that hasn't been used up to now, shouldn't force us to have const XYZ& in the parameter list. We might want it to take XYZ* to transfer the ownership of XYZ. (=> change def. to "define(`_MEMBER_SET_PTR',`void set_$1($3 v)..." ) - Delete wrong ";" in _MEMBER_SET_GOBJECT/SECTION_CC * tools/m4/convert_pango.m4: Reorder the entries to improve readability and adopt to changes in pangomm. TODO: verify usage of Pango::XYZ(($3)) versus Glib::wrap(($3)) * pango/src/rectangle.{ccg,hg}: New files adding wrapper Pango::Rectangle. * pango/src/language.{ccg,hg}: New files adding wrapper Pango::Lanuage. * pango/src/color.{ccg,hg}: New files adding wrapper Pango::Color. * pango/src/item.{ccg,hg}: New files adding wrappers Pango::Item, Pango::Analysis. * pango/src/glyph.{ccg,hg}: New files adding wrappers Glyph, GlyphUnit, GlyphInfo, GlyphGeometry, GlyphVisAttr. * pango/src/attributes.{ccg,hg}: Add missing wrapper classes Pango::Attribute, Pango::Attr[XYZ]. Attributes are created using the appropriate function Pango::Attribute::create_attr_xyz(). If necessary, one can cast a Pango::Attribute* to the appropriate subclass Pango::Attr[XYZ] to retrieve and manipulate the type specidic data of the attribute. * pango/src/attriter.{ccg,hg}: Add missing wrapper class Pango::AttrIter. (I named it Pango::AttrIter rather than the obvious Pango::AttrIterator to be consistent with the naming of other iterator classes.) * pango/src/attrlist.{ccg,hg}: Make use of the new wrapper classes. * pango/src/Makefile_list_of_hg.am: Add new filenames. * pango/src/{attrlist.hg,context.hg,coverage.hg,font.{ccg,hg}, fontdescription.hg,fontface.hg,fontfamily.hg,fontmap.hg,fontmetrics.hg, glyphstring.{hg,ccg},layout.hg,layoutiter.{hg},layoutline.hg,tabarray.hg}: - Make use of new wrappers. - Remove "Pango::" at some places to reflect changes in convert_pango.m4. - Add class descriptions. - TODO: Add more documentation. * pango/src/context.{ccg,hg}: Wrap method pango_itemize in Pango::Context. * pango/src/font.hg: Remove function Font::find_shaper(): We don't wrap PangoEngine* and most of its c API is disabled by default (i.e. you have to #define some tag to include the definitions). * pango/src/fontset.{ccg,hg}: Wrap methods pango_fontset_get_font(), pango_fontset_get_metrics(). 2002-08-26 Naofumi Yasufuku <naofumi@yasufuku.net> * gtk/gtkmm/menu_elems.cc: Don't include strings.h on Win32 platforms to avoid compile error. 2002-08-26 Murray Cumming <murrayc@usa.net> * gtk/src/object.ccg: set_manage(): We no longer assume that the GObject refcount is 1 after gtk_something_new(), because it isn't always, for instance, with GtkButton when it has a mnemonic. This doesn't fix bug #91404 but it might be part of the problem. 2002-08-25 Murray Cumming <murrayc@usa.net> * tools/m4/class_shared.m4: Added _GTKMMPROC_WIN32_NO_WRAP, and changed tools/generate_wrap_init.pl.in to look for this so that it can put #ifndef WIN32 around the use of those classes. 2002-08-24 Murray Cumming <murrayc@usa.net> * Added tests/child_widget_managed: Based on Michael v. Szombathely's code in bug #91404. But I believe that I have corrected the code, proving that it isn't a bug. 2002-08-02 Michael v. Szombathely <szombath@bifab.de> * pango/src/layout.hg, gtk/src/treemodel.hg: extra semicolons removed 2002-08-20 Naofumi Yasufuku <naofumi@yasufuku.net> * configure.in: Add -fnative-struct g++ option to CXXFLAGS on native Win32 target. 2002-08-22 Naofumi Yasufuku <naofumi@yasufuku.net> * build_shared/Makefile_build.am_fragment: Added install-libtool-import-lib and uninstall-libtool-import-lib targets for Win32 build. Win32 import libraries are now installed automatically. 2002-08-22 Murray Cumming <murrayc@usa.net> * Gdk::Window: Added set_window(void) overload, to reset the cursor. 2002-08-16 Martin Schulze <MHL.Schulze@t-online.de> * gtk/src/treeview.hg: Remove the internal functions in namespace TreeView_Private from documentation. The problem arose because the functions are global in this namespace. 1.3.21: 2002-08-18 Martin Schulze <MHL.Schulze@t-online.de> * pango/src/layout.{ccg,hg}: Wrap pango_layout_new(PangoContext*) adding Pango::Layout::create(const Glib::RefPtr<Context>&). 2002-08-17 Murray Cumming <murrayc@usa.net> * Gtk::Container_Class::destroy_callback(): Uncommented the code to remove the widgets before GTK+ does so itself. It does seem necessary. * Gtk::Object::_destroy_c_instance(): Prevented double destruction of the GtkObject, by connecting a temporary GtkObject::"destroy" callback just to set Gtk::Object::gobject_disposed_. * Added tests/child_widget2 to exercise these bug fixes. * This bug (#90891) was found by Daniel Sundberg. 2002-08-17 Murray Cumming <murrayc@usa.net> * Moved tools/*.txt to docs/internal/ * Added docs/internal/documentation_generation.txt 2002-08-17 Murray Cumming <murrayc@usa.net> * Some additions to PORTING, from Elke Meier. 2002-08-15 Bradley Bell <btb@debian.org> * The PORTING file is now distributed. 2002-08-18 Martin Schulze <MHL.Schulze@t-online.de> * pango/src/layout.{ccg,hg}: Wrap pango_layout_new(PangoContext*) adding Pango::Layout::create(const Glib::RefPtr<Context>&). 2002-08-14 Ole Laursen <olau@hardworking.dk> * gtk/src/scale.hg: Fixed set_draw_value and get_draw_value to use bools. Also added more documentation for Scale, VScale and HScale 1.3.20: 2002-08-14 Murray Cumming <murrayc@usa.net> * Gtk::IconFactory::add(): Change parameter from string to Gtk::StockID, to allow use of Gtk::BuiltinStockID also. * Gtk::StockItem: constructor: ditto. 2002-08-13 Martin Schulze <MHL.Schulze@t-online.de> * tools/m4/list.m4: Fix a bug in macro GP_LIST_FIND(). It generated illegal code when _no_ argument was given to GP_LIST_FIND(). (The argument being a function name that allows to retrieve the widget from the STL-list's output type. We don't need it for ComboDropDownList since the output type is the widget itself.) * gtk/src/combo.{ccg,hg}: Complete the API: Generate thin wrappers around GtkListItem and GtkList (named ComboDropDownItem and ComboDropDown) that contain the functionality necessary to manipulate the pull-down list of a Gtk::Combo. Insertion and removal to/from the list is provided by an STL-style wrapper (named Gtk::ComboDropDown_Helpers::ComboDropDownList). * tools/m4/convert_gtk.m4: Add conversions from (const) GtkWidget* to (const) Gtk::ComboDropDown*. Remove conversion from (const) GtkWidget* to Gtk::List* which doesn't exist. * examples/book/combo/examplewindow.cc: Show the use of the new Gtk::ComboDropDown API by adding a mixed entry (image/label) to the combo's list. 2002-08-10 Martin Schulze <MHL.Schulze@t-online.de> * gtk/src/treeview.hg: Try to avoid the conditional compilation: Make _connect_auto_store_editable_signal_handler() a global function in namespace TreeView_Private. This non-member function can safely refer to specializations of the member function template TreeView::_auto_store_on_cellrenderer_*_edited(), working around compiler bugs. gcc 2.95.3 had a problem with this. See bug #89951. 2002-08-10 Murray Cumming <murrayc@usa.net> * examples/calendar and examples/tictactoe no longer use manage() on top-level windows. These examples are a bit neglected anyway. 2002-08-10 Murray Cumming <murrayc@usa.net> * gtk/src/object (destroy_c_instance_()): If g_object_unref() doesn't cause it to be disposed then force it with gtk_object_destroy(). This is necessary because adding a widget to a container refs it even if it's not floating. Fixes bug #90088, as seem in tests/delete_cpp_child. 2002-08-09 Martin Schulze <MHL.Schulze@t-online.de> * configure.in,scripts/cxx.m4,gtk/gtkmmconfig.h.in: Add configure time check as proposed by Joe Yandle with some modifications. It checks whether the compiler allows member functions to refer to specializations of member function templates. * gtk/src/treeview.hg: Use configure time check from above for conditional compilation of the critical code. 2002-08-09 Murray Cumming <murrayc@usa.net> * Gdk::Drawable: Changed filled arg org of draw_rectangle() and draw_arc() from int to bool, because it should be a gboolean. Found by Michael Koziarski. 2002-08-09 Martin Schulze <MHL.Schulze@t-online.de> * gtk/src/textiter.{ccg,hg}, gtk/src/textmark.{ccg,hg}: Avoid unnecessary includes. Add TextMark::get_iter() which works equivalent to mymark->get_buffer()->get_iter_at_mark(mymark). * gtk/src/textbuffer.{ccg,hg}: - Make TextBuffer::insert_(interactive_)at_cursor() return the iterator of the cursor position using get_insert()->get_iter() or end() if the insertion failed. - Make TextBuffer::delete_(interactive_)text() return the iterator of the position where the deletion occured or end() if no deletion occured. Make the iterators in the parameter list const. - Make the iterators in the parameter lists of TextBuffer::paste_clipboard(), TextBuffer::insert_child_anchor() and TextBuffer::create_child_anchor() const. 2002-08-08 Murray Cumming <murrayc@usa.net> * Removed examples/combo and examples/menu. They are replaced by cleaner examples in example/book/. 2002-08-08 Andreas Holzmann <Andreas.Holzmann@epost.de> * gdk/src/color.{hg,ccg}: Renamed red_p(), green_p(), blue_p() to get_red_p(), get_green_p(), get_blue_p() because of inconsistency. * TODO: Added comment about a few more get-methods that should be renamed in some future version because of inconsitency. 2002-08-07 Martin Schulze <MHL.Schulze@t-online.de> * gtk/src/ruler.hg: Fix errors in documentation (names of enums). * example/rulers/rulers.cc: Change event mask of the drawing area into (Gdk::POINTER_MOTION_MASK|Gdk::BUTTON_PRESS_MASK). Gdk::POINTER_MOTION_HINT_MASK prevented the emission of motion events quite effectively and Gdk::BUTTON_PRESS_MASK seems necessary to get motion events also while a mouse button is pressed. The latter seems quite strange to me - I'll report on the gtk ml. 2002-08-07 ERDI Gergo <cactus@cactus.rulez.org> * gtk/src/treemodel.ccg (proxy_foreach_iter_callback): Marshall correct return value from callback slot * gtk/src/treeview.hg: Removed unused pCellToggle variable * gtk/src/bin.ccg (add_label): new overload to support the AlignmentEnum API 2002-08-07 Murray Cumming <murrayc@usa.net> * Glib::Object::Object(castitem): Removed warning, because libglade really does need to instantiate "gtkmm_" classes directly. * Added _UNMANAGEABLE macro for use with top-level windows in the .hg file. This prevents use of manage() in their wrap_new() functions. It's tedious to use this for every Window-derived class, but I want to make sure that people see the warning when they do the same thing manually. 2002-08-07 Murray Cumming <murrayc@usa.net> * Added examples/book/combo example. 1.3.19: 2002-08-06 Murray Cumming <murrayc@usa.net> * Removed Glib::Closure. We don't use it, so it's probably useless. * Gtk::TreeModel: Added foreach() wrapper, like the Gtk::TreeModel::Selection::foreach() methods. We can't use the same Slot types because the Model one has a bool return value. * Widget, Window: Removed unused old-style docs. * Gtk::Style: Added const get_gc() overloads. 2002-08-05 Murray Cumming <murrayc@usa.net> * Added Gtk::TreeModel::RowReference, as a wrapper of GtkTreeRowReference. Requested by Julian Missig 2002-08-05 Daniel <dss@home.se> * demos/gtk-demo/example_treeview_treestore.cc: toggle boxes are no longer shown in parent rows - there is a hidden boolea column that is associated with the visible attribute of the cell renderers. 2002-08-05 Murray Cumming <murrayc@usa.net> * glib/glibmm/signalproxy_connectionnode.h: Fixed segfautlt-on-quit in examples/book/menu/main_menu and demos/gtk-demo "paned widgets" part, by adding a boolean to detect disconnection in progress. I found this problem with Valgrind. I'm not sure why this only happens with these 2 examples, and I need to check that this doesn't cause any memory leaks. 2002-08-04 Murray Cumming <murrayc@usa.net> * Fixed dialog lifecycle bug #89557, with a quite large reorganisation of the lifecycle code. Most importantly, I discovered that GtkWindows _must_ be destroyed with gtk_object_destroy() and never with just a g_object_unref(). * Gtk::Object: Added comments to explain how manage() isn't quite the same when used on something that has already been added to a container. In those cases it just does an extra ref/unref, because it doesn't need to unsink and then sink something that is already sunk. It makes no difference to the API. It worked before too, but we never knew about it. The code comments are probably clearer than that explanation. * Gtk::Window: They can never be manage()ed because they have no parents, so calling Gtk::manage() on them will now give a warning. 2002-08-03 Murray Cumming <murrayc@usa.net> * Added tests/refcount_dialog - this currently shows a problem. See bug #89557. * Added glibmm/debug.[h|cc] which will help debug the refcounting bug above. * gtk/src/widget.[hg|ccg]: Added custom hierarchy_changed and parent_set callbacks, like Container's custom remove callback, to prevent calling Glib::wrap() on already-deleted instances. I have a feeling that we could remove both of these after I fix the bug above. I have marked them with GTKMM_LIFECYCLE comments. * You will now see a warning if Glib::wrap() tries to recreate a 2nd C++ wrapper. I want to hear about it if you see that warning. 2002-08-02 Michael v. Szombathely <szombath@bifab.de> * examples/cellrenderercustom/cellrendererlist.cc, examples/cellrenderercustom/cellrenderertoggle.cc, examples/cellrenderercustom/testpopup.cc, examples/paned/paned.cc: #ifdefs for Sun Forte C++ (__SUNPRO_CC) to work around it bug to compiler constructors with template parameters See gnome bugzilla bug #85979. 2002-08-02 Andreas Holzmann <Andreas.Holzmann@epost.de> * gtk/src/menu.{hg,ccg}: Revert to old popup() method. * gtk/src/menushell.{hg,ccg} (accelerate): Added override that takes a Gtk::Widget parent parameter instead of a Gtk::Window toplevel parameter. It then discovers that widget's top-level Window. * gtk/src/menubar.{hg,ccg}: Connect auto acceleration init method to realize signal (again). This will show accelerators if the menubar is added to a window first, and menu items are added later. * gtk/src/optionmenu.{hg,ccg}: Use same mechanism to automatically initialize menu accelerators as in Gtk::MenuBar. * gtk/gtkmm/accelkey.{h,cc}: Switched accel_key and accel_mods parameter to be more consistent with the rest of the accel functions. * gtk/gtkmm/menu_elems.{h,cc}: Cleanup. * gtk/gtkmm/accelmap.{h,cc}: New wrapper for gtk+ functions. * demos/*, examples/*: Menu API changes. 2002-07-31 Murray Cumming <murrayc@usa.net> * Gtk::TreeRow: inherit publically from Gtk::TreeIter so that a row can be used wherever an iterator is needed by a method. This means that we don't have to provide overrides for every such method, which could be ambiguous anyway. People can't always use an iterator because some methods and callbacks return a row instead of an iterator, for convenience. 2002-07-30 Michael v. Szombathely <szombath@bifab.de> * gtk/src/liststore.ccg, gtk/src/treestore.ccg: explicit casts removed (are not needed), detected by Sun Forte C++ compiler 2002-07-30 Michael v. Szombathely <szombath@bifab.de> * tools/m4/convert_base.m4, tools/m4/convert_gdk.m4, tools/m4/convert_gtk.m4, tools/m4/convert_pango.m4: Specify template specialization when using unwrap() for RefPtr's of some const types by special macro __CONVERT_CONST_REFPTR_TO_P_SUN, to avoid ambiguity errors with Sun's Forte C++ compiler. 2002-07-29 Murray Cumming <murrayc@usa.net> * gtk/gtkmm/menu_elems.cc: The ImageMenuElem() constructors now call show() on the image widget so the coder doesn't need to. Note that you can use StockMenuElem() to use a stock icon in a menu item. 2002-07-26 Murray Cumming <murrayc@usa.net> * docs/tutorial/gtkmm-tut.xml: Added TreeView Editable Cells sub-section. 2002-07-26 Murray Cumming <murrayc@usa.net> * gtk/src/treeview.hg: The auto-store-edit templated callbacks now use int column numbers rather than TreeModelColumns, so the TreeModelColmns don't need to exist when they are called. 2002-07-20 Marcelo E. Magallon <mmagallo@debian.org> * docs/tutorial/Makefile.am: DOCBOOK_STYLESHEET specifies the location of the docbook stylesheet. If the variable is not defined in the current environment, use the current stylesheet from the docbook website. You probably have to set SGML_CATALOG_FILES to point to your catalog collection, too. 2002-07-20 Murray Cumming <murrayc@usa.net> * Gtk::TreeView: append_column(): removed editable parameter, and added a append_column_editable() method that creates editable columns whose new values are automatically stored in the model. It needs to be a separate method because we can't provide template specializations for every known model type, and that shouldn't stop people from using a normal append_column(). * Gtk::TreeViewColumn: Added get_first_cell_renderer() so that it is easier when connecting signals for editable cells. * Gtk::TreeView: Added get_column_cell_renderer(): ditto. 2002-07-20 Murray Cumming <murrayc@usa.net> * Gtk::TreeView: - append_column() changed editable parameter to auto_store_editable. Data in edited cells will automatically be set in the model when this is specified. Gtk::TreeViewColumn: Added get_first_cell_renderer() so that it is easier when connecting signals for editable cells. Gtk::TreeView: Added get_column_cell_renderer(): ditto. 2002-07-20 Murray Cumming <murrayc@usa.net> * Gtk::TreeView: - Added remove_all_columns() method. - append_column(): Added bool editable parameter, but people still need to connect a signal handler that sets the new data in the model. 2002-07-19 Michael Babcock <mbabcock@la.creatureshop.henson.com> * examples/packbox/packbox.cc: Make button labels display PackOptions instead of bool,bool. Also fix code to match comments so it actually shows the different packing options. 2002-07-20 Murray Cumming <murrayc@usa.net> * Gtk::Dialog: add_button() now returns a Button* instead of a Widget*. Bug #88668. 2002-07-19 Marcelo E. Magallon <mmagallo@debian.org> * configure.in: add AC_PREREQ(2.50) since GTKMM_CV_PERL_VERSION depends on features introduced after 2.13 (according to autoconf's changelog) * autogen.sh: Remove work-arround for Debian; having autoconf do version checks is better. 2002-07-19 Jarek Dukat <madmaxer@poczta.fm> * gtk/src/treeiter.hg: Added typename declaration for gcc 3.1. 2002-07-18 Jarek Dukat <madmaxer@poczta.fm> * many, many files: Added many overloaded methods like: Obj* Foo::bar(); const Obj* Foo::bar() const; and Glib::RefPtr<Obj> Foo::bar(); Glib::RefPtr<const Obj> Foo::bar() const; 2002-07-19 Murray Cumming <murrayc@usa.net> * Gtk::Box_Helpers::Child: Implemented unimplemented methods. 2002-07-19 Murray Cumming <murrayc@usa.net> * Prefixed PackOptions values with PACK_ to avoid conflicts and confusion with other enum values. * Looked at Table::attach() and Paned::pack*() and decided that they should continue to use the separate AttachOptions enum - for Table that is not even a change from GTK+. * Added back the bool, bool pack methods so that it's easier to port from gtkmm 1.2, or from GTK+. 2002-07-19 Michael Babcock <mbabcock@la.creatureshop.henson.com> * gtk/src/: Added new Gtk::PackOptions enumeration for use with Box::pack_start() and Box::pack_end(). * demos/: Change demos to use PackOptions instead of AttachOptions. * examples/: ditto 2002-07-19 Murray Cumming <murrayc@usa.net> * glib/glibmm/signalproxy_connectionnode.cc: Fix for bug #87912: While disconnecting the gsignal, avoid a "not connected" warning by checking first. GTK+ seems to sometimes disconnect signals _before_ calling the destroy notify callback for that object. It's rare (the bug example uses delete this), and is just a check, so it seems harmless. 2002-07-19 Murray Cumming <murrayc@usa.net> * Gtk::Label, Gtk::TreeViewColumn, Gtk::AspectFrame: Added set_alignment() overrides that use an enum instead of 0.0, 0.5, 1.0, etc, float values. Used it in the examples/demos. 2002-07-18 Murray Cumming <murrayc@usa.net> * Restored the notebook example - I accidently committed some debugging code. 2002-07-18 Murray Cumming <murrayc@usa.net> * To fix bug #88380: - Gtk::Container:: Add custom "remove" callback to prevent use of wrap on C objects whose C++ objects have been disconnected. This was generating new, secret, C++ instances. This required a new qdata quark, because we _do_ want to use wrap() on C objects whose C++ instance has not _yet_ been created. I think this is just a Container::remove thing - The GTK+ people obviously don't test the full behaviour with unmanaged widgets. - tools/signal.m4: Don't call the Slot if the C object's C++ wrapper has been disconnected from the C object. 2002-07-18 Morten Brix Pedersen <morten@wtf.dk> * gtk/src: Fix old-style documentation with braces around it. * Remove some old-style documentation which wasn't used. * Change code example in Gtk::Main to use 'int main()' instead of 'void main()'. * Add extra documentation to the run(Window&) override method. * Add documentation to Gtk::Socket. 2002-07-18 Ole Laursen <olau@hardworking.dk> * glib/glibmm/refptr.h: Added reference documentation. 2002-07-16 Andreas Holzmann <Andreas.Holzmann@epost.de> * glib/glibmm/miscutils.cc (build_filename): Ugly typo fixed. 2002-07-16 Murray Cumming <usa.net> * Gtk::Menu::popup() Added override that takes a Gtk::Widget parent parameter instead of a Gtk::Window toplevel parameter. It then discovers that widget's top-level Window. This is still just a short-term solution. 2002-07-16 Murray Cumming <murrayc@usa.net> * gtk/src/gtk_docs_override.xml: Inserted <function> sections without the instructions to free C return values. This closes bug #87591 2002-07-16 Bradley Bell <btb@debian.org> * tools/extra_defs_gen/Makefile.am: Corrected -version-info argument so libgtkmm_generate_extra_defs has a version number. 2002-07-15 Murray Cumming <murrayc@usa.net> * gdk/pixbuf-loader.hg: Use refreturn with some methods, as suggested by Christof Petig. 2002-07-14 Morten Brix Pedersen <morten@wtf.dk> * examples/calendar: FontSelection was a no-op, now uses modify_font() on the Calendar object instead of set_style() on the Font dialog. 2002-07-14 Jarek Dukat <madmaxer@poczta.fm> * gtk/src/label.{ccg,hg}: Added new overloaded constructor that lets creating aligned labels without storing label into a temporary variable. 2002-07-14 Jarek Dukat <madmaxer@poczta.fm> * examples/thread/thread.cc, examples/thread/threadpool.cc: Changed cout to cerr. cout is buffered and user can't observe threads' work. Unbuffered cerr shows it very well. 1.3.18: 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