def _update_switch_layout(self): num = 0 self.switch_widgets = [] self.switches = {} self.switch_widgets.append((Label("SWITCHES"), 1)) self.switch_widgets.append((Divider(), 1)) self.switch_widgets.append((Label(""), 2)) self.switch_widgets.append((Divider(), 2)) for sw in sorted(self.machine.switches.values()): if sw.invert: name = sw.name + '*' else: name = sw.name col = 1 if num <= int(len(self.machine.switches) / 2) else 2 switch_widget = Label(name) if sw.state: switch_widget.custom_colour = "active_switch" self.switch_widgets.append((switch_widget, col)) self.switches[sw.name] = (sw, switch_widget) num += 1 self._schedule_draw_screen()
def __init__(self, screen): super(DemoFrame2, self).__init__(screen, int(screen.height * 0.95), int(screen.width * 0.9), data=form_data, has_shadow=True, name="My Form") #layout = Layout([1, 18, 1]) #self.add_layout(layout) layout = Layout([1, 3]) self.add_layout(layout) layout.add_widget(Button("Añadir personaje", self._quit), 0) layout.add_widget(Button("Borrar personaje ", self._quit), 0) layout.add_widget(Button("Editar personaje", self._quit), 0) layout.add_widget(Button("Testear personajes", self._quit), 0) layout.add_widget(Button("Salir", self._quit), 0) self._reset_button = Button("Añadir personaje", self._reset) #layout.add_widget(self._reset_button, 0) #layout.add_widget(Button("Salir", self._quit), 0) layout.add_widget( Text(label="Alpha:", name="TB", on_change=self._on_change, validator="^[a-zA-Z]*$"), 1) layout.add_widget( Text(label="Number:", name="TC", on_change=self._on_change, validator="^[0-9]*$"), 1) layout.add_widget( Text(label="Email:", name="TD", on_change=self._on_change, validator=self._check_email), 1) layout.add_widget(Divider(height=2), 1) layout.add_widget(Label("Group 2:"), 1) layout.add_widget( RadioButtons([("Option 1", 1), ("Option 2", 2), ("Option 3", 3)], label="A Longer Selection:", name="Things", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 1", label="A very silly long name for fields:", name="CA", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 2", name="CB", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 3", name="CC", on_change=self._on_change), 1) layout.add_widget(Divider(height=3), 1) layout2 = Layout([1, 1, 1]) self.add_layout(layout2) layout2.add_widget(self._reset_button, 0) layout2.add_widget(Button("View Data", self._view), 1) layout2.add_widget(Button("Quit", self._quit), 2) self.fix()
def __init__(self, screen): super(mainView, self).__init__(screen, screen.height * 2 // 3, screen.width * 2 // 3, hover_focus=True, title="music finder") self.fileslist = os.listdir() self.dirlist = [("up..", 0)] i = 1 for l in self.fileslist: if os.path.isdir(l): self.dirlist.append((l, i)) i += 1 for l in self.fileslist: if l.endswith("mp3"): self.dirlist.append((l, i)) i += 1 layout = Layout([100], fill_frame=True) self.add_layout(layout) lable1 = Label(self.curdir.format(os.getcwd())) layout.add_widget(Divider()) flbr = ListBox(10, self.dirlist, on_select=self._enter, name="flb") button1 = Button("quit", self._quit) button2 = Button("Enter", self._enter) layout.add_widget(lable1) layout.add_widget(flbr) layout.add_widget(Divider()) layout2 = Layout([1, 1]) self.add_layout(layout2) layout2.add_widget(button1, 1) layout2.add_widget(button2, 0) self.fix()
def __init__(self, screen, interface): super(SendBox, self).__init__(screen, 21, 59, interface, tx_func=self._ok, cancel_func=self._cancel, name="sendbox", title="Send Crypto") layout = Layout([100])#, fill_frame=True) self.prepend_layout(layout) layout.add_widget(Text("To Address:", "address")) layout.add_widget(Divider(draw_line=False)) self.everything_checkbox = CheckBox("Send Everything", on_change=self.checkbox_change) self.amount_text = Text(" Amount:", "amount", on_change=self.amount_change) layout.add_widget(self.amount_text) layout.add_widget(self.everything_checkbox) layout.add_widget(Divider(draw_line=False)) balances = [{'name':'ETH', 'balance': interface.node.eth_balance}] balances += [x for x in interface.node.erc20_balances if x['balance'] > 0] currency_options = [(x['name'], x) for x in balances] logging.info(currency_options) logging.info(currency_options) self.estimated_gas = Decimal(21000) self.currency_listbox = ListBox(1, currency_options, label=" Currency:", name="currency") layout.add_widget(self.currency_listbox) self.currency_balance_label = Label(self.currency_balance) layout.add_widget(self.currency_balance_label) layout.add_widget(Divider(draw_line=False)) self.fix()
def __init__(self, dapp, x, y, tx_fn=None, tx_value=0, gas_limit=300000, **kwargs): super(SLTransactionFrame, self).__init__(dapp._screen, x, y, dapp, self._ok_fn, self.close, **kwargs) self.dapp = dapp # Add as block listener dapp._block_listeners.append(self) self._tx_fn = tx_fn self.estimated_gas = gas_limit layout = Layout([100]) self.prepend_layout(layout) # TODO raise an exception if tx_value is not already a Decimal self.tx_value = Decimal(tx_value) layout.add_widget(Label("You will send {} ETH".format(self.tx_value))) layout.add_widget(Divider(draw_line=False)) layout.add_widget( Label("Estimated Gas for Tx: {}".format(self.estimated_gas))) layout.add_widget(Divider(draw_line=False)) self.fix()
def initialize(self): self.drawn = True total_price = 0 layout = Layout([1]) self.add_layout(layout) layout.add_widget(Label('Shopping List', align='^', height=2), 0) layout.add_widget(Divider(height=1), 0) layout2 = Layout([1, 1, 1]) self.add_layout(layout2) gorccery_list = self.screen.shopping_list layout2.add_widget(Label('Ingredient Name'), 0) layout2.add_widget(Label('Grocery Aisle'), 1) layout2.add_widget(Label('Price'), 2) for ingredient in gorccery_list: total_price += ingredient['price'] layout2.add_widget(Label(f" - {ingredient['name']}"), 0) layout2.add_widget(Label(f" - {ingredient['aisle']}"), 1) layout2.add_widget(Label(f"{ingredient['price_display']}"), 2) layout2.add_widget(Divider(height=1)) layout3 = Layout([1, 1, 1]) self.add_layout(layout3) layout3.add_widget(Label(f"Total:"), 0) layout3.add_widget(Label(f"${round(total_price, 2)}", height=2), 2) layout4 = Layout([1]) self.add_layout(layout4) layout4.add_widget(Label(f"Press Any Key to Exit", align='^'), 0) self.fix()
def __init__(self, screen): super(DemoFrame, self).__init__( screen, screen.height, screen.width, has_border=False, name="My Form") # Create the (very simple) form layout... layout = Layout([1], fill_frame=True) self.add_layout(layout) # Now populate it with the widgets we want to use. self._details = Text() self._details.disabled = True self._details.custom_colour = "field" self._list = FileBrowser(Widget.FILL_FRAME, os.path.abspath("."), name="mc_list", on_select=self.popup, on_change=self.details) layout.add_widget(Label("Local disk browser sample")) layout.add_widget(Divider()) layout.add_widget(self._list) layout.add_widget(Divider()) layout.add_widget(self._details) layout.add_widget(Label("Press Enter to select or `q` to quit.")) # Prepare the Frame for use. self.fix()
def __init__(self, screen, longitude, latitude, on_ok): super(EnterLocation, self).__init__(screen, 7, 40, data={ "long": str(longitude), "lat": str(latitude) }, name="loc", title="Enter New Location", is_modal=True) self._on_ok = on_ok layout = Layout([1, 18, 1]) self.add_layout(layout) layout.add_widget(Divider(draw_line=False), 1) layout.add_widget( Text(label="Longitude:", name="long", validator=r"^[-]?\d+?\.\d+?$"), 1) layout.add_widget( Text(label="Latitude:", name="lat", validator=r"^[-]?\d+?\.\d+?$"), 1) layout.add_widget(Divider(draw_line=False), 1) layout2 = Layout([1, 1, 1]) self.add_layout(layout2) layout2.add_widget(Button("OK", self._ok), 1) layout2.add_widget(Button("Cancel", self._cancel), 2) self.fix()
def __init__(self, screen, x, y, interface, tx_func=None, cancel_func=None, **kwargs): super(TransactionFrame, self).__init__(screen, x, y, can_scroll=False, has_shadow=True, is_modal=True, **kwargs) self.set_theme('shadowlands') self._interface = interface self._screen = screen self._gas_price_wei = None self._tx_func = tx_func # subclass sets this to Decimal(something) self.estimated_gas = None layout = Layout([100], fill_frame=True) self.add_layout(layout) self.nonce_text = Text(" Nonce:", "nonce", default_value=str(self._interface.node.next_nonce())) layout.add_widget(self.nonce_text) layout.add_widget(Divider(draw_line=False)) layout.add_widget(GasPricePicker(on_change=self._on_option_change, interface=interface)) custgas = Text(" CustGas:", "custgas", on_change=self._on_text_change) custgas._is_disabled = True layout.add_widget(Divider(draw_line=False)) layout.add_widget(custgas) layout.add_widget(Divider(draw_line=False)) layout.add_widget(Label("", name='gas_est_label')) layout.add_widget(Divider(draw_line=False)) layout2 = Layout([1, 1, 1, 1]) self.add_layout(layout2) layout2.add_widget(Button("Sign Tx", self.validate), 0) layout2.add_widget(Button("Cancel", cancel_func), 3) self._on_option_change()
def __init__(self, screen): super(ListView, self).__init__(screen, screen.height * 2 // 3, screen.width * 2 // 3, on_load=self._reload_list, hover_focus=True, title="Session List") # Create the form for displaying the list of sessions. self._session_list = ListBox( Widget.FILL_FRAME, list_sessions(), name="Sessions", on_select=self._attach, ) layout = Layout([100], fill_frame=True) self.add_layout(layout) layout.add_widget(Divider()) self._new_button = Button("[N]ew Session", self._new) layout.add_widget(self._new_button, 0) layout.add_widget(Divider()) layout.add_widget(self._session_list) layout.add_widget(Divider()) layout2 = Layout([1, 1, 1]) self.add_layout(layout2) self._attach_button = Button("[A]ttach", self._attach) self._delete_button = Button("[D]elete", self._delete) self._quit_button = Button("[Q]uit", self._quit) layout2.add_widget(self._attach_button, 0) layout2.add_widget(self._delete_button, 1) layout2.add_widget(self._quit_button, 2) self.fix()
def __init__(self, screen, frame_type, frame_data): super(CommonSettingsFrame, self).__init__(screen, frame_type, frame_data) self._layout.add_widget(Label("VM count:", height=2), 1) self._layout.add_widget( RadioButtons([("Single VM", 1), ("2 VMs", 2), ("3 VMs", 3)], name="vm_count"), 1) self._layout.add_widget(Divider(height=1, draw_line=False), 1) self._layout.add_widget(Label("Additional options:", height=2), 1) self._layout.add_widget( CheckBox("Add local YAML config", name="add_config"), 1) self._layout.add_widget(Divider(height=1, draw_line=False), 1) self._layout.add_widget( CheckBox("Require 'vagrant-vbguest' plugin", name="require_vagrant_vbguest"), 1) self._layout.add_widget(Divider(height=1, draw_line=False), 1) self._add_intnet_checkbox = CheckBox( "Add VirtualBox internal network", name="add_vb_intnet", on_change=self._on_add_intnet_change) self._layout.add_widget(self._add_intnet_checkbox, 1) self._intnet_name_edit = Text( # label="Network name:", name="intnet_name") # self._intnet_name_edit.offset = 5 self._layout.add_widget(self._intnet_name_edit, 1) # self._layout.add_widget(Divider(height=1, draw_line=False), 1) self.data = frame_data.controls_data self.fix()
def __init__(self, screen, bf): super(BFView, self).__init__(screen, screen.height * 2 // 3, screen.width * 2 // 3, on_load=self.reload_program, hover_focus=True, can_scroll=False, title="Brainfuck") self.bf = bf print('initting...') layout = Layout([100], fill_frame=True) self.add_layout(layout) self.program_widget = ProgramWidget(self.bf.program, self.bf.counter) layout.add_widget(self.program_widget) layout.add_widget(Divider()) self.tape_widget = TapeWidget(bf.tape, bf.head) layout.add_widget(self.tape_widget) layout.add_widget(Divider()) layout2 = Layout([1, 1, 1, 1]) self.add_layout(layout2) self.delay_field = Text(on_change=self.delay_changed) self.delay_field.value = '0.1' layout2.add_widget(self.delay_field, 0) self.auto_box = CheckBox('Auto', on_change=self.auto_changed) self.auto_box.value = False layout2.add_widget(self.auto_box, 1) next_button = Button("Next", self.next) layout2.add_widget(next_button, 2) quit_button = Button("Exit", self.quit) layout2.add_widget(quit_button, 3) self.fix()
def __init__(self, screen, model): super(ListView, self).__init__(screen, screen.height * 75 // 100, screen.width * 75 // 100, on_load=self._reload_list, hover_focus=True, title="Login List", y=1) # Save off the model that accesses the contacts database. self._model = model # Create the form for displaying the list of contacts. self._list_view = ListBox(Widget.FILL_FRAME, model.get_summary(), name="logins", on_change=self._on_pick) self._edit_button = Button("Edit", self._edit) self._delete_button = Button("Delete", self._delete) layout = Layout([100], fill_frame=True) self.add_layout(layout) layout.add_widget(self._list_view) layout.add_widget(Divider()) self.filter_selector = Text("Groupfilter:", "lgroup", on_change=self._filter_list) layout.add_widget(self.filter_selector) layout.add_widget(Divider()) layout2 = Layout([1, 1, 1, 1]) self.add_layout(layout2) layout2.add_widget(Button("Add", self._add), 0) layout2.add_widget(self._edit_button, 1) layout2.add_widget(self._delete_button, 2) layout2.add_widget(Button("Quit", self._quit), 3) self.fix() self._on_pick()
def __init__(self, screen): super(DemoFrame, self).__init__(screen, int(screen.height * 2 // 3), int(screen.width * 2 // 3), data=form_data, has_shadow=True, name="My Form") layout = Layout([1, 18, 1]) self.add_layout(layout) self._reset_button = Button("Reset", self._reset) layout.add_widget(Label("Group 1:"), 1) layout.add_widget(TextBox(5, label="My First Box:", name="TA", on_change=self._on_change), 1) layout.add_widget( Text(label="Alpha:", name="TB", on_change=self._on_change, validator="^[a-zA-Z]*$"), 1) layout.add_widget( Text(label="Number:", name="TC", on_change=self._on_change, validator="^[0-9]*$"), 1) layout.add_widget( Text(label="Email:", name="TD", on_change=self._on_change, validator=self._check_email), 1) layout.add_widget(Divider(height=2), 1) layout.add_widget(Label("Group 2:"), 1) layout.add_widget(RadioButtons([("Option 1", 1), ("Option 2", 2), ("Option 3", 3)], label="A Longer Selection:", name="Things", on_change=self._on_change), 1) layout.add_widget(CheckBox("Field 1", label="A very silly long name for fields:", name="CA", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 2", name="CB", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 3", name="CC", on_change=self._on_change), 1) layout.add_widget(DatePicker("Date", name="DATE", year_range=range(1999, 2100), on_change=self._on_change), 1) layout.add_widget( TimePicker("Time", name="TIME", on_change=self._on_change, seconds=True), 1) layout.add_widget(Text("Password", name="PWD", on_change=self._on_change, hide_char="*"), 1) layout.add_widget(Divider(height=3), 1) layout2 = Layout([1, 1, 1]) self.add_layout(layout2) layout2.add_widget(self._reset_button, 0) layout2.add_widget(Button("View Data", self._view), 1) layout2.add_widget(Button("Quit", self._quit), 2) self.fix()
def __init__(self, screen, events): super(EventList, self).__init__(screen, screen.height // 3, screen.width // 3, has_border=False) self._events = events self.palette = palette layout1 = Layout([100]) self.add_layout(layout1) layout1.add_widget(Label("Event List")) layout1.add_widget(Divider(draw_line=False)) layout1.add_widget(Label("%i events found." % len(self._events))) layout2 = Layout([100], fill_frame=True) self.add_layout(layout1) layout2.add_widget( ListBox(Widget.FILL_FRAME, [(event.event['name'], i) for event, i in enumerate(self._events)])) layout2.add_widget(Divider(draw_line=False)) layout3 = Layout([1, 1, 1, 1]) self.add_layout(layout2) layout3.add_widget(Button("OK", leave), 1) layout3.add_widget(Button("Cancel", leave), 2)
def __init__(self, screen): self.screen = screen super(DemoFrame, self).__init__( screen, int(screen.height), int(screen.width), data=form_data, has_shadow=True, has_border=True, name="My Form", x=0, y=0, ) layout = Layout([1], fill_frame=False) self.add_layout(layout) self._reset_button = Button("Reset", self._reset) title = "MISP Event #{} ({}):".format(args.event, event_tag) layout.add_widget( Text(label=title, name="ENA", on_change=self._on_change), 0) layout.add_widget(Divider(height=1), 0) layout1 = Layout([1, 1], fill_frame=False) self.add_layout(layout1) layout1.add_widget( RadioButtons([("Malicious files hosted", 1), ("Compromised server", 2)], label="Templates", name="template", on_change=self._on_change), 0) dryruntext = "Dry-run (all mails to %s)" % override_email layout1.add_widget( CheckBox(dryruntext, name="dryrun", on_change=self._on_change), 1) onlinechecktext = "Verify resource (online and size > %s bytes)" % min_size layout1.add_widget( CheckBox(onlinechecktext, name="onlinecheck", on_change=self._on_change), 1) layout2 = Layout([50, 50], fill_frame=True) self.add_layout(layout2) layout2.add_widget(Divider(height=1), 0) layout2.add_widget(Divider(height=1), 1) layout2.fix(0, 0, 0, 5) i = False for entry in urllist: if i is False: layout2.add_widget( CheckBox(entry, name=entry, on_change=self._on_change), 0) i = True else: layout2.add_widget( CheckBox(entry, name=entry, on_change=self._on_change), 1) i = False self.l = layout2 layout4 = Layout([1, 1, 1]) self.add_layout(layout4) layout4.add_widget(self._reset_button, 0) layout4.add_widget(Button("Quit", self._quit), 1) layout4.add_widget(Button("Process data", self._process), 2) self.fix()
def __init__(self, screen, event_model): super(EventList, self).__init__(screen, screen.height // 2, screen.width // 2, on_load=self.reload, has_border=False, reduce_cpu=True) self.palette = palette self._model = event_model self.event_listbox = ListBox(Widget.FILL_FRAME, self._model.event_list, name="events", on_change=self._on_pick, on_select=self._select) layout0 = Layout([100]) self.add_layout(layout0) layout0.add_widget(Label("EVENT LIST")) layout0.add_widget(Divider(draw_line=False)) layout1 = Layout([50, 50]) self.add_layout(layout1) stipulation = '%s%s' % ((' at %s' % self._model.venue['venue']) if self._model.venue is not None else '', (' featuring %s' % self._model.band['name']) if self._model.band is not None else '') layout1.add_widget( Label("%i events found%s." % (self._model.count, stipulation))) layout1.add_widget( Label("%i other known bands featured (!)." % self._model.count_of_other_bands)) layout1.add_widget( Label("%i distinct venues featured." % self._model.count_of_venues)) layout1.add_widget( Label("%i venues not currently in the database (*)." % self._model.count_of_new_venues)) layout1.add_widget(Divider(draw_line=False)) layout2 = Layout([100], fill_frame=True) self.add_layout(layout2) layout2.add_widget(self.event_listbox) layout2.add_widget(Divider(draw_line=False)) layout3 = Layout([1, 1, 1, 1, 1]) self.add_layout(layout3) layout3.add_widget(Button("Commit", self._commit), 1) layout3.add_widget(Button("Cancel", self._cancel), 2) self.fix()
def _create_help_layout(self): help_layout = Layout([1], fill_frame=True) self.add_layout(help_layout) help_layout.add_widget(Divider()) # ...the help widget itself self._help = TextBox(height=3, label="Help: ", as_string=True) self._help.value = "TEST" self._help.disabled = True help_layout.add_widget(self._help) help_layout.add_widget(Divider())
def __init__(self, screen): super(Dashboard, self).__init__(screen, screen.height, screen.width, hover_focus=True, reduce_cpu=True) self._list_view_run_queue = CListBox( "running", screen.height // 2, [], name="LIST") self._list_view_idle_queue = CListBox( "idle", screen.height // 2, [], name="LIST") self._list_view_noRunning = CListBox( "notRunning", screen.height // 5, [], name="LIST") self._list_view_Log = CListBox( "logs", screen.height // 4, [], name="LIST") #self._list_view_Log.disabled = True #Running Queues layout = Layout([100]) self.add_layout(layout) text_rq = CLabel("Running Queues") layout.add_widget(text_rq) layout.add_widget(CLabel(TABLES_TITLES["running"], listTitle=True)) layout.add_widget(self._list_view_run_queue) layout.add_widget(Divider()) #Idling Queues layout2 = Layout([1,1]) self.add_layout(layout2) text_iq = CLabel("Idling Queues") layout2.add_widget(text_iq, 0) layout2.add_widget(CLabel(TABLES_TITLES["idle"], listTitle=True), 0) layout2.add_widget(self._list_view_idle_queue, 0) #Non Running Queues text_nq = CLabel("Queues not running") layout2.add_widget(text_nq, 1) layout2.add_widget(CLabel(TABLES_TITLES["notRunning"], listTitle=True), 1) layout2.add_widget(self._list_view_noRunning, 1) layout2.add_widget(Divider(), 1) #Log text_l = CLabel("Logs") layout2.add_widget(text_l, 1) layout2.add_widget(CLabel(TABLES_TITLES["logs"], listTitle=True), 1) layout2.add_widget(self._list_view_Log, 1) self.fix()
def __init__(self, screen): super(DemoFrame, self).__init__(screen, screen.height, screen.width // 5, data=form_data, x=0, y=0, name="Side bar") layout = Layout([1, 18, 1]) self.add_layout(layout) self._reset_button = Button("Reset", self._reset) layout.add_widget(Label("Group 1:"), 1) layout.add_widget( TextBox(5, label="My First Box:", name="TA", on_change=self._on_change), 1) layout.add_widget( Text(label="Alpha:", name="TB", on_change=self._on_change, validator="^[a-zA-Z]*$"), 1) layout.add_widget( Text(label="Number:", name="TC", on_change=self._on_change, validator="^[0-9]*$"), 1) layout.add_widget( Text(label="Email:", name="TD", on_change=self._on_change, validator=self._check_email), 1) layout.add_widget(Divider(height=2), 1) layout.add_widget(Label("Group 2:"), 1) layout.add_widget( RadioButtons([("Option 1", 1), ("Option 2", 2), ("Option 3", 3)], label="A Longer Selection:", name="Things", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 1", label="A very silly long name for fields:", name="CA", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 2", name="CB", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 3", name="CC", on_change=self._on_change), 1) layout.add_widget(Divider(height=3), 1) layout2 = Layout([1, 1, 1]) self.add_layout(layout2) layout2.add_widget(self._reset_button, 0) layout2.add_widget(Button("View Data", self._view), 1) layout2.add_widget(Button("Quit", self._quit), 2) self.fix()
def __init__(self, parent: "CustomFileBrowser"): """Create a popup with the list of options from the parent widget. Args: parent: the parent widget. """ location = parent.get_location() if parent.frame.screen.height - location[1] < 3: height = min(len(parent.options) + 4, location[1] + 2) start_line = location[1] - height + 2 reverse = True else: start_line = location[1] - 1 height = min( len(parent.options) + 4, parent.frame.screen.height - location[1] + 1) reverse = False _TempPopup.__init__( self, parent.frame.screen, parent, location[0], start_line, parent.width, height, ) layout = Layout([1], fill_frame=True) self.add_layout(layout) self._field = Text() self._field.disabled = True divider = Divider() divider.disabled = True self._list = ListBox( Widget.FILL_FRAME, parent.options, add_scroll_bar=len(parent.options) > height - 4, on_select=self.close, on_change=self._link, ) layout.add_widget(self._list if reverse else self._field, 0) layout.add_widget(divider, 0) layout.add_widget(self._field if reverse else self._list, 0) self.fix() selected_name = parent.selection.name if parent.selection.is_file( ) else "." for p, i in self._list.options: if p == selected_name: self._list.value = i break
def __init__(self, screen, has_border=True, reduce_cpu=False): super(TestFrame, self).__init__(screen, screen.height, screen.width, name="Test Form", has_border=has_border, hover_focus=True, reduce_cpu=reduce_cpu) layout = Layout([1, 18, 1]) self.add_layout(layout) self._reset_button = Button("Reset", self._reset) layout.add_widget(Label("Group 1:"), 1) layout.add_widget( TextBox(5, label="My First Box:", name="TA", on_change=self._on_change), 1) layout.add_widget( Text(label="Text1:", name="TB", on_change=self._on_change), 1) layout.add_widget( Text(label="Text2:", name="TC", on_change=self._on_change, validator="^[0-9]*$"), 1) layout.add_widget( Text(label="Text3:", name="TD", on_change=self._on_change, validator=lambda x: x in ("", "a")), 1) layout.add_widget(Divider(height=2), 1) layout.add_widget(Label("Group 2:"), 1) layout.add_widget( RadioButtons([("Option 1", 1), ("Option 2", 2), ("Option 3", 3)], label="A Longer Selection:", name="Things", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 1", label="A very silly long name for fields:", name="CA", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 2", name="CB", on_change=self._on_change), 1) layout.add_widget( CheckBox("Field 3", name="CC", on_change=self._on_change), 1) layout.add_widget(Divider(height=3), 1) layout2 = Layout([1, 1, 1]) self.add_layout(layout2) layout2.add_widget(self._reset_button, 0) layout2.add_widget(Button("View Data", self._view), 1) layout2.add_widget(Button("Quit", self._quit), 2) self.fix()
def _create_research_layout(self): research_layout = Layout([1, 1], fill_frame=False) # ...list of available research self._available_research = ListBox( 10, [], on_change=self._on_research_selected, ) self.add_layout(research_layout) research_layout.add_widget(Divider(), column=0) research_layout.add_widget(Label("Available Research"), column=0) research_layout.add_widget(self._available_research, column=0) research_layout.add_widget(Divider(), column=1)
def __draw_list(self): self.layout_main.clear_widgets() self.layout_main.reset() self.layout_main.add_widget(Label('Path found'), 0) self.layout_main.add_widget(Label('Size MB'), 1) self.layout_main.add_widget(Divider(), 0) self.layout_main.add_widget(Divider(), 1) for v in self.venvs: self.layout_main.add_widget(v['checkbox'], 0) self.layout_main.add_widget(Label(str(v['size'])), 1) self.fix()
def __init__(self, screen, game): self.game = game self.form_data = { "playerName": "", "cb_one": False, "cb_two": False, "cb_three": False, "cb_four": False, "cb_five": False, "cb_six": False, "cb_seven": False, "cb_eight": False, "cb_nine": False, "cb_ten": False } self._readConfig(game.config) super(SplashScreenFrame, self).__init__(screen, int(self.game.config.windowHeight), int(self.game.config.windowWidth), data=self.form_data, has_shadow=True, name="SplashScreen") layout = Layout([1, 18, 1]) self.add_layout(layout) self._reset_button = Button("Reset", self._reset) layout.add_widget(Divider(height=3), 1) layout.add_widget(Label("MURPHY MAN 1 - Einmaleins"), 1) layout.add_widget(Divider(height=3), 1) layout.add_widget( CheckBox("1", "1x?", "cb_one", self._on_change), 1) layout.add_widget( CheckBox("2", None, "cb_two", self._on_change), 1) layout.add_widget( CheckBox("3", None, "cb_three", self._on_change), 1) layout.add_widget( CheckBox("4", None, "cb_four", self._on_change), 1) layout.add_widget( CheckBox("5", None, "cb_five", self._on_change), 1) layout.add_widget( CheckBox("6", None, "cb_six", self._on_change), 1) layout.add_widget( CheckBox("7", None, "cb_seven", self._on_change), 1) layout.add_widget( CheckBox("8", None, "cb_eight", self._on_change), 1) layout.add_widget( CheckBox("9", None, "cb_nine", self._on_change), 1) layout.add_widget( CheckBox("10", None, "cb_ten", self._on_change), 1) layout.add_widget(Divider(height=3), 1) nameWidget = Text(label="Name:", name="playerName", on_change=self._on_change, validator="^[a-zA-Z]*$") layout.add_widget(nameWidget, 1) layout.add_widget(Divider(height=3), 1) layout2 = Layout([10, 10]) self.add_layout(layout2) layout2.add_widget(Button("Start", self._start), 0) layout2.add_widget(Button("Beenden", self._quit), 1) self.fix()
def __init__(self, screen, dirstat: DirectoryStat): super(TDirStatView, self).__init__( screen, screen.height, screen.width, has_border=True, name="My Form") # Model self.dirstat: DirectoryStat = dirstat self.disk_usage = shutil.disk_usage(str(self.dirstat.path)).used # Settings self.percent_mode = PercentMode.rel_to_dir # Create layouts layout_1 = Layout([1], fill_frame=True) layout_2 = Layout([1, 1]) self.add_layout(layout_1) self.add_layout(layout_2) titles = [("Name", 0), ("%", "20>"), ("Size", "15>"), ("Items", "15>")] self._list = MultiColumnListBox( height=Widget.FILL_FRAME, columns=[c[1] for c in titles], titles=[c[0] for c in titles], options=[], name="qdirstat_list", on_select=self.enter_directory, on_change=self.details) self._details = Text() self._details.disabled = True self._details.custom_colour = "field" percent_mode_radio_btn = RadioButtons( [("% Relative to Directory", PercentMode.rel_to_dir), ("% Relative to Drive", PercentMode.rel_to_drive_usage)], on_change=lambda: self.set_percent_mode( percent_mode_radio_btn.value)) layout_1.add_widget(Label("TDirStat")) layout_1.add_widget(Divider()) layout_1.add_widget(self._list) layout_1.add_widget(Divider()) layout_2.add_widget(self._details, column=0) layout_2.add_widget( column=1, widget=percent_mode_radio_btn) layout_2.add_widget(Label("Press Enter to select or `q` to quit.")) # Prepare the Frame for use self.fix()
def __init__(self, screen, model): super(EntityListView, self).__init__( screen, screen.height, screen.width, on_load=self._reload_list, hover_focus=False, can_scroll=False, title="", ) self.set_theme("custom") self._model = model self._entity_list_view = MultiColumnListBox( Widget.FILL_FRAME, ["<24", "<64"], model.get_children(), name="entities", on_change=self._on_pick, on_select=self._enter_child, ) self._quantities_list_view = MultiColumnListBox( 10, ["<24", "<64"], model.get_quantities(), name="quantities", on_change=self._on_pick, on_select=self._enter_quantity, ) entity_list_layout = Layout([100], fill_frame=True) self.add_layout(entity_list_layout) entity_list_layout.add_widget(self._entity_list_view) entity_list_layout.add_widget(Divider()) details_layout = Layout([100]) self.add_layout(details_layout) details_layout.add_widget(self._quantities_list_view) details_layout.add_widget(Divider()) button_row_layout = Layout([1, 1, 1, 1]) self.add_layout(button_row_layout) button_row_layout.add_widget(Button("Quit", self._quit), 3) self._refresh_status() self.fix() self._on_pick()
def __init__(self, screen, model, ui: UIController): super().__init__(screen, height=screen.height // 2, width=screen.width // 2, can_scroll=False, title="Add Command", hover_focus=True) self._model: ModelInterface = model self._ui: UIController = ui self._theme = None self.set_theme(ui.theme) # Initialize Widgets self._confirm_button = Button("Confirm", self._confirm) self._cancel_button = Button("Cancel", self._cancel) self._ip_input = Text("IPs and/or subnet(s): ", name="ips", disabled=True) self._ip_input.value = self._model.current_machine self._command_type = RadioButtons([("Powershell", "ps"), ("DOS", "cmd"), ("Bash", "bash")], name="cmdtype", label="Command Type: ") # self._or = Text("OR", disabled=True) # self._hostname_input = Text("Hostname(s):", name="hostnames") self._command_input = TextBox(Widget.FILL_FRAME, label="Command(s): \n(one per line)", name="commands", line_wrap=True) # Create and Generate Layouts layout = Layout([1], fill_frame=True) self.add_layout(layout) layout.add_widget(self._ip_input) layout.add_widget(self._command_type) # layout.add_widget(self._or) # layout.add_widget(self._hostname_input) layout.add_widget(Divider()) layout.add_widget(self._command_input) layout.add_widget(Divider()) button_layout = Layout([1, 1]) self.add_layout(button_layout) button_layout.add_widget(self._confirm_button, 0) button_layout.add_widget(self._cancel_button, 1) # Save Layouts self.fix()
def _update_player(self, **kwargs): del kwargs self._player_widgets = [] self._player_widgets.append(Label("CURRENT PLAYER")) self._player_widgets.append(Divider()) try: player = self.machine.game.player self._player_widgets.append( Label('PLAYER: {}'.format(player.number))) self._player_widgets.append(Label('BALL: {}'.format(player.ball))) self._player_widgets.append( Label('SCORE: {:,}'.format(player.score))) except AttributeError: self._player_widgets.append(Label("NO GAME IN PROGRESS")) return player_vars = player.vars.copy() player_vars.pop('score', None) player_vars.pop('number', None) player_vars.pop('ball', None) names = self.config.get('player_vars', player_vars.keys()) for name in names: self._player_widgets.append( Label("{}: {}".format(name, player_vars[name]))) self._layout_change = True self._schedule_draw_screen()
def _update_ball_devices(self, **kwargs): del kwargs # TODO: do not create widgets. just update contents self.ball_device_widgets = [] self.ball_device_widgets.append(Label("BALL COUNTS")) self.ball_device_widgets.append(Divider()) try: for pf in self.machine.playfields.values(): widget = Label('{}: {} '.format(pf.name, pf.balls)) if pf.balls: widget.custom_colour = "pf_active" else: widget.custom_colour = "pf_inactive" self.ball_device_widgets.append(widget) except AttributeError: pass for bd in self.ball_devices: widget = Label('{}: {} ({})'.format(bd.name, bd.balls, bd.state)) if bd.balls: widget.custom_colour = "pf_active" else: widget.custom_colour = "pf_inactive" self.ball_device_widgets.append(widget) self.ball_device_widgets.append(Label("")) self._layout_change = True self._schedule_draw_screen()