~cseslam/tahrir/trunk

« back to all changes in this revision

Viewing changes to tahrir/toolbar.py

  • Committer: Eslam Mostafa
  • Date: 2012-09-20 03:01:13 UTC
  • Revision ID: cseslam@gmail.com-20120920030113-lhy117if96dj611f
erase old tahrir

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from gi.repository import Gtk, Gio
2
 
from dialogs import OpenDialog, SettingsDialog
3
 
 
4
 
class Toolbar(Gtk.Toolbar):
5
 
    def __init__(self, window):
6
 
        Gtk.Toolbar.__init__(self)
7
 
        self.window = window
8
 
        self.get_style_context().add_class(Gtk.STYLE_CLASS_MENUBAR)            
9
 
        self.set_size_request(-1, 42)
10
 
        #                
11
 
        item = Gtk.ToolItem()
12
 
        box = Gtk.Box()    
13
 
        box.get_style_context().add_class('linked')
14
 
        item.add(box)
15
 
        self.insert(item, -1)
16
 
        #
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)
20
 
        left.set_image(image)        
21
 
        box.pack_start(left, False, False, 0)
22
 
        left.connect('clicked', self._on_clicked_previous_operation)        
23
 
        #
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)
30
 
        #        
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)
37
 
        #
38
 
        spacer = Gtk.ToolItem()
39
 
        spacer.set_expand(True)
40
 
        self.insert(spacer, -1)
41
 
        #
42
 
        t = Gtk.ToolItem()        
43
 
        c = Gtk.Box()
44
 
        c.set_homogeneous(True)
45
 
        c.set_spacing(3)
46
 
        #
47
 
        new = Gtk.Button()
48
 
        gicon = Gio.ThemedIcon.new_with_default_fallbacks('bookmark-add-symbolic')
49
 
        image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
50
 
        new.set_image(image)
51
 
        c.pack_start(new, False, False, 0)
52
 
        new.connect('clicked', self._on_clicked_new)
53
 
        #
54
 
        o = Gtk.Button()
55
 
        gicon = Gio.ThemedIcon.new_with_default_fallbacks('document-open-symbolic')
56
 
        image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.MENU)
57
 
        o.set_image(image)
58
 
        c.pack_start(o, False, False, 0)
59
 
        o.connect('clicked', self._on_clicked_open)
60
 
        #
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)
64
 
        save.set_image(image)
65
 
        c.pack_start(save, False, False, 0)        
66
 
        save.connect('clicked', self._on_clicked_save)
67
 
        #
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)
71
 
        undo.set_image(image)
72
 
        c.pack_start(undo, False, False, 0)
73
 
        undo.connect('clicked', self._on_clicked_undo)
74
 
        #
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)
78
 
        redo.set_image(image)
79
 
        c.pack_start(redo, False, False, 0)
80
 
        redo.connect('clicked', self._on_clicked_redo)
81
 
        #
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)
85
 
        find.set_image(image)
86
 
        c.pack_start(find, False, False, 0)
87
 
        find.connect('clicked', self._on_clicked_find)
88
 
        #
89
 
        s = Gtk.Button()
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)        
93
 
        s.set_image(image)
94
 
        c.pack_start(s, False, False, 0)
95
 
        s.connect('clicked', self._on_clicked_settings)
96
 
        #
97
 
        t.add(c)
98
 
        self.insert(t, -1)
99
 
        
100
 
    def _on_clicked_previous_operation(self, btn):
101
 
        active = self.ops.get_active()                        
102
 
        self.ops.set_active(active-1)        
103
 
        
104
 
    def _on_clicked_next_operation(self, btn):        
105
 
        active = self.ops.get_active()                
106
 
        self.ops.set_active(active+1)        
107
 
        
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      
112
 
        if active == 0:
113
 
            self.left.set_sensitive(False)
114
 
        else:
115
 
            self.left.set_sensitive(True)
116
 
        if active == docs:
117
 
            self.right.set_sensitive(False)
118
 
        else:
119
 
            self.right.set_sensitive(True)  
120
 
            
121
 
    def _on_clicked_new(self, btn):
122
 
        self.window.request_new_operation(None)
123
 
        
124
 
    def _on_clicked_open(self, btn):      
125
 
        d = OpenDialog(self.window)
126
 
        response = d.run()
127
 
        if response == 1:
128
 
            files = d.get_filenames()
129
 
            for f in files:
130
 
                self.window.request_new_operation(f)
131
 
        else:
132
 
            pass
133
 
        d.destroy()
134
 
        
135
 
    def _on_clicked_save(self, btn):
136
 
        self.window.request_save()
137
 
        
138
 
    def _on_clicked_undo(self, btn):
139
 
        doc = self.window.notebook.get_current_document()
140
 
        doc.undo()
141
 
        
142
 
    def _on_clicked_redo(self, btn):
143
 
        doc = self.window.notebook.get_current_document()
144
 
        doc.redo()
145
 
        
146
 
    def _on_clicked_find(self, btn):
147
 
        pass
148
 
        
149
 
    def _on_clicked_settings(self, btn):
150
 
        d = SettingsDialog(self.window)
151
 
        d.run()
152
 
        d.destroy()