16 | 16 |
import logging
|
17 | 17 |
|
18 | 18 |
import hippo
|
|
19 |
import gtk
|
|
20 |
from gettext import gettext as _
|
|
21 |
import gobject
|
19 | 22 |
|
20 | 23 |
from sugar.graphics import font
|
21 | 24 |
from sugar.graphics import color
|
|
25 | 28 |
from sugar.graphics.entry import Entry
|
26 | 29 |
|
27 | 30 |
class XbookToolbar(Toolbar):
|
|
31 |
__gtype_name__ = "XbookToolbar"
|
|
32 |
|
|
33 |
__gsignals__ = {
|
|
34 |
'open-document': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
|
|
35 |
([gobject.TYPE_STRING])),
|
|
36 |
'save-document': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
|
|
37 |
([gobject.TYPE_STRING]))
|
|
38 |
}
|
|
39 |
|
28 | 40 |
def __init__(self, evince_view):
|
29 | 41 |
Toolbar.__init__(self)
|
30 | 42 |
|
31 | 43 |
self._evince_view = evince_view
|
32 | 44 |
self._document = None
|
33 | 45 |
|
|
46 |
self._insert_opensave_items()
|
|
47 |
self._insert_spring()
|
34 | 48 |
self._insert_nav_items()
|
35 | 49 |
self._insert_spring()
|
36 | 50 |
self._insert_search_items()
|
|
46 | 60 |
def _insert_spring(self):
|
47 | 61 |
separator = hippo.CanvasBox()
|
48 | 62 |
self.append(separator, hippo.PACK_EXPAND)
|
|
63 |
|
|
64 |
def _insert_opensave_items(self):
|
|
65 |
self._open = IconButton(icon_name='theme:stock-open', active=True)
|
|
66 |
self._open.connect("activated", self._open_cb)
|
|
67 |
self.append(self._open)
|
|
68 |
|
|
69 |
self._save = IconButton(icon_name='theme:stock-save', active=False)
|
|
70 |
self._save.connect("activated", self._save_cb)
|
|
71 |
self.append(self._save)
|
49 | 72 |
|
50 | 73 |
def _insert_nav_items(self):
|
51 | 74 |
self._back = IconButton(icon_name='theme:stock-back', active=False)
|
|
121 | 144 |
self._prev.props.active = self._evince_view.can_find_previous()
|
122 | 145 |
self._next.props.active = self._evince_view.can_find_next()
|
123 | 146 |
|
|
147 |
def _open_cb(self, button):
|
|
148 |
filt = gtk.FileFilter()
|
|
149 |
filt.add_mime_type("application/pdf")
|
|
150 |
filt.add_mime_type("application/x-pdf")
|
|
151 |
chooser = gtk.FileChooserDialog(_("Open a document to read"), \
|
|
152 |
buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
|
|
153 |
chooser.set_filter(filt)
|
|
154 |
resp = chooser.run()
|
|
155 |
fname = chooser.get_filename()
|
|
156 |
chooser.hide()
|
|
157 |
chooser.destroy()
|
|
158 |
if resp == gtk.RESPONSE_ACCEPT and fname:
|
|
159 |
self.emit('open-document', fname)
|
|
160 |
|
|
161 |
def _save_cb(self, button):
|
|
162 |
pass
|