added files
authortanya <tanyshk@gmail.com>
Wed, 23 Jun 2010 13:49:14 +0000 (16:49 +0300)
committertanya <tanyshk@gmail.com>
Wed, 23 Jun 2010 13:49:14 +0000 (16:49 +0300)
renderers/diablo_renderer.py [new file with mode: 0644]
renderers/fremantle_renderer.py [new file with mode: 0644]

diff --git a/renderers/diablo_renderer.py b/renderers/diablo_renderer.py
new file mode 100644 (file)
index 0000000..e33c5f1
--- /dev/null
@@ -0,0 +1,4 @@
+class DiabloRenderer:
+
+    def __init__(self):
+        pass
diff --git a/renderers/fremantle_renderer.py b/renderers/fremantle_renderer.py
new file mode 100644 (file)
index 0000000..c014254
--- /dev/null
@@ -0,0 +1,64 @@
+"""
+Fremantle renderer
+"""
+
+import os
+import gtk
+import gtk.gdk
+import hildon
+from base64 import b64decode as decode_image
+
+ICONS_48_PATH = '/usr/share/icons/hicolor/48x48/hildon/'
+ICONS_144_PATH = '/usr/share/icons/hicolor/144x144/hildon/'
+
+class FremantleRenderer:
+    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_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."""
+
+        if not entry.has_key('image'):
+            fname  = os.path.join(ICONS_144_PATH, entry.get('image', \
+                'general_default_avatar.png'))
+            image = gtk.image_new_from_file(fname)
+        else:
+            pixbuf_loader = gtk.gdk.PixbufLoader()
+            pixbuf_loader.write(entry['image'])
+            pixbuf_loader.close()
+            image = gtk.image_new_from_pixbuf(pixbuf_loader.get_pixbuf())
+        return image