diff options
author | BYVoid <byvoid1@gmail.com> | 2010-05-23 17:04:49 +0800 |
---|---|---|
committer | BYVoid <byvoid1@gmail.com> | 2010-05-23 17:04:49 +0800 |
commit | 83e194de430e70ca46034016f2b172e5ac8a2aeb (patch) | |
tree | d83a7c630b876564d3cc7126d744d5a205cec58e /setup | |
parent | b4e80d22b99d42afdc5067738129910877160704 (diff) | |
download | ibus-libpinyin-83e194de430e70ca46034016f2b172e5ac8a2aeb.tar.gz ibus-libpinyin-83e194de430e70ca46034016f2b172e5ac8a2aeb.tar.xz ibus-libpinyin-83e194de430e70ca46034016f2b172e5ac8a2aeb.zip |
Reorganize setup User Interface
Diffstat (limited to 'setup')
-rw-r--r-- | setup/ibus-pinyin-preferences.ui | 821 | ||||
-rw-r--r-- | setup/main.py | 221 |
2 files changed, 626 insertions, 416 deletions
diff --git a/setup/ibus-pinyin-preferences.ui b/setup/ibus-pinyin-preferences.ui index 976f324..a0a7904 100644 --- a/setup/ibus-pinyin-preferences.ui +++ b/setup/ibus-pinyin-preferences.ui @@ -5,7 +5,7 @@ <object class="GtkDialog" id="dialog"> <property name="width_request">400</property> <property name="border_width">5</property> - <property name="title" translatable="yes">Pinyin preferences</property> + <property name="title" translatable="yes">Preferences</property> <property name="window_position">center-always</property> <property name="icon_name">gtk-preferences</property> <property name="type_hint">normal</property> @@ -13,158 +13,26 @@ <child internal-child="vbox"> <object class="GtkVBox" id="dialog-vbox1"> <property name="visible">True</property> - <property name="orientation">vertical</property> <property name="spacing">2</property> <child> - <object class="GtkNotebook" id="notebook1"> + <object class="GtkNotebook" id="pages"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="tab_vborder">3</property> <child> - <object class="GtkAlignment" id="alignment5"> + <object class="GtkAlignment" id="pageGeneral"> <property name="visible">True</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> - <object class="GtkVBox" id="vbox4"> + <object class="GtkVBox" id="vbox13"> <property name="visible">True</property> - <property name="orientation">vertical</property> <property name="spacing">18</property> <child> - <object class="GtkFrame" id="frame3"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="shadow_type">none</property> - <child> - <object class="GtkAlignment" id="alignment6"> - <property name="visible">True</property> - <property name="top_padding">6</property> - <property name="left_padding">12</property> - <child> - <object class="GtkVBox" id="vbox9"> - <property name="visible">True</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkTable" id="table3"> - <property name="visible">True</property> - <property name="n_columns">3</property> - <property name="column_spacing">12</property> - <property name="homogeneous">True</property> - <child> - <object class="GtkRadioButton" id="FullPinyin"> - <property name="label" translatable="yes">Full pinyin</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Use full pinyin.</property> - <property name="draw_indicator">True</property> - <property name="group">DoublePinyin</property> - </object> - <packing> - <property name="x_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="IncompletePinyin"> - <property name="label" translatable="yes">Incomplete pinyin</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Enable incomplete pinyin (like zh g).</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">3</property> - </packing> - </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkTable" id="table6"> - <property name="visible">True</property> - <property name="n_columns">3</property> - <property name="column_spacing">12</property> - <property name="homogeneous">True</property> - <child> - <object class="GtkRadioButton" id="DoublePinyin"> - <property name="label" translatable="yes">Double pinyin</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Use double pinyin.</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="x_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="spacing">12</property> - <child> - <object class="GtkLabel" id="labelDoublePinyinSchema"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Schema:</property> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkComboBox" id="DoublePinyinSchema"> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="tooltip_text" translatable="yes">Select double pinyin schema.</property> - <property name="model">liststoreDoublePinyin</property> - <property name="button_sensitivity">on</property> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">3</property> - </packing> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - </child> - <child type="label"> - <object class="GtkLabel" id="label6"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Pinyin mode</b></property> - <property name="use_markup">True</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> <object class="GtkFrame" id="frame4"> <property name="visible">True</property> - <property name="tooltip_text" translatable="yes">Setup the initial state of pinyin input method.</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> @@ -215,7 +83,6 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="active">True</property> <property name="draw_indicator">True</property> <property name="group">InitEnglish</property> </object> @@ -230,6 +97,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> + <property name="active">True</property> <property name="draw_indicator">True</property> </object> <packing> @@ -243,7 +111,6 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="active">True</property> <property name="draw_indicator">True</property> <property name="group">InitHalf</property> </object> @@ -260,6 +127,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> + <property name="active">True</property> <property name="draw_indicator">True</property> </object> <packing> @@ -318,7 +186,6 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="active">True</property> <property name="draw_indicator">True</property> <property name="group">InitTraditionalChinese</property> </object> @@ -359,9 +226,264 @@ </object> <packing> <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame5"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment8"> + <property name="visible">True</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox8"> + <property name="visible">True</property> + <property name="spacing">6</property> + <child> + <object class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="spacing">12</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Orientation of candidates:</property> + <property name="use_markup">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="LookupTableOrientation"> + <property name="visible">True</property> + <property name="model">liststoreLookupTableOrientation</property> + <property name="button_sensitivity">on</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox4"> + <property name="visible">True</property> + <property name="spacing">12</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="label16"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Number of candidates:</property> + <property name="use_markup">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHScale" id="hscaleLookupTablePageSize"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="update_policy">delayed</property> + <property name="adjustment">LookupTablePageSize</property> + <property name="digits">0</property> + <property name="value_pos">left</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label8"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>UI</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> <property name="position">1</property> </packing> </child> + </object> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label19"> + <property name="visible">True</property> + <property name="label" translatable="yes">General</property> + </object> + <packing> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="pagePinyinMode"> + <property name="visible">True</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> + <object class="GtkVBox" id="vbox4"> + <property name="visible">True</property> + <property name="spacing">18</property> + <child> + <object class="GtkFrame" id="frame3"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment6"> + <property name="visible">True</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox9"> + <property name="visible">True</property> + <property name="spacing">6</property> + <child> + <object class="GtkRadioButton" id="FullPinyin"> + <property name="label" translatable="yes">Full pinyin</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="draw_indicator">True</property> + <property name="group">DoublePinyin</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox2"> + <property name="visible">True</property> + <child> + <object class="GtkRadioButton" id="DoublePinyin"> + <property name="label" translatable="yes">Double pinyin</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="alignment3"> + <property name="visible">True</property> + <property name="left_padding">22</property> + <child> + <object class="GtkVBox" id="vbox14"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="labelDoublePinyinSchema"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Schema:</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="DoublePinyinSchema"> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="model">liststoreDoublePinyin</property> + <property name="button_sensitivity">on</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="DoublePinyinShowRaw"> + <property name="label" translatable="yes">Show raw input of Double Pinyin</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="IncompletePinyin"> + <property name="label" translatable="yes">Incomplete pinyin</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Pinyin mode</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> <child> <object class="GtkFrame" id="frame6"> <property name="visible">True</property> @@ -375,7 +497,6 @@ <child> <object class="GtkVBox" id="vbox11"> <property name="visible">True</property> - <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkTable" id="table2"> @@ -449,142 +570,136 @@ <child type="label"> <object class="GtkLabel" id="label20"> <property name="visible">True</property> - <property name="label" translatable="yes"><b>Others</b></property> + <property name="label" translatable="yes"><b>Input Custom</b></property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">False</property> - <property name="position">2</property> + <property name="position">1</property> </packing> </child> - </object> - </child> - </object> - </child> - <child type="tab"> - <object class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="label" translatable="yes">Pinyin mode</property> - </object> - <packing> - <property name="tab_fill">False</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment10"> - <property name="visible">True</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> - <object class="GtkVBox" id="vbox10"> - <property name="visible">True</property> - <property name="orientation">vertical</property> <child> - <object class="GtkFrame" id="frame5"> + <object class="GtkFrame" id="frame2"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <object class="GtkAlignment" id="alignment8"> + <object class="GtkAlignment" id="alignment4"> <property name="visible">True</property> <property name="top_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox8"> + <object class="GtkVBox" id="vbox3"> <property name="visible">True</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> + <property name="spacing">4</property> <child> - <object class="GtkHBox" id="hbox3"> + <object class="GtkTable" id="table5"> <property name="visible">True</property> - <property name="spacing">12</property> - <property name="homogeneous">True</property> + <property name="n_rows">3</property> + <property name="n_columns">2</property> + <property name="row_spacing">4</property> <child> - <object class="GtkLabel" id="label4"> + <object class="GtkCheckButton" id="CorrectPinyin_GN_NG"> + <property name="label">gn => ng</property> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Orientation of candidates:</property> - <property name="use_markup">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + </child> + <child> + <object class="GtkCheckButton" id="CorrectPinyin_MG_NG"> + <property name="label">mg => ng</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> </object> <packing> - <property name="position">0</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> </packing> </child> <child> - <object class="GtkComboBox" id="LookupTableOrientation"> + <object class="GtkCheckButton" id="CorrectPinyin_IOU_IU"> + <property name="label">iou => iu</property> <property name="visible">True</property> - <property name="model">liststoreLookupTableOrientation</property> - <property name="button_sensitivity">on</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> </object> <packing> - <property name="position">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> </packing> </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox4"> - <property name="visible">True</property> - <property name="spacing">12</property> - <property name="homogeneous">True</property> <child> - <object class="GtkLabel" id="label16"> + <object class="GtkCheckButton" id="CorrectPinyin_UEI_UI"> + <property name="label">uei => ui</property> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Number of candidates:</property> - <property name="use_markup">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> </object> <packing> - <property name="position">0</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> </packing> </child> <child> - <object class="GtkHScale" id="hscaleLookupTablePageSize"> + <object class="GtkCheckButton" id="CorrectPinyin_UEN_UN"> + <property name="label">uen => un</property> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">delayed</property> - <property name="adjustment">LookupTablePageSize</property> - <property name="digits">0</property> - <property name="value_pos">left</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> </object> <packing> - <property name="position">1</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="CorrectPinyin_UE_VE"> + <property name="label">ue => ve</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <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> </packing> </child> </object> <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="TradCandidate"> - <property name="label" translatable="yes">Show candidates in traditional Chinese</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">2</property> + <property name="position">0</property> </packing> </child> <child> - <object class="GtkCheckButton" id="DoublePinyinShowRaw"> - <property name="label" translatable="yes">Show raw input of Double Pinyin</property> + <object class="GtkCheckButton" id="CorrectPinyin_V_U"> + <property name="label">v =>u, ve => ue, van => uan and etc</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> + <property name="active">True</property> <property name="draw_indicator">True</property> </object> <packing> - <property name="position">3</property> + <property name="position">1</property> </packing> </child> </object> @@ -592,24 +707,21 @@ </object> </child> <child type="label"> - <object class="GtkLabel" id="label8"> + <object class="GtkCheckButton" id="CorrectPinyin"> + <property name="label" translatable="yes">Correct pinyin</property> <property name="visible">True</property> - <property name="label" translatable="yes"><b>UI</b></property> - <property name="use_markup">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> </object> </child> </object> <packing> <property name="expand">False</property> - <property name="position">0</property> + <property name="position">2</property> </packing> </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> </object> </child> </object> @@ -618,9 +730,9 @@ </packing> </child> <child type="tab"> - <object class="GtkLabel" id="label13"> + <object class="GtkLabel" id="label1"> <property name="visible">True</property> - <property name="label" translatable="yes">UI</property> + <property name="label" translatable="yes">Pinyin mode</property> </object> <packing> <property name="position">1</property> @@ -628,48 +740,61 @@ </packing> </child> <child> - <object class="GtkAlignment" id="alignment3"> + <object class="GtkAlignment" id="pageBopomofoMode"> <property name="visible">True</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> - <object class="GtkVBox" id="vbox2"> + <object class="GtkVBox" id="vbox10"> <property name="visible">True</property> - <property name="orientation">vertical</property> - <property name="spacing">12</property> + <property name="spacing">18</property> <child> - <object class="GtkFrame" id="frame2"> + <object class="GtkFrame" id="frame8"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <object class="GtkAlignment" id="alignment4"> + <object class="GtkAlignment" id="alignment15"> <property name="visible">True</property> <property name="top_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox3"> + <object class="GtkVBox" id="vbox15"> <property name="visible">True</property> - <property name="orientation">vertical</property> <property name="spacing">6</property> <child> - <object class="GtkCheckButton" id="CorrectPinyin_GN_NG"> - <property name="label">gn => ng</property> + <object class="GtkHBox" id="hbox5"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> + <child> + <object class="GtkLabel" id="labelBopomofoKeyboardMapping"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Keyboard Mappming:</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="BopomofoKeyboardMapping"> + <property name="visible">True</property> + <property name="model">liststoreBopomofoKeyboardMapping</property> + <property name="button_sensitivity">on</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> </object> <packing> <property name="position">0</property> </packing> </child> <child> - <object class="GtkCheckButton" id="CorrectPinyin_MG_NG"> - <property name="label">mg => ng</property> + <object class="GtkCheckButton" id="IncompleteBopomofo"> + <property name="label" translatable="yes">Incomplete Bopomofo</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -680,89 +805,21 @@ <property name="position">1</property> </packing> </child> - <child> - <object class="GtkCheckButton" id="CorrectPinyin_IOU_IU"> - <property name="label">iou => iu</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="CorrectPinyin_UEI_UI"> - <property name="label">uei => ui</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">3</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="CorrectPinyin_UEN_UN"> - <property name="label">uen => un</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">4</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="CorrectPinyin_UE_VE"> - <property name="label">ue => ve</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">5</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="CorrectPinyin_V_U"> - <property name="label">v =>u, ve => ue, van => uan and etc</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">6</property> - </packing> - </child> </object> </child> </object> </child> <child type="label"> - <object class="GtkCheckButton" id="CorrectPinyin"> - <property name="label" translatable="yes">Correct pinyin</property> + <object class="GtkLabel" id="label2"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Enable pinyin correcting.</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> + <property name="label" translatable="yes"><b>Bopomofo mode</b></property> + <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">False</property> + <property name="fill">False</property> <property name="position">0</property> </packing> </child> @@ -774,9 +831,9 @@ </packing> </child> <child type="tab"> - <object class="GtkLabel" id="label2"> + <object class="GtkLabel" id="label13"> <property name="visible">True</property> - <property name="label" translatable="yes">Correct pinyin</property> + <property name="label" translatable="yes">Bopomofo mode</property> </object> <packing> <property name="position">2</property> @@ -784,7 +841,7 @@ </packing> </child> <child> - <object class="GtkAlignment" id="alignment1"> + <object class="GtkAlignment" id="pageFuzzy"> <property name="visible">True</property> <property name="top_padding">12</property> <property name="bottom_padding">12</property> @@ -793,7 +850,6 @@ <child> <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> - <property name="orientation">vertical</property> <property name="spacing">12</property> <child> <object class="GtkFrame" id="frame1"> @@ -1184,11 +1240,10 @@ </child> <child type="label"> <object class="GtkCheckButton" id="FuzzyPinyin"> - <property name="label" translatable="yes">Fuzzy pinyin</property> + <property name="label" translatable="yes">Fuzzy syllable</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Enable fuzzy pinyin.</property> <property name="draw_indicator">True</property> </object> </child> @@ -1208,7 +1263,7 @@ <child type="tab"> <object class="GtkLabel" id="label3"> <property name="visible">True</property> - <property name="label" translatable="yes">Fuzzy pinyin</property> + <property name="label" translatable="yes">Fuzzy syllable</property> </object> <packing> <property name="position">3</property> @@ -1216,7 +1271,7 @@ </packing> </child> <child> - <object class="GtkAlignment" id="alignment12"> + <object class="GtkAlignment" id="pageDictionary"> <property name="visible">True</property> <property name="top_padding">12</property> <property name="bottom_padding">12</property> @@ -1225,7 +1280,6 @@ <child> <object class="GtkVBox" id="vbox5"> <property name="visible">True</property> - <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame7"> <property name="visible">True</property> @@ -1239,7 +1293,6 @@ <child> <object class="GtkVBox" id="vbox12"> <property name="visible">True</property> - <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkHBox" id="hbox2"> @@ -1278,12 +1331,6 @@ <property name="position">0</property> </packing> </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> </object> </child> </object> @@ -1300,12 +1347,6 @@ <property name="position">0</property> </packing> </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> </object> </child> </object> @@ -1324,9 +1365,8 @@ </packing> </child> <child> - <object class="GtkAlignment" id="alignment9"> + <object class="GtkAlignment" id="pageAbout"> <property name="visible">True</property> - <property name="yscale">0.30000001192092896</property> <property name="top_padding">12</property> <property name="bottom_padding">12</property> <property name="left_padding">12</property> @@ -1334,17 +1374,16 @@ <child> <object class="GtkVBox" id="vbox6"> <property name="visible">True</property> - <property name="orientation">vertical</property> + <property name="spacing">6</property> <child> <object class="GtkVBox" id="vbox7"> <property name="visible">True</property> - <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkImage" id="image1"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="pixel_size">48</property> + <property name="pixel_size">32</property> <property name="icon_name">gtk-about</property> </object> <packing> @@ -1390,7 +1429,6 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> - <property name="has_tooltip">True</property> <property name="relief">none</property> <property name="uri">http://ibus.googlecode.com</property> </object> @@ -1406,6 +1444,71 @@ <property name="position">0</property> </packing> </child> + <child> + <object class="GtkFrame" id="frame9"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment16"> + <property name="visible">True</property> + <property name="top_padding">6</property> + <child> + <object class="GtkLabel" id="label23"> + <property name="visible">True</property> + <property name="label">Peng Huang <shawn.p.huang@gmail.com> +BYVoid <byvoid1@gmail.com></property> + <property name="selectable">True</property> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label25"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Author</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">end</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame10"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment17"> + <property name="visible">True</property> + <property name="top_padding">6</property> + <child> + <object class="GtkLabel" id="label24"> + <property name="visible">True</property> + <property name="label">koterpillar, Zerng07</property> + <property name="selectable">True</property> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label26"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Contributor:</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> </object> </child> </object> @@ -1508,4 +1611,24 @@ </row> </data> </object> + <object class="GtkListStore" id="liststoreBopomofoKeyboardMapping"> + <columns> + <!-- column-name keyboard_mapping --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">Standard</col> + </row> + <row> + <col id="0" translatable="yes">GinYieh</col> + </row> + <row> + <col id="0" translatable="yes">Eten</col> + </row> + <row> + <col id="0" translatable="yes">IBM</col> + </row> + </data> + </object> </interface> diff --git a/setup/main.py b/setup/main.py index 5ff2d35..8d12d09 100644 --- a/setup/main.py +++ b/setup/main.py @@ -1,8 +1,10 @@ # vim:set et ts=4 sts=4: +# -*- coding: utf-8 -*- # # ibus-pinyin - The Chinese PinYin engine for IBus # # Copyright (c) 2008-2010 Peng Huang <shawn.p.huang@gmail.com> +# Copyright (c) 2010 BYVoid <byvoid1@gmail.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,6 +19,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +import sys import gtk import ibus import locale @@ -28,7 +31,7 @@ from xdg import BaseDirectory _ = lambda a : gettext.dgettext("ibus-pinyin", a) class PreferencesDialog: - def __init__(self): + def __init__(self,engine): locale.setlocale(locale.LC_ALL, "") localedir = os.getenv("IBUS_LOCALEDIR") gettext.bindtextdomain("ibus-pinyin", localedir) @@ -40,17 +43,94 @@ class PreferencesDialog: self.__builder.set_translation_domain("ibus-pinyin") self.__builder.add_from_file("ibus-pinyin-preferences.ui") self.__dialog = self.__builder.get_object("dialog") + self.__init_pages() + + if engine == "pinyin": + self.__config_namespace = "engine/Pinyin" + self.__init_general() + self.__init_pinyin() + self.__init_fuzzy() + self.__init_dictionary() + self.__init_about() + elif engine == "bopomofo": + self.__config_namespace = "engine/Bopomofo" + self.__init_general() + self.__init_bopomofo() + self.__init_fuzzy() + self.__init_dictionary() + self.__init_about() + self.__convert_fuzzy_pinyin_to_bopomofo() + + else: + print("Error: Unknown Engine") + exit() + + self.__pages.set_current_page(0) + + def __init_pages(self): + self.__pages = self.__builder.get_object("pages") + self.__page_general = self.__builder.get_object("pageGeneral") + self.__page_pinyin_mode = self.__builder.get_object("pagePinyinMode") + self.__page_bopomofo_mode = self.__builder.get_object("pageBopomofoMode") + self.__page_fuzzy = self.__builder.get_object("pageFuzzy") + self.__page_dictionary = self.__builder.get_object("pageDictionary") + self.__page_about = self.__builder.get_object("pageAbout") + + self.__page_general.hide() + self.__page_pinyin_mode.hide() + self.__page_bopomofo_mode.hide() + self.__page_fuzzy.hide() + self.__page_dictionary.hide() + self.__page_about.hide() + + def __init_general(self): + # page General + self.__page_general.show() + + # init state + self.__init_chinese = self.__builder.get_object("InitChinese") + self.__init_english = self.__builder.get_object("InitEnglish") + self.__init_full = self.__builder.get_object("InitFull") + self.__init_half = self.__builder.get_object("InitHalf") + self.__init_full_punct = self.__builder.get_object("InitFullPunct") + self.__init_half_punct = self.__builder.get_object("InitHalfPunct") + self.__init_simp = self.__builder.get_object("InitSimplifiedChinese") + self.__init_trad = self.__builder.get_object("IniTraditionalChinese") + + # UI + self.__lookup_table_page_size = self.__builder.get_object("LookupTablePageSize") + self.__lookup_table_orientation = self.__builder.get_object("LookupTableOrientation") + renderer = gtk.CellRendererText() + self.__lookup_table_orientation.pack_start(renderer) + self.__lookup_table_orientation.set_attributes(renderer, text=0) - self.__init_pinyin() - self.__init_init_state() - self.__init_others() - self.__init_ui() - self.__init_correct_pinyin() - self.__init_fuzzy_pinyin() - self.__init_dictionary() - self.__init_about() + # read values + self.__init_chinese.set_active(self.__get_value("InitChinese", True)) + self.__init_full.set_active(self.__get_value("InitFull", False)) + self.__init_full_punct.set_active(self.__get_value("InitFullPunct", True)) + self.__init_simp.set_active(self.__get_value("InitSimplifiedChinese", True)) + self.__lookup_table_orientation.set_active(self.__get_value("LookupTableOrientation", 0)) + self.__lookup_table_page_size.set_value(self.__get_value("LookupTablePageSize", 5)) + + # connect signals + self.__init_chinese.connect("toggled", self.__toggled_cb, "InitChinese") + self.__init_full.connect("toggled", self.__toggled_cb, "InitFull") + self.__init_full_punct.connect("toggled", self.__toggled_cb, "InitFullPunct") + self.__init_simp.connect("toggled", self.__toggled_cb, "InitSimplifiedChinese") + + def __lookup_table_page_size_changed_cb(adjustment): + self.__set_value("LookupTablePageSize", int(adjustment.get_value())) + + def __lookup_table_orientation_changed_cb(widget): + self.__set_value("LookupTableOrientation", widget.get_active()) + + self.__lookup_table_orientation.connect("changed", __lookup_table_orientation_changed_cb) + self.__lookup_table_page_size.connect("value-changed", __lookup_table_page_size_changed_cb) def __init_pinyin(self): + # page + self.__page_pinyin_mode.show() + # pinyin self.__full_pinyin = self.__builder.get_object("FullPinyin") self.__incomplete_pinyin = self.__builder.get_object("IncompletePinyin") @@ -71,15 +151,12 @@ class PreferencesDialog: # self.__incomplete_pinyin.set_sensitive(True) self.__double_pinyin_schema.set_sensitive(False) self.__double_pinyin_schema_label.set_sensitive(False) + self.__double_pinyin_show_raw.set_sensitive(False) else: # self.__incomplete_pinyin.set_sensitive(False) self.__double_pinyin_schema.set_sensitive(True) self.__double_pinyin_schema_label.set_sensitive(True) - - def __full_pinyin_toggled_cb(widget): - val = widget.get_active() - self.__set_value("DoublePinyin", not val) - self.__incomplete_pinyin.set_sensitive(val) + self.__double_pinyin_show_raw.set_sensitive(True) def __double_pinyin_toggled_cb(widget): val = widget.get_active() @@ -92,36 +169,37 @@ class PreferencesDialog: self.__set_value("DoublePinyinSchema", widget.get_active()) # connect signals - # self.__full_pinyin.connect("toggled", __full_pinyin_toggled_cb) self.__double_pinyin.connect("toggled", __double_pinyin_toggled_cb) self.__incomplete_pinyin.connect("toggled", self.__toggled_cb, "IncompletePinyin") self.__double_pinyin_schema.connect("changed", __double_pinyin_schema_changed_cb) self.__double_pinyin_show_raw.connect("toggled", self.__toggled_cb, "DoublePinyinShowRaw") - - def __init_init_state(self): - # init state - self.__init_chinese = self.__builder.get_object("InitChinese") - self.__init_english = self.__builder.get_object("InitEnglish") - self.__init_full = self.__builder.get_object("InitFull") - self.__init_half = self.__builder.get_object("InitHalf") - self.__init_full_punct = self.__builder.get_object("InitFullPunct") - self.__init_half_punct = self.__builder.get_object("InitHalfPunct") - self.__init_simp = self.__builder.get_object("InitSimplifiedChinese") - self.__init_trad = self.__builder.get_object("IniTraditionalChinese") - - # read values - self.__init_chinese.set_active(self.__get_value("InitChinese", True)) - self.__init_full.set_active(self.__get_value("InitFull", False)) - self.__init_full_punct.set_active(self.__get_value("InitFullPunct", True)) - self.__init_simp.set_active(self.__get_value("InitSimplifiedChinese", True)) + + self.__init_input_custom() + self.__init_correct_pinyin() + + def __init_bopomofo(self): + # page Bopomodo Mode + self.__page_bopomofo_mode.show() + + # bopomofo + self.__bopomofo_keyboard_mapping = self.__builder.get_object("BopomofoKeyboardMapping") + self.__incomplete_bopomofo = self.__builder.get_object("IncompleteBopomofo") + renderer = gtk.CellRendererText() + self.__bopomofo_keyboard_mapping.pack_start(renderer) + self.__bopomofo_keyboard_mapping.set_attributes(renderer, text=0) + + # read value + self.__bopomofo_keyboard_mapping.set_active(self.__get_value("BopomofoKeyboardMapping", 0)) + self.__incomplete_bopomofo.set_active(self.__get_value("IncompleteBopomofo", False)) # connect signals - self.__init_chinese.connect("toggled", self.__toggled_cb, "InitChinese") - self.__init_full.connect("toggled", self.__toggled_cb, "InitFull") - self.__init_full_punct.connect("toggled", self.__toggled_cb, "InitFullPunct") - self.__init_simp.connect("toggled", self.__toggled_cb, "InitSimplifiedChinese") + def __bopomofo_keyboard_mapping_changed_cb(widget): + self.__set_value("BopomofoKeyboardMapping", widget.get_active()) + + self.__bopomofo_keyboard_mapping.connect("changed", __bopomofo_keyboard_mapping_changed_cb) + self.__incomplete_bopomofo.connect("toggled", self.__toggled_cb, "IncompleteBopomofo") - def __init_others(self): + def __init_input_custom(self): # others self.__shift_select_candidate = self.__builder.get_object("ShiftSelectCandidate") self.__minus_equal_page = self.__builder.get_object("MinusEqualPage") @@ -140,32 +218,6 @@ class PreferencesDialog: self.__comma_period_page.connect("toggled", self.__toggled_cb, "CommaPeriodPage") self.__auto_commit.connect("toggled", self.__toggled_cb, "AutoCommit") - def __init_ui(self): - # UI - self.__lookup_table_page_size = self.__builder.get_object("LookupTablePageSize") - self.__lookup_table_orientation = self.__builder.get_object("LookupTableOrientation") - self.__trad_candidate = self.__builder.get_object("TradCandidate") - - renderer = gtk.CellRendererText() - self.__lookup_table_orientation.pack_start(renderer) - self.__lookup_table_orientation.set_attributes(renderer, text=0) - - # read values - self.__lookup_table_orientation.set_active(self.__get_value("LookupTableOrientation", 0)) - self.__lookup_table_page_size.set_value(self.__get_value("LookupTablePageSize", 5)) - self.__trad_candidate.set_active(self.__get_value("TradCandidate", False)) - - # connect signals - def __lookup_table_page_size_changed_cb(adjustment): - self.__set_value("LookupTablePageSize", int(adjustment.get_value())) - - def __lookup_table_orientation_changed_cb(widget): - self.__set_value("LookupTableOrientation", widget.get_active()) - - self.__lookup_table_orientation.connect("changed", __lookup_table_orientation_changed_cb) - self.__lookup_table_page_size.connect("value-changed", __lookup_table_page_size_changed_cb) - self.__trad_candidate.connect("toggled", self.__toggled_cb, "TradCandidate") - def __init_correct_pinyin(self): # auto correct self.__correct_pinyin = self.__builder.get_object("CorrectPinyin") @@ -196,7 +248,10 @@ class PreferencesDialog: widget = self.__builder.get_object(name) widget.connect("toggled", self.__toggled_cb, name) - def __init_fuzzy_pinyin(self): + def __init_fuzzy(self): + # page Fuzzy + self.__page_fuzzy.show() + # fuzzy pinyin self.__fuzzy_pinyin = self.__builder.get_object("FuzzyPinyin") self.__fuzzy_pinyin_widgets = [ @@ -243,7 +298,36 @@ class PreferencesDialog: widget = self.__builder.get_object(name) widget.connect("toggled", self.__toggled_cb, name) + def __convert_fuzzy_pinyin_to_bopomofo(self): + self.__builder.get_object("FuzzyPinyin_C_CH").set_label("ㄘ => ㄔ") + self.__builder.get_object("FuzzyPinyin_Z_ZH").set_label("ㄗ => ㄓ") + self.__builder.get_object("FuzzyPinyin_S_SH").set_label("ㄙ => ㄕ") + self.__builder.get_object("FuzzyPinyin_CH_C").set_label("ㄔ => ㄘ") + self.__builder.get_object("FuzzyPinyin_ZH_Z").set_label("ㄓ => ㄗ") + self.__builder.get_object("FuzzyPinyin_SH_S").set_label("ㄕ => ㄙ") + self.__builder.get_object("FuzzyPinyin_L_N").set_label("ㄌ => ㄋ") + self.__builder.get_object("FuzzyPinyin_F_H").set_label("ㄈ => ㄏ") + self.__builder.get_object("FuzzyPinyin_L_R").set_label("ㄌ => ㄖ") + self.__builder.get_object("FuzzyPinyin_K_G").set_label("ㄎ => ㄍ") + self.__builder.get_object("FuzzyPinyin_N_L").set_label("ㄋ => ㄌ") + self.__builder.get_object("FuzzyPinyin_H_F").set_label("ㄏ => ㄈ") + self.__builder.get_object("FuzzyPinyin_R_L").set_label("ㄖ => ㄌ") + self.__builder.get_object("FuzzyPinyin_G_K").set_label("ㄍ => ㄎ") + self.__builder.get_object("FuzzyPinyin_AN_ANG").set_label("ㄢ => ㄤ") + self.__builder.get_object("FuzzyPinyin_EN_ENG").set_label("ㄣ => ㄥ") + self.__builder.get_object("FuzzyPinyin_IN_ING").set_label("ㄧㄣ => ㄧㄥ") + self.__builder.get_object("FuzzyPinyin_ANG_AN").set_label("ㄤ => ㄢ") + self.__builder.get_object("FuzzyPinyin_ENG_EN").set_label("ㄥ => ㄣ") + self.__builder.get_object("FuzzyPinyin_ING_IN").set_label("ㄧㄥ => ㄧㄣ") + self.__builder.get_object("FuzzyPinyin_IAN_IANG").set_label("ㄧㄢ => ㄧㄤ") + self.__builder.get_object("FuzzyPinyin_UAN_UANG").set_label("ㄨㄢ => ㄨㄤ") + self.__builder.get_object("FuzzyPinyin_IANG_IAN").set_label("ㄧㄤ => ㄧㄢ") + self.__builder.get_object("FuzzyPinyin_UANG_UAN").set_label("ㄨㄤ => ㄨㄢ") + def __init_dictionary(self): + # page Dictionary + self.__page_dictionary.show() + # dictionary self.__special_phrases = self.__builder.get_object("SpecialPhrases") self.__edit_special_phrases = self.__builder.get_object("EditSpecialPhrases") @@ -268,6 +352,9 @@ class PreferencesDialog: self.__edit_special_phrases.connect("clicked", __edit_special_phrases_clicked_cb) def __init_about(self): + # page About + self.__page_about.show() + self.__name_version = self.__builder.get_object("NameVersion") self.__name_version.set_markup(_("<big><b>IBus Pinyin %s</b></big>") % version.get_version()) @@ -278,20 +365,20 @@ class PreferencesDialog: self.__set_value(name, widget.get_active ()) def __get_value(self, name, defval): - value = self.__config.get_value("engine/Pinyin", name, "test_default_value_9898") + value = self.__config.get_value(self.__config_namespace, name, "test_default_value_9898") if value != "test_default_value_9898": return value self.__set_value(name, defval) return defval def __set_value(self, name, val): - self.__config.set_value("engine/Pinyin", name, val) + self.__config.set_value(self.__config_namespace, name, val) def run(self): return self.__dialog.run() def main(): - PreferencesDialog().run() + PreferencesDialog(sys.argv[1]).run() if __name__ == "__main__": |