?? x1651.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML><HEAD><TITLE>套件示例</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="GTK+ 2.0 教程"HREF="book1.html"><LINKREL="UP"TITLE="菜單構件"HREF="c1562.html"><LINKREL="PREVIOUS"TITLE="使用套件"HREF="x1648.html"><LINKREL="NEXT"TITLE="無文檔構件"HREF="c1656.html"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">GTK+ 2.0 教程</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="x1648.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">菜單構件</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="c1656.html"ACCESSKEY="N">Next >>></A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-ITEMFACTORYEXAMPLE">套件示例</H1><P>這里是一個使用 GTK 套件的示例。</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING"> #include <gtk/gtk.h>#include <strings.h>/* 必須的基本回調 */static void print_hello( GtkWidget *w, gpointer data ){ g_message ("Hello, World!\n");}/* 這是用來生成新菜單的 GtkItemFactoryEntry 結構。 第一項:菜單路徑。下劃線后的字母指出菜單打開時 的快捷鍵。 第二項:這個條目的快捷鍵 第三項:回調函數。 第四項:回調動作。這個改變被調用的函數的參數。默認是0. 第五項:項類型,用來定義它是哪種項, 這里是可能的值: NULL -> "<Item>" "" -> "<Item>" "<Title>" -> 創建一個標題(title)項 "<Item>" -> 創建一個簡單(simple)項 "<CheckItem>" -> 創建一個檢查(check)項 "<ToggleItem>" -> 創建一個開關(toggle)項 "<RadioItem>" -> 創建一個選擇(radio)項 <path> -> 選擇項連接到的路徑 "<Separator>" -> 創建一個分隔線(separator) "<Branch>" -> 創建一個包含子項的項(可選) "<LastBranch>" -> 創建一個右對齊的分枝(branch)*/static GtkItemFactoryEntry menu_items[] = { { "/_File", NULL, NULL, 0, "<Branch>" }, { "/File/_New", "<control>N", print_hello, 0, NULL }, { "/File/_Open", "<control>O", print_hello, 0, NULL }, { "/File/_Save", "<control>S", print_hello, 0, NULL }, { "/File/Save _As", NULL, NULL, 0, NULL }, { "/File/sep1", NULL, NULL, 0, "<Separator>" }, { "/File/Quit", "<control>Q", gtk_main_quit, 0, NULL }, { "/_Options", NULL, NULL, 0, "<Branch>" }, { "/Options/Test", NULL, NULL, 0, NULL }, { "/_Help", NULL, NULL, 0, "<LastBranch>" }, { "/_Help/About", NULL, NULL, 0, NULL },};void get_main_menu( GtkWidget *window, GtkWidget **menubar ){ GtkItemFactory *item_factory; GtkAccelGroup *accel_group; gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); accel_group = gtk_accel_group_new (); /* 這個函數初始化套件。 參數1:菜單類型 - 可以是GTK_TYPE_MENU_BAR, GTK_TYPE_MENU, 或GTK_TYPE_OPTION_MENU。 參數2:菜單路徑。 參數3:指向一個gtk_accel_group的指針。套件在生成菜單時設置 好加速表(accelerator table)。 */ item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group); /* 這個函數生成菜單項。把數組里項的數量,數組自身,和菜單項的任 意回調數據依次傳遞給套件。 */ gtk_item_factory_create_items (item_factory, nmenu_items, menu_items, NULL); /* 把新的加速組綁定到窗口。 */ gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); if (menubar) /* 最后,返回套件已經創建的菜單欄。 */ *menubar = gtk_item_factory_get_widget (item_factory, "<main>");}int main( int argc, char *argv[] ){ GtkWidget *window; GtkWidget *main_vbox; GtkWidget *menubar; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_window_set_title (GTK_WINDOW (window), "Item Factory"); gtk_widget_set_size_request (GTK_WIDGET (window), 300, 200); main_vbox = gtk_vbox_new (FALSE, 1); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 1); gtk_container_add (GTK_CONTAINER (window), main_vbox); gtk_widget_show (main_vbox); get_main_menu (window, &menubar); gtk_box_pack_start (GTK_BOX (main_vbox), menubar, FALSE, TRUE, 0); gtk_widget_show (menubar); gtk_widget_show (window); gtk_main (); return 0;}</PRE></TD></TR></TABLE><P>目前,這里只有這個示例。以后會增加一個說明和許多'o'評論。 </P></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="x1648.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="book1.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="c1656.html"ACCESSKEY="N">Next >>></A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">使用套件</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="c1562.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">無文檔構件</TD></TR></TABLE></DIV></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -