Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-04-27 13:40:26 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-04-27 13:40:26 (GMT)
commitc73bf4b3f8123a1d7e988c96806cfbd1f8ee413c (patch)
treea680262c9b788b1c6de73c3d83cbe69353e690ec
parent678d709d87b8d87cf67043d67b01c0550de35fc3 (diff)
Adapt to new controls API.
-rw-r--r--XbookActivity.py20
-rw-r--r--xbooktoolbar.py152
2 files changed, 106 insertions, 66 deletions
diff --git a/XbookActivity.py b/XbookActivity.py
index cd6f3e3..5341229 100644
--- a/XbookActivity.py
+++ b/XbookActivity.py
@@ -37,26 +37,26 @@ class XbookActivity(activity.Activity):
evince.job_queue_init()
self._view = evince.View()
-
- vbox = hippo.CanvasBox()
- self.set_root(vbox)
+
+ toolbox = activity.ActivityToolbox(self)
self._toolbar = XbookToolbar(self._view)
self._toolbar.connect('open-document', self._open_document_cb)
- vbox.append(self._toolbar)
+ toolbox.add_toolbar(_('View'), self._toolbar)
+ self._toolbar.show()
+
+ self.set_toolbox(toolbox)
+ toolbox.show()
- canvas_widget = hippo.CanvasWidget()
- vbox.append(canvas_widget, hippo.PACK_EXPAND)
-
scrolled = gtk.ScrolledWindow()
scrolled.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
scrolled.props.shadow_type = gtk.SHADOW_NONE
- canvas_widget.props.widget = scrolled
- scrolled.show()
-
scrolled.add(self._view)
self._view.show()
+
+ self.set_canvas(scrolled)
+ scrolled.show()
if handle.uri:
self._load_document(handle.uri)
diff --git a/xbooktoolbar.py b/xbooktoolbar.py
index 4bf82aa..90afac8 100644
--- a/xbooktoolbar.py
+++ b/xbooktoolbar.py
@@ -17,18 +17,14 @@
import logging
from gettext import gettext as _
-import hippo
+import pango
import gobject
+import gtk
-from sugar.graphics import font
-from sugar.graphics import color
-from sugar.graphics import units
-from sugar.graphics.toolbar import Toolbar
-from sugar.graphics.iconbutton import IconButton
-from sugar.graphics.entry import Entry
+from sugar.graphics.toolbutton import ToolButton
-class XbookToolbar(Toolbar):
- __gtype_name__ = "XbookToolbar"
+class XbookToolbar(gtk.Toolbar):
+ __gtype_name__ = 'XbookToolbar'
__gsignals__ = {
'open-document': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
@@ -36,7 +32,7 @@ class XbookToolbar(Toolbar):
}
def __init__(self, evince_view):
- Toolbar.__init__(self)
+ gtk.Toolbar.__init__(self)
self._evince_view = evince_view
self._document = None
@@ -49,63 +45,107 @@ class XbookToolbar(Toolbar):
def set_document(self, document):
self._document = document
- self._document.connect("find_changed", self._find_changed_cb)
+ self._document.connect('find_changed', self._find_changed_cb)
page_cache = self._document.get_page_cache()
- page_cache.connect("page-changed", self._page_changed_cb)
+ page_cache.connect('page-changed', self._page_changed_cb)
self._update_nav_buttons()
def _insert_spring(self):
- separator = hippo.CanvasBox()
- self.append(separator, hippo.PACK_EXPAND)
+ separator = gtk.SeparatorToolItem()
+ separator.set_draw(False)
+ separator.set_expand(True)
+ self.insert(separator, -1)
+ separator.show()
def _insert_opensave_items(self):
- self._open = IconButton(icon_name='theme:stock-open', tooltip=_('Open'))
- self._open.connect("activated", self._open_cb)
- self.append(self._open)
+ self._open = ToolButton()
+ self._open.set_icon_name('stock-open')
+ self._open.connect('clicked', self._open_cb)
+ self.insert(self._open, -1)
+ self._open.show()
def _insert_nav_items(self):
- self._back = IconButton(icon_name='theme:stock-back', active=False,
- tooltip=_('Back'))
- self._back.connect("activated", self._go_back_cb)
- self.append(self._back)
-
- self._forward = IconButton(icon_name='theme:stock-forward', active=False,
- tooltip=_('Forward'))
- self._forward.connect("activated", self._go_forward_cb)
- self.append(self._forward)
-
- self._num_page_entry = Entry(text='0', box_width=units.grid_to_pixels(1))
- self._num_page_entry.connect("activated",
- self._num_page_entry_activated_cb)
- self.append(self._num_page_entry)
-
- self._total_page_label = hippo.CanvasText(text=' / 0',
- font_desc=font.DEFAULT.get_pango_desc(),
- color=color.WHITE.get_int())
- self.append(self._total_page_label)
-
+ self._back = ToolButton()
+ self._back.props.sensitive = False
+ self._back.set_icon_name('stock-back')
+ self._back.connect('clicked', self._go_back_cb)
+ self.insert(self._back, -1)
+ self._back.show()
+
+ self._forward = ToolButton()
+ self._back.props.sensitive = False
+ self._forward.set_icon_name('stock-forward')
+ self._forward.connect('clicked', self._go_forward_cb)
+ self.insert(self._forward, -1)
+ self._forward.show()
+
+ num_page_item = gtk.ToolItem()
+
+ self._num_page_entry = gtk.Entry()
+ self._num_page_entry.set_text('0')
+ self._num_page_entry.set_alignment(1)
+ self._num_page_entry.connect('activate',
+ self._num_page_entry_activate_cb)
+
+ self._num_page_entry.set_width_chars(4)
+
+ num_page_item.add(self._num_page_entry)
+ self._num_page_entry.show()
+
+ self.insert(num_page_item, -1)
+ num_page_item.show()
+
+ total_page_item = gtk.ToolItem()
+
+ self._total_page_label = gtk.Label()
+
+ label_attributes = pango.AttrList()
+ label_attributes.insert(pango.AttrSize(14000, 0, -1))
+ label_attributes.insert(pango.AttrForeground(65535, 65535, 65535, 0, -1))
+ self._total_page_label.set_attributes(label_attributes)
+
+ self._total_page_label.set_text(' / 0')
+ total_page_item.add(self._total_page_label)
+ self._total_page_label.show()
+
+ self.insert(total_page_item, -1)
+ total_page_item.show()
+
def _insert_search_items(self):
- self._search_entry = Entry()
- self._search_entry.connect("activated", self._search_entry_activated_cb)
-
- self.append(self._search_entry, hippo.PACK_EXPAND)
+ search_item = gtk.ToolItem()
+
+ self._search_entry = gtk.Entry()
+ self._search_entry.connect('activate', self._search_entry_activate_cb)
+
+ width = int(gtk.gdk.screen_width() / 3)
+ self._search_entry.set_size_request(width, -1)
+
+ search_item.add(self._search_entry)
+ self._search_entry.show()
+
+ self.insert(search_item, -1)
+ search_item.show()
- self._prev = IconButton(icon_name='theme:stock-back', active=False,
- tooltip=_('Previous'))
- self._prev.connect("activated", self._find_prev_cb)
- self.append(self._prev)
+ self._prev = ToolButton()
+ self._prev.props.sensitive = False
+ self._prev.set_icon_name('stock-back')
+ self._prev.connect('clicked', self._find_prev_cb)
+ self.insert(self._prev, -1)
+ self._prev.show()
- self._next = IconButton(icon_name='theme:stock-forward', active=False,
- tooltip=_('Next'))
- self._next.connect("activated", self._find_next_cb)
- self.append(self._next)
+ self._next = ToolButton()
+ self._next.props.sensitive = False
+ self._next.set_icon_name('stock-forward')
+ self._next.connect('clicked', self._find_next_cb)
+ self.insert(self._next, -1)
+ self._next.show()
- def _num_page_entry_activated_cb(self, entry):
+ def _num_page_entry_activate_cb(self, entry):
page = int(entry.props.text) - 1
self._document.get_page_cache().set_current_page(page)
- def _search_entry_activated_cb(self, entry):
+ def _search_entry_activate_cb(self, entry):
current_page = self._document.get_page_cache().get_current_page()
self._document.find_begin(0, entry.props.text, False)
self._update_find_buttons()
@@ -130,17 +170,17 @@ class XbookToolbar(Toolbar):
def _update_nav_buttons(self):
current_page = self._document.get_page_cache().get_current_page()
- self._back.props.active = current_page > 0
- self._forward.props.active = \
+ self._back.props.sensitive = current_page > 0
+ self._forward.props.sensitive = \
current_page < self._document.get_n_pages() - 1
self._num_page_entry.props.text = str(current_page + 1)
- self._total_page_label.props.text = \
+ self._total_page_label.props.label = \
' / ' + str(self._document.get_n_pages())
def _update_find_buttons(self):
- self._prev.props.active = self._evince_view.can_find_previous()
- self._next.props.active = self._evince_view.can_find_next()
+ self._prev.props.sensitive = self._evince_view.can_find_previous()
+ self._next.props.sensitive = self._evince_view.can_find_next()
def _open_cb(self, button):
self.emit('open-document')