ui

Interfaz inmediata (immediate-mode): declara la UI de cada cuadro (botones, casillas, texto) dentro de un contexto en árbol de filas, columnas y paneles.

importar
usar std/pincel/ui

Tipos

ui.Alineacion

Cómo alinear los hijos de un contenedor de interfaz dentro del espacio sobrante: .Inicio, .Centro o .Final.

Valores:

.Centro.Final.Inicio

ui.AmbitoUI

Un contenedor abierto de la interfaz (fila, columna, panel...), devuelto por funciones como ui.fila para usarse con `con`.

AmbitoUI.entrar()

Entra al ámbito de este contenedor; se usa automáticamente al abrir un bloque `con` sobre él.

AmbitoUI.salir()

Sale del ámbito de este contenedor; se usa automáticamente al cerrar el bloque `con`.

ui.Bordes

Un relleno (padding) con un valor distinto por lado: izquierda, derecha, arriba y abajo.

izquierda decimalderecha decimalarriba decimalabajo decimal

ui.Contexto

El estado de la interfaz inmediata entre cuadros; se crea una vez con ui.crear y se reutiliza en cada uno.

ui.Medida

Cómo debe calcularse el tamaño de un elemento de interfaz: fijo, según su contenido, expandiendo o como porcentaje del espacio disponible.

ui.Tema

Los colores, fuente y espaciado que usa la interfaz al dibujarse; ver ui.retro y ui.fuente para temas listos para usar.

fondo Colornormal Colorsobre Colorpresionado Colorfoco Colordeshabilitado Colortexto Colorespacio decimal

Funciones

ui.crear() ui.Contexto

Crea un nuevo Contexto de interfaz. Se llama una sola vez; el mismo contexto se reutiliza en cada cuadro.

ui.cuadro(contexto ui.Contexto) ui.AmbitoUI

Empieza a declarar la interfaz de este cuadro dentro de `contexto`. Úsalo con `con` para delimitar el árbol de la UI.

ui.pintar(contexto ui.Contexto)al pintar

Dibuja la interfaz declarada este cuadro. Llámalo al final, después de cerrar el bloque de ui.cuadro.

ui.captura_raton(contexto ui.Contexto) bool

verdadero si la interfaz está usando el ratón en este cuadro (útil para no mover también la cámara del juego, por ejemplo).

ui.captura_teclado(contexto ui.Contexto) bool

verdadero si la interfaz está usando el teclado en este cuadro (por ejemplo, un campo de texto con foco).

ui.fijo(valor decimal) ui.Medida

Una Medida de tamaño exacto en píxeles.

ui.contenido(minimo decimal = 0, maximo decimal = 1000000000) ui.Medida

Una Medida que se ajusta al contenido, opcionalmente acotada entre `minimo` y `maximo`.

ui.expandir(minimo decimal = 0, maximo decimal = 1000000000) ui.Medida

Una Medida que crece para llenar el espacio disponible del contenedor padre.

ui.porcentaje(fraccion decimal) ui.Medida

Una Medida como fracción del espacio disponible del contenedor padre (0 a 1).

ui.fila(id cadena, ancho ui.Medida = contenido(), alto ui.Medida = contenido(), espacio decimal = -1, relleno ui.Bordes = {}, horizontal ui.Alineacion = .Inicio, vertical ui.Alineacion = .Inicio, desplazar bool = falso) ui.AmbitoUI

Un contenedor que acomoda a sus hijos en fila (uno junto al otro, horizontalmente). Ábrelo con `con`.

ui.columna(id cadena, ancho ui.Medida = contenido(), alto ui.Medida = contenido(), espacio decimal = -1, relleno ui.Bordes = {}, horizontal ui.Alineacion = .Inicio, vertical ui.Alineacion = .Inicio, desplazar bool = falso) ui.AmbitoUI

Un contenedor que acomoda a sus hijos en columna (uno debajo del otro, verticalmente). Ábrelo con `con`.

ui.panel(id cadena, ancho ui.Medida = contenido(), alto ui.Medida = contenido(), espacio decimal = -1, relleno ui.Bordes = {}, horizontal ui.Alineacion = .Inicio, vertical ui.Alineacion = .Inicio, desplazar bool = falso) ui.AmbitoUI

Un contenedor visual (con fondo) que agrupa a sus hijos como una columna.

ui.texto(valor cadena, ancho ui.Medida = contenido(), alto ui.Medida = contenido(), color color.Color = .Transparente)

Muestra una etiqueta de texto no interactiva.

ui.imagen(imagen graficos.Imagen, ancho ui.Medida = contenido(), alto ui.Medida = contenido(), tinte color.Color = .Blanco)

Muestra una imagen dentro de la interfaz.

ui.boton(id cadena, etiqueta cadena, ancho ui.Medida = contenido(), alto ui.Medida = contenido(), habilitado bool = verdadero) bool

Un botón con `etiqueta`; devuelve verdadero en el cuadro en que se hace clic sobre él. `id` debe ser único dentro de su contenedor.

ui.casilla(id cadena, valor bool, etiqueta cadena = "", ancho ui.Medida = contenido(), alto ui.Medida = contenido(), habilitado bool = verdadero) bool

Una casilla de verificación; devuelve el nuevo valor de `valor` tras el clic (o el mismo si no cambió).

ui.deslizador(id cadena, valor decimal, minimo decimal = 0, maximo decimal = 1, ancho ui.Medida = fijo(120), alto ui.Medida = fijo(16), habilitado bool = verdadero) decimal

Un control deslizante entre `minimo` y `maximo`; devuelve el valor actual tras la interacción del usuario.

ui.barra(valor decimal, minimo decimal = 0, maximo decimal = 1, ancho ui.Medida = fijo(120), alto ui.Medida = fijo(10))

Una barra de progreso no interactiva que muestra `valor` entre `minimo` y `maximo`.

ui.separador(ancho ui.Medida = expandir(), alto ui.Medida = fijo(1))

Una línea delgada para separar visualmente secciones de la interfaz.

ui.espacio(ancho ui.Medida = expandir(), alto ui.Medida = expandir())

Un hueco vacío, útil para empujar otros elementos o dejar aire entre ellos.

ui.campo_texto(id cadena, valor cadena, ancho ui.Medida = contenido(0, 200), alto ui.Medida = contenido(), habilitado bool = verdadero) cadena

Un campo de texto editable; devuelve el contenido actual tras la edición del usuario.

ui.retro(escala entero = 1) ui.Tema

Un Tema con la paleta y fuente de std/pincel/retro, listo para pasar a ui.tema.

ui.fuente(fuente graficos.Fuente, tamano decimal = 20) ui.Tema

Un Tema que usa `fuente` (y el `tamano` dado) para todo el texto de la interfaz.

ui.tema(tema ui.Tema) ui.AmbitoUI

Aplica `tema` a los elementos declarados dentro de este bloque `con`.