import gtk
import hildon
-ICONS_PATH = '/usr/share/icons/hicolor/48x48/hildon/'
+ICONS_48_PATH = '/usr/share/icons/hicolor/48x48/hildon/'
+ICONS_144_PATH = '/usr/share/icons/hicolor/144x144/hildon/'
class HildonRenderer:
def __init__(self):
'roomNumber': 'general_presence_home.png',
'gender': 'camera_scene_mode_portrait.png',
'title': 'general_certificate.png',
- 'personalTitle': 'general_certificate.png'
- }
+ 'personalTitle': 'general_certificate.png'}
def render_button(self, title, value, field=None):
"""Set necessary image for field."""
button.set_style(hildon.BUTTON_STYLE_PICKER)
button.set_alignment(0, 0.5, 0, 0)
if field is not None:
- image = gtk.image_new_from_file(os.path.join(ICONS_PATH,
+ image = gtk.image_new_from_file(os.path.join(ICONS_48_PATH,
self.fields_dict.get(field, 'general_business_card.png')))
button.set_image(image)
return button
+ def render_image(self, entry):
+ """Sets entry image."""
+
+ fname = os.path.join(ICONS_144_PATH, entry.get('image', \
+ 'general_default_avatar.png'))
+ return gtk.image_new_from_file(fname)
func2(parent, entry_id)
def update_entry(window, entry_id):
+ # create widgets
+ entry = self.controller.get_item(entry_id)
+ widgets_table = gtk.Table(rows=1, columns=1)
+ info_box = gtk.VBox()
+ image_box = gtk.VBox()
pannable_area = hildon.PannableArea()
- vbox = gtk.VBox()
- for fname, fvalue in self.controller.get_item(entry_id):
+ image = self.renderer.render_image(dict(entry))
+ for fname, fvalue in entry:
button = self.renderer.render_button(_(fname) , fvalue, fname)
- vbox.pack_start(button, expand=False)
- pannable_area.add_with_viewport(vbox)
+ info_box.pack_start(button, expand=False)
+ # pack widgets
+ image_box.pack_start(image, expand=False)
+ widgets_table.attach(image_box, 0, 1, 0, 1, xoptions=gtk.SHRINK, \
+ yoptions=gtk.FILL, ypadding=8)
+ pannable_area.add_with_viewport(info_box)
+ widgets_table.attach(pannable_area, 1, 2, 0, 1, ypadding=8)
child = window.get_child()
if child:
child.destroy()
- window.add(pannable_area)
+ window.add(widgets_table)
pannable_area.show_all()