<?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" 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>

    <license xmlns="http://projectmallard.org/1.0/" href="http://creativecommons.org/licenses/by-sa/3.0/us/">
<p>This work is licensed under a
<link href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons
Attribution-Share Alike 3.0 United States License</link>.</p>
<p>Jako speciální výjimků vám držitel autorských práv uděluje oprávnění kopírovat, upravovat a šířit ukázky kódu obsažené v tomto dokumentu a to bez dalších omezení za podmínek, které si sami zvolíte.</p>
</license>

    <desc>Nízkoúrovňová abstrakce pro okenní systém</desc>
  <credit type="translator copyright"><name>Lucas Lommer</name><email>llommer@svn.gnome.org</email><years>2009.</years></credit><credit type="translator copyright"><name>Marek Černocký</name><email>marek@manet.cz</email><years>2015.</years></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>
