ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Cambalache 1.0, ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π±ΡΡΠ·ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π·Π° GTK 3 ΠΈ GTK 4, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΠΈΠ·ΡΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ (WYSIWYG), ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° MVC ΠΈ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π΅ΡΡΠΈΡ 1.0 ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ LGPLv2.1. ΠΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ flatpak.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Glade, Π² Cambalache ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ. Cambalache Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ GtkBuilder ΠΈ GObject, Π½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΎΡ ΡΠΈΠΏΠΎΠ²Π΅ GObject. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° GTK-ΡΡΠΈΠ»ΠΈ Π² CSS ΡΠΎΡΠΌΠ°Ρ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° XML ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΡΠ΅ΡΡΡΡΠΈ GResources, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ ΠΈ ΡΠΈΠ΄ΠΆΠ΅ΡΠΈ, ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° XML ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ GtkBuilder ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Blueprint.
ΠΠΎΠ΄Π΅Π»ΡΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ° ΠΈ Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠ±Π΅ΠΊΡΠΈ, ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈ ΠΎΡ GtkBuilder, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅ΠΊ Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (Undo / Redo) ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅. ΠΠ° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ gir ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ cambalache-db, Π° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ GObject ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π΄Π°Π½Π½ΠΈ β ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ db-codegen.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½Π° Π±Π°Π·Π° GTK 3 ΠΈ GTK 4, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π΅ΡΡΠΈΡ. ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° GTK, ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠ΄ΠΆΠ΅ΡΠ° Casilda, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π² GTK4 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ΅Π½. ΡΡΡΠ²ΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots. Casilda ΡΡΠ·Π΄Π°Π²Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ Π²Ρ
ΠΎΠ΄Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΡΠ±ΠΈΡΠΈΡΡΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΎΡ GtkEventController, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠΌΠ° ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΎΡΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈΠ΄ΠΆΠ΅Ρ. Π§ΡΠ΅Π· wlroots, ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»Π΅Π½ Π±ΡΡΠ΅Ρ ΠΈ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΠΏΠΎΠ²ΡΡΡ
Π½ΠΎΡΡ Cairo (cairo.Surface) Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² GTK.

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
