มีอะไรใหม่สำหรับนักพัฒนา

รายการเปลี่ยนแปลงต่อไปนี้สำคัญสำหรับนักพัฒนาที่ใช้แพลตฟอร์มพัฒนา GNOME 2.24 ถ้าคุณไม่ได้สนใจรายการเปลี่ยนแปลงสำหรับนักพัฒนา ก็สามารถข้ามไปที่ หัวข้อ 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 ด้วย

มีรายชื่อเต็ม ๆ ของฟังก์ชันใหม่ใน GLib และ GIO

4.3 GTK+ 2.14

GNOME 2.24 เป็น GNOME รุ่นแรกที่ต้องใช้ GTK+ รุ่น 2.14

การเปลี่ยนแปลงที่สำคัญอย่างหนึ่งใน GTK+ รุ่นนี้คือ ทุกวิดเจ็ตที่สืบทอดมาจาก GtkAdjustment (เช่น ปุ่มปรับเลขและปุ่มรางเลื่อน) จะบังคับช่วงของค่าเป็น [ค่าต่ำสุด, ค่าสูงสุด - ขนาดของหน้า] ตามที่อธิบายในเอกสารประกอบ ถ้าคุณต้องการจะใช้ช่วงเป็น [ค่าต่ำสุด, ค่าสูงสุด] ก็ให้กำหนด page_size เป็น 0

Glade และ GTK+ 2.14

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

มีรายชื่อเต็ม ๆ ของฟังก์ชันใหม่ใน GTK+ และ GDK

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 ถ้ามีการกำหนดทับเมธอดนี้ จะมีคำแนะนำเครื่องมือเมื่อผู้ใช้วางเมาส์แช่เหนือรายการที่ตรงหรือเหนือการกระทำ