2022-03-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  4.0.2

2022-03-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update README

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

  Meson build: Add allow-network-access option

  If false, xmllint and xsltproc are not allowed to fetch files
  over the network, and gtkmm-documentation requires the docbook5-xml
  and docbook-xsl packages (Ubuntu names, can have other names in
  other distros).

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

  Meson build: Don't use gnome.yelp()

  In Meson >= 0.61.0, gnome.yelp() can't be used on a generated
  XML file. See https://github.com/mesonbuild/meson/issues/10017

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

  CI: Install meson == 0.56.0

  The latest version of gnome.yelp() does not work with a generated
  XML input file (index.docbook, generated from index-in.docbook).

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

  CI: Install meson >= 0.56.0

2022-02-19  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.

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

  CI: Install docbook-style-xsl

  If docbook-style-xsl is installed, the xsltproc command reads stylesheets
  from local files instead of http://docbook.sourceforge.net.
  Faster and safer. Reading from docbook.sourceforge.net sometimes fails.

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

  "The .hg and .ccg files" section: Describe 'ignore_deprecations'

  ignore_deprecations is a new optional argument in _WRAP_METHOD().

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

  index-in.docbook: Recommend Meson instead of Autotools

  Modify
    2.2 "Installation", "Unix and Linux"
    3.2 "Basics", "Headers and Linking"
    25.1 "Internationalization and Localization", "Preparing your project"
    28 "Recommended Techniques"
  Describe building with Meson more, and building with Autotools less.

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

  docs/tutorial, Meson config: Check if xmllint can be used

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

  CI: Install the docbook5-schemas when validating

  Necessary after the upgrade to DocBook 5.0.

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

  Upgrade from DocBook 4.5 to DocBook 5.0

2021-09-15  DarkTrick  <notebook22312@gmail.com>

  PO-files: added: why `fuzzy` tag appears.

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

  CI: Run ninja install

  Translations are built only when the tutorial is installed.
  All documentation files are copied to one directory when the
  tutorial is installed, making it easy to move all necessary files
  to the public/ directory.

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

  CI: Fix the deploy stage

  See !13

2021-08-01  Emmanuele Bassi  <ebassi@gnome.org>

  Add a CI pipeline for building, validating, and publishing

  We run the build using Meson, split into three stages:
  
   - validation
   - build
   - deployment
  
  The validation phase runs the build with -Dvalidation=true; the build
  phase runs the build with just the HTML generation and without
  translations, for the moment; the deployment phase takes the build
  artifacts and publishes them on the GitLab pages space for the project.

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

  Python scripts: Specify file encoding

  The default file encoding is platform dependent in Python.
  Better specify encoding when text files are read or written.

2021-07-16  CCTV-1  <script.tar.gz@gmail.com>

  fix:some translations could not merge .

2021-07-16  CCTV-1  <script.tar.gz@gmail.com>

  fix some error(from msgfmt).

2021-07-16  CCTV-1  <script.tar.gz@gmail.com>

  translate changes.

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

  Update the Basics chapter

  Fixes #15

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

  Main menu example: Make the keyboard shortcuts work

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

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

  * meson.build: Call add_dist_script() in a subproject, if
  meson.version() >= 0.58.0.
  * tools/meson_aux/extra-dist-cmd.py: Use MESON_PROJECT_DIST_ROOT if it
  exists, else MESON_DIST_ROOT. It exists if meson.version() >= 0.58.0.

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

  index-in.docbook: Update the link to the DTD file

  Fixes #14

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

  4.0.1

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

  Update the others/dnd example program

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

  docs/tutorial/C/figures: Remove unused figures, update some figures

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

  tools/make_screenshots: Update and translate to Python

  Replace the Perl and shell scripts by a Python script.
  Update the list of example programs to run.

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

  Update Assistant example program

2021-01-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update Builder ui files and AboutDialog example

  * examples/book/builder/basic/basic.glade:
  * examples/book/builder/derived/derived.glade:
  * examples/book/menus/main_menu/examplewindow.cc:
  * examples/book/menus_and_toolbars/toolbar.glade:
  * examples/book/printing/advanced/examplewindow.cc:
  * examples/book/printing/simple/examplewindow.cc: Remove <requires>
  elements. They make it difficult to use either e.g. gtk 3.98 or 4.0.
  You have to choose one major version or the other.
  * examples/book/dialogs/aboutdialog/examplewindow.cc:
  Simplify the call to set_logo().

2021-01-13  Daniel Mustieles  <daniel.mustieles@gmail.com>

  Update Spanish translation

2021-01-12  CCTV-1  <script.tar.gz@gmail.com>

  update the translation of the modified text.

2021-01-12  CCTV-1  <script.tar.gz@gmail.com>

  translate appendix G.

2021-01-10  CCTV-1  <script.tar.gz@gmail.com>

  translate appendix F.

2021-01-09  CCTV-1  <script.tar.gz@gmail.com>

  translate appendix E.

2021-01-09  CCTV-1  <script.tar.gz@gmail.com>

  translate appendix D.

2021-01-09  CCTV-1  <script.tar.gz@gmail.com>

  translate appendix C.

2021-01-08  CCTV-1  <script.tar.gz@gmail.com>

  translate appendix B.

2021-01-08  CCTV-1  <script.tar.gz@gmail.com>

  translate appendix A.

2021-01-08  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 30.

2021-01-08  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 29.

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

  "The .hg and .ccg files" section: Don't mention removed classes

  Update the examples in this section to show gtkmm4 rather than gtkmm3.
  
  Update names of enum constants in the "Printing" chapter.

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

  Avoid a translation problem with <programlisting>

  * docs/tutorial/C/index-in.docbook:
  Avoid <programlisting> elements within <para> elements.
  In some situations (not quite clear exactly which situations)
  the translation tools (itstool and friends) can't create translated
  index.docbook files if a <programlisting> element occurs in
  a <para> element. See MR !11

2021-01-07  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 28.

2021-01-06  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 27.

2021-01-06  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 26.

2021-01-05  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 25.

2021-01-04  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 24.

2021-01-04  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 23.

2021-01-04  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 22.

2021-01-04  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 21.

2021-01-03  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 20.

2021-01-02  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 19.

2021-01-02  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 18.

2021-01-02  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 17.

2021-01-01  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 16.

2020-12-31  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 15.

2020-12-31  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 14.

2020-12-30  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 13.

2020-12-30  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 12.

2020-12-30  CCTV-1  <script.tar.gz@gmail.com>

  fix typo and format file.

2020-12-30  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 11 and update some translation.

2020-12-29  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 10

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

  Meson build: Don't require gtkmm unconditionally

  Require gtkmm and giomm only if build-examples=true
  or a tarball is being built.

2020-12-27  CCTV-1  <script.tar.gz@gmail.com>

  format file

2020-12-27  CCTV-1  <script.tar.gz@gmail.com>

  translate chapter 9,fix merge error.

2020-12-24  CCTV-1  <script.tar.gz@gmail.com>

  fix invalid control sequence

2020-12-24  CCTV-1  <script.tar.gz@gmail.com>

  translate some chapter and fix syntax error.

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

  Update the Working with gtkmm's Source Code appendix

  Remove a dead link. Update some jhbuild info. Mention gnome-build-meta.

2020-12-23  CCTV-1  <script.tar.gz@gmail.com>

  update existing simplified chinese translation

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

  4.0.0

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

  Change GTK+ to GTK

  and add a note that not everything has been updated to gtkmm4.

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

  Refer to README files for building with Meson

  and suggest filing GitLab issues and merge requests.

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

  Use glibmm-2.68 instead of glibmm-2.66

  We have changed the ABI name in glibmm.

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

  Remove the FileChooserButton example

  Gtk::FileChooserButton has been removed from gtkmm.

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

  docs/tutorial/Makefile.am: Modify for Infrastructure/damned-lies

  * docs/tutorial/Makefile.am: Include help-files.am.
  * docs/tutorial/help-files.am: New file.
  
  A better fix for suiting damned-lies. Depends on a recent patch in
  damned-lies. See Infrastructure/damned-lies#58

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

  docs/tutorial/Makefile.am: Try to adapt to Infrastructure/damned-lies

  Infrastructure/damned-lies is confused by gtkmm-documentation's
  HELP_FILES = index.docbook, where the specified file is not stored
  in the git repo. Try to make it create a .pot file from the existing
  index-in.docbook.
  
  This is a crazy workaround for an old bug. Even if it works now,
  it may fail after even the slightest modification of
  Infrastructure/damned-lies/stats/utils.py.
  See Infrastructure/damned-lies#58 and gtkmm-documentation#13

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

  Improve the builder examples

  Read the .glade file in a Gio::Application::signal_activate() handler.

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

  Use Gtk::Application::make_window_and_run()

  and other necessary changes after recent changes in gtk and gtkmm.

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

  Autotools build: Distribute docs/tutorial/insert_example_code.py

  Should have been done when Meson build dropped the dependence on Perl.

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

  Update the "gtkmm and Win32" appendix

  Links in the patch added by Kjell Ahlstedt.
  Fixes #4

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

  Meson build: Drop dependence on Perl

  * tools/tutorial/insert_example_code.py: New Python file, equivalent to
  the insert_example_code.pl Perl file.
  
  The Perl file is still used when building with Autotools.

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

  Meson build: Exclude some git-tracked files from tarballs

  and use 'with' in Python code when files are opened.

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

  Update after Gtk::RadioButton has been removed

  The RadioButton class has been removed. CheckButtons and ToggleButtons
  act as radio buttons, if they make up a group.
  Update example programs and the Buttons chapter.

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

  Remove description of Gtk::Container

  Gtk::Container has been removed. Describe that most container widgets
  now derive directly from Gtk::Widget. Gtk::Container::add() has been
  replaced by Gtk::Box::append() and other methods.

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

  Describe how to build a multi-threaded program

  Fixes #12

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

  input example: Don't include build/config.h

  The configuration with Autotools or Meson sets the compiler
  option -DDONT_HAVE_MKFIFO=1, if mkfifo() does not exist.
  Meson does not create build/config.h.
  This makes life easier for those who build with their own
  Makefile or CMake file or whatever.
  Fixes #11

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

  entry/completion example: Remove actions

  and other changes due to changes in gtk and gtkmm.
  
  * configure.ac:
  * meson.build: Don't disable deprecated atkmm API. Gtkmm does not
  depend on atkmm any more.
  * examples/book/buildapp/step[5-9]/prefs.ui: Rename some
  Gtk::GridLayout properties.
  * examples/book/entry/completion/examplewindow.[cc|h]: Remove actions.
  Gtk::EntryCompletion does not handle actions.
  * examples/others/cellrenderercustom/cellrendererpopup.cc:
  Don't use the removed Gdk::Display::get_default_group().

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

  Update the Building applications chapter

  Update similarly to the description in docs/reference/gtk/getting_started.md
  in the GTK module. Update the figures.

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

  Describe how the mm-common/skeletonmm project is built with Meson

  Appendix G. Wrapping C Libraries with gmmproc: Describe how the
  skeletonmm project is built with Meson (was Autotools).

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

  The .hg and .ccg files section: Remove description of CHILD_PROPERTY

  There are no child properties in gtk4 and gtkmm4.

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

  index-in.docbook: Don't try to show removed app_menu.ui file

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

  Fix clipboard example programs

  and some other example programs.
  
  * examples/book/buildapp/step9/exampleappwindow.cc:
  * examples/book/buildapp/step9/window.ui: Show window icon.
  * examples/book/buttons/radiobutton/radiobuttons.cc: Only one pressed
  button when the program starts up.
  * examples/book/clipboard/ideal/examplewindow.[cc|h]:
  * examples/book/clipboard/simple/examplewindow.[cc|h]: Store copied text
  until someone has a chance to paste it.
  * examples/book/treeview/filter_modify/examplewindow.cc: Fix some TODO
  comments.

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

  examples/book/buildapp: Update Makefile.am and Makefile.example

  Should have been done in the previous commit when app_menu.ui files
  were removed.

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

  examples: Don't use application menus

  Application menus have been removed from gtk and gtkmm.
  Use window menus (menubars).
  
  * examples/book/buildapp: Remove all app_menu.ui and move the menu items
  to gears_menu.ui. (Move from application menu to window menu.)
  * examples/book/application: Rename app_and_win_menus to menubar.
  * examples/book/menus/main_menu/exampleapplication.cc:
  Use ApplicationWindow::set_show_menubar().

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

  example programs: Use Glib::make_refptr_for_instance() in create()

  create() methods that return a Glib::RefPtr must use
  Glib::make_refptr_for_instance().

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

  examples/others/*: Update some examples after Gtk::Container was removed

  This commit fixes example programs in examples/others/*.
  All these programs can be compiled and linked with the latest gtkmm and a
  gtk from May 22. They are not guarateed to work.

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

  examples/book/[o-z]*: Update some examples after Gtk::Container was removed

  This commit fixes example programs in examples/book/[o-z]*.
  (Actually there are programs only in the interval [p-u].)
  All these programs can be compiled and linked with the latest gtkmm and a
  gtk from May 22. A few programs do not work fully.

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

  examples/book/[e-n]*: Update some examples after Gtk::Container was removed

  This commit fixes example programs in examples/book/[e-n]*,
  i.e. subdirectories with names beginning with e through n, inclusive.
  All these programs can be compiled and linked with the latest gtkmm and a
  gtk from May 22. A few programs does not work fully.

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

  examples/book/[cd]*: Update some examples after Gtk::Container was removed

  Gtk::Bin, Gtk::Container and Gtk::Dialog::run() have been removed.
  This removal affects most example programs. This commit fixes
  example programs in examples/book/[cd]*, i.e. subdirectories with names
  beginning with c or d.
  Some of these examples contain dialogs. Modal dialogs became more
  complicated when gtk_dialog_run() and Gtk::Dialog::run() were removed.

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

  examples/book/[ab]*: Update some examples after Gtk::Container was removed

  Gtk::Bin, Gtk::Container and Gtk::Dialog::run() have been removed.
  This huge removal affects most example programs. This commit fixes
  example programs in examples/book/[ab]*, i.e. subdirectories with names
  beginning with a or b.

2020-04-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Update for latest gtkmm4 (remove Gtk::ShadowType, etc.)

  * examples/book/label/examplewindow.cc: Label::set_pattern() is replaced
  by Pango markup to get underlined text.
  * examples/book/popover/examplewindow.[cc|h]: The ToggleButton has been
  replaced by a MenuButton. gtk_get_current_event() has been removed in gtk,
  which made it more difficult to decide where to show a Popover when
  a day is selected.
  
  Minor changes in several other example programs.

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

  Keyboard events example: Update a ModifierType mask

  Gdk::ModifierType::MOD1_MASK has been renamed to ALT_MASK.

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

  Meson build: Set default value of the 'warnings' option to 'min'

  And add 'dist-warnings' with default value 'fatal'. It's used when a
  tarball is tested by 'ninja dist' or 'meson dist'.

2020-03-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Use glibmm-2.66 instead of glibmm-2.64

  We have changed the ABI name in glibmm.

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

  examples: Update for latest gtkmm4 (remove property_margin(), etc.)

  * examples/book/drag_and_drop/dndwindow.[cc|h]:
  * examples/others/dnd/dndwindow.[cc|h]: Drag-and-drop has been modified
  in gtk and gtkmm. These DnD examples can now be compiled, but they don't
  fully work. Neither does tests/testdnd.c in gtk.
  
  Widget::property_margin() and property_expand() have been removed.
  It affects many .ui files and ui_info strings.

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

  examples: Update for latest gtkmm4 (no Gdk::EventButton, etc.)

  * examples/book/buttons/filechooserbutton/examplewindow.cc:
  Don't use removed Gtk::FileChooser::set_local_only().
  * examples/book/dialogs/filechooserdialog/examplewindow.cc:
  * examples/book/dialogs/filechoosernative/examplewindow.cc:
  * examples/book/recent_files/examplewindow.cc:
  Use FileChooser::get_file() instead of removed get_filename().
  * examples/book/drag_and_drop/dndwindow.[cc|h]:
  Use Gtk::DragSource::signal_prepare() instead of removed
  Gdk::ContentProvider::create() with callback function.
  * examples/book/infobar/examplewindow.cc: Use Gtk::Container::add()
  instead of removed Gtk::InfoBar::get_content_area().
  * examples/book/popover/examplewindow.cc: Don't cast the Gdk::Event to a
  subclass. Gdk::Event does not have subclasses now.
  * examples/book/treeview/drag_and_drop/treemodel_dnd.[cc|h]:
  Gtk::TreeDragDest::row_drop_possible_vfunc() has got a changed signature
  (Glib::ValueBase& instead of Gtk::SelectionData&).
  * examples/others/cellrenderercustom/cellrendererpopup.cc:
  * examples/others/cellrenderercustom/popupentry.cc:
  * examples/others/dnd/dndwindow.cc: The Gtk::Window ctor has no
  WindowType argument.

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

  3.97.1

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

  Update for gtk 3.98.0 and gtkmm 3.97.1

  * configure.ac:
  * meson.build: Require gtkmm >= 3.97.1
  * Examples with toolbars: Replace removed Toolbar and *ToolButton
    by Box and *Button.
  * examples/book/update_ui/examplewindow.cc: Replace
    Gtk::Main:events_pending() and iterator() by Glib::MainContext::pending()
    and MainContext::iteration().
  * examples/others/calendar/calendar.cc: Use Gtk::Calendar::set_show_heading()
    etc. instead of the removed Calendar::DisplayOptions.
    Use Glib::DateTime instead of Glib::Date.

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

  Update some buildapp examples

  Use Gtk::IconTheme::get_for_display() instead of the removed get_default().
  Don't use the removed use-popover property in window.ui.

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

  examples/meson.build: Don't use the bash command

  The bash command may not be available, e.g. in Windows.
  Use python instead of bash in 'ninja examples'.

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

  Update drag-and-drop examples

  Use Gtk::DragSource and DropTarget.

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

  examples: Update to latest gtkmm4 (removed Gtk::Menu, etc.)

  Use Gtk::PopoverMenu and Gtk::PopoverMenuBar instead of the removed
  Gtk::Menu and Gtk::MenuBar.

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

  Add examples/book/treeview/custom_treemodel

  See https://mail.gnome.org/archives/gtkmm-list/2019-December/msg00014.html
  Fixes #9 (Danny van Elsen)

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

  Change git.gnome.org to gitlab.gnome.org

  * docs/tutorial/C/index-in.docbook: Change URLs.
  * docs/tutorial/insert_example_code.pl: Don't add url_examples_branchsuffix.
  The branch is not a suffix in gitlab, it's included in url_examples_base.

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

  examples: Replace Glib::Exception by Glib::Error

  Glib::Exception has been removed. See glibmm#23.

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

  Update description of some gmmproc macros

  The .hg and .ccg files section: Update the description of _CUSTOM_CTOR_CAST
  and _CUSTOM_MOVE_OPERATIONS.

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

  book/menus/popup/examplewindow: new => unique_ptr

  Close https://gitlab.gnome.org/GNOME/gtkmm-documentation/merge_requests/7#note_655543

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

  Redo odd wording @ RadioBut.set_group(get_group())

  constness isn't the issue here; rather it is the value class of the
  argument of set_group(). That method needs an lvalue reference as it
  modifies the Group by adding the RadioButton to it. That's why we can't
  `rb2.set_group( rb1.get_group() )`. But we can store the Group returned
  by get_group() in a variable and then pass that to set_group() calls.
  Not that there is much reason to, given join_group(), but it works fine.
  
  Then I got carried away and added a program listing showing it
  working... which, while mostly superfluous, does provide a nice
  opportunity to explain briefly that RadioButtonGroup is a handle type,
  meaning that it can be declared automatically and discarded by RAII
  without worrying about thusly releasing the RadioButtons from itself.
  That then informs readers for the next example that creates a new Group.
  
  This is the first use of either "lvalue" or "rvalue" in the docbook!
  That's either a good thing or a slippery, slippery slope to start on...
  
  Close https://gitlab.gnome.org/GNOME/gtkmm-documentation/merge_requests/6

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

  Drop pointless/confusing class around RadioButtons

  The 2nd example seems to have been trying to be like the 1st, which put
  the 3 RadioButtons in a subclass of Window, for no real reason since
  they were never then added to said Window... but the 2nd omitted to
  declare its members and instead declared new local variables in the
  constructor with m_ prefixes, which were managed unlike the 1st example!
  
  Just drop all of that. There's no clear reason to use a containing class
  here. By not doing so, we can present both examples in a comparable way.
  
  Close https://gitlab.gnome.org/GNOME/gtkmm-documentation/merge_requests/6

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

  docb: Don't recommend `new` for an in-class member

  Instead, recommend an std::unique_ptr, which will destroy it via RAII,
  rather than requiring that the user remember to `delete` it and have to
  define a non-trivial destructor just to do that, which is just busywork.
  
  Close https://gitlab.gnome.org/GNOME/gtkmm-documentation/merge_requests/7

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

  Builder: Using derived widgets: Update for glibmm…

  …2.62, which as of Kjell’s simply epic recent commits, now supports us
  setting custom properties of gtkmm-derived widgets in .ui files for
  Builder. Also, slightly elaborate the bit about why you would want to!
  
  I also be optimistic here and presume that such properties could be made
  editable in Glade by using a custom catalog and property classes,
  though my Glade-fu is weak, so I can only hope I'm inferring that right.
  
  Close https://gitlab.gnome.org/GNOME/gtkmm-documentation/merge_requests/5

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

  Assign to mem from get_widget() in ctor init list,

  because that avoids it pointlessly having a transient value of nullptr.

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

  Make conversions between std::string and Glib::ustring explicit

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

  buildapp: Update description of Gtk::Window::set_application()

  * examples/book/buildapp/step[1,2,4,5]/exampleapplication.cc: Update the
  comment in create_appwindow() that describes Gtk::Application::add_window()
  and Gtk::Window::set_application(). Now they behave the same
  as a result of issue gtkmm#56.

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

  docs/tutorial/insert_example_code.pl: Add an error message

  Print a message to stderr when a file can't be opened.

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

  examples/book/buildapp/step1/install-cmd.py: Minor improvement

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

  examples/book/buildapp: exampleapp.desktop -> exampleapp.desktop.in

  step1/exampleapp.desktop was renamed to exampleapp.desktop.in in the
  previous commit, but the filename was not changed everywhere.

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

  Makefile.am: Distribute files needed when building with Meson

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

  examples/book/buildapp: Replace shell script with Python script

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

  tools/meson_aux: Replace shell scripts with Python scripts

  Python scripts can be used on all operating systems where Meson
  can be used. Shell scripts are restricted to Unix-like systems.

2019-09-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Use glibmm-2.64 instead of glibmm-2.62

  We have changed the ABI name in glibmm.

2019-09-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Gtk::Label::set_line_wrap() -> set_wrap()

2019-09-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Several minor improvements

  Use the / operator instead of join_paths().
  Directory paths for installation are relative to {prefix} instead of absolute.
  Don't call meson.add_dist_script(), if it's a subproject.
  Use MESON_DIST_ROOT in extra-dist-cmd.sh.

2019-08-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/meson_aux: Use short options for some commands

  Posix does not support long options for the cp, rm and mkdir commands.
  See mm-common!1

2019-08-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Shell scripts: Don't hard-code the path of bash

  bash isn't always installed in /bin. Scripts which don't require bash
  to work are converted to use sh, while scripts requiring bash features
  are changed to use PATH to find bash.
  
  See the mm-common!1 MR.

2019-07-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Builder chapter: Describe combination with Glib::Property

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

  builder/derived example: Show Gtk::Builder combined with Glib::Property

  Add a DerivedButton that contains Glib::Property members.

2019-06-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Application example: Use Gio::Application::add_option_group()

  * examples/book/application/command_line_handling/exampleapplication.[cc|h]:
  Add some options that demonstrate the use of
  Gio::Application::add_option_group().
  
  See issue glibmm#46

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

  meson.build: *_DISABLED_DEPRECATED -> *_DISABLE_DEPRECATED

2019-06-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Update to latest gtkmm4 (Gtk::GestureClick, etc.)

2019-05-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Builder examples: Remove can_default from the .glade files

2019-05-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  index-in.docbook: Update calls to Gtk::Builder::get_widget()

  and calls to get_widget_derived() and get_object().

2019-05-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Update calls to Gtk::Builder::get_widget()

  and calls to get_widget_derived() and get_object().
  
  widget = get_widget<WidgetType>("name") instead of get_widget("name", widget).

2019-05-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README files: meson is the recommended build system

  * examples/book/buildapp/README:
  * README: meson, not autotools, is now the recommended build system.

2019-05-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove obsolete and redundant README and TODO files

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

  meson.build: "ninja test" builds the example programs

  That's mainly because "ninja dist" shall check that the example programs
  can be built. The dist-warnings and build-dist-examples options are removed.
  It's not safe to try to detect distribution-in-progress the way it was done.

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

  meson.build: Use gnome.yelp()

2019-05-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.95.1

2019-05-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Use Gtk::Window::set_default_widget()

  Use Gtk::Window::set_default_widget() instead of the deleted
  Gtk::Widget::set_can_default() and grab_default().

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

  meson.build: Build PDF file with dblatex

2019-04-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove ChangeLog.pre-3-8-0

2019-04-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the meson.build files and the auxiliary scripts

  meson+ninja can now validate XML files and build a PDF file.

2019-04-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Don't use removed Gdk::Surface::invalidate_rect()

  Use Gtk::Widget::queue_draw() instead of Gdk::Surface::invalidate_rect().
  Use Gtk::CssSection::get_[start|end]_location() instead of
  get_[start|end]_[line|position]().
  Use Gtk::Widget::get_parent()+get_surface() instead of get_parent_surface().
  The replaced methods have been removed from gtkmm4.

2019-04-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  index-in.docbook: Add some <keycap> tags

2019-04-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  index-in.docbook: Fix some validation errors

2019-04-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add meson.build files and auxiliary scripts for meson builds

  This is experimental and incomplete, but hopefully useful.
  See the README file for instructions how to use it.

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

  buildapp examples: Add meson.build files

  * examples/book/buildapp/README: Describe how to build with meson and ninja.
  * examples/book/buildapp/step1/install-cmd.sh:
  * examples/book/buildapp/step[1-9]/meson.build: New files

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

  examples: Update .ui files

  and .glade files, and .cc files with ui strings.

2019-04-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Update for the latest gtkmm-4

  * examples/book/searchbar/examplewindow.[cc|h]:
  Use Gtk::SearchBar::set_key_capture_widget() instead of the removed
  Gtk::SearchBar::handle_event().
  * examples/others/cellrenderercustom/cellrendererpopup.cc:
  * examples/others/cellrenderercustom/popupentry.cc: Don't call the removed
  Gtk::Window::move().

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

  Use glibmm-2.62 instead of glibmm-2.60

  We have changed the ABI name in glibmm.

2019-03-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Update for the latest gtkmm-4

  * examples/book/assistant/exampleassistant.cc:
  Gtk::Assistant::PageType -> Gtk::AssistantPage::Type.
  * examples/book/combobox/entry_complex/examplewindow.[cc|h]:
  * examples/book/combobox/entry_text/examplewindow.[cc|h]:
  * examples/book/headerbar/examplewindow.[cc|h]:
  * examples/others/cellrenderercustom/popupentry.cc:
  Gtk::Entry::signal_activate() has been removed.
  * examples/book/custom/custom_widget/mywidget.cc: Use Gtk::Widget::
  register_surface() instead of the removed Gdk::Surface::set_user_data().

2019-03-07  Piotr Drąg  <piotrdrag@gmail.com>

  Fix broken XML tags in Czech help translation

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

  Update Multiple-Item Containers section

  Gtk::Box::pack_start(), pack_end() and Gtk::ButtonBox have been removed.
  Minor updates of other parts of the tutorial due to the removal of
  pack_start() and pack_end().

2019-02-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Use Gtk::Box instead of Gtk::ButtonBox

  And remove the ButtonBox example.

2019-02-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the book/buildapp examples

2019-02-06  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Use Gtk::Container::add() instead of Gtk::Box::pack_start()

2019-01-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Appendix G: Update the description of _WRAP_ENUM

  Add description of the gtype_func and CONV_TO_INT arguments.

2018-12-16  Andre Klapper  <a9016009@gmx.de>

  Comment invalid <category> in DOAP file to pass git pre-receive hook

2018-11-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the keyboard_events/propagation example

  Show what happens in the three event propagation phases.
  Event propagation in gtk+4 is different from event propagation in gtk+3.

2018-11-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the "Changes in gtkmm-4.0 and glibmm-2.60" chapter

2018-11-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update custom and treeview_popup examples

  * examples/book/custom/custom_container/mycontainer.[cc|h]:
  * examples/book/custom/custom_widget/mywidget.[cc|h]: on_size_allocate() now
  takes two ints instead of one Gtk::Allocation.
  * examples/book/treeview/popup/treeview_withpopup.[cc|h]: Replace on_event()
  by a Gtk::GestureMultiPress instance.

2018-11-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix the listmodel example

  MyObject::create() must call Glib::make_refptr_for_instance().

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

  Replace most Gtk::manage() calls with Gtk::make_managed()

2018-11-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Create only .tar.xz tarballs

  * configure.ac: This is what ftp.gnome.org wants, so this avoids
  it doing any repackaging. This is what gtkmm does.

2018-11-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Use glibmm-2.60 instead of glibmm-2.58

  We have changed the ABI name in glibmm.

2018-11-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Avoid '<' and '>' in code snippets in the docbook file

  Use &lt; and &gt; except in CDATA sections.

2018-11-07  Daniel Boles  <dboles.src@gmail.com>

  Use auto more, removing lots of verbose type noise

2018-11-07  Daniel Boles  <dboles.src@gmail.com>

  Document the new make_managed() & prefer to use it

  This performs creation and manage()ment in a single step and therefore
  avoids the user having to write the discouraged new operator, looks more
  like Standard C++ things like make_shared(), etc. So, move our examples
  to it, and elaborate on why it is preferable to manage() or new/delete.
  
  https://gitlab.gnome.org/GNOME/gtkmm/issues/33

2018-10-27  Daniel Boles  <dboles.src@gmail.com>

  Clarify that user sometimes must delete if managed

  container.ccg remembers whether the object was originally un-floated by
  Gtk::manage() and, if so, restores that state during Container.remove(),
  with the result that the removed widget is *not* deleted, as it would be
  in GTK+, but instead it is re-floated and requires the user to deal with
  (e.g. to add it to some other container or to finally call delete on it)
  
  This is documented in container.hg but nowhere that I can see in our
  tutorial, and I think it is worth mentioning here, since it is not
  completely intuitive: users might otherwise think that the fact manage()
  delegates lifetime management to the Container means they get back the
  same behaviour of C widgets, i.e. that remove() would cause destruction,
  but of course that is not the case, and we might thus encourage leaks.
  
  So mention that manage() only relieves the user of the burden of calling
  delete if they add the widget to a parent and do not remove it later, in
  both the Memory Management section and the part about deleting wrappers.

2018-10-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  configure.ac: Update bug report address

2018-08-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the others/dnd example

2018-07-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the Drag and Drop chapter and the Clipboard chapter

2018-07-24  Daniel Mustieles  <daniel.mustieles.contractor@bbva.com>

  Updated Spanish translation

2018-07-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gdk::DragContext has been split into Gdk::Drag and Gdk::Drop

2018-05-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix a broken link to www.gtkmm.org

  Fixes #2

2018-05-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Replace signal_key_press_event() by Gtk::EventControllerKey

2018-05-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update calls to Gtk::Snapshot::append_cairo()

  The 'name' parameter has been dropped from append_cairo().

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

  Update the DrawingArea Widget chapter

2018-05-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the Custom Widgets chapter

2018-04-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  custom_widget example: Don't use Gtk::WidgetCustomSnapshot

  WidgetCustomSnapshot has been removed. snapshot_vfunc() is now
  a member of Gtk::Widget.

2018-04-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update custom container, custom widget and advanced printing examples

  Update for the latest gtk+4 and gtkmm-4 changes, such as removed
  Gtk::WidgetCustomDraw, Widget::set_realized(), Widget::get_clip() and
  Gdk::Surface::create_similar_image_surface(),
  modified Widget::signal_size_allocate().

2018-04-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Require C++17

  Because libsigc++-3.0 (and therefore gtkmm-4.0) now requires C++17.
  Require glibmm-2.58 >= 2.57.1 and gtkmm-4.0 >= 3.93.0

2018-04-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update for the latest gtk+4 and gtkmm4 (Gdk::Surface etc.)

  Gdk::Window has been renamed. It's now called Gdk::Surface.
  Gtk::Snapshot is now a ref counted Glib::Object.
  Gdk::Texture implements the Gdk::Paintable interface.

2018-04-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Use glibmm-2.58 instead of glibmm-2.56

  We have changed the ABI name in glibmm.

2018-02-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the RefPtr appendix

  Glib::RefPtr is now an alias for std::shared_ptr.

2018-02-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix a doubly-defined section id

  The previous commit introduced a section id, which was already used.

2018-02-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update RecentFiles example, remove ToolPalette example

  The Gtk::RecentChooser interface and classes that implemented that
  interface have been removed. Use FileChooserDialog to show the list of
  recently used files.
  
  Gtk::ToolPalette has been removed. Remove the ToolPalette example.
  
  * docs/tutorial/C/index-in.docbook: Update the Recently Used Documents
  chapter. Remove the ToolPalette chapter.

2018-01-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Don't use the deprecated Gtk::Widget::signal_event()

  * examples/book/combobox/entry_complex/examplewindow.[cc|h]:
  * examples/book/combobox/entry_text/examplewindow.[cc|h]:
  Use Gtk::Widget::property_has_focus()::signal_changed() to see lost
  keyboard focus.
  * examples/book/menus/popup/examplewindow.[cc|h]:
  * examples/others/cellrenderercustom/cellrendererlist.[cc|h]:
  * examples/others/cellrenderercustom/cellrendererpopup.[cc|h]:
  Use Gtk::GestureMultiPress::signal_pressed() or signal_released() to see
  mouse button press or release.

