summaryrefslogtreecommitdiff
path: root/textbox.py
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2018-10-12 10:28:22 +0200
committerYuval Adam <_@yuv.al>2018-10-12 10:28:22 +0200
commit019970114aed3be234daabea7b8b1b4d301c1499 (patch)
tree251ac7f9620af26cb4b911b46dddc26e7c445259 /textbox.py
parentd869718cbba54630c9f4ab6f64dd6a697b008189 (diff)
Basic textbox implementation for shits and gigglestextbox
Diffstat (limited to 'textbox.py')
-rw-r--r--textbox.py33
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