Changeset 277 for trunk


Ignore:
Timestamp:
09/08/09 00:39:15 (10 years ago)
Author:
orlandov
Message:

Ticket #79: Move the container display and examine popup code from World to Hud

Location:
trunk/game/scripts
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/scripts/hud.py

    r270 r277  
    2121from scripts.context_menu import ContextMenu 
    2222from scripts import inventory 
     23from scripts.popups import ExaminePopup, ContainerGUI 
    2324 
    2425class Hud(object): 
     
    5556        self.loadGameCallback = callbacks['loadGame'] 
    5657        self.quitCallback     = callbacks['quitGame'] 
     58 
     59        self.box_container = None 
     60        self.examine_box = None 
    5761 
    5862        self.actionsBox = self.hud.findChild(name="actionsBox") 
     
    491495        self.addAction(text) 
    492496         
     497    def createBoxGUI(self, title): 
     498        """Creates a window to display the contents of a box 
     499           @type title: string 
     500           @param title: The title for the window 
     501           @return: None""" 
     502        if self.box_container: 
     503            # if it has already been created, just show it 
     504            self.box_container.showContainer() 
     505        else: 
     506            # otherwise create it then show it 
     507            data = ["dagger01", "empty", "empty", "empty", "empty", 
     508                    "empty", "empty", "empty", "empty"] 
     509            self.box_container = ContainerGUI(self.engine, unicode(title), data) 
     510            def close_and_delete(): 
     511                self.hideContainer() 
     512            events = {'takeAllButton':close_and_delete, 
     513                      'closeButton':close_and_delete} 
     514            self.box_container.container_gui.mapEvents(events) 
     515            self.box_container.showContainer() 
     516 
     517    def hideContainer(self): 
     518        """Hide the container box 
     519           @return: None""" 
     520        if self.box_container: 
     521            self.box_container.hideContainer() 
     522 
     523    def createExamineBox(self, title, desc): 
     524        """Create an examine box. It displays some textual description of an 
     525           object 
     526           @type title: string 
     527           @param title: The title of the examine box 
     528           @type desc: string 
     529           @param desc: The main body of the examine box 
     530           @return: None""" 
     531 
     532        if self.examine_box: 
     533            self.examine_box.closePopUp() 
     534        self.examine_box = ExaminePopup(self.engine, title, desc) 
     535        self.examine_box.showPopUp() 
  • trunk/game/scripts/objects/action.py

    r262 r277  
    5353    def execute(self): 
    5454        """Open the box.""" 
    55         self.engine.view.createBoxGUI(self.boxTitle) 
     55        self.engine.view.hud.createBoxGUI(self.boxTitle) 
    5656         
    5757class ExamineBoxAction(Action): 
     
    7171    def execute(self): 
    7272        """Examine the box.""" 
    73         self.engine.view.createExamineBox(self.examineName, self.examineDesc) 
     73        self.engine.view.hud.createExamineBox(self.examineName, self.examineDesc) 
  • trunk/game/scripts/popups.py

    r267 r277  
    114114        @return: None 
    115115        """ 
    116         self.container_gui.hide() 
     116        if self.container_gui.isVisible(): 
     117            self.container_gui.hide() 
    117118         
    118119    def setMouseCursor(self, image, dummy_image, type = "native"):  
     
    277278 
    278279    def closePopUp(self): 
    279         self.examineWindow.hide() 
     280        if self.examineWindow.isVisible(): 
     281            self.examineWindow.hide() 
    280282     
    281283    def showPopUp(self): 
  • trunk/game/scripts/world.py

    r270 r277  
    7474        self.action_number = 1 
    7575 
    76         self.boxOpen = False 
    77         self.boxCreated = False 
    78          
    7976        # init the sound 
    8077        self.sounds = SoundEngine(engine) 
     
    202199 
    203200    def onWalk(self, click): 
    204         """Callback sample for the context menu. 
    205         """ 
     201        """Callback sample for the context menu.""" 
    206202        self.hud.hideContainer() 
    207203        self.data.gameState.PC.run(click) 
     
    241237        return location 
    242238 
    243     def createBoxGUI(self, title): 
    244         """ 
    245         Creates a window to display the contents of a box 
    246  
    247         @type title: string 
    248         @param title: The title for the window 
    249         @return: None 
    250         """ 
    251         if ((self.boxCreated == True) and (self.boxOpen == False)): 
    252             # if it has already been created, just show it 
    253             self.box_container.showContainer() 
    254             self.boxOpen = True 
    255         else: 
    256             # otherwise create it then show it 
    257             data = ["dagger01", "empty", "empty", "empty", "empty", 
    258                     "empty", "empty", "empty", "empty"] 
    259             self.box_container = ContainerGUI(self.engine, unicode(title), data) 
    260             def close_and_delete(): 
    261                 self.box_container.hideContainer() 
    262                 self.boxOpen = False 
    263             events = {'takeAllButton':close_and_delete, 
    264                       'closeButton':close_and_delete} 
    265             self.box_container.container_gui.mapEvents(events) 
    266             self.box_container.showContainer() 
    267             self.boxOpen = True 
    268             self.boxCreated = True 
    269  
    270     def createExamineBox(self, title, desc): 
    271         self.examineBox = ExaminePopup(self.engine, title, desc) 
    272         self.examineBox.showPopUp() 
    273  
    274239    def pump(self): 
    275240        """Routine called during each frame. Our main loop is in ./run.py 
Note: See TracChangeset for help on using the changeset viewer.