From: <Blu...@us...> - 2010-07-28 23:02:18
|
Revision: 345 http://virtplayground.svn.sourceforge.net/virtplayground/?rev=345&view=rev Author: BlueWolf_ Date: 2010-07-28 23:02:12 +0000 (Wed, 28 Jul 2010) Log Message: ----------- Topbar looks now good. You can now click on them (nothing happens, only the image will change) and merged the 3 states into a single image Modified Paths: -------------- trunk/client/images/topbar1.png trunk/client/images/topbar2.png trunk/client/images/topbar3.png trunk/client/layout.py Modified: trunk/client/images/topbar1.png =================================================================== (Binary files differ) Modified: trunk/client/images/topbar2.png =================================================================== (Binary files differ) Modified: trunk/client/images/topbar3.png =================================================================== (Binary files differ) Modified: trunk/client/layout.py =================================================================== --- trunk/client/layout.py 2010-07-28 22:53:36 UTC (rev 344) +++ trunk/client/layout.py 2010-07-28 23:02:12 UTC (rev 345) @@ -28,12 +28,8 @@ def event(self, ev): if self.status == "playground": if ev.type == MOUSEMOTION: - if ev.pos[0] > 44 and ev.pos[0] < 926 and \ - ev.pos[1] < 55: - - index = (ev.pos[0]-TOPLEFT)/ \ - TOPBUTTONWIDTH - + index = self.topbarcursor(ev.pos) + if index is not False: if self.hover == index: return True self.hover = index self.updatetop() @@ -43,7 +39,26 @@ if self.hover == None: return self.hover = None self.updatetop() + + elif ev.type == ACTIVEEVENT: + if ev.state == 1: # Mouse events + if ev.gain == 0: # Lost mouse focus + if self.hover == None: return + self.hover = None + self.updatetop() + + elif ev.type == MOUSEBUTTONDOWN: + index = self.topbarcursor(ev.pos) + if index is False: return + + if self.selected == index: + self.selected = None + else: + self.selected = index + self.updatetop() + return True + @@ -54,15 +69,11 @@ self.topbar = None elif status == "playground": - self.topbar = [ - load_image(True, "images", "topbar1.png"), - load_image(True, "images", "topbar2.png"), - load_image(True, "images", "topbar3.png") - ] + self.topbar = load_image(True, "images", "topbar.png") self.selected = None - self.hover = None # [TODO] This can be better - self.surf.blit(self.topbar[0], (0,0)) + self.hover = self.topbarcursor(pygame.mouse.get_pos()) + self.surf.blit(self.topbar, (0,0), (0,0,1000,TOPHEIGHT)) self.updatetop() self.status = status @@ -71,17 +82,27 @@ def updatetop(self): for i in range(TOPBUTTONS): left = TOPLEFT + (TOPBUTTONWIDTH*i) - rect = (left, 0, TOPBUTTONWIDTH, TOPHEIGHT) + rect = Rect(left, 0, TOPBUTTONWIDTH, TOPHEIGHT) self.surf.fill([0,0,0,0], rect) - if self.selected == i: # This button is selected - self.surf.blit(self.topbar[2], rect, rect) + if self.selected is i: # This button is selected + rect2 = rect.move(0,TOPHEIGHT*2) - elif self.hover == i: # This button is hovered - self.surf.blit(self.topbar[1], rect, rect) + elif self.hover is i: # This button is hovered + rect2 = rect.move(0,TOPHEIGHT) else: - self.surf.blit(self.topbar[0], rect, rect) + rect2 = rect.move(0,0) + + self.surf.blit(self.topbar, rect, rect2) self.sh['update']() + + + def topbarcursor(self, pos): + if pos[0] > TOPLEFT and pos[0] < (TOPBUTTONWIDTH*TOPBUTTONS+TOPLEFT) \ + and pos[1] < 55: + return (pos[0]-TOPLEFT) / TOPBUTTONWIDTH + else: + return False This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |