Update of /cvsroot/freevo/freevo/skins/dischi1
In directory sc8-pr-cvs1:/tmp/cvs-serv2949

Modified Files:
        area.py skin_dischi1.py xml_skin.py 
Log Message:
integration of the tv guide

Index: area.py
===================================================================
RCS file: /cvsroot/freevo/freevo/skins/dischi1/area.py,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** area.py     7 Mar 2003 17:27:46 -0000       1.17
--- area.py     8 Mar 2003 17:36:47 -0000       1.18
***************
*** 28,31 ****
--- 28,34 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.18  2003/03/08 17:36:47  dischi
+ # integration of the tv guide
+ #
  # Revision 1.17  2003/03/07 17:27:46  dischi
  # added support for extended menus
***************
*** 270,274 ****
  
  
!     def draw(self, settings, obj, display_style=0, widget_type='menu'):
          """
          this is the main draw function. This function draws the background,
--- 273,277 ----
  
  
!     def draw(self, settings, obj, display_style=0, widget_type='menu', 
force_redraw=FALSE):
          """
          this is the main draw function. This function draws the background,
***************
*** 282,285 ****
--- 285,293 ----
              self.item  = self.menu.selected
              item_type  = self.menu.item_types
+         elif widget_type == 'tv':
+             self.menuw = obj
+             self.menu  = obj
+             item_type = None
+             self.item = None
          else:
              item_type = None
***************
*** 289,293 ****
          self.content_objects = []
          
!         self.redraw = FALSE
          self.mode = 0                   # start draw
          
--- 297,301 ----
          self.content_objects = []
          
!         self.redraw = force_redraw
          self.mode = 0                   # start draw
          
***************
*** 456,459 ****
--- 464,469 ----
          if widget_type == 'player':
              area = settings.player
+         elif widget_type == 'tv':
+             area = settings.tv
          else:
              if self.display_style and settings.menu.has_key('extended %s' % 
display_type):

Index: skin_dischi1.py
===================================================================
RCS file: /cvsroot/freevo/freevo/skins/dischi1/skin_dischi1.py,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** skin_dischi1.py     7 Mar 2003 17:27:48 -0000       1.33
--- skin_dischi1.py     8 Mar 2003 17:36:47 -0000       1.34
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.34  2003/03/08 17:36:47  dischi
+ # integration of the tv guide
+ #
  # Revision 1.33  2003/03/07 17:27:48  dischi
  # added support for extended menus
***************
*** 154,157 ****
--- 157,161 ----
  
  from listing_area import Listing_Area
+ from tvlisting_area import TVListing_Area
  from view_area import View_Area
  from info_area import Info_Area
***************
*** 243,246 ****
--- 247,251 ----
          self.display_style = 0
          self.force_redraw = TRUE
+         self.last_draw = None
          self.screen = Screen()
          self.area_names = ( 'screen', 'title', 'listing', 'view', 'info')
***************
*** 249,253 ****
                                                (a[0].upper(), a[1:])))
  
! 
          if DEBUG: print 'Skin: Loading XML file %s' % config.SKIN_XML_FILE
      
--- 254,259 ----
                                                (a[0].upper(), a[1:])))
  
!         self.tvlisting = TVListing_Area(self, self.screen)
!         
          if DEBUG: print 'Skin: Loading XML file %s' % config.SKIN_XML_FILE
      
***************
*** 378,402 ****
  
          
-     def ItemsPerMenuPage(self, menu):
- 
-         if not menu:
-             osd.drawstring('INTERNAL ERROR, NO MENU!', 100, osd.height/2)
-             return (0,0)
- 
-         if menu.skin_settings:
-             settings = menu.skin_settings
-         else:
-             settings = self.settings
- 
-         # hack for the main menu to fit all in one screen
-         if not menu.packrows:
-             menu.item_types = 'main'
- 
-         rows, cols = self.listing_area.get_items_geometry(settings, menu,
-                                                           self.display_style)[:2]
-         return (cols, rows)
-         
- 
- 
      def SubMenuVisible(self, menu):
          """
--- 384,387 ----
***************
*** 413,506 ****
          
  
!     def Clear(self):
          """
!         clean the screen
          """
!         self.force_redraw = TRUE
!         osd.clearscreen(osd.COL_BLACK)
!         osd.update()
  
  
!     def DrawMenu(self, menuw):
          """
!         Called from the MenuWidget class to draw a menu page on the
!         screen
          """
!         if not menuw.visible:
!             return
  
-         draw_allowed = TRUE
-         for child in menuw.children:
-             draw_allowed = draw_allowed and not child.visible
  
!         if not draw_allowed:
!             self.force_redraw = TRUE
!             return
!             
!         menu = menuw.menustack[-1]
  
!         if not menu:
              osd.drawstring('INTERNAL ERROR, NO MENU!', 100, osd.height/2)
              return
  
!         if menu.skin_settings:
!             settings = menu.skin_settings
          else:
              settings = self.settings
  
!         # FIXME
!         if len(menuw.menustack) == 1:
!             menu.item_types = 'main'
!             
!         self.screen.clear()
  
-         for a in self.area_names:
-             area = eval('self.%s_area' % a)
-             area.draw(settings, menuw, self.display_style)
  
-         self.screen.show(self.force_redraw)
  
          osd.update()
-         self.force_redraw = FALSE
-         
  
-     def DrawMP3(self, info):
-         self.screen.clear()
  
!         for a in self.area_names:
!             area = eval('self.%s_area' % a)
!             area.draw(self.settings, info, self.display_style, 'player')
  
!         self.screen.show(self.force_redraw)
  
!         osd.update()
  
  
!     # TV Guide:
  
!     def DrawTVGuide(self):
!         pass
!     
!     def DrawTVGuide_Clear(self):
!         pass
  
!     def DrawTVGuide_getExpand(self):
!         pass
  
-     def DrawTVGuide_setExpand(self, expand):
-         pass
  
!     def DrawTVGuide_View(self, to_view):
!         pass
  
!     def DrawTVGuide_Info(self, to_info):
!         pass
!                          
!     def DrawTVGuide_ItemsPerPage(self):
!         return (2,3)
  
!     def DrawTVGuide_Listing(self, to_listing):
!         pass
  
      def format_track (self, array):
          """ Return a formatted string for use in music.py """
--- 398,525 ----
          
  
!     def DrawMenu(self, menuw):
          """
!         deprecated, dummy for now
          """
!         self.draw(('menu', menuw))
  
+     def DrawMP3(self, info):
+         """
+         deprecated, dummy for now
+         """
+         self.draw(('player', info))
  
!     def DrawTVGuide(self, menuw):
          """
!         deprecated, dummy for now
          """
!         self.draw(('tv', menuw))
!     
!     def DrawTVGuide_ItemsPerPage(self, tv):
!         """
!         deprecated, dummy for now
!         """
!         return self.items_per_page(('tv', tv))
  
  
!     def ItemsPerMenuPage(self, menu):
!         """
!         deprecated, dummy for now
!         """
!         return self.items_per_page(('menu', menu))
  
! 
!     def items_per_page(self, (type, object)):
!         if not object:
              osd.drawstring('INTERNAL ERROR, NO MENU!', 100, osd.height/2)
              return
+         
+         if type == 'tv':
+             return self.tvlisting.get_items_geometry(self.settings, object)[4]
  
!         if object.skin_settings:
!             settings = object.skin_settings
          else:
              settings = self.settings
  
!         # hack for the main menu to fit all in one screen
!         if not object.packrows:
!             object.item_types = 'main'
! 
!         rows, cols = self.listing_area.get_items_geometry(settings, object,
!                                                           self.display_style)[:2]
!         return (cols, rows)
  
  
  
+     def Clear(self):
+         """
+         clean the screen
+         """
+         self.force_redraw = TRUE
+         osd.clearscreen(osd.COL_BLACK)
          osd.update()
  
  
!     def draw(self, (type, object)):
!         if type == 'menu':
!             menuw = object
!             
!             if not menuw.visible:
!                 return
  
!             draw_allowed = TRUE
!             for child in menuw.children:
!                 draw_allowed = draw_allowed and not child.visible
  
!             if not draw_allowed:
!                 self.force_redraw = TRUE
!                 return
  
+             menu = menuw.menustack[-1]
  
!             if not menu:
!                 osd.drawstring('INTERNAL ERROR, NO MENU!', 100, osd.height/2)
!                 return
  
!             if menu.skin_settings:
!                 settings = menu.skin_settings
!             else:
!                 settings = self.settings
  
!             # FIXME
!             if len(menuw.menustack) == 1:
!                 menu.item_types = 'main'
  
  
!         else:
!             settings = self.settings
  
!         if type == 'tv':
!             l = self.listing_area
!             self.listing_area = self.tvlisting
  
!         if self.last_draw != type:
!             self.force_redraw = TRUE
!             self.last_draw = type
! 
!         self.screen.clear()
! 
!         for a in self.area_names:
!             area = eval('self.%s_area' % a)
!             area.draw(settings, object, self.display_style, self.last_draw,
!                       self.force_redraw)
  
+         self.screen.show(self.force_redraw)
+ 
+         if type == 'tv':
+             self.listing_area = l
+ 
+         osd.update()
+         self.force_redraw = FALSE
+ 
+ 
+ 
+             
      def format_track (self, array):
          """ Return a formatted string for use in music.py """

Index: xml_skin.py
===================================================================
RCS file: /cvsroot/freevo/freevo/skins/dischi1/xml_skin.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** xml_skin.py 7 Mar 2003 22:54:12 -0000       1.22
--- xml_skin.py 8 Mar 2003 17:36:47 -0000       1.23
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.23  2003/03/08 17:36:47  dischi
+ # integration of the tv guide
+ #
  # Revision 1.22  2003/03/07 22:54:12  dischi
  # First version of the extended menu with image support. Try the music menu
***************
*** 495,498 ****
--- 498,518 ----
  # ======================================================================
  
+ 
+ class XML_tv:
+     def __init__(self):
+         self.content = ( 'screen', 'title', 'view', 'info', 'listing' )
+         for c in self.content:
+             setattr(self, c, XML_area())
+ 
+ 
+     def parse(self, node, scale, current_dir):
+         for subnode in node.children:
+             for c in self.content:
+                 if subnode.name == c:
+                     eval('self.%s.parse(subnode, scale, current_dir)' % c)
+ 
+ 
+ # ======================================================================
+ 
  #
  # Main XML skin class
***************
*** 510,513 ****
--- 530,534 ----
          self.popup = ''
          self.player = XML_player()
+         self.tv = XML_tv()
          
          
***************
*** 561,564 ****
--- 582,588 ----
              if node.name == u'player':
                  self.player.parse(node, scale, c_dir)
+ 
+             if node.name == u'tv':
+                 self.tv.parse(node, scale, c_dir)
  
  




-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to