diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2009-03-20 14:07:30 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2009-03-20 14:07:30 +0800 |
commit | 0aa48a09c1ccca63e6909204e1ec673dff2341c2 (patch) | |
tree | f4e85128f8178761e28ce65f655e9ab477c153ac | |
parent | 1a76fee5d5c7926e0d4f54a5dbd34bff8007d062 (diff) | |
parent | ab417dd043ee6ba338518758c1c833f6ccbb7bdf (diff) | |
download | ibus-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.c | 17 | ||||
-rw-r--r-- | bus/matchrule.c | 1 | ||||
-rw-r--r-- | client/gtk2/ibusimcontext.c | 3 | ||||
-rw-r--r-- | po/fr.po | 136 | ||||
-rw-r--r-- | po/ja.po | 167 | ||||
-rw-r--r-- | po/pa.po | 126 | ||||
-rw-r--r-- | po/zh_CN.po | 122 | ||||
-rw-r--r-- | setup/main.py | 14 | ||||
-rw-r--r-- | setup/setup.glade | 386 | ||||
-rw-r--r-- | src/Makefile.am | 8 | ||||
-rw-r--r-- | src/ibusbus.c | 42 | ||||
-rw-r--r-- | src/ibusbus.h | 2 | ||||
-rw-r--r-- | src/ibusengine.c | 4 | ||||
-rw-r--r-- | src/ibusengine.h | 1 | ||||
-rw-r--r-- | src/ibusinputcontext.c | 2 | ||||
-rw-r--r-- | src/ibusproxy.c | 158 | ||||
-rw-r--r-- | src/ibusproxy.h | 1 | ||||
-rw-r--r-- | src/test-proxy.c | 24 |
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); @@ -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" @@ -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" @@ -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"><b>Startup</b></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"><b>Startup</b></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; } |