def __init__(self): self.idle_add = GLib.idle_add self.timeout_add = GLib.timeout_add self.source_remove = GLib.source_remove self.session_name = "Test System Tray" self.mmap_enabled = False self.windows_enabled = True self.readonly = False self.opengl_enabled = False self.modal_windows = False self.server_bell = False self.server_cursors = False self.server_readonly = False self.server_client_shutdown = True self.server_sharing = True self.server_sharing_toggle = True self.server_lock = True self.server_lock_toggle = True self.server_av_sync = True self.server_virtual_video_devices = 4 self.server_webcam = True self.server_sound_send = True self.server_sound_receive = True self.server_clipboard = False self.server_bandwidth_limit_change = 0 self.server_encodings = ["png", "rgb"] self.server_encodings_problematic = [] self.server_encodings_with_quality = [] self.server_encodings_with_speed = [] self.server_start_new_commands = True self.server_xdg_menu = False self.server_commands_info = None self.speaker_allowed = True self.speaker_enabled = True self.microphone_enabled = True self.microphone_allowed = True self.client_supports_opengl = True self.client_supports_notifications = True self.client_supports_system_tray = True self.client_supports_clipboard = True self.client_supports_cursors = True self.client_supports_bell = True self.client_supports_sharing = True self.client_lock = False self.download_server_log = None self.remote_file_transfer = True self.remote_file_transfer_ask = True self.notifications_enabled = False self.client_clipboard_direction = "both" self.clipboard_enabled = True self.cursors_enabled = True self.default_cursor_data = None self.bell_enabled = False self.keyboard_helper = None self.av_sync = True self.webcam_forwarding = True self.webcam_device = None self.can_scale = True self.xscale = 1.0 self.yscale = 1.0 self.quality = 80 self.speed = 50 self.encoding = "png" self.send_download_request = None self._remote_subcommands = () def noop(*_args): pass self._process_encodings = noop try: from xpra.client.gtk3.tray_menu import GTK3TrayMenu as GTKTrayMenu except ImportError as e: log.warn("failed to load GTK tray menu class: %s", e) for x in (get_native_tray_menu_helper_class(), GTKTrayMenu): if x: try: self.menu_helper = x(self) except Exception as e: log.warn("failed to create menu helper %s: %s", x, e) assert self.menu_helper menu = self.menu_helper.build() try: from xpra.client.gtk_base.statusicon_tray import GTKStatusIconTray except ImportError: GTKStatusIconTray = None for x in get_native_tray_classes() + [GTKStatusIconTray]: if x: try: XPRA_APP_ID = 0 tray_icon_filename = "xpra" self.tray = x(self, XPRA_APP_ID, menu, "Test System Tray", tray_icon_filename, self.xpra_tray_geometry, self.xpra_tray_click, self.xpra_tray_mouseover, self.xpra_tray_exit) except Exception as e: log.warn("failed to create tray %s: %s", x, e) self.tray.set_tooltip("Test System Tray")
def __init__(self): self.idle_add = glib.idle_add self.timeout_add = glib.timeout_add self.source_remove = glib.source_remove self.session_name = "Test System Tray" self.mmap_enabled = False self.windows_enabled = True self.readonly = False self.server_readonly = False self.server_client_shutdown = True self.server_sharing = True self.server_sharing_toggle = True self.server_lock = True self.server_lock_toggle = True self.server_av_sync = True self.server_virtual_video_devices = 4 self.server_webcam = True self.server_sound_send = True self.server_sound_receive = True self.speaker_allowed = True self.speaker_enabled = True self.microphone_enabled = True self.microphone_allowed = True self.client_supports_opengl = True self.client_supports_notifications = True self.client_supports_system_tray = True self.client_supports_clipboard = True self.client_supports_cursors = True self.client_supports_bell = True self.client_supports_sharing = True self.client_lock = False self.remote_file_transfer = True self.remote_file_transfer_ask = True self.notifications_enabled = False self.client_clipboard_direction = "both" self.clipboard_enabled = True self.cursors_enabled = True self.default_cursor_data = None self.bell_enabled = False self.keyboard_helper = None self.av_sync = True self.webcam_forwarding = True self.webcam_device = None self.can_scale = True self.xscale = 1.0 self.yscale = 1.0 self.quality = 80 self.speed = 50 try: if is_gtk3(): from xpra.client.gtk3.tray_menu import GTK3TrayMenu as GTKTrayMenu else: from xpra.client.gtk2.tray_menu import GTK2TrayMenu as GTKTrayMenu except ImportError as e: log.warn("failed to load GTK tray menu class: %s", e) for x in (get_native_tray_menu_helper_class(), GTKTrayMenu): if x: try: self.menu_helper = x(self) except Exception as e: log.warn("failed to create menu helper %s: %s", x, e) assert self.menu_helper menu = self.menu_helper.build() try: from xpra.client.gtk_base.statusicon_tray import GTKStatusIconTray except ImportError: GTKStatusIconTray = None for x in (get_native_tray_classes() + [GTKStatusIconTray]): if x: try: XPRA_APP_ID = 0 tray_icon_filename = "xpra" self.tray = x(self, XPRA_APP_ID, menu, "Test System Tray", tray_icon_filename, self.xpra_tray_geometry, self.xpra_tray_click, self.xpra_tray_mouseover, self.xpra_tray_exit) except Exception as e: log.warn("failed to create tray %s: %s", x, e) self.tray.set_tooltip("Test System Tray")
def get_tray_classes(self): #subclasses may add their toolkit specific variants, if any #by overriding this method #use the native ones first: return get_native_tray_classes()