Основа обработки событий и действий с окнами

# GDK

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

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

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

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

Справочное руководство по GDK