2019-05-08 Kjell Ahlstedt 3.95.1 2019-05-07 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (Window::set_default_widget(), etc.) * demos/gtk-demo/example_menus.cc: Use Gtk::Window::set_default_widget() instead of the deleted Widget::set_can_default() and grab_default(). * gdk/src/surface.hg: Add property_frame_clock(). * gtk/src/builder.hg: gsize length -> gssize; length can be -1. * gtk/src/menu.hg: Remove set_display(). * gtk/src/popover.hg: Add property_default_widget(). * gtk/src/widget.hg: Remove set/get/property_can_default(), grab_default(), signal_display_changed(). Add activate_action(), activate_default(). * gtk/src/window.[ccg|hg]: Remove activate_focus(), activate_default(). Add property_default_widget(). Rename set_default() to set_default_widget(), unset_default() to unset_default_widget(). 2019-05-07 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files 2019-04-25 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (Add CssLocation, etc.) * gdk/src/surface.[ccg|hg]: Remove set/get_group(), invalidate_rect(), invalidate(), invalidate_region(), set_skip_taskbar_hint(), set_skip_pager_hint(), set_urgency_hint(). * gtk/src/csslocation.[ccg|hg]: New files. * gtk/src/cssprovider.hg: Replace CssProviderError by CssParserError and CssParserWarning. Replace get_named() by load_named(). * gtk/src/csssection.[ccg|hg]: Remove enum CssSection::Type. Add create() and to_string(). Replace get_[start|ned]_[line|position]() by get_[start|end]_location(). * gtk/src/enums.hg: Add PickFlags. * gtk/src/listbox.hg: Add set/get/property_show_separators(). * gtk/src/menubar.hg: Remove enum PackDirection. Remove set/get/property_pack_direction(), set/get/property_child_pack_direction(). * gtk/src/widget.hg: Replace set/get/property_can_pick() by set/get/property_can_target(). Remove pick_vfunc(), set/get_parent_surface(). Add PickFlags argument to pick(). * gtk/src/window.hg: Remove set/get/property_skip_taskbar_hint(), set/get/property_skip_pager_hint(), set/get/property_urgency_hint(). 2019-04-25 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_vfuncs.defs, gtk_generate_[docs|enums|methods].sh. Some gtk files have been moved from gtk+/gtk to gtk+/gtk/css. The gtk_generate_*.sh scripts shall search for info in gtk/gtk/css. 2019-04-07 Kjell Ahlstedt Gtk: Add GridLayout and GridLayoutChild 2019-04-07 Kjell Ahlstedt Gtk: Remove Layout, remove child properties and make other changes to update for the latest gtk4. All child properties have been removed from gtk4. 2019-04-07 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_signals.defs.patch, gtk_vfuncs.defs, generate_defs_gtk.cc. 2019-04-02 Kjell Ahlstedt Gtk: Add BinLayout and BoxLayout 2019-04-02 Kjell Ahlstedt Gtk: Make LayoutManager::layout_changed() non-const and minor changes of the documentation of LayoutManager and LayoutChild. 2019-04-01 Kjell Ahlstedt Gtk: Add LayoutManager and LayoutChild 2019-04-01 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (Remove Paned::child_property_*(), etc.) * gdk/src/device.[ccg|hg]: Remove warp(), get_position(int& x, int& y), get_surface_at_position(int& x, int& y). Add get_surface_at_position(double& x, double& y). * gdk/src/surface.hg: Remove set_role(), get_device_position(..., int& x, int& y, ...). * gtk/src/actionbar.hg: Remove child property. * gtk/src/application.hg: Add signal_query_end(). * gtk/src/fixed.hg: Remove child properties. Add get_child_position(). * gtk/src/headerbar.hg: * gtk/src/overlay.hg: Remove child properties. * gtk/src/paned.hg: Remove child properties. Add property_resize_child1/2(), property_shrink_child1/2(), * gtk/src/popovermenu.hg: Remove child property. Add add_submenu(). * gtk/src/searchentry.hg: Add property_placeholder_text(), property_actives_default(). * gtk/src/stylecontext.hg: Remove obsolete _IGNORE(). * gtk/src/toolbar.hg: Remove child properties. * gtk/src/toolitem.hg: Add property_expand_item(), property_homogeneous(). * gtk/src/window.hg: Remove set/get/property_role(), set/get/property_gravity(), move(), get_position(). * tools/m4/convert_gdk.m4: Remove conversions for GdkGrabOwnership. 2019-04-01 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_docs_override.xml, gtk_vfuncs.defs and generate_defs_gtk.cc. 2019-03-24 Kjell Ahlstedt Gtk: Update for the latest gtk4 (Root::get_focus(), etc.) * gtk/src/eventcontrollerkey.hg: Add get_focus_origin/target(), property_is_focus(), property_contains_focus(). Update signal_focus_in/out(). * gtk/src/eventcontrollermotion.hg: Add get_pointer_origin/target(), property_is_pointer_focus(), property_contains_pointer_focus(). Update signal_enter(), signal_leave(). * gtk/src/passwordentry.hg: set/get/property_show_peek_icon(), property_placeholder_text(), property_activates_default(). * gtk/src/root.[ccg|hg]: Add set/unset/get_focus(), property_focus_widget(). * gtk/src/widget.hg: Add get_focus_child(). Remove signal_focus(). * gtk/src/window.hg: Remove signal_set_focus(). 2019-03-24 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_docs_override.xml and generate_defs_gtk.cc. 2019-03-24 Kjell Ahlstedt Add the GTKMM_CHECK_VERSION() preprocessor macro and remove macros that check the GTK version. Fixes #5 2019-03-22 Kjell Ahlstedt Doxyfile.in: Remove obsolete glibmm configuration constants They have been removed from glibmm. See issue glibmm#22. 2019-03-20 Kjell Ahlstedt configure.ac: Copy COPYING from the source directory 2019-03-19 Kjell Ahlstedt Use glibmm-2.62 instead of glibmm-2.60 We have changed the ABI name in glibmm. 2019-03-14 Patrick Storz Gtk::Grid: Default parameter value for set_column_homogeneous() Makes this consistent with set_row_homogeneous(). 2019-03-05 Kjell Ahlstedt Add Gtk::PasswordEntry 2019-03-05 Kjell Ahlstedt Gtk::Entry, SpinButton: Remove some API Remove set/get_text(), set/get_width_chars() and set/get_max_width_chars(). The corresponding API in gtk has been removed. Those methods are now included in the base class Gtk::Editable. 2019-03-05 Kjell Ahlstedt Gtk: Add PadActionEntry and PadController::set_action_entries() 2019-03-03 Kjell Ahlstedt Gtk: Add PadController 2019-03-03 Kjell Ahlstedt Gdk: Add DevicePad and DeviceWithPad DeviceWithPad is a subclass of DevicePad with no corresponding C class. It implements the DevicePad interface, and makes it possible for C++ programmers to call methods in DevicePad when the underlying C class implements GdkDevicePad. Kinda hacky, but it's the best I could think of. 2019-02-28 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (Root::get_for_surface(), etc.) 2019-02-28 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_vfuncs.defs. 2019-02-25 Kjell Ahlstedt Add Gtk::SelectionModel and Gtk::SingleSelection 2019-02-24 Kjell Ahlstedt Gtk::Entry: Remove signal_activate() and add property_enable_emoji_completion(). GtkEntry::activate shall not be used in application programs in gtk4. See https://gitlab.gnome.org/GNOME/gtk/commit/78a9b5d1edfb6da871cb73cf493f871de3fb6769 2019-02-24 Kjell Ahlstedt Revert "Gtk::Entry: Remove property_activate()" This reverts commit 784af00133dcda7a810204f5218404e792d131bf. The commit message is wrong 2019-02-24 Kjell Ahlstedt Gtk::Entry: Remove property_activate() and add property_enable_emoji_completion(). GtkEntry:activate shall not be used in application programs in gtk4. See https://gitlab.gnome.org/GNOME/gtk/commit/78a9b5d1edfb6da871cb73cf493f871de3fb6769 2019-02-22 Kjell Ahlstedt Gtk: Update for the latest gtk4 (Add NotebookPage, etc.) 2019-02-22 Kjell Ahlstedt Gtk: Regenerate docs.xml and .defs files and update [gdk|gtk]_extra_objects.defs, gtk_docs_override.xml, gtk_vfuncs.defs and generate_defs_gtk.cc. 2019-02-20 Kjell Ahlstedt Put _WRAP_VFUNC in protected sections 2019-02-19 Kjell Ahlstedt Add Gtk::Root, implemented by Gtk::Window 2019-02-19 Kjell Ahlstedt Gtk::Assistant[Page], Container: Remove some API * gtk/src/assistant.hg: Remove set/get_has_padding(). * gtk/src/assistantpage.hg: Remove property_has_padding(). * gtk/src/container.hg: Remove check_resize() and signal_check_resize(). The corresponding API has been removed from gtk (formerly gtk+). 2019-02-13 Kjell Ahlstedt Add Gtk::AssistantPage and Gtk::StackPage They replace child properties in Assistant and Stack. 2019-02-13 Kjell Ahlstedt Gtk: Regenerate docs.xml and .defs files and update gtk_docs_override.xml and generate_defs_gtk.cc. 2019-02-08 Kjell Ahlstedt configure.ac: Drop the '+' from GTK+ The pkg-config module name has been changed from gtk+-4.0 to gtk4. 2019-02-07 Kjell Ahlstedt demos: Remove the ButtonBox demo 2019-02-07 Kjell Ahlstedt Gtk: Update for the latest gtk+4 (Remove ButtonBox and Invisible) * gtk/src/buttonbox.[ccg|hg]: * gtk/src/invisible.[ccg|hg]: Remove these files * gtk/src/dialog.hg: Remove an unnecessary #include * gtk/src/enums.hg: Remove ButtonBoxStyle * gtk/src/popovermenu.hg: Remove child_property_position() * gtk/src/window.hg: Remove many icon methods * .gitignore: * gtk/gtkmm.h: * gtk/src/filelist.am: * tools/extra_defs_gen/generate_defs_gtk.cc: * tools/m4/convert_gtk.m4: Remove entries for ButtonBox, ButtonBoxStyle and Invisible. 2019-02-07 Kjell Ahlstedt Gtk: Regenerate docs.xml and .defs files and update gtk_docs_override.xml. 2019-02-04 Kjell Ahlstedt demos, tests: Use Container::add() instead of Box::pack_start() 2019-02-04 Kjell Ahlstedt Gtk: Update for the latest gtk+4 (Remove Box::pack_start(), etc.) * gtk/src/actionbar.hg: Remove child_property_position(). * gtk/src/bin.ccg: add_pixlabel(): pack_start() -> add(). * gtk/src/box.[ccg|hg]: Update the class documentation. Remove pack_start(), pack_end(), reorder_child(), child_property_pack_type(), child_property_position(), enum PackOptions. Add insert_child_after(), insert_child_at_start(), reorder_child_after(), reorder_child_at_start(). * gtk/src/combobox.hg: Remove set/get/property_wrap_width(), set/get/property_row_span_column(), set/get/property_column_span_column(). * gtk/src/headerbar.hg: Remove child_property_position(). * gtk/src/menu.hg: Remove attach(). Remove all child properties. * gtk/src/widget.[ccg|hg]: Replace the insert_before/after() overloads without a sibling parameter with insert_at_start() and insert_at_end(). Add set_expand(). 2019-02-04 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files 2019-02-02 Kjell Ahlstedt Glib::KeyFile is ref-counted * gtk/src/pagesetup.[ccg|hg]: * gtk/src/papersize.[ccg|hg]: * gtk/src/printsettings.[ccg|hg]: Store Glib::KeyFile in a Glib::RefPtr. 2019-01-31 Kjell Ahlstedt tools: _WRAP_CHILD_PROPERTY: Check the data type tools/m4/child_property.m4: _WRAP_CHILD_PROPERTY generates a static_assert() that checks if the data type is acceptible. The generation of the static_assert() can be suppressed with the new parameter no_type_check. For this to work, the code must be generated with a glibmm/gmmproc version from 2019-01-31 or newer. 2019-01-28 Kjell Ahlstedt Gdk, Gtk: Add some #include directives Make the definition (not just the declaration) of a class type available in the .cc file, even if the type is only used in a property. (Don't know if this is strictly necessary, but it feels safer.) 2019-01-28 Kjell Ahlstedt Gtk::ToolButton: Fix property_icon_widget() Its type shall be Gtk::Widget*, not Gtk::Widget. 2019-01-23 Kjell Ahlstedt Gtk::Tooltip: Remove trigger_tooltip_query() gtk_tooltip_trigger_tooltip_query() has been removed. 2019-01-18 Kjell Ahlstedt Gtk::MediaStream: Fix get_error() Don't use g_error_copy(). It prints a critical message if gtk_media_stream_get_error() returns a nullptr. 2019-01-18 Kjell Ahlstedt Gtk::ModelButton: Fix property_icon(), add property_use_markup() Gio::Icon is refcounted. It shall be stored in a Glib::RefPtr. 2019-01-15 Kjell Ahlstedt Gdk, Gtk: Use {} for default values of method arguments See issue glibmm#20 2019-01-08 Kjell Ahlstedt Gtk::FileFilter: Don't use /* in a comment starting with /* Compilation error: "/*" within comment [-Werror=comment] 2019-01-07 Daniel Boles FileFilter: Ignore get_needed() & fix comment/TODO https://gitlab.gnome.org/GNOME/gtkmm/merge_requests/12#note_396983 2019-01-06 Daniel Boles FileFilter: Don’t mention unwrapped func .filter() We specifically ignore this, so we shouldn’t point to it from the intro… 2019-01-06 Daniel Boles FileFilter: Fix no documentation of custom rules It is never very nice to see no documentation on our side and have to go and read the GTK documentation and hope it relates well enough to gtkmm. 2019-01-06 Daniel Boles FileFilter: Format docs copied in from GTK better Capitalise MIME, and put tags around the MIME types. 2018-12-28 Kjell Ahlstedt tools/gen_scripts: Update for non-source-dir builds Most modules (e.g. gtk+) can be built in a directory separated from the source directory. Update the scripts that generate .defs and doc.xml files to handle that. See !11. The environment variable JHBUILD_SOURCES is not used any more. Instead the environment variables GMMPROC_GEN_SOURCE_DIR and GMMPROC_GEN_BUILD_DIR are read. See comments in init_generate.sh. 2018-12-18 Daniel Boles Gdk::RGBA: Add fairly simple test of our additions Test the new constructor from #40, the fix for #42, and some other bits that we add. Most other tests should be added to GTK itself, not gtkmm. https://gitlab.gnome.org/GNOME/gtkmm/merge_requests/8#note_389465 2018-12-17 Kjell Ahlstedt RGBA.set_hsv(): Properly interpret hue 360° as red (bug found and commit message by Daniel Boles; patch proposed by Kjell) We document an inclusive range of 0..360 degrees, but we divide by 60 and switch over that, only handling 6 cases. So, hue 360° got treated as 300° i.e. magenta, when instead it should be equivalent to 0° i.e. red. The simplest fix is this proposed by Kjell: to treat case i == 6 (360° / 60°) the same as case i == 0, thereby making 360° red hue just like 0°. This exists only to achieve that; do not pass values outwith 0 <= h <= 360 and expect anything but UB, as we document/assume that range only. closes https://gitlab.gnome.org/GNOME/gtkmm/issues/42 2018-12-17 Daniel Boles Builder: Fix wrong use of @retval for output args: @retval is for documenting the meanings of particular values of the returned variable, not output reference/pointer arguments like this. 2018-12-17 Daniel Boles Builder: Document get_widget_derived() builder arg This function being static is basically a workaround to avoid inheriting std::make_shared_from_this. We didn't add the @param builder during that 2018-12-17 Daniel Boles Builder: Use refBuilder-> not refXml-> in examples It's much less clear what refXml is when we could just say refBuilder, as we already do elsewhere. 2018-12-17 Daniel Boles Builder: Properly qualify static member function We don't have UFCS, and ADL only works on namespaces, so we can't eschew the class name (unless inside Builder itself, which doc examples aren't) 2018-12-16 Daniel Boles tests/builder: Drop .ui properties gone in GTK 4 Widget:visible and the Box child properties were all removed ages ago. 2018-12-16 Daniel Boles Gdk::RGBA: Add constructor taking doubles r,g,b,a Enable constructing `Gdk::RGBA`s directly with the desired components as fractions, sparing the user from having to do a verbose and error-prone 2-step 'construction' and also making it far nicer to declare e.g. a `std::vector` to be used as a palette of colours in an app. notes: * I first delegated to `RGBA()` then did `set_rgba()`, but Kjell and I agreed initialising directly was better than redundantly reassigning. * GdkRGBA only has 4 fields, but we included a trailing `,` in RGBA() initialising them to 0, which is meaningless, I just do that here too https://gitlab.gnome.org/GNOME/gtkmm/issues/40 2018-12-16 Daniel Boles Gdk::RGBA: Delegate constructors instead of repeat Instead of repeating the same stanza as RGBA(), just delegate to/call it 2018-12-11 Kjell Ahlstedt Docs: Allow @newin with micro version, @newin{1,2,3} 2018-12-06 Kjell Ahlstedt Gtk::Widget: Remove intersect() gtk_widget_intersect() has been removed. 2018-11-19 Kjell Ahlstedt Gtk::Application, Widget, Window: Add new methods, remove signal_event() * gtk/src/application.hg: Add property_screensaver_active(). * gtk/src/eventcontrollerscroll.hg: signal_scroll() handlers return a bool. * gtk/src/widget.[ccg|hg]: Add observe_children(), observe_controllers(). Remove signal_event(). signal_size_allocate() handlers take int width and int height instead of a Gtk::Allocation. * gtk/src/window.[ccg|hg]: Add get_toplevels(). * tools/m4/convert_gtk.m4: Add conversion for Gio::ListModel. * demos/gtk-demo/example_drawingarea.cc: Update on_drawingarea_scribble_size_allocate(). 2018-11-19 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_signals.defs.patch. 2018-11-08 Kjell Ahlstedt Change some newin annotations to newin{3,24} Some API that was first added to a 3.9x release have now been included in gtkmm 3.24.0. 2018-11-07 Kjell Ahlstedt demos, tests: Fix minor bugs at calls to Gtk::make_managed() The newly introduced calls to make_managed() contained 2 bugs. 2018-11-06 Kjell Ahlstedt Use glibmm-2.60 instead of glibmm-2.58 and use atkmm-2.30 instead of atkmm-2.28, and pangomm-2.44 instead of pangomm-2.42. We have changed the ABI name in glibmm, atkmm and pangomm. 2018-11-06 Kjell Ahlstedt Remove PORTING It does contain any useful information. 2018-10-26 Kjell Ahlstedt Add necessary #include<>s * gdk/src/contentprovider.hg * gtk/src/papersize.hg 2018-10-26 Kjell Ahlstedt configure.ac: Update bug report address 2018-10-23 Daniel Boles MenuItem: Fix typo altough => although 2018-10-20 Daniel Boles Container: Add an intro line to match gtkmm-3-24 This is just to bring master up to date with my simultaneous commit to 3 2018-10-12 Daniel Boles object: Add Gtk::make_managed(args...) helper To avoid the discouraged pattern of manually writing `new` and get tidier syntax, follow the example of std::make_(unique|shared)() by adding a new helper function that both constructs and manages a widget in one call. The user will not need to `new` and can user fewer parens. auto button = Gtk::manage(new Gtk::Button("_Hi", true)); becomes auto button = Gtk::make_managed("_Hi", true); Switch to make_managed() in tests and demo, albeit nowhere else (yet?). https://gitlab.gnome.org/GNOME/gtkmm/issues/33 2018-10-12 Daniel Boles demo/demowindow: Use C++17 [[fallthrough]] attrib. Flip the if/else case so that the /* Fall through */ comment comes before the next case label, which would suppress a warning from -Wimplicit-fallthrough and looks clearer anyway - and then replace said comment with the standard C++17 [[fallthrough]] attribute intended to assuage compiler diagnostics in cases like this, as we use C++17 now. 2018-10-11 Kjell Ahlstedt Gtk::Buildable: Fix the type of the user data in custom_tag_end_vfunc_callback() It was fixed (changed from gpointer* to gpointer) in GtkBuildable.custom_tag_end(). 2018-09-08 Kjell Ahlstedt Fix the generation of reference documentation * docs/Makefile.am: Include the filelist.gmake.am files. * gdk/gdkmm/filelist.gmake.am: * gdk/src/filelist.gmake.am: * gtk/gtkmm/filelist.gmake.am: * gtk/src/filelist.gmake.am: The search path of the filelist.am files start from $(top_srcdir) instead of $(srcdir). Necessary when the filelist.gmake.am files are included in docs/Makefile.am. 2018-09-08 Kjell Ahlstedt Update .gitignore 2018-08-31 Luca Bacci Document Gtk::CssProviderError as @newin{3,16} 2018-08-27 Chun-wei Fan builds: Remove Visual Studio 2017 projects Since the NMake Makefiles are now in place, we can remove the project files, as they have been superseded. 2018-08-27 Chun-wei Fan build: Add NMake Makefiles for Visual Studio builds This adds NMake Makefiles for Visual Studio 2017 and later, which will replace the Visual Studio projects. The main motivation for this is to ease maintenace on the Visual Studio build files, especially as sources are often added or removed, making the project files out-of-date as they are not generated during 'dist make'. This will share the various filelist.am's so that any additions or removal of sources can be reflected upon the Visual Studio builds immediately. 2018-08-27 Chun-wei Fan gendef: Skip CRT symbols that are implemented inline As a result to the move of UCRT for Visual Studio 2015 and later, some of the CRT functions are no longer done in the CRT DLL, but are instead implemented directly in the CRT headers. We need to filter out these symbols so that we can link the gtkmm DLL properly. Unfortunately we cannot just link to legacy_stdio_definitions.lib to resolve this, so we just have to strip these symbols out from the generated gtkmm.def. 2018-08-27 Chun-wei Fan build: Remove GNU Makeisms from filelist.am's This is so that they can be used by the NMake Makefiles as well. 2018-08-24 Chun-wei Fan build: Rename MSVC_Net2017 to MSVC_NMake This is to prepare for the transition of the Visual Studio build files from the Visual Studio 2017 projects to NMake Makefiles, to ease maintenance in the future and especially to reduce the likelihood of the build files getting out-of-date because they could not be updated in time when source files are added or removed. 2018-08-24 Kjell Ahlstedt Gtk:MenuItem, Menus demo: Don't use the removed get_accel_group() See issue #18 2018-08-24 Daniel Boles Gtk::Window: Move to a proper get_accel_groups() The existing get_accel_group() just creates a per-window AccelGroup on demand and returns it. That’s no use if you need groups that were added by other sources, e.g. by Gtk::Builder, Glade, etc. Remove that, in favour of a new get_accel_groups(), which wraps gtk_accel_groups_from_object() to return the actual set of AccelGroups. Note that gtk_accel_groups_from_object() takes a GObject, which it says is usually a GtkWindow. I therefore assume users will only want to get groups from a Window. Fixes #18 2018-08-23 Kjell Ahlstedt Gtk::Image: Make all constructors explicit Make the constructor taking a Gdk::Pixbuf explicit. Add documentation to constructors that had none. 2018-08-07 Kjell Ahlstedt Gtk::Container: Remove has/get/set/unset_focus_chain() The corresponding gtk+ functions have been removed. * gdk/src/event.hg: * gdk/src/events.hg: gdk_event_get_string() has been removed. Don't _IGNORE() it. 2018-08-02 Kjell Ahlstedt Update gdk_docs_override.xml and gtk_docs_override.xml 2018-08-02 Kjell Ahlstedt Gtk::Widget: Remove one of the drag_dest_find_target() overloads The hand-coded overload is unnecessary, and it was not modified when the return value of gtk_drag_dest_find_target() was changed from GdkAtom to const char*. 2018-08-01 Kjell Ahlstedt Add the Gtk::DnD namespace * gtk/gtkmm/dnd_ns.[cc|h]: The new Gtk::DnD namespace wraps gtk_drag_*() functions with a GdkDrag as first parameter. They can't be Gdk::Drag methods because Gdk can't depend on Gtk. * gdk/src/drag.[ccg|hg]: Move set_icon_name() and set_icon() to Gtk::DnD. * gtk/src/widget.[ccg|hg]: Move drag_get_source_widget() and drag_set_as_icon() to Gtk::DnD. Add drag_dest_[set|get]_track_motion() and drag_source_[set|get]_target_list(). 2018-08-01 Kjell Ahlstedt Gtk::LevelBar: Don't let the copyright text be a Doxygen comment The copyright and license text started with "/**" which made Doxygen regard it as a description of the Gtk namespace. 2018-07-30 Kjell Ahlstedt Gtk::CssProvider, Menu, StyleContext: Remove some methods The corresponding gtk+ methods have been removed. * gdk/src/contentformats.hg: * gdk/src/contentprovider.hg: * gtk/src/selectiondata.hg: * gtk/src/widget.hg: Fix comments * gtk/src/cssprovider.hg: Remove get_default() * gtk/src/menu.[ccg|hg]: Remove 3 popup() overloads * gtk/src/stylecontext.hg: Remove render_frame_gap() 2018-07-17 Kjell Ahlstedt Add Gtk::GestureStylus * gdk/src/timecoord.hg: Add Gdk::TimeCoordTraits. * gtk/src/gesturestylus.[ccg|hg]: New files. 2018-07-17 Kjell Ahlstedt Update for the latest gtk+4 (Remove Gdk::EventExpose, etc.) * gdk/src/drag.hg: Remove get_suggested_action() and signal_action_changed(). Add property_selected_action(), property_actions(), property_surface(). * gdk/src/events.[ccg|hg]: Remove EventExpose. * gdk/src/surface.[ccg|hg]: Remove withdraw(). Add move_to_rect(), signal_move_to_rect(), signal_size_changed(), signal_render(), property_mapped(). * gtk/src/stylecontext.hg: Remove render_slider(). * gtk/src/widget.hg: Ignore gtk_widget_paintable_new(). gtk_drag_begin_with_coordinates() has been renamed to gtk_drag_begin(). 2018-07-17 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and manual modification: * tools/extra_defs_gen/generate_defs_gtk.cc: Add GTK_TYPE_GESTURE_STYLUS. 2018-07-09 Kjell Ahlstedt Demos: Update the Images demo making it similar to the corresponding demo in gtk+. 2018-07-09 Kjell Ahlstedt Add Gtk::MediaControls, MediaFile, MediaStream and Video 2018-07-09 Kjell Ahlstedt Regenerate gtk_signals.defs and other preparations for MediaControls, MediaFile, MediaStream, Video. * gtk/src/gtk_extra_objects.defs: Add MediaFile, MediaStream and Video. * gtk/src/gtk_vfuncs.defs: Add vfuncs for MediaFile and MediaStream. * tools/extra_defs_gen/generate_defs_gtk.cc: Add GTK_TYPE_MEDIA_CONTROLS, GTK_TYPE_MEDIA_FILE, GTK_TYPE_MEDIA_STREAM and GTK_TYPE_VIDEO. 2018-07-09 Kjell Ahlstedt Gtk::Printer: Wrap gtk_printer_get_hard_margins_for_paper_size() 2018-07-03 Kjell Ahlstedt Rename Gdk::DragContext to Gdk::Drag 2018-07-03 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and make manual modifications: * gdk/src/gdk_docs_override.xml: Remove some stuff that has become unnecessary. * gdk/src/gdk_extra_objects.defs: Replace GdkDragContext by GdkDrag. Remove GdkDrawingContext. * tools/extra_defs_gen/generate_defs_gdk.cc: Replace GDK_TYPE_DRAG_CONTEXT by GDK_TYPE_DRAG. 2018-07-02 Kjell Ahlstedt Gdk::Clipboard, Drop: Add read_async() and read_finish() Use Gio::SignalProxy_async_callback(). Requires a version of glibmm that installs giomm/slot_async.h. 2018-07-02 Kjell Ahlstedt Gtk::IconInfo: Use Gio::SignalProxy_async_callback() Requires a version of glibmm that installs giomm/slot_async.h. https://gitlab.gnome.org/GNOME/glibmm/commit/e30044809d3de348fd44f66940a3840accc49a83 2018-06-28 Kjell Ahlstedt demos: Update the color chooser demo Redraw the drawing area when a color has been chosen. 2018-06-28 Kjell Ahlstedt Add Gdk::Drop * .gitignore: Add drop.[cc|h]. * demos/gtk-demo/example_iconbrowser.cc: Update the signal_drag_data_get() handler. * gdk/gdkmm.h: Add drop.h. Sort the included files alphabetically. * gdk/src/dragcontext.[ccg|hg]: Some methods have been moved to Gdk::Drop. * gdk/src/drop.[ccg|hg]: New files. * gdk/src/enums.hg: The DragAction enum has been moved from dragcontext.hg. * gdk/src/event.hg: Remove some _IGNORE() macros. * gdk/src/events.[ccg|hg]: Replace EventDND::get_drag_context() by EventDND::get_drop(). * gdk/src/filelist.am: Add drop.hg. * gdk/src/surface.hg: Remove get/set_events() and get/set_device_events(). * gtk/src/entry.hg: Update signal_icon_[press|release](). * gtk/src/stackswitcher.hg: Remove property_icon_size(). * gtk/src/stylecontext.[ccg|hg]: Remove set/get/property_frame_clock(). * gtk/src/widget.[ccg|hg]: Update drag-and-drop methods and signals. * tools/m4/convert_gdk.m4: Add conversion for Gdk::Drop. 2018-06-28 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and make manual modifications: * gdk/src/gdk_docs_override.xml: Add and remove some substitute_enumerator_name elements. * gdk/src/gdk_extra_objects.defs: Add GdkDrop. * gdk/src/gdk_methods.defs.patch: New file * gtk/src/gtk_docs_override.xml: Update entries for some drag-and-drop signals. * gtk/src/gtk_signals.defs.patch: Updated. * tools/extra_defs_gen/generate_defs_gdk.cc: Add get_defs(GDK_TYPE_DROP). * tools/gen_scripts/gdk_generate_methods.sh: Patch gtk_methods.defs. 2018-06-18 Kjell Ahlstedt Add Gtk::Picture and Gtk::WidgetPaintable 2018-06-18 Kjell Ahlstedt Gtk: Regenerate docs.xml and .defs files * gtk/src/gtk_extra_objects.defs: Add GtkPicture. * tools/extra_defs_gen/generate_defs_gtk.cc: Add get_defs(GTK_TYPE_PICTURE) and get_defs(GTK_TYPE_WIDGET_PAINTABLE). 2018-06-18 Kjell Ahlstedt Gtk::Image: Remove set/get/property_keep_aspect_ratio() and remove set/get/property_can_shrink(). The corresponding functions have been removed from gtk+. 2018-06-18 Kjell Ahlstedt Gtk::Printer: Don't wrap gtk_printer_get_hard_margins_for_paper_size() yet 2018-06-18 Kjell Ahlstedt Add tools/gen_scripts/generate_docs_and_defs.sh 2018-05-31 Kjell Ahlstedt Gtk::Container,FontChooser,Printer,SearchBar,SearchEntry: Add new API * gtk/src/container.hg: Add signal_set_focus_child(). * gtk/src/fontchooser.hg: Add set_language(). * gtk/src/printer.[ccg|hg]: Add get_hard_margins(const PaperSize& ...). * gtk/src/searchbar.[ccg|hg]: * gtk/src/searchentry.[ccg|hg]: Add set/unset/get_key_capture_widget(). 2018-05-31 Kjell Ahlstedt Gdk::DragContext, Monitor, Texture: Add new API * gdk/src/dragcontext.[ccg|hg]: Add enum DragCancelReason. Add drag_drop_done(), get_drag_surface(), get_display(). Add properties and signals. * gdk/src/monitor.hg: Add signal_invalidate(). * gdk/src/texture.hg: Add save_to_png(). * tools/m4/convert_gdk.m4: Add conversions for enum DragCancelReason. 2018-05-31 Kjell Ahlstedt Gtk::Image: Add more constructors Add a ctor taking a Gdk::Paintable and a ctor taking a Gio::Icon. See issue #35. Fix the parameter name in _WRAP_CTOR(Image(const std::string& file), ...). The parameter name in _WRAP_CTOR must be equal to the corresponding property name. 2018-05-27 Kjell Ahlstedt Update for the latest gtk+4 (EventControllerKey replaces key event signals) * .gitignore: Add new generated .cc and .h files. * demos/gtk-demo/example_change_display.cc: * demos/gtk-demo/example_drawingarea.cc: * demos/gtk-demo/example_gestures.cc: Update calls to Gtk::Gesture*::create(). Add calls to Widget::add_controller(). * demos/gtk-demo/example_iconbrowser.cc: Use EventControllerKey:: signal_key_pressed() instead of the removed Widget::signal_key_press_event(). * gtk/gtkmm.h: Add new .h files. * gtk/src/filelist.am: Add new .hg files. * gtk/src/eventcontrollerkey.[ccg|hg]: * gtk/src/eventcontrollermotion.[ccg|hg]: * gtk/src/eventcontrollerscroll.[ccg|hg]: New files. * gtk/src/gesturedrag.hg: * gtk/src/gesturelongpress.hg: * gtk/src/gesturemultipress.hg: * gtk/src/gesturepan.hg: * gtk/src/gesturerotate.hg: * gtk/src/gestureswipe.hg: * gtk/src/gesturezoom.hg: Update the create() methods (no Widget& parameter). * gtk/src/widget.[ccg|hg]: Remove signal_key_[press|release]_event(). Add add_controller() and remove_controller(). * tools/m4/convert_gtk.m4: Add conversions for GtkEventControllerScrollFlags. 2018-05-27 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk/src/gtk_signals.defs.patch. * gtk/src/gtk_docs_override.xml: Add a substitute_enumerator_name element. * tools/extra_defs_gen/generate_defs_gtk.cc: Add GTK_TYPE_EVENT_CONTROLLER_[KEY|MOTION|SCROLL]. 2018-05-22 Kjell Ahlstedt Remove Gdk::DragContext::drop_reply() and Gtk::Scrollbar::get_wheel_delta() because the corresponding gtk+ functions have been removed. 2018-04-30 Kjell Ahlstedt Remove Gdk::DrawingContext, add Gdk::CairoContext * gdk/src/cairocontext.[ccg|hg]: New files. * gdk/src/drawcontext.[ccg|hg]: Add begin_frame(), end_frame(), is_in_frame() and get_frame_region(). * gdk/src/drawingcontext.[ccg|hg]: Removed files. * gdk/src/glcontext.hg: Remove get_damage(). * gdk/src/surface.[ccg|hg]: Remove begin_draw_frame() and end_draw_frame(). They have been moved to DrawContext. Add queue_expose() and create_cairo_context(). * gtk/src/snapshot.[ccg|hg]: Remove push() and clips_rect(). Add create() and push_debug(). Add append_texture() and append_cairo(). Only push_debug() has a 'name' parameter. 2018-04-30 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update tools/extra_defs_gen/generate_defs_gdk.cc. 2018-04-26 Kjell Ahlstedt Use libsigc++-3.0.tag for libsigc++ documentation 2018-04-19 Kjell Ahlstedt Remove Gtk::WidgetCustomSnapshot The GtkWidget::draw signal has been removed. Then the GtkWidget.snapshot vfunc can be wrapped in Gtk::Widget like a normal vfunc. All widgets render themselves in the snapshot vfunc. The WidgetCustomSnapshot class has become unnecessary. 2018-04-16 Kjell Ahlstedt Update for the latest gtk+4 (remove WidgetCustomDraw) * demos/gtk-demo/example_drawingarea.cc: Update for changes in Gtk::Widget. * gdk/gdkmm/general.[cc|h]: Remove create_surface_from_pixbuf(). * gdk/src/drawingcontext.hg: Remove get_surface(), is_valid() and get_drawing_context_from_cairo_context(). * gdk/src/surface.hg: Remove create_similar_image_surface(). * gtk/gtkmm/filelist.am: Remove widgetcustomdraw. * gtk/gtkmm/widgetcustomdraw.[cc|h]: Removed files. * gtk/src/snapshot.[ccg|hg]: Add clips_rect(const graphene_rect_t*). * gtk/src/widget.[ccg|hg]: Remove queue_draw_area(), queue_draw_region(), get_clip(), draw() and set_realized(). Remove a parameter from size_allocate() and signal_size_allocate(). * tools/m4/convert_gdk.m4: Remove a conversion to Cairo::ImageSurface. 2018-04-16 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk/src/gtk_signals.defs.patch. 2018-04-10 Murray Cumming Require C++17 Because libsigc++-3.0 (and therefore glibmm) now requires C++17. 2018-04-03 Kjell Ahlstedt Gtk::Widget: Add two drag_source_set_icon() overloads Add drag_source_set_icon(const Glib::RefPtr& icon) and drag_source_set_icon(const Glib::RefPtr& paintable). 2018-04-02 Kjell Ahlstedt Gdk::Paintable: Add vfuncs and class docs 2018-03-29 Kjell Ahlstedt Update for the latest gtk+4 (Gdk::Paintable etc.) * gdk/src/gltexture.[ccg|hg]: * gdk/src/paintable.[ccg|hg]: * gdk/src/snapshot.[ccg|hg]: New files. * gdk/src/surface.[ccg|hg]: Gdk::Window has been renamed. It's now called Gdk::Surface, because GdkWindow has been renamed. Gtk::Snapshot is now a Glib::Object, because GtkSnapshot is a GObject. Gdk::Texture implements the Gdk::Paintable interface. 2018-03-29 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update the g?k_docs_override.xml and gdk_extra_objects.defs files. * tools/extra_defs_gen/generate_defs_gdk.cc: Add GDK_TYPE_PAINTABLE and replace GDK_TYPE_WINDOW by GDK_TYPE_SURFACE. 2018-03-29 Kjell Ahlstedt Use glibmm-2.58 instead of glibmm-2.56 We have changed the ABI name in glibmm. 2018-03-10 Kjell Ahlstedt Update for the latest gtk+4 (small changes in Gdk::Texture etc.) * gdk/src/enums.hg: Remove obsolete comments about removed enums. * gdk/src/texture.hg: GdkGLTexture has been added in gtk+, but it looks like it's a private class. Its methods are wrapped in Gdk::Texture. Just change the C function names in _WRAP_METHOD(). * gtk/src/expander.hg: Remove get/set/property_label_fill(). * gtk/src/overlay.hg: Add get/set_measure_overlay() and child_property_measure(). * gtk/src/settings.hg: Remove property_gtk_modules(). 2018-03-10 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files 2018-03-05 Kjell Ahlstedt Gdk::Window::create_similar_image_surface(): Return an image surface * gdk/gdkmm/cairoutils.[cc|h]: Make wrap(cairo_surface_t* cobject, bool has_reference) a template function. * gdk/src/window.hg: create_similar_image_surface(): Return a Cairo::RefPtr, not just a plain Cairo::RefPtr. * tools/m4/convert_gdk.m4: Add a conversion for cairo_surface_t*. Bug 793572 2018-03-05 Kjell Ahlstedt Gtk::Entry: Remove set/get_cursor_hadjustment() Because gtk_entry_set/get_cursor_hadjustment() have been removed from gtk+ 4. 2018-03-01 Kjell Ahlstedt Gtk::Object::_release_c_instance(): Don't release if in a container Don't release the C instance, if it's a widget in a container widget. Just steal the GQuark that points from the C instance to the C++ wrapper, and accept that a new wrapper is later created, if necessary. Nowadays it's difficult to know which container the widget has been added to. It's not necessarily the one returned by gtk_widget_get_parent(). Bug 773642 comments 20-22. See also gtk+ bug 786048 comment 5.