X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fgui%2Fgui.py;h=33f8973fa8ddaafaa9b6f1cac3d8161d901018b3;hb=0be176c06676dcaf537a4fbb262a8c655c74cff9;hp=a8f217164e1d3b399dc6e63a683be89e814d2e0e;hpb=2f604638e8911e52289b0f10acac616ae9b605ae;p=matthijs%2Fupstream%2Fmobilegtd.git diff --git a/src/gui/gui.py b/src/gui/gui.py index a8f2171..33f8973 100644 --- a/src/gui/gui.py +++ b/src/gui/gui.py @@ -146,13 +146,26 @@ class View(object): """ super(View, self).refresh() + def get_menu_entries(self): + """ Returns a list of menu entries to display. Will be + automatically updated on each refresh. + + Each menu entry is a tuple of a title for the entry and a + function to call when the entry is selected. + """ + return [] + class ListView(View): def __init__(self): super(ListView, self).__init__() - self.set_view(appuifw.Listbox(self.items(),self.change_entry)) + self.set_view(appuifw.Listbox(self.items(),self.entry_selected)) - def change_entry(self): - pass + def entry_selected(self): + """ + This function is called when the user selects an an entry (e.g., + navigates to it and push the ok button). + """ + super(ListView).entry_selected() def update(self,subject=None): #logger.log(u'Updated %s'%repr(self)) @@ -184,7 +197,6 @@ class ListView(View): def selected_index(self): return self.view.current() - class WidgetBasedListView(ListView): def __init__(self): self.widgets = self.generate_widgets() @@ -214,7 +226,7 @@ class WidgetBasedListView(ListView): return self.widgets[self.selected_index()] -class KeyBindingView(object): +class KeyBindingView(View): def __init__(self): self.binding_map = {} @@ -244,7 +256,8 @@ class KeyBindingView(object): description=' '+description menu_entries.append((description,function)) menu_entries.append((u'Exit', self.exit)) - return menu_entries + return menu_entries + super(KeyBindingView, self).get_menu_entries() + def set_bindings_for_selection(self,selected_index): self.remove_all_key_bindings() @@ -306,7 +319,7 @@ class EditableListView(SearchableListView,KeyBindingView): key_and_menu_bindings.append((get_key(key),key,description,execute_and_update_function)) return key_and_menu_bindings - def change_entry(self): + def entry_selected(self): self.current_widget().change() self.refresh() def execute_and_update(self,function):