summaryrefslogtreecommitdiff
path: root/textbox.py
blob: 0657c96b999a5814372fb9cc7146eb45610df084 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

class Textbox:
    def __init__(self, lines, width=None, padding=0):
        self.width = width or max([len(line) for line in lines]) + 2
        self.padding = padding
        self.inner_width = self.width - 2 + padding

        self.lines = lines        
        if type(lines[0]) == str:
            self.lines = [self.lines]

    def _render_top_line(self):
        return '/' + '-' * self.inner_width + '\\' + '\n'

    def _render_bottom_line(self):
        return '\\' + '-' * self.inner_width + '/' + '\n'

    def _render_line(self, line):
        return '|' + line.ljust(self.inner_width) + '|'

    def _render_lines(self):
        return '\n'.join([self._render_line(line) for line in self.lines]) + '\n'

    def render(self):
        res = ''
        res += self._render_top_line()
        res += self._render_lines()
        res += self._render_bottom_line()
        return res
        
if __name__ == '__main__':
    t = Textbox(['hello', 'this is dog', 'who are you'], width=50)
    print(t.render())