diff options
author | Federico Mena Quintero <federico@helixcode.com> | 2000-06-09 01:12:12 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2000-06-09 01:12:12 +0800 |
commit | 227fab86efce103776af0364cbfd3f1959f9d269 (patch) | |
tree | 195524b2ea72d5b012ca9345a3f164000b09b61c /addressbook/gui | |
parent | 1396db5dc3fd395059d4bbe6cd0d8422110d0b81 (diff) | |
download | gsoc2013-evolution-227fab86efce103776af0364cbfd3f1959f9d269.tar.gz gsoc2013-evolution-227fab86efce103776af0364cbfd3f1959f9d269.tar.zst gsoc2013-evolution-227fab86efce103776af0364cbfd3f1959f9d269.zip |
Now this derives from GtkObject. It follows the same strategy as the
2000-06-08 Federico Mena Quintero <federico@helixcode.com>
* contact-editor/e-contact-editor.h (EContactEditor): Now this
derives from GtkObject. It follows the same strategy as the
EventEditor in the calendar.
(EContactEditor): Added an is_new_card field so that we can know
whether to add() or commit() the card.
* contact-editor/e-contact-editor.c (e_contact_editor_get_type):
Derive from GtkObject.
(e_contact_editor_class_init): Likewise.
(e_contact_editor_class_init): Added an "is_new_card" argument.
(e_contact_editor_set_arg): Handle ARG_IS_NEW_CARD.
(e_contact_editor_get_arg): Likewise.
(e_contact_editor_new): Take in an is_new_arg argument and set it
on the object.
(e_contact_editor_init): Load the app widget into the app field of
the EContactEditor structure. Create its UIHandler as well.
(e_contact_editor_class_init): New "add_card", "commit_card", and
"editor_closed" signals.
* contact-editor/test-editor.c (main): Modified for the new API.
(editor_closed_cb): Tweaked for the new API.
Since this test program does not use Bonobo, it doesn't work,
though.
* gui/component/addressbook.c (new_contact_cb): Use the new
contact editor API.
(table_double_click): Ditto.
* gui/minicard/e-minicard-view.c (e_minicard_view_event): Use the
new contact editor API.
* gui/minicard/e-minicard.c (e_minicard_event): Use the new
contact editor API.
svn path=/trunk/; revision=3479
Diffstat (limited to 'addressbook/gui')
-rw-r--r-- | addressbook/gui/component/addressbook.c | 114 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/contact-editor.glade | 3978 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor-strings.h | 12 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.c | 423 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.h | 20 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/test-editor.c | 74 | ||||
-rw-r--r-- | addressbook/gui/minicard/e-minicard-view.c | 85 | ||||
-rw-r--r-- | addressbook/gui/minicard/e-minicard.c | 81 | ||||
-rw-r--r-- | addressbook/gui/widgets/e-minicard-view.c | 85 | ||||
-rw-r--r-- | addressbook/gui/widgets/e-minicard.c | 81 |
10 files changed, 2689 insertions, 2264 deletions
diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c index f98ec6eb51..3026aa4811 100644 --- a/addressbook/gui/component/addressbook.c +++ b/addressbook/gui/component/addressbook.c @@ -102,59 +102,62 @@ card_modified_cb (EBook* book, EBookStatus status, g_print ("%s: %s(): a card was modified\n", __FILE__, __FUNCTION__); } +/* Callback for the add_card signal from the contact editor */ +static void +add_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_add_card (book, card, card_added_cb, NULL); +} + +/* Callback for the commit_card signal from the contact editor */ +static void +commit_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_commit_card (book, card, card_modified_cb, NULL); +} + +/* Callback used when the contact editor is closed */ +static void +editor_closed_cb (EContactEditor *ce, gpointer data) +{ + gtk_object_unref (GTK_OBJECT (ce)); +} + static void new_contact_cb (BonoboUIHandler *uih, void *user_data, const char *path) { - gint result; ECard *card; - GtkWidget* contact_editor; EBook *book; + EContactEditor *ce; AddressbookView *view = (AddressbookView *) user_data; GtkObject *object; - GtkWidget* dlg = gnome_dialog_new ("Contact Editor", "Save", GNOME_STOCK_BUTTON_CANCEL, NULL); card = e_card_new(""); - contact_editor = e_contact_editor_new(card); - gtk_object_sink(GTK_OBJECT(card)); - - gtk_window_set_policy(GTK_WINDOW(dlg), FALSE, TRUE, FALSE); if (view->view) object = GTK_OBJECT(view->view); else object = GTK_OBJECT(view->model); - gtk_object_get(object, "book", &book, NULL); - + gtk_object_get(object, "book", &book, NULL); g_assert (E_IS_BOOK (book)); - gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dlg)->vbox), - contact_editor, TRUE, TRUE, 0); - - gtk_widget_show (contact_editor); - gtk_widget_show (dlg); + ce = e_contact_editor_new (card, TRUE); - gnome_dialog_close_hides (GNOME_DIALOG (dlg), TRUE); - result = gnome_dialog_run_and_close (GNOME_DIALOG (dlg)); + gtk_signal_connect (GTK_OBJECT (ce), "add_card", + GTK_SIGNAL_FUNC (add_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "commit_card", + GTK_SIGNAL_FUNC (commit_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); - - /* If the user clicks "okay"...*/ - if (result == 0) { - ECard *card; - g_assert (contact_editor); - g_assert (GTK_IS_OBJECT (contact_editor)); - gtk_object_get(GTK_OBJECT(contact_editor), - "card", &card, - NULL); - - /* Add the card in the contact editor to our ebook */ - e_book_add_card ( - book, - card, - card_added_cb, - NULL); - } - + gtk_object_sink(GTK_OBJECT(card)); } static void @@ -813,15 +816,8 @@ static void table_double_click(ETable *table, gint row, AddressbookView *view) { ECard *card = e_addressbook_model_get_card(E_ADDRESSBOOK_MODEL(view->model), row); - gint result; - GtkWidget* contact_editor; EBook *book; - GtkWidget* dlg = gnome_dialog_new ("Contact Editor", "Save", GNOME_STOCK_BUTTON_CANCEL, NULL); - - contact_editor = e_contact_editor_new(card); - gtk_object_unref(GTK_OBJECT(card)); - - gtk_window_set_policy(GTK_WINDOW(dlg), FALSE, TRUE, FALSE); + EContactEditor *ce; gtk_object_get(GTK_OBJECT(view->model), "book", &book, @@ -829,34 +825,16 @@ table_double_click(ETable *table, gint row, AddressbookView *view) g_assert (E_IS_BOOK (book)); - gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dlg)->vbox), - contact_editor, TRUE, TRUE, 0); - - gtk_widget_show (contact_editor); - gtk_widget_show (dlg); + ce = e_contact_editor_new (card, FALSE); - gnome_dialog_close_hides (GNOME_DIALOG (dlg), TRUE); - result = gnome_dialog_run_and_close (GNOME_DIALOG (dlg)); + gtk_signal_connect (GTK_OBJECT (ce), "add_card", + GTK_SIGNAL_FUNC (add_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "commit_card", + GTK_SIGNAL_FUNC (commit_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); - - /* If the user clicks "okay"...*/ - if (result == 0) { - ECard *card; - g_assert (contact_editor); - g_assert (GTK_IS_OBJECT (contact_editor)); - gtk_object_get(GTK_OBJECT(contact_editor), - "card", &card, - NULL); - - /* Add the card in the contact editor to our ebook */ - e_book_commit_card ( - book, - card, - card_modified_cb, - NULL); - } - - gnome_dialog_close(GNOME_DIALOG (dlg)); + gtk_object_unref(GTK_OBJECT(card)); } static void diff --git a/addressbook/gui/contact-editor/contact-editor.glade b/addressbook/gui/contact-editor/contact-editor.glade index 21ad4fd265..7f11886b28 100644 --- a/addressbook/gui/contact-editor/contact-editor.glade +++ b/addressbook/gui/contact-editor/contact-editor.glade @@ -20,124 +20,100 @@ </project> <widget> - <class>GtkWindow</class> - <name>contact editor</name> + <class>GnomeDialog</class> + <name>dialog2</name> + <border_width>2</border_width> <visible>False</visible> - <title>Contact Editor</title> <type>GTK_WINDOW_TOPLEVEL</type> <position>GTK_WIN_POS_NONE</position> <modal>False</modal> <allow_shrink>False</allow_shrink> - <allow_grow>True</allow_grow> + <allow_grow>False</allow_grow> <auto_shrink>False</auto_shrink> + <auto_close>False</auto_close> + <hide_on_close>False</hide_on_close> <widget> - <class>GtkNotebook</class> - <name>notebook-contact-editor</name> - <can_focus>True</can_focus> - <show_tabs>True</show_tabs> - <show_border>True</show_border> - <tab_pos>GTK_POS_TOP</tab_pos> - <scrollable>False</scrollable> - <tab_hborder>2</tab_hborder> - <tab_vborder>2</tab_vborder> - <popup_enable>False</popup_enable> + <class>GtkVBox</class> + <child_name>GnomeDialog:vbox</child_name> + <name>dialog-vbox2</name> + <homogeneous>False</homogeneous> + <spacing>4</spacing> + <child> + <padding>4</padding> + <expand>True</expand> + <fill>True</fill> + </child> <widget> - <class>GtkTable</class> - <name>table-contact-editor-general</name> - <border_width>7</border_width> - <rows>14</rows> - <columns>8</columns> - <homogeneous>False</homogeneous> - <row_spacing>4</row_spacing> - <column_spacing>4</column_spacing> + <class>GtkHButtonBox</class> + <child_name>GnomeDialog:action_area</child_name> + <name>dialog-action_area2</name> + <layout_style>GTK_BUTTONBOX_END</layout_style> + <spacing>8</spacing> + <child_min_width>85</child_min_width> + <child_min_height>27</child_min_height> + <child_ipad_x>7</child_ipad_x> + <child_ipad_y>0</child_ipad_y> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + <pack>GTK_PACK_END</pack> + </child> <widget> - <class>GtkEntry</class> - <name>entry-phone1</name> + <class>GtkButton</class> + <name>button28</name> + <can_default>True</can_default> <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>7</left_attach> - <right_attach>8</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> + <stock_button>GNOME_STOCK_BUTTON_OK</stock_button> </widget> <widget> - <class>GtkEntry</class> - <name>entry-phone2</name> + <class>GtkButton</class> + <name>button29</name> + <can_default>True</can_default> <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>7</left_attach> - <right_attach>8</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> + <stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button> </widget> <widget> - <class>GtkEntry</class> - <name>entry-phone3</name> + <class>GtkButton</class> + <name>button30</name> + <can_default>True</can_default> <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>7</left_attach> - <right_attach>8</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> + <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> </widget> + </widget> + + <widget> + <class>GtkTable</class> + <name>table2</name> + <rows>2</rows> + <columns>2</columns> + <homogeneous>False</homogeneous> + <row_spacing>0</row_spacing> + <column_spacing>2</column_spacing> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> <widget> <class>GtkEntry</class> - <name>entry-phone4</name> + <name>entry2</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> <text_max_length>0</text_max_length> <text></text> <child> - <left_attach>7</left_attach> - <right_attach>8</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> + <left_attach>0</left_attach> + <right_attach>2</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> <xexpand>True</xexpand> @@ -150,150 +126,19 @@ </widget> <widget> - <class>GtkText</class> - <name>text-address</name> - <width>1</width> - <height>1</height> - <can_focus>True</can_focus> - <editable>True</editable> - <text></text> - <child> - <left_attach>7</left_attach> - <right_attach>8</right_attach> - <top_attach>5</top_attach> - <bottom_attach>9</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>GtkButton</class> - <name>button-fullname</name> - <can_focus>True</can_focus> - <label>_Full Name...</label> + <class>GtkVBox</class> + <name>vbox1</name> + <homogeneous>False</homogeneous> + <spacing>2</spacing> <child> <left_attach>1</left_attach> - <right_attach>3</right_attach> + <right_attach>2</right_attach> <top_attach>0</top_attach> <bottom_attach>1</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>GtkAccelLabel</class> - <name>accellabel-fileas</name> - <label>File As:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>3</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>GtkAccelLabel</class> - <name>accellabel-web</name> - <label>Web page address:</label> - <justify>GTK_JUSTIFY_LEFT</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>3</right_attach> - <top_attach>8</top_attach> - <bottom_attach>9</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>GtkAlignment</class> - <name>alignment3</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>1</yscale> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - - <widget> - <class>GtkButton</class> - <name>button-email1</name> - - <widget> - <class>Placeholder</class> - </widget> - </widget> - </widget> - - <widget> - <class>GtkAlignment</class> - <name>alignment5</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>0</yscale> - <child> - <left_attach>6</left_attach> - <right_attach>7</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> + <yexpand>True</yexpand> <xshrink>False</xshrink> <yshrink>False</yshrink> <xfill>True</xfill> @@ -302,62 +147,48 @@ <widget> <class>GtkButton</class> - <name>button-phone4</name> - - <widget> - <class>Placeholder</class> - </widget> + <name>button31</name> + <border_width>2</border_width> + <can_focus>True</can_focus> + <label>_Add</label> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> </widget> - </widget> - - <widget> - <class>GtkAlignment</class> - <name>alignment7</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>0</yscale> - <child> - <left_attach>6</left_attach> - <right_attach>7</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> <widget> <class>GtkButton</class> - <name>button-phone2</name> - - <widget> - <class>Placeholder</class> - </widget> + <name>button32</name> + <border_width>2</border_width> + <can_focus>True</can_focus> + <label>_Delete</label> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> </widget> </widget> <widget> - <class>GtkAlignment</class> - <name>alignment8</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>0</yscale> + <class>GtkScrolledWindow</class> + <name>scrolledwindow1</name> + <height>200</height> + <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy> + <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> + <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> + <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> <child> - <left_attach>6</left_attach> - <right_attach>7</right_attach> + <left_attach>0</left_attach> + <right_attach>1</right_attach> <top_attach>0</top_attach> <bottom_attach>1</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> + <xexpand>True</xexpand> + <yexpand>True</yexpand> <xshrink>False</xshrink> <yshrink>False</yshrink> <xfill>True</xfill> @@ -365,1940 +196,2135 @@ </child> <widget> - <class>GtkButton</class> - <name>button-phone1</name> + <class>GtkCList</class> + <name>clist1</name> + <can_focus>True</can_focus> + <columns>1</columns> + <column_widths>80</column_widths> + <selection_mode>GTK_SELECTION_SINGLE</selection_mode> + <show_titles>True</show_titles> + <shadow_type>GTK_SHADOW_NONE</shadow_type> <widget> - <class>Placeholder</class> + <class>GtkLabel</class> + <child_name>CList:title</child_name> + <name>label20</name> + <label>Phone Types</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> </widget> </widget> </widget> + </widget> + </widget> +</widget> - <widget> - <class>GtkHSeparator</class> - <name>hseparator4</name> - <child> - <left_attach>4</left_attach> - <right_attach>8</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>2</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> - - <widget> - <class>GtkAlignment</class> - <name>alignment6</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>0</yscale> - <child> - <left_attach>6</left_attach> - <right_attach>7</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> +<widget> + <class>GnomeDialog</class> + <name>dialog-add-phone</name> + <visible>False</visible> + <title>New phone type</title> + <type>GTK_WINDOW_TOPLEVEL</type> + <position>GTK_WIN_POS_NONE</position> + <modal>False</modal> + <allow_shrink>False</allow_shrink> + <allow_grow>False</allow_grow> + <auto_shrink>False</auto_shrink> + <auto_close>False</auto_close> + <hide_on_close>False</hide_on_close> - <widget> - <class>GtkButton</class> - <name>button-phone3</name> + <widget> + <class>GtkVBox</class> + <child_name>GnomeDialog:vbox</child_name> + <name>vbox2</name> + <homogeneous>False</homogeneous> + <spacing>8</spacing> + <child> + <padding>4</padding> + <expand>True</expand> + <fill>True</fill> + </child> - <widget> - <class>Placeholder</class> - </widget> - </widget> - </widget> + <widget> + <class>GtkHButtonBox</class> + <child_name>GnomeDialog:action_area</child_name> + <name>hbuttonbox1</name> + <layout_style>GTK_BUTTONBOX_END</layout_style> + <spacing>8</spacing> + <child_min_width>85</child_min_width> + <child_min_height>27</child_min_height> + <child_ipad_x>7</child_ipad_x> + <child_ipad_y>0</child_ipad_y> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + <pack>GTK_PACK_END</pack> + </child> <widget> - <class>GtkEntry</class> - <name>entry-fullname</name> + <class>GtkButton</class> + <name>button43</name> + <can_default>True</can_default> <has_default>True</has_default> <can_focus>True</can_focus> - <has_focus>True</has_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> + <label>Add</label> + <stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap> </widget> <widget> - <class>GtkEntry</class> - <name>entry-jobtitle</name> + <class>GtkButton</class> + <name>button44</name> + <can_default>True</can_default> <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> + <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> </widget> + </widget> - <widget> - <class>GtkEntry</class> - <name>entry-company</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkFrame</class> + <name>frame-add-phone</name> + <border_width>4</border_width> + <label>New phone type</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> <widget> - <class>GtkEntry</class> - <name>entry-email1</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <class>GtkAlignment</class> + <name>alignment9</name> + <border_width>9</border_width> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xscale>1</xscale> + <yscale>1</yscale> - <widget> - <class>GtkEntry</class> - <name>entry-web</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>8</top_attach> - <bottom_attach>9</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> + <widget> + <class>GtkEntry</class> + <name>entry-add-phone</name> + <can_focus>True</can_focus> + <has_focus>True</has_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + </widget> </widget> + </widget> + </widget> +</widget> - <widget> - <class>GtkHSeparator</class> - <name>hseparator5</name> - <child> - <left_attach>0</left_attach> - <right_attach>4</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>2</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> +<widget> + <class>GnomeApp</class> + <name>contact editor</name> + <title>Contact Editor</title> + <type>GTK_WINDOW_TOPLEVEL</type> + <position>GTK_WIN_POS_NONE</position> + <modal>False</modal> + <allow_shrink>False</allow_shrink> + <allow_grow>True</allow_grow> + <auto_shrink>False</auto_shrink> + <enable_layout_config>True</enable_layout_config> - <widget> - <class>GtkCombo</class> - <name>combo-file-as</name> - <value_in_list>False</value_in_list> - <ok_if_empty>True</ok_if_empty> - <case_sensitive>True</case_sensitive> - <use_arrows>True</use_arrows> - <use_arrows_always>False</use_arrows_always> - <items></items> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> + <widget> + <class>GnomeDock</class> + <child_name>GnomeApp:dock</child_name> + <name>dock1</name> + <allow_floating>True</allow_floating> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkNotebook</class> + <child_name>GnomeDock:contents</child_name> + <name>notebook-contact-editor</name> + <can_focus>True</can_focus> + <show_tabs>True</show_tabs> + <show_border>True</show_border> + <tab_pos>GTK_POS_TOP</tab_pos> + <scrollable>False</scrollable> + <tab_hborder>2</tab_hborder> + <tab_vborder>2</tab_vborder> + <popup_enable>False</popup_enable> + + <widget> + <class>GtkTable</class> + <name>table-contact-editor-general</name> + <border_width>7</border_width> + <rows>14</rows> + <columns>8</columns> + <homogeneous>False</homogeneous> + <row_spacing>4</row_spacing> + <column_spacing>4</column_spacing> <widget> <class>GtkEntry</class> - <child_name>GtkCombo:entry</child_name> - <name>entry-file-as</name> + <name>entry-phone1</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> <text_max_length>0</text_max_length> <text></text> + <child> + <left_attach>7</left_attach> + <right_attach>8</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> - </widget> - <widget> - <class>GtkHSeparator</class> - <name>hseparator6</name> - <child> - <left_attach>0</left_attach> - <right_attach>4</right_attach> - <top_attach>7</top_attach> - <bottom_attach>8</bottom_attach> - <xpad>0</xpad> - <ypad>2</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkEntry</class> + <name>entry-phone2</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>7</left_attach> + <right_attach>8</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkAlignment</class> - <name>alignment10</name> - <xalign>0.5</xalign> - <yalign>0</yalign> - <xscale>1</xscale> - <yscale>1</yscale> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>6</top_attach> - <bottom_attach>7</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>True</xshrink> - <yshrink>True</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkEntry</class> + <name>entry-phone3</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>7</left_attach> + <right_attach>8</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> <widget> - <class>GtkCheckButton</class> - <name>checkbutton-htmlmail</name> - <label>Wants to receive _HTML mail</label> - <active>False</active> - <draw_indicator>True</draw_indicator> + <class>GtkEntry</class> + <name>entry-phone4</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>7</left_attach> + <right_attach>8</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> - </widget> - <widget> - <class>GtkAlignment</class> - <name>alignment4</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>0</yscale> - <child> - <left_attach>6</left_attach> - <right_attach>7</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkText</class> + <name>text-address</name> + <width>1</width> + <height>1</height> + <can_focus>True</can_focus> + <editable>True</editable> + <text></text> + <child> + <left_attach>7</left_attach> + <right_attach>8</right_attach> + <top_attach>5</top_attach> + <bottom_attach>9</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> <widget> <class>GtkButton</class> - <name>button-address</name> - - <widget> - <class>Placeholder</class> - </widget> + <name>button-fullname</name> + <can_focus>True</can_focus> + <label>_Full Name...</label> + <child> + <left_attach>1</left_attach> + <right_attach>3</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> - </widget> - - <widget> - <class>GtkLabel</class> - <name>address-label</name> - <label>Address:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>text-address</focus_target> - <child> - <left_attach>5</left_attach> - <right_attach>7</right_attach> - <top_attach>6</top_attach> - <bottom_attach>7</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>GtkEventBox</class> - <name>eventbox1</name> - <child> - <left_attach>5</left_attach> - <right_attach>6</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> <widget> - <class>GtkLabel</class> - <name>label-phone1</name> - <label>_Business</label> + <class>GtkAccelLabel</class> + <name>accellabel-fileas</name> + <label>File As:</label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> <xalign>0</xalign> <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <focus_target>entry-phone1</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>3</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> - </widget> - - <widget> - <class>GtkEventBox</class> - <name>eventbox2</name> - <child> - <left_attach>5</left_attach> - <right_attach>6</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> <widget> - <class>GtkLabel</class> - <name>label-phone2</name> - <label>_Home</label> - <justify>GTK_JUSTIFY_CENTER</justify> + <class>GtkAccelLabel</class> + <name>accellabel-web</name> + <label>Web page address:</label> + <justify>GTK_JUSTIFY_LEFT</justify> <wrap>False</wrap> <xalign>0</xalign> <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <focus_target>entry-phone2</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>3</right_attach> + <top_attach>8</top_attach> + <bottom_attach>9</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> - </widget> - - <widget> - <class>GtkEventBox</class> - <name>eventbox3</name> - <child> - <left_attach>5</left_attach> - <right_attach>6</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> <widget> - <class>GtkLabel</class> - <name>label-phone3</name> - <label>Business _Fax</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> + <class>GtkAlignment</class> + <name>alignment3</name> + <xalign>1</xalign> <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-phone3</focus_target> - </widget> - </widget> + <xscale>0</xscale> + <yscale>1</yscale> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkEventBox</class> - <name>eventbox4</name> - <child> - <left_attach>5</left_attach> - <right_attach>6</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkButton</class> + <name>button-email1</name> + + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> <widget> - <class>GtkLabel</class> - <name>label-phone4</name> - <label>_Mobile</label> - <justify>GTK_JUSTIFY_LEFT</justify> - <wrap>False</wrap> - <xalign>0</xalign> + <class>GtkAlignment</class> + <name>alignment5</name> + <xalign>1</xalign> <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-phone4</focus_target> - </widget> - </widget> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>6</left_attach> + <right_attach>7</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkEventBox</class> - <name>eventbox5</name> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkButton</class> + <name>button-phone4</name> + + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> <widget> - <class>GtkLabel</class> - <name>label-email1</name> - <label>Primary Email</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> + <class>GtkAlignment</class> + <name>alignment7</name> + <xalign>1</xalign> <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-email1</focus_target> - </widget> - </widget> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>6</left_attach> + <right_attach>7</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkEventBox</class> - <name>eventbox-business</name> - <child> - <left_attach>5</left_attach> - <right_attach>6</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkButton</class> + <name>button-phone2</name> + + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> <widget> - <class>GtkLabel</class> - <name>label-address</name> - <label>B_usiness</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> + <class>GtkAlignment</class> + <name>alignment8</name> + <xalign>1</xalign> <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>text-address</focus_target> - </widget> - </widget> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>6</left_attach> + <right_attach>7</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkAlignment</class> - <name>alignment2</name> - <xalign>0</xalign> - <yalign>0</yalign> - <xscale>0</xscale> - <yscale>0</yscale> - <child> - <left_attach>7</left_attach> - <right_attach>8</right_attach> - <top_attach>9</top_attach> - <bottom_attach>10</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkButton</class> + <name>button-phone1</name> + + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> <widget> - <class>GtkCheckButton</class> - <name>checkbutton-mailingaddress</name> - <label>_This is the mailing address</label> - <active>False</active> - <draw_indicator>True</draw_indicator> + <class>GtkHSeparator</class> + <name>hseparator4</name> + <child> + <left_attach>4</left_attach> + <right_attach>8</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> + <xpad>0</xpad> + <ypad>2</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> - </widget> - <widget> - <class>GtkHSeparator</class> - <name>hseparator9</name> - <child> - <left_attach>0</left_attach> - <right_attach>4</right_attach> - <top_attach>11</top_attach> - <bottom_attach>12</bottom_attach> - <xpad>0</xpad> - <ypad>2</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkAlignment</class> + <name>alignment6</name> + <xalign>1</xalign> + <yalign>0.5</yalign> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>6</left_attach> + <right_attach>7</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkHSeparator</class> - <name>hseparator10</name> - <child> - <left_attach>4</left_attach> - <right_attach>8</right_attach> - <top_attach>11</top_attach> - <bottom_attach>12</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkButton</class> + <name>button-phone3</name> - <widget> - <class>GtkAlignment</class> - <name>alignment12</name> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xscale>1</xscale> - <yscale>0</yscale> - <child> - <left_attach>1</left_attach> - <right_attach>3</right_attach> - <top_attach>12</top_attach> - <bottom_attach>13</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> <widget> - <class>GtkButton</class> - <name>button-contacts</name> + <class>GtkEntry</class> + <name>entry-fullname</name> + <has_default>True</has_default> <can_focus>True</can_focus> - <label>C_ontacts...</label> + <has_focus>True</has_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> - </widget> - <widget> - <class>GtkAlignment</class> - <name>alignment15</name> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xscale>1</xscale> - <yscale>0</yscale> - <child> - <left_attach>7</left_attach> - <right_attach>8</right_attach> - <top_attach>12</top_attach> - <bottom_attach>13</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkEntry</class> + <name>entry-jobtitle</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> <widget> <class>GtkEntry</class> - <name>entry-categories</name> + <name>entry-company</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> <text_max_length>0</text_max_length> <text></text> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> - </widget> - <widget> - <class>GtkAlignment</class> - <name>alignment14</name> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xscale>1</xscale> - <yscale>0</yscale> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>12</top_attach> - <bottom_attach>13</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkEntry</class> + <name>entry-email1</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> <widget> <class>GtkEntry</class> - <name>entry-contacts</name> + <name>entry-web</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> <text_max_length>0</text_max_length> <text></text> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>8</top_attach> + <bottom_attach>9</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> - </widget> - <widget> - <class>GtkAlignment</class> - <name>alignment16</name> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xscale>1</xscale> - <yscale>0</yscale> - <child> - <left_attach>5</left_attach> - <right_attach>7</right_attach> - <top_attach>12</top_attach> - <bottom_attach>13</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkHSeparator</class> + <name>hseparator5</name> + <child> + <left_attach>0</left_attach> + <right_attach>4</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> + <xpad>0</xpad> + <ypad>2</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> <widget> - <class>GtkButton</class> - <name>button-categories</name> - <can_focus>True</can_focus> - <label>Ca_tegories...</label> + <class>GtkCombo</class> + <name>combo-file-as</name> + <value_in_list>False</value_in_list> + <ok_if_empty>True</ok_if_empty> + <case_sensitive>True</case_sensitive> + <use_arrows>True</use_arrows> + <use_arrows_always>False</use_arrows_always> + <items></items> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + + <widget> + <class>GtkEntry</class> + <child_name>GtkCombo:entry</child_name> + <name>entry-file-as</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + </widget> </widget> - </widget> - <widget> - <class>GtkEventBox</class> - <name>eventbox7</name> - <child> - <left_attach>1</left_attach> - <right_attach>3</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>GtkHSeparator</class> + <name>hseparator6</name> + <child> + <left_attach>0</left_attach> + <right_attach>4</right_attach> + <top_attach>7</top_attach> + <bottom_attach>8</bottom_attach> + <xpad>0</xpad> + <ypad>2</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment10</name> + <xalign>0.5</xalign> + <yalign>0</yalign> + <xscale>1</xscale> + <yscale>1</yscale> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>6</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>True</xshrink> + <yshrink>True</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkCheckButton</class> + <name>checkbutton-htmlmail</name> + <label>Wants to receive _HTML mail</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment4</name> + <xalign>1</xalign> + <yalign>0.5</yalign> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>6</left_attach> + <right_attach>7</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkButton</class> + <name>button-address</name> + + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> <widget> <class>GtkLabel</class> - <name>label34</name> - <label>_Job title:</label> + <name>address-label</name> + <label>Address:</label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> <xalign>0</xalign> <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <focus_target>entry-jobtitle</focus_target> + <focus_target>text-address</focus_target> + <child> + <left_attach>5</left_attach> + <right_attach>7</right_attach> + <top_attach>6</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> - </widget> - <widget> - <class>Custom</class> - <name>custom1</name> - <creation_function>e_create_image_widget</creation_function> - <string1>malehead.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:19:47 GMT</last_modification_time> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>0</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkEventBox</class> + <name>eventbox1</name> + <child> + <left_attach>5</left_attach> + <right_attach>6</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>Custom</class> - <name>custom2</name> - <creation_function>e_create_image_widget</creation_function> - <string1>cellphone.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:20:02 GMT</last_modification_time> - <child> - <left_attach>4</left_attach> - <right_attach>5</right_attach> - <top_attach>0</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkLabel</class> + <name>label-phone1</name> + <label>_Business</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <focus_target>entry-phone1</focus_target> + </widget> + </widget> - <widget> - <class>Custom</class> - <name>custom3</name> - <creation_function>e_create_image_widget</creation_function> - <string1>envelope.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:19:51 GMT</last_modification_time> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>5</top_attach> - <bottom_attach>7</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkEventBox</class> + <name>eventbox2</name> + <child> + <left_attach>5</left_attach> + <right_attach>6</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>Custom</class> - <name>custom4</name> - <creation_function>e_create_image_widget</creation_function> - <string1>house.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:20:06 GMT</last_modification_time> - <child> - <left_attach>4</left_attach> - <right_attach>5</right_attach> - <top_attach>5</top_attach> - <bottom_attach>10</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkLabel</class> + <name>label-phone2</name> + <label>_Home</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <focus_target>entry-phone2</focus_target> + </widget> + </widget> - <widget> - <class>Custom</class> - <name>custom5</name> - <creation_function>e_create_image_widget</creation_function> - <string1>evolution-contacts.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:19:59 GMT</last_modification_time> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>12</top_attach> - <bottom_attach>14</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkEventBox</class> + <name>eventbox3</name> + <child> + <left_attach>5</left_attach> + <right_attach>6</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>Custom</class> - <name>custom6</name> - <creation_function>e_create_image_widget</creation_function> - <string1>briefcase.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:20:09 GMT</last_modification_time> - <child> - <left_attach>4</left_attach> - <right_attach>5</right_attach> - <top_attach>12</top_attach> - <bottom_attach>14</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkLabel</class> + <name>label-phone3</name> + <label>Business _Fax</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <focus_target>entry-phone3</focus_target> + </widget> + </widget> - <widget> - <class>Custom</class> - <name>custom10</name> - <creation_function>e_create_image_widget</creation_function> - <string1>globe.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:19:56 GMT</last_modification_time> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>8</top_attach> - <bottom_attach>10</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkEventBox</class> + <name>eventbox4</name> + <child> + <left_attach>5</left_attach> + <right_attach>6</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkLabel</class> - <name>label35</name> - <label>_Company:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-company</focus_target> - <child> - <left_attach>1</left_attach> - <right_attach>3</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - </widget> + <widget> + <class>GtkLabel</class> + <name>label-phone4</name> + <label>_Mobile</label> + <justify>GTK_JUSTIFY_LEFT</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <focus_target>entry-phone4</focus_target> + </widget> + </widget> - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label15</name> - <label>General</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> + <widget> + <class>GtkEventBox</class> + <name>eventbox5</name> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkTable</class> - <name>table-contact-editor-details</name> - <border_width>7</border_width> - <rows>9</rows> - <columns>6</columns> - <homogeneous>False</homogeneous> - <row_spacing>4</row_spacing> - <column_spacing>4</column_spacing> + <widget> + <class>GtkLabel</class> + <name>label-email1</name> + <label>Primary Email</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <focus_target>entry-email1</focus_target> + </widget> + </widget> - <widget> - <class>GtkLabel</class> - <name>label21</name> - <label>_Department:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-department</focus_target> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkEventBox</class> + <name>eventbox-business</name> + <child> + <left_attach>5</left_attach> + <right_attach>6</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkLabel</class> - <name>label22</name> - <label>_Office:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-office</focus_target> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkLabel</class> + <name>label-address</name> + <label>B_usiness</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <focus_target>text-address</focus_target> + </widget> + </widget> - <widget> - <class>GtkLabel</class> - <name>label23</name> - <label>_Profession:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-profession</focus_target> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkAlignment</class> + <name>alignment2</name> + <xalign>0</xalign> + <yalign>0</yalign> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>7</left_attach> + <right_attach>8</right_attach> + <top_attach>9</top_attach> + <bottom_attach>10</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkLabel</class> - <name>label24</name> - <label>_Nickname:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-nickname</focus_target> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>checkbutton-mailingaddress</name> + <label>_This is the mailing address</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + </widget> + </widget> - <widget> - <class>GtkLabel</class> - <name>label25</name> - <label>_Spouse:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-spouse</focus_target> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkHSeparator</class> + <name>hseparator9</name> + <child> + <left_attach>0</left_attach> + <right_attach>4</right_attach> + <top_attach>11</top_attach> + <bottom_attach>12</bottom_attach> + <xpad>0</xpad> + <ypad>2</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkLabel</class> - <name>label31</name> - <label>_Birthday:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkHSeparator</class> + <name>hseparator10</name> + <child> + <left_attach>4</left_attach> + <right_attach>8</right_attach> + <top_attach>11</top_attach> + <bottom_attach>12</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkLabel</class> - <name>label30</name> - <label>_Assistant's name:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-assistant</focus_target> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <widget> + <class>GtkAlignment</class> + <name>alignment12</name> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xscale>1</xscale> + <yscale>0</yscale> + <child> + <left_attach>1</left_attach> + <right_attach>3</right_attach> + <top_attach>12</top_attach> + <bottom_attach>13</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> - <widget> - <class>GtkLabel</class> - <name>label29</name> - <label>_Manager's Name:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <focus_target>entry-manager</focus_target> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> + <widget> + <class>GtkButton</class> + <name>button-contacts</name> + <can_focus>True</can_focus> + <label>C_ontacts...</label> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment15</name> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xscale>1</xscale> + <yscale>0</yscale> + <child> + <left_attach>7</left_attach> + <right_attach>8</right_attach> + <top_attach>12</top_attach> + <bottom_attach>13</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkEntry</class> + <name>entry-categories</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment14</name> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xscale>1</xscale> + <yscale>0</yscale> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>12</top_attach> + <bottom_attach>13</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkEntry</class> + <name>entry-contacts</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment16</name> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xscale>1</xscale> + <yscale>0</yscale> + <child> + <left_attach>5</left_attach> + <right_attach>7</right_attach> + <top_attach>12</top_attach> + <bottom_attach>13</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkButton</class> + <name>button-categories</name> + <can_focus>True</can_focus> + <label>Ca_tegories...</label> + </widget> + </widget> + + <widget> + <class>GtkEventBox</class> + <name>eventbox7</name> + <child> + <left_attach>1</left_attach> + <right_attach>3</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkLabel</class> + <name>label34</name> + <label>_Job title:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <focus_target>entry-jobtitle</focus_target> + </widget> + </widget> + + <widget> + <class>Custom</class> + <name>custom1</name> + <creation_function>e_create_image_widget</creation_function> + <string1>malehead.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:19:47 GMT</last_modification_time> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>0</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>Custom</class> + <name>custom2</name> + <creation_function>e_create_image_widget</creation_function> + <string1>cellphone.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:20:02 GMT</last_modification_time> + <child> + <left_attach>4</left_attach> + <right_attach>5</right_attach> + <top_attach>0</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>Custom</class> + <name>custom3</name> + <creation_function>e_create_image_widget</creation_function> + <string1>envelope.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:19:51 GMT</last_modification_time> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>5</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>Custom</class> + <name>custom4</name> + <creation_function>e_create_image_widget</creation_function> + <string1>house.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:20:06 GMT</last_modification_time> + <child> + <left_attach>4</left_attach> + <right_attach>5</right_attach> + <top_attach>5</top_attach> + <bottom_attach>10</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>Custom</class> + <name>custom5</name> + <creation_function>e_create_image_widget</creation_function> + <string1>evolution-contacts.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:19:59 GMT</last_modification_time> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>12</top_attach> + <bottom_attach>14</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>Custom</class> + <name>custom6</name> + <creation_function>e_create_image_widget</creation_function> + <string1>briefcase.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:20:09 GMT</last_modification_time> + <child> + <left_attach>4</left_attach> + <right_attach>5</right_attach> + <top_attach>12</top_attach> + <bottom_attach>14</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>Custom</class> + <name>custom10</name> + <creation_function>e_create_image_widget</creation_function> + <string1>globe.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:19:56 GMT</last_modification_time> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>8</top_attach> + <bottom_attach>10</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> + + <widget> + <class>GtkLabel</class> + <name>label35</name> + <label>_Company:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <focus_target>entry-company</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>3</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> </widget> <widget> <class>GtkLabel</class> - <name>label32</name> - <label>Anni_versary:</label> + <child_name>Notebook:tab</child_name> + <name>label15</name> + <label>General</label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> - <xalign>0</xalign> + <xalign>0.5</xalign> <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>GtkEntry</class> - <name>entry-spouse</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> - - <widget> - <class>GtkEntry</class> - <name>entry-department</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> - - <widget> - <class>GtkEntry</class> - <name>entry-office</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> - - <widget> - <class>GtkEntry</class> - <name>entry-profession</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> </widget> <widget> - <class>GtkEntry</class> - <name>entry-nickname</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <class>GtkTable</class> + <name>table-contact-editor-details</name> + <border_width>7</border_width> + <rows>9</rows> + <columns>6</columns> + <homogeneous>False</homogeneous> + <row_spacing>4</row_spacing> + <column_spacing>4</column_spacing> - <widget> - <class>GnomeDateEdit</class> - <name>dateedit-anniversary</name> - <show_time>False</show_time> - <use_24_format>False</use_24_format> - <week_start_monday>False</week_start_monday> - <lower_hour>7</lower_hour> - <upper_hour>19</upper_hour> - <child> - <left_attach>4</left_attach> - <right_attach>6</right_attach> - <top_attach>5</top_attach> - <bottom_attach>6</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label21</name> + <label>_Department:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <focus_target>entry-department</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GnomeDateEdit</class> - <name>dateedit-birthday</name> - <show_time>False</show_time> - <use_24_format>False</use_24_format> - <week_start_monday>False</week_start_monday> - <lower_hour>7</lower_hour> - <upper_hour>19</upper_hour> - <child> - <left_attach>4</left_attach> - <right_attach>6</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label22</name> + <label>_Office:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <focus_target>entry-office</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkEntry</class> - <name>entry-assistant</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>4</left_attach> - <right_attach>6</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label23</name> + <label>_Profession:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <focus_target>entry-profession</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkEntry</class> - <name>entry-manager</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>4</left_attach> - <right_attach>6</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label24</name> + <label>_Nickname:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> - - <widget> - <class>GtkHSeparator</class> - <name>hseparator7</name> - <child> - <left_attach>0</left_attach> - <right_attach>6</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>2</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <focus_target>entry-nickname</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkLabel</class> - <name>label33</name> - <label>No_tes:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>7</top_attach> - <bottom_attach>8</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label25</name> + <label>_Spouse:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <focus_target>entry-spouse</focus_target> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkHSeparator</class> - <name>hseparator8</name> - <child> - <left_attach>0</left_attach> - <right_attach>6</right_attach> - <top_attach>6</top_attach> - <bottom_attach>7</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label31</name> + <label>_Birthday:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>Custom</class> - <name>custom7</name> - <creation_function>e_create_image_widget</creation_function> - <string1>briefcase.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:20:13 GMT</last_modification_time> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>0</top_attach> - <bottom_attach>2</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label30</name> + <label>_Assistant's name:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <focus_target>entry-assistant</focus_target> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>Custom</class> - <name>custom8</name> - <creation_function>e_create_image_widget</creation_function> - <string1>malehead.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:20:16 GMT</last_modification_time> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>4</top_attach> - <bottom_attach>6</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label29</name> + <label>_Manager's Name:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <focus_target>entry-manager</focus_target> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkScrolledWindow</class> - <name>scrolledwindow2</name> - <hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy> - <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy> - <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> - <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> - <child> - <left_attach>1</left_attach> - <right_attach>6</right_attach> - <top_attach>8</top_attach> - <bottom_attach>9</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label32</name> + <label>Anni_versary:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> <widget> - <class>GtkText</class> - <name>text-comments</name> + <class>GtkEntry</class> + <name>entry-spouse</name> <can_focus>True</can_focus> <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> <text></text> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> - </widget> - - <widget> - <class>Custom</class> - <name>custom9</name> - <creation_function>e_create_image_widget</creation_function> - <string1>globe.png</string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Thu, 18 May 2000 12:20:19 GMT</last_modification_time> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>7</top_attach> - <bottom_attach>9</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - </widget> - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label16</name> - <label>Details</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> - </widget> -</widget> + <widget> + <class>GtkEntry</class> + <name>entry-department</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> -<widget> - <class>GnomeDialog</class> - <name>dialog2</name> - <border_width>2</border_width> - <visible>False</visible> - <type>GTK_WINDOW_TOPLEVEL</type> - <position>GTK_WIN_POS_NONE</position> - <modal>False</modal> - <allow_shrink>False</allow_shrink> - <allow_grow>False</allow_grow> - <auto_shrink>False</auto_shrink> - <auto_close>False</auto_close> - <hide_on_close>False</hide_on_close> + <widget> + <class>GtkEntry</class> + <name>entry-office</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkVBox</class> - <child_name>GnomeDialog:vbox</child_name> - <name>dialog-vbox2</name> - <homogeneous>False</homogeneous> - <spacing>4</spacing> - <child> - <padding>4</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <widget> + <class>GtkEntry</class> + <name>entry-profession</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkHButtonBox</class> - <child_name>GnomeDialog:action_area</child_name> - <name>dialog-action_area2</name> - <layout_style>GTK_BUTTONBOX_END</layout_style> - <spacing>8</spacing> - <child_min_width>85</child_min_width> - <child_min_height>27</child_min_height> - <child_ipad_x>7</child_ipad_x> - <child_ipad_y>0</child_ipad_y> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - <pack>GTK_PACK_END</pack> - </child> + <widget> + <class>GtkEntry</class> + <name>entry-nickname</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkButton</class> - <name>button28</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_OK</stock_button> - </widget> + <widget> + <class>GnomeDateEdit</class> + <name>dateedit-anniversary</name> + <show_time>False</show_time> + <use_24_format>False</use_24_format> + <week_start_monday>False</week_start_monday> + <lower_hour>7</lower_hour> + <upper_hour>19</upper_hour> + <child> + <left_attach>4</left_attach> + <right_attach>6</right_attach> + <top_attach>5</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkButton</class> - <name>button29</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button> - </widget> + <widget> + <class>GnomeDateEdit</class> + <name>dateedit-birthday</name> + <show_time>False</show_time> + <use_24_format>False</use_24_format> + <week_start_monday>False</week_start_monday> + <lower_hour>7</lower_hour> + <upper_hour>19</upper_hour> + <child> + <left_attach>4</left_attach> + <right_attach>6</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkButton</class> - <name>button30</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> - </widget> - </widget> + <widget> + <class>GtkEntry</class> + <name>entry-assistant</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>4</left_attach> + <right_attach>6</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkTable</class> - <name>table2</name> - <rows>2</rows> - <columns>2</columns> - <homogeneous>False</homogeneous> - <row_spacing>0</row_spacing> - <column_spacing>2</column_spacing> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <widget> + <class>GtkEntry</class> + <name>entry-manager</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>4</left_attach> + <right_attach>6</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkEntry</class> - <name>entry2</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <left_attach>0</left_attach> - <right_attach>2</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkHSeparator</class> + <name>hseparator7</name> + <child> + <left_attach>0</left_attach> + <right_attach>6</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>2</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkVBox</class> - <name>vbox1</name> - <homogeneous>False</homogeneous> - <spacing>2</spacing> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> + <widget> + <class>GtkLabel</class> + <name>label33</name> + <label>No_tes:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> <xpad>0</xpad> <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>7</top_attach> + <bottom_attach>8</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> <widget> - <class>GtkButton</class> - <name>button31</name> - <border_width>2</border_width> - <can_focus>True</can_focus> - <label>_Add</label> + <class>GtkHSeparator</class> + <name>hseparator8</name> <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> + <left_attach>0</left_attach> + <right_attach>6</right_attach> + <top_attach>6</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> </child> </widget> <widget> - <class>GtkButton</class> - <name>button32</name> - <border_width>2</border_width> - <can_focus>True</can_focus> - <label>_Delete</label> + <class>Custom</class> + <name>custom7</name> + <creation_function>e_create_image_widget</creation_function> + <string1>briefcase.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:20:13 GMT</last_modification_time> <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>0</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> </child> </widget> - </widget> - <widget> - <class>GtkScrolledWindow</class> - <name>scrolledwindow1</name> - <height>200</height> - <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy> - <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> - <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> - <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <widget> + <class>Custom</class> + <name>custom8</name> + <creation_function>e_create_image_widget</creation_function> + <string1>malehead.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:20:16 GMT</last_modification_time> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>4</top_attach> + <bottom_attach>6</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> <widget> - <class>GtkCList</class> - <name>clist1</name> - <can_focus>True</can_focus> - <columns>1</columns> - <column_widths>80</column_widths> - <selection_mode>GTK_SELECTION_SINGLE</selection_mode> - <show_titles>True</show_titles> - <shadow_type>GTK_SHADOW_NONE</shadow_type> + <class>GtkScrolledWindow</class> + <name>scrolledwindow2</name> + <hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy> + <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy> + <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> + <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> + <child> + <left_attach>1</left_attach> + <right_attach>6</right_attach> + <top_attach>8</top_attach> + <bottom_attach>9</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>True</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> <widget> - <class>GtkLabel</class> - <child_name>CList:title</child_name> - <name>label20</name> - <label>Phone Types</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> + <class>GtkText</class> + <name>text-comments</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text></text> + </widget> + </widget> + + <widget> + <class>Custom</class> + <name>custom9</name> + <creation_function>e_create_image_widget</creation_function> + <string1>globe.png</string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Thu, 18 May 2000 12:20:19 GMT</last_modification_time> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>7</top_attach> + <bottom_attach>9</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - </widget> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> </widget> + + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label16</name> + <label>Details</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + </widget> </widget> </widget> -</widget> - -<widget> - <class>GnomeDialog</class> - <name>dialog-add-phone</name> - <visible>False</visible> - <title>New phone type</title> - <type>GTK_WINDOW_TOPLEVEL</type> - <position>GTK_WIN_POS_NONE</position> - <modal>False</modal> - <allow_shrink>False</allow_shrink> - <allow_grow>False</allow_grow> - <auto_shrink>False</auto_shrink> - <auto_close>False</auto_close> - <hide_on_close>False</hide_on_close> <widget> - <class>GtkVBox</class> - <child_name>GnomeDialog:vbox</child_name> - <name>vbox2</name> - <homogeneous>False</homogeneous> - <spacing>8</spacing> + <class>GnomeAppBar</class> + <child_name>GnomeApp:appbar</child_name> + <name>appbar1</name> + <has_progress>True</has_progress> + <has_status>True</has_status> <child> - <padding>4</padding> + <padding>0</padding> <expand>True</expand> <fill>True</fill> </child> - - <widget> - <class>GtkHButtonBox</class> - <child_name>GnomeDialog:action_area</child_name> - <name>hbuttonbox1</name> - <layout_style>GTK_BUTTONBOX_END</layout_style> - <spacing>8</spacing> - <child_min_width>85</child_min_width> - <child_min_height>27</child_min_height> - <child_ipad_x>7</child_ipad_x> - <child_ipad_y>0</child_ipad_y> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - <pack>GTK_PACK_END</pack> - </child> - - <widget> - <class>GtkButton</class> - <name>button43</name> - <can_default>True</can_default> - <has_default>True</has_default> - <can_focus>True</can_focus> - <label>Add</label> - <stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap> - </widget> - - <widget> - <class>GtkButton</class> - <name>button44</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> - </widget> - </widget> - - <widget> - <class>GtkFrame</class> - <name>frame-add-phone</name> - <border_width>4</border_width> - <label>New phone type</label> - <label_xalign>0</label_xalign> - <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkAlignment</class> - <name>alignment9</name> - <border_width>9</border_width> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xscale>1</xscale> - <yscale>1</yscale> - - <widget> - <class>GtkEntry</class> - <name>entry-add-phone</name> - <can_focus>True</can_focus> - <has_focus>True</has_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - </widget> - </widget> - </widget> </widget> </widget> diff --git a/addressbook/gui/contact-editor/e-contact-editor-strings.h b/addressbook/gui/contact-editor/e-contact-editor-strings.h index d5f1983573..d5ac9daf24 100644 --- a/addressbook/gui/contact-editor/e-contact-editor-strings.h +++ b/addressbook/gui/contact-editor/e-contact-editor-strings.h @@ -4,6 +4,12 @@ * DO NOT compile it as part of your application. */ +gchar *s = N_("_Add"); +gchar *s = N_("_Delete"); +gchar *s = N_("Phone Types"); +gchar *s = N_("New phone type"); +gchar *s = N_("Add"); +gchar *s = N_("New phone type"); gchar *s = N_("Contact Editor"); gchar *s = N_("_Full Name..."); gchar *s = N_("File As:"); @@ -33,9 +39,3 @@ gchar *s = N_("_Manager's Name:"); gchar *s = N_("Anni_versary:"); gchar *s = N_("No_tes:"); gchar *s = N_("Details"); -gchar *s = N_("_Add"); -gchar *s = N_("_Delete"); -gchar *s = N_("Phone Types"); -gchar *s = N_("New phone type"); -gchar *s = N_("Add"); -gchar *s = N_("New phone type"); diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 5ca3fd753e..00cf952d8e 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -29,6 +29,14 @@ #include <gdk-pixbuf/gnome-canvas-pixbuf.h> #include <e-util/e-gui-utils.h> +/* Signal IDs */ +enum { + ADD_CARD, + COMMIT_CARD, + EDITOR_CLOSED, + LAST_SIGNAL +}; + static void e_contact_editor_init (EContactEditor *card); static void e_contact_editor_class_init (EContactEditorClass *klass); static void e_contact_editor_set_arg (GtkObject *o, GtkArg *arg, guint arg_id); @@ -47,12 +55,15 @@ static void set_fields(EContactEditor *editor); static void set_address_field(EContactEditor *editor, int result); static void add_field_callback(GtkWidget *widget, EContactEditor *editor); -static GtkVBoxClass *parent_class = NULL; +static GtkObjectClass *parent_class = NULL; + +static guint contact_editor_signals[LAST_SIGNAL]; /* The arguments we take */ enum { ARG_0, - ARG_CARD + ARG_CARD, + ARG_IS_NEW_CARD }; enum { @@ -80,7 +91,7 @@ e_contact_editor_get_type (void) (GtkClassInitFunc) NULL, }; - contact_editor_type = gtk_type_unique (gtk_vbox_get_type (), &contact_editor_info); + contact_editor_type = gtk_type_unique (GTK_TYPE_OBJECT, &contact_editor_info); } return contact_editor_type; @@ -90,15 +101,43 @@ static void e_contact_editor_class_init (EContactEditorClass *klass) { GtkObjectClass *object_class; - GtkVBoxClass *vbox_class; object_class = (GtkObjectClass*) klass; - vbox_class = (GtkVBoxClass *) klass; - parent_class = gtk_type_class (gtk_vbox_get_type ()); + parent_class = gtk_type_class (GTK_TYPE_OBJECT); gtk_object_add_arg_type ("EContactEditor::card", GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_CARD); + gtk_object_add_arg_type ("EContactEditor::is_new_card", GTK_TYPE_BOOL, + GTK_ARG_READWRITE, ARG_IS_NEW_CARD); + + contact_editor_signals[ADD_CARD] = + gtk_signal_new ("add_card", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EContactEditorClass, add_card), + gtk_marshal_NONE__OBJECT, + GTK_TYPE_NONE, 1, + GTK_TYPE_OBJECT); + + contact_editor_signals[COMMIT_CARD] = + gtk_signal_new ("commit_card", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EContactEditorClass, commit_card), + gtk_marshal_NONE__OBJECT, + GTK_TYPE_NONE, 1, + GTK_TYPE_OBJECT); + + contact_editor_signals[EDITOR_CLOSED] = + gtk_signal_new ("editor_closed", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EContactEditorClass, editor_closed), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + + gtk_object_class_add_signals (object_class, contact_editor_signals, LAST_SIGNAL); object_class->set_arg = e_contact_editor_set_arg; object_class->get_arg = e_contact_editor_get_arg; @@ -463,13 +502,328 @@ categories_clicked(GtkWidget *button, EContactEditor *editor) g_free(categories); } +/* Emits the signal to request saving a card */ +static void +save_card (EContactEditor *ce) +{ + if (ce->is_new_card) + gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[ADD_CARD], + ce->card); + else + gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[COMMIT_CARD], + ce->card); + + /* FIXME: should we set the ce->is_new_card here or have the client code + * set the "is_new_card" argument on the contact editor object? + */ + + ce->is_new_card = FALSE; +} + +/* Closes the dialog box and emits the appropriate signals */ +static void +close_dialog (EContactEditor *ce) +{ + g_assert (ce->app != NULL); + + gtk_widget_destroy (ce->app); + ce->app = NULL; + + gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[EDITOR_CLOSED]); +} + +/* Menu callbacks */ + +/* File/Save callback */ +static void +file_save_cb (GtkWidget *widget, gpointer data) +{ + EContactEditor *ce; + + ce = E_CONTACT_EDITOR (data); + save_card (ce); +} + +/* File/Close callback */ +static void +file_close_cb (GtkWidget *widget, gpointer data) +{ + EContactEditor *ce; + + ce = E_CONTACT_EDITOR (data); + close_dialog (ce); +} + +/* Menu bar */ + +static GnomeUIInfo file_new_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Appointment"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Meeting Re_quest"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Mail Message"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Contact"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Task"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Task _Request"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Journal Entry"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Note"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Ch_oose Form..."), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo file_page_setup_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Memo Style"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Define Print _Styles..."), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo file_menu[] = { + GNOMEUIINFO_MENU_NEW_SUBTREE (file_new_menu), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: S_end"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_MENU_SAVE_ITEM (file_save_cb, NULL), + GNOMEUIINFO_MENU_SAVE_AS_ITEM (NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Save Attac_hments..."), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Delete"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Move to Folder..."), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Cop_y to Folder..."), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_SUBTREE (N_("Page Set_up"), file_page_setup_menu), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Print Pre_view"), NULL, NULL), + GNOMEUIINFO_MENU_PRINT_ITEM (NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_MENU_PROPERTIES_ITEM (NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_MENU_CLOSE_ITEM (file_close_cb, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo edit_object_menu[] = { + GNOMEUIINFO_ITEM_NONE ("FIXME: what goes here?", NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo edit_menu[] = { + GNOMEUIINFO_MENU_UNDO_ITEM (NULL, NULL), + GNOMEUIINFO_MENU_REDO_ITEM (NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_MENU_CUT_ITEM (NULL, NULL), + GNOMEUIINFO_MENU_COPY_ITEM (NULL, NULL), + GNOMEUIINFO_MENU_PASTE_ITEM (NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Paste _Special..."), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_MENU_CLEAR_ITEM (NULL, NULL), + GNOMEUIINFO_MENU_SELECT_ALL_ITEM (NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Mark as U_nread"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_MENU_FIND_ITEM (NULL, NULL), + GNOMEUIINFO_MENU_FIND_AGAIN_ITEM (NULL, NULL), + GNOMEUIINFO_SUBTREE (N_("_Object"), edit_object_menu), + GNOMEUIINFO_END +}; + +static GnomeUIInfo view_previous_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Item"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Unread Item"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Fi_rst Item in Folder"), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo view_next_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Item"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Unread Item"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Last Item in Folder"), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo view_toolbars_menu[] = { + { GNOME_APP_UI_TOGGLEITEM, N_("FIXME: _Standard"), NULL, NULL, NULL, NULL, + GNOME_APP_PIXMAP_NONE, NULL, 0, 0, NULL }, + { GNOME_APP_UI_TOGGLEITEM, N_("FIXME: __Formatting"), NULL, NULL, NULL, NULL, + GNOME_APP_PIXMAP_NONE, NULL, 0, 0, NULL }, + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Customize..."), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo view_menu[] = { + GNOMEUIINFO_SUBTREE (N_("Pre_vious"), view_previous_menu), + GNOMEUIINFO_SUBTREE (N_("Ne_xt"), view_next_menu), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_SUBTREE (N_("_Toolbars"), view_toolbars_menu), + GNOMEUIINFO_END +}; + +static GnomeUIInfo insert_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _File..."), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: It_em..."), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Object..."), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo format_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Font..."), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Paragraph..."), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo tools_forms_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Ch_oose Form..."), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Desi_gn This Form"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: D_esign a Form..."), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Publish _Form..."), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Pu_blish Form As..."), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Script _Debugger"), NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo tools_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Spelling..."), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_SUBTREE (N_("_Forms"), tools_forms_menu), + GNOMEUIINFO_END +}; + +static GnomeUIInfo actions_menu[] = { + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _New Contact"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: New _Contact from Same Company"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: New _Letter to Contact"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: New _Message to Contact"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: New Meetin_g with Contact"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Plan a Meeting..."), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: New _Task for Contact"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: New _Journal Entry for Contact"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Flag for Follow Up..."), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Display Map of Address"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Open Web Page"), NULL, NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Forward as _vCard"), NULL, NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: For_ward"), NULL, NULL) +}; + +static GnomeUIInfo help_menu[] = { + GNOMEUIINFO_ITEM_NONE ("FIXME: fix Bonobo so it supports help items!", NULL, NULL), + GNOMEUIINFO_END +}; + +static GnomeUIInfo main_menu[] = { + GNOMEUIINFO_MENU_FILE_TREE (file_menu), + GNOMEUIINFO_MENU_EDIT_TREE (edit_menu), + GNOMEUIINFO_MENU_VIEW_TREE (view_menu), + GNOMEUIINFO_SUBTREE (N_("_Insert"), insert_menu), + GNOMEUIINFO_SUBTREE (N_("F_ormat"), format_menu), + GNOMEUIINFO_SUBTREE (N_("_Tools"), tools_menu), + GNOMEUIINFO_SUBTREE (N_("Actio_ns"), actions_menu), + GNOMEUIINFO_MENU_HELP_TREE (help_menu), + GNOMEUIINFO_END +}; + +/* Creates the menu bar for the contact editor */ +static void +create_menu (EContactEditor *ce) +{ + BonoboUIHandlerMenuItem *list; + + bonobo_ui_handler_create_menubar (ce->uih); + + list = bonobo_ui_handler_menu_parse_uiinfo_list_with_data (main_menu, ce); + bonobo_ui_handler_menu_add_list (ce->uih, "/", list); +} + +/* Toolbar/Save and Close callback */ +static void +tb_save_and_close_cb (GtkWidget *widget, gpointer data) +{ + EContactEditor *ce; + + ce = E_CONTACT_EDITOR (data); + save_card (ce); + close_dialog (ce); +} + +/* Toolbar */ + +static GnomeUIInfo toolbar[] = { + GNOMEUIINFO_ITEM_STOCK (N_("FIXME: Save and Close"), + N_("Save the appointment and close the dialog box"), + tb_save_and_close_cb, + GNOME_STOCK_PIXMAP_SAVE), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Print..."), + N_("Print this item"), NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Insert File..."), + N_("Insert a file as an attachment"), NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Recurrence..."), + N_("Configure recurrence rules"), NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Invite Attendees..."), + N_("Invite attendees to a meeting"), NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Delete"), + N_("Delete this item"), NULL), + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Previous"), + N_("Go to the previous item"), NULL), + GNOMEUIINFO_ITEM_NONE (N_("FIXME: Next"), + N_("Go to the next item"), NULL), + GNOMEUIINFO_ITEM_STOCK (N_("FIXME: Help"), + N_("See online help"), NULL, GNOME_STOCK_PIXMAP_HELP), + GNOMEUIINFO_END +}; + +/* Creates the toolbar for the contact editor */ +static void +create_toolbar (EContactEditor *ce) +{ + BonoboUIHandlerToolbarItem *list; + GnomeDockItem *dock_item; + GtkWidget *toolbar_child; + + bonobo_ui_handler_create_toolbar (ce->uih, "Toolbar"); + + /* Fetch the toolbar. What a pain in the ass. */ + + dock_item = gnome_app_get_dock_item_by_name (GNOME_APP (ce->app), GNOME_APP_TOOLBAR_NAME); + g_assert (dock_item != NULL); + + toolbar_child = gnome_dock_item_get_child (dock_item); + g_assert (toolbar_child != NULL && GTK_IS_TOOLBAR (toolbar_child)); + + /* Turn off labels as GtkToolbar sucks */ + gtk_toolbar_set_style (GTK_TOOLBAR (toolbar_child), GTK_TOOLBAR_ICONS); + + list = bonobo_ui_handler_toolbar_parse_uiinfo_list_with_data (toolbar, ce); + bonobo_ui_handler_toolbar_add_list (ce->uih, "/Toolbar", list); +} + +/* Callback used when the dialog box is destroyed */ +static gint +app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data) +{ + EContactEditor *ce; + + ce = E_CONTACT_EDITOR (data); + + close_dialog (ce); + return TRUE; +} + static void e_contact_editor_init (EContactEditor *e_contact_editor) { GladeXML *gui; GtkWidget *widget; - e_contact_editor->email_info = NULL; e_contact_editor->phone_info = NULL; e_contact_editor->address_info = NULL; @@ -498,15 +852,11 @@ e_contact_editor_init (EContactEditor *e_contact_editor) gui = glade_xml_new (EVOLUTION_GLADEDIR "/contact-editor.glade", NULL); e_contact_editor->gui = gui; - widget = glade_xml_get_widget(gui, "notebook-contact-editor"); - if (!widget) { - return; - } - gtk_widget_reparent(widget, - GTK_WIDGET(e_contact_editor)); + e_contact_editor->app = glade_xml_get_widget (gui, "contact editor"); - if (GTK_IS_CONTAINER(widget)) - e_container_foreach_leaf(GTK_CONTAINER(widget), (GtkCallback) add_field_callback, e_contact_editor); + e_container_foreach_leaf (GTK_CONTAINER (e_contact_editor->app), + (GtkCallback) add_field_callback, + e_contact_editor); _replace_buttons(e_contact_editor); set_entry_changed_signals(e_contact_editor); @@ -520,6 +870,24 @@ e_contact_editor_init (EContactEditor *e_contact_editor) if (widget && GTK_IS_BUTTON(widget)) gtk_signal_connect(GTK_OBJECT(widget), "clicked", categories_clicked, e_contact_editor); + + /* Build the menu and toolbar */ + + e_contact_editor->uih = bonobo_ui_handler_new (); + if (!e_contact_editor->uih) { + g_message ("e_contact_editor_init(): eeeeek, could not create the UI handler!"); + return; + } + + bonobo_ui_handler_set_app (e_contact_editor->uih, GNOME_APP (e_contact_editor->app)); + + create_menu (e_contact_editor); + create_toolbar (e_contact_editor); + + /* Connect to the deletion of the dialog */ + + gtk_signal_connect (GTK_OBJECT (e_contact_editor->app), "delete_event", + GTK_SIGNAL_FUNC (app_delete_event_cb), e_contact_editor); } void @@ -567,14 +935,20 @@ e_contact_editor_destroy (GtkObject *object) { gtk_object_unref(GTK_OBJECT(e_contact_editor->gui)); } -GtkWidget* -e_contact_editor_new (ECard *card) +EContactEditor * +e_contact_editor_new (ECard *card, gboolean is_new_card) { - GtkWidget *widget = GTK_WIDGET (gtk_type_new (e_contact_editor_get_type ())); - gtk_object_set (GTK_OBJECT(widget), + EContactEditor *ce; + + ce = E_CONTACT_EDITOR (gtk_type_new (E_CONTACT_EDITOR_TYPE)); + + gtk_object_set (GTK_OBJECT (ce), "card", card, + "is_new_card", is_new_card, NULL); - return widget; + + gtk_widget_show (ce->app); + return ce; } static void @@ -594,6 +968,10 @@ e_contact_editor_set_arg (GtkObject *o, GtkArg *arg, guint arg_id) NULL); fill_in_info(editor); break; + + case ARG_IS_NEW_CARD: + editor->is_new_card = GTK_VALUE_BOOL (*arg) ? TRUE : FALSE; + break; } } @@ -610,6 +988,11 @@ e_contact_editor_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) extract_info(e_contact_editor); GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(e_contact_editor->card); break; + + case ARG_IS_NEW_CARD: + GTK_VALUE_BOOL (*arg) = e_contact_editor->is_new_card ? TRUE : FALSE; + break; + default: arg->type = GTK_TYPE_INVALID; break; diff --git a/addressbook/gui/contact-editor/e-contact-editor.h b/addressbook/gui/contact-editor/e-contact-editor.h index 288cec1db0..8eae2bf1b5 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.h +++ b/addressbook/gui/contact-editor/e-contact-editor.h @@ -23,6 +23,7 @@ #include <gnome.h> #include <glade/glade.h> +#include <bonobo.h> #include <ebook/e-card.h> #include <ebook/e-card-simple.h> @@ -52,13 +53,17 @@ typedef struct _EContactEditorClass EContactEditorClass; struct _EContactEditor { - GtkVBox parent; + GtkObject object; /* item specific fields */ ECard *card; ECardSimple *simple; + + /* UI handler */ + BonoboUIHandler *uih; GladeXML *gui; + GtkWidget *app; GnomeUIInfo *email_info; GnomeUIInfo *phone_info; GnomeUIInfo *address_info; @@ -77,15 +82,24 @@ struct _EContactEditor ECardSimpleAddressId address_choice; GList *arbitrary_fields; + + /* Whether we are editing a new card or an existing one */ + guint is_new_card : 1; }; struct _EContactEditorClass { - GtkVBoxClass parent_class; + GtkObjectClass parent_class; + + /* Notification signals */ + + void (* add_card) (EContactEditor *ce, ECard *card); + void (* commit_card) (EContactEditor *ce, ECard *card); + void (* editor_closed) (EContactEditor *ce); }; -GtkWidget *e_contact_editor_new(ECard *card); +EContactEditor *e_contact_editor_new (ECard *card, gboolean is_new_card); GtkType e_contact_editor_get_type (void); #ifdef __cplusplus diff --git a/addressbook/gui/contact-editor/test-editor.c b/addressbook/gui/contact-editor/test-editor.c index 5b48c1a92f..80db2fe848 100644 --- a/addressbook/gui/contact-editor/test-editor.c +++ b/addressbook/gui/contact-editor/test-editor.c @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* +/* * test-editor.c * Copyright (C) 2000 Helix Code, Inc. * Author: Chris Lahey <clahey@helixcode.com> @@ -75,21 +75,23 @@ read_file (char *name) return g_strdup (buff); } -/* This is a horrible thing to do, but it is just a test. */ -GtkWidget *editor; - -static void destroy_callback(GtkWidget *app, gpointer data) +/* Callback used when a contact editor is closed */ +static void +editor_closed_cb (EContactEditor *ce, gpointer data) { static int count = 2; - count --; - if ( count <= 0 ) - exit(0); + + count--; + gtk_object_unref (GTK_OBJECT (ce)); + + if (count == 0) + exit (0); } #if 0 static void about_callback( GtkWidget *widget, gpointer data ) { - + const gchar *authors[] = { "Christopher James Lahey <clahey@umich.edu>", @@ -102,57 +104,39 @@ static void about_callback( GtkWidget *widget, gpointer data ) authors, _( "This should test the contact editor canvas item" ), NULL); - gtk_widget_show (about); + gtk_widget_show (about); } #endif int main( int argc, char *argv[] ) { char *cardstr; - GtkWidget *app; - + EContactEditor *ce; + /* bindtextdomain (PACKAGE, GNOMELOCALEDIR); textdomain (PACKAGE);*/ - + gnome_init( "Contact Editor Test", VERSION, argc, argv); - + glade_gnome_init (); - - app = gnome_app_new("Contact Editor Test", NULL); - + cardstr = NULL; if (argc == 2) cardstr = read_file (argv [1]); - + if (cardstr == NULL) cardstr = TEST_VCARD; - - editor = e_contact_editor_new(e_card_new(cardstr)); - - gnome_app_set_contents( GNOME_APP( app ), editor ); - - /* Connect the signals */ - gtk_signal_connect( GTK_OBJECT( app ), "destroy", - GTK_SIGNAL_FUNC( destroy_callback ), - ( gpointer ) app ); - - gtk_widget_show_all( app ); - - app = gnome_app_new("Contact Editor Test", NULL); - - editor = e_contact_editor_new(e_card_new(cardstr)); - - gnome_app_set_contents( GNOME_APP( app ), editor ); - - /* Connect the signals */ - gtk_signal_connect( GTK_OBJECT( app ), "destroy", - GTK_SIGNAL_FUNC( destroy_callback ), - ( gpointer ) app ); - - gtk_widget_show_all( app ); - - gtk_main(); - + + ce = e_contact_editor_new (e_card_new (cardstr), TRUE); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); + + ce = e_contact_editor_new (e_card_new (cardstr), TRUE); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); + + gtk_main(); + /* Not reached. */ return 0; } diff --git a/addressbook/gui/minicard/e-minicard-view.c b/addressbook/gui/minicard/e-minicard-view.c index 545bcc061f..28f8243dff 100644 --- a/addressbook/gui/minicard/e-minicard-view.c +++ b/addressbook/gui/minicard/e-minicard-view.c @@ -274,6 +274,39 @@ card_added_cb (EBook* book, EBookStatus status, const char *id, g_print ("%s: %s(): a card was added\n", __FILE__, __FUNCTION__); } +static void +card_changed_cb (EBook* book, EBookStatus status, gpointer user_data) +{ + g_print ("%s: %s(): a card was changed with status %d\n", __FILE__, __FUNCTION__, status); +} + +/* Callback for the add_card signal from the contact editor */ +static void +add_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_add_card (book, card, card_added_cb, NULL); +} + +/* Callback for the commit_card signal from the contact editor */ +static void +commit_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_commit_card (book, card, card_changed_cb, NULL); +} + +/* Callback used when the contact editor is closed */ +static void +editor_closed_cb (EContactEditor *ce, gpointer data) +{ + gtk_object_unref (GTK_OBJECT (ce)); +} + static gboolean e_minicard_view_event (GnomeCanvasItem *item, GdkEvent *event) { @@ -285,49 +318,25 @@ e_minicard_view_event (GnomeCanvasItem *item, GdkEvent *event) case GDK_2BUTTON_PRESS: if (((GdkEventButton *)event)->button == 1) { - gint result; ECard *card; - GtkWidget* contact_editor; + EContactEditor *ce; EBook *book; - GtkWidget* dlg = gnome_dialog_new ("Contact Editor", "Save", "Cancel", NULL); - + card = e_card_new(""); - contact_editor = e_contact_editor_new(card); - gtk_object_sink(GTK_OBJECT(card)); - - gtk_window_set_policy(GTK_WINDOW(dlg), FALSE, TRUE, FALSE); - + gtk_object_get(GTK_OBJECT(view), "book", &book, NULL); - - g_assert (E_IS_BOOK (book)); - - gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dlg)->vbox), - contact_editor, TRUE, TRUE, 0); - - gtk_widget_show (contact_editor); - gtk_widget_show (dlg); - - gnome_dialog_close_hides (GNOME_DIALOG (dlg), TRUE); - result = gnome_dialog_run_and_close (GNOME_DIALOG (dlg)); - - - /* If the user clicks "okay"...*/ - if (result == 0) { - ECard *card; - g_assert (contact_editor); - g_assert (GTK_IS_OBJECT (contact_editor)); - gtk_object_get(GTK_OBJECT(contact_editor), - "card", &card, - NULL); - - /* Add the card in the contact editor to our ebook */ - e_book_add_card ( - book, - card, - card_added_cb, - NULL); - } + + ce = e_contact_editor_new (card, TRUE); + + gtk_signal_connect (GTK_OBJECT (ce), "add_card", + GTK_SIGNAL_FUNC (add_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "commit_card", + GTK_SIGNAL_FUNC (commit_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); + + gtk_object_sink(GTK_OBJECT(card)); } return TRUE; default: diff --git a/addressbook/gui/minicard/e-minicard.c b/addressbook/gui/minicard/e-minicard.c index 3aabdab5ef..4b7942a9f4 100644 --- a/addressbook/gui/minicard/e-minicard.c +++ b/addressbook/gui/minicard/e-minicard.c @@ -311,6 +311,12 @@ e_minicard_unrealize (GnomeCanvasItem *item) } static void +card_added_cb (EBook* book, EBookStatus status, const char *id, gpointer user_data) +{ + g_print ("%s: %s(): a card was added\n", __FILE__, __FUNCTION__); +} + +static void card_changed_cb (EBook* book, EBookStatus status, gpointer user_data) { g_print ("%s: %s(): a card was changed with status %d\n", __FILE__, __FUNCTION__, status); @@ -323,6 +329,33 @@ save_as (GtkWidget *widget, EMinicard *minicard) e_contact_save_as(_("Save as VCard"), minicard->card); } +/* Callback for the add_card signal from the contact editor */ +static void +add_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_add_card (book, card, card_added_cb, NULL); +} + +/* Callback for the commit_card signal from the contact editor */ +static void +commit_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_commit_card (book, card, card_changed_cb, NULL); +} + +/* Callback used when the contact editor is closed */ +static void +editor_closed_cb (EContactEditor *ce, gpointer data) +{ + gtk_object_unref (GTK_OBJECT (ce)); +} + static gboolean e_minicard_event (GnomeCanvasItem *item, GdkEvent *event) { @@ -381,48 +414,26 @@ e_minicard_event (GnomeCanvasItem *item, GdkEvent *event) e_popup_menu_run (menu, (GdkEventButton *)event, 0, e_minicard); } break; + case GDK_2BUTTON_PRESS: if (event->button.button == 1 && E_IS_MINICARD_VIEW(item->parent)) { - gint result; - GtkWidget* contact_editor = - e_contact_editor_new(e_minicard->card); + EContactEditor *ce; EBook *book; - GtkWidget *dlg; + gtk_object_get(GTK_OBJECT(item->parent), "book", &book, NULL); - - dlg = gnome_dialog_new ("Contact Editor", "Save", "Cancel", NULL); - - gtk_window_set_policy(GTK_WINDOW(dlg), FALSE, TRUE, FALSE); - g_assert (E_IS_BOOK (book)); - - gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dlg)->vbox), - contact_editor, TRUE, TRUE, 0); - - gtk_widget_show(contact_editor); - gtk_widget_show (dlg); - - gnome_dialog_close_hides (GNOME_DIALOG (dlg), TRUE); - result = gnome_dialog_run_and_close (GNOME_DIALOG (dlg)); - - - /* If the user clicks "okay"...*/ - if (result == 0) { - ECard *card; - g_assert (contact_editor); - g_assert (GTK_IS_OBJECT (contact_editor)); - gtk_object_get(GTK_OBJECT(contact_editor), - "card", &card, - NULL); - - /* Add the card in the contact editor to our ebook */ - e_book_commit_card (book, - card, - card_changed_cb, - NULL); - } + + ce = e_contact_editor_new (e_minicard->card, FALSE); + + gtk_signal_connect (GTK_OBJECT (ce), "add_card", + GTK_SIGNAL_FUNC (add_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "commit_card", + GTK_SIGNAL_FUNC (commit_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); + return TRUE; } break; diff --git a/addressbook/gui/widgets/e-minicard-view.c b/addressbook/gui/widgets/e-minicard-view.c index 545bcc061f..28f8243dff 100644 --- a/addressbook/gui/widgets/e-minicard-view.c +++ b/addressbook/gui/widgets/e-minicard-view.c @@ -274,6 +274,39 @@ card_added_cb (EBook* book, EBookStatus status, const char *id, g_print ("%s: %s(): a card was added\n", __FILE__, __FUNCTION__); } +static void +card_changed_cb (EBook* book, EBookStatus status, gpointer user_data) +{ + g_print ("%s: %s(): a card was changed with status %d\n", __FILE__, __FUNCTION__, status); +} + +/* Callback for the add_card signal from the contact editor */ +static void +add_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_add_card (book, card, card_added_cb, NULL); +} + +/* Callback for the commit_card signal from the contact editor */ +static void +commit_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_commit_card (book, card, card_changed_cb, NULL); +} + +/* Callback used when the contact editor is closed */ +static void +editor_closed_cb (EContactEditor *ce, gpointer data) +{ + gtk_object_unref (GTK_OBJECT (ce)); +} + static gboolean e_minicard_view_event (GnomeCanvasItem *item, GdkEvent *event) { @@ -285,49 +318,25 @@ e_minicard_view_event (GnomeCanvasItem *item, GdkEvent *event) case GDK_2BUTTON_PRESS: if (((GdkEventButton *)event)->button == 1) { - gint result; ECard *card; - GtkWidget* contact_editor; + EContactEditor *ce; EBook *book; - GtkWidget* dlg = gnome_dialog_new ("Contact Editor", "Save", "Cancel", NULL); - + card = e_card_new(""); - contact_editor = e_contact_editor_new(card); - gtk_object_sink(GTK_OBJECT(card)); - - gtk_window_set_policy(GTK_WINDOW(dlg), FALSE, TRUE, FALSE); - + gtk_object_get(GTK_OBJECT(view), "book", &book, NULL); - - g_assert (E_IS_BOOK (book)); - - gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dlg)->vbox), - contact_editor, TRUE, TRUE, 0); - - gtk_widget_show (contact_editor); - gtk_widget_show (dlg); - - gnome_dialog_close_hides (GNOME_DIALOG (dlg), TRUE); - result = gnome_dialog_run_and_close (GNOME_DIALOG (dlg)); - - - /* If the user clicks "okay"...*/ - if (result == 0) { - ECard *card; - g_assert (contact_editor); - g_assert (GTK_IS_OBJECT (contact_editor)); - gtk_object_get(GTK_OBJECT(contact_editor), - "card", &card, - NULL); - - /* Add the card in the contact editor to our ebook */ - e_book_add_card ( - book, - card, - card_added_cb, - NULL); - } + + ce = e_contact_editor_new (card, TRUE); + + gtk_signal_connect (GTK_OBJECT (ce), "add_card", + GTK_SIGNAL_FUNC (add_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "commit_card", + GTK_SIGNAL_FUNC (commit_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); + + gtk_object_sink(GTK_OBJECT(card)); } return TRUE; default: diff --git a/addressbook/gui/widgets/e-minicard.c b/addressbook/gui/widgets/e-minicard.c index 3aabdab5ef..4b7942a9f4 100644 --- a/addressbook/gui/widgets/e-minicard.c +++ b/addressbook/gui/widgets/e-minicard.c @@ -311,6 +311,12 @@ e_minicard_unrealize (GnomeCanvasItem *item) } static void +card_added_cb (EBook* book, EBookStatus status, const char *id, gpointer user_data) +{ + g_print ("%s: %s(): a card was added\n", __FILE__, __FUNCTION__); +} + +static void card_changed_cb (EBook* book, EBookStatus status, gpointer user_data) { g_print ("%s: %s(): a card was changed with status %d\n", __FILE__, __FUNCTION__, status); @@ -323,6 +329,33 @@ save_as (GtkWidget *widget, EMinicard *minicard) e_contact_save_as(_("Save as VCard"), minicard->card); } +/* Callback for the add_card signal from the contact editor */ +static void +add_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_add_card (book, card, card_added_cb, NULL); +} + +/* Callback for the commit_card signal from the contact editor */ +static void +commit_card_cb (EContactEditor *ce, ECard *card, gpointer data) +{ + EBook *book; + + book = E_BOOK (data); + e_book_commit_card (book, card, card_changed_cb, NULL); +} + +/* Callback used when the contact editor is closed */ +static void +editor_closed_cb (EContactEditor *ce, gpointer data) +{ + gtk_object_unref (GTK_OBJECT (ce)); +} + static gboolean e_minicard_event (GnomeCanvasItem *item, GdkEvent *event) { @@ -381,48 +414,26 @@ e_minicard_event (GnomeCanvasItem *item, GdkEvent *event) e_popup_menu_run (menu, (GdkEventButton *)event, 0, e_minicard); } break; + case GDK_2BUTTON_PRESS: if (event->button.button == 1 && E_IS_MINICARD_VIEW(item->parent)) { - gint result; - GtkWidget* contact_editor = - e_contact_editor_new(e_minicard->card); + EContactEditor *ce; EBook *book; - GtkWidget *dlg; + gtk_object_get(GTK_OBJECT(item->parent), "book", &book, NULL); - - dlg = gnome_dialog_new ("Contact Editor", "Save", "Cancel", NULL); - - gtk_window_set_policy(GTK_WINDOW(dlg), FALSE, TRUE, FALSE); - g_assert (E_IS_BOOK (book)); - - gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dlg)->vbox), - contact_editor, TRUE, TRUE, 0); - - gtk_widget_show(contact_editor); - gtk_widget_show (dlg); - - gnome_dialog_close_hides (GNOME_DIALOG (dlg), TRUE); - result = gnome_dialog_run_and_close (GNOME_DIALOG (dlg)); - - - /* If the user clicks "okay"...*/ - if (result == 0) { - ECard *card; - g_assert (contact_editor); - g_assert (GTK_IS_OBJECT (contact_editor)); - gtk_object_get(GTK_OBJECT(contact_editor), - "card", &card, - NULL); - - /* Add the card in the contact editor to our ebook */ - e_book_commit_card (book, - card, - card_changed_cb, - NULL); - } + + ce = e_contact_editor_new (e_minicard->card, FALSE); + + gtk_signal_connect (GTK_OBJECT (ce), "add_card", + GTK_SIGNAL_FUNC (add_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "commit_card", + GTK_SIGNAL_FUNC (commit_card_cb), book); + gtk_signal_connect (GTK_OBJECT (ce), "editor_closed", + GTK_SIGNAL_FUNC (editor_closed_cb), NULL); + return TRUE; } break; |