ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² GTK+
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ X Window System, ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² GTK+ Toolkit. GTK+ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½Π° ΡΠ²Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° GNU Image Manipulation Program (GIMP), ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π» ΡΠ²ΠΎΠ΅ ΠΈΠΌΡ (The Gimp ToolKit). ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ GIMP Π²ΡΠ΅ΡΡΠ΅Π· ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ GTK+ Π² ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π²ΡΡΠΎΡ ΠΈ ΡΡΠ°Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΌΠΎΡΠ½ΡΡ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° GTK+ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://www.gtk.org.
Π ΠΈΡΠΎΠ³Π΅, GTK+ β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (Graphical User Interface, GUI), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ Π½Π°Π±ΠΎΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»Π΅Π³ΠΊΠΈΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ GTK+ β ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ GNU, ΠΊΠ°ΠΊ ΠΈ GIMP, ΠΎΠ½ Π²ΡΠΏΡΡΠ΅Π½ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ±Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ (Lesser General Public License, Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ GNU), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ°ΡΠ΅Π½ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ Π·Π°ΠΊΡΡΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ), Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ GTK+, ΠΎΡ ΡΠΏΠ»Π°ΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΡ Π²ΠΎΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΡΡΠΊΠΈΡ Π³ΠΎΠ½ΠΎΡΠ°ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. Π‘Π²ΠΎΠ±ΠΎΠ΄Π°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠ°Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GTK+, ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡ Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ° Qt (ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅), ΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GPL Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Qt (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΡΠΏΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Π΄Π»Ρ Qt).
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ GTK+ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ ΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ GTK+ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π‘. Π ΡΡΠ°ΡΡΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ ΠΊ ΡΠ·ΡΠΊΠ°ΠΌ (language binding), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ GTK+ Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π±ΡΠ΄Ρ ΡΠΎ Π‘++, Python, PHP, Ruby, Perl, C# ΠΈΠ»ΠΈ Java.
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ GTK+ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π΄Π»Ρ ΡΡΠ΄Π° Π΄ΡΡΠ³ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
β‘Β GLib β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΈΠΏΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΈΠΊΠ»ΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ;
β‘Β GObject β ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Π‘++;
β‘Β Pango β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°;
β‘Β ATK β ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄ΠΎΡΡΡΠΏΠ°;
β‘Β GDK (GIMP Drawing Kit) β ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΏΠΎΠ²Π΅ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Xlib;
β‘Β GdkPixbuf β ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ GTK+;
β‘Β Xlib β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Linux ΠΈ UNIX.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ² GLib
ΠΡΠ»ΠΈ Π²Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ GTK+, ΡΠΎ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄ΠΈΠ²ΠΈΡΡΡΡ, ΡΠ²ΠΈΠ΄Π΅Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ° Π‘ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ
ggintgchargshortgint32gpointerGLib ΠΈ GObject ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΌΠ΅ΠΆΠΏΠ»Π°ΡΡΠΎΡΠΌΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΠΎΠ±ΡΠΈΡ Π·Π°Π΄Π°Ρ. ΠΡΠΈ ΡΠΈΠΏΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ GTK+, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Glib ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
<b>#include <glib/gmacros.h></b><b>#define FALSE 0</b><b>#define TRUE !FALSE</b>ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ β ΡΡΠΎ ΡΠΈΠΏΡ, ΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ C (ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ) ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π² Π±Π°ΠΉΡΠ°Ρ Π½Π°. Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ :
β‘Β
gintguintgchargucharglonggulonggfloatgdoubleΒ β‘Β
gpointervoid*β‘Β
gbooleanintβ‘Β
gint8guint8gint16guint16gint32guint32Π£Π΄ΠΎΠ±Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GLib ΠΈ GObject ΠΏΠΎΡΡΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ. Glib ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² GTK+, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° GTK+, ΡΠΎ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Glib ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°. ΠΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° GTK+ Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» glib.h.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² GTK+
ΠΡΠ΅, Ρ ΠΊΠΎΠ³ΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ GUI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠΉΠΌΡΡ Π½Π°ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ ΠΏΡΠΈΠ²Π΅ΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GUI ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΠΠ), Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ GTK+, Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΡΠΈΠ»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² GTK+ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠΈΡΡΠΎΠΌ Π‘, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΠΠ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ GObject. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ².
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² GtkWindow, Π²Π·ΡΡΠΎΠΉ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ GTK+ API.
GObjectΒ +---GInitiallyUnownedΒ +----GtkObjectΒ Β Β Β Β Β +----GtkWidgetΒ Β Β Β Β Β Β Β Β Β Β Β +----GtkContainerΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β +----GtkBinΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β +----GtkWindowΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ
GtkWindowGtkBinGtkBinGtkWindowGtkWindowGtkContainerGtkWidgetΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΈΠΏ
GtkWidget