コード例 #1
0
ファイル: StatusIcon.py プロジェクト: volans/plaunch
class PLaunchStatusIcon(gtk.StatusIcon):
    '''Plaunch statusIcon, It show always in system tray.

    '''
    def __init__(self):
        gtk.StatusIcon.__init__(self)
        menu = '''
            <ui>
             <menubar name="PLaunch">
              <menu action="Menu">
               <menuitem action="Show"/>
               <menuitem action="Config"/>
               <menuitem action="About"/>
               <menuitem action="Exit"/>
              </menu>
             </menubar>
            </ui>
        '''

        actions = [
            ('Menu',  None, 'Menu'),
            ('Show', gtk.STOCK_EXECUTE, '_Show...', None, None, self.on_activate),
            ('Config', gtk.STOCK_EDIT, '_Shortcuts...', None, None, self.on_edit_shortcut),
            ('About', gtk.STOCK_ABOUT, '_About...', None, None, self.on_about),
            ('Exit', gtk.STOCK_CLOSE, '_Exit...', None, None, self.on_exit_event)]


        ag = gtk.ActionGroup('Actions')
        ag.add_actions(actions)
        self.manager = gtk.UIManager()
        self.manager.insert_action_group(ag, 0)
        self.manager.add_ui_from_string(menu)
        self.menu = self.manager.get_widget('/PLaunch/Menu/About').props.parent
        self.set_from_file(ICON)
        self.set_tooltip('PLaunch is running here')
        self.set_visible(True)
        self.connect('activate', self.on_activate)
        self.connect('popup-menu', self.on_popup_menu)
        self.maindialog = MainDialog()


    def on_popup_menu(self, status, button, time):
        self.menu.popup(None, None, None, button, time)
    
    def on_activate(self, data):
        self.maindialog.open_main()

    def on_edit_shortcut(self, widget):
        ShortCutsEditer() 

    def on_about(self, widget):
        xml = glade.XML(GLADE)
        about = xml.get_widget('aboutplaunch')
        about.run()
        about.destroy()

    def on_exit_event(self, widget, data=None):
        gtk.main_quit()
        return False