GDK

GDK is the low-level library used by GTK+ to interact with the system for graphics and input devices. Although you will rarely use GDK directly in application code, it contains all the necessary functionality to draw objects and text to the screen and to interact with the user with various input devices.

GDK позволяет использовать события клавиатуры, мыши и других устройств ввода, вместо использования высокоуровневых сигналов GTK+. Также GDK предоставляет доступ к низкоуровневым процедурам перетаскивания и работы с данными системного буфера обмена. При реализации собственных элементов управления, возможно, понадобится этот функционал для реализации корректного взаимодействия с элементами интерфейса.

GDK содержит и другой функционал, необходимый для реализации полноценного графического пакета, например GTK+. Так как GDK выступает в роли уровня абстракции платформы, позволяя GTK+ работать в различных средах, он обеспечивает API для всего системного функционала, необходимого GTK+, например получение информации о множественных дисплеях, разрешении экрана и глубине цвета, цветовых картах и курсорах.

Необходимость в использовании GDK возникает, если есть потребность в низкоуровневом доступе к слою, находящемуся под оконной системой, включая низкоуровневый доступ к событиям, окнам и буферу обмена. Использование GDK для таких задач гарантирует переносимость кода и интеграцию с остальной частью кода, использующего GTK+. В основном, не следует использовать примитивные процедуры отрисовки из GDK, вместо этого следует использовать расширенный функционал Cairo.