Compare commits
3 Commits
1a309d28c0
...
b44a1f3543
Author | SHA1 | Date |
---|---|---|
Sebastian Lohff | b44a1f3543 | |
Sebastian Lohff | 26412d400f | |
Sebastian Lohff | 33aa41ac6e |
|
@ -132,11 +132,15 @@ class CliMenu:
|
|||
for text in title.split('\n'):
|
||||
self._items.append(_CliMenuHeader(text, indent=indent, style=style))
|
||||
|
||||
def add_option(self, text, item=_EmptyParameter, style=None, highlighted_style=None):
|
||||
def add_option(self, text, item=_EmptyParameter, disabled=False, style=None, highlighted_style=None):
|
||||
if disabled:
|
||||
# this is basically a text option and we just throw the item away
|
||||
self.add_text(title=text, style=style)
|
||||
else:
|
||||
if item == _EmptyParameter:
|
||||
item = text
|
||||
self._items.append(_CliMenuOption(text, self._item_num, item=item,
|
||||
style=style, highlighted_style=highlighted_style))
|
||||
opt = _CliMenuOption(text, self._item_num, item=item, style=style, highlighted_style=highlighted_style)
|
||||
self._items.append(opt)
|
||||
self._item_num += 1
|
||||
|
||||
@property
|
||||
|
@ -272,6 +276,10 @@ class CliMenu:
|
|||
event.app.exit()
|
||||
|
||||
def _run(self):
|
||||
if self._item_num == 0:
|
||||
self._success = False
|
||||
return
|
||||
|
||||
self._preflight()
|
||||
|
||||
class MenuColorizer(Processor):
|
||||
|
@ -284,6 +292,7 @@ class CliMenu:
|
|||
@self._kb.add('q', filter=~is_searching)
|
||||
@self._kb.add('c-c')
|
||||
def quit(event):
|
||||
self._success = False
|
||||
event.app.exit()
|
||||
|
||||
@self._kb.add('down', filter=~is_searching)
|
||||
|
@ -336,7 +345,10 @@ class CliMenu:
|
|||
self._searchbar])
|
||||
|
||||
# set initial pos
|
||||
for _ in range(self._initial_pos + 1):
|
||||
while not self._items[self._pos].focusable:
|
||||
self._pos += 1
|
||||
|
||||
for _ in range(self._initial_pos):
|
||||
self.next_item(1)
|
||||
|
||||
app = Application(layout=Layout(split),
|
||||
|
@ -361,9 +373,11 @@ class CliMultiMenu(CliMenu):
|
|||
self._selection_icons = selection_icons if selection_icons is not None else self.default_selection_icons
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def add_option(self, text, item=_EmptyParameter, selected=False,
|
||||
def add_option(self, text, item=_EmptyParameter, selected=False, disabled=False,
|
||||
style=None, highlighted_style=None, selected_style=None, selected_highlighted_style=None):
|
||||
super().add_option(text, item, style, highlighted_style=highlighted_style)
|
||||
if disabled:
|
||||
return
|
||||
self._items[-1].selected_style = selected_style
|
||||
self._items[-1].selected_highlighted_style = selected_highlighted_style
|
||||
if selected:
|
||||
|
|
Loading…
Reference in New Issue