e56f9525a8fe21d63272d83ae7386c487a013dd3
[meabook] / renderers / hildon_renderer.py
1 """
2 Hildon renderer
3 """
4
5 import os
6 import gtk
7 import hildon
8
9 ICONS_PATH = '/usr/share/icons/hicolor/48x48/hildon/'
10
11 class HildonRenderer:
12     def __init__(self):
13         self.fields_dict = {
14             'homePhone': 'general_call.png',
15             'telephoneNumber': 'general_call.png',
16             'internalPhone': 'general_call.png',
17             'mobile': 'call_status_cellular.png',
18             'mail': 'general_email.png',
19             'dateOfBirth': 'calendar_birthday.png',
20             'cn': 'general_default_avatar.png',
21             'sn': 'general_default_avatar.png',
22             'gecos': 'general_default_avatar.png',
23             'givenName': 'general_default_avatar.png',
24             'initials': 'general_default_avatar.png',
25             'o': 'call_split_conference_call.png',
26             'ou': 'call_split_conference_call.png',
27             'uid': 'general_certificate_private_key.png',
28             'uidNumber': 'general_certificate_private_key.png',
29             'employeeNumber': 'general_certificate_private_key.png',
30             'roomNumber': 'general_presence_home.png',
31             'gender': 'camera_scene_mode_portrait.png',
32             'title': 'general_certificate.png',
33             'personalTitle': 'general_certificate.png'
34         }
35
36     def render_button(self, title, value, field=None):
37         """Set necessary image for field."""
38
39         button = hildon.Button(gtk.HILDON_SIZE_AUTO | \
40             gtk.HILDON_SIZE_FINGER_HEIGHT, \
41             hildon.BUTTON_ARRANGEMENT_VERTICAL, title, value)
42         button.set_style(hildon.BUTTON_STYLE_PICKER)
43         button.set_alignment(0, 0.5, 0, 0)
44         if field is not None:
45             image = gtk.image_new_from_file(os.path.join(ICONS_PATH,
46                 self.fields_dict.get(field, 'general_business_card.png')))
47             button.set_image(image)
48         return button
49