ДоступСн графичСский Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ GTK 4.10

ПослС ΡˆΠ΅ΡΡ‚ΠΈ мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΡƒΠ»ΠΊΠΈΡ‚Π° для создания графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ — GTK 4.10.0. GTK 4 развиваСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пытаСтся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ опасаясь, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π° придётся ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния ΠΈΠ·-Π·Π° измСнСния API Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ GTK.

Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² GTK 4.10:

  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ GtkFileChooserWidget с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ для Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² прилоТСниях, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ прСдставлСния содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ΅ сСти Π·Π½Π°Ρ‡ΠΊΠΎΠ². По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ классичСскоС прСдставлСниС Π² Π²ΠΈΠ΄Π΅ списка Ρ„Π°ΠΉΠ»ΠΎΠ², Π° для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π½Π°Ρ‡ΠΊΠΎΠ² Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΏΠ°Π½Π΅Π»ΠΈ появилась ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°. Π·Π½Π°Ρ‡ΠΊΠΎΠ²:
    ДоступСн графичСский Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ GTK 4.10
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ классы GtkColorDialog, GtkFontDialog, GtkFileDialog ΠΈ GtkAlertDialog с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² для Π²Ρ‹Π±ΠΎΡ€Π° Ρ†Π²Π΅Ρ‚ΠΎΠ², ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ. НовыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ Π½Π° Π±ΠΎΠ»Π΅Π΅ цСлостный ΠΈ сбалансированный API, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅ (GIO async). Π’ Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³Π°Ρ… ΠΏΠΎ возмоТности ΠΈ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ задСйствованы ΠΏΠΎΡ€Ρ‚Π°Π»Ρ‹ Freedesktop (xdg-desktop-portal), примСняСмыС для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ рСсурсам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ окруТСния ΠΈΠ· ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ бэкСнд CPDB (Common Printing Dialog Backend), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ для использования Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π°Ρ… Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ бэкСнда Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ lpr ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π°.
  • Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ GDK, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ прослойку ΠΌΠ΅ΠΆΠ΄Ρƒ GTK ΠΈ графичСской подсистСмой, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° структура GdkTextureDownloader, которая задСйствована для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ тСкстур Π² классС GdkTexture ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для прСобразования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ². Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкстур с использованиСм OpenGL.
  • Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ GSK (GTK Scene Kit), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ возмоТности отрисовки графичСских сцСн Ρ‡Π΅Ρ€Π΅Π· OpenGL ΠΈ Vulkan, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΠ·Π»ΠΎΠ² с масками ΠΈ настраиваСмой Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… тСкстур.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… вСрсий Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Wayland. НалаТСн Π²Ρ‹Π²ΠΎΠ΄ стартовых ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ использовании ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° «xdg-activation». Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ курсора Π½Π° экранах с высокой ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ пиксСлСй.
  • Класс GtkMountOperation Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² окруТСниях Π±Π΅Π· X11.
  • Π’ бэкСндС Broadway, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΌ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GTK Π² ΠΎΠΊΠ½Π΅ web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½.
  • Π’ классС GtkFileLauncher ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ асинхронный API для Π·Π°ΠΌΠ΅Π½Ρ‹ gtk_show_uri.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ gtk-builder-tool ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° шаблонов.
  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ GtkSearchEntry Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° тСкста-заполнСния, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈ отсутствуСт фокус Π²Π²ΠΎΠ΄Π°.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ класс GtkUriLauncher, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΡˆΡ‘Π» Π½Π° смСну Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ gtk_show_uri, примСняСмой для опрСдСлСния прилоТСния, запускаСмого для отобраТСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ URI, ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ошибки ΠΏΡ€ΠΈ отсутствии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.
  • Π’ классС GtkStringSorter Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² «collation», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сопоставлСниС ΠΈ сортировку с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ смысла символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π·Π½Π°ΠΊΠ° ударСния).
  • ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π² разряд ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… большая порция API ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅ GTK5 ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅:
    • GtkDialog (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkWindow).
    • GtkTreeView (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkListView ΠΈ GtkColumnView) .
    • GtkIconView (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkGridView).
    • GtkComboBox (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkDropDown).
    • GtkAppChooser (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkDropDown).
    • GtkMessageDialog (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkAlertDialog).
    • GtkColorChooser (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkColorDialog ΠΈ GtkColorDialogButton).
    • GtkFontChooser (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkFontDialog ΠΈ GtkFontDialogButton).
    • GtkFileChooser (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GtkFileDialog).
    • GtkInfoBar
    • GtkEntryCompletion
    • GtkStyleContext
    • GtkVolumeButton
    • GtkStatusbar
    • GtkAssistant
    • GtkLockButton
    • gtk_widget_show/hide
    • gtk_show_uri
    • gtk_render_ ΠΈ gtk_snapshot_render_
    • gtk_gesture_set_sequence_state
  • ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π² разряд ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… интСрфСйс GtkAccessible, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ сторонниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ элСмСнтов интСрфСйса для людСй с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ интСрфСйс GtkAccessibleRange.
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ macOS обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пСрСтаскивания элСмСнтов ΠΌΡ‹ΡˆΡŒΡŽ (DND, Drag-and-Drop).
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° интСграция с систСмными настройками.
  • Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°.
  • Π”ΠΎ 1 Π“Π‘ поднят Π»ΠΈΠΌΠΈΡ‚ памяти для Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JPEG.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru