def simulate_key(menu, key): """ Simulate passing `key` to a menu """ control = to_container(menu).content key_bindings = control.key_bindings key_processor = KeyProcessor(key_bindings) key_processor.feed(KeyPress(key)) key_processor.process_keys()
def test_fixed_width(): entry1 = MenuEntry(1, "short") entry2 = MenuEntry(2, "very long entry") menu = VerticalMenu([entry1, entry2], width=8) menu_text = get_menu_text(menu) assert len(menu_text) == 2 [menu_line1, menu_line2] = menu_text assert menu_line1 == ("reverse", "short \n") assert menu_line2 == ("", "very lon\n") width = to_container(menu).preferred_width(100) assert width.preferred == 8 assert width.min == width.max == 8
def test_different_entry_widths(): entry1 = MenuEntry(1, "short") entry2 = MenuEntry(2, "very long entry") menu = VerticalMenu([entry1, entry2]) menu_text = get_menu_text(menu) assert len(menu_text) == 2 [menu_line1, menu_line2] = menu_text assert menu_line1 == ("reverse", "short\n") assert menu_line2 == ("", "very long entry\n") width = to_container(menu).preferred_width(100) assert width.preferred == 15 assert width.min == 0 assert width.max > 100
def get_menu_text(menu): """ Get the formatted text corresponding to the menu """ control = to_container(menu).content return control.text
def _get_default_container(self): return to_container(Label("Empty container"))
def _get_default_container(self): return to_container(self._get_status_area())
def __init__(self, item, w_min=None, w_max=None, w_pre=None, w_weight=None, h_min=None, h_max=None, h_pre=None, h_weight=None): super().__init__() self.item = to_container(item) self.width = Dimension(min=w_min, max=w_max, preferred=w_pre, weight=w_weight) self.height = Dimension(min=h_min, max=h_max, preferred=h_pre, weight=h_weight)