From 8aa45c5199e8e4b99f19511f121230e89a1a0735 Mon Sep 17 00:00:00 2001
From: Eben Eliason <[EMAIL PROTECTED]>
Date: Tue, 15 Apr 2008 22:59:59 -0400
Subject: [PATCH] Replace the "back bar" in the detail view

---
 detailview.py      |   49 ++++++++++++++++++++++++++++++++++++++++++++++++-
 journalactivity.py |    2 +-
 journaltoolbox.py  |   13 -------------
 3 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/detailview.py b/detailview.py
index d6688bc..9d08550 100644
--- a/detailview.py
+++ b/detailview.py
@@ -30,6 +30,12 @@ from expandedentry import ExpandedEntry
 from keepicon import KeepIcon
 
 class DetailView(gtk.VBox):
+    __gtype_name__ = 'DetailView'
+
+    __gsignals__ = {
+        'go-back-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([]))
+    }
+
     def __init__(self):
         gtk.VBox.__init__(self)
 
@@ -39,16 +45,25 @@ class DetailView(gtk.VBox):
         canvas = hippo.Canvas()
         self.pack_start(canvas)
         canvas.show()
-        
+
         self._root = hippo.CanvasBox()
         self._root.props.background_color = style.COLOR_PANEL_GREY.get_int()
         canvas.set_root(self._root)
 
+        back_bar = BackBar()
+        back_bar.connect('button-release-event',
+                         self._back_bar_release_event_cb)
+        self._root.append(back_bar)
+        
     def _fav_icon_activated_cb(self, fav_icon):
         keep = not self._expanded_entry.get_keep()
         self._expanded_entry.set_keep(keep)
         fav_icon.props.keep = keep
 
+    def _back_bar_release_event_cb(self, back_bar, event):
+        self.emit('go-back-clicked')
+        return False
+
     def _update_view(self):
         if self._expanded_entry:
             self._root.remove(self._expanded_entry)
@@ -59,6 +74,9 @@ class DetailView(gtk.VBox):
             gc.collect()
         if self._jobject:
             self._expanded_entry = ExpandedEntry(self._jobject.object_id)
+
+            back_bar = hippo.CanvasBox()
+
             self._root.append(self._expanded_entry, hippo.PACK_EXPAND)
 
     def set_jobject(self, jobject):
@@ -70,3 +88,32 @@ class DetailView(gtk.VBox):
         if self._jobject:
             self._jobject = datastore.get(self._jobject.object_id)
             self._update_view()
+
+class BackBar(hippo.CanvasBox):
+    def __init__(self):
+        hippo.CanvasBox.__init__(self,
+                orientation=hippo.ORIENTATION_HORIZONTAL,
+                border=style.LINE_WIDTH,
+                background_color=style.COLOR_PANEL_GREY.get_int(),
+                border_color=style.COLOR_SELECTION_GREY.get_int(),
+                padding=style.DEFAULT_PADDING,
+                padding_left=style.DEFAULT_SPACING,
+                spacing=style.DEFAULT_SPACING)
+
+        icon = CanvasIcon(icon_name='go-previous',
+                          size=style.SMALL_ICON_SIZE,
+                          fill_color=style.COLOR_TOOLBAR_GREY.get_svg())
+        self.append(icon)
+
+        label = hippo.CanvasText(text=_('Back'),
+                                 font_desc=style.FONT_NORMAL.get_pango_desc())
+        self.append(label)
+
+        self.connect('motion-notify-event', self._motion_notify_event_cb)
+
+    def _motion_notify_event_cb(self, box, event):
+        if event.detail == hippo.MOTION_DETAIL_ENTER:
+            box.props.background_color = style.COLOR_SELECTION_GREY.get_int()
+        elif event.detail == hippo.MOTION_DETAIL_LEAVE:
+            box.props.background_color = style.COLOR_PANEL_GREY.get_int()
+        return False
diff --git a/journalactivity.py b/journalactivity.py
index a549210..061105d 100755
--- a/journalactivity.py
+++ b/journalactivity.py
@@ -165,9 +165,9 @@ class JournalActivity(activity.Activity):
         self._detail_toolbox = DetailToolbox()
         entry_toolbar = self._detail_toolbox.entry_toolbar
         entry_toolbar.connect('entry-erased', self._entry_erased_cb)
-        entry_toolbar.connect('go-back-clicked', self._go_back_clicked_cb)
 
         self._detail_view = DetailView()
+        self._detail_view.connect('go-back-clicked', self._go_back_clicked_cb)
         self._secondary_view.pack_end(self._detail_view)
         self._detail_view.show()
 
diff --git a/journaltoolbox.py b/journaltoolbox.py
index f018af6..98d549b 100644
--- a/journaltoolbox.py
+++ b/journaltoolbox.py
@@ -320,9 +320,6 @@ class EntryToolbar(gtk.Toolbar):
     __gtype_name__ = 'EntryToolbar'
 
     __gsignals__ = {
-        'go-back-clicked': (gobject.SIGNAL_RUN_FIRST,
-                            gobject.TYPE_NONE,
-                            ([])),
         'entry-erased'   : (gobject.SIGNAL_RUN_FIRST,
                             gobject.TYPE_NONE,
                             ([]))
@@ -331,12 +328,6 @@ class EntryToolbar(gtk.Toolbar):
     def __init__(self):
         gtk.Toolbar.__init__(self)
 
-        go_back_button = ToolButton('go-previous')
-        go_back_button.set_tooltip(_('Back'))
-        go_back_button.connect('clicked', self._go_back_button_clicked_cb)
-        self.add(go_back_button)
-        go_back_button.show()
-
         self._resume = ToolButton('activity-start')
         self._resume.connect('clicked', self._resume_clicked_cb)
         self.add(self._resume)
@@ -392,10 +383,6 @@ class EntryToolbar(gtk.Toolbar):
             datastore.delete(self._jobject.object_id)
             self.emit('entry-erased')
 
-    def _go_back_button_clicked_cb(self, back_bar):
-        self.emit('go-back-clicked')
-        return False
-
     def _resume_menu_item_activate_cb(self, menu_item, service_name):
         if self._jobject:
             self._jobject.resume(service_name)
-- 
1.5.3.3

_______________________________________________
Sugar mailing list
[email protected]
http://lists.laptop.org/listinfo/sugar

Reply via email to