Changeset 671


Ignore:
Timestamp:
11/18/10 15:20:22 (9 years ago)
Author:
beliar
Message:

Ticket 271 : Patch by Beliar.

  • Added variable to GameSceneController? to store whether the window has the mouse focus or not
  • The map will now only scroll when the window has the mouse focus

fixes[s:trac, t:271]

Location:
trunk/game/scripts
Files:
2 edited

Legend:

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

    r653 r671  
    1919from scripts.common.listeners.key_listener import KeyListener 
    2020from scripts.common.listeners.mouse_listener import MouseListener 
     21from scripts.common.listeners.command_listener import CommandListener 
    2122 
    22 class ControllerBase(KeyListener, MouseListener): 
     23class ControllerBase(KeyListener, MouseListener, CommandListener): 
    2324    """Base of Controllers""" 
    2425    def __init__(self,  
     
    4142        ''' 
    4243        KeyListener.__init__(self, application.event_listener)         
    43         MouseListener.__init__(self, application.event_listener)         
     44        MouseListener.__init__(self, application.event_listener) 
     45        CommandListener.__init__(self, application.event_listener) 
    4446        self.engine = engine 
    4547        self.event_manager = engine.getEventManager() 
     
    8890    def onStop(self): 
    8991        """Called when the controller is removed from the list""" 
    90         pass 
    91          
     92        pass  
     93                 
    9294    def pump(self): 
    9395        """This method gets called every frame""" 
  • trunk/game/scripts/gamescenecontroller.py

    r648 r671  
    6262        @type settings: fife.extensions.fife_settings.Setting 
    6363        ''' 
    64         super(GameSceneController, self).__init__(engine, 
    65                                                   view, 
    66                                                   model, 
    67                                                   application) 
    68          
     64        ControllerBase.__init__(self, 
     65                                engine, 
     66                                view, 
     67                                model, 
     68                                application) 
    6969        #this can be helpful for IDEs code analysis 
    7070        if False: 
     
    7676         
    7777        # Last saved mouse coords         
     78        self.action_number = 1 
     79 
     80        self.has_mouse_focus = True 
    7881        self.last_mousecoords = None 
    79         self.action_number = 1 
    80  
    8182        self.mouse_callback = None 
    82         self.original_cursor_id = self.engine.getCursor().getId() 
    83          
     83        self.original_cursor_id = self.engine.getCursor().getId()         
    8484        self.scroll_direction = [0, 0] 
    8585        self.scroll_timer = extensions.fife_timer.Timer(100, 
     
    8787                                                   (self.scroll_direction))     
    8888         
    89         #this is temporary untill we can set the native cursor 
     89        #this is temporary until we can set the native cursor 
    9090        self.resetMouseCursor() 
    9191        self.paused = False 
     
    207207            self.view.hud.showContextMenu(data, (scr_point.x, scr_point.y)) 
    208208     
     209         
    209210    def updateMouse(self): 
    210211        """Updates the mouse values""" 
     
    233234        #edge logic 
    234235        self.scroll_direction = [0, 0] 
    235         direction = self.scroll_direction 
    236         #up 
    237         if mouse_y <= pixle_edge:  
    238             direction[0] += 1 
    239             direction[1] -= 1 
    240             image = settings.get("PARPG", "CursorUp") 
     236        if self.has_mouse_focus: 
     237            direction = self.scroll_direction 
     238            #up 
     239            if mouse_y <= pixle_edge:  
     240                direction[0] += 1 
     241                direction[1] -= 1 
     242                image = settings.get("PARPG", "CursorUp") 
     243                 
     244            #right 
     245            if mouse_x >= screen_width - pixle_edge: 
     246                direction[0] += 1 
     247                direction[1] += 1 
     248                image = settings.get("PARPG", "CursorRight") 
     249                 
     250            #down 
     251            if mouse_y >= screen_height - pixle_edge: 
     252                direction[0] -= 1 
     253                direction[1] += 1 
     254                image = settings.get("PARPG", "CursorDown") 
     255                 
     256            #left 
     257            if mouse_x <= pixle_edge: 
     258                direction[0] -= 1 
     259                direction[1] -= 1 
     260                image = settings.get("PARPG", "CursorLeft") 
    241261             
    242         #right 
    243         if mouse_x >= screen_width - pixle_edge: 
    244             direction[0] += 1 
    245             direction[1] += 1 
    246             image = settings.get("PARPG", "CursorRight") 
    247              
    248         #down 
    249         if mouse_y >= screen_height - pixle_edge: 
    250             direction[0] -= 1 
    251             direction[1] += 1 
    252             image = settings.get("PARPG", "CursorDown") 
    253              
    254         #left 
    255         if mouse_x <= pixle_edge: 
    256             direction[0] -= 1 
    257             direction[1] -= 1 
    258             image = settings.get("PARPG", "CursorLeft") 
    259          
    260         if image != None and not data_drag.dragging: 
    261             self.setMouseCursor(image, image) 
     262            if image != None and not data_drag.dragging: 
     263                self.setMouseCursor(image, image) 
    262264        
    263265 
     
    403405            self.scroll_timer.stop() 
    404406            self.resetMouseCursor() 
    405          
     407     
     408    def onCommand(self, command): 
     409        if(command.getCommandType() == fife.CMD_MOUSE_FOCUS_GAINED): 
     410            self.has_mouse_focus = True 
     411        elif(command.getCommandType() == fife.CMD_MOUSE_FOCUS_LOST): 
     412            self.has_mouse_focus = False 
     413       
    406414    def pump(self): 
    407415        """Routine called during each frame. Our main loop is in ./run.py""" 
Note: See TracChangeset for help on using the changeset viewer.