~kiddo/specto/pygi

« back to all changes in this revision

Viewing changes to spectlib/trayicon.py

  • Committer: Jean-François Fortin Tam
  • Date: 2011-04-14 03:44:34 UTC
  • Revision ID: nekohayo@gmail.com-20110414034434-v1awb67svwkd025e
First pass at porting from PyGTK to PyGI

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22
22
# Boston, MA 02111-1307, USA.
23
23
 
24
 
import gtk
 
24
from gi.repository import Gtk
25
25
import os
26
26
 
27
27
from spectlib.gtkconfig import create_menu_item
43
43
        self.ICON_PATH = os.path.join(self.specto.PATH, "icons/specto_tray_1.svg")
44
44
        self.ICON2_PATH = os.path.join(self.specto.PATH, "icons/specto_tray_2.svg")
45
45
        # Create the tray icon object
46
 
        self.tray = gtk.StatusIcon()
 
46
        self.tray = Gtk.StatusIcon()
47
47
        self.tray.set_from_file(self.ICON_PATH)
48
48
        self.tray.connect("activate", self.show_notifier)
49
49
        self.tray.connect("popup-menu", self.show_popup)
57
57
            self.notifier.restore_size_and_position()            
58
58
            self.notifier.notifier.show()
59
59
 
60
 
        while gtk.events_pending():
61
 
            gtk.main_iteration(True)
 
60
        while Gtk.events_pending():
 
61
            Gtk.main_iteration(True)
62
62
 
63
63
    def set_icon_state_excited(self):
64
64
        """ Change the tray icon to "changed". """
140
140
        else:
141
141
            self.item_show = create_menu_item(_("Show window"), self.show_notifier, None)
142
142
 
143
 
        self.item_pref = create_menu_item(gtk.STOCK_PREFERENCES, self.show_preferences, gtk.STOCK_PREFERENCES)
144
 
        self.item_help = create_menu_item(gtk.STOCK_HELP, self.show_help, gtk.STOCK_HELP)
145
 
        self.item_about = create_menu_item(gtk.STOCK_ABOUT, self.show_about, gtk.STOCK_ABOUT)
146
 
        self.item_quit = create_menu_item(gtk.STOCK_QUIT, self.quit, gtk.STOCK_QUIT)
 
143
        self.item_pref = create_menu_item(Gtk.STOCK_PREFERENCES, self.show_preferences, Gtk.STOCK_PREFERENCES)
 
144
        self.item_help = create_menu_item(Gtk.STOCK_HELP, self.show_help, Gtk.STOCK_HELP)
 
145
        self.item_about = create_menu_item(Gtk.STOCK_ABOUT, self.show_about, Gtk.STOCK_ABOUT)
 
146
        self.item_quit = create_menu_item(Gtk.STOCK_QUIT, self.quit, Gtk.STOCK_QUIT)
147
147
        self.item_clear = create_menu_item(_("Mark as read"), None, None)
148
 
        self.item_refresh = create_menu_item(_("Refresh All"), self.refresh, gtk.STOCK_REFRESH)
 
148
        self.item_refresh = create_menu_item(_("Refresh All"), self.refresh, Gtk.STOCK_REFRESH)
149
149
 
150
150
        #create submenu for changed watches
151
 
        self.sub_menu = gtk.Menu()
 
151
        self.sub_menu = Gtk.Menu()
152
152
 
153
153
        self.sub_item_clear = create_menu_item(_("_Mark all read"),
154
 
                self.specto.notifier.mark_all_as_read, gtk.STOCK_CLEAR)
 
154
                self.specto.notifier.mark_all_as_read, Gtk.STOCK_CLEAR)
155
155
        self.sub_menu.append(self.sub_item_clear)
156
156
 
157
 
        self.sub_menu.append(gtk.SeparatorMenuItem())
 
157
        self.sub_menu.append(Gtk.SeparatorMenuItem())
158
158
 
159
159
        for watch in self.specto.watch_db:
160
160
            if watch.changed == True:
161
 
                image = gtk.image_new_from_pixbuf(self.notifier.get_icon(watch.icon, 0, False))
 
161
                image = Gtk.image_new_from_pixbuf(self.notifier.get_icon(watch.icon, 0, False))
162
162
                self.sub_item_clear = create_menu_item(watch.name, None, image)
163
163
                self.sub_item_clear.connect('activate', self.specto.notifier.mark_watch_as_read, watch.id)
164
164
                self.sub_menu.append(self.sub_item_clear)
167
167
        self.item_clear.set_submenu(self.sub_menu)
168
168
 
169
169
        # Create the menu
170
 
        self.menu = gtk.Menu()
 
170
        self.menu = Gtk.Menu()
171
171
 
172
172
        # Append menu items to the menu
173
173
        self.menu.append(self.item_show)
174
 
        self.menu.append(gtk.SeparatorMenuItem())
 
174
        self.menu.append(Gtk.SeparatorMenuItem())
175
175
        self.menu.append(self.item_refresh)
176
176
        self.menu.append(self.item_clear)
177
 
        self.menu.append(gtk.SeparatorMenuItem())
 
177
        self.menu.append(Gtk.SeparatorMenuItem())
178
178
        self.menu.append(self.item_pref)
179
179
        self.menu.append(self.item_help)
180
180
        self.menu.append(self.item_about)
181
 
        self.menu.append(gtk.SeparatorMenuItem())
 
181
        self.menu.append(Gtk.SeparatorMenuItem())
182
182
        self.menu.append(self.item_quit)
183
183
        self.menu.show_all()
184
 
        self.menu.popup(None, None, gtk.status_icon_position_menu, button, activate_time, self.tray)#the last argument is to tell gtk.status_icon_position_menu where to grab the coordinates to position the popup menu correctly
 
184
        self.menu.popup(None, None, Gtk.status_icon_position_menu, button, activate_time, self.tray)#the last argument is to tell Gtk.status_icon_position_menu where to grab the coordinates to position the popup menu correctly
185
185
 
186
186
    def get_x(self):
187
187
        if self.tray.get_visible()==True: