Array 板


LINE

最近將 openSUSE 升到 12.3,發現 scim-array 會編譯失敗 看錯誤的訊息,是因為 Gtk+ API 的變動所造成的影響。 我自己修改以後,確定可以編譯成功並且可以使用,我參考 Gtk+ 的文 件以後,使用 GTK_CHECK_VERSION 區隔開不同版本間的 API,但是 我只能確定在 openSUSE 12.3 上是 work 的 @@ 下面是修改的地方: --- scim-array-1.0.1/src/scim_array_imengine_setup.cpp 2008-05-03 20:47:46.000000000 +0800 +++ scim-array-1.0.1-patch/src/scim_array_imengine_setup.cpp 2013-03-31 07:01:09.000000000 +0800 @@ -149,58 +149,104 @@ static void on_default_key_selection_clicked (GtkButton *button, gpointer user_data); + +#if GTK_CHECK_VERSION(2,12,0) +static GtkWidget * +create_options_page(); +#else static GtkWidget * create_options_page(GtkTooltips *tooltip); - +#endif // Function implementations. +#if GTK_CHECK_VERSION(2,12,0) static GtkWidget * -create_options_page(GtkTooltips *tooltips) +create_options_page() +#else +static GtkWidget * +create_options_page(GtkTooltips *tooltip); +#endif { GtkWidget *vbox; GtkWidget *button; +#if GTK_CHECK_VERSION(3,2,0) + vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 12); +#else vbox = gtk_vbox_new (FALSE, 12); +#endif gtk_container_set_border_width(GTK_CONTAINER(vbox), 12); button = gtk_check_button_new_with_mnemonic (_("Show Special Code")); gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); +#if GTK_CHECK_VERSION(2,12,0) + gtk_widget_set_tooltip_text(button, + _("To notify if the character has the special code")); +#else gtk_tooltips_set_tip(tooltips, button, _("To notify if the character has the special code"), NULL); +#endif g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(on_default_toggle_button_toggled), NULL); show_special_code_button = button; button = gtk_check_button_new_with_mnemonic(_("Only Special Code Input Mode")); gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); +#if GTK_CHECK_VERSION(2,12,0) + gtk_widget_set_tooltip_text(button, + _("If the character has the special code, you will be confined to use it")); +#else gtk_tooltips_set_tip(tooltips, button, _("If the character has the special code, you will be confined to use it"), NULL); +#endif g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(on_default_toggle_button_toggled), NULL); special_code_only_button = button; button = gtk_check_button_new_with_mnemonic(_("Use Phrase Library")); gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); +#if GTK_CHECK_VERSION(2,12,0) + gtk_widget_set_tooltip_text(button, + _("Turn on phrase input mode. (Enable after restart)")); +#else gtk_tooltips_set_tip(tooltips, button, _("Turn on phrase input mode. (Enable after restart)"), NULL); +#endif g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(on_default_toggle_button_toggled), NULL); phrases_library_button = button; +#if GTK_CHECK_VERSION(3,4,0) + GtkWidget *table = gtk_grid_new(); +#else GtkWidget *table = gtk_table_new ( 2, 2, TRUE ); +#endif + gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, TRUE, 0); GtkWidget *label = gtk_label_new(_("En/Ch Mode Switch Key")); gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); gtk_misc_set_padding (GTK_MISC (label), 4, 0); +#if GTK_CHECK_VERSION(3,4,0) + gtk_grid_attach(GTK_GRID(table), label, 0, 1, 0, 1); +#else gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 4, 4); + (GtkAttachOptions) (GTK_FILL), 4, 4); +#endif +#if GTK_CHECK_VERSION(3,2,0) + GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12); +#else GtkWidget *hbox = gtk_hbox_new(FALSE, 12); +#endif GtkWidget *entry = gtk_entry_new(); +#if GTK_CHECK_VERSION(2,0,0) + gtk_editable_set_editable (GTK_EDITABLE (entry), FALSE); +#else gtk_entry_set_editable (GTK_ENTRY (entry), FALSE); +#endif gtk_entry_set_text (GTK_ENTRY (entry), ""); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(entry), "changed", @@ -212,19 +258,35 @@ create_options_page(GtkTooltips *tooltip g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK (on_default_key_selection_clicked), ec_change_key_text); +#if GTK_CHECK_VERSION(3,4,0) + gtk_grid_attach(GTK_GRID(table), hbox, 1, 2, 0, 1); +#else gtk_table_attach_defaults(GTK_TABLE(table), hbox, 1, 2, 0, 1); +#endif label = gtk_label_new(_("Half/Full Width Mode Switch Key")); gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); gtk_misc_set_padding (GTK_MISC (label), 4, 0); +#if GTK_CHECK_VERSION(3,4,0) + gtk_grid_attach(GTK_GRID(table), label, 0, 1, 1, 2); +#else gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 4, 4); +#endif +#if GTK_CHECK_VERSION(3,2,0) + hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12); +#else hbox = gtk_hbox_new(FALSE, 12); +#endif entry = gtk_entry_new(); +#if GTK_CHECK_VERSION(2,0,0) + gtk_editable_set_editable (GTK_EDITABLE (entry), FALSE); +#else gtk_entry_set_editable (GTK_ENTRY (entry), FALSE); +#endif gtk_entry_set_text (GTK_ENTRY (entry), ""); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(entry), "changed", @@ -248,15 +310,25 @@ create_setup_window () GtkWidget *notebook; GtkWidget *label; GtkWidget *page; +#if GTK_CHECK_VERSION(2,12,0) +#else GtkTooltips *tooltips; +#endif +#if GTK_CHECK_VERSION(2,12,0) +#else tooltips = gtk_tooltips_new (); +#endif // Create the Notebook. notebook = gtk_notebook_new (); // Create the first page. +#if GTK_CHECK_VERSION(2,12,0) + page = create_options_page(); +#else page = create_options_page(tooltips); +#endif label = gtk_label_new (_("Options")); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); 修改以後的檔案 (source code): https://sites.google.com/site/ray2501/ scim-array-patch/scim-array-1.0.1-patch.zip?attredirects=0&d=1 Diff 檔: https://sites.google.com/site/ray2501/ scim-array-patch/scim_array_imengine_setup.diff?attredirects=0&d=1 上面的連結請二行合成一行。 -- --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.43.69.56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP