Tabla de contenidos | Jerarquía de las clases

Widget

Elemento básico del interface de usuario.

Base : Objekt

Subclases directas : | AnimatorWidget | ButtonWidget | CloneWidget | EditWidget | ImageWidget | LabelWidget | NumberWidget | PadWidget | ProgressBarWidget | RadioButtonsWidget | RichTextWidget | ScrollBarWidget | ScrollViewWidget | StackWidget | TextWidget | WidgetArrayWidget | WidgetGroupWidget | WorldWidget |

Posibles hijos : | AnimatorWidget | AxisPadWidget | ButtonPadWidget | ButtonWidget | CloneWidget | EditWidget | ImageWidget | LabelWidget | NumberWidget | PopUpButtonWidget | ProgressBarWidget | PushButtonWidget | RadioButtonsWidget | RichTextWidget | ScrollBarWidget | ScrollViewWidget | ServerButtonWidget | StackWidget | TextWidget | Widget | WidgetArrayWidget | WidgetGroupWidget | WorldWidget |

Descripción

La clase Widget es la base de todos los widgets. Es una zona rectangular de la pantalla que puede tener una apariencia visual proporcionada por uno o más objetos de la clase FrameStyle.

Algunas clases de widgets tienen capacidad de respuesta a las acciones del usuario, como ButtonWidget, PadWidget o ScrollBarWidget.

Otras clases interesantes son WidgetGroupWidget que implementa una lista variable de widgets con su propio contenido, WidgetArrayWidget que reproduce un número variable de widgets idénticos y CloneWidget. Estas clases usan una composición de widgets de referencia, el atributo model, que se usa como prototipo o plantilla.

Otro tipo esencial de widget es WorldWidget, que representa un mundo (World), el escenario (Stage) y sus actores (Actor).

Algunos widgets tienen la capacidad de representar valores numéricos en forma escrita o gráfica, por ejemplo: LabelWidget, NumberWidget, ProgressBarWidget.

Todo widget puede tener la referencia a un objeto cualquiera que se considera su contexto. Es el especificado en el atributo display_object. Si no se especifica se usa el contexto del padre. El objeto puede ser conocido por las expresiones en tiempo de ejecución por el atributo de sólo lectura displayed.

Puede asociarse una máquina de estado a un widget con el atributo machine. Esto puede usarse para generar animaciones, interacciones con el usuario o controles generales del estado del juego.

Generalmente, las posiciones y tamaños de los widget se calculan automáticamente al representarse. Para ello se utilizan las propiedades de despliegue expand, horiz_align y vert_align que están relacionadas con las propiedades del widget padre spacing, flow, grid_columns y gravity.

Atributos heredados

De Objekt:
_comment_, parent, rand, randomize, children, child, front, back, childIndex, childByName,

Atributos

vec2 pos

Expression
No modificable por expresión..

Posición (en pixels virtuales) del widget relativo al padre. No se utiliza si el padre tiene un flow distinto de none.


vec2 size

Expression
No modificable por expresión..

Dimensiones (en pixels virtuales). La interpretación depende del valor del atributo expand.


bool square_hint

Bool


vec2 current_pos

Vector
No modificable por expresión..
El valor no se guarda con el proyecto.


vec2 current_size

Vector
No modificable por expresión..
El valor no se guarda con el proyecto.


int border

NumberPad

Es la distancia entre el contenido y los límites del widget.


int spacing

NumberPad

En caso de que flow sea horizontal o vertical, es la distancia mínima entre los hijos del widget medidos en la dirección de flow.


int expand

Enum

En caso de que flow sea horizontal, vertical o stack, indica la expansión del widget. Cuando un widget se expande, utiliza todo el espacio del widget padre que no está usado por otros widgets. Si hay más de un widget que se expande, se reparten el espacio disponible. Valores posibles:


int horiz_align

Enum


int vert_align

Enum


Anchor anchor

Reference


int flow

Enum

Modo de distribución automática de los hijos:

none
Sin automatismo. La posición y las dimensiones de los hijos es fijada por sus parámetros pos y size.
horizontal
Los widgets se distribuyen en hilera.
vertical
Los widgets se distribuyen en columna.
stack
Todos los widgets se colocan superpuestos.
grid
Los widgets se distribuyen en rejilla. El número de columnas lo determina la propiedad grid_columns.


int grid_columns

NumberPad

Número de columnas en caso de que el flow sea grid.


int gravity

Enum

En caso de que flow sea horizontal o vertical, indica el ajuste de la posición en la dirección de flow. Valores posibles:

center
Los hijos se reparten de forma que la separación entre ellos sea uniforme.
start
Los hijos se acumulan arriba, si flow es vertical o a la izquierda si es horizontal.
end
Los hijos se acumulan abajo, si flow es vertical o a la derecha si es horizontal.
float
Cuando el contenido es más grande que el continente la posición es flotante, se puede posicionar el contenido interactivamente con el ratón o el dedo efectuándose un scroll con inercia.


bool clip

Bool

Recorta el contenido del widget a sus dimensiones exactas. Si no, sobresale lo sobrante.


void on_enter

Expression
No modificable por expresión..


void on_leave

Expression
No modificable por expresión..


bool visibility

Expression
No modificable por expresión..

Conmutador que indica si el widget es visible o no. Si está oculto, tampoco se muestran sus hijos y todos los demás widgets se recolocan como si éste no existiera.


bool no_focus

Bool


bool ini_focus

Bool


bool capture_touch

Bool


Machine machine

Reference

Máquina de estados asociada a este widget. Es la refwerencia a un objeto de clase WidgetMachine.


void activate

Expression
No modificable por expresión..


Objekt display_objekt

Expression
No modificable por expresión..

Objeto de contexto para este widget. Si no se especifica el contexto se hereda del padre.


Objekt displayed

Reference
No modificable por expresión..
Atributo no accesible desde el Objekt Inspector.
El valor no se guarda con el proyecto.


int local_code

Expression
No modificable por expresión..


int inherited_code

Number
No modificable por expresión..
El valor no se guarda con el proyecto.

Número entero que se envía como argumento se las señales generadas por este widget. Si su valor es 0 se usará el valor del padre.


Data local_data

Reference


Data inherited_data

Reference
No modificable por expresión..
El valor no se guarda con el proyecto.


bool clickable

Bool


void on_click

Expression
No modificable por expresión..


FrameStyle style

Expression
No modificable por expresión..

El estilo o skin del widget, La clase del estilo depende de la clase del widget.


uint style_steps

Number

Para cuando se cambia de estilo, bien por cambio de estado natural del widget o por otra razón, se puede especificar aquí un número de pasos de la transición. Generalmente se produce un fundido progresivo, pero podría implementarse, en el futuro, otros tipos de transformación.


void set_position (this: Widget, position: vec2)

Method


void set_size (this: Widget, size: vec2)

Method


void set_style (this: Widget, style: FrameStyle)

Method


void update (this: Widget)

Method


void release_focus (this: Widget)

Method


void hide_popup (this: Widget)

Method



(C) Paco Suárez (pacosu@xitai,es). 2020.
XITAI