GTKSharp
   HOME

TheInfoList



OR:

GTK (formerly GIMP ToolKit and GTK+) is a
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
for creating
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s (GUIs). It is licensed under the terms of the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
, allowing both free and
proprietary software Proprietary software is computer software, software that grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing t ...
to use it. It is one of the most popular toolkits for the Wayland and
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
windowing systems. The GTK team releases new versions on a regular basis. GTK 4 and GTK 3 are maintained, while GTK 2 is end-of-life. GTK1 is independently maintained by the
CinePaint CinePaint is a free and open source computer program for painting and retouching bitmap frames of films. It is a fork of version 1.0.4 of the GNU Image Manipulation Program (GIMP). It enjoyed some success as one of the earliest open source ...
project.


Software architecture

The GTK
library A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
contains a set of graphical control elements ( widgets); version 3.22.16 contains 186 active and 36 deprecated widgets. GTK is an
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
written in the programming language C; it uses
GObject The GLib Object System, or GObject, is a free software, free software library providing a portable object system and transparent cross-language interoperability. GObject is designed for use both directly in C (programming language), C programs ...
(that is, the
GLib GLib is a bundle of three (formerly five) low-level system libraries written in C and developed mainly by GNOME. GLib's code was separated from GTK, so it can be used by software other than GNOME and has been developed in parallel ever since ...
object system) for object orientation. While GTK is mainly used with windowing systems based on
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
and Wayland, it works on other platforms, including
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
(interfaced with the
Windows API The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs can acces ...
), and
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
(interfaced with
Quartz Quartz is a hard, crystalline mineral composed of silica (silicon dioxide). The Atom, atoms are linked in a continuous framework of SiO4 silicon–oxygen Tetrahedral molecular geometry, tetrahedra, with each oxygen being shared between two tet ...
). There is also an
HTML5 HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
back-end named ''Broadway''. GTK can be configured to change the look of the widgets drawn; this is done using different display engines. Several display engines exist which try to emulate the look of the native widgets on the platform in use. Starting with version 2.8, released in 2005, GTK began the transition to using
Cairo Cairo ( ; , ) is the Capital city, capital and largest city of Egypt and the Cairo Governorate, being home to more than 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, L ...
to render most of its graphical control elements widgets. Since GTK version 3.0, all rendering is done using Cairo. On January 26, 2018 at DevConf.cz, Matthias Clasen gave an overview of the current state of GTK 4 development, including a high-level explanation of how rendering and input worked in GTK 3, what changes are being made in GTK 4 (>3.90), and why. On February 6, 2019 it was announced that GTK 4 will drop the “+” from the project's name.


GTK Drawing Kit (GDK)

GDK acts as a wrapper around the low-level functions provided by the underlying windowing and graphics systems.


GTK Scene Graph Kit (GSK)

GSK is the rendering and scene graph API for GTK. GSK lies between the graphical control elements (widgets) and the rendering. GSK was finally merged into GTK version 3.90 released March 2017.


GtkBuilder

GtkBuilder allows user interfaces to be designed without writing code. The interface is described in an
Extensible Markup Language Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The Wor ...
(XML) file which is written by hand or generated by a GUI designer, which is then loaded at runtime and the objects created automatically. The description of the user interface is independent from the programming language being used.


Language bindings

Language bindings are available for using GTK from languages other than C, including C++, Genie,
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
,
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
, Python, Vala, and others.


Backends

GTK supports various backends, which provides different ways to display GTK applications depending on the system and environment. Examples of GTK backends are: * Wayland – Used with the Wayland display server on Linux systems, it is a modern replacement for X11. *
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
– The default on Linux systems using the X.Org display server. *
Win32 The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs can acces ...
– For running GTK applications on Windows. *
Quartz Quartz is a hard, crystalline mineral composed of silica (silicon dioxide). The Atom, atoms are linked in a continuous framework of SiO4 silicon–oxygen Tetrahedral molecular geometry, tetrahedra, with each oxygen being shared between two tet ...
– For macOS support. * Broadway – Allows GTK applications to run in web browsers using
HTML5 HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
and
WebSocket WebSocket is a computer communications protocol, providing a full-duplex, simultaneous two-way communication channel over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the Internet Engineering ...
.


Development tools


GUI designers

There are several GUI designers for GTK. Here is a selection of GTK GUI designers: * Cambalache - a successor to Glade, supports GTK 4. * Glade - supports GtkBuilder, which is a GTK built-in GUI description format. (not actively maintained) *
Gazpacho Gazpacho () or gaspacho (), also called Andalusian gazpacho (from Spanish ''gazpacho andaluz''), is a cold soup and drink made of raw, blended vegetables. It originated in the southern regions of the Iberian Peninsula and spread into other are ...
- GUI builder for the GTK toolkit written in Python * Crow Designer - relies on its own GuiXml format and GuiLoader library. * Stetic - part of MonoDevelop, oriented toward Gtk#. * Gambas (since version 2.0 atop
BASIC Basic or BASIC may refer to: Science and technology * BASIC, a computer programming language * Basic (chemistry), having the properties of a base * Basic access authentication, in HTTP Entertainment * Basic (film), ''Basic'' (film), a 2003 film ...
) *
Xojo The Xojo programming environment and programming language is developed and commercially marketed by Xojo, Inc. of Austin, Texas for software development targeting macOS, Microsoft Windows, Linux, iOS, Android, the Web and Raspberry Pi. Xojo uses ...
* Lazarus (on Linux defaults to interfacing with GTK 2)


GTK Inspector

The GTK Inspector is a built-in interactive debugging tool in GTK, allowing developers to inspect and modify UI elements, test CSS changes, and analyze widget structure in real time. It can be enabled using the Control + Shift + I or Control + Shift + D shortcuts, or by setting the GTK_DEBUG=interactive environment variable. It was introduced with GTK version 3.14.


Features

* Interactive debugging * Real-time CSS testing and modifications * Widget magnification for detailed inspection * UI structure analysis and object property examination * Customizable display settings via environment variables * Detailed object inspection (type, state, properties, CSS, actions, etc.) * Global application information display * CSS rule debugging * Rendering pipeline recording and inspection


Development

GTK is mainly developed by
The GNOME Project GNOME Project is a community behind the GNOME desktop environment and the software platform upon which it is based. It consists of all the software developers, artists, writers, translators, other contributors, and active users of GNOME. The GNO ...
, which also develops the GNOME Development Platform and the GNOME Desktop Environment. GTK is mainly written in C. Many
language binding In programming and software design, a binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to ...
s are available. GTK development is loosely managed. GNOME developers and users gather at an annual ''GNOME Users And Developers European Conference'' GUADEC meeting to discuss GNOME's current state and future direction. GNOME incorporates standards and programs from
freedesktop.org freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operatin ...
to better
interoperate Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader de ...
with other desktops. Many GNOME applications have been ported to GTK 4, which was released in December 2020, however some still use GTK+ 3 (
GIMP Gimp or GIMP may refer to: Clothing * Bondage suit, also called a gimp suit, a type of suit used in BDSM * Bondage mask, also called a gimp mask, often worn in conjunction with a gimp suit Embroidery and crafts * Gimp (thread), an ornamental tr ...
being a major one).


Build automation

The master branch of GTK utilizes
Meson In particle physics, a meson () is a type of hadronic subatomic particle composed of an equal number of quarks and antiquarks, usually one of each, bound together by the strong interaction. Because mesons are composed of quark subparticles, the ...
for its build automation. GTK (and GNOME, GLib, etc.) formerly utilized the
GNU Build System The GNU Autotools, also known as the GNU Build System, is a suite of build automation tools designed to support building source code and packaging the resulting binaries. It supports building a codebase for multiple target systems without custom ...
(named Autotools) as the
build automation Build automation is the practice of building software systems in a relatively unattended fashion. The build is configured to run with minimized or no software developer interaction and without using a developer's personal computer. Build automati ...
system of choice. Since August 14, 2017, the Autotools build system files have been dropped.


Criticism

The most common criticism of GTK is the lack of backward-compatibility in major updates, most notably in the
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
(API) and theming. The result is that application developers or theme developers have to rewrite parts of their code to make it work with a newer version of GTK. The compatibility breaks between minor releases during the GTK 3.x development cycle was explained by Benjamin Otte as due to strong pressures to innovate, such as providing the features modern users expect and supporting the increasingly influential
Wayland display server protocol Wayland may refer to: Computers * Wayland (protocol), a graphical display system for Unix-like computers Fiction * Jace Wayland, a character in the ''Mortal Instruments'' book series * Wayland (''Star Wars''), a planet in the ''Star Wars'' fic ...
. With the release of GTK 4, the pressure from the need to innovate will have been released and the balance between stability and innovation will tip toward stability. Similarly, recent changes to theming are specifically intended to improve and stabilise that part of the API, meaning some investment now should be rewarded later. * Aurélien Gâteau started Gwenview as GTK application but switched to qt early in development. * Dirk Hohndel, codeveloper of Subsurface and member of
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
's Open-Source Technology Center, criticized the GTK developers for being abrasive and ignoring most community requests. * Hong Jen Yee, developer of
LXDE LXDE (abbreviation for Lightweight X11 Desktop Environment) is a Free and open-source software, free desktop environment with comparatively low resource requirements. This makes it especially suitable for use on older or resource-constrained pe ...
(the GTK version of which was dropped and all efforts focused on the Qt port), expressed disdain for version 3 of the GTK toolkit's radical API changes and increased memory usage, and ported PCMan File Manager (PCManFM) to Qt. PCManFM is being developed with a GTK and with a Qt backend at the same time. * The Audacious music player moved to Qt in version 3.6. The reasons stated by the developers for this include a transition to client-side window decorations, which they claim cause the application to look "
GNOME A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
-y and out of place." *
Wireshark Wireshark is a Free and open-source software, free and open-source packet analyzer. It is used for computer network, network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, ...
has switched to Qt due to not having a good experience with GTK's cross-platform support.


Use


Applications

Some notable applications that use GTK as a widget toolkit include: * Ardour, a
digital audio workstation A digital audio workstation (DAW ) is an electronic device or application software used for Sound recording and reproduction, recording, editing and producing audio files. DAWs come in a wide variety of configurations from a single software pr ...
(DAW) *
Deluge A deluge is a large downpour of rain, often a flood. The Deluge refers to the flood narrative in the biblical book of Genesis. Deluge or Le Déluge may also refer to: History *Deluge (history), the Swedish and Russian invasion of the Polish-L ...
, a
BitTorrent BitTorrent is a Protocol (computing), communication protocol for peer-to-peer file sharing (P2P), which enables users to distribute data and electronic files over the Internet in a Decentralised system, decentralized manner. The protocol is d ...
client * Foliate, an
ebook An ebook (short for electronic book), also spelled as e-book or eBook, is a book publication made available in electronic form, consisting of text, images, or both, readable on the flat-panel display of computers or other electronic devices. A ...
reader *
GIMP Gimp or GIMP may refer to: Clothing * Bondage suit, also called a gimp suit, a type of suit used in BDSM * Bondage mask, also called a gimp mask, often worn in conjunction with a gimp suit Embroidery and crafts * Gimp (thread), an ornamental tr ...
, a
raster graphics editor A raster graphics editor (also called bitmap graphics editor) is a computer program that allows users to create and edit images interactively on the computer screen and save them in one of many raster graphics file formats (also known as bitmap ...
*
GNOME Core Applications The GNOME Core Applications (also known as Apps for GNOME) are a software suite of software applications that are packaged as part of the standard free and open-source GNOME desktop environment. GNOME Core Applications have a consistent look and ...
, a collection of applications as a standard bundle of the
GNOME A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
desktop environment * GNOME Circle, a collection of applications created to work within the GNOME ecosystem *
GNOME Evolution GNOME Evolution (formerly Novell Evolution and Ximian Evolution, prior to Novell's 2003 acquisition of Ximian) is the official personal information manager for GNOME. It has been an official part of GNOME since Evolution 2.0 was included with th ...
, a
personal information manager A personal information manager (often referred to as a PIM tool or, more simply, a PIM) is a type of application software that functions as a personal organizer. The acronym PIM is now, more commonly, used in reference to personal information mana ...
*
HandBrake HandBrake is a free and open-source transcoder for digital video files. It was originally developed in 2003 by Eric Petit to make ripping DVDs to a data storage device easier. HandBrake's backend contains comparatively little original code; t ...
, digital video transcoder *
Inkscape Inkscape is a vector graphics editor. It is used for both artistic and technical illustrations such as cartoons, clip art, logos, typography, diagrams, and flowcharts. It uses vector graphics to allow for sharp printouts and renderings at ...
, a
vector graphics editor A vector graphic editor is a computer program that enables its users to create, compose and edit images with the use of mathematical and geometrical commands rather than individual pixels. This software is used in creating high-definition Vector ...
*
LibreOffice LibreOffice () is a free and open-source office productivity software suite developed by The Document Foundation (TDF). It was created in 2010 as a fork of OpenOffice.org, itself a successor to StarOffice. The suite includes applications ...
, an
office suite Productivity software (also called personal productivity software or office productivity software) is application software used for producing information (such as documents, presentations, worksheets, databases, charts, graphs, digital paintin ...
* Lutris, a game manager *
Mozilla Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curren ...
, a
web browser A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
*
Mozilla Thunderbird Mozilla Thunderbird is a free and open-source email client that also functions as a personal information manager with a Digital calendar, calendar and contactbook, as well as an RSS feed reader, chat client (IRC/XMPP/Matrix (protocol), Matrix), ...
, a personal information manager * Pitivi, a video editor * PCSX-Reloaded, a
video game console emulator A video game console emulator is a type of emulator that allows a computing device to emulate a video game console's hardware and play its games on the emulating platform. More often than not, emulators carry additional features that surpass ...
*
REAPER A reaper is a farm implement that reaps (cuts and often also gathers) crops at harvest when they are ripe. Usually the crop involved is a cereal grass, especially wheat. The first documented reaping machines were Gallic reapers that were used ...
, a digital audio workstation (DAW) *
Remmina Remmina is a free and open source remote desktop client for POSIX-based computer operating systems. It supports the Remote Desktop Protocol (RDP), VNC, NX technology, NX, XDMCP, SPICE (protocol), SPICE, X2Go and Secure Shell, SSH protocols and us ...
, a
remote desktop In computing, the term remote desktop refers to a software- or operating system feature that allows a personal computer's desktop environment to be run remotely from one system (usually a PC, but the concept applies equally to a server or a sma ...
client * Transmission, a Bit Torrent client GTK programs can be run on desktop environments based on
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
and Wayland, or others including ones not made with GTK, provided the needed libraries are installed; this includes
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
if X11.app is installed. GTK can be also run on
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
. It is used by some popular cross-platform applications like
Pidgin A pidgin , or pidgin language, is a grammatically simplified form of contact language that develops between two or more groups of people that do not have a language in common: typically, its vocabulary and grammar are limited and often drawn f ...
and
GIMP Gimp or GIMP may refer to: Clothing * Bondage suit, also called a gimp suit, a type of suit used in BDSM * Bondage mask, also called a gimp mask, often worn in conjunction with a gimp suit Embroidery and crafts * Gimp (thread), an ornamental tr ...
.
wxWidgets wxWidgets (formerly wxWindows) is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no s ...
, a cross-platform GUI toolkit, uses GTK on Linux by default. Other ports include DirectFB (for example used by the Debian installer).


Desktop environments

Several
desktop environment In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphi ...
s utilize GTK as the widget toolkit.


Current

*
GNOME A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
, based on GTK, meaning that programs native to GNOME use GTK * Budgie, built from scratch for the SolusOS successor, Solus Operating System *
Cinnamon Cinnamon is a spice obtained from the inner bark of several tree species from the genus ''Cinnamomum''. Cinnamon is used mainly as an aromatic condiment and flavouring additive in a wide variety of cuisines, sweet and savoury dishes, biscuits, b ...
, a fork of GNOME 3 which uses GTK version 3 * MATE, a fork of GNOME 2 which uses GTK 3 since version 1.18 *
Xfce Xfce or XFCE (pronounced as four individual letters, ) is a Free and open-source software, free and open-source desktop environment for Linux and other Unix-like operating systems. Xfce aims to be fast and Lightweight software, lightweight whil ...
, based on GTK 3 since version 4.14 * Pantheon uses GTK 3 & 4, being developed by
elementary OS Elementary OS (stylized as elementary OS) is a Linux distribution based on Ubuntu LTS. It promotes itself as a "thoughtful, capable, and ethical" replacement to macOS and Microsoft Windows, Windows and has a pay what you want, pay-what-you-wan ...
*
Sugar Sugar is the generic name for sweet-tasting, soluble carbohydrates, many of which are used in food. Simple sugars, also called monosaccharides, include glucose Glucose is a sugar with the Chemical formula#Molecular formula, molecul ...
, a desktop environment for youth
primary education Primary education is the first stage of Education, formal education, coming after preschool/kindergarten and before secondary education. Primary education takes place in ''primary schools'', ''elementary schools'', or first schools and middle s ...
, which uses GTK, especially
PyGTK PyGTK is a set of Python (programming language), Python Adapter pattern, wrappers for the GTK graphical user interface library (computer science), library. PyGTK is free software and licensed under the LGPL. It is analogous to PyQt/PySide and w ...
* Phosh, a mobile UI designed for PureOS *
LXDE LXDE (abbreviation for Lightweight X11 Desktop Environment) is a Free and open-source software, free desktop environment with comparatively low resource requirements. This makes it especially suitable for use on older or resource-constrained pe ...
(Lightweight X11 Desktop Environment) is based on GTK 2 * Unity, the former default desktop environment of
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...


Inactive

*
Access Linux Platform The Access Linux Platform (ALP) is a discontinued open-source software based operating system, once referred to as a "next-generation version of the Palm OS," for mobile devices developed and marketed by Access Co., of Tokyo, Japan. The platform ...
(successor of the
Palm OS Palm OS (also known as Garnet OS) is a discontinued mobile operating system initially developed by Palm, Inc., for personal digital assistants (PDAs) in 1996. Palm OS was designed for ease of use with a touchscreen-based graphical user interface. ...
PDA platform) * Consort, the GNOME 3.4 Fallback Mode – fork from Solus * GPE, the GPE Palmtop Environment *
ROX Desktop The ROX Desktop is a discontinued graphical desktop environment for the X Window System. It is based on the ROX-Filer, a drag and drop spatial file manager. It is free software released under the GPL-2.0-or-later. The environment was inspire ...
, a lightweight desktop, with features from the GUI of
RISC OS RISC OS () is an operating system designed to run on ARM architecture, ARM computers. Originally designed in 1987 by Acorn Computers of England, it was made for use in its new line of ARM-based Acorn Archimedes, Archimedes personal computers an ...


Window managers

The following window managers use GTK: * Aewm *
AfterStep AfterStep is a stacking window manager for the X Window System. The goal of AfterStep's development is to provide for flexibility of desktop configuration, improved aesthetics and efficient use of system resources, and was used in such distributi ...
* Amaterus * Consortium *
IceWM IceWM is a stacking window manager for the X Window System, originally written by Marko Maček. It was written from scratch in C++ and is released under the terms of the GNU Lesser General Public License. It is customizable, relatively light ...
* Marco * Metacity * Muffin * Mutter *
Sawfish Sawfish, also known as carpenter sharks, are a family of very large rays characterized by a long, narrow, flattened rostrum, or nose extension, lined with sharp transverse teeth, arranged in a way that resembles a saw. They are among the lar ...
* Wmg * Xfwm


GtkSourceView

For
syntax highlighting Syntax highlighting is a feature of text editors that is used for programming language, programming, scripting language, scripting, or markup language, markup languages, such as HTML. The feature displays text, especially source code, in differe ...
there is GtkSourceView, "source code editing widget". GtkSourceView is maintained by GNOME separately from GTK as a library: gtksourceview. There are plans to rename to gsv.


GtkSpell

GtkSpell is a library separate from GTK. GtkSpell depends on GTK and Enchant. Enchant is a wrapper for ispell,
hunspell Hunspell is a spell checker and morphological analyser designed for languages with rich morphology and complex word compounding and character encoding, originally designed for the Hungarian language. Hunspell is based on MySpell and is backwa ...
, etc., the actual
spell checker In software, a spell checker (or spelling checker or spell check) is a software feature that checks for misspellings in a text. Spell-checking features are often embedded in software or services, such as a word processor, email client, electronic ...
engine/software. GtkSpell uses GTK's GtkTextView widget, to highlight misspelled words and offer replacement.


History

GTK was originally designed and used in the GNU Image Manipulation Program (GIMP) as a replacement of the Motif toolkit; at some point
Peter Mattis Peter Mattis is an American computer programmer, entrepreneur, and business executive. He is the CTO and co-founder for Cockroach Labs, a company he co-founded in 2014. His work as a programmer includes launching GNU Image Manipulation Program ( ...
became disenchanted with Motif and began to write his own GUI toolkit named the GIMP toolkit and had successfully replaced Motif by the 0.60 release of GIMP. Finally GTK was re-written to be
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
and was renamed GTK+. This was first used in the 0.99 release of GIMP. GTK was subsequently adopted for maintenance by the GNOME Foundation, which uses it in the GNOME desktop environment.


GTK 2

The GTK 2.0.0 release (2002) series introduced new features which include improved text rendering using Pango, a new
theme Theme or themes may refer to: * Theme (Byzantine district), an administrative district in the Byzantine Empire governed by a Strategos * Theme (computing), a custom graphical appearance for certain software. * Theme (linguistics), topic * Theme ( ...
engine, improved accessibility using the Accessibility Toolkit, transition to
Unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
using
UTF-8 UTF-8 is a character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode Transformation Format 8-bit''. Almost every webpage is transmitted as UTF-8. UTF-8 supports all 1,112,0 ...
strings, and a more flexible API. Starting with version 2.8, GTK 2 depends on the
Cairo Cairo ( ; , ) is the Capital city, capital and largest city of Egypt and the Cairo Governorate, being home to more than 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, L ...
graphics library for rendering vector graphics.


GTK 3

GTK version 3.0.0 (2011) included revised input device handling, support for themes written with CSS-like syntax, and the ability to receive information about other opened GTK applications. The '+' was dropped returning to simply 'GTK' in February 2019 during a
Hackathon A hackathon (also known as a hack day, hackfest, datathon or codefest; a portmanteau of '' hacking'' and ''marathon'') is an event where people engage in rapid and collaborative engineering over a relatively short period of time such as 24 or 48 h ...
.


GTK 4

Release of the first GTK 4 version was in December 2020. At the 2018 edition of DevConf.cz, Matthias Clasen gave an overview of the then-current state of GTK 4 development, including a high-level explanation of how rendering and input worked in GTK 3, what changes were being made to GTK 4, and the reasons for those changes. Examples of things that have become possible with GTK 4 were given as well. One of the main changes made during the GTK 4 development cycle (i.e. GTK 3.92, etc.) was the removal of user customization options (like individual keyboard shortcuts that could be set in GTK+ 2), and the delegation of functionality to ancillary objects instead of encoding it into the base classes provided by GTK. Other changes include: * Event handling from signal handlers described by GtkWidget is delegated to event controllers. * Rendering is delegated to GtkSnapshot objects. * The layout mechanism is delegated from GtkWidget to GtkLayoutManager.


Releases


See also

* Client-side decoration *
List of widget toolkits This article provides a list of widget toolkits (also known as GUI frameworks), used to construct the graphical user interface (GUI) of programs, organized by their relationships with various operating systems. Low-level widget toolkits Integrat ...
* gtkmm – C++ bindings for GTK *
Enlightenment Foundation Libraries The Enlightenment Foundation Libraries (EFL) are a set of graphics libraries that grew out of the development of Enlightenment, a window manager and Wayland compositor. The project's focus is to make the EFL a flexible yet powerful and easy t ...
(EFL) – widget toolkit written for the Enlightenment window manager * FLTK – a light, cross-platform, non-native widget toolkit * Fox toolkit – a fast, open source, cross-platform widget toolkit * IUP – a multi-platform toolkit for building native graphical user interfaces * Ultimate++ *
Visual Component Library The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications. It is written in Object Pascal. History The VCL was developed by Borland for use i ...
(VCL)


References


Bibliography

* * *


External links

* {{DEFAULTSORT:Gtk+ Application programming interfaces Articles with example C code C (programming language) libraries Cross-platform software Free computer libraries Free software programmed in C GNOME Software that uses Cairo (graphics) Software that uses Meson Software using the GNU Lesser General Public License Widget toolkits X-based libraries