OpenTTD Source: NWidgetPIPContainer Class Reference

OpenTTD Source 15.0-RC2

Public Member Functions | Protected Attributes
NWidgetPIPContainer Class Reference

Container with pre/inter/post child space. More...

`#include <widget_type.h>`

Inheritance diagram for NWidgetPIPContainer:

## Public Member Functions
| NWidgetPIPContainer (WidgetType tp, NWidContainerFlags flags={}, WidgetID index=INVALID_WIDGET)
void | AdjustPaddingForZoom () override
void | SetPIP (uint8_t pip_pre, uint8_t pip_inter, uint8_t pip_post)
| Set additional pre/inter/post space for the container.
void | SetPIPRatio (uint8_t pip_ratio_pre, uint8_t pip_ratio_inter, uint8_t pip_ratio_post)
| Set additional pre/inter/post space for the container.
Public Member Functions inherited from NWidgetContainer
| NWidgetContainer (WidgetType tp, WidgetID index=INVALID_WIDGET)
void | Add (std::unique_ptr< NWidgetBase > &&wid)
| Append widget wid to container.
void | FillWidgetLookup (WidgetLookup &widget_lookup) override
| Fill the Window::widget_lookup with pointers to nested widgets in the tree.
void | Draw (const Window *w) override
| Draw the widgets of the tree.
NWidgetCore * | GetWidgetFromPos (int x, int y) override
| Retrieve a widget by its position.
bool | IsEmpty ()
| Return whether the container is empty.
NWidgetBase * | GetWidgetOfType (WidgetType tp) override
| Retrieve a widget by its type.
void | UnfocusWidgets (Window *parent_window)
| Unfocuses the focused widget of the window, if the focused widget is contained inside the container.
void | Clear (Window *parent_window)
| Clears the container, deleting all widgets that were contained.
Public Member Functions inherited from NWidgetBase
| NWidgetBase (WidgetType tp, WidgetID index=INVALID_WIDGET)
void | ApplyAspectRatio ()
virtual void | SetupSmallestSize (Window *w)=0
| Compute smallest size needed by the widget.
virtual void | AssignSizePosition (SizingType sizing, int x, int y, uint given_width, uint given_height, bool rtl)=0
| Assign size and position to the widget.
template<class NWID >
NWID * | GetParentWidget ()
| Get parent widget of type NWID.
template<class NWID >
const NWID * | GetParentWidget () const
| Get parent widget of type NWID.
WidgetID | GetIndex () const
virtual bool | IsHighlighted () const
virtual TextColour | GetHighlightColour () const
virtual void | SetHighlighted (TextColour highlight_colour)
void | SetPadding (uint8_t top, uint8_t right, uint8_t bottom, uint8_t left)
| Set additional space (padding) around the widget.
void | SetPadding (const RectPadding &padding)
| Set additional space (padding) around the widget.
uint | GetHorizontalStepSize (SizingType sizing) const
| Get the horizontal sizing step.
uint | GetVerticalStepSize (SizingType sizing) const
| Get the vertical sizing step.
virtual void | SetDirty (const Window *w) const
| Mark the widget as 'dirty' (in need of repaint).
Rect | GetCurrentRect () const

## Protected Attributes
NWidContainerFlags | flags {}
| Flags of the container.
uint8_t | pip_pre = 0
| Amount of space before first widget.
uint8_t | pip_inter = 0
| Amount of space between widgets.
uint8_t | pip_post = 0
| Amount of space after last widget.
uint8_t | pip_ratio_pre = 0
| Ratio of remaining space before first widget.
uint8_t | pip_ratio_inter = 0
| Ratio of remaining space between widgets.
uint8_t | pip_ratio_post = 0
| Ratio of remaining space after last widget.
uint8_t | uz_pip_pre = 0
| Unscaled space before first widget.
uint8_t | uz_pip_inter = 0
| Unscaled space between widgets.
uint8_t | uz_pip_post = 0
| Unscaled space after last widget.
uint8_t | gaps = 0
| Number of gaps between widgets.
Protected Attributes inherited from NWidgetContainer
std::vector< std::unique_ptr< NWidgetBase > > | children {}
| Child widgets in container.
Protected Attributes inherited from NWidgetBase
const WidgetID | index = INVALID_WIDGET
| Index of the nested widget (`INVALID_WIDGET` means 'not used').

## Additional Inherited Members
Data Fields inherited from NWidgetBase
WidgetType | type {}
| Type of the widget / nested widget.
uint | fill_x = 0
| Horizontal fill stepsize (from initial size, `0` means not resizable).
uint | fill_y = 0
| Vertical fill stepsize (from initial size, `0` means not resizable).
uint | resize_x = 0
| Horizontal resize step (`0` means not resizable).
uint | resize_y = 0
| Vertical resize step (`0` means not resizable).
uint | smallest_x = 0
| Smallest horizontal size of the widget in a filled window.
uint | smallest_y = 0
| Smallest vertical size of the widget in a filled window.
uint | current_x = 0
| Current horizontal size (after resizing).
uint | current_y = 0
| Current vertical size (after resizing).
float | aspect_ratio = 0
| Desired aspect ratio of widget.
AspectFlags | aspect_flags = AspectFlag::ResizeX
| Which dimensions can be resized.
int | pos_x = 0
| Horizontal position of top-left corner of the widget in the window.
int | pos_y = 0
| Vertical position of top-left corner of the widget in the window.
RectPadding | padding {}
| Padding added to the widget. Managed by parent container widget. (parent container may swap left and right for RTL)
RectPadding | uz_padding {}
| Unscaled padding, for resize calculation.
NWidgetBase * | parent = nullptr
| Parent widget of this widget, automatically filled in when added to container.
Protected Member Functions inherited from NWidgetBase
void | StoreSizePosition (SizingType sizing, int x, int y, uint given_width, uint given_height)
| Store size and position.

## Detailed Description

Container with pre/inter/post child space.

Definition at line 547 of file widget_type.h.

## Constructor & Destructor Documentation

## ◆ NWidgetPIPContainer()

NWidgetPIPContainer::NWidgetPIPContainer | ( | WidgetType | tp,
|  | NWidContainerFlags | flags = `{}`,
|  | WidgetID | index = `INVALID_WIDGET`
| ) |  |
| inline

Definition at line 549 of file widget_type.h.

## Member Function Documentation

## ◆ AdjustPaddingForZoom()

void NWidgetPIPContainer::AdjustPaddingForZoom | ( |  | ) |
| overridevirtual

Reimplemented from NWidgetContainer.

Definition at line 1491 of file widget.cpp.

## ◆ SetPIP()

void NWidgetPIPContainer::SetPIP | ( | uint8_t | pip_pre,
|  | uint8_t | pip_inter,
|  | uint8_t | pip_post
| ) |  |

Set additional pre/inter/post space for the container.

Parameters

  pip_pre | Additional space in front of the first child widget (above for the vertical container, at the left for the horizontal container).
  pip_inter | Additional space between two child widgets.
  pip_post | Additional space after the last child widget (below for the vertical container, at the right for the horizontal container).

Definition at line 1508 of file widget.cpp.

References pip_inter, pip_post, pip_pre, ScaleGUITrad(), uz_pip_inter, uz_pip_post, and uz_pip_pre.

Referenced by ApplyNWidgetPartAttribute().

## ◆ SetPIPRatio()

void NWidgetPIPContainer::SetPIPRatio | ( | uint8_t | pip_ratio_pre,
|  | uint8_t | pip_ratio_inter,
|  | uint8_t | pip_ratio_post
| ) |  |

Set additional pre/inter/post space for the container.

Parameters

  pip_ratio_pre | Ratio of additional space in front of the first child widget (above for the vertical container, at the left for the horizontal container).
  pip_ratio_inter | Ratio of additional space between two child widgets.
  pip_ratio_post | Ratio of additional space after the last child widget (below for the vertical container, at the right for the horizontal container).

Definition at line 1528 of file widget.cpp.

References pip_ratio_inter, pip_ratio_post, and pip_ratio_pre.

Referenced by ApplyNWidgetPartAttribute().

## Field Documentation

## ◆ flags

NWidContainerFlags NWidgetPIPContainer::flags {}
| protected

Flags of the container.

Definition at line 556 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), NWidgetHorizontal::SetupSmallestSize(), and NWidgetVertical::SetupSmallestSize().

## ◆ gaps

uint8_t NWidgetPIPContainer::gaps = 0
| protected

Number of gaps between widgets.

Definition at line 568 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), NWidgetHorizontal::SetupSmallestSize(), and NWidgetVertical::SetupSmallestSize().

## ◆ pip_inter

uint8_t NWidgetPIPContainer::pip_inter = 0
| protected

Amount of space between widgets.

Definition at line 558 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), NWidgetMatrix::AssignSizePosition(), NWidgetMatrix::GetWidgetFromPos(), NWidgetMatrix::SetClicked(), NWidgetMatrix::SetCount(), SetPIP(), NWidgetHorizontal::SetupSmallestSize(), NWidgetVertical::SetupSmallestSize(), and NWidgetMatrix::SetupSmallestSize().

## ◆ pip_post

uint8_t NWidgetPIPContainer::pip_post = 0
| protected

Amount of space after last widget.

Definition at line 559 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), NWidgetMatrix::AssignSizePosition(), NWidgetMatrix::Draw(), NWidgetMatrix::GetWidgetFromPos(), NWidgetMatrix::SetCount(), SetPIP(), NWidgetHorizontal::SetupSmallestSize(), NWidgetVertical::SetupSmallestSize(), and NWidgetMatrix::SetupSmallestSize().

## ◆ pip_pre

uint8_t NWidgetPIPContainer::pip_pre = 0
| protected

Amount of space before first widget.

Definition at line 557 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), NWidgetMatrix::AssignSizePosition(), NWidgetMatrix::Draw(), NWidgetMatrix::GetWidgetFromPos(), NWidgetMatrix::SetCount(), SetPIP(), NWidgetHorizontal::SetupSmallestSize(), NWidgetVertical::SetupSmallestSize(), and NWidgetMatrix::SetupSmallestSize().

## ◆ pip_ratio_inter

uint8_t NWidgetPIPContainer::pip_ratio_inter = 0
| protected

Ratio of remaining space between widgets.

Definition at line 561 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), SetPIPRatio(), NWidgetHorizontal::SetupSmallestSize(), and NWidgetVertical::SetupSmallestSize().

## ◆ pip_ratio_post

uint8_t NWidgetPIPContainer::pip_ratio_post = 0
| protected

Ratio of remaining space after last widget.

Definition at line 562 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), SetPIPRatio(), NWidgetHorizontal::SetupSmallestSize(), and NWidgetVertical::SetupSmallestSize().

## ◆ pip_ratio_pre

uint8_t NWidgetPIPContainer::pip_ratio_pre = 0
| protected

Ratio of remaining space before first widget.

Definition at line 560 of file widget_type.h.

Referenced by NWidgetHorizontal::AssignSizePosition(), NWidgetVertical::AssignSizePosition(), SetPIPRatio(), NWidgetHorizontal::SetupSmallestSize(), and NWidgetVertical::SetupSmallestSize().

## ◆ uz_pip_inter

uint8_t NWidgetPIPContainer::uz_pip_inter = 0
| protected

Unscaled space between widgets.

Definition at line 565 of file widget_type.h.

Referenced by SetPIP().

## ◆ uz_pip_post

uint8_t NWidgetPIPContainer::uz_pip_post = 0
| protected

Unscaled space after last widget.

Definition at line 566 of file widget_type.h.

Referenced by SetPIP().

## ◆ uz_pip_pre

uint8_t NWidgetPIPContainer::uz_pip_pre = 0
| protected

Unscaled space before first widget.

Definition at line 564 of file widget_type.h.

Referenced by SetPIP().

The documentation for this class was generated from the following files:

- src/widget_type.h
- src/widget.cpp