Skip to content

Commit 5e291ba

Browse files
-
1 parent 272e85c commit 5e291ba

File tree

2 files changed

+47
-32
lines changed

2 files changed

+47
-32
lines changed

examples/full-screen/yes-no-dialog.py

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,25 @@
66
from functools import partial
77
from prompt_toolkit.application import Application
88
from prompt_toolkit.buffer import Buffer
9+
from prompt_toolkit.contrib.completers import WordCompleter
910
from prompt_toolkit.document import Document
11+
from prompt_toolkit.eventloop.base import EventLoop
1012
from prompt_toolkit.eventloop.defaults import create_event_loop
13+
from prompt_toolkit.filters import Condition, has_focus
14+
from prompt_toolkit.key_binding.bindings.focus import focus_next, focus_previous
1115
from prompt_toolkit.key_binding.defaults import load_key_bindings
1216
from prompt_toolkit.key_binding.key_bindings import KeyBindings, merge_key_bindings
1317
from prompt_toolkit.keys import Keys
1418
from prompt_toolkit.layout.containers import VSplit, HSplit, Window, Align, to_window, FloatContainer, Float, Container, ConditionalContainer
1519
from prompt_toolkit.layout.controls import BufferControl, TokenListControl, UIControlKeyBindings
1620
from prompt_toolkit.layout.dimension import Dimension as D
1721
from prompt_toolkit.layout.layout import Layout
18-
from prompt_toolkit.layout.processors import PasswordProcessor
1922
from prompt_toolkit.layout.lexers import PygmentsLexer
23+
from prompt_toolkit.layout.processors import PasswordProcessor
2024
from prompt_toolkit.styles.from_pygments import style_from_pygments
2125
from prompt_toolkit.token import Token
22-
from prompt_toolkit.filters import Condition, has_focus
2326
from prompt_toolkit.utils import get_cwidth
24-
from prompt_toolkit.eventloop.base import EventLoop
2527
from pygments.lexers import HtmlLexer
26-
from prompt_toolkit.contrib.completers import WordCompleter
2728

2829
loop = create_event_loop()
2930

@@ -242,35 +243,9 @@ def accept_no(app):
242243
])
243244

244245
# Global key bindings.
245-
246246
bindings = KeyBindings()
247-
248-
@bindings.add(Keys.Tab)
249-
def _(event):
250-
windows = event.app.focussable_windows
251-
if len(windows) > 0:
252-
try:
253-
index = windows.index(event.app.layout.current_window)
254-
except ValueError:
255-
index = 0
256-
else:
257-
index = (index + 1) % len(windows)
258-
259-
event.app.layout.focus(windows[index])
260-
261-
262-
@bindings.add(Keys.BackTab)
263-
def _(event):
264-
windows = event.app.focussable_windows
265-
if len(windows) > 0:
266-
try:
267-
index = windows.index(event.app.layout.current_window)
268-
except ValueError:
269-
index = 0
270-
else:
271-
index = (index - 1) % len(windows)
272-
273-
event.app.layout.focus(windows[index])
247+
bindings.add(Keys.Tab)(focus_next)
248+
bindings.add(Keys.BackTab)(focus_previous)
274249

275250

276251
style = style_from_pygments(style_dict={
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from __future__ import unicode_literals
2+
3+
__all__ = (
4+
'focus_next',
5+
'focus_previous',
6+
)
7+
8+
9+
def focus_next(event):
10+
"""
11+
Focus the next visible Window.
12+
(Often bound to the `Tab` key.)
13+
"""
14+
windows = event.app.focussable_windows
15+
if len(windows) > 0:
16+
try:
17+
index = windows.index(event.app.layout.current_window)
18+
except ValueError:
19+
index = 0
20+
else:
21+
index = (index + 1) % len(windows)
22+
23+
event.app.layout.focus(windows[index])
24+
25+
26+
def focus_previous(event):
27+
"""
28+
Focus the previous visible Window.
29+
(Often bound to the `BackTab` key.)
30+
"""
31+
windows = event.app.focussable_windows
32+
if len(windows) > 0:
33+
try:
34+
index = windows.index(event.app.layout.current_window)
35+
except ValueError:
36+
index = 0
37+
else:
38+
index = (index - 1) % len(windows)
39+
40+
event.app.layout.focus(windows[index])

0 commit comments

Comments
 (0)