1
from gi.repository import Gtk, Gio
2
from dialogs import OpenDialog, SettingsDialog
4
class Toolbar(Gtk.Toolbar):
5
def __init__(self, window):
6
Gtk.Toolbar.__init__(self)
8
self.get_style_context().add_class(Gtk.STYLE_CLASS_MENUBAR)
9
self.set_size_request(-1, 42)
13
box.get_style_context().add_class('linked')
17
self.left = left = Gtk.Button()
18
gicon = Gio.ThemedIcon.new_with_default_fallbacks('go-previous-symbolic')
19
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.SMALL_TOOLBAR)
21
box.pack_start(left, False, False, 0)
22
left.connect('clicked', self._on_clicked_previous_operation)
24
self.right = right = Gtk.Button()
25
gicon = Gio.ThemedIcon.new_with_default_fallbacks('go-next-symbolic')
26
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.SMALL_TOOLBAR)
27
right.set_image(image)
28
box.pack_start(right, False, False, 0)
29
right.connect('clicked', self._on_clicked_next_operation)
31
self.ops = ops = Gtk.ComboBoxText()
32
ops.set_title('Documents')
33
ops.set_button_sensitivity(Gtk.SensitivityType.AUTO)
34
ops.set_focus_on_click(False)
35
ops.connect('changed', self._on_changed_operation)
36
box.pack_start(ops, False, False, 0)
38
spacer = Gtk.ToolItem()
39
spacer.set_expand(True)
40
self.insert(spacer, -1)
44
c.set_homogeneous(True)
48
gicon = Gio.ThemedIcon.new_with_default_fallbacks('bookmark-add-symbolic')
49
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
51
c.pack_start(new, False, False, 0)
52
new.connect('clicked', self._on_clicked_new)
55
gicon = Gio.ThemedIcon.new_with_default_fallbacks('document-open-symbolic')
56
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
58
c.pack_start(o, False, False, 0)
59
o.connect('clicked', self._on_clicked_open)
61
self.save = save = Gtk.Button()
62
gicon = Gio.ThemedIcon.new_with_default_fallbacks('document-save-symbolic')
63
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
65
c.pack_start(save, False, False, 0)
66
save.connect('clicked', self._on_clicked_save)
68
self.undo = undo = Gtk.Button()
69
gicon = Gio.ThemedIcon.new_with_default_fallbacks('edit-undo-symbolic')
70
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
72
c.pack_start(undo, False, False, 0)
73
undo.connect('clicked', self._on_clicked_undo)
75
self.redo = redo = Gtk.Button()
76
gicon = Gio.ThemedIcon.new_with_default_fallbacks('edit-redo-symbolic')
77
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
79
c.pack_start(redo, False, False, 0)
80
redo.connect('clicked', self._on_clicked_redo)
82
self.find = find = Gtk.Button()
83
gicon = Gio.ThemedIcon.new_with_default_fallbacks('edit-find-symbolic')
84
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
86
c.pack_start(find, False, False, 0)
87
find.connect('clicked', self._on_clicked_find)
90
s.set_size_request(12, -1)
91
gicon = Gio.ThemedIcon.new_with_default_fallbacks('emblem-system-symbolic')
92
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
94
c.pack_start(s, False, False, 0)
95
s.connect('clicked', self._on_clicked_settings)
100
def _on_clicked_previous_operation(self, btn):
101
active = self.ops.get_active()
102
self.ops.set_active(active-1)
104
def _on_clicked_next_operation(self, btn):
105
active = self.ops.get_active()
106
self.ops.set_active(active+1)
108
def _on_changed_operation(self, data):
109
active = self.ops.get_active()
110
self.window.notebook.set_current_page(active)
111
docs = self.window.docs
113
self.left.set_sensitive(False)
115
self.left.set_sensitive(True)
117
self.right.set_sensitive(False)
119
self.right.set_sensitive(True)
121
def _on_clicked_new(self, btn):
122
self.window.request_new_operation(None)
124
def _on_clicked_open(self, btn):
125
d = OpenDialog(self.window)
128
files = d.get_filenames()
130
self.window.request_new_operation(f)
135
def _on_clicked_save(self, btn):
136
self.window.request_save()
138
def _on_clicked_undo(self, btn):
139
doc = self.window.notebook.get_current_document()
142
def _on_clicked_redo(self, btn):
143
doc = self.window.notebook.get_current_document()
146
def _on_clicked_find(self, btn):
149
def _on_clicked_settings(self, btn):
150
d = SettingsDialog(self.window)