Update of /cvsroot/freevo/freevo/skins/dischi1
In directory sc8-pr-cvs1:/tmp/cvs-serv24089
Modified Files:
area.py xml_skin.py
Log Message:
Support the new <menu> and <menuset> structure. See the blue2 skins
for example
Index: area.py
===================================================================
RCS file: /cvsroot/freevo/freevo/skins/dischi1/area.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** area.py 14 Mar 2003 03:08:58 -0000 1.22
--- area.py 14 Mar 2003 19:38:02 -0000 1.23
***************
*** 28,31 ****
--- 28,35 ----
# -----------------------------------------------------------------------
# $Log$
+ # Revision 1.23 2003/03/14 19:38:02 dischi
+ # Support the new <menu> and <menuset> structure. See the blue2 skins
+ # for example
+ #
# Revision 1.22 2003/03/14 03:08:58 outlyer
# A fix for a crash problem I had with Dischi's version of my skin.
***************
*** 447,451 ****
if object.height + object.y > self.area_val.height + self.area_val.y:
! object.height = self.area_val.height - object.y
return object
--- 451,455 ----
if object.height + object.y > self.area_val.height + self.area_val.y:
! object.height = self.area_val.height + self.area_val.y - object.y
return object
***************
*** 494,504 ****
area = settings.tv
else:
! if self.display_style and settings.menu.has_key('extended %s' %
display_type):
! area = settings.menu['extended %s' % display_type]
! elif settings.menu.has_key(display_type):
area = settings.menu[display_type]
else:
area = settings.menu['default']
try:
area = eval('area.%s' % self.area_name)
--- 498,522 ----
area = settings.tv
else:
! # get the correct <menu>
! if settings.menu.has_key(display_type):
area = settings.menu[display_type]
else:
area = settings.menu['default']
+ # get the correct style based on display_style
+ if len(area.style) > self.display_style:
+ area = area.style[self.display_style]
+ else:
+ area = area.style[0]
+
+ # get image or text view
+ # FIXME: select text if necessary
+ if area[0]:
+ area = area[0]
+ else:
+ area = area[1]
+
+ area = settings.menuset[area]
+
try:
area = eval('area.%s' % self.area_name)
Index: xml_skin.py
===================================================================
RCS file: /cvsroot/freevo/freevo/skins/dischi1/xml_skin.py,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** xml_skin.py 13 Mar 2003 21:01:15 -0000 1.24
--- xml_skin.py 14 Mar 2003 19:38:03 -0000 1.25
***************
*** 10,13 ****
--- 10,17 ----
# -----------------------------------------------------------------------
# $Log$
+ # Revision 1.25 2003/03/14 19:38:03 dischi
+ # Support the new <menu> and <menuset> structure. See the blue2 skins
+ # for example
+ #
# Revision 1.24 2003/03/13 21:01:15 dischi
# docs update
***************
*** 343,354 ****
def __init__(self):
XML_data.__init__(self, ('visible', 'layout', 'x', 'y', 'width', 'height'))
def parse(self, node, scale, current_dir):
XML_data.parse(self, node, scale, current_dir)
! for subnode in node.children:
! if subnode.name == u'area':
! XML_data.parse(self, subnode, scale, current_dir)
! self.x += config.OVERSCAN_X
! self.y += config.OVERSCAN_Y
def rect(self, type):
--- 347,361 ----
def __init__(self):
XML_data.__init__(self, ('visible', 'layout', 'x', 'y', 'width', 'height'))
+ self.x = -1
+ self.y = -1
def parse(self, node, scale, current_dir):
+ x = self.x
+ y = self.y
XML_data.parse(self, node, scale, current_dir)
! if x != self.x:
! self.x += config.OVERSCAN_X
! if y != self.y:
! self.y += config.OVERSCAN_Y
def rect(self, type):
***************
*** 367,371 ****
# ======================================================================
! class XML_menu:
"""
the complete menu with the areas screen, title, view, listing and info in it
--- 374,378 ----
# ======================================================================
! class XML_menuset:
"""
the complete menu with the areas screen, title, view, listing and info in it
***************
*** 387,390 ****
--- 394,413 ----
# ======================================================================
+ class XML_menu:
+ """
+ the menu style definitions
+ """
+ def __init__(self):
+ self.style = []
+ pass
+
+ def parse(self, node, scale, current_dir):
+ for subnode in node.children:
+ if subnode.name == 'style':
+ self.style += [ ( attr_str(subnode, 'image', ''),
+ attr_str(subnode, 'text', '') ) ]
+
+ # ======================================================================
+
class XML_image(XML_data):
"""
***************
*** 541,545 ****
def __init__(self):
self.menu = {}
! self.menu['default'] = XML_menu()
self.layout = {}
--- 564,568 ----
def __init__(self):
self.menu = {}
! self.menuset = {}
self.layout = {}
***************
*** 559,577 ****
if node.name == u'menu':
! type = attr_str(node, "type", "default")
if type == 'all':
# if type is all, all types except default are deleted and
# the settings will be loaded for default
- tmp = self.menu['default']
self.menu = {}
- self.menu['default'] = tmp
type = 'default'
! if not type in self.menu:
! self.menu[type] = copy.deepcopy(self.menu['default'])
!
self.menu[type].parse(node, scale, c_dir)
--- 582,605 ----
if node.name == u'menu':
! type = attr_str(node, 'type', 'default')
if type == 'all':
# if type is all, all types except default are deleted and
# the settings will be loaded for default
self.menu = {}
type = 'default'
! self.menu[type] = XML_menu()
self.menu[type].parse(node, scale, c_dir)
+
+ if node.name == u'menuset':
+ label = attr_str(node, 'label', '')
+ inherit = attr_str(node, 'inherits', '')
+ if inherit:
+ self.menuset[label] = copy.deepcopy(self.menuset[inherit])
+ elif not self.menuset.has_key(label):
+ self.menuset[label] = XML_menuset()
+ self.menuset[label].parse(node, scale, c_dir)
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog