GNOME 專案發布了 Libadwaita 1.5 版本,其中包括一組遵循 GNOME HIG(人機介面指南)的使用者介面樣式元件。 該庫包含現成的小部件和對象,用於構建符合通用 GNOME 風格的應用程序,其界面可以自適應調整以適應任何尺寸的螢幕。 該函式庫程式碼是用 C 語言編寫的,並根據 LGPL 2.1+ 授權分發。
libadwaita 庫與 GTK4 結合使用,並包含 GNOME 中使用的 Adwaita 主題的元件,這些元件已從 GTK 移出到單獨的庫中。 將GNOME 樣式元素移至單獨的庫中,允許與GTK 分開開發特定於GNOME 的更改,從而使GTK 開發人員可以專注於核心內容,而GNOME 開發人員可以更快、更靈活地推進他們想要的樣式更改,而不會影響GTK 本身。
該庫包括涵蓋各種介面元素的標準小部件,例如清單、面板、編輯區塊、按鈕、選項卡、搜尋表單、對話方塊等。 建議的小部件可讓您創建通用介面,可在大型 PC 和筆記型電腦螢幕以及智慧型手機的小型觸控螢幕上無縫運行。 應用程式介面根據螢幕尺寸和可用輸入裝置動態變化。 該庫還包括一組 Adwaita 樣式,使外觀符合 GNOME 指南,無需手動調整。
libadwaita 1.5 中的主要變化是自適應小工具的重新設計,以建立可調整可見區域大小的對話方塊。與位於單獨視窗中的傳統對話框不同,新對話框在客戶端呈現,在現有視窗內呈現,並且不能擴展到父視窗之外。這種方法簡化了通用對話框的創建,可以與行動和桌面系統的介面相結合,並且還提供了用於管理對話框的附加選項(例如,無需監視退出視窗邊框,您可以選擇關閉按鈕,移動版本的應用程式中提供自動擴展到全屏,調暗對話框時會考慮當前視窗的樣式,而不是系統)。
將來,計劃實現此類對話框的另一個版本,不連結到窗口,而是連結到窗口內的選項卡,這在瀏覽器等應用程式中可能需要,以便與選項卡關聯的對話框在以下情況下方不會與主視窗重疊:在選項卡之間切換。
對於行動設備,已實現支援以停靠在螢幕底部的工作表(底部工作表)的形式放置對話框,而不是以與中心對齊的工作表的形式。附加到底部的對話框使用戶不會因關閉視窗而感到困惑- 在此類對話框中,父視窗的一部分仍然可見,並且用於關閉父視窗的按鈕和對話框本身清晰分開,因此現在很難將它們混淆。
新對話方塊使用 AdwDialog 類別進行管理,在大多數情況下與使用 GtkWindow 類別類似,差異在於顯示和關閉操作。例如,將“:transient-for”屬性替換為adw_dialog_present()函數中的參數,新增了新訊號“::close-attempt”,並更改了“:can-close”參數的處理。建議在新對話方塊中使用 AdwPreferencesDialog、AdwAboutDialog 和 AdwAlertDialog 類,而不是 AdwPreferencesWindow、AdwAboutWindow 和 AdwMessageDialog 類別。
沒有父視窗的對話框仍將被視為單獨的視窗。其父窗口不能用於承載對話框的對話框也將充當窗口,例如,如果它們不允許調整大小或沒有 AdwWindow 和 AdwApplicationWindow 類別。
與 Libadwaita 1.5 中的對話重做無關的更改:
- 在 AdwEntryRow 類別中新增了「:text-length」屬性,以限制輸入欄位中文字的大小。
- 在 AdwMessageDialog 類別中新增了remove_response() 方法。
- AdwBreakpointBin 類別中新增了以程式設計方式刪除斷點的功能,它允許您根據視窗大小以任何方式變更使用者介面。
- 在 AdwSwipeTracker 類別中添加了“:allow-window-handle”標誌,以允許在頂部欄頂部滑動(在附加到底部邊緣的工作表中使用)。
- 增加了以深色設計風格遮蔽窗戶時所用顏色的亮度。
來源: opennet.ru