Ejemplo n.º 1
0
 def setup_tray(self):
     try:
         from xpra.gtk_common.gobject_compat import import_gtk
         gtk = import_gtk()
         from xpra.gtk_common.gtk_util import popup_menu_workaround
         #menu:
         self.tray_menu = gtk.Menu()
         self.tray_menu.set_title("Xpra Server")
         from xpra.gtk_common.about import about
         self.tray_menu.append(
             self.traymenuitem("About Xpra", "information.png", None,
                               about))
         self.tray_menu.append(
             self.traymenuitem("Exit", "quit.png", None,
                               self.tray_exit_callback))
         self.tray_menu.append(
             self.traymenuitem("Close Menu", "close.png", None,
                               self.close_tray_menu))
         #maybe add: session info, clipboard, sharing, etc
         #control: disconnect clients
         self.tray_menu.connect("deactivate", self.tray_menu_deactivated)
         popup_menu_workaround(self.tray_menu, self.close_tray_menu)
         self.tray_widget = self.make_tray_widget()
         self.set_tray_icon(self.tray_icon or "server-notconnected")
     except ImportError as e:
         traylog.warn("Warning: failed to load systemtray:")
         traylog.warn(" %s", e)
     except Exception as e:
         traylog.error("Error setting up system tray", exc_info=True)
Ejemplo n.º 2
0
    def setup_tray(self):
        if OSX:
            return
        try:
            from xpra.gtk_common.gobject_compat import import_gtk
            gtk = import_gtk()
            from xpra.gtk_common.gtk_util import popup_menu_workaround
            #menu:
            label = u"Xpra Shadow Server"
            display = os.environ.get("DISPLAY")
            if POSIX and display:
                label = u"Xpra %s Shadow Server" % display
            self.tray_menu = gtk.Menu()
            self.tray_menu.set_title(label)
            title_item = gtk.MenuItem()
            title_item.set_label(label)
            title_item.set_sensitive(False)
            title_item.show()
            self.tray_menu.append(title_item)
            from xpra.gtk_common.about import about
            self.tray_menu.append(
                self.traymenuitem("About Xpra", "information.png", None,
                                  about))
            if server_features.windows:

                def readonly_toggled(menuitem):
                    log("readonly_toggled(%s)", menuitem)
                    ro = menuitem.get_active()
                    if ro != self.readonly:
                        self.readonly = ro
                        self.setting_changed("readonly", ro)

                readonly_menuitem = self.checkitem("Read-only",
                                                   cb=readonly_toggled,
                                                   active=self.readonly)
                self.tray_menu.append(readonly_menuitem)
            self.tray_menu.append(
                self.traymenuitem("Exit", "quit.png", None,
                                  self.tray_exit_callback))
            self.tray_menu.append(
                self.traymenuitem("Close Menu", "close.png", None,
                                  self.close_tray_menu))
            #maybe add: session info, clipboard, sharing, etc
            #control: disconnect clients
            self.tray_menu.connect("deactivate", self.tray_menu_deactivated)
            popup_menu_workaround(self.tray_menu, self.close_tray_menu)
            self.tray_widget = self.make_tray_widget()
            self.set_tray_icon(self.tray_icon or "server-notconnected")
        except ImportError as e:
            traylog.warn("Warning: failed to load systemtray:")
            traylog.warn(" %s", e)
        except Exception as e:
            traylog.error("Error setting up system tray", exc_info=True)
Ejemplo n.º 3
0
 def setup_tray(self):
     try:
         from xpra.gtk_common.gobject_compat import import_gtk
         gtk = import_gtk()
         from xpra.gtk_common.gtk_util import popup_menu_workaround
         #menu:
         self.tray_menu = gtk.Menu()
         self.tray_menu.set_title("Xpra Server")
         from xpra.gtk_common.about import about
         self.tray_menu.append(self.traymenuitem("About Xpra", "information.png", None, about))
         self.tray_menu.append(self.traymenuitem("Exit", "quit.png", None, self.tray_exit_callback))
         self.tray_menu.append(self.traymenuitem("Close Menu", "close.png", None, self.close_tray_menu))
         #maybe add: session info, clipboard, sharing, etc
         #control: disconnect clients
         self.tray_menu.connect("deactivate", self.tray_menu_deactivated)
         popup_menu_workaround(self.tray_menu, self.close_tray_menu)
         self.tray_widget = self.make_tray_widget()
         self.set_tray_icon(self.tray_icon  or "server-notconnected")
     except ImportError as e:
         traylog.warn("Warning: failed to load systemtray:")
         traylog.warn(" %s", e)
     except Exception as e:
         traylog.error("Error setting up system tray", exc_info=True)
Ejemplo n.º 4
0
 def popup_menu_workaround(self, menu):
     popup_menu_workaround(menu, self.close_menu)