Ejemplo n.º 1
0
 def updateFocus(self):
     Updatable.updateFocus(self)
     if self.canFocus and not Updatable._focusIsChecked:
         if self.canUpdate and self.howFocus():
             Widget.widgetFocus = self
             Updatable._focusIsChecked = True
             return
Ejemplo n.º 2
0
    def update(self, render=None):
        if self.canUpdate:
            if self._event and self.isMoving:
                self.move(render.convertScreenCoordToTargetPoint(\
                        self._event.mousePos - self._mousePosMoving))
                self._mousePosMoving = self._event.mousePos

            self.clear(self.backgroundColor)
            Updatable.updateFocus(self)
            Updatable.update(self)
            self.display()
            if render:
                render.draw(self._frameSprite)
Ejemplo n.º 3
0
    def update(self, render=None):
        if not render:
            render = Updatable.getRender(self)

        if render and render is not self:
            if self._changeWindow:
                self.relativeSizeOnView = self.relativeSizeOnView
                self.relativeSizeOnView = self.relativeSizeOnView
                if self._isStaticToView:
                    self.setPosStatic(self._posStatic, False)

            if self.isDrawing and render.isInView(self.getRect(True)):
                if type(self.clipRect) is sf.Rectangle:
                    if self.clipChild:
                        render.clipping(self.draw, self.clipRect, self.getPos(False), super().update)
                    else:
                        render.clipping(self.draw, self.clipRect, self.getPos(False))
                        super().update(render)
                else:
                    self.draw(render)
                    super().update(render)
            else:
                super().update(render)
            
        else:
            super().update(render)
Ejemplo n.º 4
0
 def setAbsolutePosOnView(self, pos, withOrigin=True):
     render = Updatable.getRender(self)
     origin = sf.Vector2(0, 0)
     render = self.getRender()
     if render:
         self.setPos(pos + render.getViewPosition(), withOrigin)
     else:
         self.setPos(pos, withOrigin)
Ejemplo n.º 5
0
    def getSizeOnScreen(self, withClipping=False):
        scale = sf.Vector2(1,1)
        render = Updatable.getRender(self)

        if render is not self:
            if render.view.size.x != 0 and render.view.size.y != 0:
                scale = render.sizeOnScreen / render.view.size * render.viewport.size

        return self.getSize(withClipping) * scale
Ejemplo n.º 6
0
    def __init__(self, parent=0, rect=sf.Rectangle()):
        Updatable.__init__(self,parent)
        self._isDrawing = True
        self._isStaticToView = False
        self.canFocus = True
        self.movingAllChild = False
        self._posStatic = False

        self._origin = sf.Vector2(0,0)
        self._posOrigin = Position.TopLeft

        self._pos = sf.Vector2(rect.left,rect.top)
        self._size = rect.size
        self._scale = sf.Vector2(1,1)
        self._relativeSizeOnView = None
        self._relativePositionOnView = None
        self.clipRect = None
        self.clipChild = True
Ejemplo n.º 7
0
    def update(self):
        """Update the Window. It Update all event, and update framerate.
        It Draw and display also all widgets child"""
        if self.canUpdate:
            self._event.update()
            self._framerate = 1/(self._event.elapsedTime*10**-6)

            if self._event.isResize:
                Render._setSize(self,self.size)

            if self.event._mouseMoved:
                Widget.widgetFocus = None
    
            if self.event._mouseMoved and self.event.isMouseInRect(self.rect):
                Updatable._focusIsChecked= False
                Updatable.updateFocus(self)
            Widget.update(self, self)
            self.display()
            self.clear(self.backgroundColor)
Ejemplo n.º 8
0
 def __init__(self, img, position):
     Updatable.__init__(self, img, position)
     self.vel = Vec2d(0.0, 0.0)
     self.accel = Vec2d(0.0, 0.0)
     self.pos = position
Ejemplo n.º 9
0
	def returnForUpdate(self, render=None, *args, **kwargs):
		if self.canUpdate:
			if not render:
				render = self.getRender()
			return function(self, render, *args, **kwargs)
		return Updatable.update(self, render, *args, **kwargs)
Ejemplo n.º 10
0
 def howFocus(self):
     return isinstance(self._event, EventManager) and Updatable.getRender(self).isInView(self.rect) and \
             self._event.isMouseInRect(self.getRectOnScreen(True))
Ejemplo n.º 11
0
 def _setRelativeSizeOnView(self, scale, resetOrigin = True):
     render = Updatable.getRender(self)
     if render and scale:
         self._relativePositionOnView = None
         self.setSize(render.getViewSizeWithViewportWithZoom() * scale, resetOrigin)
     self._relativePositionOnView = scale
Ejemplo n.º 12
0
 def _setRelativePositionOnView(self, scale):
     render = Updatable.getRender(self)
     if render and scale:
         self._relativePositionOnView = None
         self.pos = render.getViewSizeWithViewportWithZoom() * scale
     self._relativePositionOnView = scale
Ejemplo n.º 13
0
 def getSizeOnView(self, withClipping=False):
     render = Updatable.getRender(self)
     if render:
         return self.getSize(withClipping) * render.size / render.view.size * render.viewport.size
     else:
         return self.getSize(withClipping)
Ejemplo n.º 14
0
 def getPosOnScreen(self, withOrigin=True, withClipping=False):
     render = Updatable.getRender(self)
     if render is not None:
         return render.convertTargetPointToScreenCoord(self.getPos(withOrigin, withClipping))
     else:
         return self.getPos(withOrigin, withClipping)
Ejemplo n.º 15
0
 def setPosOnScreen(self, position, withOrigin=True):
     render = Updatable.getRender(self)
     if not self._isStaticToView and render:
         self.setPos(render.convertScreenCoordToTargetPoint(position), withOrigin)
     elif not render and not self._isStaticToView:
         self.setPos(position, withOrigin)