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

Reply via email to