~umang/indicator-stickynotes/trunk

« back to all changes in this revision

Viewing changes to gui.py

  • Committer: Umang Varma
  • Date: 2012-05-27 20:12:12 UTC
  • Revision ID: git-v1:3d78c75f16e5599ff762da3d99e76542f64cecee
Initial commit. Somewhat working sticky notes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python3
 
2
 
 
3
from gi.repository import Gtk, Gdk, Gio
 
4
 
 
5
class StickyNote(object):
 
6
 
 
7
    def __init__(self, note):
 
8
        self.note = note
 
9
        self.builder = Gtk.Builder()
 
10
        self.builder.add_from_file("StickyNotes.glade")
 
11
        self.builder.connect_signals(self)
 
12
        self.txtNote = self.builder.get_object("txtNote")
 
13
        self.winMain = self.builder.get_object("MainWindow")
 
14
        self.bAdd = self.builder.get_object("bAdd")
 
15
        self.imgAdd = self.builder.get_object("imgAdd")
 
16
        self.imgResizeR = self.builder.get_object("imgResizeR")
 
17
        self.eResizeR = self.builder.get_object("eResizeR")
 
18
        self.run()
 
19
 
 
20
    def run(self, *args):
 
21
        # (Maybe?) Remove this eventually
 
22
        settings = Gtk.Settings.get_default()
 
23
        settings.props.gtk_button_images = True
 
24
        # Load and set CSS
 
25
        css = Gtk.CssProvider()
 
26
        css.load_from_file(Gio.File.new_for_path("style.css"))
 
27
        Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
 
28
                css, 800)
 
29
        # Set text buffer
 
30
        self.bbody = Gtk.TextBuffer()
 
31
        self.bbody.set_text(self.note.body)
 
32
        self.txtNote.set_buffer(self.bbody)
 
33
        #Show
 
34
        self.winMain.show()
 
35
        # Make resize work
 
36
        self.winMain.add_events(Gdk.EventMask.BUTTON_PRESS_MASK)
 
37
        self.eResizeR.add_events(Gdk.EventMask.BUTTON_PRESS_MASK)
 
38
        # Move Window
 
39
        self.winMain.move(*self.note.properties.get("position", (10,10)))
 
40
 
 
41
    def show(self):
 
42
        pass
 
43
 
 
44
    def hide(self):
 
45
        pass
 
46
 
 
47
    def update_note(self):
 
48
        self.note.update(self.bbody.get_text(self.bbody.get_start_iter(),
 
49
            self.bbody.get_end_iter(), True))
 
50
 
 
51
    def move(self, widget, event):
 
52
        self.winMain.begin_move_drag(event.button, event.x_root,
 
53
                event.y_root, event.get_time())
 
54
        return False
 
55
 
 
56
    def resize(self, widget, event, *args):
 
57
        self.winMain.begin_resize_drag(Gdk.WindowEdge.SOUTH_EAST,
 
58
                event.button, event.x_root, event.y_root, event.get_time())
 
59
        return True
 
60
 
 
61
    def properties(self):
 
62
        return {"position":self.winMain.get_position()}
 
63
 
 
64
    def save(self, *args):
 
65
        self.note.noteset.save()
 
66
        return False
 
67
 
 
68
    def add(self, *args):
 
69
        self.note.noteset.new()
 
70
        return False
 
71
 
 
72
    def quit(self, *args):
 
73
        Gtk.main_quit()