예제 #1
0
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()
예제 #2
0
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
예제 #3
0
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
예제 #4
0
def get_menu_text(menu):
    """ Get the formatted text corresponding to the menu """
    control = to_container(menu).content
    return control.text
예제 #5
0
 def _get_default_container(self):
     return to_container(Label("Empty container"))
예제 #6
0
 def _get_default_container(self):
     return to_container(self._get_status_area())
예제 #7
0
 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)