34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
"""
|
||
|
This module implements an ASCII box renderer.
|
||
|
"""
|
||
|
from __future__ import division
|
||
|
from __future__ import absolute_import
|
||
|
from __future__ import print_function
|
||
|
from __future__ import unicode_literals
|
||
|
|
||
|
from asciimatics.constants import SINGLE_LINE
|
||
|
from asciimatics.renderers.base import StaticRenderer
|
||
|
from asciimatics.utilities import BoxTool
|
||
|
|
||
|
|
||
|
class Box(StaticRenderer):
|
||
|
"""
|
||
|
Renders a simple box using ASCII characters. This does not render in
|
||
|
extended box drawing characters as that requires non-ASCII characters in
|
||
|
Windows and direct access to curses in Linux.
|
||
|
"""
|
||
|
|
||
|
def __init__(self, width, height, uni=False, style=SINGLE_LINE):
|
||
|
"""
|
||
|
:param width: width of box
|
||
|
:param height: height of box
|
||
|
:param uni: True to use UNICODE character set, defaults to False
|
||
|
:param style: desired line style, based on line style definitions in
|
||
|
:mod:`~asciimatics.constants`: `ASCII_LINE`, `SINGLE_LINE`,
|
||
|
`DOUBLE_LINE`. `uni` parameter takes precedence and the style will be
|
||
|
ignored if `uni==False`
|
||
|
"""
|
||
|
super(Box, self).__init__()
|
||
|
self._images = [BoxTool(uni, style).box(width, height)]
|