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灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP