Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

44 lignes
940 B

  1. from __future__ import annotations
  2. from typing import TYPE_CHECKING, Any, Dict, NamedTuple, Optional
  3. if TYPE_CHECKING:
  4. from .styles import BaseStyle
  5. class CursorOffset(NamedTuple):
  6. top: int
  7. left: int
  8. class Element:
  9. metadata: Dict[Any, Any] = {}
  10. style: BaseStyle
  11. focusable: bool = True
  12. def __init__(
  13. self,
  14. style: Optional[BaseStyle] = None,
  15. metadata: Optional[Dict[Any, Any]] = None,
  16. ):
  17. from .styles import MinimalStyle
  18. self._cancelled = False
  19. self.metadata = metadata or {}
  20. self.style = style or MinimalStyle()
  21. @property
  22. def cursor_offset(self) -> CursorOffset:
  23. return CursorOffset(top=0, left=0)
  24. @property
  25. def should_show_cursor(self) -> bool:
  26. return False
  27. def handle_key(self, key: str) -> None: # noqa: B027
  28. pass
  29. def on_cancel(self) -> None: # noqa: B027
  30. self._cancelled = True