2009-03-19 José Alburquerque * tools/m4/class_gobject.m4: Added _CUSTOM_CTOR_CAST to _CLASS_GOBJECT for classes that need to include custom code in their cast and construct_params constructors as is done with _CLASS_GTKOBJECT. 2009-03-18 José Alburquerque * tools/m4/base.m4: Modified _GET_TYPE_FUNC() to properly work with types like GtkFOOBar producing, for example, gtk_foo_bar_get_type() instead of gtk_fo_obar_get_type(). 2007-12-28 Murray Cumming * glib/glibmm/refptr.h: Reverted this change, which should have only been committed to trunk: Deprecate clear(), replacing it with reset(), because people often do treemodel.clear() when they mean treemodel->clear(). reset() is consistent with std::auto_ptr<>. 2007-12-28 Murray Cumming * glib/glibmm/error.cc: * glib/glibmm/exception.cc: * glib/src/convert.ccg: * glib/src/date.ccg: Include glib.h instead of gmessages.h or gtestutils.h so this builds with all versions of glib. 2007-12-17 Marko Anastasov * glib/glibmm/exception.cc: * glib/glibmm/error.cc: * glib/src/date.ccg: * glib/src/convert.ccg: Include gtestutils.h instead of gmessages.h for g_assert* adapting to glib head. 2007-12-14 Daniel Elstner * tools/pm/Output.pm (output_wrap_property): Refuse to generate a wrapper for a construct-only property which is also write-only, and display an error message accordingly. (#436789) 2007-11-20 Sebastien Bacher * glib/glibmm/object.cc: fix build issue when using gcc4.3 (#498438) 2007-11-13 Murray Cumming * glib/glibmm/refptr.h: Use @newin2p16 in the reset() documentation. 2007-11-13 Murray Cumming * glib/glibmm/refptr.h: Deprecate clear(), replacing it with reset(), because people often do treemodel.clear() when they mean treemodel->clear(). reset() is consistent with std::auto_ptr<>. 2007-11-08 Murray Cumming * tools/m4/class_gobject.m4: * tools/m4/ctor.m4: _INITIALLY_UNOWNED_SINK: Rename from INITIALLY_UNOWNED_SINK, for consistency, because this could be used directly from .ccg files that use _CONSTRUCT(). Remove the debug code for the else case. 2007-11-08 Murray Cumming * tools/m4/class_gobject.m4: * tools/m4/ctor.m4: Added the _DERIVES_INITIALLY_UNOWNED macro, for use after _CLASS_GOBJECT(), if the C type derives from GInitiallyUnowned rather than just GObject. (Not for use with GtkObject-derived classes). This does g_object_ref_sink() so that we get a normally-behaved GObject. 2.14.2: 2007-10-22 Murray Cumming * Merged this change from 2007-03-03 from the glibmm-2-12 branch, which was missing from this branch: * configure.in: * glib/glibmmconfig.h.in: * glib/src/date.ccg: * glib/src/date.hg: * scripts/Makefile.am: * scripts/c_std.m4: Added a test for the case that time_t is equivalent to guint32, as seems to be the case on NetBSD-4.99.6/amd64, so we can ifdef-out the (deprecated, anyway) Glib::Date::set_time(GTime) method when necessary, because GTime is also equivalent to guint32. Bug #386990. 2007-10-12 Armin Burgmeier * tools/m4/base.m4: Added a new section called SECTION_HEADER_FIRST that within the header file that is before any generated code (apart from the include guards) and a _CONFIGINCLUDE macro that includes a file within this section. This is intended to be used with g*mmconfig.h so the *_DISABLE_DEPRECATED define is set for deprecated classes also when included from other code. 2.14.1: 2007-09-29 Rémi Cardona * configure.in: increase the minimum glib requirements. Bug #481566. 2007-10-02 Murray Cumming * glib/glibmm/wrap.cc: * glib/glibmm/wrap.h: Replaced wrap_create_new_wrapper() (introduced by the last commit) with wrap_create_new_wrapper(), allowing us to check that the parent GType actually implements the interface. This allows us to return a parent known type if it implements the wanted interface. 2007-09-25 Murray Cumming * glib/glibmm/wrap.cc: * glib/glibmm/wrap.h: Added wrap_auto_interface<>(), which should be used by wrap() specializations for interfaces, so we create instances of the interface even if the derived C type is unknown to us. * glib/glibmm/signalproxy_connectionnode.h: Do not wrap.h from here unnecessarily, to allow us to include objectbase.h in wrap.h, needed by the new templated method. * tools/m4/class_interface.m4: Use wrap_auto_interface<>() instead of wrap_auto() for interfaces. 2.14.0: 2007-09-06 Daniel Elstner * glib/src/regex.{ccg,hg} (Regex): Some cosmetic cleanup. Also replace C-style casts in default argument values with static_cast<>. (escape_string): Wrap missing function. (match_full): Rename to and add as overloads of match(). (match_all_full): Rename to and add as overloads of match_all(). (split_full): Rename to and add as overloads of split(). This has freeze-break approval from the release team. 2007-08-16 Jonathon Jongsma * docs/reference/glibmm_footer.html_fragment, docs/reference/glibmm_header.html_fragment: added
to doxygen header and footer to make it easier to integrate with library.gnome.org, per a request by Frederic Peters 2.13.9: 2007-07-28 Murray Cumming * glib/src/keyfile.hg: * glib/src/keyfile.ccg: Added a set_double() without the group_name parameter, because the C function can take NULL. * glib/src/glib_docs_override.xml: Corrected the documnentation for g_keyfile_set/get_double() to mention 2.14, instead of 2.12, because we only added these to glibmm in 2.14. * glib/src/regex.hg: Correct the since documentation to be 2.14 not 2.12. * glib/src/iochannel.hg: read(): Corrected a parameter name to match the generated documentation. * glib/glibmm/miscutils.h: Fixed typos in the use of newin2p14. 2007-07-28 Murray Cumming * docs/Makefile_web.am_fragment: Corrected the rsync options, to match those used by gtkmm, to fix the examples upload. * glib/src/glib_docs.xml: Regenerated from the C documentation. 2007-07-14 Murray Cumming * glib/src/keyfile.ccg: * glib/src/keyfile.hg: Added get_double(), set_double(), get_double_list() and set_double_list(). 2.13.8: 2007-07-07 Jonathon Jongsma * glib/src/optioncontext.ccg: * glib/src/optioncontext.hg: add some new API that was added in glib 2.12, including get/set_summary(), get/set_description(), set_translation_domain(), and set_translate_func(). * glib/src/glib_docs.xml: Regenerated with docextract_to_xml.py * glib/src/glib_docs_override.xml: override docs for the new functions so that they say that they were introduced in glibmm 2.14 instead of 2.12 2007-07-02 Johannes Schmid * glib/src/regex.hg: Added class documentation 2007-07-02 Murray Cumming * tools/pm/DocsParser.pm: convert_tags_to_doxygen(): Handle newin markers for 2.12 and a few after that. * docs/reference/Doxyfile.in: Added ALIASES for newin2p12 and a few more. 2.13.7: 2007-06-22 Murray Cumming * glib/glibmm/main.cc: * glib/glibmm/main.h: Added SignalTimeout::connect_seconds() as an equivalent for g_timeout_add_seconds() and took the improved documentation from glib. * glib/glibmm/miscutils.cc: * glib/glibmm/miscutils.h: Added get_user_special_dir(), though we should maybe wrap the enum. Reimplemented many of the functions with the convert_return_gchar_ptr_to_stdstring() and convert_const_gchar_ptr_to_stdstring() functions to simplify them and make them handle NULLs properly. 2007-06-22 Murray Cumming * glib/src/regex.ccg: * glib/src/regex.hg: Added a create() method, and added some more default parameter values to the methods. * configure.in: * examples/Makefile.am: * examples/regex/main.cc: Added a very simple example. * glib/glibmm/value_custom.h: Put header guards around this, though this should never be included directly anyway. 2.13.6: 2007-06-17 Murray Cumming * glib/src/regex.hg: * glib/src/matchinfo.hg: Removed API that uses GMatchInfo, until we wrap this properly, probably as a C++ iterator. This will avoid this API accidentally being released as stable sometime. 2007-06-12 Murray Cumming * glib/src/glib_enums.defs: Regenerated with enums.pl * glib/src/glib_functions.defs: Regenerated with h2defs.py * glib/src/Makefile_list_of_hg.am_fragment: * tools/m4/convert_glib.m4: * glib/src/matchinfo.ccg: * glib/src/matchinfo.hg: * glib/src/regex.ccg: * glib/src/regex.hg: Added the RegEx and MatchInfo classes. These need some examples to test them. The MatchInfo class is probably particularly broken at the moment. See the TODO comments. * glib/glibmm.h: Added regex.h 2007-05-14 Murray Cumming * tools/m4/class_boxedtype.m4: * tools/m4/class_gobject.m4: * tools/m4/class_gtkobject.m4: * tools/m4/class_interface.m4: * tools/m4/class_opaque_copyable.m4: * tools/m4/class_opaque_refcounted.m4: Explicitly mention Glib::wrap() in the documentation for generated Glib::wrap() functions, because doxygen does not show their namespace. 2007-05-04 Murray Cumming * tools/pm/Function.pm: When generating example prototypes for signal handlers, prefix them with on_my_, to avoid confusion with similarly named functions and with on_*() default signal handlers. 2.13.5: 2007-04-30 Johannes Schmid * tools/generate_wrap_init.pl.in: * tools/m4/class_gtkobject.m4: Use _IS_DEPRECATED instead of _CLASS_DEPRECATED because the latter confuses gmmproc. We cannot just use _DEPRECATED because it will result in incorrect handling of for example #ifndef GTKMM_DISABLE_DEPRECATED 2007-04-24 Yselkowitz * scripts/macros.m4: Check for both m4 and M4 in the GNU m4 output, to fix the build on some platforms. Bug #423990 2.13.4: 2007-04-11 Armin Burgmeier * tools/pm/WrapParser.pm: Added peek_token() function which only returns the next token without removing it from the tokens array. Parse '/**' as a separate token and handle it in a special way so that when the final '*/' is encountered and _WRAP_SIGNAL follows, the comment is not terminated but continued by that automatically generated doxygen comment. * tools/pm/Output.pm: Added a merge_doxygen_comment_with_previous parameter in output_wrap_sig_decl(). If it is nonzero, the function assumes that there is already a comment open and continues to use it instead of opening a new comment by removing the leading '/**' from what get_refdoc_comment() returns. Bug #378810. 2007-04-06 Johannes Schmid * tools/generate_wrap_init.pl.in: Use _CLASS_DEPRECATE instead of just _DEPRECATE to known whether a whole class should be avoided in wrap_init. Otherwise every .hg file containing deprecated methods might get ignored. (Fixes Gtk::TextBuffer bug in maemo) 2007-03-19 Bradley Bell * glib/glibmm/helperlist.h: Change variable name to avoid warnings about a shadowed member. Bug #420316. 2007-03-19 Bradley Bell * glib/glibmm/utility.h: remove g_free prototype, include gmem.h instead, to avoid a warning about a redundant declaration. Bug #420339. 2007-03-17 Armin Burgmeier * tools/m4/signal.m4: * tools/m4/vfunc.m4: Use static_cast in vfuncs and signal handlers to cast the wrapper object to ObjectBase*. This is enough to check whether the object is from a derived type or not. A slow dynamic_cast has only to be performed if it is derived, and the C++ vfunc needs to be called. * glib/glibmm/objectbase.h: This requires ObjectBase::is_derived_ to be public, because it is called on a ObjectBase* rather than the actual type. This causes a slight speed up of vfuncs and default signal handler invokation. Also added commented-out inline versions of ObjectBase::_get_current_wrapper() and ObjectBase::is_derived(), which could be used in the generated code if we find that this has significant performance benefits. Note that these methods must be additional to the non-inline methods, because inline methods are not usually exported in the shared library. 2007-02-10 Murray Cumming * examples/options/main.cc: Use a default value, to show that it can be done. (This change, from 2006-03-30 was restored after being accidentally lost on Apr 12 2006) 2007-02-10 Armin Burgmeier * glib/src/optiongroup.ccg: default_c_arg(): Set the initial value of the C argument to the value the C++ argument has, to avoid that glibmm resets arguments to zero that were not given on the command line. (This change, from 2006-03-30 was restored after being accidentally lost on Apr 12 2006) 2007-01-28 Daniel Elstner * tools/m4/ctor.m4: If the argument list is empty, call the non- varargs overload of the Glib::ConstructParams constructor instead of using an empty varargs list. This mistake was exposed thanks to the recent addition of G_GNUC_NULL_TERMINATED to the varargs constructor declaration. Fortunately it was harmless in this case. Also use the opportunity to clean up the M4 code and prefix builtin M4 macros with m4_, so that we may get rid of the unprefixed macros altogether some day. Thu, 25 Jan 2007 23:13:05 +0100 Dodji Seketeli * tools/m4/base.m4: prefix the builting mkstemp with 'm4' because otherwise, m4 1.4.8 recognizes it as a builtin macro and expands it, leading to compilation errors on some distros. This should fix #397167. Thanks to Daniel Elstner for spotting this. 2007-01-20 Daniel Elstner * glib/glibmm/dispatcher.{cc,h}: Early spring cleaning. Also add a paragraph about Dispatcher on win32 to the documentation. (DispatchNotifyData): Remove the 'tag' member from the struct that was always set to 0xdeadbeef in order to detect memory corruption. This is pointless, as we already check the DispatchNotifier pointer sent across the pipe, which is a far better indicator of corruption anyway. (warn_failed_pipe_io): Remove the err_no parameter and retrieve errno respectively GetLastError() within the function instead. (DispatchNotifier::conn_io_handler_): Remove, as we now inherit from sigc::trackable. I verified that this doesn't cause problems with threading in this particular case. (DispatchNotifier::DispatchNotifier): If creating the pipe failed and exceptions are disabled, call at least warn_failed_pipe_io() instead of doing nothing at all. (DispatchNotifier::*): Rework the win32 implementation so that it matches more closely the Dispatcher semantics on Unix. This still needs testing by someone on win32, though. So far I only verified that it compiles with dummy definitions of the win32 API. Also, I accidentally located the real cause of the race condition Cedric experienced in bug #109966. It was a bug in my patch, rather than in the example code. * examples/thread/dispatcher.cc: Cleanup. In particular, get rid of the Glib::RefPtr<> abuse with non-Glib::Object types. I don't believe we endorse such usage officially, so it shouldn't be in the examples. 2007-01-20 Daniel Elstner * glib/glibmm/miscutils.cc: Clean up the code a bit. (get_application_name): Remove the code that checked the string for valid UTF-8, and attempted conversion if not valid. I must have been on crack when I wrote this, as the combination of conditions that would cause the string to be invalid UTF-8 is quite unlikely. If this is a valid concern at all, it should be filed as a GLib bug and not worked around in glibmm. (build_filename(const std::string&, const std::string&)): Just call the plain g_build_filename() instead of building a temporary array and passing that via ArrayHandle to the build_filename() overload for containers. (build_path): Remove the already deactivated custom implementation from the time before g_build_pathv() was added to GLib. * glib/glibmm/object.{cc,h}: Improve/fix a couple of comments. (ConstructParams::ConstructParams): Add G_GNUC_NULL_TERMINATED function attribute to make the compiler complain if the variadic argument list is not terminated by a NULL pointer. * glib/glibmm/ustring.{cc,h} (utf8_find_last_of): Avoid applying bitwise logical operators directly to (possibly signed) operands of char type. In order to avoid relying on implementation-defined behavior, make sure that the operands are of unsigned integer type. (ustring::is_ascii): Likewise, (ustring_Iterator::operator--): Likewise. (get_unichar_from_std_iterator): De-obfuscate this highly optimized piece of code, as the current stable release of GCC (4.1.2-pre on my system) generates better assembler output without the voodoo. 2.13.3: 2006-11-28 Daniel Elstner * tools/pm/GtkDefs.pm (read_defs): Allow an empty pair of parentheses in the innermost match. This fixes the problem of gmmproc choking on "()" in the documentation strings. This would still break on unmatched parentheses, though. Of course the parser should just skip over quoted strings, but I wasn't able to get that to work. * glib/src/glib_enums.defs (GNormalizeMode): Manually fix the improperly parsed value of G_NORMALIZE_NFD. Fortunately this doesn't change anything since the "#error" token was interpreted as zero, which happens to be the right value. * glib/src/glib_functions.defs (g_iconv): Manually convert to a function definition, as it was improperly parsed as a method with a zero-length name (!) of object GIConv. This fixes the annoying gmmproc warning about an allegedly unwrapped method. 2006-11-28 Murray Cumming * glib/glibmm/propertyproxy_base.cc: Don't ifdef out PropertyProxy_Base when properties are disabled. It is needed for connect_property_changed(). 2006-11-27 Daniel Elstner * tools/enum.pl (parse): Ignore whitespace in front of an enum typedef. This fixes parsing of HildonTelephoneEditorFormat in hildon-libs. * tools/pm/Enum.pm (parse_values): Check whether the enumeration constants actually have a common module prefix before attempting to remove it. This fixes the incorrect parsing of inconsistently named enums in hildon-libs. 2006-11-27 Daniel Elstner * tools/enum.pl (form_names): Break the loop if the length of the common prefix reaches zero. This fixes the infinite loop when processing the inconsistently named enumeration constants of the Hildon libraries. 2006-11-20 Murray Cumming * docs/reference/libstdc++.tag.xml: Updated from the libstdc++ site. Note that the original does not have an .xml extension. This is is lots bigger, but that should mean there is more documentation now. 2006-11-22 Oliver Nittka * glib/src/value_basictypes.cc.m4: When registering float parameters, use -G_MAXFLOAT instead of G_MINFLOAT. Since we first implemented this, the glib documentation has been updated to make it cleare that this is the real minimum and G_MINFLOAT is the minimum positive value. Do the same for doubles too. 2006-11-10 Murray Cumming * tools/Makefile.am: Add enum.pl to the dist, so that it is in tarballs. Someone saw it mentioned in the appendix, but could not find it in the tarball. 2006-11-10 Murray Cumming * docs/reference/Doxyfile.in: Add PREDEFINES for the optional API, so that the documentation shows the regular API. 2006-11-10 Murray Cumming * glib/glibmm/objectbase.cc: * glib/glibmm/objectbase.h: Added connect_property_changed(), as an alternative to use when the property proxies are not available because GLIBMM_PROPERTIES_ENABLED is not defined. SignalProxyProperty::connect(): Use notify::propertyname instead of just notify, so do not have to check the property name later. This should be more efficient (when this is used, rarely). * glib/glibmm/propertyproxy_base.cc: * glib/glibmm/propertyproxy_base.h: Move PropertyProxyConnectionNode into the header, so we can reuse it for connect_property_changed(). 2006-10-04 Murray Cumming * glib/glibmm/class.cc: * glib/src/iochannel.ccg: * glib/src/markup.ccg: Add a silly line to avoid unused parameters when GLIBMM_EXCEPTIONS_ENABLED is not set. * glib/glibmm/error.h: Do not use G_GNU_NO_RETURN on the version of throw_exception() that returns, to avoid a warning. 2006-10-01 Murray Cumming * Makefile.am: * docs/Makefile.am: * docs/Makefile_web.am_fragment: * docs/images/Makefile.am: * docs/reference/Makefile.am: * docs/reference/README: * examples/Makefile.am: Upload to the new hoster instead of to sourceforge. Abstracted the host and path names into docs/Makefile_web.am_fragment to avoid duplication. 2.13.2: 2006-09-28 Cedric Gustin * MSVC_Net2003/glibmm/glibmm.vcproj: Remove sarray from list of source and header files. 2006-09-26 Murray Cumming * glib/glibmmconfig.h.in: For win32, define GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS to 1, instead of just defining it to nothing. * scripts/reduced.m4: In the AC_ARG_ENABLE() to define (or not) GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS, use api-default-signal-handlers as the first parameter instead of api-exceptions (a copy/paste error), though it does not seem to make any difference. Bug #357830. 2006-09-23 Jonathon Jongsma * glib/src/keyfile.ccg, glib/src/keyfile.hg: added new files that were missed from an earlier commit 2.13.1: 2006-09-19 Ralf Stephan * glib/glibmm/ustring.h: ustring(const ustring& src, size_type i, size_type n=npos) and ustring(const char* src, size_type n) constructors: In the reference documentation, mention explicitly that n is the number of _UTF-8_ characters, rather than ASCII characters (bytes). 2006-02-20 Rob Page Wraps GKeyFile (Bug #330535) * glib/glibmm.h: Added include of keyfile.h * glib/glibmm/Makefile.am: Added keyfile.h * glib/glibmm/containerhandle_shared.h: Added a TypeTraits specialization for converting between bool and gboolean*. * glib/src/Makefile_list_of_hg.am_fragment: Added keyfile.hg to files_general_hg. * glib/src/keyfile.hg: KeyFile header * glib/src/keyfile.ccg: KeyFile implementation * tools/m4/convert_glib.m4: Added a conversion for KeyFileFlags 2006-09-14 Johannes Schmid * tools/m4/class_shared.m4: Change _IMPLEMENTS_INTERFACE to _IMPLEMENTS_INTERFACE_CC so we can have more control over it, by generating the _IMPLEMENTS_INTERFACE_CC from the WrapParser.pm. * tools/m4/method.m4: * tools/m4/signal.m4: * tools/m4/vfunc.m4: Added optional parameters that result in #ifdefs around methods, signals, vfuncs, etc. * tools/pm/Output.pm: Addef ifdef() and endif(). output_wrap_vfunc_h(), output_wrap_vfunc_cc(), output_wrap_default_signal_handler_h(), output_wrap_default_signal_handler_cc(), output_wrap_meth(), output_wrap_create(), output_wrap_sig_decl(): Support optional ifdefs around declarations and implementations, by calling ifdef() and endif(), or by passing the extra argument to the m4 macros. * tools/pm/WrapParser.pm: parse_and_build_output(): Parse _IMPLEMENTS_INTERFACE, and call the new on_implements_interface() method, which uses the new output_implements_interface() method, so it can have an optional ifdef parameter. on_wrap_method(), on_wrap_create(), on_wrap_vfunc(), output_wrap_signal(), output_wrap_vfunc(): Handle the optional ifdef (with a parameter) option for the _WRAP*() macros. This adds support for disabling certain features by using the new "ifdef" argument for methods, vfuncs, signals and interfaces. 2006-09-05 Jonathon Jongsma * docs/reference/Makefile.am: rebuild docs when a .h files changes in glib/glibmm * glib/glibmm/miscutils.cc: * glib/glibmm/miscutils.h: wrap g_get_user_data_dir(), g_get_user_config_dir(), and g_get_user_cache_dir() This is the HEAD branch, for new API. There is also a glib-2-12 branch for maintenance of the stable API. 2006-08-18 Cedric Gustin * MSVC_Net2003/*.vcproj: Updated for glibmm-2.12. 2.12.0: 2.11.3: 2006-04-25 Murray Cumming * configure.in: * glib/glibmmconfig.h.in: * scripts/reduced.m4: Added a --enable-api-default-signal-handlers option. This defines GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED, which is used to #ifdef default signal handlers. This saves on library code size (less code and API symbols) and application code size and loading time (less virtual methods, which must be imported and resolved at load time) and per-object memory size (smaller object sizes because of less virtual methods.) * tools/m4/class_interface.m4: * tools/m4/class_shared.m4: Put default signal handler code in #ifdefs. 2.11.2: 2006-07-17 Murray Cumming * configure.in: Reverted the previous patch slightly to unbreak glibmmconfig.h. 2.11.1: 2006-07-16 Murray Cumming * configure.in: Quote GLIBMM_*_VERSION to avoid m4 warnings. Patch from Bug #347076 from Kevin McBride. * scripts/sun.m4: Quote GLIBMM_PROG_CXX_SUN to avoid an m4 warning. Patch from Bug #347077 from Kevin McBride. 2006-07-16 Jonathon Jongsma * glib/src/date.ccg: fix implementation of Glib::Date::set_time_current() so that it doesn't set the date to Dec 31, 1969. 2006-06-19 Murray Cumming * glib/glibmm/object.h: Check whether DestroyNotify is defined, so we can warn about including X11/Xlib.h before this header, which will break things. Bug #316726 from Mert Tugcu and Javeed Shaikh. 2006-06-09 Cedric Gustin * glib/glibmm/objectbase.h : Inline the set_property and get_property methods. This is required by mingw32-gcc as ObjectBase is explicitly dllexported. 2006-06-05 Murray Cumming * glib/src/convert.ccg: When using --enable-api-exception=no, only try to get the Glib::Error when the GError is not null. 2006-05-18 Murray Cumming * tools/m4/method.m4: _METHOD(): When using errthrow, actually print the function call even if the return type is 0. 2006-05-16 Murray Cumming * tools/m4/method.m4: _METHOD(), _STATIC_METHOD(): Remove spaces before dnl statements, to avoid unwanted indentation in .cc files. 2006-05-16 Murray Cumming * tools/m4/convert_base.m4: _CONVERT(): If the return type is void, use the unconverted statement, not no statement. This prevents some void methods from being totally empty. This was a (very bad) regression introduced by the optional API changed. Bug #341895 from Philip Langdale. * tools/m4/method.m4: _METHOD(), _STATIC_METHOD(): Attempt to remove unnecessary newlines, though some indenting spaces slipped in instead. Must fix that. 2006-05-14 Murray Cumming * glib/glibmm/value.cc: * glib/glibmm/value.h: Restored the init(GValue*) method that was lost when merging changes from the glibmm-2-10 branch. 2006-05-09 Murray Cumming * glib/glibmm/ustring.cc: * glib/src/date.ccg: * glib/src/convert.ccg: * glib/src/convert.hg: Added #ifdefed versions for the case that exceptions are disabled. 2006-05-10 Murray Cumming * configure.in: * scripts/reduced.m4: Moved --enable-deprecated-api macro into scripts/reduced.m4. Added the --enable-api-exceptions macro that was missing from my last commit. 2006-04-05 Murray Cumming * configure.in: * scripts/reduced.m4: Added --enable-api-exceptions option. When this is used, methods that would normally throw an exception will now take an extra std::auto_ptr argument that should be checked with auto_ptr::get(). * glib/glibmmconfig.h.in: Undef the GLIBMM_EXCEPTIONS_ENABLED, so it will be defined. * tools/m4/gerror.m4: throw_func() returns an auto_ptr of a Glib::Error when exceptions are disabled. * tools/m4/method.m4: * tools/pm/Output.pm: on_wrap_method(): Added alternative API with #ifdefs * tools/m4/signal.m4: * tools/m4/signalproxy_custom.m4: * tools/m4/vfunc.m4: Put #ifdefs around the exception re-throwing try/catch blocks. * glib/glibmm/dispatcher.cc: * glib/glibmm/dispatcher.h: * glib/glibmm/error.cc: * glib/glibmm/error.h: * glib/glibmm/exceptionhandler.cc: * glib/glibmm/exceptionhandler.h: * glib/glibmm/main.cc: * glib/glibmm/signalproxy.cc: * glib/glibmm/streamiochannel.cc: * glib/glibmm/stringutils.cc: * glib/glibmm/threadpool.cc: * glib/src/iochannel.ccg: * glib/src/iochannel.hg: * glib/src/markup.ccg: * glib/src/spawn.ccg: * glib/src/thread.ccg: Put #ifdefs around try/catch blocks, and use alternative API when appropriate. * examples/iochannel_stream/fdstream.cc: * examples/markup/parser.cc: * examples/options/main.cc: Adapted examples to the alternative API, with #ifdefs * tools/m4/convert_base.m4: Avoid any conversion if the result is void, to allow _WRAP_METHOD() to ignore bool results, so we can generate some methods that are currently hand-coded. 2006-05-09 Murray Cumming * glib/glibmm/value.cc: * glib/glibmm/value.h: Added init(const GValue*), so that we can copy GValue instances of any type at runtime. Needed by libgdamm, which returns const GValue* instances. This is the HEAD branch, for API additions. See also the glibmm-2-10 branch. 2.10.1: 2006-04-12 Murray Cumming * tools/m4/signalproxy_custom.m4: Remove this file because it is not installed and does not seem to be used. 2006-04-12 Murray Cumming * tools/m4/signal.m4: Mark the (private) signal info callback functions as static, to save on code size. 2006-04-12 Murray Cumming * tools/pm/WrapParser.pm: Parse a new optional constversion parameter for _WRAP_METHOD(), to save on code size by just calling the non-const overload instead of generating almost identical code. * tools/m4/method.m4: _METHOD(): Take extra parameters for use when constversion is used. * tools/pm/Output.pm: Send the extra parameters to _METHOD(). * docs/internal/using_gmmproc.txt: Documented the new constversion option. 2006-04-12 Murray Cumming * glib/glibmm/main.cc: * glib/glibmm/objectbase.cc: * glib/glibmm/property.cc: * glib/glibmm/ustring.cc: * glib/glibmm/value_custom.cc: * glib/src/spawn.ccg: Mark private functions as static, to stop them being exported in the API, to reduce the library code size slightly. * tools/m4/signal.m4: Make generated callback functions static, for the same reasons. 2006-04-07 Cedric Gustin * README.win32: Updated for Mingw-4.1. 2006-04-06 Cedric Gustin * MSVC_Net2003/*.vcproj: Embed the manifest file into executables in the case of the Debug target. * README.win32: Fixed a few typos. * build_shared/Makefile_build.am_fragment: Add -DGLIBMM_BUILD to the extra_defines compiler flags (switch between dllexport/dllimport on win32). * glib/glibmmconfig.h.in: Define GLIBMM_DLL when building with mingw32/cygwin. This makes the GLIBMM_API tag (and GTKMM_API for gtkmm) active with these two platforms, as required by bug #309030. * glib/glibmm/object.h, glib/glibmm/objectbase.h : Tag the Object and ObjectBase classes with GLIBMM_API to make Visual Studio happy. 2.10.0: 2006-02-25 Murray Cumming * tools/pm/DocsParser.pm: looklookup_documentation(): Put the @deprecated text immediately after the main description, before the parameters, so that Doxygen actually uses it. 2006-02-25 Murray Cumming * tools/pm/DocsParser.pm: looklookup_documentation(): Accept an extra deprecated_documentation parameter, to be appended to the Doxygen documentation. * tools/pm/Output.pm: output_wrap_meth(): Put the documentation inside the deprecation #ifdef, for neatness. * tools/pm/WrapParser.pm: on_wrap_method(): Read an optional string after the optional deprecated parameter, used to say why the method is deprecated, in case it was not deprecated by the C API, in which case it would already have documentation for this. 2006-02-27 Cedric Gustin * README.win32: Updated for glibmm-2.8 (MS Visual Studio 2005). * glib/glibmm/ustring.h: Tag npos with GLIBMM_API, in order to dllexport it on win32. Bug #332438. * MSVC_Net2003/*.vcproj: Updated for Visual Studio 2005. Added the /vd2 compiler flag (Bug #158040). * MSVC_Net2003/glibmm.sln: Updated for Visual Studio 2005. * MSVC_Net2003/gendef/gendef.cc: Redirect output of dumpbin to a file. * glib/glibmmconfig.h.in: Undefined GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS for MSVC. 2006-02-03 Murray Cumming * docs/internal/using_gmmproc.txt: Section about regenerating .defs: Repeat the hint about extra_defs_gen here. 2006-02-27 Cedric Gustin * glib/glibmm/ustring.h: Tag npos with GLIBMM_API, in order to dllexport it on win32. Bug #332438. 2006-02-07 Rob Page * glib/glibmm/ustring.h: fix a typo in the documentation for uppercase() 2.9.1: 2006-01-28 Murray Cumming * glib/src/optiongroup.ccg: add_entry_with_wrapper(): Copy the CppOptionEntry into the map _after_ setting entry_ so that we really delete it in release_c_arg(), to avoid a memory leak. 2006-01-28 Rob Page * docs/reference/glibmm_header.html_fragment: Fix the link to the Main page. Bug #328299. 2006-01-27 Murray Cumming * glib/src/optionentry.ccg: Constructor: Avoid memory leak caused by double instantiation of gobject_. 2005-12-16 Murray Cumming * glib/glibmm/object.h: * glib/glibmm/objectbase.h: Hide some internal stuff from Doxygen. Add/Improve the Doxygen documentation. * glib/src/convert.hg: Correct the declaration of filename_display_name() to match the implementation. Previously this would have been unusable due to a linker error. 2005-11-30 Murray Cumming * docs/reference/Doxyfile.in: Define the @newin aliases, as in gtkmm. * tools/pm/DocsParser.pm: Convert Since: in gtk-doc text to @newin for our doxygen docs. 2005-11-29 Murray Cumming * build_shared/Makefile_build.am_fragment: * configure.in: Added --enable-use-deprecations, defaulting to no (do not check for them), so that the tarball will still build when newer versions of glib deprecate some API. * examples/Makefile.am_fragment: Use the deprecation, if wanted. 2005-11-29 Murray Cumming * build_shared/Makefile_build.am_fragment: * configure.in: Added --enable-deprecated-api option. When set to disabled, it does not build deprecated API. This reduces the size of the library, and might be useful for embedded devices. * glib/src/date.ccg: * glib/src/date.hg: Use _DEPRECATE_IFDEF_START/END around the deprecated set_time() method. 2005-11-29 Murray Cumming * tools/m4/base.m4: Add _DEPRECATE_IFDEF_START and _DEPRECATE_IFDEF_END macros, to #ifdef-out generated methods. Added _DEPRECATE_IFDEF_CLASS_START and _DEPRECATE_IFDEF_CLASS_END for whole classes. Put _DEPRECATE_IFDEF_CLASS* around all generated code. It does nothing if the class is not deprecated. * tools/m4/class_gtkobject.m4: Add _DEPRECATED macro, used to mark a class as deprecated. * tools/m4/method.m4: Take an extra parameter, to optionally mark the method as deprecated, to add #ifdefs around the code, with _DEPRECATE_IFDEF_START/END * tools/pm/Output.pm: _DEPRECATE_IFDEF_START/END around the declarations of deprecated methods. * tools/pm/WrapParser.pm: Check for an optional deprecated parameter to _WRAP_METHOD(). * tools/m4/member.m4: Allow optional deprecated method for _MEMBER_GET/SET*() to ifdef the code out. * tools/generate_wrap_init.pl.in: Put an #ifdef around use of deprecated classes. 2005-11-23 Murray Cumming * configure.in: Depend on glib 2.9, which has new API. * glib/src/date.ccg: * glib/src/date.hg: Wrap glib_date_set_time_t() and glib_date_set_time_val(). Deprecate set_time(GTime) in favour of the new method overloads. Added set_time_current(), wrapping the case that the time_t is 0. This is the HEAD branch, for new API, targetting glib 2.9. See also the glibmm-2-8 branch. 2.8.2: 2005-11-23 Murray Cumming * glib/glibmm/containers.h: Do not use g_assert() in a header, because g++ sometimes warns that it has no effect. 2005-10-29 Murray Cumming * scripts/macros.m4: AL_PROG_GNU_MAKE(): Use $MAKE-make instead of $ac_make, which apparently fixes a build problem on some Solaris systems. Thanks to Mark Rouchal in bug #307480. 2.8.1: 2005-10-19 Murray Cumming * configure.in: Check for glib 2.8. Bug #317913. 2.8.0: Updated NEWS and increased version to 2.8.0. 2.7.3: 2005-08-17 Murray Cumming * glib/src/glib_docs.xml: Regenerated with docextract_to_xml.py * glib/src/glib_enums.defs: Regenerated with enums.pl * glib/src/glib_functions.defs: Regenerated with h2defs.py 2.7.2: 2005-07-16 Murray Cumming ::get_value(), PropertyProxy_WriteOnly<>::set_value(): Add implementations instead of casting to unrelated PropertyProxy() and calling it there. The AIX compiler did not like this hack. Bug #301610 2005-06-07 Cedric Gustin * glib/glibmm/miscutils.cc: In get_home_dir, return an empty string when HOME is not defined (Win9x). Bug #306310 from Michael Hofmann. * glib/glibmm/miscutils.h: Updated docstring for the get_home_dir method. 2005-04-27 Murray Cumming * examples/child_watch/main.cc: * examples/thread/dispatcher.cc: * examples/thread/thread.cc: * glib/glibmm/dispatcher.cc: Inherit signal handler objects from sigc::trackable. This is necessary with some libsigc++ patches, though not currently necessary with regular libsigc++. 2005-04-22 Murray Cumming * glib/src/gmodule_enums.defs: Regenerate with enums.pl * glib/src/gmodule_functions.defs: Regenerate with h2defs.py This adds the BIND_LOCAL enum value. Bug #172748 from Phillip Neiswanger. 2005-04-05 Murray Cumming * tool/pm/Output.pm: output_wrap_property(): Do not add the const read-only method override if the property can not be read. Be careful because this removes a little API from generated code. You should hand-code the wrongly-generated methods and mark them as deprecated. * glib/glibmm/refptr.h: Added cast_const<>, like the existing cast_dynamic<> and cast_static. 2005-03-31 Murray Cumming * glib/src/glib_functions.defs: Updated with h2defs.py. 2005-03-13 Yair Hershkovitz * glib/glibmm/main.h, glib/glibmm/main.cc: Added MainContext::signal_child_watch() * examples/: Added child_watch/ example 2005-03-11 Yair Hershkovitz * glib/glibmm/main.h, glib/glibmm/main.cc: Add Glib::SignalChildWatch class, Glib::signal_child_watch() This is the HEAD branch, for new API. Bug fixes that do not change or add API should also be applied to the glibmm-2-6 branch. 2005-03-09 Cedric Gustin * MSVC_Net2003/Makefile.am: Add blank.cpp to EXTRA_DIST. * MSVC_Net2003/glibmm/glibmm.vcproj: Remove sarray.cc from the list of source files. * MSVC_Net2003/examples/*/*.vcproj, MSVC_Net2003/tests/glibmm_value/glibmmvalue.vcproj: Change name of PDB file to $(OutDir)/$(TargetName).pdb. 2.6.1: 2005-03-07 Murray Cumming * glib/glibmm/interface.cc: Disable the new check for pre-existing interface implementations, because it checks all base gtypes and not just the current gtype. Bug #169442 by Bryan Forbes. 2.6.0: 2.5.6: 2005-02-18 Murray Cumming * glib/glibmm/interface.cc: Interface_Class:add_interface(), used by add_interface() methods of Interfaces: Do not add interfaces that have been added before, to avoid the warning from glib. This allows application code to be simpler. 2005-02-18 Murray Cumming * tools/pm/Output.pm: Add the documentation to the const property() accessor as well as the non-const one. 2005-02-13 Murray Cumming * tools/extra_defs_gen/generate_extra_defs.cc: Use g_param_spec_get_blurb() to output the documentation for the properties in the .defs file. * tools/m4/property.m4: Take an extra docs argument, and put it in the doxygen docs. * tools/pm/Output.pm: Add the extra docs argument when calling the property m4 macro. * tools/pm/Property.pm: Read in the new docs part of the .defs, and add a period at the end if neccessary. 2005-02-01 Murray Cumming * examples/threadpool.cc, dispatcher.cc, dispatcher2.cc: Removed the #ifdef for AIX, because sigc::bind now works on AIX. 2005-01-27 Cedric Gustin * MSVC_Net2003/glibmm/glibmm.rc.in: Reverted to 2.4 for the library version number. 2.5.5: 2005-01-26 Cedric Gustin * MSVC_Net2003/glibmm/glibmm.vcproj: Reverted to 2.4 for the library version number. 2005-01-24 Cedric Gustin * Makefile.am, configure.in: Added MSVC_Net2003 directory. * config.h.in: Added mkfifo #define (for mingw32). * glib/glibmmconfig.h.in: Added new #define's to MSVC section. * examples/iochannel_stream/Makefile.am: Do not build on win32 with mingw32 (mkfifo not available). * scripts/cxx_std.m4: Fixed typo in AC_DEFINE macros. * build_shared/Makefile_build.am_fragment: Removed $(sublib_name)_COMPILATION variable (is useless now on cygwin/mingw as all symbols are dll exported). * MSVC_Net2003/*: Initial commit imported from glibmm-2-4 branch. * MSVC_Net2003/glibmm/Makefile.am: Rewrote rule for local copy of glibmmconfig.h (required for 'make distcheck'). 2005-01-21 Murray Cumming * configure.in, scripts/cxx.m4, glibmm/glibmmconfig.h.in: Added new compiler tests to see whether extern "C" functions are put in the global namespace, even when we use extern "C" inside a namespace declaration. The AIX xlC compiler does this, but allows us to redeclare the namespace inside the extern "C" block. * glib/glibmm/property.h: Use the new #ifdef GLIBMM_MUST_REDECLARE_NAMESPACES_INSIDE_EXTERNC and redeclare the namespace when necessary. * examples/thread/dispatcher.cc, dispatcher2.cc: Use sigc::bind<1> instead of just sigc::bind<> because the AIX xlC compiler needs the extra hint. However, the linker then fails, so the use of sigc::bind is ifdefed out for _AIX. See the comments in the code. 2005-01-21 Murray Cumming * configure.in, scripts/cxx.m4, glibmm/glibmmconfig.h.in: Added new compiler tests. 1. To see whether it allows use of non extern C functions as extern C callbacks, because the Tru64 compiler does not allow this, when using strict_ansi. We do not actually use this yet. 2. To see whether it allows us to define a template that uses an undefined type, even if we do not use it before defining the type. Tru64 does not allow this. That's probably correct. * glib/glibmm/container.h: #ifdef out a dynamic_cast that Tru64 does not allow, and which I can not think of a better place to put. See the comment in the code. * glib/glibmm/containerhandler_helpers.h: When the compiler does not alllow the GObject and GtkObject (dynamic_cast of) specializations here, then put them in glib/glibmm/object.h and gtkmm/gtk/src/object.hg instead.- needed by Tru64 compiler. * glib/glibmm/value.h, value_custom.[h|cc]: Conditionally moved the RefPtr Value specialization into object.h, as above. * glib/src/ optiongroup.ccg, spawn.ccg, thread.ccg: Make C callacks separate extern "C". * glib/src/optiongroup.ccg: Do not use the StringArrayHandle, because the Tru64 compiler has problems with it - see comments in code. * glib/src/optionentry.hg: Remove the include of value.h, because it is not used and it causes a Tru64 compile error in optioncontext.cc because its templates are included before the types that the template uses. 2005-01-19 Murray Cumming * configure.in, scripts/cxx.m4, glibmm/glibmmconfig.h.in: Added a compiler test, because the IRIX MipsPro compiler does not allow the inline initialization of ustring::npos. * glib/glibmm/ustring.[h|cc]: When the compiler does not support the inline initialization of npos, initialize it in the .cc file. Declare partial specializations of the SequenceString inner class inside the class - needed by IRIX MipsPro compiler. 2005-01-18 Murray Cumming * glibmm/src/optiongroup.[hg|ccg]: CppOptionEntry::convert_c_to_cpp(): Copy the strings to the vector in a loop, instead of using the ArrayHandle constructor, because that does not seem to work with the SUN Forte compiler. 2.5.4: 2005-01-10 Murray Cumming * glibmm/src/optiongroup.[hg|ccg]: Added a castitem constructor that always takes ownership, needed by Gtk::Main. Added the new FLAG_REVERSE flag value. Added reference documentation. 2.5.3: 2005-01-09 Murray Cumming * glib/glibmm/misc_utils.[h|cc]: Added setenv() and unsetenv(), wrapping new functions added in glib 2.4. * glib/src/convert.[hg|ccg]: Added filename_display_name() and filename_display_basename(). 2005-01-09 Murray Cumming * glib/src/optionentry.ccg: Copy constructor: Copy the short name form the src, not from itself. Bug #16331 from Daniel Holbach. 2005-01-09 Murray Cumming * glib/src/optionentry.[hg|cc]: Add add_entry(entry, bool&), to wrap use of G_OPTION_ARG_NONE. Bug #163325 from Daniel Holbach. * examples/options/main.cc: Use the new add_entry() overload. 2005-01-06 Benoît Dejean * glib/glibmm/dispatcher.cc: * glib/glibmm/error.cc: * glib/glibmm/exceptionhandler.cc: * glib/glibmm/main.cc: * glib/glibmm/threadpool.cc: * glib/glibmm/ustring.cc: * glib/glibmm/wrap.cc: Don't export private API. Closes #163031. 2005-01-04 Chris Vine * examples/iochannel_stream/: Provide a means of obtaining Glib::IOChannel error information from the streambuffer. Remove the code conversion option from the fdstream/fdstreambuf constructors and add comments in fdstream.h about code conversion and other matters. Add a detach() function and a destructor to fdstreambuf. Correct an error in fdstreambuf::xsgetn(). Include missing header file in main.cc. 2.5.2: 2004-12-19 Murray Cumming * examples/: Adapted and added iochannel_stream example from Chris Vine in bug #138259. 2004-12-19 Murray Cumming * glib/src/: Added glib_docs.xml, generated with docsextract_to_xml.py and glib_docs_override.xml, to generate some API reference from the C docs. * glib/src/Makefile.am: Mention the new files. 2004-12-19 Murray Cumming * docs/reference/: Added a copy of the libstdc++ doxygen tags file, but it still does not seem to work, for example with std::vector<> and std::string. 2004-12-19 Murray Cumming * docs/reference/Doxyfile.in: Use the libstdc++ TAG files, so that references to std:: classes take people to their docs. * glib/src/: Added glib_docs.xml and glib_docs_override.xml, and mentioned them in Makefile.am. 2004-12-19 Murray Cumming * glib/src/date.hg, glib/glibmm/main.h, glib/glibmm/signalproxy_connectionnode.h: Deal with some doxygen warnings about undocumented parameters. * glib/glibmm/ustring.h: Added documentation for the size() and bytes() methods. 2004-11-21 Murray Cumming * glib/src/optionentry.[hg|ccg]: Removed OptionEntry enum and set_arg_data(), because they are not needed any more. 2.5.1: 2004-11-01 Murray Cumming * glib/src/optiongroup.[hg|ccg]: Added add_entry() for vector and add_entry_filename() for std::string and vector. * examples/options/main.cc: Test these new methods. 2004-10-30 Murray Cumming * glib/src/optiongroup.[hg|ccg]: Added gobj_give_ownership(). * glib/src/optioncontext.[hg|ccg]: add_group(), set_main_group(): Use gobj_give_ownership() because GOptionContext deletes the GOptionGroups that we give it. 2004-10-26 Murray Cumming * glib/src/optionentry.hg: Remove accessors for arg and arg_data. * glib/src/optiongroup.[hg|ccg]: add_entry(): Remove arg_type parameter and instead add overrides which take specific C++ value types. Add CppOptionEntry inner class to hold information about each entry and its dynamically allocated C value. Add map_entries_ map to store them, so we can iterate over them during post_parse. 2004-10-21 Murray Cumming * build_shared/Makefile_build.am_fragment: Patch from Roger Leigh in bug # 15589 to use PLATFORM_WIN32 rather than OS_WIN32 to enable -no-undefined. This allows glibmm to build in a cgwin environment, apparently. 2.5.0: 2004-10-17 Murray Cumming * glib/src/optioncontext.[hg|ccg]: add_entry(): Fixed crash by creating a temporary array, with a nulled last item, which is what the C function wants. In callbacks, ignore the group parameter because our option group in the data parameter is the same, and does not require construction of a second C++ wrapper instance for the same C instance. * glib/src/optiongroup.[hg|ccg]: Removed the cast constructor, because it is not needed anymore, and there is no clear way to implement it. 2004-10-14 Murray Cumming * tools/pm/WrapParser.pm: on_wrap_property(): Convert property name to canonical form, so that we can recognise notifications of property value changes. Bug #152764. 2004-10-07 Philip Langdale * glib/glibmm/signalproxy_connectionnode.cc: Remove unnecessary warning when notify() is called after destroy_notify_handler(). (bug #154498) 2004-10-01 Murray Cumming * glib/src/option*.[hg|ccg], examples/options/main.cc: Rethought the structure now that I see how the parts work together. Rearranged the example to show how the parsing can fill values in member variables of a derived OptionGroup class. However, 1. it crashes now, 2. we need extra code to map the GOption C types to suitable C++ types, probably by doing pre and post parsing to create temporary C types for the C++ types. 2004-09-27 Murray Cumming * glib/src/option*.[hg|ccg]: Wrapped more methods, but I have still not finished. * examples/options/: Started an example. 2004-09-26 Murray Cumming * glib/src/glib_functions.defs: Regenerated with h2defs.py * glib/src/: Added optionentry.[hg|ccg], optiongroup.[hg|ccg], optioncontext.[hg|ccg]. 2004-09-19 Murray Cumming * This is the HEAD branch. 2004-09-13 Cedric Gustin * examples/thread/dispatcher.cc: Fixed a race condition on win32 that involved the combined use of auto_ptr and multithreading (bug #109966). 2.4.4: 2004-07-23 Martin Schulze * glib/glibmm/main.cc: Move deletion of SourceConnectionNode object into destroy_notify_callback() exclusively; do not delete from notify(). (bug #144420) 2004-07-10 Murray Cumming * glib/glibmm/signalproxy_connectionnode.cc: notify(): Do not delete the connection after disconnecting it, because disconnecting it always causes disconnect_notify to be called, so just delete it there. This prevents double deletes and reading of deleting memory, found in bug #145571. 2004-07-09 Murray Cumming * glib/glibmm/signalproxy.h.m4: Added some documentation. 2004-06-20 Daniel Elstner * glib/glibmm/objectbase.cc: Spring cleaning. * glib/glibmm/object.cc: ditto. 2.4.3: 2004-06-18 Daniel Elstner * scripts/macros.m4 (GTKMM_ARG_ENABLE_WARNINGS): Add -Wno-long-long to the list of tried warning flags. 2004-06-16 Daniel Elstner * glib/glibmm/dispatcher.cc (DispatchNotifier::create_pipe): There is no point in calling g_file_error_from_errno() on win32 since we have no real errno. Also fix the error text to say "event" rather than "pipe". 2004-06-14 Daniel Elstner * scripts/cxx.m4: Add a couple of casts to void in order to suppress warnings about unused variables. I still have no idea as to why the hardcore warning flags are remembered when running make distcheck... 2004-06-14 Daniel Elstner * examples/thread/dispatcher.cc: Explicitely join all threads. Hopefully that'll fix the crash on win32 (see bug #109966). 2004-06-13 Daniel Elstner * examples/thread/dispatcher*.cc (main): Remove unused parameter names to fix building with -Werror. 2004-06-13 Daniel Elstner * configure.in (GTKMM_ENABLE_DEBUG_REFCOUNTING): s/^GTK/GLIB/ 2004-06-08 Daniel Elstner * build_shared/Makefile_build.am_fragment (all_includes): Remove left-over include paths for pango, atk, gdk and gtk. 2004-06-07 Daniel Elstner * glib/glibmm/stringutils.h: Replace a couple of double quotes with " to prevent doxygen from escaping the enclosed HTML entities. 2004-06-04 Daniel Elstner * glib/glibmm/ustring.h: Use /*! instead of /** to introduce doxygen comments in order to avoid cluttering the long method list of class Glib::ustring. Replace a few double quotes with " to prevent doxygen from escaping the enclosed HTML entities. 2.4.2: 2004-06-03 Daniel Elstner * scripts/Makefile.am (EXTRA_DIST): Remove mkinstalldirs, because automake-1.8 doesn't use it anymore and prior versions should pick it up automatically anyway. 2004-06-03 Daniel Elstner * glib/glibmm/dispatcher.cc: Complete overhaul of the Win32 implementation of Glib::Dispatcher. That is, mutex locking is done correctly now and dynamic memory allocation is no longer used, plus a few other cleanups. See reopened bug #109966. 2004-06-03 Daniel Elstner * glib/glibmm/signalproxy_connectionnode.cc (SignalProxyConnectionNode::SignalProxyConnectionNode): Reorder the initializer list to match the declaration order. (SignalProxyConnectionNode::notify): Add missing return 0. 2004-05-26 Daniel Elstner * glib/glibmm/ustring.{cc,h}: Globally apply some minor code cleanup and optimization tweaks. (get_unichar_from_std_iterator): Replace implementation with a hand-optimized and profiled variant that has been lurking in my local tree for quite some time, thus should be well tested. Also add the G_GNUC_PURE() attribute. (operator+): Explicitely instantiate and return a temporary string, instead of accessing the reference ustring::operator+=() returns. This quite often allows the compiler to eliminate the additional copy constructor invocation. 2004-05-25 Murray Cumming * configure.in, Makefile.am: Removed the glibmm.spec files, because it is broken and nobody has volunteered to fix it. 2004-05-20 Daniel Elstner * examples/thread/dispatcher.cc: Revert last commit because it's silly. To make the code truly exception-safe it would be necessary to either join all threads or to notify them, which is way beyond the scope of this example. 2004-05-20 Daniel Elstner * examples/thread/dispatcher.cc: Set a good example and be paranoid about possible memory leaks due to exeptions. 2004-05-20 Daniel Elstner * examples/thread/dispatcher.cc: Code cleanup. Most importantly, get rid of the locking around std::cout since it obfuscates the purpose of using Glib::Dispatcher. 2004-05-13 Daniel Elstner * glib/glibmm/object.{cc,h} (ConstructParams::ConstructParams): Implement the copy constructor in a way that actually works if used. Relying on the compiler to optimize it away is a bad idea. (#132300) 2004-05-04 Murray Cumming * glib/glibmm/ustring.h: Documented the constructors, based on the libstdc++ documentation, to make it clear that sizes are in characters rather than bytes. 2004-05-01 Murray Cumming * configure.in: Increase glib dependency to 2.4.0. 2004-04-30 Murray Cumming * tools/m4/gobject.m4: Allow use of _CUSTOM_DTOR(), needed by Gnome::Gda::Connection. 2.4.1: 2004-04-17 Murray Cumming * docs/reference/Makefile.am: Make the generated html depend on the beautify_docs.pl.in source instead of the generated beautify_docs.pl, so that the html is not rebuilt from tarballs. 2004-04-17 Murray Cumming * glib/glibmm/container_handle.h: Reimplemented more of the to_cpp_type() methods without using dependent methods, so that they work with g++ 3.4 (cvs versions). 2.4.0: 2004-04-11 Murray Cumming * tools/pm/WrapParser.pm, Output.pm, m4/signal.m4: Allow _WRAP_SIGNAL() to take an refreturn argument, so that Gtk::Widget::on_get_accessible() can do an extra ref before returning the Atk::Object. 2004-04-09 Murray Cumming * tools/pm/Output.pm: output_wrap_property(): Provide the actual property name as well as one with - replace with _, so we can test for the correct value in notification signal handler. * tools/m4/property.m4: Use the actual property name when calling C functions. 2.3.8: 2004-03-24 Murray Cumming * scripts/cxx.m4: Corrected parentheses, which cause the docs to be written into config.h. Thanks to Alexander Nedotsukov. 2004-03-23 Murray Cumming * scripts/cxx.m4: Corrected the ambiguous const template test, which failed on all platforms because it generated bad code. 2004-03-20 Martin Schulze * glibmm/main.cc: Bug fix in SourceConnectionNode::notify() (#137030). 2004-03-18 Murray Cumming * tools/generate_wrap_init.pl: Change a regex so that files are included without full path. Apparently this helps when building outside of the source directory, though I'm sceptical. By Victor Zverovich in bug #137530. 2.3.7: 2004-03-14 Murray Cumming * scripts/sun.m4: Set the correct variable, so it is actually set in glibmmconfig. 2004-03-14 Murray Cumming * glib/glibmm/containerhandle_shared.h value.h: Used ifdef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS to avoid problems with the SUN Forte compiler. 2004-03-14 Murray Cumming * scripts/cxx.m4: Added CAN_DISAMBIGUATE_CONST_TEMPLATE_SPECIALIZATIONS m4 macro to use in configure.in, to check for the SUN Forte problem - see the comments in cxx.m4. * scripts/sun.m4: Moved some brackets around to make the define actually work. 2004-03-13 Murray Cumming * glib/glibmm/containerhandle_shared.h: TypeTraits to_cpp_type() specializations: Use wrap_auto() directly instead of a specific wrap() overload that would be dependent. Needed for g++ 3.4. * glib/glibmm/containers.h: Same again. 2004-03-13 Murray Cumming * tools/m4/class_shared.m4: Remove the parent get_type() call from the Class::init() function, because it is optimised away, and g++ 3.4 actually complains that it does nothing. * glib/glibmm/object.[h|cc]: Add a public ConstructParams copy constructor, needed by g++ 3.4. See comments in the code. * tests/glibmm_value/glibmm_value.cc: Instantiate instances of value types, to fix the g++ 3.4 build. I don't know what the code was meant to do before anyway. 2004-03-11 Murray Cumming * scripts/: Added sun.m4, copied from libsigc++-1.2/scripts and modified, so we can detect the SUN Forte compiler. * configure.in: Used the m4 macro. * glibmm/glibmm-config.h: Undef the GLIBMM_COMPILER_SUN_FORTE macro so that it will be defined if configure sets it. 2004-03-09 Murray Cumming * Some, but not all, SUN Forte build fixes: * tools/m4/convert_gdk.m4, convert_glib.m4: Use existing sun-specific conversion when converting from any RefPtr to *Something. 2004-04-08 Hagen Moebius * tools/pm/DocsParser.pm: Another change to give better warnings and errors at gmmproc-runtime. Further improvment of parsing parameter names to strip traling underscres. This not only for reference text, but for the parameter list also. 2004-04-07 Hagen Moebius * tools/pm/DocsParser.pm: Allow overrides to only override part of the docs. Add a tag to associate non-prefixed functions with classes. Improve parsing of parameter names so they can now have numbers in the names. 2.3.6: 2004-03-03 Murray Cumming * Added glib/glibmm/i18n.h and i18n-lib.h which defines _() and friends for internationalization. See the comments in the header - you must include things in the right order. * glib/src/spawn.[hg|ccg]: Added spawn_close_id() as wrapper for g_spawn_close_id(). * glib/glibmm/main.[h|cc]: Added MainLoop::depth() as wrapper for g_main_depth(). 2004-03-02 Murray Cumming * tools/pm/Function.pm: parse_param(): Only parse const as an individual part of the type name if it is followed by a space, so that we can have const const_iterator& types. 2004-02-27 Martin Schulze * CHANGES: Fix typo reported by Chris Vine. 2004-02-13 Martin Schulze * documentation fixes and corrections in the comments reflecting the shift to libsigc++ 2. * make all source files in example thread use libsigc++ 2 instead of libsigc++ 1.2. 2.3.5: 2004-02-10 Murray Cumming * glibmm now uses libsigc++ 2 instead of libsigc++ 1.2. See bug #125061 for more details. We must update CHANGES later. 2.3.4: 2004-02-02 Murray Cumming * glib/glibmm/containerhandle_shared.h: Traits: Added const_cast, needed by TreeView::get_columns() const: bug #126721. 2004-01-29 Murray Cumming * tools/pm/Parser.pm, Output.pm, tools/m4/signal.m4: Add an optional custom_c_callback parameter to _WRAP_SIGNAL to allow special code for the SelectionData& output parameter in Gtk::Widget signals. Hopefully we won't need too many more of these hacks - the m4 is becoming very hard to read, with all these nested ifelse() statements. 2004-01-27 Cedric Gustin * build_shared/Makefile_build.am_fragment: Added win32-specific --export-all-symbols to linker flags. This is backported from gtkmm-2.2. * README.win32: Updated text for glibmm-2.4. * tools/generate_wrap_init.pl.in: Replaced GTKMM_WIN32 by the standard G_OS_WIN32. 2.3.3: 2004-01-22 Murray Cumming * glib/date.[hg|ccg]: Added clamp_min() and clamp_max() to wrap the case where g_date_clamp() takes null values. 2004-01-18 Alberto Paro * glib/src/date.hg: documentated Glib::Date functions. * glib/glibmm/main.h: documentated Glib::MainLoop,Glib::MainContext and Glib::Source functions. 2004-01-18 Murray Cumming * tools/pm/Output.pm, tools/m4/property.m4: When the property is not read-only, add a second read-only propertyproxy for the same property, with a const accessor. This allows setting of properties in const methods. Make all read-only propertyproxies have const accessors. * glib/glibmm/propertyproxy.h: Added class documentation. * tools/pm/Output.pm: Declare _vfuncs as virtual methods - fixing an error in my last change. 2004-01-16 Murray Cumming * tools/pm/Output.pm, tools/m4/vfunc.m4: - Generate const vfuncs when requested with _WRAP_VFUNC(). - Put the *_vfunc() decleraration directly into the header, where the _WRAP_VFUNC() macro appears, instead of in a separate section. This allows us to add doxygen documentation before the _WRAP_VFUNC() in the .hg file. However, we must check that all of our _WRAP_VFUNC() macros are in protected: sections. 2004-01-12 Murray Cumming * glib/glibmm/object.cc: Object::Object() default constructor. Remove the warning because we really need this to implement a custom TreeModel. Derive a new GType, as in the Object::Object(ConstructParams) constructor. Like that constructor, the default one also assumes that you have called a suitable ObjectBase constructor, such as ObejctBase(typeid(MyCustomClass)). 2004-01-09 Murray Cumming * tools/pm/Output.pm: output_wrap_property(): Allow construct-only properties to be wrapped, as read-only properties. 2004-01-03 Murray Cumming * tools/gmmproc.in, pm/WrapParser.pm, DocsParser.pm: Removed the mergecdocs option - because we always want to merge C docs, to avoid accidental upload of half-complete docs. 2003-12-29 Murray Cumming * Makefile.am: Add scripts and tests directories to SUBDIRS instead of DIST_SUBDIRS, so that their Makefile.am files are actually used. * scripts/macros.m4: renamed GTKMM_CHECK_PERL() to GLIBMM_CHECK_PERL() and install it as glibmm_check_perl.m4, so that other *mm projects can use it. They need the PERL_PATH for Doxygen. 2003-12-22 Murray Cumming * docs/reference: generate beautify_docs.pl from beautify_docs.pl.in, so it can have the perl path in it. Install it, so other *mm modules can use it. 2003-12-13 Murray Cumming * tools/m4/*.m4: Added fuller Doxygen documentation to all gobj() and wrap() methods. Doxygen should not emit warnings about these now. 2.3.2: 2003-11-29 Murray Cumming * tools/m4/signal.m4: Add spaces inside signal_proxy template types, to avoid << and >> when using templated types. 2003-11-27 Murray Cumming * tools/pm/WrapParser.pm, Output.pm: Added WRAP_METHOD_DOCS_ONLY() macro. * docs/internal/using_gmmproc.txt: Explained the new macro. 2003-11-02 Murray Cumming * glib/glibmm/: Added init.[h|cc] with Glib::init() so that the gnomemm init() methods do not need to initialize gtkmm. * tools/m4/class_gobject.m4, class_gtkobject.m4: Added _GMMPROC_PROTECTED_GCLASS macro, needed by libgnomecanvasmm. This was not previously properly merged from gtkmm2. * tools/m4/property.m4: Re-added PropertyProxy reference documentation that did not survive a previous merge from gtkmm2. 2003-11-01 Murray Cumming * glib/glibmm/propertyproxy.h, propertyproxy_base.[h|cc]: Now uses ObjectBase instead of Object, because glib can now have properties on interfaces. This is needed, for instance, by the GtkFileChooser interface wrapper in gtkmm. * glib/glibmm/object.h: Moved get/set_property() methods into ObjectBase, for the same reason. * tools/pm/WrapParser.pm, Output.pm: Added optional no_default_handler parameter to gmmproc _WRAP_SIGNAL() macro, for signals whose default signal handler is not in the klass struct and therefore can not be overridden. 2003-10-31 Murray Cumming * docs/Makefile_web.am_fragment: Corrected install location, so that links from the gtkmm docs work when they are installed. 2003-10-30 Murray Cumming * docs: Added images directory, copied from gtkmm, for the reference html docs. * configure.in: Mention docs/images/Makefile. * docs/reference/Doxyfile.in: Genereate glibmm_doxygen_tags instead of gtkmm_doxygen_tags. * docs/reference/Makefile.am: dist glibmm_doxygen_tags. * docs/reference: gtkmm*.html_fragment are now glibmm*.html_fragment. 2.3.1: 2003-10-23 Murray Cumming * tools/pm/Output.pm: output_wrap_create(): Used args_types_and_names_with_default_values() intead of args_types_and_names(), so that create() functions .in .h files have the default values as specified in _WRAP_CREATE() in .hg files. * tools/pm/WrapParser.pm: on_ignore_signals(): Strip the quotes, to make _IGNORE_SIGNAL() really work in .hg files. 2003-10-02 J. Abelardo Gutierrez * examples/threads/dispatcher.cc examples/threads/dispatcher2.cc: fixed to cast out all gktmm code, now they only need glimm. * configure.in: Added examples/threads because they don't use gtkmm anymore. Now all examples/threads compiles and run just fine. 2.3.0: 2003-09-30 Murray Cumming * configure.in: Removed examples/threads because we don't build or distribute it, because it doesn't build, because it uses gtkmm. 2003-09-30 Murray Cumming * glib/glibmm/object_base.h: ObjectBase inherits virtually from Sigc::Object. See bug #116280. 2003-09-27 Cedric Gustin * glib/glibmm/threadpool.cc: Removed _GTKMMPROC_SIGNAL_H_AND_CC(#ifndef G_OS_WIN32) restrictions. These functions are now implemented in the latest (2.2.4) GTK+ on win32. * README.win32 : Updated list of unsupported functions. 2003-08-20 Frank Naumann * glib/src/thread.hg, glib/src/unicode.hg: Warning bugfix for VisualStudio .NET 2003; made wrapper functions returning bool from glib functions returning int (C lacks builtin type bool) explicit by adding an != 0 check. Otherwise VisualStudio .NET warn about implicit int -> bool cast. 2003-07-26 Murray Cumming * glib/glibmm/dispatcher.cc: Added #include , needed by MSVC++, as suggested by Frank Naumann in bug #118215. 2003-05-31 Murray Cumming * tools/gmmproc.in: Corrected location of installed .pm files. They are now in a glibmm-2.3 folder instead of a glibmm-2.4 folder. 2003-05-14 Murray Cumming * Applied some of MSVC++ .NET 2003 changes from jburris. For instance, use of Gtk:: prefix with manage, because MSVC++ can not guess it. Also corrected the out-of-sync protected/private modifiers in the private gtype classes and their prototypes. 2003-05-09 Cedric Gustin * glib/glibmm/dispatcher.cc: small typo in G_OS_WIN32 condition. 2003-05-07 Murray Cumming * scripts/macros.m4: Made the --enable-debug-refcounting configure option set GLIBMM_* instead of GTKMM_*. 2003-05-02 Murray Cumming * tools/m4/*.m4: Added doxygen comments to gobj() methods. * examples/markup/parser.cc: Commented-out a std::right that gcc 2.93 does not like. 2003-04-23 Andrew Makeev * glib/glibmm/dispatcher.cc: Added some #ifdefed code to implement Glib::Dispatcher on WIN32. See comments with the code. 2003-04-22 Murray Cumming * Install headers in a glibmm-2.3 directory instead of glibmm-2.4, to be consistent with gtkmm 2.4. 2003-04-21 Murray Cumming * arrayhandle.h, listhandle, slisthandle.h: Glib::ListHandle, Glib::ListHandle, Glib::SListHandle: Added reference docs explaining that people can use STL containers. 2003-04-21 Murray Cumming * Removed examples/idle: It's now updated and in gtkmm/examples/book. 2003-04-19 Murray Cumming * tools/pm/GtkDefs.pm: get_unwrapped(): Changed some & to && to avoid warnings and because that is probably what they should be. * tools/m4/extra_defs_gen/generate_defs_glib.cc: Removed parameter names from main(), because they are not used. Avoid warning. 2003-03-26 Ross Burton * glib/src/module.hg: Added API documentation. 2003-03-18 Enrico Scholz * scripts/*.m4, configure.in: Added description to several AC_DEFINE statements to make 'autoheader' happy * Makefile.am: Added ACLOCAL_AMFLAGS to make 'autoreconf' work 2003-03-18 Cedric Gustin * Makefile.am : removed examples from DIST_SUBDIRS 2003-03-18 Enrico Scholz * examples/Makefile.am_fragment: Added DESTDIR-support. 2003-03-14 Cedric Gustin * Install examples. The are built by default too. Patch adapted for glibmm 2.4 by Murray Cumming. 2003-03-04 Cedric Gustin * configure.in : Removed libstdc++ in LDFLAGS on win32. Latest libtool is taking care of it. * build_shared/Makefile_build.am_fragment, tools/extra_defs_gen/Makefile.am : Added --export-all-symbols linker flag on win32 (required by latest libtool to build DLLs). * build_shared/Makefile_gensrc.am_fragment : Modifiy rule that builds wrap_init.cc. wrap_init.cc now contains reference to all objects, event on win32. #ifdefs are included when needed. * README.win32 : updated for version 2.2. Added list of missing methods and signals on win32 * tools/m4/base.m4 : Added _GTKMMPROC_SIGNAL_H_AND_CC macro. 2003-03-14 Martin Schulze * docs/internal/using_gtkmmproc.txt: Correct name of [...]signals.defs generation utiliy. 2003-01-30 Rick L Vinyard Jr * glib/src/thread.hg Cond: Add documentation 2003-01-27 Murray Cumming * glib/glibmm/refptr.h: Removed RefPtr<>::is_null() to encourage use of more pointer-like operator bool() instead. Wanted to remove clear() too, but there is no =0 equivalent yet. * tools/gmmproc.in: Change harcoded gtkmm-2.0/m4 path to glibmm-2.4/m4. 2003-01-22 Murray Cumming * GTKMM_ m4 tests and #defines are now prefixed with GLIBMM_ 2003-01-21 Murray Cumming * tests/Makefile.am_fragment, examples/Makefile.am_fragment: Corrected LIBS and CFLAGS. Not all of these build because they use gtkmm stuff too. They need to be reduced to glibmm-only code. 2003-01-21 Murray Cumming * glib/Makefile.am, glib/glibmm/Makefile.am: Install headers in glibmm-2.4 directory rather than gtkmm-2.4 2003-01-21 Murray Cumming * configure.in: Use GLIBMM_* instead of GTKMM_* to avoid config.h clashes with gtkmm 2.4. * glib/glibmm-2.4.pc.in: Correct cflags - report 2.4 instead of 2.0. 2003-01-21 Murray Cumming * tools/extra_defs_gen/Makefile.am: Changed extra_defs library name from 2.4 to 2.3, so it can be unstable. 2003-01-09 Daniel Elstner * 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 * glib/glibmm/miscutils.cc (Glib::build_path): Reserve 256 bytes in advance to improve performance. 2003-01-09 Daniel Elstner * glib/glibmm/miscutils.{cc,h} (Glib::build_path): Fix to make it behave exactly like g_build_path(). (#102885, Jarek Dukat) (Glib::build_filename(const std::string&, const std::string&)): Implement in terms of Glib::build_path(). 2003-01-21 Murray Cumming * Renamed gtkmmproc to gmmproc. 2003-01-08 Murray Cumming * glib/glibmm/refptr.h: Removed the operator=(CppObject*), as suggested in the TODO comment. 2003-01-08 Murray Cumming * make distcheck works. 2003-01-08 Murray Cumming * It now builds, though I haven' tried installing it. The library names and header directories should now all have 2.4 instead of 2.0 in their name. glibmm was previously part of gtkmm2.