Types/StyleSpecification: Difference between revisions
mNo edit summary |
(→parent: better info on how parent defaults and the exception work. thanks therenas) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 49: | Line 49: | ||
Name of a [[Types/StyleSpecification]]. This style specification inherits all property values from the parent style specification.<br> | Name of a [[Types/StyleSpecification]]. This style specification inherits all property values from the parent style specification.<br> | ||
Styles without a parent property default to the root style for their type. The exception to this are the root styles themselves, they cannot have a parent set. Due to this, for root styles some style properties are mandatory and behavior may be unexpected, such as an element not showing up because its size defaults to 0. | |||
=== horizontal_align === | === horizontal_align === | ||
Line 64: | Line 64: | ||
Either "top", "center" or "bottom". | Either "top", "center" or "bottom". | ||
=== ignored_by_search === | |||
'''Type''': [[Types/bool|bool]] | |||
=== never_hide_by_search === | |||
'''Type''': [[Types/bool|bool]] | |||
=== horizontally_stretchable === | === horizontally_stretchable === | ||
'''Type''': [[Types/ | '''Type''': [[Types/StretchRule|StretchRule]] | ||
'''Default''': "auto" | '''Default''': "auto" | ||
=== vertically_stretchable === | === vertically_stretchable === | ||
'''Type''': [[Types/ | '''Type''': [[Types/StretchRule|StretchRule]] | ||
'''Default''': "auto" | '''Default''': "auto" | ||
=== horizontally_squashable === | === horizontally_squashable === | ||
'''Type''': [[Types/ | '''Type''': [[Types/StretchRule|StretchRule]] | ||
'''Default''': "auto" | '''Default''': "auto" | ||
=== vertically_squashable === | === vertically_squashable === | ||
'''Type''': [[Types/ | '''Type''': [[Types/StretchRule|StretchRule]] | ||
'''Default''': "auto" | '''Default''': "auto" | ||
=== natural_size === | |||
'''Type''': [[Types/uint32|uint32]] or [[Types/table|table]] of [[Types/uint32|uint32]] | |||
If this is an array, the first member of the array is <code>natural_width</code> and the second is <code>natural_height</code>. Otherwise the size is both <code>natural_width</code> and <code>natural_height</code>. | |||
=== size === | === size === | ||
Line 202: | Line 205: | ||
=== effect === | === effect === | ||
'''Type''': [[Types/string|string]] | '''Type''': [[Types/string|string]] | ||
Name of a custom GUI effect. Custom GUI effects are hardcoded in the game's C++ code. List of available effects: "compilatron-hologram" | |||
=== effect_opacity === | === effect_opacity === | ||
Line 207: | Line 212: | ||
'''Default''': 1.0 | '''Default''': 1.0 | ||
=== tooltip === | |||
'''Type''': [[Types/LocalisedString|LocalisedString]] | |||
== Example == | |||
Example of adding a custom style via [[Prototype/GuiStyle]], in this case a [[Types/FrameStyleSpecification]]: | |||
<syntaxhighlight lang="lua">data.raw["gui-style"]["default"]["custom_style_for_a_frame"] = | |||
{ | |||
type = "frame_style", | |||
parent = "frame", | |||
use_header_filler = false, | |||
drag_by_title = false | |||
}</syntaxhighlight> |
Latest revision as of 16:14, 21 September 2022
A table, used as a value in Prototype/GuiStyle, named by the key that is used there. Prototype/GuiStyle loads one of the extensions of this prototype, depending on the specified type
.
Extensions
- Types/ActivityBarStyleSpecification activity_bar_style
- Types/EmptyWidgetStyleSpecification empty_widget_style
- Types/CameraStyleSpecification camera_style
- Types/MinimapStyleSpecification minimap_style
- Types/DropDownStyleSpecification dropdown_style
- Types/FlowStyleSpecification flow_style
- Types/FrameStyleSpecification frame_style
- Types/GlowStyleSpecification glow_style
- Types/GraphStyleSpecification graph_style
- Types/HorizontalFlowStyleSpecification horizontal_flow_style
- Types/ImageStyleSpecification image_style
- Types/LabelStyleSpecification label_style
- Types/LineStyleSpecification line_style
- Types/ListBoxStyleSpecification list_box_style
- Types/ProgressBarStyleSpecification progressbar_style
- Types/ScrollBarStyleSpecification <abstract>
- Types/HorizontalScrollBarStyleSpecification horizontal_scrollbar_style
- Types/VerticalScrollBarStyleSpecification vertical_scrollbar_style
- Types/ScrollPaneStyleSpecification scroll_pane_style
- Types/SliderStyleSpecification slider_style
- Types/DoubleSliderStyleSpecification double_slider_style
- Types/SpeechBubbleStyleSpecification speech_bubble_style
- Types/StyleWithClickableGraphicalSetSpecification <abstract>
- Types/ButtonStyleSpecification button_style
- Types/TechnologySlotStyleSpecification technology_slot_style
- Types/CheckBoxStyleSpecification checkbox_style
- Types/RadioButtonStyleSpecification radiobutton_style
- Types/ButtonStyleSpecification button_style
- Types/SwitchStyleSpecification switch_style
- Types/TabbedPaneStyleSpecification tabbed_pane_style
- Types/TableStyleSpecification table_style
- Types/TabStyleSpecification tab_style
- Types/TextBoxStyleSpecification textbox_style
- Types/VerticalFlowStyleSpecification vertical_flow_style
Mandatory properties
type
Type: string
The type of one of the above listed extensions, this style specification is then loaded as that extension.
Optional properties
parent
Type: string
Name of a Types/StyleSpecification. This style specification inherits all property values from the parent style specification.
Styles without a parent property default to the root style for their type. The exception to this are the root styles themselves, they cannot have a parent set. Due to this, for root styles some style properties are mandatory and behavior may be unexpected, such as an element not showing up because its size defaults to 0.
horizontal_align
Type: string
Default: "left"
Either "left", "center" or "right".
vertical_align
Type: string
Default: "top"
Either "top", "center" or "bottom".
ignored_by_search
Type: bool
never_hide_by_search
Type: bool
horizontally_stretchable
Type: StretchRule
Default: "auto"
vertically_stretchable
Type: StretchRule
Default: "auto"
horizontally_squashable
Type: StretchRule
Default: "auto"
vertically_squashable
Type: StretchRule
Default: "auto"
natural_size
Type: uint32 or table of uint32
If this is an array, the first member of the array is natural_width
and the second is natural_height
. Otherwise the size is both natural_width
and natural_height
.
size
Type: uint32 or table of uint32
If this is an array, the first member of the array is width
and the second is height
. Otherwise the size is both width
and height
.
width
Type: uint32
Sets minimal_width
, maximal_width
and natural_width
.
minimal_width
Type: uint32
Default: 0
Minimal width ensures, that the widget will never be smaller than than that size. It can't be squashed to be smaller.
maximal_width
Type: uint32
Default: 0
Maximal width ensures, that the widget will never be bigger than than that size. It can't be stretched to be bigger.
natural_width
Type: uint32
Default: 0
Natural width specifies the width of the element tries to have, but it can still be squashed/stretched to have a smaller or bigger size.
height
Type: uint32
Sets minimal_height
, maximal_height
and natural_height
.
minimal_height
Type: uint32
Default: 0
Minimal height ensures, that the widget will never be smaller than than that size. It can't be squashed to be smaller.
maximal_height
Type: uint32
Default: 0
Maximal height ensures, that the widget will never be bigger than than that size. It can't be stretched to be bigger.
natural_height
Type: uint32
Default: 0
Natural height specifies the height of the element tries to have, but it can still be squashed/stretched to have a smaller or bigger size.
padding
Type: int16
Sets top_padding
, right_padding
, bottom_padding
and left_padding
.
top_padding
Type: int16
Default: 0
right_padding
Type: int16
Default: 0
bottom_padding
Type: int16
Default: 0
left_padding
Type: int16
Default: 0
margin
Type: int16
Sets top_margin
, right_margin
, bottom_margin
and left_margin
.
top_margin
Type: int16
Default: 0
right_margin
Type: int16
Default: 0
bottom_margin
Type: int16
Default: 0
left_margin
Type: int16
Default: 0
effect
Type: string
Name of a custom GUI effect. Custom GUI effects are hardcoded in the game's C++ code. List of available effects: "compilatron-hologram"
effect_opacity
Type: float
Default: 1.0
tooltip
Type: LocalisedString
Example
Example of adding a custom style via Prototype/GuiStyle, in this case a Types/FrameStyleSpecification:
data.raw["gui-style"]["default"]["custom_style_for_a_frame"] =
{
type = "frame_style",
parent = "frame",
use_header_filler = false,
drag_by_title = false
}