diff options
author | Eben Eliason <eben@localhost.localdomain> | 2008-04-16 04:19:14 (GMT) |
---|---|---|
committer | Eben Eliason <eben@localhost.localdomain> | 2008-04-16 04:19:14 (GMT) |
commit | 25608650d0980ec4de50fb9d12f8c1c17df2370f (patch) | |
tree | 1d738bff2c3e402fd9fcc80e1d6314606350faf4 /expandedentry.py | |
parent | f2d43be8b170f51a862dc595a587c4a50a0e79f0 (diff) |
First pass at refining the Journal visual design
Diffstat (limited to 'expandedentry.py')
-rw-r--r-- | expandedentry.py | 122 |
1 files changed, 74 insertions, 48 deletions
diff --git a/expandedentry.py b/expandedentry.py index 65b7808..1bb7993 100644 --- a/expandedentry.py +++ b/expandedentry.py @@ -51,18 +51,23 @@ class CanvasTextView(hippo.CanvasWidget): hippo.CanvasWidget.__init__(self, **kwargs) self.text_view_widget = gtk.TextView() self.text_view_widget.props.buffer.props.text = text + self.text_view_widget.props.left_margin = style.DEFAULT_SPACING + self.text_view_widget.props.right_margin = style.DEFAULT_SPACING + self.text_view_widget.props.wrap_mode = gtk.WRAP_WORD self.text_view_widget.show() + # TODO: These fields should expand vertically instead of scrolling scrolled_window = gtk.ScrolledWindow() scrolled_window.set_shadow_type(gtk.SHADOW_OUT) - scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) scrolled_window.add(self.text_view_widget) self.props.widget = scrolled_window class BuddyList(hippo.CanvasBox): def __init__(self, model): - hippo.CanvasBox.__init__(self, xalign=hippo.ALIGNMENT_START) + hippo.CanvasBox.__init__(self, xalign=hippo.ALIGNMENT_START, + orientation=hippo.ORIENTATION_HORIZONTAL) for buddy in model: nick, color = buddy @@ -71,65 +76,64 @@ class BuddyList(hippo.CanvasBox): xo_color=XoColor(color), size=style.STANDARD_ICON_SIZE) hbox.append(icon) - - label = hippo.CanvasText(text=nick, - font_desc=style.FONT_NORMAL.get_pango_desc()) - hbox.append(label) - self.append(hbox) class ExpandedEntry(hippo.CanvasBox): def __init__(self, object_id): hippo.CanvasBox.__init__(self) - self.props.orientation = hippo.ORIENTATION_HORIZONTAL + self.props.orientation = hippo.ORIENTATION_VERTICAL self.props.background_color = style.COLOR_WHITE.get_int() - self.props.spacing = style.DEFAULT_SPACING - self.props.padding = style.DEFAULT_PADDING + self.props.padding_top = style.DEFAULT_SPACING * 3 self._jobject = datastore.get(object_id) self._update_title_sid = None - # Create three columns + # Create header + header = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL, + padding=style.DEFAULT_PADDING, + padding_right=style.GRID_CELL_SIZE, + spacing=style.DEFAULT_SPACING) + self.append(header) + + # Create two column body + + body = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL, + spacing=style.DEFAULT_SPACING * 3, + padding_left=style.GRID_CELL_SIZE, + padding_right=style.GRID_CELL_SIZE, + padding_top=style.DEFAULT_SPACING * 3) + + self.append(body, hippo.PACK_EXPAND) + first_column = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL, - padding=style.DEFAULT_PADDING, spacing=style.DEFAULT_SPACING) - self.append(first_column) + body.append(first_column) second_column = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL, - padding_right=style.GRID_CELL_SIZE, - padding=style.DEFAULT_PADDING, - spacing=style.DEFAULT_SPACING) - self.append(second_column, hippo.PACK_EXPAND) + spacing=style.DEFAULT_SPACING) + body.append(second_column, hippo.PACK_EXPAND) - self.append(Separator(hippo.ORIENTATION_VERTICAL)) - - third_column = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL, - box_width=style.GRID_CELL_SIZE * 4) - self.append(third_column) + # Header - # First column self._keep_icon = self._create_keep_icon() - first_column.append(self._keep_icon) + header.append(self._keep_icon) - # Second column - header = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL, - spacing=style.DEFAULT_SPACING) - second_column.append(header) - self._icon = self._create_icon() header.append(self._icon) self._title = self._create_title() header.append(self._title, hippo.PACK_EXPAND) - hbox = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL) - second_column.append(hbox) + # TODO: create a version list popup instead of a date label + self._date = self._create_date() + header.append(self._date) + + # First column self._preview = self._create_preview() - hbox.append(self._preview) + first_column.append(self._preview) - self._buddy_list = self._create_buddy_list() - hbox.append(self._buddy_list) + # Second column description_box, self._description = self._create_description() second_column.append(description_box) @@ -137,9 +141,8 @@ class ExpandedEntry(hippo.CanvasBox): tags_box, self._tags = self._create_tags() second_column.append(tags_box) - # Third column - self._version_list = self._create_version_list() - third_column.append(self._version_list) + self._buddy_list = self._create_buddy_list() + second_column.append(self._buddy_list) def _create_keep_icon(self): keep = self._jobject.metadata.has_key('keep') and \ @@ -177,6 +180,12 @@ class ExpandedEntry(hippo.CanvasBox): self._title_focus_out_event_cb) return title + def _create_date(self): + date = hippo.CanvasText(xalign=hippo.ALIGNMENT_START, + font_desc=style.FONT_NORMAL.get_pango_desc(), + text = misc.get_date(self._jobject)) + return date + def _create_preview(self): width = style.zoom(320) height = style.zoom(240) @@ -223,22 +232,36 @@ class ExpandedEntry(hippo.CanvasBox): return box def _create_buddy_list(self): + + vbox = hippo.CanvasBox() + vbox.props.spacing = style.DEFAULT_SPACING + + text = hippo.CanvasText(text=_('Participants:'), + xalign=hippo.ALIGNMENT_START, + font_desc=style.FONT_NORMAL.get_pango_desc()) + text.props.color=style.COLOR_BUTTON_GREY.get_int() + vbox.append(text) + if self._jobject.metadata.has_key('buddies') and \ self._jobject.metadata['buddies']: # json cannot read unicode strings buddies_str = self._jobject.metadata['buddies'].encode('utf8') buddies = json.read(buddies_str).values() - return BuddyList(buddies) + vbox.append(BuddyList(buddies)) + return vbox else: - return BuddyList([]) + return vbox def _create_description(self): vbox = hippo.CanvasBox() - #vbox.props.spacing = style.DEFAULT_SPACING - vbox.append(hippo.CanvasText(text=_('Description:'), - xalign=hippo.ALIGNMENT_START, - font_desc=style.FONT_NORMAL.get_pango_desc())) - + vbox.props.spacing = style.DEFAULT_SPACING + + text = hippo.CanvasText(text=_('Description:'), + xalign=hippo.ALIGNMENT_START, + font_desc=style.FONT_NORMAL.get_pango_desc()) + text.props.color=style.COLOR_BUTTON_GREY.get_int() + vbox.append(text) + description = self._jobject.metadata.get('description', '') text_view = CanvasTextView(description, box_height=style.GRID_CELL_SIZE * 2) vbox.append(text_view, hippo.PACK_EXPAND) @@ -251,10 +274,13 @@ class ExpandedEntry(hippo.CanvasBox): def _create_tags(self): vbox = hippo.CanvasBox() - #vbox.props.spacing = style.DEFAULT_SPACING - vbox.append(hippo.CanvasText(text=_('Tags:'), - xalign=hippo.ALIGNMENT_START, - font_desc=style.FONT_NORMAL.get_pango_desc())) + vbox.props.spacing = style.DEFAULT_SPACING + + text = hippo.CanvasText(text=_('Tags:'), + xalign=hippo.ALIGNMENT_START, + font_desc=style.FONT_NORMAL.get_pango_desc()) + text.props.color=style.COLOR_BUTTON_GREY.get_int() + vbox.append(text) tags = self._jobject.metadata.get('tags', '') text_view = CanvasTextView(tags, box_height=style.GRID_CELL_SIZE * 2) |