Index: mediamenu.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/mediamenu.py,v
retrieving revision 1.39
diff -c -r1.39 mediamenu.py
*** mediamenu.py	2 Mar 2003 19:01:16 -0000	1.39
--- mediamenu.py	13 Mar 2003 19:03:22 -0000
***************
*** 418,424 ****
          return items
      
  
!     def cwd(self, arg=None, menuw=None):
          """
          make a menu item for each file in the directory
          """
--- 418,424 ----
          return items
      
  
!     def cwd(self, arg=None, menuw=None, unlocked=None):
          """
          make a menu item for each file in the directory
          """
***************
*** 430,435 ****
--- 430,445 ----
                  self.media = media
  
          try:
+             if not unlocked and os.path.exists(os.path.join(self.dir, '.password')):
+                 items = [ PWItem( self.parent, self, self.dir ) ]
+                 item_menu = menu_module.Menu('Enter Password', items,
+                                              reload_func=self.reload,
+                                              item_types = self.display_type)
+                 if menuw:
+                     menuw.pushmenu(item_menu)
+                     self.menu = item_menu
+                     return items
+                 
              files = ([ os.path.join(self.dir, fname)
                         for fname in os.listdir(self.dir) ])
              self.all_files = copy.copy(files)
***************
*** 733,735 ****
--- 743,810 ----
              time.sleep(2)
  
      
+ class PWItem(Item):
+     def __init__( self, parent, prot, dir ):
+         Item.__init__(self, parent)
+         self.prot = prot
+         self.entry = ''
+         self.name = '[]'
+         self.goal = ''
+         print 'looking in:' + dir + '/.password'
+         lines = open(dir + '/.password').readlines()
+         for line in lines:
+             self.goal = line.strip()
+         if len(self.goal) > 10:
+             self.goal = self.goal[0:10]
+ 
+     def actions(self):
+         return []
+ 
+     def eventhandler(self, event, menuw=None):
+         evt = None
+         if event == rc.K1:
+             evt = 1
+             self.entry += '1';
+         elif event == rc.K2:
+             evt = 1
+             self.entry += '2';
+         elif event == rc.K3:
+             evt = 1
+             self.entry += '3';
+         elif event == rc.K4:
+             evt = 1
+             self.entry += '4';
+         elif event == rc.K5:
+             evt = 1
+             self.entry += '5';
+         elif event == rc.K6:
+             evt = 1
+             self.entry += '6';
+         elif event == rc.K7:
+             evt = 1
+             self.entry += '7';
+         elif event == rc.K8:
+             evt = 1
+             self.entry += '8';
+         elif event == rc.K9:
+             evt = 1
+             self.entry += '9';
+         elif event == rc.K0:
+             evt = 1
+             self.entry += '0';
+         else:
+             return self.parent.eventhandler(event, menuw)
+ 
+         if evt:
+             if config.DEBUG:
+                 print 'entered text now [' + self.entry + ']'
+             self.name = '[************'[0:1+len(self.entry)]+']'
+             if self.entry == self.goal:
+                 menuw = menu_module.get_singleton()
+                 menuw.delete_menu()
+                 self.prot.cwd('?',menuw,'1')
+             rc.post_event(rc.REBUILD_SCREEN)
+             return TRUE
+         
+         print 'no eventhandler for event %s menuw %s' % (event, menuw)
+         return FALSE
