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