wijjit.layout.scroll.render_vertical_scrollbar

wijjit.layout.scroll.render_vertical_scrollbar(scroll_state, height, style='simple')[source]

Render a vertical scrollbar as a list of characters.

Parameters:
  • scroll_state (ScrollState) – Current scroll state

  • height (int) – Height of scrollbar in characters

  • style ({"simple", "fancy"}, optional) – Scrollbar style (default: “simple”) - “simple”: uses │ (track) and █ (thumb) - “fancy”: uses │ (track), █ (thumb), ▲ (top), ▼ (bottom)

Returns:

List of characters for each line of the scrollbar

Return type:

list of str

Notes

For “simple” style: - Track character: │ (U+2502 Box Drawings Light Vertical) - Thumb character: █ (U+2588 Full Block)

For “fancy” style (future enhancement): - Top arrow: ▲ (U+25B2 Black Up-Pointing Triangle) - Bottom arrow: ▼ (U+25BC Black Down-Pointing Triangle)

Examples

>>> state = ScrollState(content_size=100, viewport_size=10, scroll_position=0)
>>> bar = render_vertical_scrollbar(state, 5, style="simple")
>>> print('\n'.join(bar))