Show
Ignore:
Timestamp:
01/07/07 21:53:18 (5 years ago)
Author:
mg
Message:

Split off video and sound options into submenus.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/pyspacewar/ui.py

    r255 r256  
    14361436            return label + '\t' + (on and 'on' or 'off') 
    14371437        self.menu_items = [ 
     1438            ('Video', self.ui.video_options_menu), 
     1439            ('Sound', self.ui.sound_options_menu), 
     1440            ('Controls', self.ui.controls_menu), 
     1441            ('Return to main menu', self.close_menu), 
     1442        ] 
     1443 
     1444 
     1445class VideoOptionsMenuMode(MenuMode): 
     1446    """Mode: video options menu.""" 
     1447 
     1448    def init_menu(self): 
     1449        """Initialize the mode.""" 
     1450        def title(label, on): 
     1451            return label + '\t' + (on and 'on' or 'off') 
     1452        self.menu_items = [ 
    14381453            ('Screen size\t%dx%d' % self.ui.fullscreen_mode, 
    14391454             self.ui.screen_resolution_menu), 
     
    14421457            (title('Missile orbits', self.ui.show_missile_trails), 
    14431458             self.toggle_missile_orbits), 
    1444             (title('Music', self.ui.music), 
    1445              self.toggle_music), 
    1446             (title('Sound', self.ui.sound), 
    1447              self.toggle_sound), 
    1448             (title('Sound in vacuum', self.ui.sound_in_vacuum), 
    1449              self.toggle_sound_in_vacuum), 
    1450             ('Controls', self.ui.controls_menu), 
    1451             ('Return to main menu', self.close_menu), 
     1459            ('Return to options menu', self.close_menu), 
    14521460        ] 
    14531461 
     
    14591467        self.reinit_menu() 
    14601468 
    1461     def init(self): 
    1462         """Initialize the mode.""" 
    1463         MenuMode.init(self) 
    1464         # Override a couple of key bindings to do extra stuff 
    1465         self.on_key(K_o, self.toggle_missile_orbits) 
    1466         self.on_key(K_f, self.toggle_fullscreen) 
    1467  
    14681469    def toggle_fullscreen(self): 
    14691470        """Toggle full-screen mode and reflect the setting in the menu.""" 
     
    14741475        """Toggle missile orbits and reflect the setting in the menu.""" 
    14751476        self.ui.toggle_missile_orbits() 
    1476         self.reinit_menu() 
    1477  
    1478     def toggle_music(self): 
    1479         """Toggle music and reflect the setting in the menu.""" 
    1480         self.ui.toggle_music() 
    1481         self.reinit_menu() 
    1482  
    1483     def toggle_sound(self): 
    1484         """Toggle sound effects and reflect the setting in the menu.""" 
    1485         self.ui.toggle_sound() 
    1486         self.reinit_menu() 
    1487  
    1488     def toggle_sound_in_vacuum(self): 
    1489         """Toggle sound in vacuum and reflect the setting in the menu.""" 
    1490         self.ui.toggle_sound_in_vacuum() 
    14911477        self.reinit_menu() 
    14921478 
     
    15081494        """Switch to a specified video mode.""" 
    15091495        self.ui.switch_to_mode(mode) 
     1496        self.reinit_menu() 
     1497 
     1498 
     1499class SoundOptionsMenuMode(MenuMode): 
     1500    """Mode: sound options menu.""" 
     1501 
     1502    def init_menu(self): 
     1503        """Initialize the mode.""" 
     1504        def title(label, on): 
     1505            return label + '\t' + (on and 'on' or 'off') 
     1506        self.menu_items = [ 
     1507            (title('Music', self.ui.music), 
     1508             self.toggle_music), 
     1509            (title('Sound', self.ui.sound), 
     1510             self.toggle_sound), 
     1511            (title('Sound in vacuum', self.ui.sound_in_vacuum), 
     1512             self.toggle_sound_in_vacuum), 
     1513            ('Return to options menu', self.close_menu), 
     1514        ] 
     1515 
     1516    def toggle_music(self): 
     1517        """Toggle music and reflect the setting in the menu.""" 
     1518        self.ui.toggle_music() 
     1519        self.reinit_menu() 
     1520 
     1521    def toggle_sound(self): 
     1522        """Toggle sound effects and reflect the setting in the menu.""" 
     1523        self.ui.toggle_sound() 
     1524        self.reinit_menu() 
     1525 
     1526    def toggle_sound_in_vacuum(self): 
     1527        """Toggle sound in vacuum and reflect the setting in the menu.""" 
     1528        self.ui.toggle_sound_in_vacuum() 
    15101529        self.reinit_menu() 
    15111530 
     
    22392258        self.ui_mode = OptionsMenuMode(self) 
    22402259 
     2260    def video_options_menu(self): 
     2261        """Enter the video options menu.""" 
     2262        self.ui_mode = VideoOptionsMenuMode(self) 
     2263 
     2264    def sound_options_menu(self): 
     2265        """Enter the sound options menu.""" 
     2266        self.ui_mode = SoundOptionsMenuMode(self) 
     2267 
    22412268    def screen_resolution_menu(self): 
    22422269        """Enter the screen resolution menu."""