GTK+ 3.20

2016-03-21 Thread Matthias Clasen
GTK+ 3.20.0 is now available for download at:

 http://download.gnome.org/sources/gtk+/3.20/

sha256 sum:

1c3d3a4a6e959ec8636ccb074bcdb8fa25c81ec56fbc70de6a3f5ef83ba6d803
gtk+-3.20.0.tar.xz


What is GTK+


GTK+ is a multi-platform toolkit for creating graphical user interfaces.
Offering a comprehensive set of widgets as well as facilities for creating
your own widgets, GTK+ is suitable for projects ranging from small one-off
tools to complete application suites.

GTK+ has been designed from the ground up to support a range of languages,
not only C/C++. Using GTK+ from languages such as Python, Vala and JavaScript
(especially in combination with gobject-introspection and the Glade GUI builder)
provides an effective method of rapid application development.

GTK+ is free software and part of the GNU Project. However, the licensing terms
for GTK+, the GNU LGPL, allow it to be used by all developers, including those
developing proprietary software, without any license fees or royalties.

Since its origins as the toolkit for the GNU Image Manipulation Program (GIMP),
GTK+ has been used in a wide range of software. Notably, GTK+ is the foundation
of the GNOME desktop.


What's new in 3.20
==

Major new features include:

* The CSS machinery now uses element names for widgets and their components

* CSS margins, borders, padding and min-width and min-height are now much more
  consistently supported

* CSS features that have been added: radial gradients, recoloring symbolic
  icons, image(), calc(), rem

* Help overlays to document keyboard shortcuts and gestures

* GTK+ now reads .XCompose files

* GTK+ can use native file choosers on Windows

* A HighContrastInverse theme has been added

* The Wayland backend has full support for DND, kinetic scrolling, startup
  notification, primary selection, presenting windows, bell.

* Deprecations and removals: Style properties, testing infrastructure,
  geometry support in window sizing, GdkDeviceManager,
  gtk_text_iter_begins_tag, gdk_display_get_screen


For more details and lists of fixed bugs, see the NEWS file that is
included in the tarball, or see:

 http://git.gnome.org/browse/gtk+/plain/NEWS?id=3.20.0

For concerns about porting from older GTK+ releases, see the README file
that is included in the tarball, or see:

http://git.gnome.org/browse/gtk+/plain/README.in?id=3.20.0


Where to get more information about GTK+


Information about GTK+ including links to documentation can be found at:

 http://www.gtk.org/

An installation guide for GTK+ is found at:

 http://library.gnome.org/devel/gtk3/stable/gtk-building.html

Common questions:

 http://library.gnome.org/devel/gtk3/stable/gtk-question-index.html


Contributing


GTK+ is a large project and relies on voluntary contributions. We are actively
searching for new contributors in various areas and invite everyone to help
project development. If you are willing to participate, please subscribe to
the project mailing lists to offer your help and read over our list of vacant
project tasks:

http://live.gnome.org/GTK+/Roadmap


Thanks to the many people who contributed to this release in the form of bug
reports, patches and translations.


March 21, 2016
Matthias Clasen
___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list


glistmodel.h:G_DECLARE_INTERFACE(GListModel,

2016-03-21 Thread Stefan Salewski
Have started building the 3.20 bindings for Nim language...

Currently we are not using GObject Introspection but generate the
bindings from the header files using the Nim tool c2nim.

~/Downloads/glib-2.47.92/gio $ grep GListModel *.h
glistmodel.h:G_DECLARE_INTERFACE(GListModel, g_list_model, G, LIST_MODEL, 
GObject)
glistmodel.h:struct _GListModelInterface
glistmodel.h:  GType (* get_item_type)   (GListModel *list);
glistmodel.h:  guint (* get_n_items) (GListModel *list);
glistmodel.h:  gpointer  (* get_item)(GListModel *list,
glistmodel.h:GType   g_list_model_get_item_type 
 (GListModel *list);
glistmodel.h:guint   g_list_model_get_n_items   
 (GListModel *list);
glistmodel.h:gpointerg_list_model_get_item  
 (GListModel *list,
glistmodel.h:GObject *   g_list_model_get_object
 (GListModel *list,
glistmodel.h:voidg_list_model_items_changed 
 (GListModel *list,
stefan@AMD64X2 ~/Downloads/glib-2.47.92/gio $ grep G_DECLARE_INTERFACE *.h
glistmodel.h:G_DECLARE_INTERFACE(GListModel, g_list_model, G, LIST_MODEL, 
GObject)


So for glistmodel.h struct ListModel is not explicitly declared but
generated by G_DECLARE_INTERFACE macro. Can not remember having seen
that before in header files, only in examples. Is this an exception or
the new way to go for GTK headers? Does that work well for
introspection? I guess for Nim and c2nim that is not a big problem, we
have only to build that macro in Nim. 


___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list