diff options
Diffstat (limited to 'addressbook/gui/contact-editor')
-rw-r--r-- | addressbook/gui/contact-editor/Makefile.am | 6 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/contact-editor.glade | 979 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor-fullname.c | 36 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.c | 370 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/fullname.glade | 485 |
5 files changed, 549 insertions, 1327 deletions
diff --git a/addressbook/gui/contact-editor/Makefile.am b/addressbook/gui/contact-editor/Makefile.am index 32d5531859..0b2ec028f5 100644 --- a/addressbook/gui/contact-editor/Makefile.am +++ b/addressbook/gui/contact-editor/Makefile.am @@ -20,10 +20,6 @@ privsolib_LTLIBRARIES = \ libecontacteditor_la_SOURCES = \ eab-editor.c \ eab-editor.h \ - e-contact-editor-im.c \ - e-contact-editor-im.h \ - e-contact-editor-address.c \ - e-contact-editor-address.h \ e-contact-editor-fullname.c \ e-contact-editor-fullname.h \ e-contact-editor.c \ @@ -40,9 +36,7 @@ libecontacteditor_la_LIBADD = \ $(EVOLUTION_ADDRESSBOOK_LIBS) glade_DATA = \ - im.glade \ contact-editor.glade \ - fulladdr.glade \ fullname.glade EXTRA_DIST= $(glade_DATA) diff --git a/addressbook/gui/contact-editor/contact-editor.glade b/addressbook/gui/contact-editor/contact-editor.glade index 1f3af8d208..c840cf679b 100644 --- a/addressbook/gui/contact-editor/contact-editor.glade +++ b/addressbook/gui/contact-editor/contact-editor.glade @@ -205,7 +205,7 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> - <property name="mnemonic_widget">entry-file-as</property> + <property name="mnemonic_widget">combo-file-as</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> @@ -314,48 +314,6 @@ </child> <child> - <widget class="GtkCombo" id="combo-file-as"> - <property name="visible">True</property> - <property name="value_in_list">False</property> - <property name="allow_empty">True</property> - <property name="case_sensitive">False</property> - <property name="enable_arrow_keys">True</property> - <property name="enable_arrows_always">False</property> - <accessibility> - <atkrelation target="accellabel-fileas" type="labelled-by"/> - </accessibility> - - <child internal-child="entry"> - <widget class="GtkEntry" id="entry-file-as"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - </widget> - </child> - - <child internal-child="list"> - <widget class="GtkList" id="list14"> - <property name="visible">True</property> - <property name="selection_mode">GTK_SELECTION_BROWSE</property> - </widget> - </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"></property> - </packing> - </child> - - <child> <widget class="Custom" id="source-combo-box-source"> <property name="visible">True</property> <property name="creation_function">e_contact_editor_create_source_combo_box</property> @@ -391,6 +349,26 @@ <property name="y_options"></property> </packing> </child> + + <child> + <widget class="GtkComboBoxEntry" id="combo-file-as"> + <property name="visible">True</property> + <property name="items">a +b +c</property> + <property name="add_tearoffs">False</property> + <property name="has_frame">True</property> + <property name="focus_on_click">True</property> + </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="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> </widget> <packing> <property name="padding">0</property> @@ -441,84 +419,6 @@ <property name="column_spacing">6</property> <child> - <widget class="GtkOptionMenu" id="optionmenu-email-1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu169"> - - <child> - <widget class="GtkMenuItem" id="menuitem380"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem381"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkOptionMenu" id="optionmenu-email-2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu170"> - - <child> - <widget class="GtkMenuItem" id="menuitem382"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem383"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> <widget class="GtkEntry" id="entry-email-2"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -529,9 +429,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-email-2" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">1</property> @@ -543,84 +440,6 @@ </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-email-3"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu171"> - - <child> - <widget class="GtkMenuItem" id="menuitem384"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem385"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkOptionMenu" id="optionmenu-email-4"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu172"> - - <child> - <widget class="GtkMenuItem" id="menuitem386"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem387"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> - </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">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> <widget class="GtkEntry" id="entry-email-1"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -631,9 +450,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-email-1" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">1</property> @@ -655,9 +471,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-email-3" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">3</property> @@ -679,9 +492,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-email-4" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">3</property> @@ -713,6 +523,78 @@ <property name="y_options"></property> </packing> </child> + + <child> + <widget class="GtkComboBox" id="combobox-email-1"> + <property name="visible">True</property> + <property name="items">Work +Personal</property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="combobox-email-2"> + <property name="visible">True</property> + <property name="items">Work +Personal</property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="combobox-email-3"> + <property name="visible">True</property> + <property name="items">Work +Personal</property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="combobox-email-4"> + <property name="visible">True</property> + <property name="items">Work +Personal</property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</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">fill</property> + <property name="y_options">fill</property> + </packing> + </child> </widget> </child> @@ -786,9 +668,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-1" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">1</property> @@ -810,9 +689,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-2" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">1</property> @@ -834,9 +710,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-4" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">3</property> @@ -858,9 +731,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-3" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">3</property> @@ -872,33 +742,11 @@ </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-1"> + <widget class="GtkComboBox" id="combobox-phone-1"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu179"> - - <child> - <widget class="GtkMenuItem" id="menuitem412"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem413"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">0</property> @@ -906,38 +754,16 @@ <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="y_options">fill</property> </packing> </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-2"> + <widget class="GtkComboBox" id="combobox-phone-2"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu180"> - - <child> - <widget class="GtkMenuItem" id="menuitem414"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem415"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">0</property> @@ -945,38 +771,16 @@ <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="y_options">fill</property> </packing> </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-3"> + <widget class="GtkComboBox" id="combobox-phone-3"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu181"> - - <child> - <widget class="GtkMenuItem" id="menuitem416"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem417"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">2</property> @@ -984,38 +788,16 @@ <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="y_options">fill</property> </packing> </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-4"> + <widget class="GtkComboBox" id="combobox-phone-4"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu182"> - - <child> - <widget class="GtkMenuItem" id="menuitem418"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem419"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">2</property> @@ -1023,7 +805,7 @@ <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="y_options">fill</property> </packing> </child> </widget> @@ -1043,85 +825,49 @@ <property name="column_spacing">6</property> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-5"> + <widget class="GtkEntry" id="entry-phone-5"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu187"> - - <child> - <widget class="GtkMenuItem" id="menuitem430"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem431"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> </widget> <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> - <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-6"> + <widget class="GtkEntry" id="entry-phone-6"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu188"> - - <child> - <widget class="GtkMenuItem" id="menuitem432"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem433"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> </widget> <packing> - <property name="left_attach">0</property> - <property name="right_attach">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> - <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkEntry" id="entry-phone-5"> + <widget class="GtkEntry" id="entry-phone-7"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1131,13 +877,10 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-5" type="labelled-by"/> - </accessibility> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="left_attach">3</property> + <property name="right_attach">4</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="y_options"></property> @@ -1145,7 +888,7 @@ </child> <child> - <widget class="GtkEntry" id="entry-phone-6"> + <widget class="GtkEntry" id="entry-phone-8"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1155,13 +898,10 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-6" type="labelled-by"/> - </accessibility> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="left_attach">3</property> + <property name="right_attach">4</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> @@ -1169,128 +909,70 @@ </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-7"> + <widget class="GtkComboBox" id="combobox-phone-5"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu189"> - - <child> - <widget class="GtkMenuItem" id="menuitem434"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem435"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> + <property name="left_attach">0</property> + <property name="right_attach">1</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="y_options">fill</property> </packing> </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-phone-8"> + <widget class="GtkComboBox" id="combobox-phone-6"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu190"> - - <child> - <widget class="GtkMenuItem" id="menuitem436"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem437"> - <property name="visible">True</property> - <property name="label" translatable="yes">Personal</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> + <property name="left_attach">0</property> + <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="y_options">fill</property> </packing> </child> <child> - <widget class="GtkEntry" id="entry-phone-7"> + <widget class="GtkComboBox" id="combobox-phone-7"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-7" type="labelled-by"/> - </accessibility> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> + <property name="left_attach">2</property> + <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> - <property name="y_options"></property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> </packing> </child> <child> - <widget class="GtkEntry" id="entry-phone-8"> + <widget class="GtkComboBox" id="combobox-phone-8"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-phone-8" type="labelled-by"/> - </accessibility> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> + <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="y_options"></property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> </packing> </child> </widget> @@ -1402,54 +1084,6 @@ <property name="column_spacing">6</property> <child> - <widget class="GtkOptionMenu" id="optionmenu-im-service-1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu173"> - - <child> - <widget class="GtkMenuItem" id="menuitem388"> - <property name="visible">True</property> - <property name="label" translatable="yes">AIM</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_aim1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem389"> - <property name="visible">True</property> - <property name="label" translatable="yes">Novell GroupWise</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_novell_groupwise1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem390"> - <property name="visible">True</property> - <property name="label" translatable="yes">MSN Messenger</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_msn_messenger1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> <widget class="GtkEntry" id="entry-im-name-1"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -1460,9 +1094,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-im-service-1" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">1</property> @@ -1474,54 +1105,6 @@ </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-im-service-2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu174"> - - <child> - <widget class="GtkMenuItem" id="menuitem391"> - <property name="visible">True</property> - <property name="label" translatable="yes">AIM</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_aim1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem392"> - <property name="visible">True</property> - <property name="label" translatable="yes">Novell GroupWise</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_novell_groupwise1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem393"> - <property name="visible">True</property> - <property name="label" translatable="yes">MSN Messenger</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_msn_messenger1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> <widget class="GtkEntry" id="entry-im-name-2"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -1532,9 +1115,6 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-im-service-2" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">1</property> @@ -1546,55 +1126,28 @@ </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-im-service-3"> + <widget class="GtkEntry" id="entry-im-name-3"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu175"> - - <child> - <widget class="GtkMenuItem" id="menuitem394"> - <property name="visible">True</property> - <property name="label" translatable="yes">AIM</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_aim1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem395"> - <property name="visible">True</property> - <property name="label" translatable="yes">Novell GroupWise</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_novell_groupwise1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem396"> - <property name="visible">True</property> - <property name="label" translatable="yes">MSN Messenger</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_msn_messenger1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - </widget> - </child> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> </widget> <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> + <property name="left_attach">3</property> + <property name="right_attach">4</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> - <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkEntry" id="entry-im-name-3"> + <widget class="GtkEntry" id="entry-im-name-4"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1604,88 +1157,81 @@ <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-im-service-3" type="labelled-by"/> - </accessibility> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkOptionMenu" id="optionmenu-im-service-4"> + <widget class="GtkComboBox" id="combobox-im-service-1"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu183"> - - <child> - <widget class="GtkMenuItem" id="menuitem420"> - <property name="visible">True</property> - <property name="label" translatable="yes">AIM</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_aim1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> - <child> - <widget class="GtkMenuItem" id="menuitem421"> - <property name="visible">True</property> - <property name="label" translatable="yes">Novell GroupWise</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_novell_groupwise1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> + <child> + <widget class="GtkComboBox" id="combobox-im-service-2"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> - <child> - <widget class="GtkMenuItem" id="menuitem422"> - <property name="visible">True</property> - <property name="label" translatable="yes">MSN Messenger</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_msn_messenger1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> - </widget> - </child> - </widget> - </child> + <child> + <widget class="GtkComboBox" id="combobox-im-service-3"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</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="top_attach">0</property> + <property name="bottom_attach">1</property> <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="y_options">fill</property> </packing> </child> <child> - <widget class="GtkEntry" id="entry-im-name-4"> + <widget class="GtkComboBox" id="combobox-im-service-4"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - <accessibility> - <atkrelation target="optionmenu-im-service-4" type="labelled-by"/> - </accessibility> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> </widget> <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> + <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="y_options"></property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> </packing> </child> </widget> @@ -2785,9 +2331,9 @@ <property name="border_width">6</property> <property name="visible">True</property> <property name="xalign">0.5</property> - <property name="yalign">0.15</property> + <property name="yalign">0.15000000596</property> <property name="xscale">1</property> - <property name="yscale">0.70</property> + <property name="yscale">0.699999988079</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">19</property> @@ -3033,7 +2579,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">4</property> @@ -3084,7 +2630,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3113,7 +2659,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3132,15 +2678,12 @@ <property name="y_options"></property> </packing> </child> - - <child> - <placeholder /> - </child> - - <child> - <placeholder /> - </child> </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> </child> </widget> </child> @@ -3156,7 +2699,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">0.42</property> + <property name="xalign">0.419999986887</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3190,9 +2733,9 @@ <property name="border_width">6</property> <property name="visible">True</property> <property name="xalign">0.5</property> - <property name="yalign">0.15</property> + <property name="yalign">0.15000000596</property> <property name="xscale">1</property> - <property name="yscale">0.70</property> + <property name="yscale">0.699999988079</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">19</property> @@ -3224,6 +2767,7 @@ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <child> <widget class="GtkTextView" id="textview-work-address"> <property name="height_request">25</property> @@ -3314,7 +2858,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3466,7 +3010,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">4</property> @@ -3517,7 +3061,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3536,17 +3080,16 @@ <property name="y_options"></property> </packing> </child> - </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> </child> </widget> </child> </widget> - <packing> - <property name="padding">8</property> - <property name="expand">True</property> - <property name="fill">False</property> - </packing> </child> <child> @@ -3558,7 +3101,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">0.42</property> + <property name="xalign">0.419999986887</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3592,9 +3135,9 @@ <property name="border_width">6</property> <property name="visible">True</property> <property name="xalign">0.5</property> - <property name="yalign">0.15</property> + <property name="yalign">0.15000000596</property> <property name="xscale">1</property> - <property name="yscale">0.70</property> + <property name="yscale">0.699999988079</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">19</property> @@ -3675,7 +3218,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3827,7 +3370,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">4</property> @@ -3878,7 +3421,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">1.0</property> + <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> @@ -3908,6 +3451,7 @@ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <child> <widget class="GtkTextView" id="textview-other-address"> <property name="height_request">25</property> @@ -3948,11 +3492,6 @@ </widget> </child> </widget> - <packing> - <property name="padding">8</property> - <property name="expand">True</property> - <property name="fill">False</property> - </packing> </child> <child> @@ -3964,7 +3503,7 @@ <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> - <property name="xalign">0.42</property> + <property name="xalign">0.419999986887</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> diff --git a/addressbook/gui/contact-editor/e-contact-editor-fullname.c b/addressbook/gui/contact-editor/e-contact-editor-fullname.c index 3eeaa9d6ed..bbe9ece7ba 100644 --- a/addressbook/gui/contact-editor/e-contact-editor-fullname.c +++ b/addressbook/gui/contact-editor/e-contact-editor-fullname.c @@ -191,8 +191,8 @@ e_contact_editor_fullname_set_property (GObject *object, guint prop_id, case PROP_EDITABLE: { int i; char *widget_names[] = { - "combo-title", - "combo-suffix", + "comboentry-title", + "comboentry-suffix", "entry-first", "entry-middle", "entry-last", @@ -210,10 +210,10 @@ e_contact_editor_fullname_set_property (GObject *object, guint prop_id, gtk_editable_set_editable (GTK_EDITABLE (w), e_contact_editor_fullname->editable); } - else if (GTK_IS_COMBO (w)) { - gtk_editable_set_editable (GTK_EDITABLE (GTK_COMBO (w)->entry), + else if (GTK_IS_COMBO_BOX_ENTRY (w)) { + gtk_editable_set_editable (GTK_EDITABLE (gtk_bin_get_child (GTK_BIN (w))), e_contact_editor_fullname->editable); - gtk_widget_set_sensitive (GTK_COMBO (w)->button, e_contact_editor_fullname->editable); + gtk_widget_set_sensitive (w, e_contact_editor_fullname->editable); } else if (GTK_IS_LABEL (w)) { gtk_widget_set_sensitive (w, e_contact_editor_fullname->editable); @@ -252,7 +252,14 @@ e_contact_editor_fullname_get_property (GObject *object, guint prop_id, static void fill_in_field(EContactEditorFullname *editor, char *field, char *string) { - GtkEntry *entry = GTK_ENTRY(glade_xml_get_widget(editor->gui, field)); + GtkWidget *widget = glade_xml_get_widget (editor->gui, field); + GtkEntry *entry = NULL; + + if (GTK_IS_ENTRY (widget)) + entry = GTK_ENTRY (widget); + else if (GTK_IS_COMBO_BOX_ENTRY (widget)) + entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (widget))); + if (entry) { if (string) gtk_entry_set_text(entry, string); @@ -266,18 +273,25 @@ fill_in_info(EContactEditorFullname *editor) { EContactName *name = editor->name; if (name) { - fill_in_field(editor, "entry-title", name->prefixes); + fill_in_field(editor, "comboentry-title", name->prefixes); fill_in_field(editor, "entry-first", name->given); fill_in_field(editor, "entry-middle", name->additional); fill_in_field(editor, "entry-last", name->family); - fill_in_field(editor, "entry-suffix", name->suffixes); + fill_in_field(editor, "comboentry-suffix", name->suffixes); } } static char * extract_field(EContactEditorFullname *editor, char *field) { - GtkEntry *entry = GTK_ENTRY(glade_xml_get_widget(editor->gui, field)); + GtkWidget *widget = glade_xml_get_widget(editor->gui, field); + GtkEntry *entry = NULL; + + if (GTK_IS_ENTRY (widget)) + entry = GTK_ENTRY (widget); + else if (GTK_IS_COMBO_BOX_ENTRY (widget)) + entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (widget))); + if (entry) return g_strdup (gtk_entry_get_text(entry)); else @@ -293,9 +307,9 @@ extract_info(EContactEditorFullname *editor) editor->name = name; } - name->prefixes = extract_field(editor, "entry-title" ); + name->prefixes = extract_field(editor, "comboentry-title" ); name->given = extract_field(editor, "entry-first" ); name->additional = extract_field(editor, "entry-middle"); name->family = extract_field(editor, "entry-last" ); - name->suffixes = extract_field(editor, "entry-suffix"); + name->suffixes = extract_field(editor, "comboentry-suffix"); } diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index ac4f663ffc..c3a73fbcd5 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -56,8 +56,6 @@ #include "eab-contact-merging.h" -#include "e-contact-editor-address.h" -#include "e-contact-editor-im.h" #include "e-contact-editor-fullname.h" #define EMAIL_SLOTS 4 @@ -450,7 +448,7 @@ name_to_style (const EContactName *name, const gchar *company, int style) static int file_as_get_style (EContactEditor *editor) { - GtkEntry *file_as = GTK_ENTRY(glade_xml_get_widget(editor->gui, "entry-file-as")); + GtkEntry *file_as = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (glade_xml_get_widget(editor->gui, "combo-file-as")))); GtkEntry *company_w = GTK_ENTRY (glade_xml_get_widget (editor->gui, "entry-company")); char *filestring; char *trystring; @@ -483,23 +481,20 @@ file_as_set_style (EContactEditor *editor, int style) char *string; int i; GList *strings = NULL; - GtkEntry *file_as = GTK_ENTRY (glade_xml_get_widget (editor->gui, "entry-file-as")); + GtkComboBox *combo_file_as = GTK_COMBO_BOX (glade_xml_get_widget (editor->gui, "combo-file-as")); GtkEntry *company_w = GTK_ENTRY (glade_xml_get_widget (editor->gui, "entry-company")); - GtkWidget *widget; const gchar *company; - if (!(file_as && GTK_IS_ENTRY (file_as))) + if (!(combo_file_as && GTK_IS_COMBO_BOX_ENTRY (combo_file_as))) return; company = gtk_entry_get_text (GTK_ENTRY (company_w)); if (style == -1) { - string = g_strdup (gtk_entry_get_text(file_as)); + string = gtk_combo_box_get_active_text (combo_file_as); strings = g_list_append (strings, string); } - widget = glade_xml_get_widget (editor->gui, "combo-file-as"); - for (i = 0; i < 6; i++) { if (style_makes_sense (editor->name, company, i)) { char *u; @@ -511,16 +506,22 @@ file_as_set_style (EContactEditor *editor, int style) } } - if (widget && GTK_IS_COMBO (widget)) { - GtkCombo *combo = GTK_COMBO (widget); - gtk_combo_set_popdown_strings (combo, strings); - g_list_foreach (strings, (GFunc) g_free, NULL); - g_list_free (strings); + if (combo_file_as) { + GList *l; + + gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (combo_file_as))); + + for (l = strings; l; l = l->next) { + gtk_combo_box_append_text (combo_file_as, l->data); + } } + g_list_foreach (strings, (GFunc) g_free, NULL); + g_list_free (strings); + if (style != -1) { string = name_to_style (editor->name, company, style); - set_entry_text (editor, file_as, string); + set_entry_text (editor, GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_file_as))), string); g_free (string); } } @@ -543,9 +544,9 @@ name_entry_changed (GtkWidget *widget, EContactEditor *editor) } static void -file_as_entry_changed (GtkWidget *widget, EContactEditor *editor) +file_as_combo_changed (GtkWidget *widget, EContactEditor *editor) { - char *string = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1); + char *string = gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget)); if (string && *string) { gchar *title; @@ -598,7 +599,7 @@ sensitize_ok (EContactEditor *ce) GtkWidget *widget; gboolean allow_save; GtkWidget *entry_fullname = glade_xml_get_widget (ce->gui, "entry-fullname" ); - GtkWidget *entry_file_as = glade_xml_get_widget (ce->gui, "entry-file-as"); + GtkWidget *entry_file_as = gtk_bin_get_child (GTK_BIN (glade_xml_get_widget (ce->gui, "combo-file-as"))); GtkWidget *company_name = glade_xml_get_widget (ce->gui, "entry-company"); const char *name_entry_string = gtk_entry_get_text (GTK_ENTRY (entry_fullname)); const char *file_as_entry_string = gtk_entry_get_text (GTK_ENTRY (entry_file_as)); @@ -656,26 +657,19 @@ set_entry_text (EContactEditor *editor, GtkEntry *entry, const gchar *string) } static void -set_option_menu_history (EContactEditor *editor, GtkOptionMenu *option_menu, gint history) +set_combo_box_active (EContactEditor *editor, GtkComboBox *combo_box, gint active) { - g_signal_handlers_block_matched (option_menu, G_SIGNAL_MATCH_DATA, + g_signal_handlers_block_matched (combo_box, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, editor); - gtk_option_menu_set_history (option_menu, history); - g_signal_handlers_unblock_matched (option_menu, G_SIGNAL_MATCH_DATA, + gtk_combo_box_set_active (combo_box, active); + g_signal_handlers_unblock_matched (combo_box, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, editor); } static void -email_menu_changed(GtkWidget *widget, GtkWidget *next) -{ - gtk_widget_grab_focus(next); -} - -static void init_email_record_location (EContactEditor *editor, gint record) { - GtkWidget *location_option_menu; - GtkWidget *location_menu; + GtkComboBox *location_combo_box; GtkWidget *email_entry; gchar *widget_name; gint i; @@ -684,24 +678,18 @@ init_email_record_location (EContactEditor *editor, gint record) email_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - widget_name = g_strdup_printf ("optionmenu-email-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-email-%d", record); + location_combo_box = GTK_COMBO_BOX (glade_xml_get_widget (editor->gui, widget_name)); g_free (widget_name); - location_menu = gtk_menu_new (); + gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (location_combo_box))); for (i = 0; i < G_N_ELEMENTS (common_location); i++) { - GtkWidget *item; - - item = gtk_menu_item_new_with_label (_(common_location [i].pretty_name)); - gtk_menu_shell_append (GTK_MENU_SHELL (location_menu), item); -+ g_signal_connect (item, "activate", G_CALLBACK (email_menu_changed), email_entry); + gtk_combo_box_append_text (location_combo_box, _(common_location [i].pretty_name)); } - gtk_widget_show_all (location_menu); - gtk_option_menu_set_menu (GTK_OPTION_MENU (location_option_menu), location_menu); - - g_signal_connect (location_option_menu, "changed", G_CALLBACK (object_changed), editor); + g_signal_connect_swapped (location_combo_box, "changed", G_CALLBACK (gtk_widget_grab_focus), email_entry); + g_signal_connect (location_combo_box, "changed", G_CALLBACK (object_changed), editor); g_signal_connect (email_entry, "changed", G_CALLBACK (object_changed), editor); g_signal_connect_swapped (email_entry, "activate", G_CALLBACK (entry_activated), editor); } @@ -718,19 +706,19 @@ init_email (EContactEditor *editor) static void fill_in_email_record (EContactEditor *editor, gint record, const gchar *address, gint location) { - GtkWidget *location_option_menu; + GtkWidget *location_combo_box; GtkWidget *email_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-email-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-email-%d", record); + location_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); widget_name = g_strdup_printf ("entry-email-%d", record); email_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - set_option_menu_history (editor, GTK_OPTION_MENU (location_option_menu), + set_combo_box_active (editor, GTK_COMBO_BOX (location_combo_box), location >= 0 ? location : email_default [2]); set_entry_text (editor, GTK_ENTRY (email_entry), address ? address : ""); } @@ -738,12 +726,12 @@ fill_in_email_record (EContactEditor *editor, gint record, const gchar *address, static void extract_email_record (EContactEditor *editor, gint record, gchar **address, gint *location) { - GtkWidget *location_option_menu; + GtkWidget *location_combo_box; GtkWidget *email_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-email-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-email-%d", record); + location_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); widget_name = g_strdup_printf ("entry-email-%d", record); @@ -751,7 +739,7 @@ extract_email_record (EContactEditor *editor, gint record, gchar **address, gint g_free (widget_name); *address = g_strdup (gtk_entry_get_text (GTK_ENTRY (email_entry))); - *location = gtk_option_menu_get_history (GTK_OPTION_MENU (location_option_menu)); + *location = gtk_combo_box_get_active (GTK_COMBO_BOX (location_combo_box)); } static const gchar * @@ -1009,19 +997,19 @@ extract_email (EContactEditor *editor) static void sensitize_email_record (EContactEditor *editor, gint record, gboolean enabled) { - GtkWidget *location_option_menu; + GtkWidget *location_combo_box; GtkWidget *email_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-email-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-email-%d", record); + location_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); widget_name = g_strdup_printf ("entry-email-%d", record); email_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - gtk_widget_set_sensitive (location_option_menu, enabled); + gtk_widget_set_sensitive (location_combo_box, enabled); gtk_editable_set_editable (GTK_EDITABLE (email_entry), enabled); } @@ -1044,6 +1032,29 @@ sensitize_email (EContactEditor *editor) } } +static void +init_item_sensitiveable_combo_box (GtkComboBox *combo) +{ + GtkCellRenderer *cell; + GtkListStore *store; + + g_return_if_fail (combo != NULL); + g_return_if_fail (GTK_IS_COMBO_BOX (combo)); + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN); + gtk_combo_box_set_model (combo, GTK_TREE_MODEL (store)); + g_object_unref (store); + + gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo)); + + cell = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), cell, + "text", 0, + "sensitive", 1, + NULL); +} + /* EContact can get attributes by field ID only, and there is none for TEL, so we need this */ static GList * get_attributes_named (EVCard *vcard, const gchar *attr_name) @@ -1104,19 +1115,19 @@ expand_phone (EContactEditor *editor, gboolean expanded) static void fill_in_phone_record (EContactEditor *editor, gint record, const gchar *phone, gint phone_type) { - GtkWidget *phone_type_option_menu; + GtkWidget *phone_type_combo_box; GtkWidget *phone_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-phone-%d", record); - phone_type_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-phone-%d", record); + phone_type_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); widget_name = g_strdup_printf ("entry-phone-%d", record); phone_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - set_option_menu_history (editor, GTK_OPTION_MENU (phone_type_option_menu), + set_combo_box_active (editor, GTK_COMBO_BOX (phone_type_combo_box), phone_type >= 0 ? phone_type : phones_default [record - 1]); set_entry_text (editor, GTK_ENTRY (phone_entry), phone ? phone : ""); @@ -1128,12 +1139,12 @@ fill_in_phone_record (EContactEditor *editor, gint record, const gchar *phone, g static void extract_phone_record (EContactEditor *editor, gint record, gchar **phone, gint *phone_type) { - GtkWidget *phone_type_option_menu; + GtkWidget *phone_type_combo_box; GtkWidget *phone_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-phone-%d", record); - phone_type_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-phone-%d", record); + phone_type_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); widget_name = g_strdup_printf ("entry-phone-%d", record); @@ -1141,7 +1152,7 @@ extract_phone_record (EContactEditor *editor, gint record, gchar **phone, gint * g_free (widget_name); *phone = g_strdup (gtk_entry_get_text (GTK_ENTRY (phone_entry))); - *phone_type = gtk_option_menu_get_history (GTK_OPTION_MENU (phone_type_option_menu)); + *phone_type = gtk_combo_box_get_active (GTK_COMBO_BOX (phone_type_combo_box)); } static void @@ -1240,42 +1251,38 @@ extract_phone (EContactEditor *editor) } static void -phone_menu_changed(GtkWidget *widget, GtkWidget *next) -{ - gtk_widget_grab_focus(next); -} - -static void init_phone_record_type (EContactEditor *editor, gint record) { - GtkWidget *phone_type_option_menu; - GtkWidget *phone_type_menu; + GtkWidget *phone_type_combo_box; GtkWidget *phone_entry; gchar *widget_name; gint i; + GtkListStore *store; widget_name = g_strdup_printf ("entry-phone-%d", record); phone_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - widget_name = g_strdup_printf ("optionmenu-phone-%d", record); - phone_type_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-phone-%d", record); + phone_type_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - phone_type_menu = gtk_menu_new (); + init_item_sensitiveable_combo_box (GTK_COMBO_BOX (phone_type_combo_box)); + store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (phone_type_combo_box))); for (i = 0; i < G_N_ELEMENTS (phones); i++) { - GtkWidget *item; + GtkTreeIter iter; - item = gtk_menu_item_new_with_label (e_contact_pretty_name (phones [i].field_id)); - gtk_menu_shell_append (GTK_MENU_SHELL (phone_type_menu), item); - g_signal_connect (item, "activate", G_CALLBACK (phone_menu_changed), phone_entry); + gtk_list_store_append (store, &iter); + gtk_list_store_set ( + store, &iter, + 0, e_contact_pretty_name (phones [i].field_id), + 1, TRUE, + -1); } - gtk_widget_show_all (phone_type_menu); - gtk_option_menu_set_menu (GTK_OPTION_MENU (phone_type_option_menu), phone_type_menu); - - g_signal_connect (phone_type_option_menu, "changed", G_CALLBACK (object_changed), editor); + g_signal_connect_swapped (phone_type_combo_box, "changed", G_CALLBACK (gtk_widget_grab_focus), phone_entry); + g_signal_connect (phone_type_combo_box, "changed", G_CALLBACK (object_changed), editor); g_signal_connect (phone_entry, "changed", G_CALLBACK (object_changed), editor); g_signal_connect_swapped (phone_entry, "activate", G_CALLBACK (entry_activated), editor); } @@ -1292,49 +1299,50 @@ init_phone (EContactEditor *editor) } static void -sensitize_phone_types (EContactEditor *editor, GtkWidget *option_menu) +sensitize_phone_types (EContactEditor *editor, GtkWidget *combo_box) { - GtkWidget *menu; - GList *l; - gint i; + GtkTreeModel *model; + GtkTreeIter iter; + gint i; + gboolean valid; - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (option_menu)); - l = gtk_container_get_children (GTK_CONTAINER (menu)); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box)); + valid = gtk_tree_model_get_iter_first (model, &iter); for (i = 0; i < G_N_ELEMENTS (phones); i++) { - GtkWidget *widget; - - if (!l) { - g_warning (G_STRLOC ": Unexpected end of phone items in option menu"); + if (!valid) { + g_warning (G_STRLOC ": Unexpected end of phone items in combo box"); return; } - widget = l->data; - gtk_widget_set_sensitive (widget, is_field_supported (editor, phones [i].field_id)); + gtk_list_store_set ( + GTK_LIST_STORE (model), &iter, + 1, is_field_supported (editor, phones [i].field_id), + -1); - l = g_list_next (l); + valid = gtk_tree_model_iter_next (model, &iter); } } static void sensitize_phone_record (EContactEditor *editor, gint record, gboolean enabled) { - GtkWidget *phone_type_option_menu; + GtkWidget *phone_type_combo_box; GtkWidget *phone_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-phone-%d", record); - phone_type_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-phone-%d", record); + phone_type_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); widget_name = g_strdup_printf ("entry-phone-%d", record); phone_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - gtk_widget_set_sensitive (phone_type_option_menu, enabled); + gtk_widget_set_sensitive (phone_type_combo_box, enabled); gtk_editable_set_editable (GTK_EDITABLE (phone_entry), enabled); - sensitize_phone_types (editor, phone_type_option_menu); + sensitize_phone_types (editor, phone_type_combo_box); } static void @@ -1357,42 +1365,38 @@ init_im_record_location (EContactEditor *editor, gint record) { #ifdef ENABLE_IM_LOCATION - GtkWidget *location_option_menu; - GtkWidget *location_menu; - gint i; + GtkWidget *location_combo_box; + GtkListStore *store; + gint i; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-location-%d", record); + location_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - location_menu = gtk_menu_new (); + init_item_sensitiveable_combo_box (GTK_COMBO_BOX (location_combo_box)); + store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (location_combo_box))); for (i = 0; i < G_N_ELEMENTS (common_location); i++) { - GtkWidget *item; + GtkTreeIter iter; - item = gtk_menu_item_new_with_label (_(common_location [i].pretty_name)); - gtk_menu_shell_append (GTK_MENU_SHELL (location_menu), item); + gtk_list_store_append (store, &iter); + gtk_list_store_set ( + store, &iter, + 0, _(common_location [i].pretty_name), + 1, TRUE, + -1); } - gtk_widget_show_all (location_menu); - gtk_option_menu_set_menu (GTK_OPTION_MENU (location_option_menu), location_menu); - - g_signal_connect (location_option_menu, "changed", G_CALLBACK (object_changed), editor); + g_signal_connect (location_combo_box, "changed", G_CALLBACK (object_changed), editor); #endif } static void -im_menu_changed(GtkWidget *widget, GtkWidget *next) -{ - gtk_widget_grab_focus(next); -} - -static void init_im_record_service (EContactEditor *editor, gint record) { - GtkWidget *service_option_menu; - GtkWidget *service_menu; + GtkWidget *service_combo_box; + GtkListStore *store; GtkWidget *name_entry; gchar *widget_name; gint i; @@ -1401,24 +1405,26 @@ init_im_record_service (EContactEditor *editor, gint record) name_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - widget_name = g_strdup_printf ("optionmenu-im-service-%d", record); - service_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-service-%d", record); + service_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - service_menu = gtk_menu_new (); + init_item_sensitiveable_combo_box (GTK_COMBO_BOX (service_combo_box)); + store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (service_combo_box))); for (i = 0; i < G_N_ELEMENTS (im_service); i++) { - GtkWidget *item; + GtkTreeIter iter; - item = gtk_menu_item_new_with_label (im_service [i].pretty_name); - gtk_menu_shell_append (GTK_MENU_SHELL (service_menu), item); - g_signal_connect (item, "activate", G_CALLBACK (im_menu_changed), name_entry); + gtk_list_store_append (store, &iter); + gtk_list_store_set ( + store, &iter, + 0, im_service [i].pretty_name, + 1, TRUE, + -1); } - gtk_widget_show_all (service_menu); - gtk_option_menu_set_menu (GTK_OPTION_MENU (service_option_menu), service_menu); - - g_signal_connect (service_option_menu, "changed", G_CALLBACK (object_changed), editor); + g_signal_connect_swapped (service_combo_box, "changed", G_CALLBACK (gtk_widget_grab_focus), name_entry); + g_signal_connect (service_combo_box, "changed", G_CALLBACK (object_changed), editor); g_signal_connect (name_entry, "changed", G_CALLBACK (object_changed), editor); g_signal_connect_swapped (name_entry, "activate", G_CALLBACK (entry_activated), editor); } @@ -1437,20 +1443,20 @@ init_im (EContactEditor *editor) static void fill_in_im_record (EContactEditor *editor, gint record, gint service, const gchar *name, gint location) { - GtkWidget *service_option_menu; + GtkWidget *service_combo_box; #ifdef ENABLE_IM_LOCATION - GtkWidget *location_option_menu; + GtkWidget *location_combo_box; #endif GtkWidget *name_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-im-service-%d", record); - service_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-service-%d", record); + service_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); #ifdef ENABLE_IM_LOCATION - widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-location-%d", record); + location_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); #endif @@ -1459,10 +1465,10 @@ fill_in_im_record (EContactEditor *editor, gint record, gint service, const gcha g_free (widget_name); #ifdef ENABLE_IM_LOCATION - set_option_menu_history (editor, GTK_OPTION_MENU (location_option_menu), + set_combo_box_active (editor, GTK_COMBO_BOX (location_combo_box), location >= 0 ? location : 0); #endif - set_option_menu_history (editor, GTK_OPTION_MENU (service_option_menu), + set_combo_box_active (editor, GTK_COMBO_BOX (service_combo_box), service >= 0 ? service : im_service_default [record - 1]); set_entry_text (editor, GTK_ENTRY (name_entry), name ? name : ""); } @@ -1507,20 +1513,20 @@ fill_in_im (EContactEditor *editor) static void extract_im_record (EContactEditor *editor, gint record, gint *service, gchar **name, gint *location) { - GtkWidget *service_option_menu; + GtkWidget *service_combo_box; #ifdef ENABLE_IM_LOCATION - GtkWidget *location_option_menu; + GtkWidget *location_combo_box; #endif GtkWidget *name_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-im-service-%d", record); - service_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-service-%d", record); + service_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); #ifdef ENABLE_IM_LOCATION - widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-location-%d", record); + location_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); #endif @@ -1529,9 +1535,9 @@ extract_im_record (EContactEditor *editor, gint record, gint *service, gchar **n g_free (widget_name); *name = g_strdup (gtk_entry_get_text (GTK_ENTRY (name_entry))); - *service = gtk_option_menu_get_history (GTK_OPTION_MENU (service_option_menu)); + *service = gtk_combo_box_get_active (GTK_COMBO_BOX (service_combo_box)); #ifdef ENABLE_IM_LOCATION - *location = gtk_option_menu_get_history (GTK_OPTION_MENU (location_option_menu)); + *location = gtk_combo_box_get_active (GTK_COMBO_BOX (location_combo_box)); #else *location = 1; /* set everything to HOME */ #endif @@ -1602,47 +1608,48 @@ extract_im (EContactEditor *editor) g_free (service_attr_list); } static void -sensitize_im_types (EContactEditor *editor, GtkWidget *option_menu) +sensitize_im_types (EContactEditor *editor, GtkWidget *combo_box) { - GtkWidget *menu; - GList *l; - gint i; + GtkTreeModel *model; + GtkTreeIter iter; + gint i; + gboolean valid; - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (option_menu)); - l = gtk_container_get_children (GTK_CONTAINER (menu)); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box)); + valid = gtk_tree_model_get_iter_first (model, &iter); for (i = 0; i < G_N_ELEMENTS (im_service); i++) { - GtkWidget *widget; - - if (!l) { - g_warning (G_STRLOC ": Unexpected end of im items in option menu"); + if (!valid) { + g_warning (G_STRLOC ": Unexpected end of im items in combo box"); return; } - widget = l->data; - gtk_widget_set_sensitive (widget, is_field_supported (editor, im_service [i].field)); + gtk_list_store_set ( + GTK_LIST_STORE (model), &iter, + 1, is_field_supported (editor, im_service [i].field), + -1); - l = g_list_next (l); + valid = gtk_tree_model_iter_next (model, &iter); } } static void sensitize_im_record (EContactEditor *editor, gint record, gboolean enabled) { - GtkWidget *service_option_menu; + GtkWidget *service_combo_box; #ifdef ENABLE_IM_LOCATION - GtkWidget *location_option_menu; + GtkWidget *location_combo_box; #endif GtkWidget *name_entry; gchar *widget_name; - widget_name = g_strdup_printf ("optionmenu-im-service-%d", record); - service_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-service-%d", record); + service_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); #ifdef ENABLE_IM_LOCATION - widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); - location_option_menu = glade_xml_get_widget (editor->gui, widget_name); + widget_name = g_strdup_printf ("combobox-im-location-%d", record); + location_combo_box = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); #endif @@ -1650,12 +1657,12 @@ sensitize_im_record (EContactEditor *editor, gint record, gboolean enabled) name_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); - gtk_widget_set_sensitive (service_option_menu, enabled); + gtk_widget_set_sensitive (service_combo_box, enabled); #ifdef ENABLE_IM_LOCATION - gtk_widget_set_sensitive (location_option_menu, enabled); + gtk_widget_set_sensitive (location_combo_box, enabled); #endif gtk_editable_set_editable (GTK_EDITABLE (name_entry), enabled); - sensitize_im_types (editor, service_option_menu); + sensitize_im_types (editor, service_combo_box); } static void @@ -2103,8 +2110,7 @@ static FieldMapping simple_field_map [] = { { "image-chooser", E_CONTACT_PHOTO, TRUE, TRUE }, { "button-image", E_CONTACT_PHOTO, FALSE, TRUE }, - { "combo-file-as", E_CONTACT_FILE_AS, FALSE, TRUE }, - { "entry-file-as", E_CONTACT_FILE_AS, TRUE, TRUE }, + { "combo-file-as", E_CONTACT_FILE_AS, TRUE, TRUE }, { "accellabel-fileas", E_CONTACT_FILE_AS, FALSE, TRUE }, }; @@ -2117,6 +2123,10 @@ init_simple_field (EContactEditor *editor, GtkWidget *widget) changed_object = G_OBJECT (widget); g_signal_connect_swapped (widget, "activate", G_CALLBACK (entry_activated), editor); } + else if (GTK_IS_COMBO_BOX_ENTRY (widget)) { + changed_object = G_OBJECT (/*gtk_bin_get_child (GTK_BIN*/ (widget)/*)*/); + g_signal_connect_swapped (gtk_bin_get_child (GTK_BIN (widget)), "activate", G_CALLBACK (entry_activated), editor); + } else if (GTK_IS_TEXT_VIEW (widget)) { changed_object = G_OBJECT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget))); } @@ -2155,6 +2165,11 @@ fill_in_simple_field (EContactEditor *editor, GtkWidget *widget, gint field_id) gtk_entry_set_text (GTK_ENTRY (widget), STRING_MAKE_NON_NULL (text)); g_free (text); } + else if (GTK_IS_COMBO_BOX_ENTRY (widget)) { + gchar *text = e_contact_get (contact, field_id); + gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (widget))), STRING_MAKE_NON_NULL (text)); + g_free (text); + } else if (GTK_IS_TEXT_VIEW (widget)) { GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gchar *text = e_contact_get (contact, field_id); @@ -2220,6 +2235,13 @@ extract_simple_field (EContactEditor *editor, GtkWidget *widget, gint field_id) const gchar *text = gtk_entry_get_text (GTK_ENTRY (widget)); e_contact_set (contact, field_id, (gchar *) text); } + else if (GTK_IS_COMBO_BOX_ENTRY (widget)) { + char *text = gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget)); + + e_contact_set (contact, field_id, text); + + g_free (text); + } else if (GTK_IS_TEXT_VIEW (widget)) { GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); GtkTextIter start, end; @@ -2368,8 +2390,8 @@ init_simple (EContactEditor *editor) widget = glade_xml_get_widget (editor->gui, "entry-fullname"); g_signal_connect (widget, "changed", G_CALLBACK (name_entry_changed), editor); - widget = glade_xml_get_widget (editor->gui, "entry-file-as"); - g_signal_connect (widget, "changed", G_CALLBACK (file_as_entry_changed), editor); + widget = glade_xml_get_widget (editor->gui, "combo-file-as"); + g_signal_connect (widget, "changed", G_CALLBACK (file_as_combo_changed), editor); widget = glade_xml_get_widget (editor->gui, "entry-company"); g_signal_connect (widget, "changed", G_CALLBACK (company_entry_changed), editor); } @@ -2991,7 +3013,7 @@ save_contact (EContactEditor *ce, gboolean should_close) } entry_fullname = glade_xml_get_widget (ce->gui, "entry-fullname" ); - entry_file_as = glade_xml_get_widget (ce->gui, "entry-file-as"); + entry_file_as = gtk_bin_get_child (GTK_BIN (glade_xml_get_widget (ce->gui, "combo-file-as"))); company_name = glade_xml_get_widget (ce->gui, "entry-company"); name_entry_string = gtk_entry_get_text (GTK_ENTRY (entry_fullname)); file_as_entry_string = gtk_entry_get_text (GTK_ENTRY (entry_file_as)); diff --git a/addressbook/gui/contact-editor/fullname.glade b/addressbook/gui/contact-editor/fullname.glade index 2271304017..6520dfa472 100644 --- a/addressbook/gui/contact-editor/fullname.glade +++ b/addressbook/gui/contact-editor/fullname.glade @@ -15,6 +15,8 @@ <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">False</property> <property name="has_separator">False</property> <child internal-child="vbox"> @@ -73,420 +75,6 @@ <property name="column_spacing">6</property> <child> - <widget class="GtkCombo" id="combo-title"> - <property name="visible">True</property> - <property name="value_in_list">False</property> - <property name="allow_empty">True</property> - <property name="case_sensitive">False</property> - <property name="enable_arrow_keys">True</property> - <property name="enable_arrows_always">False</property> - <accessibility> - <atkrelation target="label-title" type="labelled-by"/> - </accessibility> - - <child internal-child="entry"> - <widget class="GtkEntry" id="entry-title"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - </widget> - </child> - - <child internal-child="list"> - <widget class="GtkList" id="convertwidget1"> - <property name="visible">True</property> - <property name="selection_mode">GTK_SELECTION_BROWSE</property> - - <child> - <widget class="GtkListItem" id="convertwidget2"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget3"> - <property name="visible">True</property> - <property name="label" translatable="yes"></property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget4"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget5"> - <property name="visible">True</property> - <property name="label" translatable="yes">Mr.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget6"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget7"> - <property name="visible">True</property> - <property name="label" translatable="yes">Mrs.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget8"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget9"> - <property name="visible">True</property> - <property name="label" translatable="yes">Ms.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget10"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget11"> - <property name="visible">True</property> - <property name="label" translatable="yes">Miss</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget12"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget13"> - <property name="visible">True</property> - <property name="label" translatable="yes">Dr.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget14"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget15"> - <property name="visible">True</property> - <property name="label" translatable="yes"></property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkCombo" id="combo-suffix"> - <property name="visible">True</property> - <property name="value_in_list">False</property> - <property name="allow_empty">True</property> - <property name="case_sensitive">False</property> - <property name="enable_arrow_keys">True</property> - <property name="enable_arrows_always">False</property> - <accessibility> - <atkrelation target="label-suffix" type="labelled-by"/> - </accessibility> - - <child internal-child="entry"> - <widget class="GtkEntry" id="entry-suffix"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - </widget> - </child> - - <child internal-child="list"> - <widget class="GtkList" id="convertwidget16"> - <property name="visible">True</property> - <property name="selection_mode">GTK_SELECTION_BROWSE</property> - - <child> - <widget class="GtkListItem" id="convertwidget17"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget18"> - <property name="visible">True</property> - <property name="label" translatable="yes"></property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget19"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget20"> - <property name="visible">True</property> - <property name="label" translatable="yes">Sr.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget21"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget22"> - <property name="visible">True</property> - <property name="label" translatable="yes">Jr.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget23"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget24"> - <property name="visible">True</property> - <property name="label" translatable="yes">I</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget25"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget26"> - <property name="visible">True</property> - <property name="label" translatable="yes">II</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget27"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget28"> - <property name="visible">True</property> - <property name="label" translatable="yes">III</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget29"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget30"> - <property name="visible">True</property> - <property name="label" translatable="yes">Esq.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkListItem" id="convertwidget31"> - <property name="visible">True</property> - - <child> - <widget class="GtkLabel" id="convertwidget32"> - <property name="visible">True</property> - <property name="label" translatable="yes"></property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> - <property name="y_options"></property> - </packing> - </child> - - <child> <widget class="GtkEntry" id="entry-first"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -563,6 +151,10 @@ <property name="xpad">0</property> <property name="ypad">0</property> <property name="mnemonic_widget">entry-first</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> @@ -587,7 +179,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> - <property name="mnemonic_widget">entry-title</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> @@ -613,6 +208,10 @@ <property name="xpad">0</property> <property name="ypad">0</property> <property name="mnemonic_widget">entry-middle</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> @@ -638,6 +237,10 @@ <property name="xpad">0</property> <property name="ypad">0</property> <property name="mnemonic_widget">entry-last</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> @@ -662,7 +265,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> - <property name="mnemonic_widget">entry-suffix</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> @@ -673,6 +279,53 @@ <property name="y_options">fill</property> </packing> </child> + + <child> + <widget class="GtkComboBoxEntry" id="comboentry-title"> + <property name="visible">True</property> + <property name="items" translatable="yes"> +Mr. +Mrs. +Ms. +Miss +Dr.</property> + <property name="add_tearoffs">False</property> + <property name="has_frame">True</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBoxEntry" id="comboentry-suffix"> + <property name="visible">True</property> + <property name="items" translatable="yes"> +Sr. +Jr. +I +II +III +Esq.</property> + <property name="add_tearoffs">False</property> + <property name="has_frame">True</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> </widget> <packing> <property name="padding">0</property> |