GTK+

GTK+[1] is a mature, efficient widget set. It provides a modern look-and-feel while remaining flexible and efficient. GTK+ provides the application developer with a powerful object system that has the ability to dynamically query and modify objects and widgets at run—time. GTK+ is an extensible toolkit; for example, GNOME has built-in, high-level widgets to speed up the GNOME application development cycle. The user will enjoy GTK+ because of the powerful theme engine that allows them to change the look of all GTK+ applications with one easy-to-use tool.

There are several reasons to use GTK+ including the licensing, the language bindings, internationalization, and the drag and drop support. Each of these are explored in more detail here.

The License. The license covering the GTK+ widget set is the Library General Public License (LGPL)[2]. This license is very similar to the General Public License (GPL)[3], except that you may link any application to the widget set no matter if that application is free or proprietary software.

Language Bindings. Because of the open nature of GTK+ development, many people have contributed language bindings for GTK+. There are already many languages besides C that can be used to create a GTK+ application. These languages include: C++, Perl, Python, Pascal, Objective C, Guile, and Ada.

Internationalization. GTK+ supports international[4] text display and input by utilizing the X Input Method extension. Because of such support, your applications can immediately be used with languages that require non-Roman character sets, such as those in Asia.

Drag and Drop. GTK's drag and drop[5] functionality supports both the Xdnd[6]and Motif[7]drag and drop protocols which allow for use of drag and drop functionality with other widget sets that support these protocols. Applications written in widget sets such as Motif or Qt that correctly support these protocols will also be able to share drag and drop functionality with GTK+ applications. This support is a breakthrough in providing the user backwards compatibility with their older applications.


Notes

[1]

GTK+ homepage

[2]

The GNU hompage

[3]

The GNU hompage

[4]

GTK+ Internationalization whitepaper

[5]

GTK+ Drag and Drop Whitepaper

[6]

The Xdnd protocol

[7]

Motif