Blame platform-overview/cs/tech-gdk.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gdk" xml:lang="cs">
Packit 1470ea
Packit 1470ea
  <info>
Packit 1470ea
    <link type="guide" xref="tech" group="gdk"/>
Packit 1470ea
    <revision pkgversion="3.0" date="2011-04-05" status="candidate"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Shaun McCance</name>
Packit 1470ea
      <email its:translate="no">shaunm@gnome.org</email>
Packit 1470ea
      <years>2011 – 2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>
Packit 1470ea
Packit 1470ea
    <desc>Nízkoúrovňová abstrakce pro okenní systém</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Lucas Lommer</mal:name>
Packit 1470ea
      <mal:email>llommer@svn.gnome.org</mal:email>
Packit 1470ea
      <mal:years>2009.</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Marek Černocký</mal:name>
Packit 1470ea
      <mal:email>marek@manet.cz</mal:email>
Packit 1470ea
      <mal:years>2015.</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
<title>GDK</title>
Packit 1470ea
Packit 1470ea
  

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.

Packit 1470ea
Packit 1470ea

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 GtkButton sleduje události GDK_BUTTON_PRESS a GDK_BUTTON_RELEASE, které přichází od myši a příslušně je překládá na signál GtkButton::clicked, když uživatel zmáčkně nebo uvolní tlačítko na správném místě.

Packit 1470ea
Packit 1470ea

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.

Packit 1470ea
Packit 1470ea

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.

Packit 1470ea
Packit 1470ea
  

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.

Packit 1470ea
Packit 1470ea
<list style="compact">
Packit 1470ea
  <item>

<link href="https://developer.gnome.org/gdk3/stable/">Referenční příručka ke knihovně GDK</link>

</item>
Packit 1470ea
</list>
Packit 1470ea
</page>