~umang/indicator-stickynotes/trunk

« back to all changes in this revision

Viewing changes to indicator-stickynotes.py

  • Committer: Umang Varma
  • Date: 2012-07-14 02:01:28 UTC
  • Revision ID: git-v1:d60319519740328a822663b1300fd2c16b019a5d
Added pot (template) file

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 
20
20
from stickynotes.backend import Note, NoteSet
21
21
from stickynotes.gui import StickyNote
 
22
from stickynotes.info import MO_DIR, LOCALE_DOMAIN
 
23
 
22
24
from gi.repository import Gtk, Gdk
23
25
from gi.repository import AppIndicator3 as appindicator
24
26
 
 
27
import os.path
 
28
import locale
 
29
from locale import gettext as _
 
30
from functools import wraps
 
31
 
 
32
def save_required(f):
 
33
    """Wrapper for functions that require a save after execution"""
 
34
    @wraps(f)
 
35
    def _wrapper(self, *args, **kwargs):
 
36
        ret = f(self, *args, **kwargs)
 
37
        self.save()
 
38
        return ret
 
39
    return _wrapper
 
40
 
25
41
class IndicatorStickyNotes:
26
42
    def __init__(self):
27
43
        # Initialize NoteSet
32
48
        self.ind = appindicator.Indicator.new(
33
49
                "Sticky Notes", "indicator-stickynotes",
34
50
                appindicator.IndicatorCategory.APPLICATION_STATUS)
 
51
        # Delete/modify the following file when distributing as a package
 
52
        self.ind.set_icon_theme_path(os.path.abspath(os.path.join(
 
53
            os.path.dirname(__file__), 'Icons')))
 
54
        self.ind.set_icon("indicator-stickynotes")
35
55
        self.ind.set_status(appindicator.IndicatorStatus.ACTIVE)
36
 
        self.ind.set_title("Sticky Notes")
37
 
        #self.ind.set_attention_icon("pynagram")
 
56
        self.ind.set_title(_("Sticky Notes"))
38
57
        # Create Menu
39
58
        self.menu = Gtk.Menu()
40
 
        self.mNewNote = Gtk.MenuItem("New Note")
 
59
        self.mNewNote = Gtk.MenuItem(_("New Note"))
41
60
        self.menu.append(self.mNewNote)
42
61
        self.mNewNote.connect("activate", self.new_note, None)
43
62
        self.mNewNote.show()
46
65
        self.menu.append(s)
47
66
        s.show()
48
67
 
49
 
        self.mShowAll = Gtk.MenuItem("Show All")
 
68
        self.mShowAll = Gtk.MenuItem(_("Show All"))
50
69
        self.menu.append(self.mShowAll)
51
70
        self.mShowAll.connect("activate", self.showall, None)
52
71
        self.mShowAll.show()
53
72
 
54
 
        self.mHideAll = Gtk.MenuItem("Hide All")
 
73
        self.mHideAll = Gtk.MenuItem(_("Hide All"))
55
74
        self.menu.append(self.mHideAll)
56
75
        self.mHideAll.connect("activate", self.hideall, None)
57
76
        self.mHideAll.show()
60
79
        self.menu.append(s)
61
80
        s.show()
62
81
 
63
 
        self.mLockAll = Gtk.MenuItem("Lock All")
 
82
        self.mLockAll = Gtk.MenuItem(_("Lock All"))
64
83
        self.menu.append(self.mLockAll)
65
84
        self.mLockAll.connect("activate", self.lockall, None)
66
85
        self.mLockAll.show()
67
86
 
68
 
        self.mUnlockAll = Gtk.MenuItem("Unlock All")
 
87
        self.mUnlockAll = Gtk.MenuItem(_("Unlock All"))
69
88
        self.menu.append(self.mUnlockAll)
70
89
        self.mUnlockAll.connect("activate", self.unlockall, None)
71
90
        self.mUnlockAll.show()
74
93
        self.menu.append(s)
75
94
        s.show()
76
95
 
77
 
        self.mQuit = Gtk.MenuItem("Quit")
 
96
        self.mQuit = Gtk.MenuItem(_("Quit"))
78
97
        self.menu.append(self.mQuit)
79
98
        self.mQuit.connect("activate", Gtk.main_quit, None)
80
99
        self.mQuit.show()
90
109
    def hideall(self, *args):
91
110
        self.nset.hideall()
92
111
 
 
112
    @save_required
93
113
    def lockall(self, *args):
94
114
        for note in self.nset.notes:
95
115
            note.gui.set_locked_state(True)
96
116
        
 
117
    @save_required
97
118
    def unlockall(self, *args):
98
119
        for note in self.nset.notes:
99
120
            note.gui.set_locked_state(False)
103
124
 
104
125
 
105
126
def main():
 
127
    try:
 
128
        locale.setlocale(locale.LC_ALL, '')
 
129
    except:
 
130
        locale.setlocale(locale.LC_ALL, 'C')
 
131
    # If we're running from /usr, then .mo files are not in MO_DIR.
 
132
    if os.path.abspath(__file__)[:4] == '/usr':
 
133
        # Fallback to default
 
134
        locale_dir = None
 
135
    else:
 
136
        locale_dir = MO_DIR
 
137
    locale.bindtextdomain(LOCALE_DOMAIN, locale_dir)
 
138
    locale.textdomain(LOCALE_DOMAIN)
106
139
    indicator = IndicatorStickyNotes()
107
140
    Gtk.main()
108
141
    indicator.save()