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

from PySide import QtCore, QtGui

import Colocacion
import Controles

import QTUtil

import Iconos

#==========================================================================================================================================
class CapturaLista( QtGui.QWidget ) :

    def __init__(self, wParent, tipoPieza, anchoPieza )  :
        super(CapturaLista, self).__init__(wParent)

        dTam = { 16:16, 24:16, 32:24, 48:32, 64:48, 80:48 }
        cEstiloPieza = "%d%s"%(dTam.get(anchoPieza,48), tipoPieza)

        self.setFixedWidth( dTam[anchoPieza]*15/10)
        self.pantalla = wParent.parent
        li = self.li = [ [ "P", 8 ], [ "N", 2 ], [ "B", 2 ], [ "R", 2 ], [ "Q", 1 ] ]
        self.dic = {}
        for pieza, numero in li :
            dW = self.dic[pieza] = []
            dB = self.dic[pieza.lower()] = []
            for i in range(numero) :
                lbW = Controles.LB().ponImagen( eval( "Iconos.pm%s_%s()"%(pieza,cEstiloPieza) ) ).anchoFijo(anchoPieza).alinCentrado()
                lbW.hide()
                dW.append(lbW)
                lbB = Controles.LB().ponImagen( eval( "Iconos.pm%s_%s()"%(pieza.lower(),cEstiloPieza) ) ).anchoFijo(anchoPieza).alinCentrado()
                lbB.hide()
                dB.append(lbB)

        self.ponLayout( True )

    #--------------------------------------------------------------------------------------------------------------------------------
    def mousePressEvent(self, event) :
        if event.button() == QtCore.Qt.RightButton :
            self.pantalla.activaCapturas( False )

    #--------------------------------------------------------------------------------------------------------------------------------
    def ponLayout( self, siBlancasAbajo ) :
        layout = self.layout()
        if layout :
            while True :
                item = layout.takeAt(0)
                if item :
                    del item
                else :
                    break
        else :
            layout = Colocacion.V().margen(0)
            self.setLayout( layout )

        dlayout = {}
        for color in (True, False) :
            ly = dlayout[color] = Colocacion.V().margen(0)
            for pieza, numero in self.li :
                if color == False :
                    pieza = pieza.lower()
                for i in range(numero) :
                    ly.control( self.dic[pieza][i] )
        ly0, ly1 = dlayout[siBlancasAbajo],dlayout[not siBlancasAbajo]

        layout.otro(ly0).relleno(1).relleno(1).otro(ly1)
        QTUtil.refreshGUI()

    #--------------------------------------------------------------------------------------------------------------------------------
    def ponLI( self, liPiezas ) :
        piezas = "PNBRQpnbrq"
        for pieza, num in liPiezas :
            piezas = piezas.replace( pieza, "" )
            d = self.dic[pieza]
            for x in range(num) :
                d[x].show()
            for x in range(num,len(d)) :
                d[x].hide()
        for pieza in piezas :
            d = self.dic[pieza]
            for x in range(len(d)) :
                d[x].hide()

    #--------------------------------------------------------------------------------------------------------------------------------
    def pon( self, dicCapturas, jg, apertura ) :
        if dicCapturas :
            cPiezas = "PNBRQ"

            liDif = []

            for pieza in cPiezas :
                vW = dicCapturas[pieza]
                vB = dicCapturas[pieza.lower()]
                vD = vW-vB
                if vD != 0 :
                    if vD < 0 :
                        pieza = pieza.lower()
                        vD = -vD
                    liDif.append( (pieza,vD) )

            self.ponLI( liDif )
    #--------------------------------------------------------------------------------------------------------------------------------
