def create_view_menu(self): self.viewMenu = gtk.Menu() self.viewMenuRoot = gtk.MenuItem("View") GTKUtils.append_menu_item(self.viewMenu, "Help", self.show_help) self.viewMenu.append(gtk.SeparatorMenuItem()) def make_toggle_window_entry(window, name): menuItem = GTKUtils.append_menu_item(self.viewMenu, " ", window.toggle_window_state) def on_toggled(window): if window.is_visible(): menuItem.child.set_text("Hide %s" % (name)) else: menuItem.child.set_text("Show %s" % (name)) on_toggled(window) self._start_listening_for_event("shown", window, on_toggled) self._start_listening_for_event("hidden", window, on_toggled) return menuItem make_toggle_window_entry(self.controller.btWindow, "BitTorrent") firefox = FirefoxPortable.get() if firefox: make_toggle_window_entry(self.controller.firefoxWindow, "Firefox") make_toggle_window_entry(self.controller.serverWindow, "Server") make_toggle_window_entry(self.controller.socksClientWindow, "SOCKS Clients") self.viewMenu.append(gtk.SeparatorMenuItem()) GTKUtils.append_menu_item(self.viewMenu, "Preferences", self.controller.show_settings_cb) self.viewMenuRoot.set_submenu(self.viewMenu) self.viewMenuRoot.show() return self.viewMenu
def create_file_menu(self): self.fileMenu = gtk.Menu() self.fileMenuRoot = gtk.MenuItem("File") def make_toggle_app_entry(app, is_running_func, toggle_func, name, stopEvent, startEvent): menuItem = GTKUtils.append_menu_item(self.fileMenu, " ", toggle_func) def on_toggled(app): if is_running_func(): menuItem.child.set_text("Stop %s" % (name)) else: menuItem.child.set_text("Start %s" % (name)) on_toggled(app) self._start_listening_for_event(startEvent, app, on_toggled) self._start_listening_for_event(stopEvent, app, on_toggled) return menuItem self.serverMenuItem = make_toggle_app_entry(Tor.get(), Tor.get().is_server, self.controller.toggle_relay, "Relay", "server_stopped", "server_started") self.bittorrentMenuItem = make_toggle_app_entry(BitTorrentClient.get(), BitTorrentClient.get().is_running, self.controller.toggle_bittorrent, "BitTorrent", "stopped", "started") firefox = FirefoxPortable.get() if firefox: self.firefoxMenuItem = make_toggle_app_entry(firefox, firefox.is_running, self.controller.toggle_firefox, "Browser", "stopped", "started") self.fileMenu.append(gtk.SeparatorMenuItem()) GTKUtils.append_menu_item(self.fileMenu, "Update", self.controller.update_check) GTKUtils.append_menu_item(self.fileMenu, "Quit", self.controller.quit_cb) self.fileMenuRoot.set_submenu(self.fileMenu) self.fileMenuRoot.show() return self.fileMenu
def make_popup_menu(self, newMenu): """creates a drop down menu on the system tray icon when right clicked hopefully""" # GTKUtils.append_menu_item(newMenu, "Show BitTorrent Window", self._start_cb) submenu = gtk.Menu() if not self.app.is_running(): GTKUtils.append_menu_item(submenu, "Start BitTorrent", self.controller.toggle_bittorrent) else: GTKUtils.append_menu_item(submenu, "Show BitTorrent Window", self._start_cb) GTKUtils.append_menu_item(submenu, "Add Torrent", self._add_file_cb) GTKUtils.append_menu_item(submenu, "Open Torrent Folder", self._open_folder) GTKUtils.append_menu_item(submenu, "Stop BitTorrent", self.controller.toggle_bittorrent) menuItem = GTKUtils.make_menu_item_with_picture( "BitTorrent", "bb_logo.png") menuItem.set_submenu(submenu) menuItem.show_all() newMenu.append(menuItem) return submenu
def create_help_menu(self): self.helpMenu = gtk.Menu() self.helpMenuRoot = gtk.MenuItem("Help") GTKUtils.append_menu_item(self.helpMenu, "Instructions", self.show_help) GTKUtils.append_menu_item(self.helpMenu, "Read Online Help...", self.show_website) GTKUtils.append_menu_item(self.helpMenu, "Visit Forums...", self.show_forums) GTKUtils.append_menu_item(self.helpMenu, "Report an Issue...", self.controller.show_trac) GTKUtils.append_menu_item(self.helpMenu, "About", self.show_about) self.helpMenuRoot.set_submenu(self.helpMenu) self.helpMenuRoot.show() return self.helpMenu
def make_popup_menu(self, newMenu): """creates a drop down menu on the system tray icon when right clicked""" submenu = gtk.Menu() if not self.app or not self.app.is_running() or not self.is_visible(): GTKUtils.append_menu_item(submenu, "Show SOCKS Interface", self.toggle_window_state) else: GTKUtils.append_menu_item(submenu, "Hide SOCKS Interface", self.toggle_window_state) header = GTKUtils.make_menu_item_with_picture('SOCKS Interface', "network.png") header.set_submenu(submenu) header.show_all() newMenu.append(header) return submenu
def make_popup_menu(self, newMenu): """creates a drop down menu on the system tray icon when right clicked hopefully""" # GTKUtils.append_menu_item(newMenu, "Show BitTorrent Window", self._start_cb) submenu = gtk.Menu() if not self.app.is_running(): GTKUtils.append_menu_item(submenu, "Start BitTorrent", self.controller.toggle_bittorrent) else: GTKUtils.append_menu_item(submenu, "Show BitTorrent Window", self._start_cb) GTKUtils.append_menu_item(submenu, "Add Torrent", self._add_file_cb) GTKUtils.append_menu_item(submenu, "Open Torrent Folder", self._open_folder) GTKUtils.append_menu_item(submenu, "Stop BitTorrent", self.controller.toggle_bittorrent) menuItem = GTKUtils.make_menu_item_with_picture("BitTorrent", "bb_logo.png") menuItem.set_submenu(submenu) menuItem.show_all() newMenu.append(menuItem) return submenu
def make_toggle_window_entry(window, name): menuItem = GTKUtils.append_menu_item(self.viewMenu, " ", window.toggle_window_state) def on_toggled(window): if window.is_visible(): menuItem.child.set_text("Hide %s" % (name)) else: menuItem.child.set_text("Show %s" % (name)) on_toggled(window) self._start_listening_for_event("shown", window, on_toggled) self._start_listening_for_event("hidden", window, on_toggled) return menuItem
def make_toggle_app_entry(app, is_running_func, toggle_func, name, stopEvent, startEvent): menuItem = GTKUtils.append_menu_item(self.fileMenu, " ", toggle_func) def on_toggled(app): if is_running_func(): menuItem.child.set_text("Stop %s" % (name)) else: menuItem.child.set_text("Start %s" % (name)) on_toggled(app) self._start_listening_for_event(startEvent, app, on_toggled) self._start_listening_for_event(stopEvent, app, on_toggled) return menuItem
def make_popup_menu(self, newMenu): """creates a drop down menu on the system tray icon when right clicked""" submenu = gtk.Menu() if not self.app or not self.app.is_running(): GTKUtils.append_menu_item(submenu, "Start Firefox", self.controller.toggle_firefox) else: GTKUtils.append_menu_item(submenu, "Show Firefox Controls", self._start_cb) GTKUtils.append_menu_item(submenu, "New identity", self._new_circuit_cb) GTKUtils.append_menu_item(submenu, "Change speed", self._anonymity_cb) GTKUtils.append_menu_item(submenu, "Stop Firefox", self.controller.toggle_firefox) image = gtk.Image() iconPath = os.path.join(self.app.appBasePath, self.app.name, "App", "AppInfo", "appicon.ico") if os.path.exists(iconPath): pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(iconPath, 24, 24) image.set_from_pixbuf(pixbuf) else: image.set_from_pixbuf(Images.GREY_CIRCLE) headerLabel = gtk.Label() headerLabel.set_markup("<span weight='bold'>%s</span>" % (self.app.name)) box = gtk.HBox(spacing=10) box.pack_start(image, False, False, 0) box.pack_start(headerLabel, False, False, 0) header = gtk.MenuItem() header.add(box) header.set_submenu(submenu) header.show_all() newMenu.append(header) return submenu
def make_popup_menu(self, newMenu): """creates a drop down menu on the system tray icon when right clicked hopefully""" #make appropriate submenu submenu = gtk.Menu() if not self.torApp.is_running() or not self.torApp.is_server(): GTKUtils.append_menu_item(submenu, "Start Relay", self.controller.toggle_relay) else: GTKUtils.append_menu_item(submenu, "Show Server Window", self._start_cb) GTKUtils.append_menu_item(submenu, "Settings", self.show_server_settings) GTKUtils.append_menu_item(submenu, "Stop Relay", self.controller.toggle_relay) menuItem = GTKUtils.make_menu_item_with_picture("Relay", "network2.png") menuItem.set_submenu(submenu) menuItem.show_all() newMenu.append(menuItem) return submenu
def create_debug_menu(self): #Debug Menu self.debugMenu = gtk.Menu() self.profileMenuItem = GTKUtils.append_menu_item(self.debugMenu, "Start Profiler", self.toggle_profiler) def on_profiler_started(profiler): self.profileMenuItem.child.set_text("Stop Profiler") self._start_listening_for_event("started", Profiler.get(), on_profiler_started) def on_profiler_stopped(profiler): self.profileMenuItem.child.set_text("Start Profiler") self._start_listening_for_event("stopped", Profiler.get(), on_profiler_stopped) self.debugMenuRoot = gtk.MenuItem("Debug") self.debugMenuRoot.set_submenu(self.debugMenu) self.debugMenuRoot.show() return self.debugMenu
def __init__(self, display): """Creates a drop-down menu to interact with the torrent""" gtk.Menu.__init__(self) ListenerMixin.ListenerMixin.__init__(self) self.display = display baseMenu = self #create menu items self.openItem = GTKUtils.append_menu_item(baseMenu, "Open Containing Folder", display._open_folder) if not display._any_selected_torrent_running(): self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Resume", display._pause_cb) else: self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Pause", display._pause_cb) #create a right-click option to update the tracker def update_cb(widget): torrentsToUpdate = display._get_selected_torrents() for torrentHash in torrentsToUpdate: display.app.btInstance.downloads[torrentHash].rerequest.update(True) self.updateItem = GTKUtils.append_menu_item(baseMenu, "Update Tracker", update_cb) self.editItem = GTKUtils.append_menu_item(baseMenu, "Edit Trackers...", display._open_tracker_edit) #create the secondary menu: deleteMenu = gtk.Menu() def delete_cb(widget, deleteTorrent, deleteData): torrentsToDelete = display._get_selected_torrents() for torrentHash in torrentsToDelete: display.app.remove_download(torrentHash, deleteTorrent, deleteData) #add the entries: GTKUtils.append_menu_item(deleteMenu, "Just Remove From List", delete_cb, False, False) GTKUtils.append_menu_item(deleteMenu, "Torrent File Only", delete_cb, True, False) GTKUtils.append_menu_item(deleteMenu, "Data Only", delete_cb, False, True) GTKUtils.append_menu_item(deleteMenu, "Both Torrent and Data", delete_cb, True, True) #add the submenu: self.deleteItem = GTKUtils.append_menu_item(baseMenu, "Delete", deleteMenu) self.allItems = [self.openItem, self.pauseItem, self.updateItem, self.editItem, self.deleteItem] baseMenu.show_all() baseMenu.hide() self.baseMenu = baseMenu
def popup_menu(self, activationTime=None): """""" #create the first menu: baseMenu = gtk.Menu() if self.selectedApp: GTKUtils.append_menu_item(baseMenu, "Stop", self.stop_cb) #create the secondary menu: pathLenMenu = gtk.Menu() def path_len_cb(widget, pathLen): self.anonEntry.set_value(pathLen) #add the entries: GTKUtils.append_menu_item(pathLenMenu, "1 (Fastest)", path_len_cb, 1) GTKUtils.append_menu_item(pathLenMenu, "2 (Normal)", path_len_cb, 2) GTKUtils.append_menu_item(pathLenMenu, "3 (Best Anonymity)", path_len_cb, 3) #add the submenu: if self.selectedApp: GTKUtils.append_menu_item(baseMenu, "Set Path Length", pathLenMenu) else: GTKUtils.append_menu_item(baseMenu, "Set Default Path Length", pathLenMenu) baseMenu.show_all() baseMenu.popup(None, None, None, 3, activationTime)
def __init__(self, display): """Creates a drop-down menu to interact with the torrent""" gtk.Menu.__init__(self) ListenerMixin.ListenerMixin.__init__(self) self.display = display baseMenu = self #create menu items self.openItem = GTKUtils.append_menu_item(baseMenu, "Open Containing Folder", display._open_folder) if not display._any_selected_torrent_running(): self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Resume", display._pause_cb) else: self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Pause", display._pause_cb) #create a right-click option to update the tracker def update_cb(widget): torrentsToUpdate = display._get_selected_torrents() for torrentHash in torrentsToUpdate: display.app.btInstance.downloads[torrentHash].rerequest.update( True) self.updateItem = GTKUtils.append_menu_item(baseMenu, "Update Tracker", update_cb) self.editItem = GTKUtils.append_menu_item(baseMenu, "Edit Trackers...", display._open_tracker_edit) #create the secondary menu: deleteMenu = gtk.Menu() def delete_cb(widget, deleteTorrent, deleteData): torrentsToDelete = display._get_selected_torrents() for torrentHash in torrentsToDelete: display.app.remove_download(torrentHash, deleteTorrent, deleteData) #add the entries: GTKUtils.append_menu_item(deleteMenu, "Just Remove From List", delete_cb, False, False) GTKUtils.append_menu_item(deleteMenu, "Torrent File Only", delete_cb, True, False) GTKUtils.append_menu_item(deleteMenu, "Data Only", delete_cb, False, True) GTKUtils.append_menu_item(deleteMenu, "Both Torrent and Data", delete_cb, True, True) #add the submenu: self.deleteItem = GTKUtils.append_menu_item(baseMenu, "Delete", deleteMenu) self.allItems = [ self.openItem, self.pauseItem, self.updateItem, self.editItem, self.deleteItem ] baseMenu.show_all() baseMenu.hide() self.baseMenu = baseMenu