--- /dev/null
+"""
+Hildon renderer
+"""
+
+import os
+import gtk
+import hildon
+
+ICONS_PATH = '/usr/share/icons/hicolor/48x48/hildon/'
+
+class HildonRenderer:
+ def __init__(self):
+ self.fields_dict = {
+ 'homePhone': 'general_call.png',
+ 'telephoneNumber': 'general_call.png',
+ 'internalPhone': 'general_call.png',
+ 'mobile': 'call_status_cellular.png',
+ 'mail': 'general_email.png',
+ 'dateOfBirth': 'calendar_birthday.png',
+ 'cn': 'general_default_avatar.png',
+ 'sn': 'general_default_avatar.png',
+ 'gecos': 'general_default_avatar.png',
+ 'givenName': 'general_default_avatar.png',
+ 'initials': 'general_default_avatar.png',
+ 'o': 'call_split_conference_call.png',
+ 'ou': 'call_split_conference_call.png',
+ 'uid': 'general_certificate_private_key.png',
+ 'uidNumber': 'general_certificate_private_key.png',
+ 'employeeNumber': 'general_certificate_private_key.png',
+ 'roomNumber': 'general_presence_home.png',
+ 'gender': 'camera_scene_mode_portrait.png',
+ 'title': 'general_certificate.png',
+ 'personalTitle': 'general_certificate.png'
+ }
+
+ def render_button(self, title, value, field=None):
+ """Set necessary image for field."""
+
+ button = hildon.Button(gtk.HILDON_SIZE_AUTO | \
+ gtk.HILDON_SIZE_FINGER_HEIGHT, \
+ hildon.BUTTON_ARRANGEMENT_VERTICAL, title, value)
+ 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,
+ self.fields_dict.get(field, 'general_business_card.png')))
+ button.set_image(image)
+ return button
+