การเปิดตัวไลบรารี Libadwaita 1.5 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME

โครงการ GNOME ได้เผยแพร่ Libadwaita 1.5 ซึ่งประกอบด้วยชุดส่วนประกอบสำหรับการออกแบบส่วนต่อประสานผู้ใช้ที่เป็นไปตาม GNOME HIG (แนวทางส่วนต่อประสานกับมนุษย์) ไลบรารีประกอบด้วยวิดเจ็ตและออบเจ็กต์สำเร็จรูปสำหรับสร้างแอปพลิเคชันที่สอดคล้องกับสไตล์ GNOME ทั่วไป ซึ่งอินเทอร์เฟซสามารถปรับให้เข้ากับหน้าจอทุกขนาดได้ รหัสไลบรารีเขียนด้วยภาษา C และเผยแพร่ภายใต้ใบอนุญาต LGPL 2.1+

ไลบรารี libadwaita ใช้ร่วมกับ GTK4 และรวมส่วนประกอบของธีม Adwaita ที่ใช้ใน GNOME ซึ่งถูกย้ายออกจาก GTK ไปยังไลบรารีแยกต่างหาก การย้ายองค์ประกอบการจัดรูปแบบ GNOME ไปยังไลบรารีที่แยกจากกันทำให้การเปลี่ยนแปลงเฉพาะของ GNOME ได้รับการพัฒนาแยกจาก GTK ช่วยให้นักพัฒนา GTK มุ่งเน้นไปที่เนื้อหาหลักและนักพัฒนา GNOME จึงสามารถผลักดันการเปลี่ยนแปลงสไตล์ที่ต้องการได้อย่างรวดเร็วและยืดหยุ่นมากขึ้น โดยไม่ส่งผลกระทบต่อ GTK เอง

ไลบรารีประกอบด้วยวิดเจ็ตมาตรฐานที่ครอบคลุมองค์ประกอบอินเทอร์เฟซต่างๆ เช่น รายการ แผง บล็อกการแก้ไข ปุ่ม แท็บ แบบฟอร์มการค้นหา กล่องโต้ตอบ ฯลฯ วิดเจ็ตที่นำเสนอช่วยให้คุณสร้างอินเทอร์เฟซสากลที่ทำงานได้อย่างราบรื่นทั้งบนหน้าจอพีซีและแล็ปท็อปขนาดใหญ่ และบนหน้าจอสัมผัสขนาดเล็กของสมาร์ทโฟน อินเทอร์เฟซของแอปพลิเคชันเปลี่ยนแปลงแบบไดนามิกขึ้นอยู่กับขนาดหน้าจอและอุปกรณ์อินพุตที่มีอยู่ ไลบรารียังมีชุดสไตล์ Adwaita ที่ทำให้รูปลักษณ์สอดคล้องกับหลักเกณฑ์ของ GNOME โดยไม่จำเป็นต้องปรับด้วยตนเอง

การเปิดตัวไลบรารี Libadwaita 1.5 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME

การเปลี่ยนแปลงหลักใน libadwaita 1.5 คือการปรับปรุงวิดเจ็ตแบบปรับได้เพื่อสร้างกล่องโต้ตอบที่ปรับขนาดของพื้นที่ที่มองเห็นได้ แตกต่างจากกล่องโต้ตอบแบบดั้งเดิมซึ่งอยู่ในหน้าต่างที่แยกจากกัน กล่องโต้ตอบใหม่จะแสดงผลฝั่งไคลเอ็นต์ แสดงผลภายในหน้าต่างที่มีอยู่ และไม่สามารถขยายเกินหน้าต่างหลักได้ วิธีการนี้ช่วยลดความยุ่งยากในการสร้างกล่องโต้ตอบสากลที่สามารถใช้ร่วมกับอินเทอร์เฟซสำหรับระบบมือถือและเดสก์ท็อปได้ และยังมีตัวเลือกเพิ่มเติมสำหรับการจัดการกล่องโต้ตอบ (เช่น ไม่จำเป็นต้องตรวจสอบเพื่อออกจากขอบหน้าต่าง คุณสามารถเลือกพฤติกรรมของ ปุ่มปิด การขยายอัตโนมัติเป็นเต็มหน้าจอมีให้ในแอปพลิเคชันเวอร์ชันมือถือ รูปแบบของหน้าต่างปัจจุบัน ไม่ใช่ระบบ จะถูกนำมาพิจารณาเมื่อหรี่แสงโต้ตอบ)

การเปิดตัวไลบรารี Libadwaita 1.5 สำหรับการสร้างอินเทอร์เฟซแบบ GNOMEการเปิดตัวไลบรารี Libadwaita 1.5 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME

ในอนาคต มีการวางแผนที่จะใช้กล่องโต้ตอบดังกล่าวในเวอร์ชันอื่น ซึ่งไม่ได้เชื่อมโยงกับหน้าต่าง แต่เชื่อมโยงกับแท็บภายในหน้าต่าง ซึ่งอาจจำเป็นในแอปพลิเคชัน เช่น เบราว์เซอร์ เพื่อให้กล่องโต้ตอบที่เกี่ยวข้องกับแท็บไม่ทับซ้อนกับหน้าต่างหลักเมื่อ สลับระหว่างแท็บ

สำหรับอุปกรณ์เคลื่อนที่ มีการรองรับการวางกล่องโต้ตอบในรูปแบบของแผ่นงานที่เชื่อมต่อที่ด้านล่างของหน้าจอ (แผ่นงานด้านล่าง) แทนที่จะอยู่ในรูปแบบของแผ่นงานที่จัดชิดตรงกลาง กล่องโต้ตอบที่แนบมากับด้านล่างช่วยให้ผู้ใช้ไม่สับสนกับการปิดหน้าต่าง - ในกล่องโต้ตอบดังกล่าว ส่วนหนึ่งของหน้าต่างหลักยังคงมองเห็นได้ และปุ่มสำหรับปิดหน้าต่างหลักและกล่องโต้ตอบจะถูกแยกออกจากกันอย่างชัดเจน ดังนั้นจึงเป็นเรื่องยากที่จะสร้างความสับสน

การเปิดตัวไลบรารี Libadwaita 1.5 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME

กล่องโต้ตอบใหม่ได้รับการจัดการโดยใช้คลาส AdwDialog ซึ่งในสถานการณ์ส่วนใหญ่จะคล้ายกับการใช้คลาส GtkWindow โดยมีความแตกต่างคือการแสดงผลและการปิดการดำเนินการ ตัวอย่างเช่น คุณสมบัติ “:transient-for” ถูกแทนที่ด้วยพารามิเตอร์ในฟังก์ชัน adw_dialog_present() มีการเพิ่มสัญญาณใหม่ “::close-attempt” และการประมวลผลของพารามิเตอร์ “:can-close” มีการเปลี่ยนแปลง . แทนที่จะเป็นคลาส AdwPreferencesWindow, AdwAboutWindow และ AdwMessageDialog ขอเสนอให้ใช้คลาส AdwPreferencesDialog, AdwAboutDialog และ AdwAlertDialog พร้อมกล่องโต้ตอบใหม่

กล่องโต้ตอบที่ไม่มีหน้าต่างหลักจะยังคงถือเป็นหน้าต่างแยกกัน กล่องโต้ตอบที่หน้าต่างหลักไม่สามารถใช้โฮสต์กล่องโต้ตอบได้จะทำหน้าที่เป็นหน้าต่างด้วย ตัวอย่างเช่น หากไม่อนุญาตให้ปรับขนาดหรือไม่มีคลาส AdwWindow และ AdwApplicationWindow

การเปลี่ยนแปลงที่ไม่เกี่ยวข้องกับการปรับปรุงบทสนทนาใน Libadwaita 1.5:

  • เพิ่มคุณสมบัติ ":text-length" ให้กับคลาส AdwEntryRow เพื่อจำกัดขนาดของข้อความในช่องป้อนข้อมูล
  • เพิ่มเมธอด Remove_response() ให้กับคลาส AdwMessageDialog
  • เพิ่มความสามารถในการลบเบรกพอยต์โดยทางโปรแกรมลงในคลาส AdwBreakpointBin ซึ่งช่วยให้คุณเปลี่ยนอินเทอร์เฟซผู้ใช้ในลักษณะใดก็ได้ขึ้นอยู่กับขนาดหน้าต่าง
  • เพิ่มการตั้งค่าสถานะ ":allow-window-handle" ให้กับคลาส AdwSwipeTracker เพื่อให้สามารถปัดที่ด้านบนของแถบด้านบนได้ (ใช้ในแผ่นงานที่แนบมากับขอบด้านล่าง)
  • เพิ่มความสว่างของสีที่ใช้เมื่อแรเงาหน้าต่างในรูปแบบการออกแบบสีเข้ม

ที่มา: opennet.ru

เพิ่มความคิดเห็น