<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gdk" xml:lang="cs">
<info>
<link type="guide" xref="tech" group="gdk"/>
<revision pkgversion="3.0" date="2011-04-05" status="candidate"/>
<credit type="author copyright">
<name>Shaun McCance</name>
<email its:translate="no">shaunm@gnome.org</email>
<years>2011 – 2012</years>
</credit>
<include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>
<desc>Nízkoúrovňová abstrakce pro okenní systém</desc>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Lucas Lommer</mal:name>
<mal:email>llommer@svn.gnome.org</mal:email>
<mal:years>2009.</mal:years>
</mal:credit>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Marek Černocký</mal:name>
<mal:email>marek@manet.cz</mal:email>
<mal:years>2015.</mal:years>
</mal:credit>
</info>
<title>GDK</title>
<p>GDK je nízkoúrovňová knihovna používaná knihovnou <link xref="tech-gtk">GTK+</link> ke spolupráci s okenním systémem pro grafická a vstupní zařízení. Ačkoliv ve svém kódu zřídka kdy použijete přímo GDK, tak ta obsahuje veškerou nutnou funkcionalitu pro výtváření oken na obrazovce na nízké úrovni a pro komunikaci s uživatelem přes různá vstupní zařízení. GDK vystupuje jako abstrakce nad různými okenními systémy, takže GTK+ může být portováno na všechny z nich: X Windows (X11), Microsoft Windows, MAC OS X Quartz.</p>
<p>GDK vám dovoluje přístup k událostem z klávesnice, myši a dalších vstupních zařízení. Implementace widgetů v GTK+ využívá této funkcionality a překládá události na vysokoúrovňové signály, které pak mohou být použity v kódu aplikace. Například widget <code>GtkButton</code> sleduje události <code>GDK_BUTTON_PRESS</code> a <code>GDK_BUTTON_RELEASE</code>, které přichází od myši a příslušně je překládá na signál <code>GtkButton::clicked</code>, když uživatel zmáčkně nebo uvolní tlačítko na správném místě.</p>
<p>GDK také poskytuje nízkoúrovňové rutiny pro přístup k „táhni a upusť“ a k datům schránky. Když implementujete vlastní ovládací prvky, potřebujete přístup k těmto funkcím, abyste mohli implementovat správné chování při spolupráci s uživatelem.</p>
<p>GDK poskytuje i další funkcionalitu, která je zapotřebí k implementaci úplné sady grafických nástrojů, jako je GTK+. Protože GDK vystupuje jako abstrakce platformy, aby umožnila běh GTK+ pod různými prostředími, poskytuje API pro veškerou systémovou funkcionalitu potřebnou v GTK+. A to včetně informací o víceobrazovkových displejích, rozlišení a barevné hloubce, mapování barev a kurzorech.</p>
<p>GDK byste měli použít kdykoliv potřebujete nízkoúrovňový přístup do podkladové vrstvy oknního systému, včetně nízkoúrovňového přístupu k událostem, oknům a schránce. Použití GDK k těmto úkolům zajistí, že váš kód bude přenositelný, že se začlnění se zbytkem vaše kódu pro GTK+. Jednoduché kreslící rutiny v GDK by se obecně používat neměly. Jsou pozůstatkem z doby, kdy GDK je prostě obalovalo kreslící primitiva okenního systému. Místo toho byste měli používat rozšiřující funkce poskytované <link xref="tech-cairo">knihovou Cairo</link>, která slouží ke kreslení vysoce kvalitní grafiky ve 2D.</p>
<list style="compact">
<item><p><link href="https://developer.gnome.org/gdk3/stable/">Referenční příručka ke knihovně GDK</link></p></item>
</list>
</page>