diff options
| author | Yuval Adam <_@yuv.al> | 2018-10-12 10:28:22 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2018-10-12 10:28:22 +0200 |
| commit | 019970114aed3be234daabea7b8b1b4d301c1499 (patch) | |
| tree | 251ac7f9620af26cb4b911b46dddc26e7c445259 /textbox.py | |
| parent | d869718cbba54630c9f4ab6f64dd6a697b008189 (diff) | |
Basic textbox implementation for shits and gigglestextbox
Diffstat (limited to 'textbox.py')
| -rw-r--r-- | textbox.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/textbox.py b/textbox.py new file mode 100644 index 0000000..0657c96 --- /dev/null +++ b/textbox.py @@ -0,0 +1,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())
\ No newline at end of file |
