GUIVariable

From The Battle for Wesnoth Wiki
Revision as of 03:06, 5 November 2024 by White haired uncle (talk | contribs) (Simple types: - add f_color, fix color description)

Variables

In various parts of the GUI there are several variables types in use. This page describes them.

Simple types

The simple types are types which have one value or a short list of options.

Variable Description
unsigned Unsigned number (positive whole numbers and zero).
f_unsigned Unsigned number or formula returning an unsigned number.
int Signed number (whole numbers).
f_int Signed number or formula returning an signed number.
bool A boolean value accepts the normal values as the rest of the game.
f_bool Boolean value or a formula returning a boolean value.
string A text.
tstring A translatable string.
f_tstring Formula returning a translatable string.
function A string containing a set of function definition for the formula language.
color A string which contains the color, this a group of 4 numbers between 0 and 255 separated by commas. The numbers are red component, green component, blue component and alpha. An alpha of 0 is fully transparent, while an alpha of 255 is fully opaque. Omitted values are set to 0.
f_color A color, or a formula returning a color value.
font_style A string which contains the style of the font:
  • normal normal font
  • bold bold font
  • italic italic font
  • underline underlined font

Since SDL has problems combining these styles only one can be picked. Once SDL will allow multiple options, this type will be transformed to a comma separated list. If empty we default to the normal style. Since the render engine is replaced by Pango markup this field will change later on. Note widgets that allow marked up text can use markup to change the font style.

v_align Vertical alignment; how an item is aligned vertically in the available space. Possible values:
  • top aligned at the top
  • bottom aligned at the bottom
  • center centered

When nothing is set or an another value as in the list the item is centered.

h_align Horizontal alignment; how an item is aligned horizontally in the available space. Possible values:
  • left aligned at the left side
  • right aligned at the right side
  • center centered
f_h_align A horizontal alignment or a formula returning a horizontal alignment.
border Comma separated list of borders to use. Possible values:
  • left border at the left side
  • right border at the right side
  • top border at the top
  • bottom border at the bottom
  • all alias for "left, right, top, bottom"
scrollbar_mode How to show the scrollbar of a widget. Possible values:
  • always The scrollbar is always shown, regardless whether it's required or not.
  • never The scrollbar is never shown, even not when needed. (Note when setting this mode dialogs might not properly fit anymore).
  • auto Shows the scrollbar when needed. The widget will reserve space for the scrollbar, but only show when needed.
  • initial_auto Like auto, but when the scrollbar is not needed the space is not reserved.

Use auto when the list can be changed dynamically eg the game list in the lobby. For optimization you can also use auto when you really expect a scrollbar, but don't want it to be shown when not needed eg the language list will need a scrollbar on most screens.

resize_mode Determines how an image is resized. Possible values:
  • scale The image is scaled.
  • stretch The first row or column of pixels is copied over the entire image. (Can only be used to scale resize in one direction, else falls back to scale.)
  • tile The image is placed several times until the entire surface is filled. The last images are truncated.
grow_direction Determines how an image is resized. Possible values:
  • scale The image is scaled.
  • stretch The first row or column of pixels is copied over the entire image. (Can only be used to scale resize in one direction, else falls back to scale.)
  • tile The image is placed several times until the entire surface is filled. The last images are truncated.

Section types

For more complex parts, there are sections. Sections contain of several lines of WML and can have sub sections. For example a grid has sub sections which contain various widgets. Here's the list of sections.

Variable description
section A generic section. The documentation about the section should describe the section in further detail.
grid A grid contains several widgets. (TODO add link to generic grid page.)