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

#==========================================================================================================================================
from Code.Constantes import *

from Code.Traducir import tr

import Iconos

import FormLayout

#==========================================================================================================================================
def paramPelicula( parent ) :
    # Datos
    liGen = [(None,None)]

    ## Segundos
    liGen.append( ( tr( "PELICULA_SEGUNDOS" ) + " :",  2 ) )

    ## Si desde el principi
    liGen.append( ( tr( "PELICULA_PRINCIPIO" ) + " :", True ) )

    # Editamos
    resultado = FormLayout.fedit( liGen, title= tr( "PELICULA" ), parent = parent, anchoMinimo = 460, icon = Iconos.Pelicula(), siDefecto = False )

    if resultado :
        accion, liResp = resultado

        segundos = liResp[0]
        siPrincipio = liResp[1]
        return segundos, siPrincipio
    else :
        return None

#==========================================================================================================================================
class Pelicula :

    def __init__( self, gestor, segundos, siInicio ) :
        self.gestor = gestor
        self.pantalla = gestor.pantalla
        self.pgn = gestor.pgn
        self.segundos = segundos
        self.siInicio = siInicio

        liAcciones = (  k_peliculaTerminar, k_peliculaLento, k_peliculaPausa, k_peliculaSeguir, k_peliculaRapido, k_peliculaRepetir )

        self.antAcciones = self.pantalla.dameToolBar()
        self.pantalla.ponToolBar( liAcciones )

        self.gestor.ponRutinaAccionDef( self.procesarTB )

        self.muestraPausa( True )

        self.pantalla.iniciaReloj( self.reloj, 1000 )

        self.numJugadas, self.jugInicial, self.filaInicial, self.siBlancas = self.gestor.jugadaActual()

        if siInicio :
            self.jugInicial = -1

        self.gotop()

    #-----------------------------------------------------------------------------------
    def muestraPausa( self, siPausa ) :
        self.pantalla.mostrarOpcionToolBar( k_peliculaPausa, siPausa )
        self.pantalla.mostrarOpcionToolBar( k_peliculaSeguir, not siPausa )

    #-----------------------------------------------------------------------------------
    def procesarTB( self, clave ) :
        if clave == k_peliculaTerminar :
            self.terminar()
        elif clave == k_peliculaLento :
            self.lento()
        elif clave == k_peliculaPausa :
            self.pausa()
        elif clave == k_peliculaSeguir :
            self.seguir()
        elif clave == k_peliculaRapido :
            self.rapido()
        elif clave == k_peliculaRepetir :
            self.gotop()

    #-----------------------------------------------------------------------------------
    def terminar( self ) :
        self.pantalla.paraReloj()
        self.pantalla.ponToolBar( self.antAcciones )
        self.gestor.ponRutinaAccionDef( None )
        self.gestor.xpelicula = None

    #-----------------------------------------------------------------------------------
    def lento( self ) :
        self.segundos += 1
        self.quedanSegundos += 1

    #-----------------------------------------------------------------------------------
    def rapido( self ) :
        if self.segundos > 1 :
            self.segundos -= 1
            self.quedanSegundos -= 1

    #-----------------------------------------------------------------------------------
    def pausa( self ) :
        self.quedanSegundos = 999999999999999 # muchos aņos
        self.muestraPausa( False )

    #-----------------------------------------------------------------------------------
    def seguir( self ) :
        self.quedanSegundos = 0
        self.muestraPausa( True )

    #-----------------------------------------------------------------------------------
    def reloj( self ) :
        self.quedanSegundos -= 1
        if self.quedanSegundos <= 0 :
            self.skip()
            self.quedanSegundos = self.segundos

    #-----------------------------------------------------------------------------------
    def gotop( self ) :
        if self.jugInicial >= 0 :
            self.pantalla.pgnColocate( self.filaInicial, self.siBlancas )
            self.gestor.pgnMueve( self.filaInicial, self.siBlancas )
        else :
            self.gestor.mueveJugada( "p" )
        self.quedanSegundos = self.segundos

    #-----------------------------------------------------------------------------------
    def skip( self ) :
        self.gestor.mueveJugada( "+" )
