def __init__(self, screen, tui): self.name = "PackagesWindow" self.screen = screen self.tui = tui size = snack._snack.size() toplevel = snack.GridForm(screen, PACKAGES_WINDOW.encode('utf-8'), 1, 5) self.g = toplevel text = snack.TextboxReflowed(size[0] - 10, PACKAGES_WINDOW_DESC1.encode('utf-8')) toplevel.add(text, 0, 0, anchorLeft=1) self.packagesButton = snack.Checkbox( PACKAGES_WINDOW_DESC2.encode('utf-8'), 1) toplevel.add(self.packagesButton, 0, 1, padding=(0, 1, 0, 1), anchorLeft=1) label = snack.Label(PACKAGES_WINDOW_UNCHECK.encode('utf-8')) toplevel.add(label, 0, 2, anchorLeft=1) #self.packageList = snack.Listbox(size[1]-18, 1, width = size[0]-10) self.packageList = snack.CheckboxTree(size[1] - 18, 1) toplevel.add(self.packageList, 0, 3) # do we need to read the packages from disk? if tui.packageList == []: self.pwin = snack.GridForm(screen, PACKAGES_WINDOW_PKGLIST.encode('utf-8'), 1, 1) self.scale = snack.Scale(40, 100) self.pwin.add(self.scale, 0, 0) self.pwin.draw() self.screen.refresh() getArch = 0 if rhnreg.cfg['supportsExtendedPackageProfile']: getArch = 1 tui.packageList = pkgUtils.getInstalledPackageList(getArch=getArch) self.screen.popWindow() for package in tui.packageList: self.packageList.append( "%s-%s-%s" % (package['name'], package['version'], package['release']), item=package['name'], selected=1) # BUTTON BAR self.bb = snack.ButtonBar(screen, [(NEXT.encode('utf-8'), "next"), (BACK.encode('utf-8'), "back"), (CANCEL.encode('utf-8'), "cancel")]) toplevel.add(self.bb, 0, 4, padding=(0, 1, 0, 0), growx=1)
def VoteText(self, header, text, buttons=None, watches=None, reflow=False): if not buttons: buttons = ['Ok'] if watches is None: watches = {} with self: btnsbar = snack.ButtonBar(self.__screen, buttons) form = snack.GridForm(self.__screen, header, 1, 2) if text and reflow: textbox = snack.TextboxReflowed(width=TEXT_WIDTH, text=text, flexDown=FLEX_DOWN, flexUp=FLEX_UP) form.add(textbox, 0, 0, padding=(0, 0, 0, 1)) elif text: width, height, scroll = self.__GetWidgetBounds(5, text=text) textbox = snack.Textbox(width, height, text=text, scroll=scroll, wrap=True) form.add(textbox, 0, 0, padding=(0, 0, 0, 1)) form.add(btnsbar, 0, 1, padding=(0, 0, 0, 0)) for watch in watches: form.form.watchFile(watch, 1) ret = form.runOnce() if btnsbar.buttonPressed(ret): return btnsbar.buttonPressed(ret) elif ret in watches: return watches[ret] else: return None
def __init__(self, screen, tui): if not rhnreg.registered() or tui.test: raise WindowSkipException() self.screen = screen self.tui = tui size = snack._snack.size() systemIdXml = rpclib.xmlrpclib.loads(up2dateAuth.getSystemId()) oldUsername = systemIdXml[0][0]['username'] oldsystemId = systemIdXml[0][0]['system_id'] toplevel = snack.GridForm(self.screen, SYSTEM_ALREADY_SETUP.encode('utf-8'), 1, 2) self.bb = snack.ButtonBar(self.screen, [(YES_CONT.encode('utf-8'), "next"), (NO_CANCEL.encode('utf-8'), "exit")]) toplevel.add(self.bb, 0, 1, growx=1) tb = snack.Textbox( size[0] - 30, size[1] - 20, (SYSTEM_ALREADY_REGISTERED + "\n\n" + _("Spacewalk Location:") + " " + convert_url_from_pune(self.tui.serverURL) + "\n" + _("Login:"******" " + oldUsername + "\n" + _("System ID:") + " " + oldsystemId + "\n\n" + SYSTEM_ALREADY_REGISTERED_CONT + "\n").encode('utf-8'), 1, 1) toplevel.add(tb, 0, 0, padding=(0, 0, 0, 1)) self.g = toplevel
def __init__(self, screen, tui): self.screen = screen self.tui = tui size = snack._snack.size() toplevel = snack.GridForm(self.screen, WHY_REGISTER_WINDOW.encode('utf-8'), 1, 2) why_register_text = WHY_REGISTER_TEXT + "\n\n" + \ WHY_REGISTER_SEC + "\n" + \ WHY_REGISTER_SEC_TXT + "\n\n" + \ WHY_REGISTER_DLD + "\n" + \ WHY_REGISTER_DLD_TXT + "\n\n" + \ WHY_REGISTER_SUPP + "\n" + \ WHY_REGISTER_SUPP_TXT + "\n\n" + \ WHY_REGISTER_COMP + "\n" + \ WHY_REGISTER_COMP_TXT + "\n\n" + \ WHY_REGISTER_TIP tb = snack.Textbox(size[0] - 10, size[1] - 14, why_register_text.encode('utf-8'), 1, 1) toplevel.add(tb, 0, 0, padding=(0, 0, 0, 1)) self.bb = snack.ButtonBar(self.screen, [(BACK_REGISTER.encode('utf-8'), "back")]) toplevel.add(self.bb, 0, 1, growx=1) self.g = toplevel
def runIt(self, mscreen): """ Show and run the screen, save files if necesarry """ g1 = snack.Grid(1, 1) g2 = snack.Grid(2, 6) g2.setField(snack.Label(_("Name")), 0, 0, anchorLeft=1) g2.setField(snack.Label(_("Device")), 0, 1, anchorLeft=1) g2.setField(snack.Label(_("ISP Phonenumber")), 0, 2, anchorLeft=1) g2.setField(snack.Label(_("ISP Login")), 0, 3, anchorLeft=1) g2.setField(snack.Label(_("ISP Password")), 0, 4, anchorLeft=1) g2.setField(snack.Label(_("MSN")), 0, 5, anchorLeft=1) g2.setField(self.name, 1, 0, (1, 0, 0, 0)) g2.setField(self.hwdev, 1, 1, (1, 0, 0, 0)) g2.setField(self.phoneno, 1, 2, (1, 0, 0, 0), anchorLeft=1) g2.setField(self.login, 1, 3, (1, 0, 0, 0)) g2.setField(self.password, 1, 4, (1, 0, 0, 0)) g2.setField(self.msn, 1, 5, (1, 0, 0, 0)) bb = snack.ButtonBar(mscreen, ((_("Ok"), "ok"), (_("Cancel"), "cancel"))) tl = snack.GridForm(mscreen, _("ISDN Configuration"), 1, 3) tl.add(g1, 0, 0, (0, 0, 0, 1), anchorLeft=1) tl.add(g2, 0, 1, (0, 0, 0, 1)) tl.add(bb, 0, 2, growx=1) self.setState(self.isdn) while 1: res = tl.run() if bb.buttonPressed(res) == "cancel": mscreen.popWindow() return False elif bb.buttonPressed(res) == "ok": mscreen.popWindow() self.processInfo() return True
def __init__(self, screen, tui): self.screen = screen self.tui = tui self.tui.alreadyRegistered = 0 self.server = self.tui.serverURL size = snack._snack.size() toplevel = snack.GridForm(screen, REGISTER_WINDOW.encode('utf-8'), 1, 4) decoded_server = convert_url_from_pune(self.server) url = self.server if decoded_server != self.server: url += " (%s)" % decoded_server login_prompt = LOGIN_PROMPT % url login_label = LOGIN login_tip = LOGIN_TIP label = snack.Textbox(size[0] - 10, 3, login_prompt.encode('utf-8'), scroll=0, wrap=1) toplevel.add(label, 0, 0, anchorLeft=1) grid = snack.Grid(2, 3) label = snack.Label(login_label.encode('utf-8')) grid.setField(label, 0, 0, padding=(0, 0, 1, 0), anchorRight=1) self.userNameEntry = snack.Entry(20) self.userNameEntry.set(tui.userName) grid.setField(self.userNameEntry, 1, 0, anchorLeft=1) label = snack.Label(PASSWORD.encode('utf-8')) grid.setField(label, 0, 1, padding=(0, 0, 1, 0), anchorRight=1) try: self.passwordEntry = snack.Entry(20, password=1) except TypeError: self.passwordEntry = snack.Entry(20, hidden=1) self.passwordEntry.set(tui.password) grid.setField(self.passwordEntry, 1, 1, anchorLeft=1) toplevel.add(grid, 0, 1) label = snack.TextboxReflowed(size[0] - 10, login_tip.encode('utf-8')) toplevel.add(label, 0, 2, anchorLeft=1) # BUTTON BAR self.bb = snack.ButtonBar(screen, [(NEXT.encode('utf-8'), "next"), (BACK.encode('utf-8'), "back"), (CANCEL.encode('utf-8'), "cancel")]) toplevel.add(self.bb, 0, 3, padding=(0, 1, 0, 0), growx=1) self.g = toplevel
def mostrarListado(self): opcion = "" while (opcion != "back"): self.contenido = self.leerArchivo() self.label = snack.Label(self.texto) self.botones = snack.ButtonBar( self.screen, ((gettext.gettext("Add"), "add"), (gettext.gettext("Delete"), "delete"), (gettext.gettext("Back"), "back"))) self.lista = snack.Listbox(height=13, width=60, returnExit=1, showCursor=0, scroll=1) for registro in self.contenido: fecha = registro.split("\t")[1] recordView = registro.split("\t")[0] + "(" + fecha.strip( ":created") + ")" self.lista.append(recordView, registro) self.grid = snack.GridForm(self.screen, self.titulo, 1, 3) self.grid.add(self.label, 0, 0, growx=0, growy=0, anchorLeft=1) self.grid.add(self.lista, 0, 1) self.grid.add(self.botones, 0, 2, growx=1, growy=0) respuesta = self.grid.runOnce() opcion = self.botones.buttonPressed(respuesta) if (opcion == "add"): cargaDeValores = Datos.Datos(self.archivo, gettext.gettext("New"), self.texto, self.screen) cargaDeValores.altas() elif (opcion == "delete"): self.guardarArchivo(self.lista.current())
def __init__(self, screen, tui): self.name = "ConnectWindow" self.screen = screen self.tui = tui size = snack._snack.size() self.server = convert_url_from_puny(self.tui.serverURL) fixed_server_url = rhnreg.makeNiceServerUrl(self.server) #Save the config only if the url is different if fixed_server_url != self.server: self.server = fixed_server_url config.setServerURL(self.server) cfg.save() self.proxy = cfg['httpProxy'] toplevel = snack.GridForm(self.screen, CONNECT_WINDOW.encode('utf-8'), 1, 1) text = CONNECT_WINDOW_TEXT % self.server + "\n\n" if self.proxy: text += CONNECT_WINDOW_TEXT2 % self.proxy tb = snack.Textbox(size[0] - 30, size[1] - 20, text.encode('utf-8'), 1, 1) toplevel.add(tb, 0, 0, padding=(0, 0, 0, 1)) self.g = toplevel
def runIt(self, screen): g1 = snack.Grid(1, 1) g2 = snack.Grid(2, 5) g2.setField(snack.Label(_("Hostname")), 0, 0, anchorLeft=1) g2.setField(snack.Label(_("Primary DNS")), 0, 1, anchorLeft=1) g2.setField(snack.Label(_("Secondary DNS")), 0, 2, anchorLeft=1) g2.setField(snack.Label(_("Tertiary DNS")), 0, 3, anchorLeft=1) g2.setField(snack.Label(_("DNS search path")), 0, 4, anchorLeft=1) #g2.setField(snack.Label (_("Default gateway IP")), 0, 5, anchorLeft = 1) g2.setField(self.hostname, 1, 0, (1, 0, 0, 0)) g2.setField(self.primaryDNS, 1, 1, (1, 0, 0, 0)) g2.setField(self.secondaryDNS, 1, 2, (1, 0, 0, 0)) g2.setField(self.tertiaryDNS, 1, 3, (1, 0, 0, 0)) g2.setField(self.searchList, 1, 4, (1, 0, 0, 0)) #g2.setField(gwy, 1, 5, (1, 0, 0, 0)) #dynip.setCallback(useDynamicCheckBox) bb = snack.ButtonBar(screen, ((_("Ok"), "ok"), (_("Cancel"), "cancel"))) self.setState(self.prof) tl = snack.GridForm(screen, _("DNS configuration"), 1, 3) tl.add(g1, 0, 0, (0, 0, 0, 1), anchorLeft=1) tl.add(g2, 0, 1, (0, 0, 0, 1)) tl.add(bb, 0, 2, growx=1) # if res = tl.run() if bb.buttonPressed(res) == "cancel": print "cancel" screen.popWindow() return False elif bb.buttonPressed(res) == "ok": screen.popWindow() self.processInfo() return True
def __init__(self, screen, tui): self.screen = screen self.tui = tui self.tui.alreadyRegistered = 0 self.server = convert_url_from_puny(self.tui.serverURL) fixed_server_url = rhnreg.makeNiceServerUrl(self.server) #Save the config only if the url is different if fixed_server_url != self.server: self.server = fixed_server_url config.setServerURL(self.server) cfg.save() size = snack._snack.size() toplevel = snack.GridForm(screen, sstr(SATELLITE_URL_WINDOW), 1, 4) prompt_text = SATELLITE_URL_TEXT url_label = SATELLITE_URL_PROMPT ssl_label = SATELLITE_URL_PROMPT2 label = snack.Textbox(size[0] - 10, 3, sstr(prompt_text), scroll=0, wrap=1) toplevel.add(label, 0, 0, anchorLeft=1) # spacer label = snack.Label(sstr("")) toplevel.add(label, 0, 1) grid = snack.Grid(2, 3) label = snack.Label(sstr(url_label)) grid.setField(label, 0, 0, padding=(0, 0, 1, 0), anchorRight=1) self.urlEntry = snack.Entry(40) self.urlEntry.set(self.server) grid.setField(self.urlEntry, 1, 0, anchorLeft=1) label = snack.Label(sstr(ssl_label)) grid.setField(label, 0, 1, padding=(0, 0, 1, 0), anchorRight=1) self.sslEntry = snack.Entry(40) self.sslEntry.set(tui.sslCACert) grid.setField(self.sslEntry, 1, 1, anchorLeft=1) toplevel.add(grid, 0, 2) # BUTTON BAR self.bb = snack.ButtonBar(screen, [(sstr(NEXT), "next"), (sstr(BACK), "back"), (sstr(CANCEL), "cancel")]) toplevel.add(self.bb, 0, 3, padding=(0, 1, 0, 0), growx=1) self.g = toplevel
def error(self, message): form = snack.GridForm(self._screen, "Error", 1, 3) form.add(snack.TextboxReflowed(40, message), 0, 0) form.add(snack.Textbox(0, 2, ""), 0, 1) form.add(snack.Button("Quit"), 0, 2) form.runOnce()
def ConfirmGplv3Window(insScreen, packages): if insScreen == None: print "error ConfirmGplv3Window: the screen is None" # Create CheckboxTree instance (main_width, main_height) = GetHotKeyMainSize(insScreen) main_height -= 2 if len(packages) > main_height: scroll = 1 else: scroll = 0 hotkey_base_text = "These GPLv3 packages are depended, do you want to install them? (y/n)" wrapper = textwrap.TextWrapper(width=main_width) hotkey_text = wrapper.fill(hotkey_base_text) if hotkey_text != hotkey_base_text: main_height -= 1 hotkey_line = 2 else: hotkey_line = 1 li = snack.Listbox(main_height, scroll=scroll, width=main_width) idx = 0 for x in packages: li.append(x.name, idx) idx += 1 # Set position iPosition = 0 li.setCurrent(iPosition) # Create Text instance t1 = snack.Textbox(main_width, 1, "-" * main_width) t4 = snack.Textbox(main_width, hotkey_line, hotkey_text) # Create Grid instance title = "GPLv3 that be depended" g = snack.GridForm(insScreen, title, 1, 5) g.add(li, 0, 0) g.add(t1, 0, 1, (-1, 0, -1, 0)) g.add(t4, 0, 4, (0, 0, 0, -1)) ############# append test key 'S' #### myhotkeys = {"y" : "y", \ "Y" : "y", \ "n" : "n", \ "N" : "n"} for x in myhotkeys.keys(): g.addHotKey(x) ##################################### result = g.run() if myhotkeys.has_key(result): if myhotkeys[result] == "y" or \ myhotkeys[result] == "n": insScreen.popWindow() return (myhotkeys[result])
def __init__(self, screen, tui): self.screen = screen self.tui = tui size = snack._snack.size() self.pwin = snack.GridForm(screen, SENDING_WINDOW.encode('utf-8'), 1, 1) self.scale = snack.Scale(40, 100) self.pwin.add(self.scale, 0, 0)
def _SnackWindow(screen, header, text, items): form = snack.GridForm(screen, header, 1, items + 1) if text: tbox = snack.TextboxReflowed(width=TEXT_WIDTH, text=text, maxHeight=screen.height - 12, flexDown=32, flexUp=0) form.add(tbox, 0, 0, padding=(0, 0, 0, 1)) return form
def PKGINSTActionWindow(insScreen, lstSubject, iPosition): # Create CheckboxTree instance (main_width, main_height) = GetHotKeyMainSize(insScreen) if len(lstSubject) > main_height: scroll = 1 else: scroll = 0 li = snack.Listbox(main_height, scroll=scroll, width=main_width) idx = 0 for idx in range(len(lstSubject)): str = "%s" % lstSubject[idx][0] li.append(str, idx) num_subject = len(lstSubject) if num_subject > iPosition: li.setCurrent(iPosition) else: li.setCurrent(num_subject - 1) # Create Text instance t1 = snack.Textbox(main_width, 1, "-" * main_width) text = "SPACE/ENTER:select I:Info X:eXit" t2 = snack.Textbox(main_width, 1, text) # Create Grid instance g = snack.GridForm(insScreen, "Select your operation", 1, 3) g.add(li, 0, 0) g.add(t1, 0, 1, (-1, 0, -1, 0)) g.add(t2, 0, 2, (0, 0, 0, -1)) myhotkeys = {"ENTER" : "ENTER", \ " " : " ", \ "i" : "i", \ "I" : "i", \ "x" : "x", \ "X" : "x"} for x in myhotkeys.keys(): g.addHotKey(x) # Display window while True: result = g.run() if myhotkeys.has_key(result): idx = li.current() break insScreen.popWindow() return (myhotkeys[result], idx)
def startGUI(self): GUI.startGUI(self) self.form = snack.GridForm(self.screen, _("Discovered Hosts"), 1, 1) self.textbox = snack.Textbox(50, 4, "", scroll=1) self.form.add(self.textbox, 0, 0) self.screen.drawRootText( 0, 0, _("%s -- version %s") % (self.sql.usage_name, self.sql.usage_version)) self.screen.pushHelpLine(' ')
def printDiscovered(self, mac): form = snack.GridForm(self.screen, _("Discovered New Appliance"), 1, 1) new_app = _("Discovered a new appliance with MAC (%s)") % (mac) textbox = snack.Textbox(len(new_app), 1, new_app) form.add(textbox, 0, 0) # # display the message for 2 seconds # form.draw() self.screen.refresh() time.sleep(2) self.screen.popWindow()
def _pack(self): ''' This function should pack all the Widgets into the form is is automaticlly called when using run Overrid this per specialized form ''' if not len(self.Widgets): raise NoWidgetsInWidgetsList() c=1 r=len(self.Widgets) self.frm=snack.GridForm(self.screen,self.name,c,r) for p in range(0,len(self.Widgets)): self.frm.add(self.Widgets[p],0,p) self.init=True
def runIt(self, screen): """ Show and run the screen, save files if necesarry """ self.screen = screen g1 = snack.Grid(1, 1) g2 = snack.Grid(2, 11) g2.setField(snack.Label(_("Name")), 0, 0, anchorLeft=1) g2.setField(snack.Label(_("Device")), 0, 1, anchorLeft=1) g2.setField(snack.Label(_("Use DHCP")), 0, 2, anchorLeft=1) g2.setField(snack.Label(_("Static IP")), 0, 3, anchorLeft=1) g2.setField(snack.Label(_("Netmask")), 0, 4, anchorLeft=1) g2.setField(snack.Label(_("Default gateway IP")), 0, 5, anchorLeft=1) g2.setField(snack.Label(_("Read Device Bus ID")), 0, 6, anchorLeft=1) g2.setField(snack.Label(_("Data Device Bus ID")), 0, 7, anchorLeft=1) g2.setField(snack.Label(_("Write Device Bus ID")), 0, 8, anchorLeft=1) g2.setField(snack.Label(_("Options")), 0, 9, anchorLeft=1) g2.setField(snack.Label(_("MAC Address")), 0, 10, anchorLeft=1) g2.setField(self.name, 1, 0, (1, 0, 0, 0)) g2.setField(self.hwdev, 1, 1, (1, 0, 0, 0)) g2.setField(self.dynip, 1, 2, (1, 0, 0, 0), anchorLeft=1) g2.setField(self.statip, 1, 3, (1, 0, 0, 0)) g2.setField(self.netmask, 1, 4, (1, 0, 0, 0)) g2.setField(self.gwy, 1, 5, (1, 0, 0, 0)) g2.setField(self.ioport, 1, 6, (1, 0, 0, 0)) g2.setField(self.ioport1, 1, 7, (1, 0, 0, 0)) g2.setField(self.ioport2, 1, 8, (1, 0, 0, 0)) g2.setField(self.options, 1, 9, (1, 0, 0, 0)) g2.setField(self.macaddr, 1, 10, (1, 0, 0, 0)) self.dynip.setCallback(self.useDynamicCheckBox) bb = snack.ButtonBar(self.screen, ((_("Ok"), "ok"), (_("Cancel"), "cancel"))) self.setState(self.dev) tl = snack.GridForm(screen, _("Devernet Configuration"), 1, 3) tl.add(g1, 0, 0, (0, 0, 0, 1), anchorLeft=1) tl.add(g2, 0, 1, (0, 0, 0, 1)) tl.add(bb, 0, 2, growx=1) self.useDynamicCheckBox() while 1: res = tl.run() if bb.buttonPressed(res) == "cancel": screen.popWindow() return False elif bb.buttonPressed(res) == "ok": screen.popWindow() self.processInfo() return True
def start(self): # Create our discovery list form = snack.GridForm(self._screen, "Discovered Hosts", 1, 3) self._textbox = snack.Textbox(60, 10, "", scroll=1) label = snack.Label("MAC Address Hostname Kickstarted") form.add(label, 0, 0, anchorLeft=True, padding=(1, 0, 0, 0)) form.add(self._textbox, 0, 1, padding=(1, 0, 0, 2)) form.add(snack.Button("Quit"), 0, 2) # Call start on the base class to start the thread self.daemon = True super().start() # Launch the form and wait for the quit button to be pressed form.runOnce()
def startGUI(self): GUI.startGUI(self) self.form = snack.GridForm(self.screen, _("Inserted Appliances"), 1, 1) self.textbox = snack.Textbox(50, 4, "", scroll = 1) self.form.add(self.textbox, 0, 0) self.screen.drawRootText(0, 0, _("%s -- version %s") % (self.sql.usage_name, self.sql.usage_version)) self.screen.drawRootText(0, 1, _("Opened kickstart access to %s network") % self.sql.getPrivateNet()) self.screen.pushHelpLine(' ')
def _make_grid_search(insScreen, search_id): l = snack.Label("Search Value:") l1 = snack.Label(" ") e = snack.Entry(30, search_id) b = snack.ButtonBar(insScreen, (("Search", "search"), ("Search off", "cancel"))) g = snack.GridForm(insScreen, "Enter Search String", 3, 6) g.add(l, 0, 1) g.add(l1, 0, 2) g.add(e, 0, 3) g.add(l1, 0, 4) g.add(b, 0, 5) return e, b, g
def __init__(self, screen, tui): self.screen = screen self.tui = tui size = snack._snack.size() toplevel = snack.GridForm(screen, sstr(FINISH_WINDOW), 1, 2) text = snack.TextboxReflowed(size[0] - 11, sstr(FINISH_WINDOW_TEXT_TUI)) toplevel.add(text, 0, 0) # BUTTON BAR self.bb = snack.ButtonBar(screen, [(sstr(_("Finish")), "next")]) toplevel.add(self.bb, 0, 1, padding=(0, 1, 0, 0), growx=1) self.g = toplevel
def _make_grid_input_path(insScreen, title, label, strText): l = snack.Label(label) l1 = snack.Label(" ") e = snack.Entry(50, strText) b = snack.ButtonBar(insScreen, ((" OK ", "ok"), (" Cancel ", "cancel"))) g = snack.GridForm(insScreen, title, 3, 6) g.add(l, 0, 1) g.add(l1, 0, 2) g.add(e, 0, 3) g.add(l1, 0, 4) g.add(b, 0, 5) return e, b, g
def edit_repos(self): """ List box Add Edit Delete Cancel """ screen = self.screen while True: listbox = snack.CListbox(screen.height - 10, 2, (20, 40), scroll=1, returnExit=1, col_labels=("Name", "Path"), adjust_width=1) for name, path in pull_repos.items(): listbox.append((name, path), name) grid = snack.GridForm(screen, "Repos Setup", 1, 2) grid.add(listbox, 0, 0, growx=1, growy=1) buttons = snack.ButtonBar( screen, self._NormalizeButtons([("Add", "add"), ("Edit", "edit"), ("Remove", "remove"), self.MB_CANCEL])) grid.add(buttons, 0, 1, growx=1) result = grid.runOnce() button = buttons.buttonPressed(result) if not pull_repos: repo = None else: repo = listbox.current() if button == "cancel": break elif repo and button in (None, "edit"): self.edit_repo(repo) elif repo is None or button == "add": self.add_repo() elif repo and button == "remove": self.remove_repo(repo)
def __init__(self, screen, tui): self.screen = screen self.tui = tui size = snack._snack.size() toplevel = snack.GridForm(screen, sstr(SEND_WINDOW), 1, 2) text = snack.TextboxReflowed(size[0] - 15, sstr(SEND_WINDOW_DESC)) toplevel.add(text, 0, 0) # BUTTON BAR self.bb = snack.ButtonBar(screen, [(sstr(NEXT), "next"), (sstr(BACK), "back"), (sstr(CANCEL), "cancel")]) toplevel.add(self.bb, 0, 1, padding=(0, 1, 0, 0), growx=1) self.g = toplevel
def selectDevice(self, mscreen): #li = self.Listbox(5, returnExit=1) g = snack.GridForm(mscreen, _("Select A Device"), 1, 3) bb = snack.ButtonBar(mscreen, ((_("Save"), "save"), (_("Cancel"), "cancel"))) g.add(self.li, 0, 1) g.add(bb, 0, 2, growx=1) res = g.run() mscreen.popWindow() if bb.buttonPressed(res) == "save": ret = -1 elif bb.buttonPressed(res) == "cancel": ret = None else: ret = self.li.current() if not ret: ret = self.newDevice(mscreen) return ret
def modalGUI(self, message, title, l1, l2): form = snack.GridForm(self.screen, title, 2, 2) textbox = snack.TextboxReflowed(40, message) form.add(textbox, 0, 0) if not l2: b1 = snack.Button(l1) form.add(b1, 0, 1) else: b1 = snack.Button(l1) b2 = snack.Button(l2) form.add(b1, 0, 1) form.add(b2, 1, 1) if form.runOnce() == b1: return 0 else: return 1
def __init__(self, screen, tui): self.name = "FinishWindow" self.screen = screen self.tui = tui size = snack._snack.size() toplevel = snack.GridForm(screen, FINISH_WINDOW.encode('utf-8'), 1, 2) text = snack.TextboxReflowed(size[0] - 11, FINISH_WINDOW_TEXT_TUI.encode('utf-8')) toplevel.add(text, 0, 0) # BUTTON BAR self.bb = snack.ButtonBar(screen, [(_("Finish").encode('utf-8'), "next")]) toplevel.add(self.bb, 0, 1, padding=(0, 1, 0, 0), growx=1) self.g = toplevel
def __init__(self, screen, tui): self.screen = screen self.tui = tui self.name = "SendWindow" size = snack._snack.size() toplevel = snack.GridForm(screen, SEND_WINDOW.encode('utf-8'), 1, 2) text = snack.TextboxReflowed(size[0] - 15, SEND_WINDOW_DESC.encode('utf-8')) toplevel.add(text, 0, 0) # BUTTON BAR self.bb = snack.ButtonBar(screen, [(NEXT.encode('utf-8'), "next"), (BACK.encode('utf-8'), "back"), (CANCEL.encode('utf-8'), "cancel")]) toplevel.add(self.bb, 0, 1, padding=(0, 1, 0, 0), growx=1) self.g = toplevel