diff --git a/lib/dialogwizard/dialogwizard.py b/lib/dialogwizard/dialogwizard.py index 95fe81f1..8619b8ec 100755 --- a/lib/dialogwizard/dialogwizard.py +++ b/lib/dialogwizard/dialogwizard.py @@ -35,10 +35,31 @@ class DialogStepGenerator(): return dico return Step(fn) - def select_step(self, title, enonce, var, choix): + def select_step(self, title, enonce, var, choix, **kw): + def fn(dico, default): + rc, res = self.d.menu(enonce, choices = choix, title = title, **kw) + self._check_rc(rc) + dico[var] = res + return dico + return Step(fn) + + def input_step(self, title, enonce, var, **kw): def fn(dico, default): rc, res = self.d.inputbox(enonce, title = title, init = dico.get(var, ''), **kw) self._check_rc(rc) dico[var] = res return dico return Step(fn) + + def checklist_step(self, title, enonce, liste): + def fn(dico, default): + choix = [var, txt, dico.get(var, 'off') for var, txt in liste] + rc, res = self.d.checklist(enonce, title = title, choices = choix, **kw) + self._check_rc(rc) + for tag, item, status in liste: + if tag in res: + dico[tag] = 'on' + else: + dico[tag] = 'off' + return dico + return Step(fn)