X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fgui%2Fgui.py;h=1dc34b291ea2d2875aa3405657900e978701188a;hb=73edf6925c29d595c774b5d6b3361be3d13422ff;hp=ec0a7cb6f04decbb502b0698fa242bd85ef22d8f;hpb=826cc2e9923c858d3c6a86c04f371cfb326e1728;p=matthijs%2Fupstream%2Fmobilegtd.git diff --git a/src/gui/gui.py b/src/gui/gui.py index ec0a7cb..1dc34b2 100644 --- a/src/gui/gui.py +++ b/src/gui/gui.py @@ -103,9 +103,11 @@ def restore_gui(object): class ListView(object): - def __init__(self,title): - self.title = title + def __init__(self): self.view = appuifw.Listbox(self.items(),self.change_entry) + + def set_title(self, title): + self.title = title def change_entry(self): pass @@ -161,9 +163,9 @@ class ListView(object): class WidgetBasedListView(ListView): - def __init__(self,title): + def __init__(self): self.widgets = self.generate_widgets() - super(WidgetBasedListView,self).__init__(title) + super(WidgetBasedListView,self).__init__() self.exit_flag = False def run(self): @@ -192,7 +194,20 @@ class WidgetBasedListView(ListView): class KeyBindingView(object): - def __init__(self,binding_map): + def __init__(self): + self.binding_map = {} + + def set_keybindings(self, binding_map): + """ + Set a new map of key bindings. This map maps method names to a + tuple of keyname and description. + + The method name refers to a method on the selected item, or the + current view. + + Example: { 'search_item' : ('0', 'Search item') } + + """ self.binding_map = binding_map def get_menu_entries(self): @@ -221,12 +236,12 @@ class KeyBindingView(object): self.view.bind(key,no_action) class SearchableListView(WidgetBasedListView): - def __init__(self,title,entry_filters): + def __init__(self,entry_filters): self.current_entry_filter_index = 0 self.entry_filters = entry_filters self.filtered_list = self.entry_filters[0] self.lock = None - super(SearchableListView,self).__init__(title) + super(SearchableListView,self).__init__() def search_item(self): @@ -242,9 +257,9 @@ class SearchableListView(WidgetBasedListView): class EditableListView(SearchableListView,KeyBindingView): - def __init__(self,title,entry_filters,binding_map): - KeyBindingView.__init__(self,binding_map) - super(EditableListView, self).__init__(title,entry_filters) + def __init__(self,entry_filters): + KeyBindingView.__init__(self) + super(EditableListView, self).__init__(entry_filters) def key_and_menu_bindings(self,selected_index): key_and_menu_bindings=[]