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