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