+def _dialog_form(self, text, height=20, width=60, form_height=15, fields=[],
+ **kwargs):
+ """Display a form box.
+
+ fields is in the form: [(label1, item1, item_length1), ...]
+ """
+
+ cmd = ["--form", text, str(height), str(width), str(form_height)]
+
+ label_len = 0
+ for field in fields:
+ if len(field[0]) > label_len:
+ label_len = len(field[0])
+
+ input_len = width - label_len - 1
+
+ line = 1
+ for field in fields:
+ label = field[0]
+ item = field[1]
+ item_len = field[2]
+ cmd.extend((label, str(line), str(1), item, str(line),
+ str(label_len + 1), str(input_len), str(item_len)))
+ line += 1
+
+ code, output = self._perform(*(cmd,), **kwargs)
+
+ if not output:
+ return (code, [])
+
+ return (code, output.splitlines())
+
+