Shaun McCance
shaunm@gnome.org 2011–2012
Низькорівнева абстракція для систем керування вікнами
Максим Дзюманенко
dziumanenko@gmail.com 2010
Юрій Чорноіван
yurchor@ukr.net 2020

# GDK

GDK є низькорівневою бібліотекою, яку використовує GTK для взаємодії із системою керування вікнами для роботи із графічними пристроями та пристроями введення. Хоча вам не доведеться надто часто використовувати GDK безпосередньо у коді, у цій бібліотеці містяться усі потрібні функціональні можливості для створення низькорівневих вікон на екрані і взаємодії із користувачем за допомогою різноманітних пристроїв введення. GDK працює як рівень абстракції над різноманітними системами керування вікнами, забезпечуючи можливість портування GTK на усі ці системи: X Window System (X11), Microsoft Windows, Mac OS X Quartz.

GDK надає вам достпу до подій з клавіатур, мишей та інших пристроїв для введення. Реалізації віджетів на GTK використовують цю функціональну можливість і передають події до високорівневих сигналів, якими, надалі, можна скористатися з коду програми. Наприклад, віджет `GtkButton` стежить за подіями `GDK_BUTTON_PRESS` і `GDK_BUTTON_RELEASE`, які надходять від миші, і транслює їх відповідним чином до сигналу `GtkButton::clicked`, коли користувач натискає і відпускає кнопку у належному місці.

Крім того, GDK надає у ваше розпорядження низькорівневі процедури для доступу до перетягування зі скиданням та даних буфера обміну даними з системи. При реалізації нетипових засобів керування вам може знадобитися доступ до цих можливостей для реалізації належної поведінки при взаємодії із користувачем.

GDK надає інші функціональні можливості, які потрібні для реалізації повного графічного набору інструментів, подібного до GTK. Оскільки GDK працює як абстракція платформи, надаючи GTK змогу працювати у декількох середовищах, вона надає програмний інтерфейс до усіх функціональних можливостей системи, які потрібні GTK. Це стосується відомостей щодо роботи із декількома дисплеями, роздільної здатності та глибини кольорів, мап кольорів та курсорів.

Вам слід використовувати GDK усюди, де вам потрібен низькорівневий доступ до підлеглої системи вікон, включно із низькорівневим доступом до подій, вікон та буфера обміну даними. Використання GDK для виконання цих завдань забезпечує портованість вашого коду та інтегрованість його із рештою вашого коду GTK. Загалом, не слід використовувати прості підпрограми для малювання у GDK; ці підпрограми є залишками того періоду, коли GDK був простою обгорткою для малювання примітивів системи керування вікнами. Вам слід користуватися широкими функціональними можливостями, які надаються Cairo для малювання високоякісної двовимірної графіки.

Довідник-підручник з GDK