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), เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบฎเบนเบšเบžเบฒเบšเบœเปˆเบฒเบ™ OpenGL เปเบฅเบฐ Vulkan, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เบ”เป‰เบงเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบฅเบฐเบšเบธเบเป‰เบญเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ”เบตเบšเบฑเบเปƒเบซเบกเปˆ gtk4-node-editor, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบซเบฅเบ”เปเบฅเบฐเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™. rendering node เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบš serialized (เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบงเป‰โ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบš GTK inspectorโ€‹)โ€‹, เปเบฅเบฐโ€‹เบเบฑเบ‡โ€‹เบชเบปเบกโ€‹เบ—เบฝเบšโ€‹เบœเบปเบ™โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ backends เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹;

    GTK 3.96, เบเบฒเบ™เบ›เปˆเบญเบเบ—เบปเบ”เบฅเบญเบ‡เบ‚เบญเบ‡ GTK 4, เบˆเบฑเบ”เบžเบตเบกเบกเบฒ

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ 3D เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบกเบฒเบชเบนเปˆเบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป€เบŠเบฑเปˆเบ™ cube rotating;

    GTK 3.96, เบเบฒเบ™เบ›เปˆเบญเบเบ—เบปเบ”เบฅเบญเบ‡เบ‚เบญเบ‡ GTK 4, เบˆเบฑเบ”เบžเบตเบกเบกเบฒ

  • เบ„เบปเบšเบ–เป‰เบงเบ™เบชเบปเบกเบšเบนเบ™ เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ Broadway GDK backend เบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” GTK เปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Broadway เป€เบเบปเปˆเบฒเบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบ™ GTK 4 (เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบซเป‰เบเบฑเบš buffer, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ render nodes, เบšเปˆเบญเบ™เบ—เบตเปˆเบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ•เบปเป‰เบ™เป„เบกเป‰เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡, เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบ GPU เป‚เบ”เบเปƒเบŠเป‰ OpenGL เปเบฅเบฐ Vulkan).
    เบ•เบปเบงเป€เบฅเบทเบญเบ Broadway เปƒเปเปˆ เบ›เปˆเบฝเบ™เป‚เบซเบกเบ” render เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ DOM nodes เบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบš CSS เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš. เปเบ•เปˆเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเปœเป‰เบฒเบˆเปเปƒเปเปˆเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰ DOM เบ—เบฝเบšเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเปˆเบญเบ™เปœเป‰เบฒ, เป€เบŠเบดเปˆเบ‡เบซเบผเบธเบ”เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบฅเบนเบเบ„เป‰เบฒเบ—เบฒเบ‡เป„เบ. เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™ 3D เปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบฎเบนเบšเบžเบฒเบšเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบœเปˆเบฒเบ™เบŠเบฑเบšเบชเบดเบ™เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ CSS;

  • GDK เบชเบทเบšเบ•เปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ” APIs เบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบ”เป‰เบงเบเป‚เบ›เป‚เบ•เบ„เบญเบ™ Wayland เบขเบนเปˆเปƒเบ™เปƒเบˆ, เปเบฅเบฐเป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” APIs เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ X11 เบซเบผเบทเบเป‰เบฒเบเบžเบงเบเบกเบฑเบ™เป„เบ›เบซเบฒ backend X11 เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบกเบตเบ„เบงเบฒเบกเบ„เบทเบšเบซเบ™เป‰เบฒเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบˆเบฐเบเป‰เบฒเบเบญเบญเบเป„เบ›เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบทเป‰เบ™เบœเบดเบงเบ‚เบญเบ‡เป€เบ”เบฑเบเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบ—เบปเปˆเบงเป‚เบฅเบ. เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบชเปเบฒเบฅเบฑเบš GDK_SURFACE_SUBSURFACE เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบญเบญเบเบˆเบฒเบ GDK;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ Drag-and-Drop เบชเบทเบšเบ•เปเปˆ, เบฅเบงเบกเบ—เบฑเบ‡เบงเบฑเบ”เบ–เบธ GdkDrag เปเบฅเบฐ GdkDrop เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบต;
  • เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป€เบซเบ”เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบชเบฑเบ™เบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบซเบ”เบเบฒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบชเบฑเบ™เบเบฒเบ™ โ€œGdkSurface::renderโ€ เบ–เบทเบเบชเบฐเป€เปœเบต, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบซเบ”เบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ - โ€œGdkSurface::size-changedโ€, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบซเบ”เบเบฒเบ™เปเบœเบ™เบ—เบตเปˆ - โ€œGdkSurface: :mappedโ€, เปเบ—เบ™ gdk_event_handler_set() - "GdkSurface::event";
  • GDK backend เบชเปเบฒเบฅเบฑเบš Wayland เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ›เบฐเบ•เบนเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GtkSettings. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ protocol text-input-unstable-v3 เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบต;
  • เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡ widgets, เบงเบฑเบ”เบ–เบธ GtkLayoutManager เปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเป‚เบ”เบเบญเบตเบ‡เบ•เบฒเบกเบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰. GtkLayoutManager เปเบ—เบ™เบ—เบตเปˆเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบนเบเปƒเบ™เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธ GTK เป€เบŠเบฑเปˆเบ™ GtkBox เปเบฅเบฐ GtkGrid. GtkBinLayout เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เป‚เบ„เบ‡เบฎเปˆเบฒเบ‡เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเบซเบผเบฒเบเปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบต: GtkBinLayout เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบˆเบธเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบฅเบนเบเบซเบ™เบถเปˆเบ‡, GtkBoxLayout เบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡ linearly, GtkGridLayout เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเบเบฑเบšเบ•เบฒเบ‚เปˆเบฒเบเป„เบŸเบŸเป‰เบฒ, GtkFixedLayout เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป‚เบ”เบ arbitrary เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบ, GtklatingLout เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ•เบฒเบกเบ›เบฐเป€เบžเบ™เบต. handlers;
  • เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ widget GtkAssistant, GtkStack เปเบฅเบฐ GtkNotebook, เป€เบŠเบดเปˆเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบ”เบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป‚เบ„เบ‡เบฎเปˆเบฒเบ‡เบ‚เบญเบ‡ widget เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเป‚เบญเบ™. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบนเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเบ—เบฑเบ‡เปเบปเบ”เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ›เบปเบเบเบฐเบ•เบด, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡ เบซเบผเบทเบเป‰เบฒเบเป„เบ›เบ—เบตเปˆเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เปœเป‰เบฒ, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบนเบเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบ GtkContainer เบ—เบฑเบ‡เปเบปเบ”;
  • เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบซเบผเบฑเบเบ‚เบญเบ‡ GtkEntry เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ›เป€เบ›เบฑเบ™ widget GtkText เปƒเบซเบกเปˆ, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เปเบเป‰เป„เบ‚ GtkEditable เบ›เบฑเบšเบ›เบธเบ‡. เบŠเบฑเป‰เบ™เบเปˆเบญเบเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ—เบฑเบ‡เปเบปเบ”เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ„เบทเบ™เปƒเปเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” GtkEditable เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ widget GtkText เปƒเบซเบกเปˆ;
  • เป€เบžเบตเปˆเบก widget GtkPasswordEntry เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเปเบšเบšเบŸเบญเบกเบเบฒเบ™เบ›เป‰เบญเบ™เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™;
  • GtkWidgets เป„เบ”เป‰เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบฅเบฐเบšเบธเบœเปˆเบฒเบ™ CSS เบซเบผเบท gtk_widget_allocate argument เบเบฑเบš GskTransform. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปเบฅเป‰เบงเปƒเบ™ widget GtkFixed;
  • เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel เปเบฅเบฐ GtkSingleSelection. เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบšเบฅเบฒเบเบŠเบทเปˆเบเบฑเบš GtkListView;
  • GtkBuilder เป„เบ”เป‰เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบงเบฑเบ”เบ–เบธเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (inline), เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบ•เบปเบงเบฅเบฐเบšเบธ;
  • เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบชเปˆ gtk4-builder-tool เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป„เบŸเบฅเปŒ UI เบˆเบฒเบ GTK 3 เป€เบ›เบฑเบ™ GTK 4;
  • เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบซเบปเบงเบ‚เปเป‰เบซเบผเบฑเบ, เป€เบกเบ™เบนเบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เปเบฅเบฐเบเปˆเบญเบ‡เบ„เบญเบกเป‚เบšเป„เบ”เป‰เบขเบธเบ”เป€เบŠเบปเบฒ. widget GtkInvisible เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบญเบญเบเปเบฅเป‰เบง.

    เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™