# -*- coding: latin-1 -*-

from PySide import QtCore, QtGui

#==========================================================================================================================================
class BloqueSC(QtGui.QGraphicsItem):

    def __init__( self, escena, bloqueDatos ):

        self.nAlrededor = 5

        super(BloqueSC, self).__init__()

        self.bloqueDatos = bloqueDatos

        self.tablero = escena.parent()

        margenCentro = self.tablero.margenCentro
        self.setPos(margenCentro,margenCentro)

        ancho = (self.tablero.anchoPieza + self.tablero.margenPieza*2)*8
        self.rect = QtCore.QRectF( 0, 0, ancho, ancho )

        self.angulo = bloqueDatos.posicion.angulo
        if self.angulo :
            self.rotate( self.angulo )

        escena.clearSelection()
        escena.addItem(self)
        self.escena = escena

        if bloqueDatos.siMovible :
            self.tablero.registraMovible( self )

        self.setZValue( bloqueDatos.posicion.orden )
        self.setOpacity( bloqueDatos.opacidad )

        self.activa( False )

    #--------------------------------------------------------------------------------------------------------------------------------------------
    def activa( self, siActivar ) :
        self.siActivo = siActivar
        if siActivar :
            self.setSelected(True)
            self.siElegido = False
            self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, True)
            self.setFlag(QtGui.QGraphicsItem.ItemIsFocusable, True)
            self.setFocus()
        else :
            self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, False)
            self.setFlag(QtGui.QGraphicsItem.ItemIsFocusable, False)

    #--------------------------------------------------------------------------------------------------------------------------------------------
    def tipo( self ) :
        return self.__class__.__name__[6:-2]

    #--------------------------------------------------------------------------------------------------------------------------------------------
    def boundingRect(self):
        n = self.nAlrededor
        return self.rect.adjusted(-n, -n, n, n)

