module PruebasDibujos ( testElemento, testBase, testBarraBasica, testBarraBasicaPulsada, testBarra1Boton, testBotonBasico, testBotonPulsado, testEntradaBasica, testEntradaTransparente, testEtiqueta, testLista, testParrafo, testSaltoDeLineaBasico, testSaltoDeLineaVertical, testTituloBasico, testTituloBasico2, testTituloBasico3, testTituloBasico4, testTituloBasico5, testTituloBasico6, testTituloBasico7, ) where import AlmacenElementos as Al import DatosElementosPreconstruidos as Dep import Graphics.Gloss.Interface.Pure.Display (Display (InWindow), blue, display, white) import Tipos.TipoBarraNavegacion as Barra import Tipos.TipoBase as B import Tipos.TipoElemento as E import Tipos.TipoEntrada as E import Tipos.TipoEtiqueta as Et import Tipos.TipoForma as F import Tipos.TipoLista as L import Tipos.TipoParrafo as P import Tipos.TipoPosicion (Malla) import Tipos.TipoSaltoDeLinea as S import Tipos.TipoTitulo as T import Utilidades.Constantes (posicionVentana, tamañoVentana) import Utilidades.Utiles (cabeza) -- Definiciones básicas ventana :: Display ventana = InWindow "Automata" tamañoVentana posicionVentana almacen :: Al.AlmacenElementos almacen = snd $ Al.construyeAlmacen [] almacenBasico mallaBasica :: Malla mallaBasica = B.creaMallaBase $ cabeza "mallaBasica" $ Al.bases almacen elemento :: E.Elemento elemento = snd $ E.construyeElemento [] Dep.elementoBasico base :: B.Base base = cabeza "base" $ Al.bases almacen barra :: Barra.BarraNavegacion barra = cabeza "barra" $ Al.barrasNavegacion almacen boton :: F.Forma boton = cabeza "boton" $ Al.formas almacen entrada :: E.Entrada entrada = cabeza "entrada" $ Al.entradas almacen etiqueta :: Et.Etiqueta etiqueta = cabeza "etiqueta" $ Al.etiquetas almacen lista :: L.Lista lista = cabeza "lista" $ Al.listas almacen parrafo :: P.Parrafo parrafo = cabeza "parrafo" $ Al.parrafos almacen saltoDeLinea :: S.SaltoDeLinea saltoDeLinea = cabeza "saltoDeLinea" $ Al.saltosDeLinea almacen titulo :: T.Titulo titulo = cabeza "titulo" $ Al.titulos almacen -- Tests -- +++++++++++++ Elemento +++++++++++++++++++++++++++++++ testElemento :: IO () testElemento = do print $ "elementoBasico: " ++ show elemento -- +++++++++++++ Base +++++++++++++++++++++++++++++++ testBase :: IO () testBase = do print $ "baseBasica: " ++ show base print "\nMalla basica de la baseBasica:" print mallaBasica -- +++++++++++++ Barra +++++++++++++++++++++++++++++++ testBarraBasica :: IO () testBarraBasica = do barraDibujada <- Barra.dibujaBarraNavegacion barra print $ "\nBarra basica: " ++ show barra display ventana white barraDibujada testBarraBasicaPulsada :: IO () testBarraBasicaPulsada = do barraDibujada <- Barra.dibujaBarraNavegacion $ barra {Barra.datosElemento = elemento {E.pulsado = True}} print $ "\nBarra basica: " ++ show barra display ventana white barraDibujada testBarra1Boton :: IO () testBarra1Boton = do barraDibujada <- Barra.dibujaBarraNavegacion $ barra {Barra.formas = [PruebasDibujos.boton]} print $ "\nBarra con un boton: " ++ show barra {Barra.formas = [PruebasDibujos.boton]} display ventana white barraDibujada -- +++++++++++++ Botón +++++++++++++++++++++++++++++++ testBotonBasico :: IO () testBotonBasico = do botonDibujado <- F.dibujaForma [] PruebasDibujos.boton print $ "Boton basico: " ++ show PruebasDibujos.boton display ventana white botonDibujado testBotonPulsado :: IO () testBotonPulsado = do botonDibujado <- F.dibujaForma [] PruebasDibujos.boton print $ "Boton basico: " ++ show PruebasDibujos.boton {F.datosElemento = elemento {E.pulsado = True}} display ventana white botonDibujado -- +++++++++++++ Entrada +++++++++++++++++++++++++++++++ testEntradaBasica :: IO () testEntradaBasica = do print $ "entradaBasica: " ++ show entrada entradaDibujada <- E.dibujaEntrada entrada print "\nEntrada basica:" display ventana white entradaDibujada testEntradaTransparente :: IO () testEntradaTransparente = do print $ "entradaTransparente: " ++ show entrada {E.fondoTransparente = True} entradaDibujada <- E.dibujaEntrada $ entrada {E.fondoTransparente = True} print "\nEntrada transparente:" display ventana blue entradaDibujada -- +++++++++++++ Etiqueta +++++++++++++++++++++++++++++++ testEtiqueta :: IO () testEtiqueta = do let esquinasPrueba = esquinas $ Et.datosElemento etiqueta print $ "etiquetaBasica: " ++ show etiqueta etiquetaDibujada <- Et.dibujaEtiqueta esquinasPrueba etiqueta display ventana white etiquetaDibujada -- +++++++++++++ Lista +++++++++++++++++++++++++++++++ testLista :: IO () testLista = do print $ "listaBasica: " ++ show lista listaDibujada <- L.dibujaLista lista display ventana white listaDibujada -- +++++++++++++ Párrafos +++++++++++++++++++++++++++++++ testParrafo :: IO () testParrafo = do print $ "parrafoBasico: " ++ show parrafo parrafoDibujado <- P.dibujaParrafo parrafo display ventana white parrafoDibujado -- +++++++++++++ Saltos de línea +++++++++++++++++++++++++++++++ testSaltoDeLineaBasico :: IO () testSaltoDeLineaBasico = do print $ "saltoDeLineaBasico: " ++ show saltoDeLinea saltoDeLineaDibujado <- S.dibujaSaltoDeLinea saltoDeLinea display ventana white saltoDeLineaDibujado testSaltoDeLineaVertical :: IO () testSaltoDeLineaVertical = do print $ "saltoDeLineaVertical: " ++ show saltoDeLinea {S.vertical = True} saltoDeLineaDibujado <- S.dibujaSaltoDeLinea $ saltoDeLinea {S.vertical = True} display ventana white saltoDeLineaDibujado -- +++++++++++++ Títulos +++++++++++++++++++++++++++++++ testTituloBasico :: IO () testTituloBasico = do print $ "tituloBasico: " ++ show titulo tituloDibujado <- T.dibujaTitulo titulo display ventana white tituloDibujado testTituloBasico2 :: IO () testTituloBasico2 = do print $ "tituloBasico2: " ++ show titulo {T.tamañoTitulo = 2, T.texto = "Texto 2"} tituloDibujado <- T.dibujaTitulo $ titulo {T.tamañoTitulo = 2, T.texto = "Texto 2"} display ventana white tituloDibujado testTituloBasico3 :: IO () testTituloBasico3 = do print $ "tituloBasico3: " ++ show titulo {T.tamañoTitulo = 3, T.texto = "Texto 3"} tituloDibujado <- T.dibujaTitulo $ titulo {T.tamañoTitulo = 3, T.texto = "Texto 3"} display ventana white tituloDibujado testTituloBasico4 :: IO () testTituloBasico4 = do print $ "tituloBasico4: " ++ show titulo {T.tamañoTitulo = 4, T.texto = "Texto 4"} tituloDibujado <- T.dibujaTitulo $ titulo {T.tamañoTitulo = 4, T.texto = "Texto 4"} display ventana white tituloDibujado testTituloBasico5 :: IO () testTituloBasico5 = do print $ "tituloBasico5: " ++ show titulo {T.tamañoTitulo = 5, T.texto = "Texto 5"} tituloDibujado <- T.dibujaTitulo $ titulo {T.tamañoTitulo = 5, T.texto = "Texto 5"} display ventana white tituloDibujado testTituloBasico6 :: IO () testTituloBasico6 = do print $ "tituloBasico6: " ++ show titulo {T.tamañoTitulo = 6, T.texto = "Texto 6"} tituloDibujado <- T.dibujaTitulo $ titulo {T.tamañoTitulo = 6, T.texto = "Texto 6"} display ventana white tituloDibujado testTituloBasico7 :: IO () testTituloBasico7 = do print $ "tituloBasico7: " ++ show titulo {T.tamañoTitulo = 7, T.texto = "Texto 7"} tituloDibujado <- T.dibujaTitulo $ titulo {T.tamañoTitulo = 7, T.texto = "Texto 7"} display ventana white tituloDibujado