root/src/ui.py @ 20

Revision 20, 2.0 KB (checked in by ecoughlan, 2 years ago)

Can now toggle between build and research menus

Line 
1'''
2Created on Feb 4, 2012
3
4@author: TechTrek
5'''
6import pygame, sys, math
7
8from pygame.locals import *
9from window import *
10from constants import *
11from windowEntry import *
12
13class UI:
14    """ Interprets user input based on windows""" 
15    def __init__(self):
16        self.lastClick = (0,0)
17        self.windows = []
18       
19    def addWindow(self, window):
20        """ add window """
21        self.windows.append(window)
22       
23    def onMouse(self, event):
24        """ handle mouse click event"""     
25        if event.dict.has_key('button'):
26            if event.dict['button'] == LEFT_MOUSE:
27                print "(" , event.pos[0], "," , event.pos[1] , ")" #debugging
28                self.lastClick = event.pos                 
29           
30    def eventCheck(self):
31        """ event handler """
32        for event in pygame.event.get():
33            if event.type == QUIT:
34                pygame.quit()
35                sys.exit()
36           
37            if event.type == MOUSEBUTTONDOWN:
38                self.onMouse(event)
39                for i in reversed(range(len(self.windows))):
40                    # get response from each window, starting with most recent
41                    responseSignal = self.windows[i].response(self.lastClick)
42                    if responseSignal == IGNORE:
43                        continue
44                    elif responseSignal == CLOSE:
45                        self.windows.pop(i)
46                        continue
47                    return responseSignal
48                   
49               
50    def render(self, surface):
51        """ update screen based on windows """
52        for i in range(len(self.windows)):
53            windowSurface = pygame.Surface((1080,792))
54            windowSurface.set_colorkey(BLACK)
55            self.windows[i].render(windowSurface)
56            surface.blit(windowSurface,(self.windows[i].left,self.windows[i].top))
57        pygame.display.update()
58                       
59                       
60               
61       
62       
63       
64       
65   
Note: See TracBrowser for help on using the browser.