Archive for พฤศจิกายน 1st, 2007

เพิ่ม menu ให้กับ menu popup บน ubuntu

หน้า desktop ของ ubuntu นั้นถูกควบคุมด้วยโปรแกรม nautilus เมื่อเราคลิ๊กขวาจะเห็น menu popup ขึ้นมา
ถ้าลงปกติก็จะเห็นว่ามันมีเมนู
popupmenu

ต่อไปผมจะทำการเพิ่ม menu ลงไปอีกอันคือ Display Setting ซึ่งผมจะให้มันเรียกโปรแกรม displayconfig-gtk ซึ่งเป็นโปรแกรมในการ ตั้งค่าต่างๆของ จอ เริ่มแรกก็ทำการโหลด source code ของ nautilus มาก่อนด้วยคำสั่ง

sudo apt-get source nautilus

แล้วก็ทำการโหลด เครื่องมือที่จำเป็นในการ build ผ่านทางคำสั่ง

sudo apt-get build-dep nautilus

แล้วก็เข้าไปแก้โค้ดที่ nautilus-2.20.0/src/file-manager/fm-desktop-icon-view.c

โดยจะทำการเพิ่มโค้ดฟังก์ชัน ที่จะเป็น callback โดยจะถูกเรียกใช้งานเมื่อเมนูถูกคลิ๊ก ดังนี้

static void

action_display_setting_callback (GtkAction *action,

gpointer data)

{

g_assert (FM_DIRECTORY_VIEW (data));

nautilus_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (data)),

_(“Display Setting”),

“gksudo displayconfig-gtk”,

NULL,

FALSE);

}
จากนั้นให้ทำการเพิ่ง ข้อมูลลงไปใน อาเรย์ desktop_view_entries ดังนี้

/* name, stock id */

{ “Display Setting”, NULL,

/* label, accelerator */

N_(“Display Setting”), NULL,

/* tooltip */

N_(“Setting a display properties”),

G_CALLBACK (action_display_setting_callback) },

เสร็จแล้วก็เซฟไฟล์นี้

ต่อไปจะไปแก้ที่ไฟล์ nautilus-2.20.0/src/file-manager/nautilus-desktop-icon-view-ui.xml

โดยเพิ่ม tag ต่อไปนี้ลงไปใน tag <popup name=”background”>


<placeholder name=“After Zoom Items”>

<placeholder name=“Display Items”>

                <menuitem name=“Display Setting” action=“Display Setting”/>

</placeholder>

</placeholder>

แล้วก็ เซฟไฟล์ แล้วแล้วก็ทำการ
./configure
make
sudo make install
ตามลำดับ  ก็จะได้ nautilus อันใหม่ที่มี menu popup บน desktop ที่มี menu ใหม่เพิ่มขึ้นมาดังรูป

popupmenu_after_edit

2 comments พฤศจิกายน 1, 2007


 

พฤศจิกายน 2007
พฤ อา
« ต.ค.   ธ.ค. »
 1234
567891011
12131415161718
19202122232425
2627282930  

ความเห็นล่าสุด

etcpe9 on Validate Form ด้วย LiveVa…
BraiN on ประสบการณ์ จับใบดำใบแดง
pphetra on Tree In Haskell
phondanai on Tree In Haskell
ืneogravity on About

Meta

Blogroll

cpe9

Linux

programming