Open SourceThe day before the release of GNOME 3.8 was released stable release of a  multi-platform toolkit for creating graphical user interfaces – GTK + 3.8.0.

GTK + 3.8 is fully backward compatible with previous releases of GTK + series 3.x.

The composition toolkit includes a complete set of widgets, GTK + allows to use for projects at various levels and sizes. GTK + code developed within the GNU Project and is licensed under the LGPL, which allows you to use GTK +, not only for the development of free software, but also to create proprietary applications not requiring manufacturers Closed, royalty payments or purchase a special license. Since then, as GTK + has been developed as part of GIMP, toolkit is used in various projects, for example, GTK + is the basis of desktop environments GNOME and Xfce or used in products such as Firefox and OpenOffice / LibreOffice.

GTK + is designed to support, not only C / C + +, and other languages, such as Perl and Python, which in combination with the use of a visual interface builder Glade allows to simplify the design and reduce the time of writing GUIs. Organization O GTK + is abstracted from the type of window systems, for example, comes back-end, which provides the opportunity to work on top of the display server Wayland, as well as the back-end that allows to draw a conclusion GTK + library in the web-browser (running Gtk-application on the same machine, you can open the web- browser on another machine and access to the interface of the program.)

GTK + 3.8.0 improvements include:

– Support the protocol Wayland 1.0. Backend, which provides the ability to work over the display server Wayland, has been available before, but supported an early experimental API Wayland, which was stabilized only after the release of Wayland 1.0;

– Processing GDK-backend Broadway, can render output GTK3 + libraries in the web-browser. In the back-end changes to handle connections using a separate process broadwayd, which is similar to the X-server takes care of handling all the problems in the interaction with client applications, the work that is organized through a browser. To process requests via HTTP in the broadwayd enabled http-server implementation, and provide the ability to run additional processes broadwayd, which perform similar functions with separate X-sessions when accessed through the Web. Thus, the user can now easily run broadwayd and implement such schemes as work in one browser window with several Gtk-applications or opening multiple browser sessions.

– Improved API to create visual themes, style description which is set in CSS-like view with the ability to change the style on the fly. In the new version of the revised and expanded tools for working with fonts: the default font settings is now perceived as the initial values, and not hard settings that can be changed. Added support for CSS-properties to set these parameters define the fonts and font sizes in relative terms (eg, xx-small, medium, smaller, larger).

– Enhanced tools to customize the fields to enter text using touch screens, and established watermarking when rendering the menu. Drawing GtkFrame now done in the background. The level of transparency can be set individually for any instances GtkWidget, not only on the elements of the first level.

– Manage the geometry: Group size can now be determined by the height of the task with automatic calculation of the width. Invisible widgets now return size 0, which allows the use GtkWidget :: visible on the analogy of “display: none” in the CSS (to take effect “visibility: hidden” in CSS, use GtkNotebook with a blank page);

– Added support for pop-up windows, which you can display the context menu instead of using the devices with touch screens;

– In the print dialog is now automatically displays a list of available printers, which can be determined through the service avahi (valid only in the assembly – enable-avahi-browsing);

– In GtkTreeView GtkIconView and added the possibility of activation in one click;

– Added support for the protocol window manager for frame synchronization, which allows to take into account when drawing the conclusion readiness composite manager. The protocol allows applications to inform the window manager of the need to delay the update until the output buffer in the rendering of interface elements, thus avoiding situations output partly drawn by the window to increase the smoothness of scaling and rendering;

– Extensive work to increase productivity: optimized text rendering in GtkLabel and other widgets, reduced the number of unnecessary copying operations when the size of the group, to speed up loading icon cache enabled GtkIconInfo, to speed up the CSS code is involved with the tree selectors;

– Removed support for color schemes. Deprecated the ability to create your own properties CSS. Dropped support calls: gtk_style_provider_get_style, gtk_style_provider_get_icon_factory, gtk_style_context_set_direction, gtk_window_set_opacity, GtkGradient and GtkSymbolicColor;

– Changed the implementation of the object GtkIconInfo, which is no longer tied to a GObject mechanism Boxed Types. Despite the fact that, technically, a change in ABI, in practice the use Boxed Types all existing code will work without any changes and can not be used outside GtkIconInfos Gtk.

At the same time introduced a new stable branch graphics library Clutter – 1.14.0, API and ABI is backwards compatible with previous versions of the library. Clutter is actively used for the operation of the user interface in GNOME 3 project. Clutter library functions are focused on the active use of animation and visual effects, it can be used for standard GUI application methods used in game development. In this case, the library resembles the game engine, in which the maximum number of operations imposed on the shoulders of GPU. One of the main advantages of Clutter is that to build a sophisticated user interface is required to write a minimum of code. The library can run on top of OpenGL, GLib, GObject, GLX, SDL, WGL, Quartz, EGL and Pango. There are language bindings for Perl, Python, C #, C + +, Vala and Ruby.

Of the changes in a new branch Clutter stands providing extension support XInput 2.x as the default system input processing when working on top of X11. On the practical side, switching to XInput 2.x will lead to the availability of the box support for event recognition and gestures from the touch screen. Added a new class ClutterTapAction the implementation of a simple gesture by touching the touch screen. To optimize the re-rendering involved a separate buffer, which allowed to increase productivity and get rid of the artifacts in the process of updating the contents of the screen. Added support for simultaneous assembly Wayland backend to the client and the server composite.

Additionally, you can celebrate the new testing branch Glade 3.15.0, tools for rapid development of interfaces for applications based on GTK +. Created in Glade interface is saved as XML, which can then be dynamically loaded into the GTK-application using object GtkBuilder. XML-interface definition files can be used in GTK-programs in different programming languages, including C, C + +, C #, Vala, Java, Perl and Python. A key improvement in Glade 3.15 is the implementation interface support Drag & Drop – Widgets now can freely drag and drop between workspaces Glade. Additionally marked change of the interface property editor, which released more vertical screen space, allowing more time to display the available properties.

Main link to news: