From 6ae115a2061ef4f08a3b3a61bd0bc2f5e834ab35 Mon Sep 17 00:00:00 2001 From: Philip Trauner Date: Fri, 2 Dec 2016 23:24:32 +0100 Subject: [PATCH] Added parameter binding ability for Input kwargs can now be set on init which allows for additional parameters on events. Will have to go over all the code to implement a standardised solution. --- Sublime/fl0w/SublimeMenu.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Sublime/fl0w/SublimeMenu.py b/Sublime/fl0w/SublimeMenu.py index 395d463..4cfa710 100644 --- a/Sublime/fl0w/SublimeMenu.py +++ b/Sublime/fl0w/SublimeMenu.py @@ -2,17 +2,34 @@ FUNCTION = type(lambda: 1) class Input: def __init__(self, caption, initial_text="", on_done=None, on_change=None, - on_cancel=None): + on_cancel=None, kwargs={}): self.caption = caption self.initial_text = initial_text self.on_done = on_done self.on_change = on_change self.on_cancel = on_cancel + self.kwargs = kwargs + + + def wrapped_on_done(self, input_): + if not self.on_done == None: + self.on_done(input_, **self.kwargs) + + + def wrapped_on_change(self, input_): + if not self.on_change == None: + self.on_change(input_, **self.kwargs) + + + def wrapped_on_cancel(self): + if not self.on_cancel == None: + self.on_cancel(**self.kwargs) def invoke(self, window): window.show_input_panel(self.caption, self.initial_text, - self.on_done, self.on_change, self.on_cancel) + self.wrapped_on_done, self.wrapped_on_change, + self.wrapped_on_cancel) class Entry: