diff options
-rw-r--r-- | addressbook/ChangeLog | 20 | ||||
-rw-r--r-- | addressbook/backend/ebook/Makefile.am | 17 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-card.c | 18 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-card.h | 2 | ||||
-rw-r--r-- | addressbook/contact-editor/Makefile.am | 1 | ||||
-rw-r--r-- | addressbook/contact-editor/e-contact-editor.c | 58 | ||||
-rw-r--r-- | addressbook/contact-editor/fullname-strings.h | 8 | ||||
-rw-r--r-- | addressbook/contact-editor/fullname.glade | 525 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/Makefile.am | 1 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.c | 58 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/fullname-strings.h | 8 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/fullname.glade | 525 |
12 files changed, 599 insertions, 642 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index cdaeb03abc..7452da4107 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,23 @@ +2000-04-30 Christopher James Lahey <clahey@helixcode.com> + + * backend/ebook/Makefile.am: Added ename includes and libs. + + * backend/ebook/e-card.c, backend/ebook/e-card.h: Added + e_card_name_from_string. Added header for + e_card_delivery_address_from_string, even though it's not + implemented yet. + + * contact-editor/Makefile.am: Removed the ename includes since we + no longer use ename directly here. + + * contact-editor/e-contact-editor.c: Fixed this to properly save + the address labels displayed. Updated this to use the function + e_card_name_from_string instead of doing it by hand. + + * contact-editor/fullname-strings.h, + contact-editor/fullname.glade: Deleted an unused field. Changed + the set of prefixes and suffixes. + 2000-04-30 Chris Toshok <toshok@helixcode.com> * backend/pas/pas-backend-ldap.c diff --git a/addressbook/backend/ebook/Makefile.am b/addressbook/backend/ebook/Makefile.am index dd213e1ab7..78a947e729 100644 --- a/addressbook/backend/ebook/Makefile.am +++ b/addressbook/backend/ebook/Makefile.am @@ -1,4 +1,4 @@ -noinst_PROGRAMS = test-card test-client test-client-list +noinst_PROGRAMS = test-card test-client test-client-list load-pine-addressbook CORBA_SOURCE = \ addressbook.h \ @@ -20,6 +20,7 @@ INCLUDES = \ -I$(top_srcdir) \ -I$(top_srcdir)/addressbook/backend \ -I$(top_builddir)/addressbook/backend \ + -I$(top_builddir)/addressbook/ename \ $(BONOBO_GNOME_CFLAGS) lib_LTLIBRARIES = libebook.la @@ -55,7 +56,8 @@ test_client_SOURCES = \ test_client_LDADD = \ libebook.la \ $(BONOBO_GNOME_LIBS) \ - $(top_builddir)/libversit/libversit.la + $(top_builddir)/libversit/libversit.la \ + $(top_builddir)/addressbook/ename/libename.la test_client_list_SOURCES = \ test-client-list.c @@ -63,6 +65,7 @@ test_client_list_SOURCES = \ test_client_list_LDADD = \ libebook.la \ $(BONOBO_GNOME_LIBS) \ + $(top_builddir)/addressbook/ename/libename.la \ $(top_builddir)/libversit/libversit.la test_card_SOURCES = \ @@ -71,6 +74,16 @@ test_card_SOURCES = \ test_card_LDADD = \ libebook.la \ $(BONOBO_GNOME_LIBS) \ + $(top_builddir)/addressbook/ename/libename.la \ + $(top_builddir)/libversit/libversit.la + +load_pine_addressbook_SOURCES = \ + load-pine-addressbook.c + +load_pine_addressbook_LDADD = \ + libebook.la \ + $(BONOBO_GNOME_LIBS) \ + $(top_builddir)/addressbook/ename/libename.la \ $(top_builddir)/libversit/libversit.la BUILT_SOURCES = $(CORBA_SOURCE) diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c index eea5c16dc1..2f0f05b97f 100644 --- a/addressbook/backend/ebook/e-card.c +++ b/addressbook/backend/ebook/e-card.c @@ -17,6 +17,7 @@ #include <libversit/vcc.h> #include "e-card.h" #include "e-card-pairs.h" +#include "e-name-western.h" #define is_a_prop_of(obj,prop) (isAPropertyOf ((obj),(prop))) #define str_val(obj) (the_str = (vObjectValueType (obj))? fakeCString (vObjectUStringZValue (obj)) : calloc (1, 1)) @@ -994,6 +995,23 @@ e_card_name_to_string(const ECardName *name) return g_strjoinv(" ", strings); } +ECardName * +e_card_name_from_string(const char *full_name) +{ + ECardName *name = g_new(ECardName, 1); + ENameWestern *western = e_name_western_parse (full_name); + + name->prefix = g_strdup (western->prefix); + name->given = g_strdup (western->first ); + name->additional = g_strdup (western->middle); + name->family = g_strdup (western->last ); + name->suffix = g_strdup (western->suffix); + + e_name_western_free(western); + + return name; +} + /* * ECard lifecycle management and vCard loading/saving. */ diff --git a/addressbook/backend/ebook/e-card.h b/addressbook/backend/ebook/e-card.h index c42db15461..98fa4a9060 100644 --- a/addressbook/backend/ebook/e-card.h +++ b/addressbook/backend/ebook/e-card.h @@ -111,6 +111,7 @@ ECardDeliveryAddress *e_card_delivery_address_new (void); void e_card_delivery_address_free (ECardDeliveryAddress *addr); ECardDeliveryAddress *e_card_delivery_address_copy (const ECardDeliveryAddress *addr); char *e_card_delivery_address_to_string (const ECardDeliveryAddress *addr); +char *e_card_delivery_address_from_string (const ECardDeliveryAddress *addr); ECardAddrLabel *e_card_address_label_new (void); void e_card_address_label_free (ECardAddrLabel *addr); @@ -120,6 +121,7 @@ ECardName *e_card_name_new (void); void e_card_name_free(ECardName *name); ECardName *e_card_name_copy (const ECardName *name); char *e_card_name_to_string(const ECardName *name); +ECardName *e_card_name_from_string(const char *full_name); /* Standard Gtk function */ GtkType e_card_get_type (void); diff --git a/addressbook/contact-editor/Makefile.am b/addressbook/contact-editor/Makefile.am index a8fc308314..fdb25b98a3 100644 --- a/addressbook/contact-editor/Makefile.am +++ b/addressbook/contact-editor/Makefile.am @@ -13,7 +13,6 @@ INCLUDES = \ -I$(top_srcdir) \ -I$(top_srcdir)/addressbook/ \ -I$(top_srcdir)/addressbook/backend \ - -I$(top_srcdir)/addressbook/ename \ -DEVOLUTION_IMAGES=\""$(imagesdir)"\" \ -DG_LOG_DOMAIN=\"contact-editor\" diff --git a/addressbook/contact-editor/e-contact-editor.c b/addressbook/contact-editor/e-contact-editor.c index a8bc443200..3d25e8a1a9 100644 --- a/addressbook/contact-editor/e-contact-editor.c +++ b/addressbook/contact-editor/e-contact-editor.c @@ -23,7 +23,6 @@ #include <config.h> #include <gnome.h> #include "e-contact-editor.h" -#include <e-name-western.h> #include <e-contact-editor-fullname.h> static void e_contact_editor_init (EContactEditor *card); @@ -41,6 +40,7 @@ static void _address_arrow_pressed (GtkWidget *widget, GdkEventButton *button, E static void fill_in_info(EContactEditor *editor); static void extract_info(EContactEditor *editor); static void set_fields(EContactEditor *editor); +static void set_address_field(EContactEditor *editor, int result); static GtkVBoxClass *parent_class = NULL; @@ -239,22 +239,18 @@ address_text_changed (GtkWidget *widget, EContactEditor *editor) { gchar *string; GtkEditable *editable = GTK_EDITABLE(widget); + if (editor->address_choice == -1) + return; if (editor->address[editor->address_choice]) { - g_free(editor->address[editor->address_choice]); - editor->address[editor->address_choice] = NULL; - } - - string = gtk_editable_get_chars(editable, 0, -1); - if (editor->address[editor->address_choice]) { - if (editor->address[editor->address_choice]->data) - g_free(editor->address[editor->address_choice]->data); + g_free(editor->address[editor->address_choice]->data); editor->address[editor->address_choice]->data = NULL; } else { editor->address[editor->address_choice] = e_card_address_label_new(); } - editor->address[editor->address_choice]->data = g_strdup(string); - g_free(string); + + string = gtk_editable_get_chars(editable, 0, -1); + editor->address[editor->address_choice]->data = string; } static void @@ -263,24 +259,14 @@ name_entry_changed (GtkWidget *widget, EContactEditor *editor) char *string; ECardName *name; GtkEntry *entry = GTK_ENTRY(widget); - ENameWestern *western; name = editor->name; if (name) e_card_name_free(name); - name = e_card_name_new(); - string = gtk_entry_get_text(entry); - western = e_name_western_parse (string); - - name->prefix = g_strdup (western->prefix); - name->given = g_strdup (western->first ); - name->additional = g_strdup (western->middle); - name->family = g_strdup (western->last ); - name->suffix = g_strdup (western->suffix); - e_name_western_free(western); + name = e_card_name_from_string(string); editor->name = name; } @@ -772,8 +758,7 @@ _address_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEdito result = _arrow_pressed (widget, button, editor, editor->address_popup, &editor->address_list, &editor->address_info, "label-address1", "text-address", "Add new Address type"); if (result != -1) { - editor->address_choice = result; - set_fields(editor); + set_address_field(editor, result); } } @@ -789,9 +774,6 @@ static void set_fields(EContactEditor *editor) { GtkEntry *entry; - GtkEditable *editable; - char *string = NULL; - int position; entry = GTK_ENTRY(glade_xml_get_widget(editor->gui, "entry-phone1")); if (editor->phone[editor->phone_choice[0]]) @@ -819,17 +801,25 @@ set_fields(EContactEditor *editor) set_field(entry, editor->email[editor->email_choice]); else set_field(entry, ""); + + set_address_field(editor, -1); +} + +static void +set_address_field(EContactEditor *editor, int result) +{ + GtkEditable *editable; + int position; + if (result == -1) + result = editor->address_choice; + editor->address_choice = -1; - if (editor->address[editor->address_choice]) { - string = g_strdup (editor->address[editor->address_choice]->data); - } position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "text-address")); gtk_editable_delete_text(editable, 0, -1); - if (string) { - gtk_editable_insert_text(editable, string, strlen(string), &position); - g_free(string); - } + if (editor->address[result] && editor->address[result]->data) + gtk_editable_insert_text(editable, editor->address[result]->data, strlen(editor->address[result]->data), &position); + editor->address_choice = result; } static void diff --git a/addressbook/contact-editor/fullname-strings.h b/addressbook/contact-editor/fullname-strings.h index cd6b118547..9c49107400 100644 --- a/addressbook/contact-editor/fullname-strings.h +++ b/addressbook/contact-editor/fullname-strings.h @@ -16,10 +16,10 @@ gchar *s = N_("\n" "Dr.\n" ""); gchar *s = N_("\n" - "Senior\n" - "Junior\n" + "Sr.\n" + "Jr.\n" + "I\n" "II\n" "III\n" - "Esquire\n" + "Esq.\n" ""); -gchar *s = N_("Show this again when name is incomplete or unclear"); diff --git a/addressbook/contact-editor/fullname.glade b/addressbook/contact-editor/fullname.glade index 3f1fc58a50..37022ab0e1 100644 --- a/addressbook/contact-editor/fullname.glade +++ b/addressbook/contact-editor/fullname.glade @@ -79,10 +79,14 @@ </widget> <widget> - <class>GtkVBox</class> - <name>vbox-checkfullname</name> + <class>GtkTable</class> + <name>table1</name> + <border_width>8</border_width> + <rows>5</rows> + <columns>3</columns> <homogeneous>False</homogeneous> - <spacing>0</spacing> + <row_spacing>6</row_spacing> + <column_spacing>21</column_spacing> <child> <padding>0</padding> <expand>True</expand> @@ -90,329 +94,288 @@ </child> <widget> - <class>GtkTable</class> - <name>table1</name> - <border_width>8</border_width> - <rows>5</rows> - <columns>3</columns> - <homogeneous>False</homogeneous> - <row_spacing>6</row_spacing> - <column_spacing>21</column_spacing> + <class>GtkAccelLabel</class> + <name>accellabel1</name> + <label>Title:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkAccelLabel</class> - <name>accellabel1</name> - <label>Title:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <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> - <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>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <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>accellabel2</name> - <label>First:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel2</name> + <label>First:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <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>accellabel3</name> - <label>Middle:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel3</name> + <label>Middle:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <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>accellabel4</name> - <label>Last:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel4</name> + <label>Last:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <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>accellabel5</name> - <label>Suffix:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel5</name> + <label>Suffix:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkCombo</class> - <name>combo-title</name> - <value_in_list>False</value_in_list> - <ok_if_empty>True</ok_if_empty> - <case_sensitive>False</case_sensitive> - <use_arrows>True</use_arrows> - <use_arrows_always>False</use_arrows_always> - <items> + <widget> + <class>GtkCombo</class> + <name>combo-title</name> + <value_in_list>False</value_in_list> + <ok_if_empty>True</ok_if_empty> + <case_sensitive>False</case_sensitive> + <use_arrows>True</use_arrows> + <use_arrows_always>False</use_arrows_always> + <items> Mr. Mrs. Dr. </items> - <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>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-title</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>GtkCombo</class> - <name>combo-suffix</name> - <value_in_list>False</value_in_list> - <ok_if_empty>True</ok_if_empty> - <case_sensitive>False</case_sensitive> - <use_arrows>True</use_arrows> - <use_arrows_always>False</use_arrows_always> - <items> -Senior -Junior -II -III -Esquire -</items> - <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>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-suffix</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> + <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>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> <widget> <class>GtkEntry</class> - <name>entry-first</name> + <child_name>GtkCombo:entry</child_name> + <name>entry-title</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>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>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> </widget> + </widget> - <widget> - <class>GtkEntry</class> - <name>entry-middle</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>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>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkCombo</class> + <name>combo-suffix</name> + <value_in_list>False</value_in_list> + <ok_if_empty>True</ok_if_empty> + <case_sensitive>False</case_sensitive> + <use_arrows>True</use_arrows> + <use_arrows_always>False</use_arrows_always> + <items> +Sr. +Jr. +I +II +III +Esq. +</items> + <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>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> <widget> <class>GtkEntry</class> - <name>entry-last</name> + <child_name>GtkCombo:entry</child_name> + <name>entry-suffix</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>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>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> </widget> </widget> <widget> - <class>GtkVBox</class> - <name>vbox3</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkEntry</class> + <name>entry-first</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> + <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>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-showagain</name> - <can_focus>True</can_focus> - <label>Show this again when name is incomplete or unclear</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkEntry</class> + <name>entry-middle</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>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>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-last</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>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>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> </widget> </widget> diff --git a/addressbook/gui/contact-editor/Makefile.am b/addressbook/gui/contact-editor/Makefile.am index a8fc308314..fdb25b98a3 100644 --- a/addressbook/gui/contact-editor/Makefile.am +++ b/addressbook/gui/contact-editor/Makefile.am @@ -13,7 +13,6 @@ INCLUDES = \ -I$(top_srcdir) \ -I$(top_srcdir)/addressbook/ \ -I$(top_srcdir)/addressbook/backend \ - -I$(top_srcdir)/addressbook/ename \ -DEVOLUTION_IMAGES=\""$(imagesdir)"\" \ -DG_LOG_DOMAIN=\"contact-editor\" diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index a8bc443200..3d25e8a1a9 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -23,7 +23,6 @@ #include <config.h> #include <gnome.h> #include "e-contact-editor.h" -#include <e-name-western.h> #include <e-contact-editor-fullname.h> static void e_contact_editor_init (EContactEditor *card); @@ -41,6 +40,7 @@ static void _address_arrow_pressed (GtkWidget *widget, GdkEventButton *button, E static void fill_in_info(EContactEditor *editor); static void extract_info(EContactEditor *editor); static void set_fields(EContactEditor *editor); +static void set_address_field(EContactEditor *editor, int result); static GtkVBoxClass *parent_class = NULL; @@ -239,22 +239,18 @@ address_text_changed (GtkWidget *widget, EContactEditor *editor) { gchar *string; GtkEditable *editable = GTK_EDITABLE(widget); + if (editor->address_choice == -1) + return; if (editor->address[editor->address_choice]) { - g_free(editor->address[editor->address_choice]); - editor->address[editor->address_choice] = NULL; - } - - string = gtk_editable_get_chars(editable, 0, -1); - if (editor->address[editor->address_choice]) { - if (editor->address[editor->address_choice]->data) - g_free(editor->address[editor->address_choice]->data); + g_free(editor->address[editor->address_choice]->data); editor->address[editor->address_choice]->data = NULL; } else { editor->address[editor->address_choice] = e_card_address_label_new(); } - editor->address[editor->address_choice]->data = g_strdup(string); - g_free(string); + + string = gtk_editable_get_chars(editable, 0, -1); + editor->address[editor->address_choice]->data = string; } static void @@ -263,24 +259,14 @@ name_entry_changed (GtkWidget *widget, EContactEditor *editor) char *string; ECardName *name; GtkEntry *entry = GTK_ENTRY(widget); - ENameWestern *western; name = editor->name; if (name) e_card_name_free(name); - name = e_card_name_new(); - string = gtk_entry_get_text(entry); - western = e_name_western_parse (string); - - name->prefix = g_strdup (western->prefix); - name->given = g_strdup (western->first ); - name->additional = g_strdup (western->middle); - name->family = g_strdup (western->last ); - name->suffix = g_strdup (western->suffix); - e_name_western_free(western); + name = e_card_name_from_string(string); editor->name = name; } @@ -772,8 +758,7 @@ _address_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEdito result = _arrow_pressed (widget, button, editor, editor->address_popup, &editor->address_list, &editor->address_info, "label-address1", "text-address", "Add new Address type"); if (result != -1) { - editor->address_choice = result; - set_fields(editor); + set_address_field(editor, result); } } @@ -789,9 +774,6 @@ static void set_fields(EContactEditor *editor) { GtkEntry *entry; - GtkEditable *editable; - char *string = NULL; - int position; entry = GTK_ENTRY(glade_xml_get_widget(editor->gui, "entry-phone1")); if (editor->phone[editor->phone_choice[0]]) @@ -819,17 +801,25 @@ set_fields(EContactEditor *editor) set_field(entry, editor->email[editor->email_choice]); else set_field(entry, ""); + + set_address_field(editor, -1); +} + +static void +set_address_field(EContactEditor *editor, int result) +{ + GtkEditable *editable; + int position; + if (result == -1) + result = editor->address_choice; + editor->address_choice = -1; - if (editor->address[editor->address_choice]) { - string = g_strdup (editor->address[editor->address_choice]->data); - } position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "text-address")); gtk_editable_delete_text(editable, 0, -1); - if (string) { - gtk_editable_insert_text(editable, string, strlen(string), &position); - g_free(string); - } + if (editor->address[result] && editor->address[result]->data) + gtk_editable_insert_text(editable, editor->address[result]->data, strlen(editor->address[result]->data), &position); + editor->address_choice = result; } static void diff --git a/addressbook/gui/contact-editor/fullname-strings.h b/addressbook/gui/contact-editor/fullname-strings.h index cd6b118547..9c49107400 100644 --- a/addressbook/gui/contact-editor/fullname-strings.h +++ b/addressbook/gui/contact-editor/fullname-strings.h @@ -16,10 +16,10 @@ gchar *s = N_("\n" "Dr.\n" ""); gchar *s = N_("\n" - "Senior\n" - "Junior\n" + "Sr.\n" + "Jr.\n" + "I\n" "II\n" "III\n" - "Esquire\n" + "Esq.\n" ""); -gchar *s = N_("Show this again when name is incomplete or unclear"); diff --git a/addressbook/gui/contact-editor/fullname.glade b/addressbook/gui/contact-editor/fullname.glade index 3f1fc58a50..37022ab0e1 100644 --- a/addressbook/gui/contact-editor/fullname.glade +++ b/addressbook/gui/contact-editor/fullname.glade @@ -79,10 +79,14 @@ </widget> <widget> - <class>GtkVBox</class> - <name>vbox-checkfullname</name> + <class>GtkTable</class> + <name>table1</name> + <border_width>8</border_width> + <rows>5</rows> + <columns>3</columns> <homogeneous>False</homogeneous> - <spacing>0</spacing> + <row_spacing>6</row_spacing> + <column_spacing>21</column_spacing> <child> <padding>0</padding> <expand>True</expand> @@ -90,329 +94,288 @@ </child> <widget> - <class>GtkTable</class> - <name>table1</name> - <border_width>8</border_width> - <rows>5</rows> - <columns>3</columns> - <homogeneous>False</homogeneous> - <row_spacing>6</row_spacing> - <column_spacing>21</column_spacing> + <class>GtkAccelLabel</class> + <name>accellabel1</name> + <label>Title:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkAccelLabel</class> - <name>accellabel1</name> - <label>Title:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <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> - <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>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <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>accellabel2</name> - <label>First:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel2</name> + <label>First:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <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>accellabel3</name> - <label>Middle:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel3</name> + <label>Middle:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <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>accellabel4</name> - <label>Last:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel4</name> + <label>Last:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <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>accellabel5</name> - <label>Suffix:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkAccelLabel</class> + <name>accellabel5</name> + <label>Suffix:</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>0</left_attach> + <right_attach>1</right_attach> + <top_attach>4</top_attach> + <bottom_attach>5</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</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> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkCombo</class> - <name>combo-title</name> - <value_in_list>False</value_in_list> - <ok_if_empty>True</ok_if_empty> - <case_sensitive>False</case_sensitive> - <use_arrows>True</use_arrows> - <use_arrows_always>False</use_arrows_always> - <items> + <widget> + <class>GtkCombo</class> + <name>combo-title</name> + <value_in_list>False</value_in_list> + <ok_if_empty>True</ok_if_empty> + <case_sensitive>False</case_sensitive> + <use_arrows>True</use_arrows> + <use_arrows_always>False</use_arrows_always> + <items> Mr. Mrs. Dr. </items> - <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>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-title</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>GtkCombo</class> - <name>combo-suffix</name> - <value_in_list>False</value_in_list> - <ok_if_empty>True</ok_if_empty> - <case_sensitive>False</case_sensitive> - <use_arrows>True</use_arrows> - <use_arrows_always>False</use_arrows_always> - <items> -Senior -Junior -II -III -Esquire -</items> - <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>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-suffix</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> + <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>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> <widget> <class>GtkEntry</class> - <name>entry-first</name> + <child_name>GtkCombo:entry</child_name> + <name>entry-title</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>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>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> </widget> + </widget> - <widget> - <class>GtkEntry</class> - <name>entry-middle</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>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>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkCombo</class> + <name>combo-suffix</name> + <value_in_list>False</value_in_list> + <ok_if_empty>True</ok_if_empty> + <case_sensitive>False</case_sensitive> + <use_arrows>True</use_arrows> + <use_arrows_always>False</use_arrows_always> + <items> +Sr. +Jr. +I +II +III +Esq. +</items> + <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>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> <widget> <class>GtkEntry</class> - <name>entry-last</name> + <child_name>GtkCombo:entry</child_name> + <name>entry-suffix</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>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>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> </widget> </widget> <widget> - <class>GtkVBox</class> - <name>vbox3</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkEntry</class> + <name>entry-first</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> + <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>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-showagain</name> - <can_focus>True</can_focus> - <label>Show this again when name is incomplete or unclear</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkEntry</class> + <name>entry-middle</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>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>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-last</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>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>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> </widget> </widget> |