# BuildTreesWindow Class Reference

The build trees window. More...

Inheritance diagram for BuildTreesWindow:

## Public Member Functions
| BuildTreesWindow (const WindowDesc *desc, WindowNumber window_number)
virtual void | UpdateWidgetSize (int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
| Update size and resize step of a widget in the window.
virtual void | OnPaint ()
| The window must be repainted.
virtual void | DrawWidget (const Rect &r, int widget) const
| Draw the contents of a nested widget.
virtual void | OnClick (Point pt, int widget, int click_count)
| A click with the left mouse button has been made on the window.
virtual void | OnPlaceObject (Point pt, TileIndex tile)
| The user clicked some place on the map when a tile highlight mode has been set.
virtual void | OnPlaceDrag (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt)
| The user is dragging over the map when the tile highlight mode has been set.
virtual void | OnPlaceMouseUp (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile)
| The user has dragged over the map when the tile highlight mode has been set.
virtual void | OnInvalidateData (int data=0)
| Some data on this window has become invalid.
virtual void | OnTimeout ()
| Called when this window's timeout has been reached.
virtual void | OnPlaceObjectAbort ()
| The user cancelled a tile highlight mode that has been set.
## Private Attributes
uint16 | base
| Base tree number used for drawing the window.
uint16 | count
| Number of different trees available.
uint | tree_to_plant
| Tree number to plant, `UINT_MAX` for a random tree.

## Detailed Description

The build trees window.

Definition at line 49 of file tree_gui.cpp.

## Member Function Documentation

virtual void BuildTreesWindow::UpdateWidgetSize | ( | int | widget,
|  | Dimension * | size,
|  | const Dimension & | padding,
|  | Dimension * | fill,
|  | Dimension * | resize |
| ) |  |  | `[inline, virtual]`

Update size and resize step of a widget in the window.

After retrieval of the minimal size and the resize-steps of a widget, this function is called to allow further refinement, typically by computing the real maximal size of the content. Afterwards, size is taken to be the minimal size of the widget and resize is taken to contain the resize steps. For the convenience of the callee, padding contains the amount of padding between the content and the edge of the widget. This should be added to the returned size.

Parameters:

  | widget | Widget number.
  | size | Size of the widget.
  | padding | Recommended amount of space between the widget content and the widget edge.
  | fill | Fill step of the widget.
  | resize | Resize step of the widget.

Reimplemented from Window.

Definition at line 62 of file tree_gui.cpp.

References Dimension::height, and Dimension::width.

virtual void BuildTreesWindow::OnPaint | ( |  | ) | `[inline, virtual]`

The window must be repainted.

Note:
  This method should not change any state, it should only use drawing functions.

Reimplemented from Window.

Definition at line 72 of file tree_gui.cpp.

References Window::DrawWidgets(), and OnInvalidateData().

virtual void BuildTreesWindow::DrawWidget | ( | const Rect & | r,
|  | int | widget |
| ) |  |  | const`[inline, virtual]`

Draw the contents of a nested widget.

Parameters:

  | r | Rectangle occupied by the widget.
  | widget | Number of the widget to draw.

Note:
  This method may not change any state, it may only use drawing functions.

Reimplemented from Window.

Definition at line 78 of file tree_gui.cpp.

References base, Rect::bottom, count, DrawSprite(), Rect::left, and Rect::right.

virtual void BuildTreesWindow::OnClick | ( | Point | pt,
|  | int | widget,
|  | int | click_count |
| ) |  |  | `[inline, virtual]`

A click with the left mouse button has been made on the window.

Parameters:

  | pt | the point inside the window that has been clicked.
  | widget | the clicked widget.
  | click_count | Number of fast consecutive clicks at same position

Reimplemented from Window.

Definition at line 99 of file tree_gui.cpp.

References base, count, Window::flags4, HandlePlacePushButton(), HT_RECT, Window::LowerWidget(), MarkWholeScreenDirty(), PlaceTreesRandomly(), tree_to_plant, and WF_TIMEOUT_BEGIN.

virtual void BuildTreesWindow::OnPlaceObject | ( | Point | pt,
|  | TileIndex | tile |
| ) |  |  | `[inline, virtual]`

The user clicked some place on the map when a tile highlight mode has been set.

Parameters:

  | pt | the exact point on the map that has been clicked.
  | tile | the tile on the map that has been clicked.

Reimplemented from Window.

Definition at line 128 of file tree_gui.cpp.

References DDSP_PLANT_TREES, VPM_X_AND_Y_LIMITED, and VpStartPlaceSizing().

virtual void BuildTreesWindow::OnPlaceDrag | ( | ViewportPlaceMethod | select_method,
|  | ViewportDragDropSelectionProcess | select_proc,
|  | Point | pt |
| ) |  |  | `[inline, virtual]`

The user is dragging over the map when the tile highlight mode has been set.

Parameters:

  | select_method | the method of selection (allowed directions)
  | select_proc | what will be created when the drag is over.
  | pt | the exact point on the map where the mouse is.

Reimplemented from Window.

Definition at line 134 of file tree_gui.cpp.

References VpSelectTilesWithMethod(), Point::x, and Point::y.

virtual void BuildTreesWindow::OnPlaceMouseUp | ( | ViewportPlaceMethod | select_method,
|  | ViewportDragDropSelectionProcess | select_proc,
|  | Point | pt,
|  | TileIndex | start_tile,
|  | TileIndex | end_tile |
| ) |  |  | `[inline, virtual]`

The user has dragged over the map when the tile highlight mode has been set.

Parameters:

  | select_method | the method of selection (allowed directions)
  | select_proc | what should be created.
  | pt | the exact point on the map where the mouse was released.
  | start_tile | the begin tile of the drag.
  | end_tile | the end tile of the drag.

Reimplemented from Window.

Definition at line 139 of file tree_gui.cpp.

References CMD_MSG, CMD_PLANT_TREE, DDSP_PLANT_TREES, DoCommandP(), tree_to_plant, and Point::x.

virtual void BuildTreesWindow::OnInvalidateData | ( | int | data = `0` | ) | `[inline, virtual]`

Some data on this window has become invalid.

Parameters:

  | data | information about the changed data.

Reimplemented from Window.

Definition at line 147 of file tree_gui.cpp.

References _settings_game, base, count, GameSettings::game_creation, and GameCreationSettings::landscape.

Referenced by OnPaint().

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

- src/tree_gui.cpp