def getPreferredSize(self): normalImageSize = getPresenter().getImageSize(self.filename) selectImageSize = getPresenter().getImageSize(self.selectFilename) mouseoImageSize = getPresenter().getImageSize(self.mouseOverFilename) # Return the largest of the three imageSize = self.maxSize(normalImageSize, selectImageSize) imageSize = self.maxSize(imageSize, mouseoImageSize) return imageSize
def update(self): """PyGame event handling. """ desktop = getDesktop() if pygame.mouse.get_focused() == False: # The mouse is no longer over the application getPresenter().setMousePosition(None) ## process all pending system events. event = pygame.event.poll() while event.type != NOEVENT: if event.type == pygame.QUIT: desktop.postUserEvent(pyui2.locals.QUIT) # special case to handle multiple mouse buttons! elif event.type == MOUSEBUTTONDOWN: if event.dict['button'] == 1: desktop.postUserEvent(pyui2.locals.LMOUSEBUTTONDOWN, event.pos[0], event.pos[1]) elif event.dict['button'] == 3: desktop.postUserEvent(pyui2.locals.RMOUSEBUTTONDOWN, event.pos[0], event.pos[1]) elif event.type == MOUSEBUTTONUP: if event.dict['button'] == 1: desktop.postUserEvent(pyui2.locals.LMOUSEBUTTONUP, event.pos[0], event.pos[1]) elif event.dict['button'] == 3: desktop.postUserEvent(pyui2.locals.RMOUSEBUTTONUP, event.pos[0], event.pos[1]) elif event.type == MOUSEMOTION: desktop.postUserEvent(pyui2.locals.MOUSEMOVE, event.pos[0], event.pos[1]) self.mousePosition = event.pos getPresenter().setMousePosition(event.pos) elif event.type == KEYDOWN: character = event.unicode code = 0 if len(character) > 0: code = ord(character) else: code = event.key desktop.postUserEvent(pyui2.locals.KEYDOWN, 0, 0, code, pygame.key.get_mods()) if code >= 32 and code < 128: desktop.postUserEvent(pyui2.locals.CHAR, 0, 0, character.encode(), pygame.key.get_mods()) elif event.type == KEYUP: code = event.key desktop.postUserEvent(pyui2.locals.KEYUP, 0, 0, code, pygame.key.get_mods()) else: try: desktop.postUserEvent(event.type) except: print "Error handling event %s" % repr(event) event = pygame.event.poll()
def run(self): self.init(800, 600) self.dc = getPresenter().getDeviceContext() self.gc = self.dc.createGraphicsContext((400, 400)) getPresenter().setBackgroundDrawing(self.callback) pyui2.run() pyui2.quit()
def centerInDesktop(self): """Reposition the frame so that it is centered in the desktop. """ sx, sy = getPresenter().getScreenSize() newPosX = (sx / 2) - (self.width / 2) newPosY = (sy / 2) - (self.height / 2) self.moveto(newPosX, newPosY)
def __init__(self, x, y, w, h, topmost = 0): self._panel = Panel() Base.__init__(self) self.topMost = topmost # the content panel is added as a child through Base::addChild to avoid recursively adding it to itself Base.addChild(self, self._panel) self._panel.setWindow(self) self._panel.setParent(self) self.placeInnerObjects() self.drawCommands = [] # these are drawing callbacks to draw _after_ all the widgets are drawn self.drawLastCallbacks = [] self.moveto(x, y) self.resize(w, h) getDesktop().addWindow(self) # Create the graphics context that will be used to display this window self.graphicsContext = getPresenter().getDeviceContext().createGraphicsContext((w, h))
def getPreferredSize(self): size = getPresenter().getImageSize(self.filename) return (int(size[0]), int(size[1]))