summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2009-03-20 14:07:30 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2009-03-20 14:07:30 +0800
commit0aa48a09c1ccca63e6909204e1ec673dff2341c2 (patch)
treef4e85128f8178761e28ce65f655e9ab477c153ac
parent1a76fee5d5c7926e0d4f54a5dbd34bff8007d062 (diff)
parentab417dd043ee6ba338518758c1c833f6ccbb7bdf (diff)
downloadibus-definite.tar.gz
ibus-definite.tar.xz
ibus-definite.zip
Merge commit 'origin/master' into definitedefinite
Conflicts: po/fr.po
-rw-r--r--bus/dbusimpl.c17
-rw-r--r--bus/matchrule.c1
-rw-r--r--client/gtk2/ibusimcontext.c3
-rw-r--r--po/fr.po136
-rw-r--r--po/ja.po167
-rw-r--r--po/pa.po126
-rw-r--r--po/zh_CN.po122
-rw-r--r--setup/main.py14
-rw-r--r--setup/setup.glade386
-rw-r--r--src/Makefile.am8
-rw-r--r--src/ibusbus.c42
-rw-r--r--src/ibusbus.h2
-rw-r--r--src/ibusengine.c4
-rw-r--r--src/ibusengine.h1
-rw-r--r--src/ibusinputcontext.c2
-rw-r--r--src/ibusproxy.c158
-rw-r--r--src/ibusproxy.h1
-rw-r--r--src/test-proxy.c24
18 files changed, 651 insertions, 563 deletions
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
index 3cc51dc..f51ab96 100644
--- a/bus/dbusimpl.c
+++ b/bus/dbusimpl.c
@@ -829,6 +829,16 @@ _connection_ibus_message_cb (BusConnection *connection,
break;
#endif
#if 0
+ case DBUS_MESSAGE_TYPE_SIGNAL:
+ g_debug ("From :%s to %s, Signal: %s @ %s",
+ ibus_message_get_sender (message),
+ ibus_message_get_destination (message),
+ ibus_message_get_member (message),
+ ibus_message_get_path (message)
+ );
+ break;
+#endif
+#if 0
case DBUS_MESSAGE_TYPE_METHOD_CALL:
g_debug("From %s to %s, Method %s on %s",
ibus_message_get_sender (message),
@@ -1068,10 +1078,9 @@ bus_dbus_impl_dispatch_message_by_rule (BusDBusImpl *dbus,
#endif
for (link = dbus->rules; link != NULL; link = link->next) {
- recipients = bus_match_rule_get_recipients (BUS_MATCH_RULE (link->data),
- message);
- if (recipients != NULL)
- break;
+ GList *list = bus_match_rule_get_recipients (BUS_MATCH_RULE (link->data),
+ message);
+ recipients = g_list_concat (recipients, list);
}
for (link = recipients; link != NULL; link = link->next) {
diff --git a/bus/matchrule.c b/bus/matchrule.c
index f40147a..932d256 100644
--- a/bus/matchrule.c
+++ b/bus/matchrule.c
@@ -499,6 +499,7 @@ bus_match_rule_match (BusMatchRule *rule,
ibus_message_iter_next (&iter);
}
}
+
return TRUE;
}
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
index 29e7753..4483696 100644
--- a/client/gtk2/ibusimcontext.c
+++ b/client/gtk2/ibusimcontext.c
@@ -569,7 +569,6 @@ _ibus_context_commit_text_cb (IBusInputContext *ibus_context,
static void
_ibus_context_forward_key_event_cb (IBusInputContext *ibus_context,
guint keyval,
- gboolean is_press,
guint state,
IBusIMContext *context)
{
@@ -579,7 +578,7 @@ _ibus_context_forward_key_event_cb (IBusInputContext *ibus_context,
IBusIMContextPrivate *priv;
priv = context->priv;
- event = (GdkEventKey *)gdk_event_new (is_press ? GDK_KEY_PRESS : GDK_KEY_RELEASE);
+ event = (GdkEventKey *)gdk_event_new (state & IBUS_RELEASE_MASK ? GDK_KEY_RELEASE : GDK_KEY_PRESS);
event->time = GDK_CURRENT_TIME;
event->window = g_object_ref (priv->client_window);
diff --git a/po/fr.po b/po/fr.po
index 77586e6..8d6e071 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ibus VERSION\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n"
-"POT-Creation-Date: 2009-03-06 10:39+0800\n"
+"POT-Creation-Date: 2009-03-20 09:52+0800\n"
"PO-Revision-Date: 2009-02-06 01:55+0100\n"
"Last-Translator: Julroy67 <julroy67@gmail.com>\n"
"Language-Team: French <julroy67@gmail.com>\n"
@@ -47,23 +47,23 @@ msgstr "HUMBERT Julien <julroy67@gmail.com>"
msgid "Switch engine"
msgstr "Changer de moteur"
-#: setup/main.py:99
+#: setup/main.py:103
msgid "trigger"
msgstr "déclencheur"
-#: setup/main.py:109
+#: setup/main.py:113
msgid "next engine"
msgstr "moteur suivant"
-#: setup/main.py:119
+#: setup/main.py:123
msgid "prev engine"
msgstr "moteur précédent"
-#: setup/main.py:197
+#: setup/main.py:204
msgid "IBus daemon is not started. Do you want to start it now?"
msgstr "Le démon IBus n'est pas démarré. Voulez-vous le démarrer maintenant ?"
-#: setup/main.py:212
+#: setup/main.py:219
msgid ""
"IBus has been started! If you can not use IBus, please add below lines in "
"$HOME/.bashrc, and relogin your desktop.\n"
@@ -78,7 +78,7 @@ msgstr ""
" export XMODIFIERS=@im=ibus\n"
" export QT_IM_MODULE=ibus"
-#: setup/main.py:227
+#: setup/main.py:234
#, python-format
msgid "Select keyboard shortcut for %s"
msgstr "Choisissez le raccourci clavier pour %s"
@@ -116,38 +116,33 @@ msgstr ""
msgid "IBus Preferences"
msgstr ""
-#: setup/setup.glade:44 setup/setup.glade:63 setup/setup.glade:81
+#: setup/setup.glade:64 setup/setup.glade:96 setup/setup.glade:128
msgid "..."
msgstr "…"
-#: setup/setup.glade:145
-msgid "Previous engine:"
-msgstr "Moteur précédent :"
-#: setup/setup.glade:46
-msgid "Trigger:"
-msgstr "Déclencheur :"
+#: setup/setup.glade:148
+msgid "previous input method:"
+msgstr ""
-#: setup/setup.glade:60
-msgid "Next engine:"
+#: setup/setup.glade:161
+#, fuzzy
+msgid "Next input method:"
msgstr "Moteur suivant :"
-#: setup/setup.glade:76
-msgid "Previous engine:"
-msgstr "Moteur précédent :"
-
-#: setup/setup.glade:139 setup/setup.glade:156 setup/setup.glade:176
-msgid "..."
-msgstr "…"
+#: setup/setup.glade:174
+msgid "Enable or disable:"
+msgstr ""
-#: setup/setup.glade:197
+#: setup/setup.glade:188
msgid "<b>Keyboard Shortcuts</b>"
msgstr "<b>Raccourcis claviers</b>"
-#: setup/setup.glade:229
-msgid "Lookup table orientation:"
+#: setup/setup.glade:222
+#, fuzzy
+msgid "Candidates orientation:"
msgstr "Orientation de la table :"
-#: setup/setup.glade:240
+#: setup/setup.glade:232
msgid ""
"Horizontal\n"
"Vertical"
@@ -155,60 +150,39 @@ msgstr ""
"Horizontal\n"
"Vertical"
-#: setup/setup.glade:257
+#: setup/setup.glade:249
msgid "Show language panel:"
msgstr ""
-#: setup/setup.glade:268
+#: setup/setup.glade:259
msgid ""
-"Always Hide\n"
-"On Daemon\n"
-"Always Show"
+"Never\n"
+"When active\n"
+"Always"
msgstr ""
-#: setup/setup.glade:285
+#: setup/setup.glade:276
msgid "Use custom font"
msgstr "Utiliser une police personnalisée"
-#: setup/setup.glade:311
-msgid "<b>Font and Style</b>"
-msgstr ""
-
-#: setup/setup.glade:336
+#: setup/setup.glade:292
#, fuzzy
-msgid "Start ibus on login"
-msgstr "Démarrer automatiquement IBus lors de la connexion"
+msgid "Custom font:"
+msgstr "Utiliser une police personnalisée"
-#: setup/setup.glade:346
-#, fuzzy
-msgid "<b>Startup</b>"
-msgstr "<b>Interface Utilisateur</b>"
+#: setup/setup.glade:317
+msgid "<b>Font and Style</b>"
+msgstr ""
-#: setup/setup.glade:371
+#: setup/setup.glade:337
msgid "General"
msgstr "Général"
-#: setup/setup.glade:442
-msgid "gtk-add"
-msgstr "gtk-add"
-
-#: setup/setup.glade:456
-msgid "gtk-remove"
-msgstr "gtk-remove"
-
-#: setup/setup.glade:471
-msgid "gtk-go-up"
-msgstr "gtk-go-up"
-
-#: setup/setup.glade:486
-msgid "gtk-go-down"
-msgstr "gtk-go-down"
-
-#: setup/setup.glade:513
+#: setup/setup.glade:465
msgid "Input Methods"
msgstr ""
-#: setup/setup.glade:529
+#: setup/setup.glade:482
msgid ""
"<big><b>IBus</b></big>\n"
"<small>The intelligent input bus</small>\n"
@@ -224,13 +198,41 @@ msgstr ""
"\n"
"\n"
-#: setup/setup.glade:554
+#: setup/setup.glade:510
+#, fuzzy
+msgid "Start ibus on login"
+msgstr "Démarrer automatiquement IBus lors de la connexion"
+
+#: setup/setup.glade:521
+#, fuzzy
+msgid "<b>Startup</b>"
+msgstr "<b>Interface Utilisateur</b>"
+
+#: setup/setup.glade:543
msgid "About"
msgstr "À propos"
-#: setup/setup.glade:576
-msgid "gtk-close"
-msgstr "gtk-close"
+#~ msgid "Trigger:"
+#~ msgstr "Déclencheur :"
+
+#, fuzzy
+#~ msgid "Previous IME:"
+#~ msgstr "Moteur précédent :"
+
+#~ msgid "gtk-add"
+#~ msgstr "gtk-add"
+
+#~ msgid "gtk-remove"
+#~ msgstr "gtk-remove"
+
+#~ msgid "gtk-go-up"
+#~ msgstr "gtk-go-up"
+
+#~ msgid "gtk-go-down"
+#~ msgstr "gtk-go-down"
+
+#~ msgid "gtk-close"
+#~ msgstr "gtk-close"
#~ msgid "Auto hide language bar"
#~ msgstr "Cacher automatiquement la barre de langue"
diff --git a/po/ja.po b/po/ja.po
index f97ae09..eeb2117 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ibus VERSION\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n"
-"POT-Creation-Date: 2009-03-06 10:39+0800\n"
-"PO-Revision-Date: 2008-08-28 17:31+0900\n"
-"Last-Translator: UTUMI Hirosi <utuhiro78@yahoo.co.jp>\n"
+"POT-Creation-Date: 2009-03-20 09:52+0800\n"
+"PO-Revision-Date: 2009-03-19 16:12+0900\n"
+"Last-Translator: IWAI, Masaharu <iwai@alib.jp>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,49 +19,51 @@ msgstr ""
#: ibus/lang.py:40 ui/gtk/panel.py:307 ui/gtk/panel.py:308 ui/gtk/panel.py:309
#: ui/gtk/panel.py:310
msgid "Other"
-msgstr ""
+msgstr "その他"
#: ui/gtk/panel.py:97
msgid "IBus input method framework"
-msgstr ""
+msgstr "IBus インプットメソッドフレームワーク"
#: ui/gtk/panel.py:282
msgid "Restart"
-msgstr ""
+msgstr "再起動"
#: ui/gtk/panel.py:337
msgid "No input method"
-msgstr ""
+msgstr "インプットメソッドがありません"
#: ui/gtk/panel.py:383
msgid "IBus is an intelligent input bus for Linux/Unix."
-msgstr ""
+msgstr "IBus は、Linux/Unix のためのインテリジェントなインプットバスです。"
#: ui/gtk/panel.py:387
msgid "translator-credits"
-msgstr "UTUMI Hirosi <utuhiro78@yahoo.co.jp>"
+msgstr ""
+"UTUMI Hirosi <utuhiro78@yahoo.co.jp>\n"
+"IWAI, Masaharu <iwai@alib.jp>"
#: ui/gtk/languagebar.py:84
msgid "Switch engine"
-msgstr ""
+msgstr "エンジンの変更"
-#: setup/main.py:99
+#: setup/main.py:103
msgid "trigger"
msgstr "トリガー"
-#: setup/main.py:109
+#: setup/main.py:113
msgid "next engine"
msgstr "次のエンジン"
-#: setup/main.py:119
+#: setup/main.py:123
msgid "prev engine"
msgstr "前のエンジン"
-#: setup/main.py:197
+#: setup/main.py:204
msgid "IBus daemon is not started. Do you want to start it now?"
msgstr "IBus デーモンが動いていません。起動しますか?"
-#: setup/main.py:212
+#: setup/main.py:219
msgid ""
"IBus has been started! If you can not use IBus, please add below lines in "
"$HOME/.bashrc, and relogin your desktop.\n"
@@ -75,7 +77,7 @@ msgstr ""
" export XMODIFIERS=@im=ibus\n"
" export QT_IM_MODULE=ibus"
-#: setup/main.py:227
+#: setup/main.py:234
#, python-format
msgid "Select keyboard shortcut for %s"
msgstr "%s のキーボードショートカットを選択"
@@ -106,37 +108,37 @@ msgstr "キーもしくはキーの組み合わせを入力してください"
#: setup/enginecombobox.py:99
msgid "Select an input method"
-msgstr ""
+msgstr "インプットメソッドの選択"
#: setup/setup.glade:7
msgid "IBus Preferences"
-msgstr ""
+msgstr "IBus の設定"
-#: setup/setup.glade:46
-msgid "Trigger:"
-msgstr "トリガー:"
+#: setup/setup.glade:64 setup/setup.glade:96 setup/setup.glade:128
+msgid "..."
+msgstr "..."
-#: setup/setup.glade:60
-msgid "Next engine:"
-msgstr "次のエンジン:"
+#: setup/setup.glade:148
+msgid "previous input method:"
+msgstr "ひとつ前のインプットメソッド:"
-#: setup/setup.glade:76
-msgid "Previous engine:"
-msgstr "前のエンジン:"
+#: setup/setup.glade:161
+msgid "Next input method:"
+msgstr "次のインプットメソッド:"
-#: setup/setup.glade:139 setup/setup.glade:156 setup/setup.glade:176
-msgid "..."
-msgstr "..."
+#: setup/setup.glade:174
+msgid "Enable or disable:"
+msgstr "切り替え"
-#: setup/setup.glade:197
+#: setup/setup.glade:188
msgid "<b>Keyboard Shortcuts</b>"
msgstr "<b>キーボードショートカット</b>"
-#: setup/setup.glade:229
-msgid "Lookup table orientation:"
+#: setup/setup.glade:222
+msgid "Candidates orientation:"
msgstr "候補ウィンドウの向き:"
-#: setup/setup.glade:240
+#: setup/setup.glade:232
msgid ""
"Horizontal\n"
"Vertical"
@@ -144,60 +146,41 @@ msgstr ""
"横\n"
"縦"
-#: setup/setup.glade:257
+#: setup/setup.glade:249
msgid "Show language panel:"
-msgstr ""
+msgstr "言語パネルの表示:"
-#: setup/setup.glade:268
+#: setup/setup.glade:259
msgid ""
-"Always Hide\n"
-"On Daemon\n"
-"Always Show"
+"Never\n"
+"When active\n"
+"Always"
msgstr ""
+"表示しない\n"
+"有効なときだけ表示する\n"
+"常に表示する"
-#: setup/setup.glade:285
+#: setup/setup.glade:276
msgid "Use custom font"
msgstr "カスタムフォントを使う"
-#: setup/setup.glade:311
-msgid "<b>Font and Style</b>"
-msgstr ""
+#: setup/setup.glade:292
+msgid "Custom font:"
+msgstr "カスタムフォント:"
-#: setup/setup.glade:336
-#, fuzzy
-msgid "Start ibus on login"
-msgstr "セッションログイン時に IBus を自動的に起動"
-
-#: setup/setup.glade:346
-msgid "<b>Startup</b>"
-msgstr ""
+#: setup/setup.glade:317
+msgid "<b>Font and Style</b>"
+msgstr "<b>フォントとスタイル</b>"
-#: setup/setup.glade:371
+#: setup/setup.glade:337
msgid "General"
msgstr "一般"
-#: setup/setup.glade:442
-msgid "gtk-add"
-msgstr ""
-
-#: setup/setup.glade:456
-#, fuzzy
-msgid "gtk-remove"
-msgstr "gtk-close"
-
-#: setup/setup.glade:471
-msgid "gtk-go-up"
-msgstr ""
-
-#: setup/setup.glade:486
-msgid "gtk-go-down"
-msgstr ""
-
-#: setup/setup.glade:513
+#: setup/setup.glade:465
msgid "Input Methods"
-msgstr ""
+msgstr "インプットメソッド"
-#: setup/setup.glade:529
+#: setup/setup.glade:482
msgid ""
"<big><b>IBus</b></big>\n"
"<small>The intelligent input bus</small>\n"
@@ -206,29 +189,21 @@ msgid ""
"\n"
"\n"
msgstr ""
+"<big><b>IBus</b></big>\n"
+"<small>インテリジェントなインプットバス</small>\n"
+"ホームページ: http://code.google.com/p/ibus\n"
+"\n"
+"\n"
+"\n"
-#: setup/setup.glade:554
-msgid "About"
-msgstr "About"
-
-#: setup/setup.glade:576
-msgid "gtk-close"
-msgstr "gtk-close"
-
-#~ msgid "Auto hide language bar"
-#~ msgstr "言語バーを自動で隠す"
-
-#~ msgid "IBus - Running"
-#~ msgstr "IBus - 実行中"
-
-#~ msgid "IBus - Setup"
-#~ msgstr "IBus - セットアップ"
-
-#~ msgid "Engine"
-#~ msgstr "エンジン"
+#: setup/setup.glade:510
+msgid "Start ibus on login"
+msgstr "ログイン時に IBus を起動"
-#~ msgid "Started"
-#~ msgstr "開始"
+#: setup/setup.glade:521
+msgid "<b>Startup</b>"
+msgstr "<b>スタートアップ</b>"
-#~ msgid "Preload"
-#~ msgstr "プリロード"
+#: setup/setup.glade:543
+msgid "About"
+msgstr "About"
diff --git a/po/pa.po b/po/pa.po
index 375c53e..0bb12ce 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ibus\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n"
-"POT-Creation-Date: 2009-03-06 10:39+0800\n"
+"POT-Creation-Date: 2009-03-20 09:52+0800\n"
"PO-Revision-Date: 2008-10-17 14:15+0530\n"
"Last-Translator: Amanpreet Singh <aalam@users.sf.net>\n"
"Language-Team: Punjabi/Panjabi <punjabi-l10n@lists.sf.net>\n"
@@ -45,23 +45,23 @@ msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ"
msgid "Switch engine"
msgstr "ਇੰਜਣ ਬਦਲੋ"
-#: setup/main.py:99
+#: setup/main.py:103
msgid "trigger"
msgstr "ਟਰਿੱਗਰ"
-#: setup/main.py:109
+#: setup/main.py:113
msgid "next engine"
msgstr "ਅਗਲਾ ਇੰਜਣ"
-#: setup/main.py:119
+#: setup/main.py:123
msgid "prev engine"
msgstr "ਪਿਛਲਾ ਇੰਜਣ"
-#: setup/main.py:197
+#: setup/main.py:204
msgid "IBus daemon is not started. Do you want to start it now?"
msgstr "IBus ਡੈਮਨ ਚੱਲਦੀ ਨਹੀਂ ਹੈ। ਕੀ ਤੁਸੀਂ ਇਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"
-#: setup/main.py:212
+#: setup/main.py:219
msgid ""
"IBus has been started! If you can not use IBus, please add below lines in "
"$HOME/.bashrc, and relogin your desktop.\n"
@@ -74,7 +74,7 @@ msgstr ""
"
 export XMODIFIERS=@im=ibus\n"
"
 export QT_IM_MODULE=ibus"
-#: setup/main.py:227
+#: setup/main.py:234
#, python-format
msgid "Select keyboard shortcut for %s"
msgstr "%s ਲਈ ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਚੁਣੋ"
@@ -111,31 +111,33 @@ msgstr ""
msgid "IBus Preferences"
msgstr ""
-#: setup/setup.glade:46
-msgid "Trigger:"
-msgstr "ਟਰਿੱਗਰ:"
+#: setup/setup.glade:64 setup/setup.glade:96 setup/setup.glade:128
+msgid "..."
+msgstr "..."
-#: setup/setup.glade:60
-msgid "Next engine:"
-msgstr "ਅਗਲਾ ਇੰਜਣ:"
+#: setup/setup.glade:148
+msgid "previous input method:"
+msgstr ""
-#: setup/setup.glade:76
-msgid "Previous engine:"
-msgstr "ਪਿਛਲਾ ਇੰਜਣ"
+#: setup/setup.glade:161
+#, fuzzy
+msgid "Next input method:"
+msgstr "ਅਗਲਾ ਇੰਜਣ:"
-#: setup/setup.glade:139 setup/setup.glade:156 setup/setup.glade:176
-msgid "..."
-msgstr "..."
+#: setup/setup.glade:174
+msgid "Enable or disable:"
+msgstr ""
-#: setup/setup.glade:197
+#: setup/setup.glade:188
msgid "<b>Keyboard Shortcuts</b>"
msgstr "<b>ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ</b>"
-#: setup/setup.glade:229
-msgid "Lookup table orientation:"
+#: setup/setup.glade:222
+#, fuzzy
+msgid "Candidates orientation:"
msgstr "ਖੋਜ ਟੇਬਲ ਸਥਿਤੀ:"
-#: setup/setup.glade:240
+#: setup/setup.glade:232
msgid ""
"Horizontal\n"
"Vertical"
@@ -143,60 +145,39 @@ msgstr ""
"ਹਰੀਜੱਟਲ\n"
"
ਵਰਟੀਕਲ"
-#: setup/setup.glade:257
+#: setup/setup.glade:249
msgid "Show language panel:"
msgstr ""
-#: setup/setup.glade:268
+#: setup/setup.glade:259
msgid ""
-"Always Hide\n"
-"On Daemon\n"
-"Always Show"
+"Never\n"
+"When active\n"
+"Always"
msgstr ""
-#: setup/setup.glade:285
+#: setup/setup.glade:276
msgid "Use custom font"
msgstr "ਪਸੰਦੀਦਾ ਫੋਂਟ ਵਰਤੋਂ"
-#: setup/setup.glade:311
-msgid "<b>Font and Style</b>"
-msgstr ""
-
-#: setup/setup.glade:336
+#: setup/setup.glade:292
#, fuzzy
-msgid "Start ibus on login"
-msgstr "ਸ਼ੈਸ਼ਨ ਲਾਗਇਨ ਨਾਲ IBus ਆਟੋਮੈਟਿਕ ਚਾਲੂ ਕਰੋ"
+msgid "Custom font:"
+msgstr "ਪਸੰਦੀਦਾ ਫੋਂਟ ਵਰਤੋਂ"
-#: setup/setup.glade:346
-#, fuzzy
-msgid "<b>Startup</b>"
-msgstr "<b>UI</b>"
+#: setup/setup.glade:317
+msgid "<b>Font and Style</b>"
+msgstr ""
-#: setup/setup.glade:371
+#: setup/setup.glade:337
msgid "General"
msgstr "ਆਮ"
-#: setup/setup.glade:442
-msgid "gtk-add"
-msgstr ""
-
-#: setup/setup.glade:456
-msgid "gtk-remove"
-msgstr "gtk-close"
-
-#: setup/setup.glade:471
-msgid "gtk-go-up"
-msgstr ""
-
-#: setup/setup.glade:486
-msgid "gtk-go-down"
-msgstr ""
-
-#: setup/setup.glade:513
+#: setup/setup.glade:465
msgid "Input Methods"
msgstr ""
-#: setup/setup.glade:529
+#: setup/setup.glade:482
msgid ""
"<big><b>IBus</b></big>\n"
"<small>The intelligent input bus</small>\n"
@@ -212,13 +193,32 @@ msgstr ""
"
\n"
"
\n"
-#: setup/setup.glade:554
+#: setup/setup.glade:510
+#, fuzzy
+msgid "Start ibus on login"
+msgstr "ਸ਼ੈਸ਼ਨ ਲਾਗਇਨ ਨਾਲ IBus ਆਟੋਮੈਟਿਕ ਚਾਲੂ ਕਰੋ"
+
+#: setup/setup.glade:521
+#, fuzzy
+msgid "<b>Startup</b>"
+msgstr "<b>UI</b>"
+
+#: setup/setup.glade:543
msgid "About"
msgstr "ਇਸ ਬਾਰੇ"
-#: setup/setup.glade:576
-msgid "gtk-close"
-msgstr "gtk-close"
+#~ msgid "Trigger:"
+#~ msgstr "ਟਰਿੱਗਰ:"
+
+#, fuzzy
+#~ msgid "Previous IME:"
+#~ msgstr "ਪਿਛਲਾ ਇੰਜਣ"
+
+#~ msgid "gtk-remove"
+#~ msgstr "gtk-close"
+
+#~ msgid "gtk-close"
+#~ msgstr "gtk-close"
#~ msgid "Auto hide language bar"
#~ msgstr "ਭਾਸ਼ਾ ਪੱਟੀ ਆਟੋਮੈਟਿਕ ਓਹਲੇ ਕਰੋ"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 984517c..6713459 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1.1.20080813\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n"
-"POT-Creation-Date: 2009-03-06 10:39+0800\n"
+"POT-Creation-Date: 2009-03-20 09:52+0800\n"
"PO-Revision-Date: 2008-08-13 21:59+0800\n"
"Last-Translator: Huang Peng <shawn.p.huang@gmail.com>\n"
"Language-Team: Huang Peng <shawn.p.huang@gmail.com>\n"
@@ -45,23 +45,23 @@ msgstr "Huang Peng <shawn.p.huang@gmail.com>"
msgid "Switch engine"
msgstr "切换引擎"
-#: setup/main.py:99
+#: setup/main.py:103
msgid "trigger"
msgstr "开关"
-#: setup/main.py:109
+#: setup/main.py:113
msgid "next engine"
msgstr "下一个引擎"
-#: setup/main.py:119
+#: setup/main.py:123
msgid "prev engine"
msgstr "上一个引擎"
-#: setup/main.py:197
+#: setup/main.py:204
msgid "IBus daemon is not started. Do you want to start it now?"
msgstr "IBus守护进程没有启动,您是否想现在启动它?"
-#: setup/main.py:212
+#: setup/main.py:219
msgid ""
"IBus has been started! If you can not use IBus, please add below lines in "
"$HOME/.bashrc, and relogin your desktop.\n"
@@ -74,7 +74,7 @@ msgstr ""
" export XMODIFIERS=@im=ibus\n"
" export QT_IM_MODULE=ibus"
-#: setup/main.py:227
+#: setup/main.py:234
#, python-format
msgid "Select keyboard shortcut for %s"
msgstr "选择%s的快捷键"
@@ -111,31 +111,31 @@ msgstr "选择输入法"
msgid "IBus Preferences"
msgstr "IBus设置"
-#: setup/setup.glade:46
-msgid "Trigger:"
-msgstr "开关:"
+#: setup/setup.glade:64 setup/setup.glade:96 setup/setup.glade:128
+msgid "..."
+msgstr ""
-#: setup/setup.glade:60
-msgid "Next engine:"
-msgstr "下一个引擎:"
+#: setup/setup.glade:148
+msgid "previous input method:"
+msgstr "前一入法"
-#: setup/setup.glade:76
-msgid "Previous engine:"
-msgstr "上一个引擎:"
+#: setup/setup.glade:161
+msgid "Next input method:"
+msgstr "下一入法"
-#: setup/setup.glade:139 setup/setup.glade:156 setup/setup.glade:176
-msgid "..."
-msgstr ""
+#: setup/setup.glade:174
+msgid "Enable or disable:"
+msgstr "开关"
-#: setup/setup.glade:197
+#: setup/setup.glade:188
msgid "<b>Keyboard Shortcuts</b>"
msgstr "<b>快捷键</b>"
-#: setup/setup.glade:229
-msgid "Lookup table orientation:"
-msgstr "候选词表方向:"
+#: setup/setup.glade:222
+msgid "Candidates orientation:"
+msgstr "候选词排列方向:"
-#: setup/setup.glade:240
+#: setup/setup.glade:232
msgid ""
"Horizontal\n"
"Vertical"
@@ -143,62 +143,41 @@ msgstr ""
"水平\n"
"竖直"
-#: setup/setup.glade:257
+#: setup/setup.glade:249
msgid "Show language panel:"
-msgstr "显示语言栏"
+msgstr "显示语言栏:"
-#: setup/setup.glade:268
+#: setup/setup.glade:259
msgid ""
-"Always Hide\n"
-"On Daemon\n"
-"Always Show"
+"Never\n"
+"When active\n"
+"Always"
msgstr ""
-"总是隐藏\n"
-"按需要显示\n"
-"总是显示"
-
+"从不\n"
+"活动时\n"
+"总是"
-#: setup/setup.glade:285
+#: setup/setup.glade:276
msgid "Use custom font"
msgstr "使用自定义字体"
-#: setup/setup.glade:311
+#: setup/setup.glade:292
+msgid "Custom font:"
+msgstr "自定义字体:"
+
+#: setup/setup.glade:317
msgid "<b>Font and Style</b>"
msgstr "<b>字体和风格</b>"
-#: setup/setup.glade:336
-msgid "Start ibus on login"
-msgstr "启动桌面时自动启动IBus"
-
-#: setup/setup.glade:346
-msgid "<b>Startup</b>"
-msgstr "<b>启动</b>"
-
-#: setup/setup.glade:371
+#: setup/setup.glade:337
msgid "General"
msgstr "通用"
-#: setup/setup.glade:442
-msgid "gtk-add"
-msgstr ""
-
-#: setup/setup.glade:456
-msgid "gtk-remove"
-msgstr ""
-
-#: setup/setup.glade:471
-msgid "gtk-go-up"
-msgstr ""
-
-#: setup/setup.glade:486
-msgid "gtk-go-down"
-msgstr ""
-
-#: setup/setup.glade:513
+#: setup/setup.glade:465
msgid "Input Methods"
msgstr "输入法"
-#: setup/setup.glade:529
+#: setup/setup.glade:482
msgid ""
"<big><b>IBus</b></big>\n"
"<small>The intelligent input bus</small>\n"
@@ -208,13 +187,14 @@ msgid ""
"\n"
msgstr ""
-#: setup/setup.glade:554
-msgid "About"
-msgstr "关于"
+#: setup/setup.glade:510
+msgid "Start ibus on login"
+msgstr "启动桌面时自动启动IBus"
-#: setup/setup.glade:576
-msgid "gtk-close"
-msgstr ""
+#: setup/setup.glade:521
+msgid "<b>Startup</b>"
+msgstr "<b>启动</b>"
-#~ msgid "Auto hide language bar"
-#~ msgstr "自动隐藏语言栏"
+#: setup/setup.glade:543
+msgid "About"
+msgstr "关于"
diff --git a/setup/main.py b/setup/main.py
index afd7e0b..42c3233 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -78,7 +78,11 @@ class Setup(object):
def __init_ui(self):
# add icon search path
- self.__dialog = self.__xml.get_widget("dialog_setup")
+ self.__window = self.__xml.get_widget("window_preferences")
+ self.__window.connect("delete-event", gtk.main_quit)
+
+ self.__button_close = self.__xml.get_widget("button_close")
+ self.__button_close.connect("clicked", gtk.main_quit)
# auto start ibus
self.__checkbutton_auto_start = self.__xml.get_widget("checkbutton_auto_start")
@@ -137,10 +141,13 @@ class Setup(object):
self.__config.get_value("panel", "use_custom_font", False))
self.__checkbutton_custom_font.connect("toggled", self.__checkbutton_custom_font_toggled_cb)
+ self.__label_custom_font = self.__xml.get_widget("label_custom_font")
self.__fontbutton_custom_font = self.__xml.get_widget("fontbutton_custom_font")
if self.__config.get_value("panel", "use_custom_font", False):
+ self.__label_custom_font.set_sensitive(True)
self.__fontbutton_custom_font.set_sensitive(True)
else:
+ self.__label_custom_font.set_sensitive(False)
self.__fontbutton_custom_font.set_sensitive(False)
font_name = gtk.settings_get_default().get_property("gtk-font-name")
font_name = unicode(font_name, "utf-8")
@@ -335,9 +342,11 @@ class Setup(object):
def __checkbutton_custom_font_toggled_cb(self, button):
if self.__checkbutton_custom_font.get_active():
+ self.__label_custom_font.set_sensitive(True)
self.__fontbutton_custom_font.set_sensitive(True)
self.__config.set_value("panel", "use_custom_font", True)
else:
+ self.__label_custom_font.set_sensitive(False)
self.__fontbutton_custom_font.set_sensitive(False)
self.__config.set_value("panel", "use_custom_font", False)
@@ -353,7 +362,8 @@ class Setup(object):
pass
def run(self):
- return self.__dialog.run()
+ self.__window.show_all()
+ gtk.main()
if __name__ == "__main__":
Setup().run()
diff --git a/setup/setup.glade b/setup/setup.glade
index d6b31ee..ab7b061 100644
--- a/setup/setup.glade
+++ b/setup/setup.glade
@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Fri Mar 6 10:26:22 2009 -->
+<!--*- mode: xml -*-->
<glade-interface>
- <widget class="GtkDialog" id="dialog_setup">
- <property name="border_width">5</property>
+ <widget class="GtkWindow" id="window_preferences">
+ <property name="border_width">12</property>
<property name="title" translatable="yes">IBus Preferences</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="resizable">False</property>
+ <property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="icon_name">gtk-preferences</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="has_separator">False</property>
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
+ <child>
+ <widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
- <property name="spacing">2</property>
+ <property name="spacing">12</property>
<child>
<widget class="GtkNotebook" id="notebook1">
<property name="visible">True</property>
@@ -20,11 +19,14 @@
<child>
<widget class="GtkAlignment" id="alignment3">
<property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">6</property>
+ <property name="top_padding">12</property>
+ <property name="bottom_padding">12</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">12</property>
<child>
<widget class="GtkVBox" id="vbox5">
<property name="visible">True</property>
+ <property name="spacing">18</property>
<child>
<widget class="GtkFrame" id="frame3">
<property name="visible">True</property>
@@ -33,158 +35,147 @@
<child>
<widget class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
+ <property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<widget class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="n_rows">3</property>
- <property name="n_columns">3</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">6</property>
<child>
- <widget class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Trigger:</property>
- <property name="justify">GTK_JUSTIFY_RIGHT</property>
- </widget>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Next engine:</property>
- <property name="justify">GTK_JUSTIFY_RIGHT</property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Previous engine:</property>
- <property name="justify">GTK_JUSTIFY_RIGHT</property>
- </widget>
- <packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="entry_trigger">
+ <widget class="GtkHBox" id="hbox6">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkEntry" id="entry_prev_engine">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="button_prev_engine">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">...</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="entry_next_engine">
+ <widget class="GtkHBox" id="hbox5">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkEntry" id="entry_next_engine">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="button_next_engine">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">...</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="entry_prev_engine">
+ <widget class="GtkHBox" id="hbox4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkEntry" id="entry_trigger">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="button_trigger">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">...</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="button_trigger">
+ <widget class="GtkLabel" id="label9">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">...</property>
- <property name="response_id">0</property>
+ <property name="sensitive">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">previous input method:</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="button_next_engine">
+ <widget class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">...</property>
- <property name="response_id">0</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Next input method:</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="button_prev_engine">
+ <widget class="GtkLabel" id="label7">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">...</property>
- <property name="response_id">0</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Enable or disable:</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
- <property name="x_padding">4</property>
- <property name="y_padding">4</property>
</packing>
</child>
</widget>
@@ -214,10 +205,12 @@
<child>
<widget class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
+ <property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<widget class="GtkVBox" id="vbox6">
<property name="visible">True</property>
+ <property name="spacing">6</property>
<child>
<widget class="GtkHBox" id="hbox2">
<property name="visible">True</property>
@@ -225,13 +218,12 @@
<child>
<widget class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Lookup table orientation:</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Candidates orientation:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
</widget>
<packing>
<property name="expand">False</property>
- <property name="padding">4</property>
</packing>
</child>
<child>
@@ -253,21 +245,20 @@ Vertical</property>
<child>
<widget class="GtkLabel" id="label10">
<property name="visible">True</property>
- <property name="xalign">1</property>
+ <property name="xalign">0</property>
<property name="label" translatable="yes">Show language panel:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
</widget>
<packing>
<property name="expand">False</property>
- <property name="padding">4</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="combobox_panel_show">
<property name="visible">True</property>
- <property name="items" translatable="yes">Always Hide
-On Daemon
-Always Show</property>
+ <property name="items" translatable="yes">Never
+When active
+Always</property>
</widget>
<packing>
<property name="position">1</property>
@@ -283,6 +274,7 @@ Always Show</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Use custom font</property>
+ <property name="use_underline">True</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
@@ -291,11 +283,25 @@ Always Show</property>
</packing>
</child>
<child>
- <widget class="GtkFontButton" id="fontbutton_custom_font">
+ <widget class="GtkHBox" id="hbox7">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
+ <child>
+ <widget class="GtkLabel" id="label_custom_font">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Custom font:</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkFontButton" id="fontbutton_custom_font">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="position">3</property>
@@ -321,46 +327,6 @@ Always Show</property>
<property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkFrame" id="frame1">
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkAlignment" id="alignment7">
- <property name="visible">True</property>
- <property name="left_padding">12</property>
- <child>
- <widget class="GtkCheckButton" id="checkbutton_auto_start">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Start ibus on login</property>
- <property name="response_id">0</property>
- <property name="draw_indicator">True</property>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Startup&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
</widget>
</child>
</widget>
@@ -378,19 +344,18 @@ Always Show</property>
<child>
<widget class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
- <property name="top_padding">2</property>
- <property name="bottom_padding">2</property>
- <property name="left_padding">2</property>
- <property name="right_padding">2</property>
+ <property name="top_padding">12</property>
+ <property name="bottom_padding">12</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">12</property>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<child>
<widget class="GtkAlignment" id="alignment6">
<property name="visible">True</property>
- <property name="top_padding">4</property>
<child>
- <widget class="GtkVBox" id="vbox1">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
@@ -400,11 +365,14 @@ Always Show</property>
<placeholder/>
</child>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow_engine_treeview">
<property name="width_request">240</property>
- <property name="height_request">350</property>
+ <property name="height_request">300</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
@@ -425,10 +393,7 @@ Always Show</property>
<child>
<widget class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
- <property name="top_padding">8</property>
- <property name="bottom_padding">8</property>
- <property name="left_padding">8</property>
- <property name="right_padding">8</property>
+ <property name="left_padding">12</property>
<child>
<widget class="GtkVButtonBox" id="vbuttonbox1">
<property name="visible">True</property>
@@ -438,28 +403,20 @@ Always Show</property>
<widget class="GtkButton" id="button_engine_add">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-add</property>
+ <property name="label">gtk-add</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
</widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
</child>
<child>
<widget class="GtkButton" id="button_engine_remove">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-remove</property>
+ <property name="label">gtk-remove</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
@@ -467,14 +424,11 @@ Always Show</property>
<widget class="GtkButton" id="button_engine_up">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-go-up</property>
+ <property name="label">gtk-go-up</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
@@ -482,14 +436,11 @@ Always Show</property>
<widget class="GtkButton" id="button_engine_down">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-go-down</property>
+ <property name="label">gtk-go-down</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
@@ -497,6 +448,7 @@ Always Show</property>
</child>
</widget>
<packing>
+ <property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
@@ -520,6 +472,7 @@ Always Show</property>
</child>
<child>
<widget class="GtkVBox" id="vbox4">
+ <property name="no_show_all">True</property>
<child>
<placeholder/>
</child>
@@ -541,7 +494,43 @@ Homepage: http://code.google.com/p/ibus
</packing>
</child>
<child>
- <placeholder/>
+ <widget class="GtkFrame" id="frame1">
+ <property name="no_show_all">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_auto_start">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Start ibus on login</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Startup&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
</child>
</widget>
<packing>
@@ -560,32 +549,25 @@ Homepage: http://code.google.com/p/ibus
</packing>
</child>
</widget>
- <packing>
- <property name="position">1</property>
- </packing>
</child>
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <child>
+ <widget class="GtkHButtonBox" id="hbuttonbox1">
<property name="visible">True</property>
+ <property name="spacing">12</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button_close">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-close</property>
+ <property name="label">gtk-close</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
</widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="position">1</property>
</packing>
</child>
</widget>
diff --git a/src/Makefile.am b/src/Makefile.am
index ba868e0..9b3eafe 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -73,7 +73,6 @@ ibus_h_sources = \
ibusconfigprivate.h \
keyname-table.h \
$(ibus_public_h_sources) \
- $(ibus_built_public_h_sources) \
$(NULL)
ibus_c_sources = \
ibusshare.c \
@@ -103,19 +102,20 @@ ibus_c_sources = \
ibusenginedesc.c \
ibusobservedpath.c \
ibuscomponent.c \
- $(ibus_built_c_sources) \
$(NULL)
-
ibusincludedir = $(includedir)/ibus-1.0
ibusinclude_HEADERS = \
$(ibus_public_h_sources) \
$(ibus_built_public_h_sources) \
$(NULL)
-
libibus_la_SOURCES = \
$(ibus_h_sources) \
$(ibus_c_sources) \
$(NULL)
+nodist_libibus_la_SOURCES = \
+ $(ibus_built_h_sources) \
+ $(ibus_built_c_sources) \
+ $(NULL)
libibus_la_CFLAGS = \
@X11_CFLAGS@ \
@GLIB2_CFLAGS@ \
diff --git a/src/ibusbus.c b/src/ibusbus.c
index ce4b84c..be1e4e7 100644
--- a/src/ibusbus.c
+++ b/src/ibusbus.c
@@ -23,6 +23,7 @@
#include "ibusinternal.h"
#include "ibusshare.h"
#include "ibusconnection.h"
+#include "ibusconfig.h"
#define IBUS_BUS_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_BUS, IBusBusPrivate))
@@ -40,6 +41,7 @@ struct _IBusBusPrivate {
GFileMonitor *monitor;
IBusConnection *connection;
gboolean watch_dbus_signal;
+ IBusConfig *config;
};
typedef struct _IBusBusPrivate IBusBusPrivate;
@@ -210,6 +212,7 @@ ibus_bus_init (IBusBus *bus)
IBusBusPrivate *priv;
priv = IBUS_BUS_GET_PRIVATE (bus);
+ priv->config = NULL;
priv->connection = NULL;
priv->watch_dbus_signal = FALSE;
@@ -239,8 +242,13 @@ ibus_bus_destroy (IBusObject *object)
priv->monitor = NULL;
}
+ if (priv->config) {
+ ibus_object_destroy ((IBusObject *) priv->config);
+ priv->config = NULL;
+ }
+
if (priv->connection) {
- ibus_object_destroy (IBUS_OBJECT (priv->connection));
+ ibus_object_destroy ((IBusObject *) priv->connection);
priv->connection = NULL;
}
@@ -622,7 +630,7 @@ ibus_bus_get_name_owner (IBusBus *bus,
DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
- "RemoveMatch",
+ "GetNameOwner",
G_TYPE_STRING, &name,
G_TYPE_INVALID,
G_TYPE_STRING, &owner,
@@ -738,3 +746,33 @@ ibus_bus_list_active_engines (IBusBus *bus)
{
return NULL;
}
+
+static void
+_config_destroy_cb (IBusConfig *config,
+ IBusBus *bus)
+{
+ IBusBusPrivate *priv;
+ priv = IBUS_BUS_GET_PRIVATE (bus);
+
+ g_assert (priv->config == config);
+
+ g_object_unref (config);
+ priv->config = NULL;
+}
+
+IBusConfig *
+ibus_bus_get_config (IBusBus *bus)
+{
+ g_assert (IBUS_IS_BUS (bus));
+ IBusBusPrivate *priv;
+ priv = IBUS_BUS_GET_PRIVATE (bus);
+
+ if (priv->config == NULL && priv->connection) {
+ priv->config = ibus_config_new (priv->connection);
+ if (priv->config) {
+ g_signal_connect (priv->config, "destroy", G_CALLBACK (_config_destroy_cb), bus);
+ }
+ }
+
+ return priv->config;
+}
diff --git a/src/ibusbus.h b/src/ibusbus.h
index 0550a9a..7788cc2 100644
--- a/src/ibusbus.h
+++ b/src/ibusbus.h
@@ -192,6 +192,8 @@ gboolean ibus_bus_register_component(IBusBus *bus,
GList *ibus_bus_list_engines (IBusBus *bus);
GList *ibus_bus_list_active_engines
(IBusBus *bus);
+/* declare config apis */
+IBusConfig *ibus_bus_get_config (IBusBus *bus);
G_END_DECLS
#endif
diff --git a/src/ibusengine.c b/src/ibusengine.c
index 6664751..87a980a 100644
--- a/src/ibusengine.c
+++ b/src/ibusengine.c
@@ -1059,13 +1059,11 @@ void ibus_engine_hide_lookup_table (IBusEngine *engine)
void ibus_engine_forward_key_event (IBusEngine *engine,
guint keyval,
- gboolean is_press,
guint state)
{
_send_signal (engine,
- "HideLookupTable",
+ "ForwardKeyEvent",
G_TYPE_UINT, &keyval,
- G_TYPE_BOOLEAN, &is_press,
G_TYPE_UINT, &state,
G_TYPE_INVALID);
}
diff --git a/src/ibusengine.h b/src/ibusengine.h
index 754b45a..afaa496 100644
--- a/src/ibusengine.h
+++ b/src/ibusengine.h
@@ -248,7 +248,6 @@ void ibus_engine_hide_lookup_table
void ibus_engine_forward_key_event
(IBusEngine *engine,
guint keyval,
- gboolean is_press,
guint state);
/**
diff --git a/src/ibusinputcontext.c b/src/ibusinputcontext.c
index 94de55a..95754cf 100644
--- a/src/ibusinputcontext.c
+++ b/src/ibusinputcontext.c
@@ -426,14 +426,12 @@ ibus_input_context_ibus_signal (IBusProxy *proxy,
IBUS_INTERFACE_INPUT_CONTEXT,
"ForwardKeyEvent")) {
guint32 keyval;
- gboolean is_press;
guint32 state;
gboolean retval;
retval = ibus_message_get_args (message,
&error,
G_TYPE_UINT, &keyval,
- G_TYPE_BOOLEAN, &is_press,
G_TYPE_UINT, &state,
G_TYPE_INVALID);
diff --git a/src/ibusproxy.c b/src/ibusproxy.c
index 5ef3b40..9abf8f6 100644
--- a/src/ibusproxy.c
+++ b/src/ibusproxy.c
@@ -43,6 +43,7 @@ enum {
/* IBusProxyPriv */
struct _IBusProxyPrivate {
gchar *name;
+ gchar *unique_name;
gchar *path;
gchar *interface;
IBusConnection *connection;
@@ -187,6 +188,12 @@ _connection_ibus_signal_cb (IBusConnection *connection,
IBusMessage *message,
IBusProxy *proxy)
{
+ IBusProxyPrivate *priv;
+ priv = IBUS_PROXY_GET_PRIVATE (proxy);
+
+ if (g_strcmp0 (ibus_message_get_path (message), priv->path) != 0)
+ return FALSE;
+
if (ibus_proxy_handle_signal (proxy, message)) {
g_signal_stop_emission_by_name (connection, "ibus-signal");
return TRUE;
@@ -224,45 +231,71 @@ ibus_proxy_constructor (GType type,
proxy = IBUS_PROXY (obj);
priv = IBUS_PROXY_GET_PRIVATE (proxy);
- if (priv->connection != NULL) {
- if (priv->name != NULL) {
+ if (priv->connection == NULL) {
+ g_object_unref (proxy);
+ return NULL;
+ }
- IBusError *error;
- gchar *rule;
+ if (priv->name != NULL) {
+ IBusError *error;
+ gchar *rule;
- rule = g_strdup_printf ("type='signal',"
- "sender='" DBUS_SERVICE_DBUS "',"
- "path='" DBUS_PATH_DBUS "',"
- "interface='" DBUS_INTERFACE_DBUS "',"
- "member='NameOwnerChanged',"
- "arg0='%s'",
- priv->name);
+ if (ibus_proxy_get_unique_name (proxy) == NULL) {
+ g_object_unref (proxy);
+ return NULL;
+ }
- if (!ibus_connection_call (priv->connection,
- DBUS_SERVICE_DBUS,
- DBUS_PATH_DBUS,
- DBUS_INTERFACE_DBUS,
- "AddMatch",
- &error,
- G_TYPE_STRING, &rule,
- G_TYPE_INVALID,
- G_TYPE_INVALID)) {
- g_warning ("%s: %s", error->name, error->message);
- ibus_error_free (error);
- }
- g_free (rule);
+ rule = g_strdup_printf ("type='signal',"
+ "sender='" DBUS_SERVICE_DBUS "',"
+ "path='" DBUS_PATH_DBUS "',"
+ "interface='" DBUS_INTERFACE_DBUS "',"
+ "member='NameOwnerChanged',"
+ "arg0='%s'",
+ priv->unique_name);
+
+ if (!ibus_connection_call (priv->connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS,
+ "AddMatch",
+ &error,
+ G_TYPE_STRING, &rule,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID)) {
+ g_warning ("%s: %s", error->name, error->message);
+ ibus_error_free (error);
+ }
+ g_free (rule);
+
+ rule = g_strdup_printf ("type='signal',"
+ "sender='%s',"
+ "path='%s'",
+ priv->unique_name,
+ priv->path);
+
+ if (!ibus_connection_call (priv->connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS,
+ "AddMatch",
+ &error,
+ G_TYPE_STRING, &rule,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID)) {
+ g_warning ("%s: %s", error->name, error->message);
+ ibus_error_free (error);
}
- g_signal_connect (priv->connection,
- "ibus-signal",
- (GCallback) _connection_ibus_signal_cb,
- proxy);
-
- g_signal_connect (priv->connection,
- "destroy",
- (GCallback) _connection_destroy_cb,
- proxy);
+ g_free (rule);
}
-
+ g_signal_connect (priv->connection,
+ "ibus-signal",
+ (GCallback) _connection_ibus_signal_cb,
+ proxy);
+
+ g_signal_connect (priv->connection,
+ "destroy",
+ (GCallback) _connection_destroy_cb,
+ proxy);
return obj;
}
@@ -273,6 +306,7 @@ ibus_proxy_init (IBusProxy *proxy)
priv = IBUS_PROXY_GET_PRIVATE (proxy);
priv->name = NULL;
+ priv->unique_name = NULL;
priv->path = NULL;
priv->interface = NULL;
priv->connection = NULL;
@@ -304,7 +338,28 @@ ibus_proxy_destroy (IBusProxy *proxy)
"interface='" DBUS_INTERFACE_DBUS "',"
"member='NameOwnerChanged',"
"arg0='%s'",
- priv->name);
+ priv->unique_name);
+
+ if (!ibus_connection_call (priv->connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS,
+ "RemoveMatch",
+ &error,
+ G_TYPE_STRING, &rule,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID)) {
+
+ g_warning ("%s: %s", error->name, error->message);
+ ibus_error_free (error);
+ }
+ g_free (rule);
+
+ rule = g_strdup_printf ("type='signal',"
+ "sender='%s',"
+ "path='%s'",
+ priv->unique_name,
+ priv->path);
if (!ibus_connection_call (priv->connection,
DBUS_SERVICE_DBUS,
@@ -320,10 +375,12 @@ ibus_proxy_destroy (IBusProxy *proxy)
ibus_error_free (error);
}
g_free (rule);
+
}
}
g_free (priv->name);
+ g_free (priv->unique_name);
g_free (priv->path);
g_free (priv->interface);
@@ -421,7 +478,7 @@ ibus_proxy_handle_signal (IBusProxy *proxy,
ibus_error_free (error);
}
- if (g_strcmp0 (priv->name, old_name) == 0) {
+ if (g_strcmp0 (priv->unique_name, old_name) == 0) {
ibus_object_destroy (IBUS_OBJECT (proxy));
return FALSE;
}
@@ -452,6 +509,35 @@ ibus_proxy_get_name (IBusProxy *proxy)
}
const gchar *
+ibus_proxy_get_unique_name (IBusProxy *proxy)
+{
+
+ IBusProxyPrivate *priv;
+ priv = IBUS_PROXY_GET_PRIVATE (proxy);
+
+ if (priv->unique_name == NULL && priv->connection != NULL) {
+ IBusError *error;
+ gchar *owner;
+ if (!ibus_connection_call (priv->connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS,
+ "GetNameOwner",
+ &error,
+ G_TYPE_STRING, &(priv->name),
+ G_TYPE_INVALID,
+ G_TYPE_STRING, &owner,
+ G_TYPE_INVALID)) {
+ g_warning ("%s: %s", error->name, error->message);
+ ibus_error_free (error);
+ }
+ priv->unique_name = g_strdup (owner);
+ }
+
+ return priv->unique_name;
+}
+
+const gchar *
ibus_proxy_get_path (IBusProxy *proxy)
{
IBusProxyPrivate *priv;
diff --git a/src/ibusproxy.h b/src/ibusproxy.h
index 0cc22d4..ce85b4d 100644
--- a/src/ibusproxy.h
+++ b/src/ibusproxy.h
@@ -98,6 +98,7 @@ IBusMessage *ibus_proxy_send_with_reply_and_block
gboolean ibus_proxy_handle_signal (IBusProxy *proxy,
IBusMessage *message);
const gchar *ibus_proxy_get_name (IBusProxy *proxy);
+const gchar *ibus_proxy_get_unique_name (IBusProxy *proxy);
const gchar *ibus_proxy_get_path (IBusProxy *proxy);
const gchar *ibus_proxy_get_interface (IBusProxy *proxy);
IBusConnection *ibus_proxy_get_connection (IBusProxy *proxy);
diff --git a/src/test-proxy.c b/src/test-proxy.c
index 31866f1..aedd732 100644
--- a/src/test-proxy.c
+++ b/src/test-proxy.c
@@ -1,18 +1,26 @@
#include "ibus.h"
+static
+_value_changed_cb (IBusConfig *config, gchar *section, gchar *name, GValue *value, gpointer data)
+{
+ g_debug ("value-changed %s %s", section, name);
+}
+
int main()
{
g_type_init ();
- IBusConnection *connection;
- IBusProxy *proxy;
+ IBusBus *bus;
+ IBusConfig *config;
+
+ bus = ibus_bus_new ();
+ config = ibus_bus_get_config (bus);
- connection = ibus_connection_new ();
- proxy = ibus_proxy_new ("a", "/a", connection);
- GValue value = {0};
- g_value_init (&value, G_TYPE_STRING);
- g_value_set_static_string (&value, "aaa");
- g_object_set_property (G_OBJECT (proxy), "name", &value);
+ g_signal_connect (config,
+ "value-changed",
+ G_CALLBACK (_value_changed_cb),
+ NULL);
+ g_main_loop_run (g_main_loop_new (NULL, FALSE));
return 0;
}