69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
"""快捷键处理器"""
|
|
|
|
from textual.app import App
|
|
from textual.message import Message
|
|
from .focus_handler import FocusHandler
|
|
|
|
|
|
class KeyHandler:
|
|
"""快捷键处理器"""
|
|
|
|
class ShowHelp(Message):
|
|
"""显示帮助事件"""
|
|
pass
|
|
|
|
class ToggleSidebar(Message):
|
|
"""切换侧边栏事件"""
|
|
pass
|
|
|
|
class ToggleToolDetails(Message):
|
|
"""切换工具详情事件"""
|
|
pass
|
|
|
|
class FocusQuery(Message):
|
|
"""聚焦查询框事件"""
|
|
pass
|
|
|
|
class ClearHistory(Message):
|
|
"""清屏事件"""
|
|
pass
|
|
|
|
class QuitApp(Message):
|
|
"""退出应用事件"""
|
|
pass
|
|
|
|
def __init__(self, focus_handler: FocusHandler):
|
|
self._focus_handler = focus_handler
|
|
|
|
def handle_f1(self, app: App) -> None:
|
|
"""处理 F1 键 - 显示帮助"""
|
|
app.post_message(self.ShowHelp())
|
|
|
|
def handle_f2(self, app: App) -> None:
|
|
"""处理 F2 键 - 切换侧边栏"""
|
|
app.post_message(self.ToggleSidebar())
|
|
|
|
def handle_f3(self, app: App) -> None:
|
|
"""处理 F3 键 - 切换工具详情"""
|
|
app.post_message(self.ToggleToolDetails())
|
|
|
|
def handle_f4(self, app: App) -> None:
|
|
"""处理 F4 键 - 聚焦查询框"""
|
|
app.post_message(self.FocusQuery())
|
|
|
|
def handle_f5(self, app: App) -> None:
|
|
"""处理 F5 键 - 清屏"""
|
|
app.post_message(self.ClearHistory())
|
|
|
|
def handle_f6(self, app: App) -> None:
|
|
"""处理 F6 键 - 退出"""
|
|
app.post_message(self.QuitApp())
|
|
|
|
def handle_tab(self, app: App) -> None:
|
|
"""处理 Tab 键 - 焦点循环"""
|
|
self._focus_handler.next_focus(app)
|
|
|
|
def handle_shift_tab(self, app: App) -> None:
|
|
"""处理 Shift+Tab 键 - 反向焦点循环"""
|
|
self._focus_handler.prev_focus(app)
|