มีอะไรใหม่สำหรับนักพัฒนา
รายการเปลี่ยนแปลงต่อไปนี้สำคัญสำหรับนักพัฒนาที่ใช้แพลตฟอร์มพัฒนา GNOME 2.24 ถ้าคุณไม่ได้สนใจรายการเปลี่ยนแปลงสำหรับนักพัฒนา ก็สามารถข้ามไปที่ หัวข้อ 5 มีอะไรใหม่เกี่ยวกับอุปกรณ์พกพา ได้
- 4.1 การเตรียมพร้อมสำหรับ GLib/GTK+ 3.0
- 4.2 GLib 2.18
- 4.3 GTK+ 2.14
- 4.4 ไลบรารีข้อความทันใจ
- 4.5 เดสก์บาร์
4.1 การเตรียมพร้อมสำหรับ GLib/GTK+ 3.0
เพื่อให้นักพัฒนาเริ่มเตรียมพร้อมสำหรับ GLib และ GTK+ 3.0 รุ่นถัด ๆ ไปของไลบรารีทั้งสองจะมีแฟล็กสำหรับบังคับความเข้ากันได้ที่เคร่งครัดยิ่งขึ้น
GLib, GTK+ และ ATK 3.0 จะบังคับให้ใช้เฉพาะแฟ้มส่วนหัวระดับบนสุด (เช่น glib.h, gobject.h, gio.h) เท่านั้นในโปรแกรมต่าง ๆ การทำเช่นนี้มีความสำคัญ เพื่อให้สามารถตัดแฟ้มส่วนหัวออก หรือเปลี่ยนชื่อ หรือจัดกลุ่มใหม่เป็นรายแฟ้มได้ โดยไม่กระทบกับซอร์สโค้ดของโปรแกรมต่าง ๆ
เพื่อให้นักพัฒนาสามารถทดสอบโปรแกรมของตนเองเรื่องความเข้ากันได้ จึงมีตัวเลือกของการคอมไพล์เพิ่มขึ้น คือ G_DISABLE_SINGLE_INCLUDES สำหรับ GLib, GTK_DISABLE_SINGLE_INCLUDES สำหรับ GTK+ และ ATK_DISABLE_SINGLE_INCLUDES สำหรับ ATK
เพียงแค่ส่งแฟล็กเหล่านี้ขณะคอมไพล์ (เช่น -DG_DISABLE_SINGLE_INCLUDES) เพื่อความมั่นใจว่าโปรแกรมของคุณถูกต้องแล้ว
GLib, GTK+ และไลบรารีที่เกี่ยวข้อง ยังได้เตรียมตัวเลือกอื่น ๆ ของการคอมไพล์ ที่คุณสามารถใช้ทดสอบความเข้ากันได้กับ GTK+ 3.0 ได้
คุณสามารถปิดการรองรับฟังก์ชันและคลาสที่กำลังจะเลิกใช้และจะถูกตัดทิ้งในรุ่น 3.0 ได้ โดยกำหนดแมโครต่อไปนี้ขณะคอมไพล์: ATK_DISABLE_DEPRECATED, PANGO_DISABLE_DEPRECATED, G_DISABLE_DEPRECATED, GDK_PIXBUF_DISABLE_DEPRECATED, GDK_DISABLE_DEPRECATED และ GTK_DISABLE_DEPRECATED สำหรับ ATK, Pango, GLib, GdkPixbuf, GDK and GTK+ ตามลำดับ
คุณสามารถทดสอบว่าทุกฟังก์ชันที่โปรแกรมของคุณใช้นั้นรองรับระบบหลายจออย่างเหมาะสมได้ โดยกำหนดแมโคร GDK_MULTIHEAD_SAFE และ GTK_MULTIHEAD_SAFE
4.2 GLib 2.18
GNOME 2.24 เป็น GNOME รุ่นแรกที่ต้องใช้ GLib รุ่น 2.18
GLib 2.18 รองรับการใช้บริบทสำหรับการแปลข้อความที่ดีขึ้น โดยใช้แมโคร C_() และ NC_() รวมทั้งเพิ่ม API ใหม่ใน GIO ด้วย
4.3 GTK+ 2.14
GNOME 2.24 เป็น GNOME รุ่นแรกที่ต้องใช้ GTK+ รุ่น 2.14
การเปลี่ยนแปลงที่สำคัญอย่างหนึ่งใน GTK+ รุ่นนี้คือ ทุกวิดเจ็ตที่สืบทอดมาจาก GtkAdjustment (เช่น ปุ่มปรับเลขและปุ่มรางเลื่อน) จะบังคับช่วงของค่าเป็น [ค่าต่ำสุด, ค่าสูงสุด - ขนาดของหน้า] ตามที่อธิบายในเอกสารประกอบ ถ้าคุณต้องการจะใช้ช่วงเป็น [ค่าต่ำสุด, ค่าสูงสุด] ก็ให้กำหนด page_size เป็น 0
Glade ทุกรุ่น (รวมทั้ง 3.4.1) ในตอนนี้ จะสร้าง GtkSpinButton, GtkHScale และ GtkVScale ด้วยค่า page_size เป็น 10 โดยปริยาย นักพัฒนาควรตรวจสอบแฟ้ม Glade ว่าค่าขนาดของหน้าเป็นค่าที่ใช้ได้หรือไม่
มีคลาสใหม่ คือ GtkMountOperation เพื่อใช้ส่งค่าไปยังฟังก์ชัน g_volume_mount อ็อบเจกต์ชนิด GtkMountOperation เป็น GMountOperation ชนิดหนึ่ง ที่สามารถแสดงกล่องโต้ตอบยืนยันตัวบุคคลได้ถ้าจำเป็น
มีวิธีใหม่ซึ่งใช้ได้ข้ามระบบในการเปิดแฟ้มและ URI อื่น ๆ ด้วยโปรแกรมปริยาย โดยใช้ฟังก์ชัน gtk_show_uri() แทนที่จะต้องอาศัย libgnome นอกจากนี้ GDK ยังได้เพิ่มการสร้างรูปธรรมของ GAppLaunchContext สำหรับจัดการโปรแกรมแบบกราฟิกส์ (รวมทั้งการแจ้งเหตุเมื่อเริ่มโปรแกรม และการป้องกันการขโมยโฟกัสด้วย) คือ GdkAppLaunchContext
สิ่งใหม่ใน GTK+ 2.14 อีกอย่างหนึ่งคือ API แบบใช้ GFile สำหรับ GtkFileChooser และความสามารถในการสร้างส่วนย่อย ๆ ของ XML tree ใน GtkBuilder
4.4 ไลบรารีข้อความทันใจ
พร้อมกับโปรแกรมส่งข้อความทันใจตัวใหม่ (ดู หัวข้อ 2.1 ความสัมพันธ์ไม่ขาดตอน) GNOME 2.24 ก็มีไลบรารี libempathy, libempathy-gtk และ telepathy-glib ซึ่งสามารถใช้เชื่อมรวมความสามารถเกี่ยวกับข้อความทันใจเข้าในโปรแกรม GNOME ใด ๆ ก็ได้
4.5 เดสก์บาร์
อินเทอร์เฟซ Match ในรุ่นนี้มีเมธอดใหม่สองเมธอด คือ set_snippet และ get_snippet โดยถ้ามีการกำหนดข้อความสั้น (snippet) ก็จะแสดงข้อความสั้นนั้นใต้ค่า get_verb ของรายการ
อินเทอร์เฟซ Action มีเมธอดใหม่ คือ get_tooltip ถ้ามีการกำหนดทับเมธอดนี้ จะมีคำแนะนำเครื่องมือเมื่อผู้ใช้วางเมาส์แช่เหนือรายการที่ตรงหรือเหนือการกระทำ