def add_variable(self, varName, settingsObj, app, category, box=None, ignoreHBar=None): if not box: box = self.vbox if len(self.variables) > 0 and not ignoreHBar: box.pack_start(gtk.HSeparator(), False, False, 0) entry = SettingsDisplay.make_entry(settingsObj.ranges[varName], getattr(settingsObj, varName)) box.pack_start(entry.make_wrapper(settingsObj.displayNames[varName], settingsObj.helpStrings[varName], HELP_TEXT_SIZE), False, False, 5) self.variables.append([varName, settingsObj, entry, app, category]) return entry
def make_exit_row(labelText): #make the widgets label = gtk.Label() label.set_markup("<span size='large'>%s</span>" % (labelText)) entry = SettingsDisplay.make_entry("bool", True) #and pack them together box = gtk.HBox() box.pack_start(label, False, False, 0) box.pack_end(entry.entry, False, False, 0) return (entry, box)
def make_exit_row(labelText): #make the widgets label = gtk.Label() label.set_markup("<span size='large'>%s</span>" % (labelText)) entry = SettingsDisplay.make_entry("bool", True) #and pack them together box = gtk.HBox() box.pack_start(label, False, False, 0) box.pack_end(entry.entry, False, False, 0) return (entry, box)
def _make_entry(self): self.entry = SettingsDisplay.make_entry(Globals.PORT_RANGE, 0) self.entry.entry.connect("changed", self._entry_changed)
def _make_entry(self): self.entry = SettingsDisplay.make_entry("bool", True) self.entry.entry.connect("toggled", self._entry_changed)
def _make_entry(self): self.entry = SettingsDisplay.make_entry(Globals.PORT_RANGE, 0) self.entry.entry.connect("changed", self._entry_changed)
def _make_entry(self): self.entry = SettingsDisplay.make_entry("bool", True) self.entry.entry.connect("toggled", self._entry_changed)
def create(self): #Stores references to the program rows self.rows = {} self.selectedApp = None ClientUtil.add_updater(self) #create a liststore with one string column to use as the model #COLUMNS: #0: Program name typeList = [gobject.TYPE_STRING, #1: Number of hops gobject.TYPE_INT, #2: Download Rate gobject.TYPE_STRING, #3: Upload Rate gobject.TYPE_STRING, #4: Coins spent gobject.TYPE_INT ] self.attrIdx = {} self.attrIdx["name"] = 0 self.attrIdx["numHops"] = 1 self.attrIdx["rateDown"] = 2 self.attrIdx["rateUp"] = 3 self.attrIdx["numCredits"] = 4 self.liststore = gtk.ListStore(*typeList) COLUMN_NAMES = ['Name','Anonymity Level', "Down Rate", "Up Rate", "Credits Used"] viewName = "Anonymous Programs" modelfilter, treeview = GTKUtils.make_listview(self.liststore, COLUMN_NAMES) for i in range (0, len(COLUMN_NAMES)): GTKUtils.make_text_cell(treeview.columns[i], i) #make treeview searchable treeview.set_search_column(0) #attach the filtermodel and treeview treeview.set_model(gtk.TreeModelSort(modelfilter)) # treeview.connect("row-activated", self.row_activate_cb) treeview.connect("cursor-changed", self.row_change_cb) treeview.connect("button-press-event", self.button_press_cb) treeview.set_size_request(-1, 80) treeview.get_selection().set_mode(gtk.SELECTION_SINGLE) def make_button(text, cb, picFile): return GTKUtils.make_image_button(text, cb, picFile) bottomRow = gtk.HBox() self.removeButton = make_button('Stop', self.stop_cb, ClientUtil.get_image_file("stop.png")) bottomRow.pack_start(self.removeButton, False, False, 1) self.anonEntry = SettingsDisplay.make_entry("anonymity level", 1) self.anonEntry.connect_user_changed(self.toggle_anon_cb) bottomRow.pack_end(self.anonEntry.get_gtk_element(), False, False, 5) label = gtk.Label("") label.set_markup('<span size="large" weight="bold">Number of Hops: </span>') bottomRow.pack_end(label, False, False, 5) self.treeview, self.modelfilter = treeview, modelfilter # self.modelfilter.set_visible_func(self.visible_cb) self.bankDisplay = BankDisplay.BankDisplay() self.circuitList = CircuitList.CircuitList() self.console = Console.Console(Tor.get()) self.bwGraph = BWGraph.BWGraph(BWHistory.localBandwidth, root=self) self.bwGraph.container.set_size_request(-1, 200) self.bwGraphLabel = gtk.Label("All Traffic") self.notebook = ClosableTabNotebook.ClosableTabNotebook() self.notebook.show_display(self.bwGraph) notebookAlign = gtk.Alignment(0, 0, 1, 1) notebookAlign.set_padding(5, 5, 0, 5) notebookAlign.add(self.notebook) self.topBox = gtk.VBox() self.topBox.pack_start(GTKUtils.make_scroll_box(treeview, hPolicy=gtk.POLICY_AUTOMATIC, vPolicy=gtk.POLICY_AUTOMATIC), True, True, 10) self.topBox.pack_start(bottomRow, False, True, 10) alignBottom = gtk.Alignment(1, 1, 1, 1) alignBottom.set_padding(10, 3, 1, 1) alignBottom.add(notebookAlign) vpane = gtk.VPaned() frame = gtk.Frame() frame.set_shadow_type(gtk.SHADOW_OUT) frame.add(self.topBox) alignTop = gtk.Alignment(1, 1, 1, 1) alignTop.set_padding(10, 10, 7, 7) alignTop.add(frame) topContainer = gtk.VBox() topContainer.pack_start(alignTop, True, True, 0) vpane.pack1(topContainer, resize=True, shrink=False) vpane.pack2(alignBottom, resize=True, shrink=False) vpane.set_position(400) self.label = gtk.Label("") self.label.set_markup("<span size='x-large' weight='bold'>Applications</span>") self.container = vpane self.catch_event("settings_changed") self.menuBar = SocksServerMenuBar(self.root, self) vbox = gtk.VBox() vbox.pack_start(self.menuBar.create_menus(), False, False, 0) vbox.pack_start(self.container, True, True, 0) self.add(vbox) vbox.show_all()