add renderer instance
authorMax Usachev <maxusachev@gmail.com>
Thu, 17 Jun 2010 06:06:47 +0000 (09:06 +0300)
committerMax Usachev <maxusachev@gmail.com>
Thu, 17 Jun 2010 06:06:47 +0000 (09:06 +0300)
renderers/__init__.py [new file with mode: 0644]
renderers/hildon_renderer.py [new file with mode: 0644]

diff --git a/renderers/__init__.py b/renderers/__init__.py
new file mode 100644 (file)
index 0000000..b28b04f
--- /dev/null
@@ -0,0 +1,3 @@
+
+
+
diff --git a/renderers/hildon_renderer.py b/renderers/hildon_renderer.py
new file mode 100644 (file)
index 0000000..e56f952
--- /dev/null
@@ -0,0 +1,49 @@
+"""
+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
+