2020-12-20 Kjell Ahlstedt 4.0.0 2020-12-20 Kjell Ahlstedt Add some Gtk::CellRenderer methods and other small fixes * gdk/src/toplevellayout.hg: Rename a method argument. * gtk/src/cellrenderer.hg: Add set/get_is_expander() and set/get_is_expanded(). * gtk/src/padactionentry.hg: Add an #include. * gtk/src/settings.hg: Change property_gtk_cursor_aspect_ratio() from float to double. 2020-12-20 Kjell Ahlstedt Regenerate gdk_methods.defs and gtk_signals.defs 2020-12-16 Andreas Persson Gdk::ToplevelLayout: update for latest gtk4 2020-12-16 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files 2020-12-15 Kjell Ahlstedt Gtk docs: Avoid some warnings from gmmproc * gtk/src/gtk_docs_override.xml: Add some substitute_enumerator_name. * gtk/src/widget.hg: Hand-code the description of activate(). 2020-12-12 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files 2020-12-12 Andreas Persson Gdk, Gtk: Update for the latest gtk4 Minor changes related to surface state and geometry. 2020-12-11 Kjell Ahlstedt Use glibmm-2.68, pangomm-2.48 instead of glibmm-2.66, pangomm-2.44 We have changed the ABI name in glibmm and pangomm. 2020-12-03 Kjell Ahlstedt Add Gtk::TreeExpander 2020-12-03 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (update some class descriptions) and remove Gtk::TextBuffer::property_[copy,paste]_target_list() 2020-12-03 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update tools/extra_defs_gen/generate_defs_gtk.cc 2020-12-03 Andreas Persson Remove Gtk::FileChooserButton Remove Gtk::FileChooserButton as it was removed from gtk. 2020-11-30 Kjell Ahlstedt Add Gdk::MemoryTexture * .gitignore: * gdk/gdkmm.h: * gdk/gdkmm/meson.build: * gdk/src/filelist.am: Add new filenames. * gdk/src/gltexture.hg: Remove most of the class description. It had been copied from Texture. GdkGLTexture has no class description. * gdk/src/memorytexture.[ccg|hg]: New files. * gdk/src/texture.hg: Update the class description. * tools/m4/convert_gdk.m4: Add conversions for enum GdkMemoryFormat. Remove conversions for GdkAtom. 2020-11-26 Kjell Ahlstedt Gtk::SpinButton, StackPage: Implement more interfaces * gtk/src/spinbutton.hg: Implement Gtk::CellEditable. * gtk/src/stackpage.hg: Implement Gtk::Accessible. The corresponding gtk classes implement those interfaces. 2020-11-19 Kjell Ahlstedt Gtk::IconView, TreeView: Update get_tooltip_context_*() Change the &x and &y arguments to x and y (input, no output). 2020-11-09 Kjell Ahlstedt Gtk: Add DragIcon::create_widget_for_value(), remove enum PlacesOpenFlags * gdk/src/gdk_docs_override.xml: * gtk/src/gtk_docs_override.xml: * gtk/src/gtk_extra_objects.defs: Remove obsolete entries. * gtk/src/dragicon.hg: Add create_widget_for_value(). * gtk/src/enums.hg: * tools/m4/convert_gtk.m4: Remove enum PlacesOpenFlags. 2020-11-08 Andreas Persson Gtk: Remove unused enums Remove Gtk::MenuDirectionType and Gtk::Popover::Constraint, as they were removed from gtk. 2020-11-05 Kjell Ahlstedt Gtk: Fix some TODO comments * gtk/src/cellareabox.hg: pack_start/pack_end(): Change default values of arguments. * gtk/src/comboboxtext.hg: Document set_active_text(). * gtk/src/recentinfo.hg: equal(), operator==(), operator!=(): RefPtr& instead of RecentInfo&. This should have been fixed long ago, when RecentInfo became ref-counted. * gtk/src/styleprovider.hg: Make the class docs more similar to GtkStyleProvider's docs. * gtk/src/tooltip.hg: Rename set_icon_from_icon_name() to set_icon(). Some TODO comments have been removed without action. 2020-11-04 Kjell Ahlstedt Gtk::Widget::get_is_drawable() -> is_drawable() * gtk/src/textbuffer.ccg: Improve some const declarations. * gtk/src/treeview.hg: Document is_blank_at_pos(). * gtk/src/widget.hg: Rename get_is_drawable() to is_drawable(). 2020-11-04 Kjell Ahlstedt Wrap GtkRequisition as _CLASS_BOXEDTYPE_STATIC 2020-11-02 Kjell Ahlstedt Remove gdk/src/types.[hg,ccg] After Gdk::Point was removed, they contain only enum ModifierType. Move that enum to gdk/src/enums.hg. 2020-11-01 Andreas Persson Demos: add checkmarks to DropDown demo Add checkmarks to the dropdown demo, just as done in the gtk version of the demo. 2020-11-01 Andreas Persson Remove Gdk::Point and update Gdk docs Remove Gdk::Point as GdkPoint was removed from gtk. Update some Gdk class documentation with updates from gtk. 2020-10-28 Kjell Ahlstedt Gtk: Update for the latest gtk4 (add PopoverMenu::add_child(), etc.) * gtk/src/popover.hg: Add set/get/property_cascade_popdown(). * gtk/src/popovermenu.hg: * gtk/src/popovermenubar.hg: Add add_child() and remove_child(). plus a few other minor modifications. 2020-10-28 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_extra_objects.defs. 2020-10-20 Kjell Ahlstedt Gtk::Application: Add make_window_and_run() and remove the run() overloads that take a Window&. There are new restrictions on Widgets. From the class description: Most widgets can't safely be created before the application has been registered or activated. They can't safely be deleted after run() or make_window_and_run() returns. The main() functions in the demo program and in most test programs have been updated. Fixes #78 2020-10-19 Kjell Ahlstedt Gtk::AboutDialog: Inherit form Window instead of Dialog GtkAboutDialog now inherits from GtkWindow. 2020-10-19 Kjell Ahlstedt tools/gen_scripts: gtk+ -> gtk gtk+ is now called gtk. jhbuild downloads it to a directory called gtk. Use that name for the directory where the scripts expect to find gtk's source code. 2020-10-17 Andreas Persson Remove Gtk::StyleContext::render_insertion_cursor It has been removed from gtk. 2020-10-14 Kjell Ahlstedt Gtk::IconTheme: Remove an unnecessary _IGNORE() directive 2020-10-12 Kjell Ahlstedt gtk/gtkmm.h: Fix a typo 2020-10-11 Kjell Ahlstedt gtk/gtkmm.h: Describe how to use gtkmm with meson 2020-10-10 Kjell Ahlstedt Add Gdk::Seat::get_tools() 2020-10-07 Kjell Ahlstedt Add some methods, require pangomm >= 2.43.3 * configure.ac: * meson.build: Require pangomm >= 2.43.3, which includes Pango::Overline and Pango::ShowFlags. * gtk/src/buildable.hg: Remove set_buildable_id(). * gtk/src/colorbutton.hg: Remove property_use_alpha() and property_rgba(). They are inherited from base class ColorChooser. * gtk/src/gtk_docs_override.xml: Add some enum name substitutions. * gtk/src/listbox.[ccg|hg]: Replace the hand-coded append() with a gtk_list_box_append() wrapper. * gtk/src/passwordentry.hg: Ignore the 'activate' signal. * gtk/src/printer.hg: Ignore the 'backend' property. * gtk/src/stack.hg: Add an add() without a 'name' parameter. Remove the const add() methods. Nothing shall be added to a const Stack. New methods and properties have been added to several classes. 2020-10-06 Kjell Ahlstedt Documentation: Explain key values and add links to gdk/gdkkeysyms.h. Fixes #6 2020-10-06 Kjell Ahlstedt gtk/gtkmm.h: Update the link to libsigc++'s home page 2020-10-04 Andreas Persson Gtk: Regenerate docs.xml and .defs files 2020-10-04 Andreas Persson Add Gtk::NumericSorter Add binding for gtk_numeric_sorter. It is implemented as a template, with the numeric type as a parameter, and a base class. 2020-10-04 Andreas Persson Gtk::DirectoryList: fix ref count and property Declare the get_file methods as refreturn. Remove item-type property, as it was recently removed from gtk. 2020-10-04 Andreas Persson Add Gtk::DirectoryList 2020-10-04 Andreas Persson Add Gtk::SelectionFilterModel 2020-10-04 Andreas Persson Add Gtk::MultiFilter, AnyFilter and EveryFilter 2020-10-01 Kjell Ahlstedt Meson build: Fix versioning on macOS See libsigcplusplus, pull request 65 2020-09-28 Andreas Persson Gtk::MultiSorter: add interfaces Gtk::MultiSorter implements the Gio::ListModel and Gtk::Buildable interfaces. 2020-09-26 Andreas Persson Add Gtk::BoolFilter and Gtk::MultiSorter 2020-09-26 Andreas Persson Gtk::ColumnViewColumn: simplify constructors The GTK column_view_column constructors have been simplified. 2020-09-26 Andreas Persson Gdk, Gtk: Remove methods removed in latest gtk4 Remove set/get_capture_button_press in Gtk::ScrolledWindow and Gdk::Cairo::upload_surface_to_gl, as those methods were removed from GTK. Rename set/get_name in Gtk::Buildable to set/get_buildable_id. Remove the TODO comments in Gtk::Buildable because those methods were removed from the GTK public API. 2020-09-26 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files 2020-09-20 Andreas Persson Gtk: add missing conversion for experssions I forgot one change in the previous get_expression commit: an m4 conversion for const expressions. 2020-09-20 Andreas Persson DropDown demo: use set_margin Use set_margin instead of separate calls to set the margins of a box. 2020-09-20 Andreas Persson Gtk: Fix ref count for get_expression methods The get_expression method in DropDown, StringFilter and StringSorter must be declared as refreturn. Also make a const and a non-const version of each method. 2020-09-20 Andreas Persson Demos: Add DropDown demo 2020-09-20 Andreas Persson Add Gtk::Expression Add binding of gtkexpression. It is implemented as a template with the value type as a template parameter. Creating a closure expression from a slot, with other expressions as parameters, is possible, and the types are checked at compile time. 2020-09-11 Andreas Persson Add Gtk::FlattenListModel and Gtk::SliceListModel Add bindings for two simple list model classes. 2020-09-11 Andreas Persson Gdk: move enums from Surface to Toplevel Make the same changes as in latest Gtk. 2020-09-11 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files 2020-09-07 Kjell Ahlstedt gtk_extra_objects.defs: Add GtkGridView 2020-09-06 Kjell Ahlstedt demos/gtk-demo/demos.h: Add an end element to child1[] DemoWindow::fill_tree() needs an end element with nullptr to be able to safely find the end of the array. 2020-09-06 Andreas Persson Add Gtk::GridView 2020-09-05 Andreas Persson Demos: Add listview application launcher demo 2020-09-05 Kjell Ahlstedt Gtk::ListView: Fix the class description Fixes #75 2020-09-03 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (remove Gtk::RadioButton, etc.) 2020-09-03 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_extra_objects.defs and generate_defs_gtk.cc. 2020-09-02 Kjell Ahlstedt Remove some obsolete files * build/reduced.m4: Removed. Not needed now when gtkmm does not depend on atkmm. * docs/reference/README: Removed * meson.build: Exclude some git-tracked files from generated tarballs. Works as intended only with a new enough dist-build-scripts.py file from mm-common-get. 2020-08-31 Kjell Ahlstedt Gtk::Actionable::get_action_target_value(): Fix ref count gtk_actionable_get_action_target_value() does not give the caller a ref. get_action_target_value_vfunc_callback() shall store a copy of the returned value. It shall not give the caller a ref. 2020-08-31 Chun-wei Fan NMake Makefiles: "Install" the codegen .m4 files This way, we can make gtkmm's codegen m4 scripts available to other packages that uses them to generate sources 2020-08-30 Kjell Ahlstedt Gtk: Add Shortcut, ShortcutAction, ShortcutTrigger and subclasses of ShortcutAction and ShortcutTrigger. Add ShortcutController::add_shortcut() and remove_shortcut(). GtkShortcut, GtkShortcut[Action|Controller|Manager|Trigger] and subclasses of GtkShortcut[Action|Trigger] replace gtk3's GtkBinding[Set|Entry|Signal|Arg]. See issue #3. The regenerated gtk_methods.defs depends on the recent glibmm patch gmmproc: Make h2def.py recognize more macros https://gitlab.gnome.org/GNOME/glibmm/-/commit/737d68182b2d891541d60a6f0c5d0dec1dc861ac 2020-08-28 Chun-wei Fan gtk/gtkmm/private/object_p.h: Decorate Gtk::Object_Class with GTKMM_API This way, we can fix gtksourceviewmm builds on Visual Studio as well 2020-08-16 Kjell Ahlstedt Gdk, Gtk: Move signal_popup_layout_changed() and other updates Update for the latest gtk4. * gdk/src/popup.hg: * gdk/src/surface.hg: Move signal_popup_layout_changed() from Surface to Popup. Add Surface::property_[width,height](). * gtk/src/gtk_vfuncs.defs: Remove Native vfuncs. * gtk/src/popover.hg: Add set/get_offset(). 2020-08-15 Andreas Persson Gtk::Native: Remove vfuncs as interface is private GtkNativeInterface is now private in Gtk. Adapt to that change by removing the vfuncs in Gtk::Native. 2020-08-15 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files 2020-08-11 Kjell Ahlstedt Gdk: Add [Drag,Popup,Toplevel]SurfaceImpl [Drag,Popup,Toplevel]SurfaceImpl don't correspond to C classes. They can wrap any C object that derives from GdkSurface and implements GdkDragSurface, GdkPopup and GdkToplevel, respectively. Such C classes in GTK are not public. They can't be wrapped in the usual way. Surface_Class::wrap_new() can wrap a C object in a Surface, DragSurfaceImpl, PopupSurfaceImpl or ToplevelSurfaceImpl depending on which interface, if any, the C object implements. This is similar to DeviceWithPad. 2020-08-10 Kjell Ahlstedt Gdk: Add ToplevelSize and Toplevel::signal_compute_size() 2020-08-10 Kjell Ahlstedt Remove Gtk::MenuButton::property_align_widget() It has been removed from gtk. 2020-08-10 Andreas Persson Gtk::Filter: Fix reference counting errors Fix reference counting for Filter::match(). Make Filter::changed() protected. Update doc for SortListModel. 2020-08-09 Andreas Persson Gtk::TreeListModel: Remove unnecessary callback 2020-08-09 Andreas Persson Gtk: make FileFilter inherit Filter GtkFileFilter has been changed to be a GtkFilter. Adopt to the change. 2020-08-09 Andreas Persson Add Gtk::SortListModel and Gtk::FilterListModel Add bindings for SortListModel, StringSorter, FilterListModel, Filter and StringFilter. GtkExpression* is used for now, as GtkExpression is not yet wrapped. 2020-08-07 Andreas Persson Add Gtk::TreeListModel and Gtk::TreeListRow 2020-08-06 Andreas Persson Gdk: Adapt to recent changes for Gdk::TopLevel Only minimal changes to fix compilation errors. The new class ToplevelSize and the new signal in Toplevel are not wrapped yet. 2020-08-06 Andreas Persson Gdk: Regenerate docs.xml and .defs files 2020-08-05 Andreas Persson Update docs with latest changes from Gtk 2020-08-05 Andreas Persson Gtk: Regenerate docs.xml and .defs files 2020-08-05 Andreas Persson Remove Gtk::AccelLabel Remove Gtk::AccelLabel binding, as GtkAccelLabel was removed from Gtk. 2020-08-05 Chun-wei Fan NMake Makefiles: Remove mentions of ATK/ATKMM They are no longer required by gtkmm, so drop them from the required libraries. Also update the README file to reflect on this 2020-08-04 Kjell Ahlstedt Drop dependency on Atkmm Gtk no longer depends on atk. And now gtkmm does not depend on atk or atkmm. Add the Gtk::Accessible interface, and make Widget implement it. It's a replacement for atk/atkmm. Gtk issue "Outline for the a11y rework": https://gitlab.gnome.org/GNOME/gtk/-/issues/2833 Gtk commit "Remove ATK": https://gitlab.gnome.org/GNOME/gtk/-/commit/c63087a5631e72cd1c45bdc5a41bf605195be64c Gtk commit "Introduce GtkAccessible": https://gitlab.gnome.org/GNOME/gtk/-/commit/14faec3ce2ce8b70f97aba3ebbd946d2a2c065f5 2020-08-04 Andreas Persson Fix typos and circular include in ColumnView Fixes after merge request review. Circular include between columnview.h and columnviewcolumn.h removed. 2020-08-03 Andreas Persson Gtk: Update for latest gtk4 (changes in Grid) Renamed properties in GridLayoutChild. 2020-08-03 Andreas Persson Gtk: Regenerate docs.xml and .defs files 2020-08-02 Andreas Persson Add Gtk::ColumnView Add bindings for ColumnView and its help class ColumnViewColumn. Also include a binding for Gtk::Sorter, which maybe isn't complete: the Sorter::compare method and vfunc have gpointers as arguments to raw Gtk objects. I'm not sure a proper gtkmm wrap there is a good idea, because of perfomance reasons. 2020-08-02 Kjell Ahlstedt Gtk::DropDown: Fix an #include Not absolutely necessary when building with meson. 2020-08-01 Andreas Persson Fix DropDown strings constructor 2020-08-01 Andreas Persson Use DateTime instead of time_t in RecentInfo Adapt to change in Gtk. 2020-07-30 Andreas Persson Adapt to more Gdk changes 2020-07-30 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files 2020-07-30 Andreas Persson Adapt to Gdk changes 2020-07-30 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files 2020-07-29 Andreas Persson Minor doc update for StringList 2020-07-29 Andreas Persson Change constructors for DropDown and ListView Constructors for DropDown and ListView were changed in Gtk. One DropDown constructor is left to do, as it uses Expression which is not wrapped yet. 2020-07-29 Andreas Persson Remove wrappers for removed functions in Gtk/Gdk 2020-07-29 Andreas Persson Use char, int, float and double instead of g types Adapt to Gtk change to use char*, int, float and double instead of corresponding Glib types. 2020-07-29 Andreas Persson Gdk, Gtk: Regenerate docs.xml and .defs files A lot of changes because of the gtk change to use char, int, float and double instead of the corresponding Glib types. 2020-07-23 Chun-wei Fan NMake Makefiles: Use Meson-style DLL and .lib naming if requested To make things more consistent and less prone to confusion, if 'USE_MESON_LIBS' is specified in the NMake command line, build the DLLs and .lib's that are named like the Meson counterparts. Binaries built with Meson+Visual Studio and the ones that are built via NMake using 'USE_MESON_LIBS' are interchangeable, provided that they are built with the same Visual Studio version. 2020-07-23 Chun-wei Fan NMake Makefiles: Fix build from release tarballs Make sure that we do not needlessly re-generate [gdk|gtk]mm[config.h|.rc], and ensure when they are generated, they will always contain the needed version info in them. Remove the gdkmm.rc target since gdkmm is now part of the main gtkmm library, not a separate library of its own. Also streamline the process so that it is no longer necessary to run the 'prep-git-build' target; instead, this file generating process is carried out when necessary when running the 'all' target. 2020-07-19 Andreas Persson Update filelist.am and use make_managed in example 2020-07-18 Andreas Persson Add Gtk::ListView Add bindings for ListView and its base class ListBase. 2020-07-17 Andreas Persson Fix things mentioned in merge request comment Extract StringObject to separate files. Fix DropDown::set_list_factory. Add ListItem::unset_child. Ignore gtk_string_list_take. Documentation fixes. Replace brokern StringObject ctor with a create function. 2020-07-15 Andreas Persson Add class documentation for DropDown etc Class documentation for DropDown, ListItem, ListItemFactory, SignalListItemFactory and StringList copied from GTK and manually converted to Doxygen format. 2020-07-15 Andreas Persson Wrap properties for ListItem 2020-07-15 Andreas Persson Add Gtk::DropDown Add partial binding for Gtk::DropDown, including ListItem, ListItemFactory, SignalListItemFactory and StringList. Gtk::Expression binding is not done. Class documentation is also left to do. 2020-07-12 Kjell Ahlstedt Gtk: Update for the latest gtk4 (remove Gtk::FileFilter::Info, etc.) 2020-07-12 Kjell Ahlstedt Gtk: Regenerate docs.xml and .defs files and update gtk_docs_override.xml 2020-07-08 Chun-wei Fan NMake Makefiles: Fix header search paths We should also look in $(PREFIX)\include\harfbuzz and $(PREFIX)\include for HarfBuzz (which the Pango headers may include) and Cairo (and libepoxy) respectively, since these are likely locations where the headers are located. 2020-07-08 Chun-wei Fan NMake Makefiles: Support ARM64 Windows builds This will make the NMake Makefiles capable of building ARM64 binaries of gtkmm, which can be used on Windows 10 on ARM systems. 2020-07-06 Kjell Ahlstedt Remove Gtk::Main Remove the deprecated parts of Gtk::Main. Replace Gtk::Main::init_gtkmm_internals() by Gtk::init_gtkmm_internals() in the new files gtk/gtkmm/init.[h|cc]. 2020-07-06 Kjell Ahlstedt Add Gtk::BuilderScope and BuilderCScope Override the get_type_from_name() vfunc in BuilderScope, just like the get_type_from_name() vfunc in Builder is overridden in gtkmm3. Set a GtkBuilderScope with an overridden vfunc in Builder's default constructor. Builder::get_widget_derived() can then (like in gtkmm3) instantiate gtkmm-derived types without gtkmm__ prefixes in the .ui file. Fixes #61 2020-07-05 Kjell Ahlstedt Add Gtk::BitsetConstIter and tests/bitset_iterator 2020-07-02 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (add Gtk::Bitset, etc.) Add Gtk::Bitset and MultiSelection. Use Bitset in SelectionModel. 2020-07-02 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_vfuncs.defs and generate_defs_gtk.cc. 2020-07-02 Kjell Ahlstedt tools/gen_scripts: Read only gdk*.h and gtk*.h files Generate .defs files only from gdk-pixbuf and gtk header files with names that start with gdk or gtk. The new file gtk/roaring.h contains lots of functions. They are all internal gtk functions. 2020-07-01 Kjell Ahlstedt gdk/meson.build: Set MSVC_TOOLSET_VER in conf data 2020-06-30 Chun-wei Fan MSVC_NMake/README: Update build info Note that it is possible to build with Visual Studio with Meson, on the condition that the -mm dependencies are built with Meson as well, since we need their pkg-config files. Also note that the same compiler version should be used to build gtkmm and the -mm dependencies, even for Visual Studio 2017 and 2019. 2020-06-30 Chun-wei Fan NMake Makefiles: Apply toolset version for Meson-built deps As the Meson build files for Visual Studio apply the toolset version in the .lib filenames by default, apply the toolset version in the Meson-built -mm .lib files that we link in, just as we did when we we link in the -mm .lib files that was built with NMake, by default. The option 'USE_COMPAT_LIBS' will also mean that we will use the former behavior when we link in the Meson-built -mm .lib's, just as we did when we link in the NMake-built -mm .lib's. Also fix the case also when the 'USE_COMPAT_LIBS' option is used and when 'USE_MESON_LIBS' is not used on Visual Studio 2017, where the toolset version was not correctly applied. 2020-06-30 Chun-wei Fan Meson/Visual Studio builds: Include toolset version by default This makes the built DLL and .lib's contain the toolset version if the build is carried out using Visual Studio 2017 or later, unless the 'msvc14x-parallel-installable' option is set to be false during configuration. The reasoning behind this change is that there are subtle problems when, for instance, one tries to link to a Visual Studio 2017-built glibmm when building gtkmm and libxml++ with Visual Studio 2019. This is unfortunate as Microsoft did try hard to make interoperating between binaries built with Visual Studio 2015, 2017 and 2019 as easy as possible in terms of ABI and API, but unfortunately this hits the corner cases where this compatibility does not work. As the name suggests, this attempts to make Visual Studio 2017 and 2019 builds share a single set of underlying C DLLs easier, while avoiding breakages caused by such subtle differences. 2020-06-30 Chun-wei Fan meson: Remove gmmproc-dir option It was not used, anyways, since we look for the -mm dependencies only via pkg-config, which will give us the info we need 2020-06-23 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (add Gtk::EditableLabel, etc.) 2020-06-23 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_extra_objects.defs, gtk_vfuncs.defs and generate_defs_gtk.cc. 2020-06-19 Chun-wei Fan NMake Makefiles: Clean up building demo and test programs We can group some items together and "generate" the build rules for the test programs instead of hand-writing them one-by-one, since the compiler and linker flags for them are largly the same. 2020-06-19 Chun-wei Fan NMake Makefiles: Use toolset version in DLL/.lib naming Instead of using the Visual Studio version ('vc150' for Visual Studio 2017), use the toolset version ('vc141' for Visual Studio 2017 and 'vc142' for Visual Studio 2019, as defined by Microsoft) so that we are more in-line with what is now done in the gtkmm-3-24 branch. If using the old naming convention is desired, an NMake command line option 'USE_COMPAT_LIBS' have been added-note that this will require glibmm, cairomm, pangomm, atkmm and libsigc++ to be built with that option enabled. 2020-06-17 Kjell Ahlstedt docs/reference/meson.build: Improve the update for Doxygen >= 1.8.16 Move some code from meson.build to doc-install.pl (in mm-common), where regular expressions can be used. 2020-06-15 Kjell Ahlstedt docs/reference/meson.build: Update for Doxygen >= 1.8.16 Doxygen 1.8.16 and later does not store tag file names in the html files. This requires changes in meson.build and in doc-install.pl (in mm-common). Otherwise references to other modules won't be updated in the html files when they are installed. 2020-06-08 Chun-wei Fan Drop gendef from the sources Since we will be using __declspec(dllexport) for all Visual Studio builds of gtkmm master, we don't need to keep gendef in the sources, so it's time to drop it. 2020-06-08 Chun-wei Fan NMake Makefiles: Stop using gendef.exe Since the code is ready to use __declspec(dllexport) to export the symbols from gdkmm and gtkmm, stop building and using gendef.exe. Also make sure that we generate and build the gdkmm sources and headers before we attempt to generate or build the gtkmm sources and headers. gendef.exe will be dropped in the next commit 2020-06-08 Chun-wei Fan Meson: Build gtkmm directly for all builds The gdkmm and gtkmm headers have GDKMM_API and GTKMM_API at all the needed points, so there is no longer need to build gtkmm first as a static library for Visual Studio builds. This also marks the end of using gendef.exe for Meson+Visual Studio builds 2020-06-08 Chun-wei Fan gtk/gtkmm/*.h: Mark classes and APIs with GTKMM_API This will enable us to use compiler directives, where needed, to export symbols from the built shared gtkmm library without extra tools, such as gendef.exe on Visual Studio builds. 2020-06-08 Chun-wei Fan gtk/src/*.hg: Mark classes and APIs with GTKMM_API Mark the classes and APIs, along with the generated items where necessary, with GTKMM_API, so that can use compiler directives to export symbols from the built library directly without the need of other tools (e.g. gendef.exe) on compilers where this is necessary. 2020-06-08 Chun-wei Fan class_gtkobject.m4: Add ability to decorate generated classes Add an optional `__FUNC_DECORATION__` (eighth) parameter to _CLASS_GTKOBJECT so that we can use it to decorate the classes, functions and methods with __FUNC_DECORATION__ if it is needed, so that we can use that to export the symbols without using additional tools if the compiler does not support automatic all-symbol exporting or export by regex, or when we want to have a more fine-grained approach to how we want to export the symbols, as in the case of Visual Studio builds. 2020-06-08 Chun-wei Fan gdk/gdkmm/*.h: Mark classes and APIs with GDKMM_API This will prepare gdkmm to export symbols via compiler directives instead of using gendef.exe. 2020-06-08 Chun-wei Fan gdk/src/*.hg: Mark classes and APIs with GDKMM_API This will mark the classes, along with the APIs and generated methods, with GDKMM_API, as appropriate, so that we can export the gdkmm APIs with compiler directives instead of using gendef.exe on Visual Studio. 2020-06-08 Chun-wei Fan gtk/gtkmmconfig.h.[meson|in]: Re-organize GTKMM_API definitions This way, we can update the public headers and use this macro to export symbols without using gendef if the classes and methods are marked adequately. 2020-06-08 Chun-wei Fan gdk/gdkmmconfig.h.[meson|in]: Add GDKMM_API This enables us to use this macros later in public headers so that we can export symbols from the DLLs using compiler directives, instead of gendef, if we marked classes and APIs/methods sufficiently. 2020-06-08 Chun-wei Fan NMake Makefiles: Fix header "installation" We need to look for the headers in $(srcroot)/untracked. We were also missing the rules to copy the headers that were freshly-generated for gtkmm, like we did for gdkmm 2020-06-08 Chun-wei Fan NMake Makefiles: Fix building test programs Make sure we have rules for building the gdk_rgba test program. 2020-06-07 Kjell Ahlstedt Add Gtk::ShortcutController and ShortcutManager These classes are probably not very useful without C++ bindings of GtkShortcut, GtkShortcutAction and GtkShortcutTrigger. I add them now because ShortcutManager is an interface, implemented by Window and Popover. New classes can be added in the future. An implemented interface can't be added to an existing class after the first stable version of gtkmm4 has been released. 2020-06-05 Kjell Ahlstedt README: Update with instructions for building gtkmm 2020-06-04 Chun-wei Fan Update Visual Studio NMake README Let people know of the new USE_MESON_LIBS option and the implications that may be involved 2020-06-04 Chun-wei Fan NMake Makefiles: Support linking to Meson-built -mm libraries Add a command line option USE_MESON_LIBS=1 which can be used to link the gtkmm items to Meson-built -mm dependencies, which saves one from needing to manually edit the NMake Makefiles. Note that one must choose to either link to all -mm dependencies built with Meson or all -mm dependencies built with NMake. 2020-06-04 Chun-wei Fan NMake Makefiles: Support building from Meson tarballs Make the NMake Makefiles look for the sources and headers in $(srcroot)/untracked as well. This allows builds from Meson-generated release tarballs directly using NMake after running 'nmake /f Makefile.vc CFG=$(CFG) prep-git-build' 2020-06-04 Chun-wei Fan gtkmm: Fix building on Visual Studio When we invoke gendef.exe in this case, we must include both the static gdkmm library and the (temporary) static gtkmm library, so that we can have the complete list of symbols that we want to export from the final gtkmm DLL. 2020-06-04 Chun-wei Fan meson.build: Always use gendef.exe for Visual Studio, for now The gtkmm headers and gmmproc .m4 files need to be updated so that we can use __declspec(dllexport) to export the classes and APIs in gdkmm and gtkmm, so before that happens, we stick to always using gendef.exe for now. When the headers and .m4 files do get updated, we will drop gendef.exe from gtkmm master since we already depended on a glibmm version that has the infrastructure in place to generate headers with the appropriate decorations 2020-06-04 Kjell Ahlstedt Add support for building gtkmm with Meson gtkmm-4.0 can be built with either Autotools or Meson. New files have been copied from gtkmm-3.0 and modified. See MR !27 2020-06-04 Chun-wei Fan NMake Makefiles: Use /utf-8 This makes it easier to build gtkmm on East Asian locales so that we can avoid unicode handling issues in the compiler, which can lead to errors and/or broken builds, without needing to re-set the system non-Unicode locale settings to a Western/English locale. 2020-06-02 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (add Gtk::WindowHandle, etc.) There are many new classes in gtk. Most of them are not yet wrapped in gtkmm. 2020-06-02 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_extra_objects.defs 2020-05-27 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (remove application menus, etc.) Remove Gtk::Application::set_app_menu() and other app_menu methods. Gtk::Window_Class::dispose_vfunv_callback(): Call gtk_widget_hide() and Gtk::Window::on_window_hide(). Other changes. 2020-05-27 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gdk_signals.defs.patch, gtk_vfuncs.defs and tools/extra_defs_gen/generate_defs_gtk.cc 2020-05-19 Kjell Ahlstedt Fix crashing demos and tests * gtk/gtkmm/object.cc: Initialize Window and its subclasses as not managed. * gtk/src/window.ccg: dispose_vfunc_callback(): Call GtkWindow's "dispose" vfunc. The destruction of windows has been changed a lot in gtk. It would be difficult to make the destrucyion work without letting gtk's vfunc do its job. Let's hope that it does not cause too many problems elsewhere in C++ code that uses gtkmm. * demos/gtk-demo/demowindow.cc: Call Window::set_hide_on_close(). * tests/builder/main.cc: Set the window's hide-on-close property. 2020-05-19 Kjell Ahlstedt Remove tests/menu_destruction/main.cc It should have been removed when Gtk::Menu was removed. 2020-05-17 Kjell Ahlstedt demos, tests: Fix modal dialogs Make modal dialogs work without the removed Gtk::Dialog::run(). There are still other problems, like crashing demos and tests. 2020-05-14 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (remove Gtk::Bin and Container, etc.) The removal of GtkBin and GtkContainer has required changes in all classes that inherited from those classes. There are no longer Container::add() and Container::remove() methods. Each type of container widget has its own methods for adding and removing children. gtk_dialog_run() has been removed, which affects most uses of Gtk::Dialog and its cubclasses. There are problems with this patch. At the time of writing everything compiles and links. But many test programs and demo programs crash, or misbehave in other ways. Gtk::Dialog::run() has not been correctly replaced everywhere. 2020-05-14 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_extra_objects.defs, gtk/src/gtk_vfuncs.defs and tools/extra_defs_gen/generate_defs_gtk.cc 2020-05-10 Kjell Ahlstedt gtk/gtkmm/filelist.am: Remove border.h border.h and border.cc are generated files since about 10 years. border.hg is listed in gtk/src/filelist.am. 2020-05-03 Kjell Ahlstedt Remove the docs/reference/images/stock directory * docs/reference/Doxyfile.in: Remove docs/reference/images/stock/* from IMAGE_PATH. * docs/reference/images/stock/*: Remove all these image files. Stock images have been removed from gtk4 and gtkmm4. 2020-04-26 Kjell Ahlstedt Gtk::EventControllerFocus: Fix its misspelt name 2020-04-25 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (remove Gtk::ShadowType, etc.) This is the third time gtk has made a major change to GdkEvent. First (in gtk3) it was a union. Then it was a class derived from GObject. Then it was a boxed type. Now it's a fundamental type (registered with g_type_register_fundamental()). 2020-04-25 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update these files: * gtk/src/gtk_vfuncs.defs: set_focus_child_vfunc() was moved from Container to Widget. * tools/gen_scripts/gdk_generate_extra_defs.sh: gdk_signals.defs must be patched now (GdkEvent -> GdkEvent*). * gdk/src/gdk_signals.defs.patch: New file 2020-04-11 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (remove Gtk::AccelGroup, etc.) Remove namespace AccelMap. Remove class AccelGroup and move remaining static functions to namespace Accelerator. Gtk::ScaleButton inherits from Widget (was from Button). Many minor updates. 2020-04-11 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update tools/extra_defs_gen/generate_defs_gdk.cc, tools/extra_defs_gen/generate_defs_gtk.cc, gdk_docs_override.xml, gtk_docs_override.xml 2020-04-10 Chun-wei Fan NMake Makefiles: Mention about the 'prep-git-build' target Let people know how it may be used to build from GIT checkouts. 2020-04-10 Chun-wei Fan NMake Makefiles: Speed up builds Use 'md' to create the intermediate directories instead of making use of NMake Makefile rules. By doing so we can reduce re-loading the NMake Makefiles, which can cut down on build times. 2020-04-10 Chun-wei Fan NMake Makefiles: Silence warnings C4251 and C4275 Since we are building against glibmm and pangomm (and soon atkmm) that have been converted to use __declspec(dllimport) for symbol import, we don't really need to bother about those warnings (and we are pretty much going to use the same CRT DLLs for all the -mm dependencies). 2020-04-10 Chun-wei Fan NMake Makefiles: Support generating sources with gmmproc This way, we can support building directly from GIT checkouts, after running the 'prep-git-build' target. This will require the latest .m4 files and gmmproc from glibmm, atkmm and pangomm master, along with PERL with XML::Parser and some common *nix utilities. Update the build info so that people know what options they may need to make use of this new build feature. At the same time, improve the 'clean' target so that we can reduce the spew when the test programs are not built. Also add MSVC_NMake/pkg-ver.mak into .gitignore, as it is generated. 2020-04-10 Chun-wei Fan NMake Makefiles: Add rules to generate versioned items This adds rules to generate gtkmm/gtkmm.rc and [gdk|gtk]mm/[gdk|gtk]mmconfig.h from their .in counterparts by reading from configure.ac. 2020-04-10 Chun-wei Fan NMake Makefiles: Split outdir and intdir by toolset version This reduces the likelihood of builds done by different Visual Studio versions, which could lead up to much trouble 2020-04-10 Chun-wei Fan NMake Makefiles: Add default Vulkan SDK path The LunarG Vulkan SDK installer adds an envvar VULKAN_SDK to the system, so we can use it as a default PATH for finding the headers and libraries for the Vulkan SDK. 2020-03-23 Kjell Ahlstedt Gdk: Add DragSurface, Popup, Toplevel, ToplevelLayout 2020-03-22 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (remove Gdk::Surface methods, etc.) Incomplete list of changes: * gdk/src/surface.[ccg|hg]: Remove many methods. * gtk/src/window.[ccg|hg]: Remove focus methods and some other methods. 2020-03-22 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update tools/extra_defs_gen/generate_defs_gdk.cc 2020-03-17 Kjell Ahlstedt Use glibmm-2.66 instead of glibmm-2.64 We have changed the ABI name in glibmm. 2020-03-10 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (add Gtk::DragIcon, etc) * gtk/src/dragicon.[ccg|hg]: * gtk/src/droptargetasync.[ccg|hg]: New files. * gtk/src/widget.[ccg|hg]: Remove property_expand() and property_margin(). Remove modal grab methods. Many other changes. 2020-03-10 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gtk_docs_override.xml, gtk_signals.defs.patch, tools/extra_defs_gen/generate_defs_gtk.cc 2020-02-24 Kjell Ahlstedt Gdk, Gtk: Update for the latest gtk4 (Gdk::Event updated, etc) * gdk/src/event.[ccg|hg]: GdkEvent is now a boxed type. Many new methods. * gdk/src/events.[ccg|hg]: Removed. Gdk::Event does not have subclasses. * gdk/src/popuplayout.[ccg|hg]: New files. * gdk/src/types.[ccg|hg]: Remove AtomStringTraits and AtomUstringTraits. GdkAtom has been removed. * gtk/src/dropcontrollermotion.[ccg|hg]: * gtk/src/eventcontrollerfocus.[ccg|hg]: New files. * gtk/src/selectiondata.[ccg|hg]: * gtk/gtkmm/selectiondata_private.[cc|h]: * tools/m4/class_gdkevent.m4: Removed. Many other changes. 2020-02-24 Kjell Ahlstedt Gdk, Gtk: Regenerate docs.xml and .defs files and update gdk_docs_override.xml, gdk_extra_objects.defs, gtk_vfuncs.defs, tools/extra_defs_gen/generate_defs_gtk.cc