* src/EditPerson.py: unused code

* src/ImgManip.py: convienence code
* src/Sources.py: DisplayManager-ize the SourceEditor


svn: r5864
This commit is contained in:
Don Allingham 2006-02-02 05:20:42 +00:00
parent 15bc78db47
commit da30e8d5fa
6 changed files with 550 additions and 660 deletions

View File

@ -1,4 +1,7 @@
2006-02-01 Don Allingham <don@gramps-project.org> 2006-02-01 Don Allingham <don@gramps-project.org>
* src/EditPerson.py: unused code
* src/ImgManip.py: convienence code
* src/Sources.py: DisplayManager-ize the SourceEditor
* src/DisplayTabs.py: Hook up editors * src/DisplayTabs.py: Hook up editors
* src/EditFamily.py: Add _DND_TYPE * src/EditFamily.py: Add _DND_TYPE
* src/UrlEdit.py: Add type selector * src/UrlEdit.py: Add type selector

View File

@ -53,6 +53,7 @@ import RelLib
import Utils import Utils
import GrampsMime import GrampsMime
import const import const
import ImgManip
from DdTargets import DdTargets from DdTargets import DdTargets
from GrampsWidgets import SimpleButton from GrampsWidgets import SimpleButton
@ -906,17 +907,26 @@ class NoteTab(GrampsTab):
GrampsTab.__init__(self, dbstate, uistate, track, _('Note')) GrampsTab.__init__(self, dbstate, uistate, track, _('Note'))
self.show_all() self.show_all()
def _update_label(self,*obj):
cc = self.buf.get_char_count()
if cc == 0 and not self.empty:
self.empty = True
self._set_label()
elif cc != 0 and self.empty:
self.empty = False
self._set_label()
def is_empty(self): def is_empty(self):
""" """
Indicates if the tab contains any data. This is used to determine Indicates if the tab contains any data. This is used to determine
how the label should be displayed. how the label should be displayed.
""" """
buf = self.text.get_buffer() return self.buf.get_char_count() == 0
return len(buf.get_text(buf.get_start_iter(),buf.get_end_iter())) == 0
def build_interface(self): def build_interface(self):
vbox = gtk.VBox() vbox = gtk.VBox()
self.text = gtk.TextView() self.text = gtk.TextView()
self.flowed = gtk.RadioButton(None,_('Flowed')) self.flowed = gtk.RadioButton(None,_('Flowed'))
self.format = gtk.RadioButton(self.flowed,_('Formatted')) self.format = gtk.RadioButton(self.flowed,_('Formatted'))
@ -944,8 +954,14 @@ class NoteTab(GrampsTab):
vbox.pack_start(hbox,False) vbox.pack_start(hbox,False)
self.pack_start(vbox,True) self.pack_start(vbox,True)
self.buf = self.text.get_buffer()
if self.note_obj: if self.note_obj:
self.text.get_buffer().insert_at_cursor(self.note_obj.get()) self.empty = False
self.buf.insert_at_cursor(self.note_obj.get())
else:
self.empty = True
self.buf.connect('changed',self._update_label)
self.rebuild() self.rebuild()
def flow_changed(self,obj): def flow_changed(self,obj):
@ -974,6 +990,9 @@ class GalleryTab(ButtonTab):
def get_icon_name(self): def get_icon_name(self):
return 'gramps-media' return 'gramps-media'
def is_empty(self):
return len(self.media_list)==0
def build_interface(self): def build_interface(self):
self.iconmodel= gtk.ListStore(gtk.gdk.Pixbuf,str) self.iconmodel= gtk.ListStore(gtk.gdk.Pixbuf,str)
self.iconlist = gtk.IconView() self.iconlist = gtk.IconView()
@ -995,23 +1014,11 @@ class GalleryTab(ButtonTab):
for ref in self.media_list: for ref in self.media_list:
handle = ref.get_reference_handle() handle = ref.get_reference_handle()
obj = self.dbstate.db.get_object_from_handle(handle) obj = self.dbstate.db.get_object_from_handle(handle)
pixbuf = self.get_image(obj) pixbuf = ImgManip.get_thumb_from_obj(obj)
self.iconmodel.append(row=[pixbuf,obj.get_description()]) self.iconmodel.append(row=[pixbuf,obj.get_description()])
self.iconlist.set_model(self.iconmodel) self.iconlist.set_model(self.iconmodel)
self._set_label() self._set_label()
def get_image(self,obj):
import ImgManip
mtype = obj.get_mime_type()
if mtype[0:5] == "image":
image = ImgManip.get_thumbnail_image(obj.get_path())
else:
image = GrampsMime.find_mime_type_pixbuf(mtype)
if not image:
image = gtk.gdk.pixbuf_new_from_file(const.icon)
return image
def get_selected(self): def get_selected(self):
node = self.iconlist.get_selected_items() node = self.iconlist.get_selected_items()
if len(node) > 0: if len(node) > 0:
@ -1062,19 +1069,28 @@ class SourceEmbedList(EmbeddedList):
return ((1,0),(1,1),(1,2),(1,3)) return ((1,0),(1,1),(1,2),(1,3))
def add_button_clicked(self,obj): def add_button_clicked(self,obj):
pass from Sources import SourceEditor
sref = RelLib.SourceRef()
SourceEditor(self.dbstate, self.uistate, self.track, sref,
self.add_callback)
def del_button_clicked(self,obj): def add_callback(self,obj):
ref = self.get_selected() self.get_data().append(name)
if ref: self.changed = True
ref_list = self.obj.get_event_ref_list() self.rebuild()
ref_list.remove(ref)
self.rebuild()
def edit_button_clicked(self,obj): def edit_button_clicked(self,obj):
ref = self.get_selected() from Sources import SourceEditor
if ref:
print ref sref = self.get_selected()
if sref:
SourceEditor(self.dbstate, self.uistate, self.track, sref,
self.edit_callback)
def edit_callback(self,name):
self.changed = True
self.rebuild()
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #

View File

@ -26,10 +26,7 @@
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import os import os
import gc
import locale import locale
import ListBox
import sets
from gettext import gettext as _ from gettext import gettext as _
from cgi import escape from cgi import escape
@ -55,14 +52,10 @@ import GrampsMime
import ImageSelect import ImageSelect
import AutoComp import AutoComp
import RelLib import RelLib
import Sources
import DateEdit
import Date
import DateHandler import DateHandler
import NameDisplay import NameDisplay
import NameEdit import NameEdit
import NoteEdit import NoteEdit
import Spell
import DisplayState import DisplayState
import GrampsDisplay import GrampsDisplay
from DisplayTabs import * from DisplayTabs import *
@ -126,7 +119,7 @@ class EditPerson(DisplayState.ManagedWindow):
self.callback = callback self.callback = callback
self.path = self.db.get_save_path() self.path = self.db.get_save_path()
self.not_loaded = True self.not_loaded = True
self.lds_not_loaded = True # self.lds_not_loaded = True
self.lists_changed = False self.lists_changed = False
self.pdmap = {} self.pdmap = {}
self.add_places = [] self.add_places = []
@ -331,18 +324,6 @@ class EditPerson(DisplayState.ManagedWindow):
data = cursor.next() data = cursor.next()
cursor.close() cursor.close()
def get_image(self,obj):
import ImgManip
mtype = obj.get_mime_type()
if mtype[0:5] == "image":
image = ImgManip.get_thumbnail_image(obj.get_path())
else:
image = GrampsMime.find_mime_type_pixbuf(mtype)
if not image:
image = gtk.gdk.pixbuf_new_from_file(const.icon)
return image
def image_button_press(self,obj,event): def image_button_press(self,obj,event):
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1: if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
@ -482,10 +463,6 @@ class EditPerson(DisplayState.ManagedWindow):
given = unicode(self.given.get_text()) given = unicode(self.given.get_text())
title = unicode(self.title.get_text()) title = unicode(self.title.get_text())
start = self.notes_buffer.get_start_iter()
end = self.notes_buffer.get_end_iter()
text = unicode(self.notes_buffer.get_text(start, end, False))
format = self.preform.get_active()
idval = unicode(self.gid.get_text()) idval = unicode(self.gid.get_text())
if idval == "": if idval == "":
idval = None idval = None
@ -493,11 +470,6 @@ class EditPerson(DisplayState.ManagedWindow):
changed = False changed = False
name = self.person.get_primary_name() name = self.person.get_primary_name()
for item in [ self.event_box, self.attr_box, self.addr_box,
self.name_box, self.url_box] :
if len(item.get_changed_objects()) > 0:
changed = True
#TODO#if self.complete.get_active() != self.person.get_complete_flag(): #TODO#if self.complete.get_active() != self.person.get_complete_flag():
# changed = True # changed = True
if self.private.get_active() != self.person.get_privacy(): if self.private.get_active() != self.person.get_privacy():
@ -522,8 +494,8 @@ class EditPerson(DisplayState.ManagedWindow):
changed = True changed = True
if self.pname.get_note() != name.get_note(): if self.pname.get_note() != name.get_note():
changed = True changed = True
if not self.lds_not_loaded and self.check_lds(): # if not self.lds_not_loaded and self.check_lds():
changed = True # changed = True
(female,male,unknown) = _select_gender[self.gender.get_active()] (female,male,unknown) = _select_gender[self.gender.get_active()]
@ -535,49 +507,47 @@ class EditPerson(DisplayState.ManagedWindow):
changed = True changed = True
if text != self.person.get_note(): if text != self.person.get_note():
changed = True changed = True
if format != self.person.get_note_format():
changed = True
if not self.lds_not_loaded: # if not self.lds_not_loaded:
if not self.lds_baptism.are_equal(self.person.get_lds_baptism()): # if not self.lds_baptism.are_equal(self.person.get_lds_baptism()):
changed= True # changed= True
if not self.lds_endowment.are_equal(self.person.get_lds_endowment()): # if not self.lds_endowment.are_equal(self.person.get_lds_endowment()):
changed = True # changed = True
if not self.lds_sealing.are_equal(self.person.get_lds_sealing()): # if not self.lds_sealing.are_equal(self.person.get_lds_sealing()):
changed = True # changed = True
return changed return changed
def check_lds(self): # def check_lds(self):
date_str = unicode(self.ldsbap_date.get_text()) # date_str = unicode(self.ldsbap_date.get_text())
DateHandler.set_date(self.lds_baptism,date_str) # DateHandler.set_date(self.lds_baptism,date_str)
temple = _temple_names[self.ldsbap_temple.get_active()] # temple = _temple_names[self.ldsbap_temple.get_active()]
if const.lds_temple_codes.has_key(temple): # if const.lds_temple_codes.has_key(temple):
self.lds_baptism.set_temple(const.lds_temple_codes[temple]) # self.lds_baptism.set_temple(const.lds_temple_codes[temple])
else: # else:
self.lds_baptism.set_temple("") # self.lds_baptism.set_temple("")
self.lds_baptism.set_place_handle(self.get_place(self.ldsbapplace,1)) # self.lds_baptism.set_place_handle(self.get_place(self.ldsbapplace,1))
date_str = unicode(self.ldsend_date.get_text()) # date_str = unicode(self.ldsend_date.get_text())
DateHandler.set_date(self.lds_endowment,date_str) # DateHandler.set_date(self.lds_endowment,date_str)
temple = _temple_names[self.ldsend_temple.get_active()] # temple = _temple_names[self.ldsend_temple.get_active()]
if const.lds_temple_codes.has_key(temple): # if const.lds_temple_codes.has_key(temple):
self.lds_endowment.set_temple(const.lds_temple_codes[temple]) # self.lds_endowment.set_temple(const.lds_temple_codes[temple])
else: # else:
self.lds_endowment.set_temple("") # self.lds_endowment.set_temple("")
self.lds_endowment.set_place_handle(self.get_place(self.ldsendowplace,1)) # self.lds_endowment.set_place_handle(self.get_place(self.ldsendowplace,1))
date_str = unicode(self.ldsseal_date.get_text()) # date_str = unicode(self.ldsseal_date.get_text())
DateHandler.set_date(self.lds_sealing,date_str) # DateHandler.set_date(self.lds_sealing,date_str)
temple = _temple_names[self.ldsseal_temple.get_active()] # temple = _temple_names[self.ldsseal_temple.get_active()]
if const.lds_temple_codes.has_key(temple): # if const.lds_temple_codes.has_key(temple):
self.lds_sealing.set_temple(const.lds_temple_codes[temple]) # self.lds_sealing.set_temple(const.lds_temple_codes[temple])
else: # else:
self.lds_sealing.set_temple("") # self.lds_sealing.set_temple("")
self.lds_sealing.set_family_handle(self.ldsfam) # self.lds_sealing.set_family_handle(self.ldsfam)
self.lds_sealing.set_place_handle(self.get_place(self.ldssealplace,1)) # self.lds_sealing.set_place_handle(self.get_place(self.ldssealplace,1))
def load_photo(self,photo): def load_photo(self,photo):
"""loads, scales, and displays the person's main photo""" """loads, scales, and displays the person's main photo"""
@ -727,33 +697,22 @@ class EditPerson(DisplayState.ManagedWindow):
"the person's marriages.") "the person's marriages.")
ErrorDialog(msg) ErrorDialog(msg)
start = self.notes_buffer.get_start_iter()
stop = self.notes_buffer.get_end_iter()
text = unicode(self.notes_buffer.get_text(start,stop,False))
if text != self.person.get_note():
self.person.set_note(text)
format = self.preform.get_active()
if format != self.person.get_note_format():
self.person.set_note_format(format)
self.person.set_marker(self.marker_type_selector.get_values()) self.person.set_marker(self.marker_type_selector.get_values())
self.person.set_privacy(self.private.get_active()) self.person.set_privacy(self.private.get_active())
if not self.lds_not_loaded: # if not self.lds_not_loaded:
self.check_lds() # self.check_lds()
lds_ord = RelLib.LdsOrd(self.person.get_lds_baptism()) # lds_ord = RelLib.LdsOrd(self.person.get_lds_baptism())
if not self.lds_baptism.are_equal(lds_ord): # if not self.lds_baptism.are_equal(lds_ord):
self.person.set_lds_baptism(self.lds_baptism) # self.person.set_lds_baptism(self.lds_baptism)
lds_ord = RelLib.LdsOrd(self.person.get_lds_endowment()) # lds_ord = RelLib.LdsOrd(self.person.get_lds_endowment())
if not self.lds_endowment.are_equal(lds_ord): # if not self.lds_endowment.are_equal(lds_ord):
self.person.set_lds_endowment(self.lds_endowment) # self.person.set_lds_endowment(self.lds_endowment)
lds_ord = RelLib.LdsOrd(self.person.get_lds_sealing()) # lds_ord = RelLib.LdsOrd(self.person.get_lds_sealing())
if not self.lds_sealing.are_equal(lds_ord): # if not self.lds_sealing.are_equal(lds_ord):
self.person.set_lds_sealing(self.lds_sealing) # self.person.set_lds_sealing(self.lds_sealing)
self.person.set_source_reference_list(self.srcreflist) self.person.set_source_reference_list(self.srcreflist)
self.update_lists() self.update_lists()
@ -767,9 +726,6 @@ class EditPerson(DisplayState.ManagedWindow):
n = self.nd.display(self.person) n = self.nd.display(self.person)
for (event_ref,event) in self.event_box.get_changed_objects():
self.db.commit_event(event,trans)
self.db.transaction_commit(trans,_("Edit Person (%s)") % n) self.db.transaction_commit(trans,_("Edit Person (%s)") % n)
if self.callback: if self.callback:
self.callback(self,self.retval) self.callback(self,self.retval)
@ -812,44 +768,44 @@ class EditPerson(DisplayState.ManagedWindow):
def update_name(self,name): def update_name(self,name):
self.write_primary_name() self.write_primary_name()
def on_ldsbap_source_clicked(self,obj): # def on_ldsbap_source_clicked(self,obj):
Sources.SourceSelector(self.dbstate, self.uistate, self.track, # Sources.SourceSelector(self.dbstate, self.uistate, self.track,
self.lds_baptism.get_source_references(), # self.lds_baptism.get_source_references(),
self,self.update_ldsbap_list) # self,self.update_ldsbap_list)
def update_ldsbap_list(self,list): # def update_ldsbap_list(self,list):
self.lds_baptism.set_source_reference_list(list) # self.lds_baptism.set_source_reference_list(list)
self.lists_changed = True # self.lists_changed = True
def on_ldsbap_note_clicked(self,obj): # def on_ldsbap_note_clicked(self,obj):
NoteEdit.NoteEditor(self.lds_baptism,self,self.window, # NoteEdit.NoteEditor(self.lds_baptism,self,self.window,
readonly=self.db.readonly) # readonly=self.db.readonly)
def on_ldsendow_source_clicked(self,obj): # def on_ldsendow_source_clicked(self,obj):
Sources.SourceSelector(self.dbstate, self.uitstate, self.track, # Sources.SourceSelector(self.dbstate, self.uistate, self.track,
self.lds_endowment.get_source_references(), # self.lds_endowment.get_source_references(),
self,self.set_ldsendow_list) # self,self.set_ldsendow_list)
def set_ldsendow_list(self,list): # def set_ldsendow_list(self,list):
self.lds_endowment.set_source_reference_list(list) # self.lds_endowment.set_source_reference_list(list)
self.lists_changed = True # self.lists_changed = True
def on_ldsendow_note_clicked(self,obj): # def on_ldsendow_note_clicked(self,obj):
NoteEdit.NoteEditor(self.lds_endowment,self,self.window, # NoteEdit.NoteEditor(self.lds_endowment,self,self.window,
readonly=self.db.readonly) # readonly=self.db.readonly)
def on_ldsseal_source_clicked(self,obj): # def on_ldsseal_source_clicked(self,obj):
Sources.SourceSelector(self.dbstate, self.uistate, self.track, # Sources.SourceSelector(self.dbstate, self.uistate, self.track,
self.lds_sealing.get_source_references(), # self.lds_sealing.get_source_references(),
self,self.lds_seal_list) # self,self.lds_seal_list)
def lds_seal_list(self,list): # def lds_seal_list(self,list):
self.lds_sealing.set_source_reference_list(list) # self.lds_sealing.set_source_reference_list(list)
self.lists_changed = True # self.lists_changed = True
def on_ldsseal_note_clicked(self,obj): # def on_ldsseal_note_clicked(self,obj):
NoteEdit.NoteEditor(self.lds_sealing,self,self.window, # NoteEdit.NoteEditor(self.lds_sealing,self,self.window,
readonly=self.db.readonly) # readonly=self.db.readonly)
def load_person_image(self): def load_person_image(self):
media_list = self.person.get_media_list() media_list = self.person.get_media_list()
@ -866,18 +822,6 @@ class EditPerson(DisplayState.ManagedWindow):
else: else:
self.load_photo(None) self.load_photo(None)
def change_name(self,obj):
sel_objs = self.ntree.get_selected_objects()
if sel_objs:
old = self.pname
new = sel_objs[0]
self.nlist.remove(new)
self.nlist.append(old)
self.name_box.redraw()
self.pname = RelLib.Name(new)
self.lists_changed = True
self.write_primary_name()
def write_primary_name(self): def write_primary_name(self):
# initial values # initial values
self.suffix.set_text(self.pname.get_suffix()) self.suffix.set_text(self.pname.get_suffix())
@ -888,8 +832,6 @@ class EditPerson(DisplayState.ManagedWindow):
self.surname.set_text(self.pname.get_surname()) self.surname.set_text(self.pname.get_surname())
self.given.set_text(self.pname.get_first_name()) self.given.set_text(self.pname.get_first_name())
self.ntype_selector.set_values(self.pname.get_type())
self.title.set_text(self.pname.get_title()) self.title.set_text(self.pname.get_title())
def birth_dates_in_order(self,list): def birth_dates_in_order(self,list):

View File

@ -162,3 +162,13 @@ def get_thumbnail_path(path,mtype=None):
if not os.path.isfile(filename): if not os.path.isfile(filename):
set_thumbnail_image(path,mtype) set_thumbnail_image(path,mtype)
return filename return filename
def get_thumb_from_obj(obj):
mtype = obj.get_mime_type()
if mtype[0:5] == "image":
image = get_thumbnail_image(obj.get_path())
else:
image = GrampsMime.find_mime_type_pixbuf(mtype)
if not image:
image = gtk.gdk.pixbuf_new_from_file(const.icon)
return image

View File

@ -537,7 +537,7 @@ class SourceEditor(DisplayState.ManagedWindow):
self.source_ref.set_confidence_level(conf) self.source_ref.set_confidence_level(conf)
self.source_ref.set_privacy(self.private.get_active()) self.source_ref.set_privacy(self.private.get_active())
self.update(self.parent,self.source_ref) self.update(self.source_ref)
self.close(obj) self.close(obj)
def on_source_changed(self,obj): def on_source_changed(self,obj):

View File

@ -1720,9 +1720,6 @@
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
<property name="angle">0</property> <property name="angle">0</property>
<accessibility>
<atkrelation target="city" type="label-for"/>
</accessibility>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -1752,9 +1749,6 @@
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
<property name="angle">0</property> <property name="angle">0</property>
<accessibility>
<atkrelation target="state" type="label-for"/>
</accessibility>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -1816,9 +1810,6 @@
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
<property name="angle">0</property> <property name="angle">0</property>
<accessibility>
<atkrelation target="country" type="label-for"/>
</accessibility>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -16116,9 +16107,6 @@ Very High</property>
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
<property name="angle">0</property> <property name="angle">0</property>
<accessibility>
<atkrelation target="city" type="label-for"/>
</accessibility>
</widget> </widget>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
@ -16182,7 +16170,6 @@ Very High</property>
<property name="angle">0</property> <property name="angle">0</property>
<accessibility> <accessibility>
<atkproperty name="AtkObject::accessible_name" translatable="yes">Country:</atkproperty> <atkproperty name="AtkObject::accessible_name" translatable="yes">Country:</atkproperty>
<atkrelation target="country" type="label-for"/>
</accessibility> </accessibility>
</widget> </widget>
<packing> <packing>
@ -16215,7 +16202,6 @@ Very High</property>
<property name="angle">0</property> <property name="angle">0</property>
<accessibility> <accessibility>
<atkproperty name="AtkObject::accessible_name" translatable="yes">State:</atkproperty> <atkproperty name="AtkObject::accessible_name" translatable="yes">State:</atkproperty>
<atkrelation target="state" type="label-for"/>
</accessibility> </accessibility>
</widget> </widget>
<packing> <packing>
@ -16597,6 +16583,423 @@ Very High</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkTable" id="table26">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">5</property>
<property name="n_columns">7</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<widget class="GtkLabel" id="label209">
<property name="visible">True</property>
<property name="label" translatable="yes">_Date:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">address_start</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label210">
<property name="visible">True</property>
<property name="label" translatable="yes">Add_ress:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">street</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label214">
<property name="visible">True</property>
<property name="label" translatable="yes">_City/County:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">city</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="city">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label215">
<property name="visible">True</property>
<property name="label" translatable="yes">_State/Province:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">state</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label217">
<property name="visible">True</property>
<property name="label" translatable="yes">_ZIP/Postal code:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">postal</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="postal">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label216">
<property name="visible">True</property>
<property name="label" translatable="yes">Cou_ntry:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">country</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label295">
<property name="visible">True</property>
<property name="label" translatable="yes">P_hone:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">phone</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="phone">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="priv">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Private record</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">5</property>
<property name="right_attach">6</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkButton" id="date_stat">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkImage" id="date_stat_child">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">6</property>
<property name="right_attach">7</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="address_start">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">6</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="street">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">7</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="state">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">5</property>
<property name="right_attach">7</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="country">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">5</property>
<property name="right_attach">7</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child> <child>
<widget class="GtkNotebook" id="notebook2"> <widget class="GtkNotebook" id="notebook2">
<property name="visible">True</property> <property name="visible">True</property>
@ -16608,490 +17011,6 @@ Very High</property>
<property name="enable_popup">False</property> <property name="enable_popup">False</property>
<signal name="switch_page" handler="on_switch_page" last_modification_time="Wed, 12 Nov 2003 18:09:04 GMT"/> <signal name="switch_page" handler="on_switch_page" last_modification_time="Wed, 12 Nov 2003 18:09:04 GMT"/>
<child>
<widget class="GtkTable" id="table26">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">8</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<widget class="GtkLabel" id="label209">
<property name="visible">True</property>
<property name="label" translatable="yes">_Date:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">address_start</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
<atkrelation target="address_start" type="label-for"/>
</accessibility>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label210">
<property name="visible">True</property>
<property name="label" translatable="yes">Add_ress:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">street</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
<atkrelation target="street" type="label-for"/>
</accessibility>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label214">
<property name="visible">True</property>
<property name="label" translatable="yes">_City/County:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">city</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
<atkrelation target="city" type="label-for"/>
</accessibility>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label215">
<property name="visible">True</property>
<property name="label" translatable="yes">_State/Province:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">state</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
<atkrelation target="state" type="label-for"/>
</accessibility>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label216">
<property name="visible">True</property>
<property name="label" translatable="yes">Cou_ntry:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">country</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
<atkrelation target="country" type="label-for"/>
</accessibility>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label217">
<property name="visible">True</property>
<property name="label" translatable="yes">_ZIP/Postal code:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">postal</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
<atkrelation target="postal" type="label-for"/>
</accessibility>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="address_start">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="street">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="city">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="state">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="country">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="postal">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label295">
<property name="visible">True</property>
<property name="label" translatable="yes">P_hone:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">phone</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="phone">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkButton" id="date_stat">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkImage" id="date_stat_child">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="priv">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Private record</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="general_tab">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkImage" id="image2580">
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label282">
<property name="visible">True</property>
<property name="label" translatable="yes">General</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child> <child>
<widget class="GtkVBox" id="vbox40"> <widget class="GtkVBox" id="vbox40">
<property name="visible">True</property> <property name="visible">True</property>