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

from PySide import QtGui

from Code.Traducir import tr

import Code.Remoto as Remoto
import Code.Util as Util

import Colocacion
import Controles

# --------------------------------------------------------------------------------------------------------
class WChat( QtGui.QWidget ):

    def __init__(self, wParent)  :
        super(WChat, self).__init__( wParent )

        self.owner = wParent

        fe = Controles.TipoLetra( puntos=9 )
        self.ed = Controles.ED( self ).ponFuente( fe ).capturaIntro( self.capturaED )

        self.histo = Controles.EM(self).soloLectura().ponFuente( fe )
        #~ self.histo.altoMinimo( 80 )
        ly = Colocacion.V().control( self.histo ).control( self.ed )#.margen(10)

        f = Controles.TipoLetra( puntos=12, peso = 75 )
        gb = Controles.GB( self, tr( "CHAT" ), ly ).ponFuente( f ).alinCentrado()

        layout = Colocacion.H().control( gb )

        self.mensaje = Remoto.Mensaje()

        self.setLayout(layout)

    #--------------------------------------------------------------------------------------------------------------------------------
    def configuracion( self, jugador, rival, clave, enlaceEnvio ) :
        self.jugador = jugador
        self.rival = rival

        self.clave = clave
        self.rival = rival

        self.enlaceEnvio = enlaceEnvio

    #--------------------------------------------------------------------------------------------------------------------------------
    def capturaED( self ) :
        txt = self.ed.texto().lstrip()
        if txt :
            txt = Util.xor_crypt( txt, self.clave )
            self.mensaje.reset()
            self.mensaje.nuevo( Remoto.MENS_CHAT, txt )
            self.enlaceEnvio( self.mensaje )
            self.correos( "J", txt )
            self.ed.ponTexto( "" )

    #--------------------------------------------------------------------------------------------------------------------------------
    def correos( self, quien, mensaje ) :

        #~ tm = time.localtime()
        #~ hora = "%2d:%02d"%(tm.tm_hour, tm.tm_min)

        if quien == "R" :
            quien = self.rival
            color = "crimson"
        elif quien == "J" :
            quien = self.jugador
            color = "black"
        else : #elif quien == "S" :
            quien = ""
            color = "green"

        if quien == "" :
            txt = mensaje
        else :
            txt = Util.xor_crypt( mensaje, self.clave )

        texto = "<b>%s</b>:"%quien if quien else ""
        texto += "<font color=%s>%s</font><br>"%( color, txt )

        self.histo.insertarHtml( texto )
        self.histo.ensureCursorVisible()
