2022-09-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.7

2022-09-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::TextView::get_tabs(): Plug a memory leak

  gtk_text_view_get_tabs() returns a copy (transfer full).

2022-08-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Dialog demo: Add a non-modal dialog

  Fixes #123

2022-08-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Menu: Fix build with -Dbuild-deprecated-api=false

  Fixes #126

2022-07-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Doxyfile.in: Allow more graph nodes

  Required for Gtk::Widget's inheritance diagram.

2022-06-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Widget: Improve the class documentation

2022-06-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::FileChooserNative: Don't derive a gtkmm__GtkFileChooserNative

  GtkFileChooserNative is declared G_DECLARE_FINAL_TYPE.

2022-06-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gmmproc: Improved handling of final types

  * tools/m4/class_shared.m4: New file. It's a copy of the corresponding
  file in glibmm. The copy in gtkmm makes it possible to
  use _DO_NOT_DERIVE_GTYPE and _ABI_AS_WITH_DERIVED_GTYPE even if you build
  against a version of glibmm where class_shared.m4 has not been updated.
  * tools/extra_defs_gen/meson.build:
  * tools/m4/filelist.am: Add class_shared.m4.

2022-05-24  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson: Simplify compiler flag checking

  As Kjell suggested, don't use a for loop as get_supported_arguments() works on
  a list and returns a list.

2022-05-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson/MSVC: Apply /wd4828 when building gendef.exe only

  This warning only applies when compiling gendef.cc, when '/utf-8' is also being
  used, so only apply that compiler flag there.  Move the '/utf-8' to be with the
  other warning-related compiler flags for consistency's sake.
  
  Also, only build gendef.exe if it is really needed, i.e., glibmm's gmmproc is
  not able to produce headers that can export gtkmm's symbols via compiler
  directives.

2022-05-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build/MSVC: Disable more warnings

  These warnings are not ones that we do need to be worried about when building
  gtkmm, and we should extend applying them for the (generated) C sources as well

2022-05-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build/MSVC: Re-order warnings-related c[xx]flags a bit

  Don't (needlessly) repeat checking for the '/utf-8' compiler flag, and
  use the `/wd4267` compiler flag only when building a 64-bit build, since
  warning C4267 only applies for 64-bit builds.
  
  Also, add a short description for the warning-related compiler flags for
  Visual Studio.

2022-05-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Avoid configuration warnings

2022-05-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.6

2022-04-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Object::_release_c_instance(): Unref orphan managed widgets

  g_object_run_dispose() unrefs a widget only if it has a parent.
  Use g_object_unref() on all widgets without a parent.
  Fixes #115

2022-02-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Check if Perl is required for building documentation

  New versions of mm-common use the Python scripts doc_postprocess.py
  and doc_install.py instead of the Perl scripts doc-postprocess.pl and
  doc-install.pl when documentation is built.

2022-02-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Specify 'check' option in run_command()

  The default value will be changed in future Meson releases.
  
  Don't use deprecated python3.path() and execute(..., gui_app: ...).
  Let import('python').find_installation() always find the python
  installation used to run Meson.
  Fixes #111

2022-02-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  treeiter.hg: Declare TreeValueProxy copy constructor =default

  Avoid warnings from the clang++ compiler.
  
  It's deprecated to implicitly declare a copy constructor, if there
  is a user-deleted (=delete) copy assignment operator.

2021-11-10  Chun-wei Fan  <fanchunwei@src.gnome.org>

  build: Support Visual Studio 2022

  Make these builds distinct frmo the Visual Studio 2019 builds.

2021-09-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete entry

2021-06-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  SizeGroup demo: Derive from Gtk::Window instead of Dialog

  and set active items in the combo boxes, so something is shown.

2021-05-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.5

2021-05-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Documentation: Let links point to gtkmm-3.0 versions

2021-05-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add dependencies to Doxygen tag files in subprojects

  Doxygen in a main project shall not be called before tag files have been
  created or updated in subprojects.

2021-05-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix build as subproject without building documentation

  * meson.build: If mm-common-get is not found in maintainer-mode
  with 'required: false', try with 'required: true'.
  Don't try to use tag_file, if documentation is not built.
  * docs/reference/meson.build: Don't use variables from modules
  that don't define doxytagfile. These are subprojects that don't build
  their documentation.

2021-05-11  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Clean up MSVC build flags

  Like the last NMake Makefiles commit, drop the ignores for warnings C4251,
  C4273 and C4275 as the code is now free of items that trigger those warnings.

2021-05-11  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Some cleanups and improvements

  Drop the ignores for warnings C4251, C4273 and C4275 from the warnings that we
  want to ignore, as the code is now free of items that trigger those warnings.
  
  Also, reorganize the compiler flags for gtkmm-demo as it is actually the /GL
  flag that triggered the internal compiler error when it is used with /EHsc on
  32-bit Visual Studio 2015 and 2017 builds.  Likewise, disable the /LTCG linker
  option when building Visual Studio 2015 and 2017 32-bit builds.

2021-05-11  Chun-wei Fan  <fanchunwei@src.gnome.org>

  treemodelcolumn.h: Export class selectively

  This class contains a std::vector<GType> member, so don't export this class as
  a whole but export its methods individually.
  
  This will eliminate warning C4251 and avoid having the built code depend on a
  specific STL and compiler version

2021-05-11  Chun-wei Fan  <fanchunwei@src.gnome.org>

  textiter.hg: Correct _WRAP_EQUAL_AND_COMPARE() call

  The decoration macro should be GTKMM_API, not GDKMM_API

2021-05-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0

  Call add_dist_script() in a subproject, if meson.version() >= 0.58.0.

2021-04-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: No implicit_include_directories

2021-04-06  Daniel Boles  <dboles.src@gmail.com>

  treeiter—Delete TreeValueProxy copy-assign/warning

  The user-provided, unimplemented operator=(TreeValueProxy const&)
  existed to prevent the class being copied, but since a long time C++
  provides a better way to do that: declaring the operator as deleted.
  
  Doing this also avoids warnings about the implicitly declared default
  copy constructor, which is deprecated due to the previously user-given
  operator=, and since the latter is now deleted the warnings are avoided.
  
  https://gitlab.gnome.org/GNOME/gtkmm/-/issues/94

2021-03-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Make it possible to use gtkmm as a subproject

  gtk, gdk-pixbuf, epoxy, atkmm, cairomm, pangomm and glibmm can be
  subprojects of gtkmm.
  It's not guaranteed that gtk3 can be a subproject. See gtk#3775

2021-03-09  Chun-wei Fan  <fanchunwei@src.gnome.org>

  g[d|t]kmmconfig.h.*: Don't dllimport on MinGW

  This will fix warnings when building items using gdkmm and gtkmm with
  MinGW/GCC.
  
  Fixes: https://gitlab.gnome.org/GNOME/gtkmm/-/issues/90
  
  
  (cherry picked from commit 86685b604692b5d93f51a1d886786352c921dc51)
2021-02-24  Mingli Yu  <mingli.yu@windriver.com>

  meson.build: use relative path

  Fixes:
  Fatal error: can't create
  gdk/gdkmm/libgdkmm-3.0.so.1.1.0.p/_buildarea1_master-wr_build_Userspace_auto-usrmerge_standalone_usrmerge_next_210222_lxbuilds_Har12345_platform_up_intel-x86-64-standard-glibc-std_wrlinux_build_tmp-glibc_work_corei7-64-wrs-linux_gtkmm3_3.24.3-r0_gtkmm-3.24.3_untracked_gdk_gdkmm_timecoord.cc.o: File name too long
  
  Signed-off-by: Mingli Yu <mingli.yu@windriver.com>

2021-02-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.4

2021-02-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete entries

2021-02-12  Chun-wei Fan  <fanchunwei@src.gnome.org>

  treepath.hg: Export comparison operators

  The 'GTKMM_API' decoration was missed from the '_WRAP_COMPARE' item,
  making the code fail to link for Inkscape on Windows.  Add the needed
  decoration to fix this.
  
  Fixes issue #88.

2020-12-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.3

2020-10-22  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: "Install" the codegen .m4 files

  This way, we can make gtkmm's codegen m4 scripts available to other packages
  that uses them to generate sources

2020-10-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gtk/gtkmm.h: Fix a typo

2020-10-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gtk/gtkmm.h: Describe how to use gtkmm with meson

2020-10-06  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Documentation: Explain key values

  and add links to gdk/gdkkeysyms.h. Fixes #6

2020-10-06  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gtk/gtkmm.h: Update the link to libsigc++'s home page

2020-10-01  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Fix versioning on macOS

  See libsigcplusplus, pull request 65

2020-09-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove an obsolete file

  * docs/reference/README: Removed
  * meson.build: Exclude some git-tracked files from generated
  tarballs. Works as intended only with a new enough dist-build-scripts.py
  file from mm-common-get.

2020-08-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Actionable::get_action_target_value(): Fix ref count

  gtk_actionable_get_action_target_value() does not give the caller a ref.
  get_action_target_value_vfunc_callback() shall store a copy of the
  returned value. It shall not give the caller a ref.

2020-08-31  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix gendef invocation

  We ought to pass in the DLL filenames with the '.dll' extension, not just the
  .lib filenames.

2020-08-28  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gtk/gtkmm/private/object_p.h: Decorate Gtk::Object_Class with GTKMM_API

  This way, we can fix gtksourceviewmm builds on Visual Studio as well, when
  gtkmm was not built with gendef.exe

2020-07-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Use Meson-style DLL and .lib naming if requested

  To make things more consistent and less prone to confusion, if 'USE_MESON_LIBS'
  is specified in the NMake command line, build the DLLs and .lib's that are
  named like the Meson counterparts.  Binaries built with Meson+Visual Studio
  and the ones that are built via NMake using 'USE_MESON_LIBS' are
  interchangeable, provided that they are built with the same Visual Studio
  version.

2020-07-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix build from release tarballs

  Make sure that we do not needlessly re-generate [gdk|gtk]mm[config.h|.rc], and
  ensure when they are generated, they will always contain the needed version
  info in them.
  
  Also streamline the process so that it is no longer necessary to run the
  'prep-git-build' target; instead, this file generating process is carried out
  when necessary when running the 'all' target.

2020-07-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix header search paths

  We should also look in $(PREFIX)\include\harfbuzz and $(PREFIX)\include for
  HarfBuzz (which the Pango headers may include) and Cairo (and libepoxy)
  respectively, since these are likely locations where the headers are
  located.

2020-07-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Support ARM64 Windows builds

  This will make the NMake Makefiles capable of building ARM64 binaries of gdkmm
  and gtkmm, which can be used on Windows 10 on ARM systems.

2020-07-01  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gdk/meson.build: Set MSVC_TOOLSET_VER in conf data

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix previous commit

  We should also account for Visual Studio 2015 when we use 'USE_MESON_LIBS' with
  'USE_COMPAT_LIBS' as well...

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  MSVC_NMake/README: Update build info

  Note that it is possible to build with Visual Studio with Meson, on the
  condition that the -mm dependencies are built with Meson as well, since we need
  their pkg-config files.
  
  Also note that the same compiler version should be used to build gtkmm and the
  -mm dependencies, even for Visual Studio 2015, 2017 and 2019.

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Apply toolset version for Meson-built deps

  As the Meson build files for Visual Studio apply the toolset version in the
  .lib filenames by default, apply the toolset version in the Meson-built -mm
  .lib files that we link in, just as we did when we we link in the -mm .lib
  files that was built with NMake, by default.
  
  The option 'USE_COMPAT_LIBS' will also mean that we will use the former
  behavior when we link in the Meson-built -mm .lib's, just as we did when we
  link in the NMake-built -mm .lib's.

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson/Visual Studio builds: Include toolset version by default

  This makes the built DLL and .lib's contain the toolset version if the build is
  carried out using Visual Studio 2015 or later, unless the
  'msvc14x-parallel-installable' option is set to be false during configuration.
  
  The reasoning behind this change is that there are subtle problems when, for
  instance, one tries to link to a Visual Studio 2015-built glibmm when building
  gtkmm and libxml++ with Visual Studio 2017 or 2019.  This is unfortunate as
  Microsoft did try hard to make interoperating between binaries built with
  Visual Studio 2015, 2017 and 2019 as easy as possible in terms of ABI and API,
  but unfortunately this hits the corner cases where this compatibility does not
  work.
  
  As the name suggests, this attempts to make Visual Studio 2015, 2017 and 2019
  builds share a single set of underlying C DLLs easier, while avoiding breakages
  caused by such subtle differences.

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson: Remove gmmproc-dir option

  It was not used, anyways, since we look for the -mm dependencies only via
  pkg-config, which will give us the info we need

2020-06-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/meson.build: Improve the update for Doxygen >= 1.8.16

  Move some code from meson.build to doc-install.pl (in mm-common),
  where regular expressions can be used.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Clean up building demo and test programs

  We can group some items together and "generate" the build rules for the test
  programs instead of hand-writing them one-by-one, since the compiler and linker
  flags for them are largly the same.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix 32-bit Visual Studio 2017 builds

  We need to disable /EHsc in the compiler flags when building gtkmm-demo,
  because it turns out that the linking will fail with an internal compiler error
  like on Visual Studio 2015 32-bit builds.
  
  The x64 builds on Visual Studio 2015 and later and 32-bit builds on Visual
  Studio 2019 build and run as expected.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019

  It was found that we cannot completely rely on the fact that Visual
  Studio 2015~2019 tried very hard to be binary compatible, as there
  are corner cases when linking against glibmm built with Visual
  Studio 2015 with builds done by Visual Studio 2017 and 2019 where
  the code will fail to link and the DLLs are therefore not
  ABI-compatible.  Note that the libsigc++ DLLs, however, are ABI
  compatible between these 3 Visual Studio versions.
  
  As a result, for the DLL and LIB names, use 'vc140' for Visual Studio
  2015 builds, 'vc141' for Visual Studio 2017 builds and 'vc142' for
  Visual Studio 2019 builds, according to the toolset versions as defined
  by Microsoft.
  
  For people that may have previously built gtkmm (and glibmm) with Visual
  Studio 2017 or 2019, which had 'vc140' in the built .lib and DLL, an NMake
  option 'USE_COMPAT_LIBS' is added to make building such binaries with
  'vc140' easier, if needed.

2020-06-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove PERL_PATH

  Doxygen since version 1.8.0 does not use PERL_PATH and MSCGEN_PATH.

2020-06-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/meson.build: Update for Doxygen >= 1.8.16

  Doxygen 1.8.16 and later does not store tag file names in the html files.
  This requires changes in meson.build and in doc-install.pl (in mm-common).
  Otherwise references to other modules won't be updated in the html files
  when they are installed.

2020-06-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README: Update with instructions for building gtkmm

2020-05-18  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Remove pkg-ver.mak

  That file is generated and was added to the repository by accident.

2020-05-15  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson: Fix building when gendef.exe is used

  When gendef.exe is used, the gtkmm library must link to the gdkmm library, as
  we do when gendef.exe is not used.  Also, make sure that we do apply
  '-DGDKMM_USE_GENDEF' and '-DGTKMM_USE_GENDEF' as necessary

2020-05-15  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Support building from Meson-generated tarballs

  Make the build files look for the sources in untracked/ when needed.  One may
  need to run 'nmake /f Makefile.vc CFG=<CFG> prep-git-build' prior to building.

2020-05-15  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson: Use '-utf-8' for the the MSVC C compiler

  We are also generating a GResource C file that will be compiled, so also use
  the -utf-8 compiler flag for the C compiler too

2020-05-15  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson: Fix linking demos and tests on Visual Studio

  GTK (and therefore gtkmm) applications require a linker flag
  '-entry:mainCRTStartup' if building with 'gui_app' is set to be true (which
  means, we are using /subsystem:windows in the linker flags on Visual Studio)
  unless a WinMain() is defined in the individual application's sources.
  
  This fixes the build of such programs by adding this linker flag where it is
  needed.

2020-05-15  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson: Ignore more warnings on Visual Studio

  We can safely ignore warnings C4251, C4273 and C4275 as we are sure that we
  want to use __declspec(dllimport) on the libraries that we depend upon, and
  even with the C++11 versions, we are basically tied to the same CRT as Visual
  Studio 2015 or later is required to build the C++11 branches of the the -mm
  dependencies fully.
  
  We can also ignore warning C4805 since a 'gboolean' is defined to mimic a
  'bool'.

2020-05-15  Chun-wei Fan  <fanchunwei@src.gnome.org>

  [gdk|gtk]mmconfig.h.meson: Define [GDK|GTK]MM_API appropriately

  Like in the [gdk|gtk]mmconfig.h.in files, we want to put the definitions of
  [GDK|GTK]MM_API in there appropriately, so that we may be able to build without
  gendef.exe

2020-05-15  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson: Clean-up and fix dependency search

  Since we have Meson build files for the C++ dependencies, just use the normal
  dependency search via pkg-config for all the -mm dependencies.  This also
  includes looking for atkmm, unless we request not to.
  
  We do, however, want to look for gtk+-unix-print-3.0 only if we are not
  building on Windows (at least), becuase there is no way that it will be there
  on Windows.
  
  Also clean up the parts where we decide whether to build gdkmm/gtkmm as a
  shared library directly without using gendef.exe.

2020-05-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add support for building gtkmm with Meson

  gtkmm-3.0 can be built with either Autotools or Meson.
  New files have been copied from glibmm-2.4 and atkmm-1.6 and modified.
  
  See MR !24

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Ignore warning C4273

  We are likely using the dll-interface for our builds here, which we know pretty
  well, so we can just ignore this warning here too, as our builds here are tied
  to the CRT version

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Export symbols without gendef if possible

  We check to see whether we have a new-enough gmmproc that is capable of
  generating the headers from the .hg templates with function decorations
  at places where they need to be.  If it is, we skip building gendef and
  use __declspec(dllexport) to export the needed symbols.
  
  Otherwise, we continue to use gendef.exe to export symbols, as we did
  before.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gtk/gtkmm/*.h: Mark functions with GTKMM_API

  If gmmproc is new enough to generate the full sources from the .hg files
  with GTKMM_API applied to all applicable places, we can use this to
  export symbols without the need to use gendef.exe.
  
  The build-time check to check if gmmproc is new enough will be in an
  upcoming commit.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gtk/src/*.hg: Mark classes and functions with GTKMM_API

  Mark all the classes and methods/functions (if applicable) with
  GTKMM_API so that we can use it to export symbols, if gmmproc is new
  enough to apply GTKMM_API to the _WRAP_ENUM, _WRAP_GERROR, _WRAP_EQUAL*
  and _CLASS_* items.
  
  The check on whether gmmproc is new enough will be in an upcoming
  commit.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  tools/m4/class_gtkobject.m4: Allow applying decorations

  This updates the _CLASS_GTKOBJECT m4 macro so that we can decorate the
  declarations of classes and wrap functions with decorations so that we
  can use them to export symbols via defining those decorations with
  compiler directives.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gdk/gdkmm/*.h: Mark functions with GDKMM_API

  If gmmproc is new enough to generate the full sources from the .hg files
  with GDKMM_API applied to all applicable places, we can use this to
  export symbols without the need to use gendef.exe.
  
  The build-time check to check if gmmproc is new enough will be in an
  upcoming commit.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gdk/src/*.hg: Mark classes and functions with GDKMM_API

  Mark all the classes and methods/functions (if applicable) with
  GDKMM_API so that we can use it to export symbols, if gmmproc is new
  enough to apply GDKMM_API to the _WRAP_ENUM, _WRAP_GERROR and _CLASS_*
  items.
  
  The check on whether gmmproc is new enough will be in an upcoming
  commit.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gtk/gtkmmconfig.h.in: Re-organize GTKMM_API definitions

  This way, we can update the public headers and use this macro to export
  symbols without using gendef if the classes and methods are marked
  adequately.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gdk/gdkmmconfig.h.in: Add GDKMM_API

  This enables us to use this macros later in public headers so that we
  can export symbols from the DLLs using compiler directives, instead of
  gendef, if we marked classes and APIs/methods sufficiently.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix previous commit on /utf-8

  The previous commit only meant "Visual Studio 2017 or later", where it should
  have been "Visual Studio 2015 or later".  Doh :|

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix build rules

  Make sure that the cmd.exe 'if not...' statements are correct.

2020-05-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Use /utf-8 if available

  This flag is provided on Visual Studio 2015 and later, so that it will help to
  work around unicode handling issues that occur when building on East Asian
  locales, that is demonstrated by error/warning C4819.
  
  Disabling warning C4828 is meant for gendef.exe, which comes as a consequence
  of using /utf-8.

2020-05-10  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gtk/gtkmm/filelist.am: Remove border.h

  border.h and border.cc are generated files since about 10 years.
  border.hg is listed in gtk/src/filelist.am.

2020-05-10  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/images/stock: Remove .svg files

  There are about 200 unused .svg files. Remove them. Stock items are
  deprecated. They are removed in gtk4 and gtkmm4.
  
  When Meson support is added, and tarballs are created with 'ninja dist',
  all files stored in git will be included in the tarballs unless
  removed by a custom command. It's easier to remove unused files
  from the git repo.

2020-05-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix build with X11 backend disabled

  * configure.ac:
  * gdk/gdkmmconfig.h.in: Define GDKMM_X11_BACKEND_ENABLED if X11 API
  shall be built.
  * gtk/src/plug.hg:
  * gtk/src/socket.hg: Enable in wrap_init.cc if GDKMM_X11_BACKEND_ENABLED
  is defined. (Was enabled if GDK_WINDOWING_X11 was defined.)
  
  This was partly fixed 8 years ago. See Bugzilla #678883. But it failed if
  the X11 backend was available in gtk, but X11-only code shall still not
  be built in gtkmm. (configuration with --enable-x11-backend=no)

2020-05-06  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Allow linking to more Meson-built items

  atkmm and cairomm recently gained Meson build files, so add their libary
  and DLL names to the NMake Makefiles so that we can easily link to them
  when we use USE_MESON_LIBS in the NMake command line.

2020-05-06  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Avoid an Internal Compiler Error

  On Visual Studio 2015 32-bit, the compiler crashes while building
  gtkmm3-demo with /EHsc enabled, so disable that if we are on Visual
  Studio 2015 32-bit.

2020-04-13  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix test program build rules

  We want to make sure that we really do re-link the test programs if either
  or both of gdkmm and gtkmm were rebuilt.
  
  Also, remove repeated use of /wd4275, since we are using that throughout
  the build of gtkmm.

2020-04-10  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Mention about the 'prep-git-build' target

  Let people know how it may be used to build from GIT checkouts.

2020-04-10  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix headers 'install'

  The previous update accidentily removed the parts where we copy the
  deprecated header files, so we want to restore that.
  
  We also want to streamline whether we copy the deprecated hand-written
  headers by whether we include deprecated items in the build.

2020-04-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Update build info

  Tell people about the build options USE_MESON_LIBS and
  GMMPROC[_PANGO|_ATK]_DIR.

2020-04-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Support linking to Meson-built -mm deps

  This makes it easier for people that want to build dependencies with
  Meson as far as possible, by adding an USE_MESON_LIBS NMake option.
  
  Note that by using USE_MESON_LIBS at this time of writing, libsigc++,
  glibmm and pangomm should be built by Meson, and atkmm and cairomm
  should also link to the Meson-built variants of glibmm and libsigc++ as
  well (as atkmm and cairomm do not yet have Meson build files).

2020-04-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Speed up builds

  Just use 'md' to create the intermediate build directories, so that we
  do not need to re-load NMake Makefile stuff that often, so this should
  make things build faster.
  
  This also enables us to clean up generate-msvc.mak as well.

2020-04-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix 'nmake tests'

  Make sure that we have all the rules for the various test programs
  that are listed by their directories in $(srcroot)/tests

2020-04-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix up 'nmake clean'

  Look instead for the build directories by using the dirname's in
  $(srcroot)/tests, and constructing the IntDir paths from them.

2020-04-06  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Silence some warnings

  Enable /EHsc so that we do not receive warning C4577 for constexpr
  usage.
  
  Also disable warnings C4251 and C4275 as they relate to whether we are
  using __declspec(dllimport) for the public symbols in the glibmm
  headers, when building against glibmm 2.64.0 or later.  Since we know
  what we are indeed going to use __declspec(dllimport) as we build against
  glibmm 2.64.0 or later, we can just ignore those warnings.

2020-04-06  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Add rules to generate sources

  This way, we are now able to build directly from a GIT checkout by first
  running the 'prep-git-build' target before running the NMake build
  itself.
  
  This will require PERL (with XML::Parser) and some common UNIX utilities
  such as 'cp' and 'rm' in order to run gmmproc from glibmm.  Note that
  the m4 files for atkmm and pangomm used for their code generation are
  required as well.

2020-04-06  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Add rules to generate versioned items

  This adds rules to generate [gdk|gtk]mm/[gdk|gtk]mm.rc and
  [gdk|gtk]mm/[gdk|gtk]mmconfig.h from their .in counterparts by reading
  from configure.ac.

2020-04-06  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Separate OutDir and IntDir by PDB version

  This way, we reduce the likelyhood that object files built by different
  toolset versions get mixed up with the ones built by other toolset
  versions, which can well be a source of trouble.

2020-04-05  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Standardize on PDB version

  Make the default prefix relate to the PDB version, not the Visual Studio
  version.  This is becuase the dependent C++-11 -mm libraries already did
  so.

2020-04-05  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Get rid of references to Vulkan

  Only the master (gtk-4) branch use Vulkan, so we don't need these here.

2020-01-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::TreeView::append_column() doc: Modify the code exmaple

2020-01-18  Pavlo Solntsev  <p.sun.fun@gmail.com>

  Gtk::TreeView::append_column() doc: Add code example

2020-01-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  GLArea demo: Fix a crash

  Fixes #63

2019-12-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the GLArea demo

  Similar fixes have been made to the GLArea demo in gtk.
  The replacement of m_Vao by m_Buffer in some methods has been performed
  only in gtk4, but it would be appropriate to do it also in gtk3.

2019-12-01  Daniel Boles  <dboles@src.gnome.org>

  tests/builder: Test derived props declared in C++,

  by giving DerivedButton one and then setting it in the Builder .ui file.

2019-11-24  Daniel Boles  <dboles.src@gmail.com>

  tests/builder: Default-init members at declaration

  as that is safer than having to remember to default-construct pointers
  in every constructor overload—& getting undefined behaviour if we don’t.

2019-11-24  Daniel Boles  <dboles.src@gmail.com>

  tests/builder: Fix icon_name to const& and shorten

  …the way of declaring that it should default to a default-init’d string.
  
  It didn’t make sense to pass a const value, so make it a const reference
  as per basically everywhere else that we take string parameters.

2019-11-24  Daniel Boles  <dboles.src@gmail.com>

  gtk-demo/demowindow—Don't use C++14 auto deduction

  I broke this in 152fe12c6fe2960c98665c488d6d48a1d9e11f8b back in 2017 :O
  It seems it only got noticed now I set warnings as errors & `make check`
  
  >>>
  /home/daniel/jhbuild/checkout/gnome/gtkmm-3/demos/gtk-demo/demowindow.cc:54:1:
  error: ‘demo_columns’ function uses ‘auto’ type specifier without trailing return type
     54 | const auto& demo_columns()
        | ^~~~~
  /home/daniel/jhbuild/checkout/gnome/gtkmm-3/demos/gtk-demo/demowindow.cc:54:1:
  note: deduced return type only available with ‘-std=c++14’ or ‘-std=gnu++14’
  >>>

2019-11-19  Daniel Boles  <dboles.src@gmail.com>

  Button: Explain how to unset image via prop proxy,

  since without being able to add ABI we cannot add unset_image() for that
  
  https://gitlab.gnome.org/GNOME/gtkmm/issues/58
  https://gitlab.gnome.org/GNOME/gtkmm/merge_requests/22#note_650284

2019-11-19  Daniel Boles  <dboles.src@gmail.com>

  Button: Remove mentions of NULL args @ set_image()

  ...by copying the documentation generated from the C docs and fixing it
  up, because neither a string nor a Widget& in C++ can be NULL/nullptr.
  
  The documentation as generated and previously left in the .h file was:
  
  >>>
  ```cpp
    /** Set the image of @a button to the given widget. The image will be
     * displayed if the label text is <tt>nullptr</tt> or if
     * Gtk::Button::property_always_show_image() is <tt>true</tt>. You don’t have to call
     * Gtk::Widget::show() on @a image yourself.
     *
     * @newin{2,6}
     *
     * @param image A widget to set as the image for the button, or <tt>nullptr</tt> to unset.
     */
  ```
  >>>
  
  https://gitlab.gnome.org/GNOME/gtkmm/issues/58
  https://gitlab.gnome.org/GNOME/gtkmm/merge_requests/22

2019-11-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Avoid unnecessary conversions between std::string and Glib::ustring

  and make necessary conversions explicit.

2019-11-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Application, Window: Improve some documentation

  Improve the description of Application::add_window() and
  Window::set_application(), making it clear that they differ as to what
  happens when a window is hidden.
  
  Fixes #56

2019-10-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

