4.12.0 (stable) 2024-11-04:

* dropdown/complex example: Add a missing signal_unbind().connect()
  (Dawid Chemloul) Merge request !22
* book/buildapp/step6, step7, step8, step9 and book/searchbar examples:
  Use Gtk::SearchEntry2 if gtkmm-4.0 >= 4.13.2
* index-in.docbook: Avoid <programlisting> elements within <para> elements.
  Can confuse the translation tools (itstool and friends)
  (Kjell Ahlstedt)
* Remove link to developer-old.gnome.org
  (Kjell Ahlstedt) Issue #21 (Andre Klapper)
* Add example and description of mouse events
  (Kjell Ahlstedt) Issue #23 (Petr Talla)
* Add support for code syntax highlighting in generated html files
  (Sid) Issue #24, merge request !23


4.10.1 (stable):

* Update the "Event signals" section
  (Kjell Ahlstedt)
* Mention Cambalache instead of Glade
  (Kjell Ahlstedt) Issue #18 (Ludovic Jozeau)
* Add notes regarding widget destructor behaviour vs gtkmm3
  (Daniel Boles) Merge request !18
* Remove AUTHORS and add general information to README.md
  (Kjell Ahlstedt) Issue gtkmm#140
* Menus and Toolbars: Replace mention of non-existing class
  Gtk::EventControllerClick for Gtk::GestureClick
  (Federico Gallo Herosa) Merge request !20
* Add the PrintDialog section
  (Kjell Ahlstedt)

Example programs:
* book/custom/custom_css_name: Add extern "C" and a comment
  (Kjell Ahlstedt) Issue glibmm#1 (Murray Cumming)
* Rename .glade files to .ui
  (Kjell Ahlstedt) Issue #18 (Ludovic Jozeau)
* Replace some sigc::mem_fun()s and sigc::ptr_fun()s by lambda expressions
  (Kjell Ahlstedt) Issue #10 (Zongren Zhang)
* book/printing/advanced: Don't use deprecated API
* Add book/printing/print_dialog example
  (Kjell Ahlstedt)
* book/custom/custom_container: Tidy up MyContainer::measure_vfunc()
 (Daniel Boles) Merge request !21

Meson build:
* Don't fail if warning_level=everything
  (Daniel Boles, Kjell Ahlstedt) Merge request gtkmm!87


4.10.0: (stable)

There are no releases between 4.0.x and 4.10.0. This release is
called 4.10.0 because the tutorial describes the new API in gtkmm 4.10.0
and some of the example programs use this new API. Other example programs
use API which is now deprecated. It's not possible to build all examples
with warnings=fatal.

* Add the "Deprecations in gtkmm 4.10" section
* Update the Dialogs chapter
* Add "The DropDown Widget" chapter
* Add the "ListView, GridView, ColumnView" chapter
  (Kjell Ahlstedt)
* String fixes
  (Anders Jonsson) Merge request !17

Example programs:
* Update the others/window example
* others: Remove arrow, cellrenderercustom, treemodelcustom,
  idle, statusbar
* book/buildapp: Don't use deprecated API
* book/headerbar: Use AlertDialog instead of MessageDialog
* book/recent_files: Use FileDialog instead of FileChooserDialog
* Printing examples: Don't use deprecated API
* Replace the IconView example by a GridView example
* Replace most Dialog examples: messagedialog -> alertdialog,
  colorchooserdialog -> colordialog, filechooserdialog -> filedialog,
  fontchooserdialog -> fontdialog, simple -> windowdialog
* Use Gtk::Window instead of Gtk::Dialog in book/builder/basic,
  book/builder/derived, book/scrolledwindow
* Infobar example: Don't use deprecated Gtk::InfoBar
*  Add 4 DropDown examples
* Custom CSS Names: Show custom CSS class
* Remove the buttons/volumebutton example
* Add 5 ColumnView and 2 ListView examples in book/listmodelviews
  (Kjell Ahlstedt)

Build:
* Require gtkmm-4.0 >= 4.10.0
* Set warnings=max when testing a dist tarball
  (Kjell Ahlstedt)


4.0.3: (stable)

* application/menubar example: Make the keyboard shortcuts work
* ComboBox examples: Use Gtk::EventcontrollerFocus
* Update the Custom Widgets chapter, add the  Custom CSS Names section,
  update the corresponding examples, add the Custom CSS Name example
  (Kjell Ahlstedt)
* Typo and spacing fixes
  (Anders Jonsson) Merge request !16
* Many chapters have been updated. All of the tutorial now describes
  gtkmm4, rather than gtkmm3.
* Many classes and methods are deprecated since gtk/gtkmm 4.9.
  Deprecated API has been replaced by non-deprecated API in some examples.
  Deprecated API is still used elsewhere. If you build with gtkmm > 4.8,
  it's not possible to build all examples with -Dwarnings=fatal.
  (Kjell Ahlstedt)

Meson build:
* insert_example_code.py: Sort input file list
  (Bernhard M. Wiedemann) Merge request !15
* Avoid configuration warnings
  (Kjell Ahlstedt)


4.0.2: (stable)

* Main menu example: Make the keyboard shortcuts work
  (Kjell Ahlstedt)
* Update the Basics chapter
  (Kjell Ahlstedt) Issue #15 (Zachary Roman)
* PO-files: added: why `fuzzy` tag appears
  (DarkTrick) Merge request !14
* index-in.docbook: Upgrade from DocBook 4.5 to DocBook 5.0
* Recommend Meson instead of Autotools
* "The .hg and .ccg files" section: Describe 'ignore_deprecations'
* Update the README file
  (Kjell Ahlstedt)

Meson build:
* Require Meson >= 0.56.0
* Specify 'check' option in run_command()
* Don't use gnome.yelp()
  In Meson >= 0.61.0, it can't be used with a generated XML file.
* Add allow-network-access option
  (Kjell Ahlstedt)

Updated translation:
* Simplified Chinese (CCTV-1), merge request !12


4.0.1 (stable):

The tarball for 4.0.1 has been created with 'meson dist'.
If you build with Autotools from the tarball, please read the README
file, especially the last paragraph.

* Update the "Working with gtkmm's Source Code" appendix
  (Kjell Ahlstedt)
* Meson build: Don't require gtkmm unconditionally
  (Kjell Ahlstedt)
* Avoid a translation problem with <programlisting>
  (Kjell Ahlstedt) Merge request !11 (CCTV-1)
* Update AboutDialog and Assistant example programs
  (Kjell Ahlstedt)

Updated translations:
* Simplified Chinese (CCTV-1), merge requests !8, !9, !10, !11
* Spanish (Daniel Mustieles)


4.0.0 (stable):

This is the first stable release describing gtkmm-4.0.

The tarball for 4.0.0 has been created with 'meson dist'.
If you build with Autotools from the tarball, please read the README
file, especially the last paragraph.

* Lots of changes in the example programs due to changes in
  gtk4 and gtkmm4. Most such changes are not listed in this NEWS file.
  (Kjell Ahlstedt)
* Use glibmm-2.68 instead of glibmm-2.64
  Require giomm-2.68 >= 2.68.0 and gtkmm-4.0 >= 4.0.0
  (Kjell Ahlstedt)
* Meson build: Set default value of the 'warnings' option to 'min'
  (Kjell Ahlstedt)
* Describe how the mm-common/skeletonmm project is built with Meson
  (Kjell Ahlstedt)
* input example: Don't include build/config.h
  (Kjell Ahlstedt) Issue #11 (Keyikedalube Ndang)
* Describe how to build a multi-threaded program
  (Kjell Ahlstedt) Issue #12 (Keyikedalube Ndang)
* Remove description of Gtk::Container and Gtk::RadioButton
  Those classes have been removed from gtkmm4
  (Kjell Ahlstedt)
* Meson build: Drop dependence on Perl
  (Kjell Ahlstedt)
* Update the "gtkmm and Win32" appendix
  (Chun-wei Fan) Issue #4 (Daniel Boles)


3.97.1: (unstable)
Distro packagers should probably not package this yet.

Apart from the changes listed below there are lots of small changes.
Most changes are caused by changes in gtkmm-4.0.
All example programs are compatible with gtkmm 3.97.1.
docs/tutorial/C/index-in.docbook is not fully updated.

* Use glibmm-2.64 instead of glibmm-2.62
  Require gtkmm-4.0 >= 3.97.1
  (Kjell Ahlstedt)
* meson.build: "ninja test" builds the example programs
  README files: meson is the recommended build system
  (Kjell Ahlstedt)
* Builder, example and description: Update use of get_widget() and
  get_widget_derived(). Describe combination with Glib::Property
  (Kjell Ahlstedt)
* Application example: Use Gio::Application::add_option_group()
  (Kjell Ahlstedt) Issue glibmm#46 (Patrick Storz)
* Meson build: Replace shell scripts with Python scripts
  Makefile.am: Distribute files needed when building with Meson
  (Kjell Ahlstedt)
* Builder: Using derived widgets: Update for glibmm
  (Daniel Boles) Merge request !5
* Drop pointless/confusing class around RadioButtons
  (Daniel Boles) Merge request !6
* Don't recommend `new` for an in-class member
  (Daniel Boles) Merge request !7
* Replace Glib::Exception by Glib::Error
  (Kjell Ahlstedt) Issue glibmm#23
* index-in.docbook: Change git.gnome.org to gitlab.gnome.org
  (Kjell Ahlstedt)
* Add examples/book/treeview/custom_treemodel
  (Kjell Ahlstedt) Issue #9 (Danny van Elsen)
* Use Gtk::PopoverMenu and Gtk::PopoverMenuBar instead of the removed
  Gtk::Menu and Gtk::MenuBar.
  Update drag-and-drop examples: Use Gtk::DragSource and DropTarget.
  Examples with toolbars: Replace removed Toolbar and *ToolButton
  by Box and *Button.
  (Kjell Ahlstedt)


3.95.1: (unstable)
Distro packagers should probably not package this yet.

* Prepare for gtkmm-4.0.
  Require giomm-2.62 and gtkmm-4.0. Require C++17
  (Kjell Ahlstedt)
* Remove the "Plugs and Sockets" chapter and example
  (Kjell Ahlstedt)
* Update most chapters and example programs.
  (Kjell Ahlstedt, Murray Cumming)
* Add "Changes in gtkmm 4" chapter (incomplete)
  (Kjell Ahlstedt)
* Headers and Linking section: Replace broken link
  (Kjell Ahlstedt) Bug #777879 (Ramana Venkata)
* Use auto instead of explicit types where appropriate.
  Adapt to Glib::RefPtr as std::shared_ptr.
  (Murray Cumming)
* Adapt to enums in classes.
  (Murray Cumming, Kjell Ahlsedt) Bug #86864
* Add Gtk::FileChooserNative example
  (Kjell Ahlstedt) Bug #783801 (Alexander Shaduri)
* Remove Gtk::EventBox example, PlacesSidebar example,
  ToolPalette example and chapter, ButtonBox example.
  (Kjell Ahlstedt)
* Mixing C & C++: Clarify ownership of wrap() result
  (Daniel Boles, Kjell Ahlstedt) Bug #788646
* Clarify: ColumnRecords can be static *singletons*
  (Daniel Boles) Bug #792482 = Issue gtkmm#29 = Issue #3
* Fix a broken link to www.gtkmm.org
  (Kjell Ahlstedt) Bug #794714 = Issue gtkmm#32 = Issue #2 (Ray)
* Clarify that user sometimes must delete if managed
  (Daniel Boles) Merge request !4
* Document the new Gtk::make_managed()
  (Daniel Boles) Bug #795816 = Issue gtkmm#33, Merge request !2
* Add meson.build files and scripts for meson builds (experimental)
  (Kjell Ahlstedt)

Updated translations:
* Czech (Marek Cernocky)
* German (Mario Blättermann)
* Spanish (Daniel Mustieles)


3.22.0: (stable)

* Add the "Building applications" chapter with example code.
  (Kjell Ahlstedt) Bug #772391
* Document that Gtk::Action and some other classes are deprecated.
  (Kjell Ahlstedt)
* Add the ListModel example.
  (Kjell Ahlstedt) Bug #755149
* gmmproc section: Document new options in _CLASS_GTKOBJECT.
  (Kjell Ahlstedt) Bug #767951
* Printing examples: Add missing menu items and toolbar.
  (Kjell Ahlstedt)
* Printing advanced example: Don't use deprecated methods.
  (Kjell Ahlstedt)
* gmmproc section: Describe the err_return_value argument in _WRAP_VFUNC.
  (Kjell Ahlstedt)
* Calendar example: Don't use deprecated font: CSS syntax.
  (Murray Cumming)
* Custom widget and calendar examples: Don't crash when showing errors.
  (Murray Cumming)
* gmmproc section: Document all options in _WRAP_ENUM and _WRAP_GERROR.
  (Kjell Ahlstedt)
* gmmproc section: Add description of _CUSTOM_MOVE_OPERATIONS macro.
  (Marcin Kolny)

3.20.0:

* Builder chapter and example: Describe additional parameters to get_widget_derived()
  (Kjell Ahlstedt) Bug #134161
* CellrendererPopup example: Don't use deprecated methods.
  (Kjell Ahlstedt)
* Custom widget and ListBox examples: Update use of CSS files.
  (Kjell Ahlstedt)
* Custom widget example: Avoid some warnings.
  (Kjell Ahlstedt)
* ProgressBar example: Fix the type of a signal connection id data member.
  (Kjell Ahlstedt)
* Update the Internationalization chapter.
  (Kjell Ahlstedt) Bug #701908.
* gmmproc section: Add "String Parameter Processing" section.
  (Kjell Ahlstedt)
* C++11: Use nullptr instead of 0
  (Kjell Ahlstedt)


3.19.3:

* Require the latest gtkmm and glibmm.
* Multi-threaded chapter: Remove warnings about sigc::slots and Glib::Threads::Thread.
  Because people would use regular lambdas or std::function functors with
  std::thread in C++11.
  (Murray Cumming) Bug #755091
* multithread example: Use std::thread, etc, instead of Glib::Threads::*.
  Because C++11 now has this concurrency API and we should use standard
  C++ where possible.
  (Murray Cumming) Bug #755091
* Input example: Fix high CPU load, by opening the fifo in read/write mode.
  (Kjell Ahlstedt)
* command_line_handling example: handle_local_options(): Correct the return
  values, now that glib bug #750796 was fixed.
  (Murray Cumming) Bug #754763
* combobox/complex example: Show use of a cell_data_func().
  (Murray Cumming)
* examples: Remove unnecessary virtual keywords.
  (Murray Cumming)
* C++11: examples: Replace deprecated std::auto_ptr by std::unique_ptr.
  (Kjell Ahlstedt)
* C++11: examples: Use the override keyword.
  (Murray Cumming)
* gmmproc chapter:
  Document _CUSTOM_* gmmproc macros
  (Kjell Ahlstedt)


3.17.50 (unstable):

* Use (and require) C++11.
  (Kjell Ahlstedt)
* C++11: Use the auto, override, and nullptr keywords.
  (Murray Cumming)
* Update the "Menus and Toolbars" chapter.
  (Kjell Ahlstedt)
* recent_files example: Add toolbar and accelerator keys.
  (Kjell Ahlstedt)
* placessidebar example: Remove use of deprecated set_show_connect_to_server().
  (Murray Cumming)
* gmmproc chapter:
  - Add description of the 'newin' parameter of some _WRAP macros. Bug #748856
  - Add description of the detail_name parameter in _WRAP_SIGNAL. Bug #749034
  - Add description of _IGNORE_PROPERTY and _IGNORE_CHILD_PROPERTY.
  - Add description of the keep_return parameter in _WRAP_VFUNC
  (Kjell Ahlstedt)
* Fix the build with -Wshadow.
  (Murray Cumming)
* Examples: Remove remaining uses of GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED.
  (Murray Cumming)


3.15.1 (unstable):

* Replace use of deprecated Widget::override_*() methods.
  (Kjell Ahlstedt)
* Add ScaleButton example.
  (Murray Cumming)
* Add VolumeButton example.
  (Murray Cumming)
* Add the "Gio::Resource and glib-compile-resources" section.
  (Kjell Ahlstedt)
* drawingarea/image and menus_and_toolbars examples: Use resource files.
  (Kjell Ahlstedt)
* Custom widget example: Use Gtk::StyleProperty.
  (Kjell Ahlstedt)
* Improve the UI definitions in the menu examples
  (Kjell Ahlstedt)
* Main menu example: Use Gtk::Application to display an app menu
  (Kjell Ahlstedt)
* Menus and Toolbars: Update the text and examples.
  (Kjell Ahlstedt)
* Completed _WRAP_SIGNAL and _WRAP_VFUNC documentation.
  (Marcin Kolny)
* Arrow example: Arrow icons have been renamed.
  (Kjell Ahlstedt)
* Remove the example with the deprecated StatusIcon
  (Kjell Ahlstedt)
* Add _WRAP_CHILD_PROPERTY section to tutorial.
  (Juan R. García Blanco)
* others/cellrenderercustom/testpopup: Use the new base class order.
  (Kjell Ahlstedt)
* Application/app_and_win_menus example: Hide the window when quitting.
  (Kjell Ahlstedt) Bug #731126
* Mention that Arrow, Alignment and most Button signals are deprecated
  (Kjell Ahlstedt)
* Fix 'make check' after Gtk::Alignment has been deprecated
  (Kjell Ahlstedt)
* Fix 'make check' after Gtk::Misc has been deprecated
  (Kjell Ahlstedt)
* Fix 'make check' after Gtk::Arrow has been deprecated
  (Kjell Ahlstedt)
* PlacesSidebar example: use new show-enter-location.
  (Juan R. García Blanco )
* Application example: Show the new command-line parsing API
  (Kjell Ahlstedt) Bug #727822
* Builder examples: Don't use deprecated API in the Glade files
   (Kjell Ahlstedt)    


3.12.0 (stable):

* Added Gtk::ActionBar.
  (Juan R. García Blanco)
* Added FlowBox example.
  (Juan R. García Blanco)
* Added HeaderBar example.
  (Juan R. García Blanco) Bug #708866
* Added ListBox example.
  (Kjell Ahlstedt)
* Added PlacesSidebar example.
  (Juan R. García Blanco)
* Added Popover example.
  (Juan R. García Blanco)
* Added Revealer example.
  (Juan R. García Blanco) Bug #705460
* Added SearchBar example.
  (Juan R. García Blanco)
* Add a multi-threaded example program.
  (Kjell Ahlstedt)
* Application example: Add a window menu.
  (Murray Cumming)
* Remove stock items and other deprecated API from the tutorial.
  (Kjell Ahlstedt)
* App_and_win_menus example: Add a menu item that sends a Gio::Notification.
  (Kjell Ahlstedt)
* ToolPalette example: Skip non-existent and large icons.
  (Kjell Ahlstedt)
* EventBox example: Make it possible to clip the label.
  (Kjell Ahlstedt)
* InfoBar example: Really show the infobar.
  (Kjell Ahlstedt)
* treemodelcustom: Use the new base class order.
  (Murray Cumming)
* SignalIO example: Add Gio::Application::hold().
  (Kjell Ahlstedt)
* Port from gnome-doc-utils to yelp-tools.
  (Murray Cumming)
* Drag and Drop chapter: Correct the description of the DnD signals.
  (Kjell Ahlstedt)
* Remove mention of deprecated Range::set_update_policy().
  (Murray Cumming)Bug #703147 (Joris)
* Fix broken links.
  (Kjell Ahlstedt)
* gmmproc appendix improvments.
  (José Alburquerque)


3.8.0:

* Dialogs chapter: Add Non-modal AboutDialog section.
  (Kjell Ahlstedt)
* Fix some details in the Clipboard chapter.
  (Kjell Ahlstedt)
* Add some info to the custom/custom_container example.
  (Kjell Ahlstedt)
* Add "Multi-threaded programs" chapter.
  (Chris Vine) Bug #512348
* Builder examples: Update the Glade files to gtkmm3 status.
  (Kjell Ahlstedt)
* Update the description of Box to gtkmm3 status.
  (Kjell Ahlstedt)
* Fix the box example.
  (Kjell Ahlstedt)
* Fix the book/application/app_menu example.
  (Kjell Ahlstedt) Bug #683645 (Tom Jaeger)
* Clipboard and Socket examples: Make them non-unique.
  (Kjell Ahlstedt) Bug #681323.
* Basics, Simple Example: Synchronize code and description.
  (Kjell Ahlstedt) Bug #681323.
* I18n and L10n chapter: Fix broken links.
  (Kjell Ahlstedt) Bug #680546.
* gmmproc: _WRAP_METHOD: Include docs on wrapping methods with slots.
  (José Alburquerque) Bug #688587
* gmmproc: _WRAP_CTOR: Document the new "errthrow" extra argument option.
  (José Alburquerque)
* gmmproc: _WRAP_METHOD: Document gmmproc's output parameter functionality.
  (José Alburquerque)
* gmmproc: _WRAP_VFUNC: Add the errthrow optional parameter documentation.
  (José Alburquerque)
* Fix 'make check' with the latest versions of glib and glibmm.
  (Kjell Ahlstedt)


3.4.1:

* Entry, ComboBox sections: Adapt because
  Entry::signal_activate() has been undeprecated.
  (Kjell Ahlstedt) Bug #655489, comment 21.
* Memory management chapter: Improve the Widgets section.
  (Kjell Ahlstedt) Bug #678566.
* Signals Appendix: Mention exceptions.
  (Kjell Ahlstedt) Bug #677104.
* ComboBox and Range widgets examples: Set an active ComboBox entry.
  (Kjell Ahlstedt)
* Range Widgets example: Really show a Position combo.
  (Murray Cumming)
* SpinButton example: Fix orientation of vertical boxes.
  (Kjell Ahlstedt)
* Update some screenshots.
  (Kjell Ahlstedt)

3.4.0:

* Application examples: Add an AppMenu example.
  (Murray Cumming)
* Improve the Entry and ComboBox with Entry sections.
  (Kjell Ahlstedt) Bug #655489
* Replace the deprecated Gtk::Entry::signal_activate() by signal_key_press_event().
  (Kjell Ahlstedt) Bug #655489.
* Install all screenshots used in the tutorial.
  (Kjell Ahlstedt) Bug #655489.

3.3.18:

* Remove Table and other deprecated classes.
  (Kjell Ahlstedt)
* Use and mention Gtk::Application instead of Gtk::Main.
* Use Gtk::ApplicationWindow.
* Use ColorChooserDialog instead of deprecated ColorSelectionDialog.
  (Murray Cumming)
* Keyboard Events chapter: Clarify keyboard event propagation.
  (Pedro Ferreira) Bug #661857
* New example programs in the DrawingArea chapter.
  (Pedro Ferreira) Bug #666885

3.2.1 (stable):

* Corrected the list of authors.

3.2.0 (stable):

* New chapter: Keyboard Events
	(Pedro Ferreira, Kjell Ahlstedt)
	Bug #661857.
* "Working with gtkmm's Source Code" appendix,
  "Recently Used Documents" chapter,
  "Drawing Area Widget chapter" chapter,
  "Dialogs" chapter:
  Update for gtkmm 3
	(Kjell Ahlstedt) Bug #658265.
* Various examples:
  Correct orientation and packing, which were wrong since we ported to these
  examples to gtkmm 3.
  (Kjell Ahlstedt) Bug #658265.
* Use the new FontChooserDialog instead of FontSelectionDialog.
  (Murray Cumming, Kjell Ahlstedt)
* Use Gtk::Box instead of the now-deprecated Gtk::HBox and Gtk::VBox.
  Likewise for other H and V classes.
  (Murray Cumming)
* Gtk::Builder examples: Update the Glade files.
  (Kjell Ahlstedt)
* gmmproc appendix
  - More about Gtk::Object.
    (Murray Cumming)
  - Use {OUT} instead of {RET} for output params.
	  (José Alburquerque)
	- Initializations: Add comment about type substitution.
	  (José Alburquerque)
	- Mention new support for optional parameters.
	  (José Alburquerque)
	- Update for gtkmm 3
	  (Kjell Ahlstedt) Bug #658265.
* Replace Bitmap and Pixmap by Pixbuf.
  (Kjell Ahlstedt) Bug #658265
* Update links to the git repository.
  (Kjell Ahlstedt) Bug #658265.

3.0.3 (stable):

* Update library.gnome.org/devel links to developer.gnome.org.
* Added a Changes In gtkmm 3 chapter.
* Update for the change from intermediate types to std::vector.
  (Murray Cumming)
	
3.0.2 (stable):

* Put a 2 in the name, so this is now Programming with gtkmm 2.

3.0.1 (stable):

* Correct mentions of version numbers.
 (Murray Cumming)

3.0.0 (stable):

Just a version increase.


Older gtkmm-documentation news has been removed. It can be found in releases
prior to gtkmm-documentation 4.12.0 or (even older news) 3.95.1.
