GTK 3.96, ืžื”ื“ื•ืจื” ื ื™ืกื™ื•ื ื™ืช ืฉืœ GTK 4, ืคื•ืจืกื

10 ื—ื•ื“ืฉื™ื ืื—ืจื™ ืฉืœ ื”ืขื‘ืจ ืฉื—ืจื•ืจ ืžื‘ื—ืŸ ื”ืฆื™ื’ GTK 3.96, ืžื”ื“ื•ืจื” ื ื™ืกื™ื•ื ื™ืช ื—ื“ืฉื” ืฉืœ ื”ืžื”ื“ื•ืจื” ื”ื™ืฆื™ื‘ื” ื”ืงืจื•ื‘ื” ืฉืœ GTK 4. ืกื ื™ืฃ GTK 4 ืžืคื•ืชื— ื›ื—ืœืง ืžืชื”ืœื™ืš ืคื™ืชื•ื— ื—ื“ืฉ ื”ืžื ืกื” ืœืกืคืง ืœืžืคืชื—ื™ ืืคืœื™ืงืฆื™ื•ืช API ื™ืฆื™ื‘ ื•ื ืชืžืš ืœืžืฉืš ืžืกืคืจ ืฉื ื™ื ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ืœืœื ื—ืฉืฉ ืฉืœ ืฆื•ืจืš ืœืฉื›ืชื‘ ืืช ื”ืืคืœื™ืงืฆื™ื” ื›ืœ ืฉื™ืฉื” ื—ื•ื“ืฉื™ื ืขืงื‘ ืฉื™ื ื•ื™ API ื‘ืกื ื™ืฃ ื”ื‘ื ืฉืœ GTK. ืขื“ ืœื™ื™ืฆื•ื‘ ืžืœื ืฉืœ GTK 4, ืžื•ืžืœืฅ ืœื”ืžืฉื™ืš ื•ืœื”ื‘ื ื•ืช ืืคืœื™ืงืฆื™ื•ืช ื”ืžื•ืฆืขื•ืช ืœืžืฉืชืžืฉื™ื ื‘ืืžืฆืขื•ืช ื”ืกื ื™ืฃ GTK 3.24.

ื”ืขื™ืงืจื™ ืฉื™ื ื•ื™ื™ื ื‘-GTK 3.96:

  • ื‘-API GSK (GTK Scene Kit), ื”ืžืกืคืงืช ืขื™ื‘ื•ื“ ืฉืœ ืกืฆื ื•ืช ื’ืจืคื™ื•ืช ื‘ืืžืฆืขื•ืช OpenGL ื•-Vulkan, ื ืขืฉืชื” ืขื‘ื•ื“ื” ืขืœ ืฉื’ื™ืื•ืช, ืฉื”ืคื›ื• ืงืœื•ืช ื™ื•ืชืจ ืœื–ื™ื”ื•ื™ ื”ื•ื“ื•ืช ืœื›ืœื™ ืื™ืชื•ืจ ื”ื‘ืื’ื™ื ื”ื—ื“ืฉ gtk4-node-editor, ื”ืžืืคืฉืจ ืœื˜ืขื•ืŸ ื•ืœื”ืฆื™ื’ ืืช ืขื™ื‘ื•ื“ ืฆื•ืžืช ื‘ืคื•ืจืžื˜ ืกื™ื“ื•ืจื™ (ื ื™ืชืŸ ืœืฉืžื•ืจ ื‘ืžืฆื‘ ื‘ื“ื™ืงื” GTK inspector), ื•ื’ื ืœื”ืฉื•ื•ืช ืืช ืชื•ืฆืื•ืช ื”ืขื™ื‘ื•ื“ ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-backends ืฉื•ื ื™ื;

    GTK 3.96, ืžื”ื“ื•ืจื” ื ื™ืกื™ื•ื ื™ืช ืฉืœ GTK 4, ืคื•ืจืกื

  • ื™ื›ื•ืœื•ืช ื˜ืจื ืกืคื•ืจืžืฆื™ื” ืชืœืช ืžื™ืžื“ื™ืช ื”ื•ื‘ืื• ืœืจืžื” ื”ืžืืคืฉืจืช ืœื™ืฆื•ืจ ืืคืงื˜ื™ื ืฉืœ ืื ื™ืžืฆื™ื” ื›ื’ื•ืŸ ืงื•ื‘ื™ื™ื” ืžืกืชื•ื‘ื‘ืช;

    GTK 3.96, ืžื”ื“ื•ืจื” ื ื™ืกื™ื•ื ื™ืช ืฉืœ GTK 4, ืคื•ืจืกื

  • ืœื’ืžืจื™ ื ื›ืชื‘ ืžื—ื“ืฉ Broadway GDK backend ืฉื ื•ืขื“ ืœื”ืฆื™ื’ ืคืœื˜ ืฉืœ ืกืคืจื™ื™ืช GTK ื‘ื—ืœื•ืŸ ื“ืคื“ืคืŸ ืื™ื ื˜ืจื ื˜. ื”ื™ื™ืฉื•ื ื”ื™ืฉืŸ ืฉืœ ื‘ืจื•ื“ื•ื•ื™ ืœื ื”ืชืื™ื ืœืฉื™ื˜ื•ืช ื”ืจื™ื ื“ื•ืจ ื”ืžื•ืฆืขื•ืช ื‘-GTK 4 (ื‘ืžืงื•ื ืคืœื˜ ืœืžืื’ืจ, ื”ื•ื ืžืฉืชืžืฉ ื›ืขืช ื‘ืžื•ื“ืœ ื”ืžื‘ื•ืกืก ืขืœ ืฆืžืชื™ ืจื™ื ื“ื•ืจ, ื›ืืฉืจ ื”ืคืœื˜ ืžื•ืจื›ื‘ ื‘ืฆื•ืจื” ืฉืœ ืขืฅ ืฉืœ ืคืขื•ืœื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื”, ืžืขื•ื‘ื“ ื‘ื™ืขื™ืœื•ืช ืขืœ ื™ื“ื™ ื”-GPU ื‘ืืžืฆืขื•ืช OpenGL ื•-Vulkan).
    ื”ืืคืฉืจื•ืช ื”ื—ื“ืฉื” ืฉืœ Broadway ืžืžื™ืจื” ืฆืžืชื™ื ืœืจื ื“ืจ ืœืฆืžืชื™ DOM ืขื ืกื’ื ื•ื ื•ืช CSS ืœืขื™ื‘ื•ื“ ื”ืžืžืฉืง ื‘ื“ืคื“ืคืŸ. ื›ืœ ืžืฆื‘ ืžืกืš ื—ื“ืฉ ืžืขื•ื‘ื“ ื›ืฉื™ื ื•ื™ ื‘ืขืฅ ื”-DOM ื‘ื™ื—ืก ืœืžืฆื‘ ื”ืงื•ื“ื, ืžื” ืฉืžืงื˜ื™ืŸ ืืช ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื ื”ืžื•ืขื‘ืจื™ื ืœืœืงื•ื— ื”ืžืจื•ื—ืง. ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช ืชืœืช ืžืžื“ื™ื•ืช ื•ืืคืงื˜ื™ื ื’ืจืคื™ื™ื ืžื™ื•ืฉืžื™ื ื‘ืืžืฆืขื•ืช ืžืืคื™ื™ืŸ ื”ื˜ืจื ืกืคื•ืจืžืฆื™ื” ืฉืœ CSS;

  • GDK ืžืžืฉื™ื›ื” ืœื™ื™ืฉื ืžืžืฉืงื™ API ืฉืชื•ื›ื ื ื• ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืคืจื•ื˜ื•ืงื•ืœ Wayland, ื•ืœื ืงื•ืช ืžืžืฉืงื™ API ืžื‘ื•ืกืกื™ X11 ืื• ืœื”ืขื‘ื™ืจ ืื•ืชื ืœ-X11 backend ื ืคืจื“. ื™ืฉ ื”ืชืงื“ืžื•ืช ื‘ืขื‘ื•ื“ื” ืœื”ืชืจื—ืง ืžืฉื™ืžื•ืฉ ื‘ืžืฉื˜ื—ื™ ื™ืœื“ื™ื ื•ื‘ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ื’ืœื•ื‘ืœื™ื•ืช. ื”ืชืžื™ื›ื” ืขื‘ื•ืจ GDK_SURFACE_SUBSURFACE ื”ื•ืกืจื” ืž-GDK;
  • ื ืžืฉืš ืฉื—ื–ื•ืจ ื”ืงื•ื“ ื”ืงืฉื•ืจ ืœื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ื’ืจื™ืจื” ื•ืฉื—ืจื•ืจ, ื›ื•ืœืœ ืื•ื‘ื™ื™ืงื˜ื™ GdkDrag ื•-GdkDrop ื”ื ืคืจื“ื™ื ื”ืžื•ืฆืขื™ื;
  • ื”ื˜ื™ืคื•ืœ ื‘ืื™ืจื•ืขื™ื ืคื•ืฉื˜ ื•ืžืฉืžืฉ ื›ืขืช ืจืง ืœืงืœื˜. ืฉืืจ ื”ืื™ืจื•ืขื™ื ืžื•ื—ืœืคื™ื ื‘ืื•ืชื•ืช ื ืคืจื“ื™ื, ืœื“ื•ื’ืžื”, ื‘ืžืงื•ื ืื™ืจื•ืขื™ ืคืœื˜, ื”ืื•ืช "GdkSurface::render" ืžื•ืฆืข, ื‘ืžืงื•ื ืื™ืจื•ืขื™ ืชืฆื•ืจื” - "GdkSurface::size-changed", ื‘ืžืงื•ื ืžื™ืคื•ื™ ืื™ืจื•ืขื™ื - "GdkSurface: :mapped", ื‘ืžืงื•ื gdk_event_handler_set() - "GdkSurface::event";
  • ื”-GDK backend ืขื‘ื•ืจ Wayland ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืžืžืฉืง ืคื•ืจื˜ืœ ืœื’ื™ืฉื” ืœื”ื’ื“ืจื•ืช GtkSettings. ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ืฉื™ื˜ื•ืช ืงืœื˜, ื”ื•ืฆืขื” ืชืžื™ื›ื” ื‘ืกื™ื•ืžืช ืคืจื•ื˜ื•ืงื•ืœ text-input-unstable-v3;
  • ืœืคื™ืชื•ื— ื™ื™ืฉื•ืžื•ื ื™ื, ืžื•ืฆื’ ืื•ื‘ื™ื™ืงื˜ GtkLayoutManager ื—ื“ืฉ ืขื ื”ื˜ืžืขืช ืžืขืจื›ืช ืœืฉืœื™ื˜ื” ื‘ืคืจื™ืกืช ื”ืืœืžื ื˜ื™ื ื‘ื”ืชืื ืœืคืจื™ืกื” ืฉืœ ื”ืื–ื•ืจ ื”ื ืจืื”. GtkLayoutManager ืžื—ืœื™ืฃ ืžืืคื™ื™ื ื™ ืฆืืฆื ื‘ืžื›ื•ืœื•ืช GTK ื›ื’ื•ืŸ GtkBox ื•-GtkGrid. ืžื•ืฆืขื™ื ืžืกืคืจ ืžื ื”ืœื™ ืคืจื™ืกื” ืžื•ื›ื ื™ื: GtkBinLayout ืขื‘ื•ืจ ืžื™ื›ืœื™ื ืคืฉื•ื˜ื™ื ืขื ืืœืžื ื˜ ืฆืืฆื ืื—ื“, GtkBoxLayout ืขื‘ื•ืจ ืจื›ื™ื‘ื™ ืฆืืฆื ืžื™ื•ืฉืจื™ื ืœื™ื ื™ืืจื™ืช, GtkGridLayout ืœื™ื™ืฉื•ืจ ืืœืžื ื˜ื™ื ืฆืืฆืื™ื ืœืจืฉืช, GtkFixedLayout ืœืžื™ืงื•ื ืฉืจื™ืจื•ืชื™ ืฉืœ ืืœืžื ื˜ื™ื ืฆืืฆืื™ื, GtkBoxLayout ืขื‘ื•ืจ ืืœืžื ื˜ื™ื ืฆืืฆืื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ translating_CustomLayout ืžืกื•ืจืชื™ืช. ืžื˜ืคืœื™ื;
  • ืื•ื‘ื™ื™ืงื˜ื™ื ื ื’ื™ืฉื™ื ืœืฆื™ื‘ื•ืจ ืœื”ืฆื’ืช ืขืžื•ื“ื™ื ืฉืœ ืจื›ื™ื‘ื™ ืฆืืฆื ื ื•ืกืคื• ืœื•ื•ื™ื“ื’'ื˜ื™ื GtkAssistant, GtkStack ื•-GtkNotebook, ืฉืืœื™ื”ื ืžื•ืขื‘ืจื™ื ืžืืคื™ื™ื ื™ ื”ืฆืืฆื ืฉืื™ื ื ืงืฉื•ืจื™ื ืœืคืจื™ืกื” ืฉืœ ื•ื•ื™ื“ื’'ื˜ื™ื ืืœื”. ืžืื—ืจ ืฉื›ืœ ืžืืคื™ื™ื ื™ ื”ืฆืืฆื ื”ืงื™ื™ืžื™ื ื”ื•ืžืจื• ืœืžืืคื™ื™ื ื™ื ืจื’ื™ืœื™ื, ืžืืคื™ื™ื ื™ ืคืจื™ืกื” ืื• ื”ื•ืขื‘ืจื• ืœืื•ื‘ื™ื™ืงื˜ื™ ืขืžื•ื“, ื”ืชืžื™ื›ื” ื‘ืžืืคื™ื™ื ื™ ืฆืืฆื ื”ื•ืกืจื” ืœื—ืœื•ื˜ื™ืŸ ืž-GtkContainer;
  • ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืœื™ื‘ื” ืฉืœ GtkEntry ื”ื•ืขื‘ืจื” ืœื•ื•ื™ื“ื’'ื˜ ื—ื“ืฉ ืฉืœ GtkText, ื”ื›ื•ืœืœ ื’ื ืžืžืฉืง ืขืจื™ื›ื” ืžืฉื•ืคืจ ืฉืœ GtkEditable. ื›ืœ ืชืช-ื”ืžื—ืœืงื•ืช ื”ืงื™ื™ืžื•ืช ืฉืœ ืงืœื˜ ื”ื ืชื•ื ื™ื ื ืขืฉื• ืžื—ื“ืฉ ื›ื™ื™ืฉื•ื GtkEditable ื”ืžื‘ื•ืกืก ืขืœ ื”ื•ื•ื™ื“ื’'ื˜ ื”ื—ื“ืฉ GtkText;
  • ื ื•ืกืฃ ื•ื•ื™ื“ื’'ื˜ ื—ื“ืฉ ืฉืœ GtkPasswordEntry ืขื‘ื•ืจ ื˜ืคืกื™ ื”ื–ื ืช ืกื™ืกืžื”;
  • GtkWidgets ื”ื•ืกื™ืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืคื•ืš ืืœืžื ื˜ื™ื ืฆืืฆืื™ื ื‘ืืžืฆืขื•ืช ืฉื™ื˜ื•ืช ื˜ืจื ืกืคื•ืจืžืฆื™ื” ืœื™ื ื™ืืจื™ื•ืช ืฉืฆื•ื™ื ื• ื‘ืืžืฆืขื•ืช CSS ืื• ื”ืืจื’ื•ืžื ื˜ gtk_widget_allocate ืœ-GskTransform. ื”ืชื›ื•ื ื” ืฉืฆื•ื™ื ื” ื›ื‘ืจ ืžื•ื—ืœืช ื‘ื•ื•ื™ื“ื’'ื˜ GtkFixed;
  • ื ื•ืกืคื• ื“ื’ืžื™ ื“ื•ืจ ืจืฉื™ืžื•ืช ื—ื“ืฉื™ื: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel ื•-GtkSingleSelection. ื‘ืขืชื™ื“ ืื ื• ืžืชื›ื ื ื™ื ืœื”ื•ืกื™ืฃ ืชืžื™ื›ื” ืขื‘ื•ืจ ื“ื’ืžื™ ืจืฉื™ืžื” ืœ-GtkListView;
  • GtkBuilder ื”ื•ืกื™ืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ื’ื“ื™ืจ ืžืืคื™ื™ื ื™ ืื•ื‘ื™ื™ืงื˜ ื‘ืื•ืคืŸ ืžืงื•ืžื™ (inline), ื‘ืžืงื•ื ืœื”ืฉืชืžืฉ ื‘ืงื™ืฉื•ืจื™ื ืœืคื™ ืžื–ื”ื”;
  • ื ื•ืกืคื” ืคืงื•ื“ื” ืœ-gtk4-builder-tool ืœื”ืžืจืช ืงื‘ืฆื™ ืžืžืฉืง ืžืฉืชืžืฉ ืž-GTK 3 ืœ-GTK 4;
  • ื”ื•ืคืกืงื” ื”ืชืžื™ื›ื” ื‘ื ื•ืฉืื™ ืžืคืชื—, ืชืคืจื™ื˜ื™ื ื˜ื‘ืœืื™ื™ื ื•ืชื™ื‘ื•ืช ืžืฉื•ืœื‘ื•ืช. ื”ื•ื•ื™ื“ื’'ื˜ GtkInvisible ื”ื•ืกืจ.

    ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”