for i, c in enumerate(text):
self._screen[self._cursor_yx.y][self._cursor_yx.x + i] = (attrs, c)
- def _truncate(self, text: str, size: int) -> str:
- return text[:size]
-
def _get_keypresses(self) -> Iterator[Optional[TuiEvent]]:
while True:
try:
def _write_w_attrs(self, text: str, attrs: tuple[str, ...]) -> None:
pass
- @abstractmethod
- def _truncate(self, text: str, size: int) -> str:
- pass
-
def write(self,
msg: str = '',
start_y: Optional[int] = None,
# ._blessed.length can slow down things notably: only use where needed!
end_x = self._cursor_yx.x + self._length_to_terminal(msg)
len_padding = self.size.x - end_x
- if len_padding < 0:
- msg = self._truncate(msg, self.size.x - self._cursor_yx.x)
- elif padding:
+ if (len_padding := self.size.x - end_x) and padding:
msg += ' ' * len_padding
end_x = self.size.x
self._write_w_attrs(msg, self._attrs_tuple_from_str(attributes))
text = getattr(self._blessed, attr)(text)
print(text, end='')
- def _truncate(self, text: str, size: int) -> str:
- return self._blessed.truncate(text, size)
-
def _get_keypresses(self) -> Iterator[Optional[TuiEvent]]:
'''Loop through keypresses from terminal, expand blessed's handling.