Update of /cvsroot/freevo/freevo/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6868
Modified Files: menu.py Log Message: o remove unneeded functions o add function to delete the submenu or do nothing (avoid duplicate code) o use new skin functions and do not call get_singleton() Index: menu.py =================================================================== RCS file: /cvsroot/freevo/freevo/src/menu.py,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** menu.py 12 Feb 2004 16:27:06 -0000 1.85 --- menu.py 14 Feb 2004 13:02:34 -0000 1.86 *************** *** 10,13 **** --- 10,18 ---- # ----------------------------------------------------------------------- # $Log$ + # Revision 1.86 2004/02/14 13:02:34 dischi + # o remove unneeded functions + # o add function to delete the submenu or do nothing (avoid duplicate code) + # o use new skin functions and do not call get_singleton() + # # Revision 1.85 2004/02/12 16:27:06 dischi # fix watermark problem once and for all *************** *** 21,30 **** # Revision 1.82 2004/02/04 22:32:42 gsbarbieri # Changed LEFT/RIGHT behaviour. ! # Now in single column mode it behaves like BACK_ONE_MENU/SELECT and in multi-column mode (2d menus) it goes one item LEFT/RIGHT (as before). ! # ! # This was asked in freevo-devel because it improve usability and it really does, since you just have to use arrows (UP/DOWN,LEFT/RIGHT) to navigate. # ! # Revision 1.81 2004/02/01 17:07:13 dischi ! # cosmetic changes # # Revision 1.80 2004/01/19 20:26:41 dischi --- 26,34 ---- # Revision 1.82 2004/02/04 22:32:42 gsbarbieri # Changed LEFT/RIGHT behaviour. ! # Now in single column mode it behaves like BACK_ONE_MENU/SELECT and in ! # multi-column mode (2d menus) it goes one item LEFT/RIGHT (as before). # ! # This was asked in freevo-devel because it improve usability and it really ! # does, since you just have to use arrows (UP/DOWN,LEFT/RIGHT) to navigate. # # Revision 1.80 2004/01/19 20:26:41 dischi *************** *** 77,85 **** from gui import GUIObject, AlertBox - skin = skin.get_singleton() class MenuItem(Item): """ ! Default item for the main menu actions """ def __init__( self, name, action=None, arg=None, type=None, image=None, --- 81,88 ---- from gui import GUIObject, AlertBox class MenuItem(Item): """ ! Default item for the menu. It includes one action """ def __init__( self, name, action=None, arg=None, type=None, image=None, *************** *** 99,106 **** --- 102,115 ---- def actions(self): + """ + return the default action + """ return [ ( self.select, self.name ) ] def select(self, arg=None, menuw=None): + """ + call the default acion + """ if self.function: self.function(arg=self.arg, menuw=menuw) *************** *** 109,113 **** class Menu: ! def __init__(self, heading, choices, fxd_file=None, umount_all = 0, reload_func = None, item_types = None, force_skin_layout = -1): --- 118,124 ---- class Menu: ! """ ! a Menu with Items for the MenuWidget ! """ def __init__(self, heading, choices, fxd_file=None, umount_all = 0, reload_func = None, item_types = None, force_skin_layout = -1): *************** *** 143,184 **** - def delete_item(self, item): - try: - pos = self.choices.index(item) - except ValueError: - # item not in list - return - - self.choices.remove(item) - - if self.selected == item: - if self.choices: - self.selected = self.choices[max(pos-1,0)] - else: - self.selected = None - - if len(self.choices) <= self.page_start: - if self.page_start != 0: - self.page_start = self.previous_page_start.pop() - - def items_per_page(self): return skin.items_per_page(('menu', self)) - def add_item(self, item, pos): - try: - sel_pos = self.choices.index(self.selected) - except: - sel_pos = 0 - - self.choices.insert(pos, item) - - rows, cols = self.items_per_page() - items_per_page = rows*cols - if sel_pos >= self.page_start + items_per_page - 1: - self.previous_page_start.append(self.page_start) - self.page_start += items_per_page - --- 154,164 ---- def items_per_page(self): + """ + return the number of items per page for this skin + """ return skin.items_per_page(('menu', self)) *************** *** 225,228 **** --- 205,223 ---- self.init_page() + + def delete_submenu(self, refresh=True, reload=False): + """ + Delete the last menu if it is a submenu + """ + if len(self.menustack) > 1 and hasattr(self.menustack[-1], 'is_submenu') and \ + self.menustack[-1].is_submenu: + if refresh and reload: + self.back_one_menu(arg='reload') + elif refresh: + self.back_one_menu() + else: + self.delete_menu() + + def back_one_menu(self, arg=None, menuw=None): if len(self.menustack) > 1: *************** *** 702,707 **** ! if __freevo_app__ == 'main': ! areas = ('screen', 'title', 'subtitle', 'view', 'listing', 'info', 'plugin') ! skin.register('menu', areas) ! --- 697,700 ---- ! # register menu to the skin ! skin.register('menu', ('screen', 'title', 'subtitle', 'view', 'listing', 'info', 'plugin')) ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog