OpenTTD Source: src/company_gui.cpp File Reference

OpenTTD Source 12.0-beta1

Data Structures | Typedefs | Functions | Variables
company_gui.cpp File Reference
`#include "stdafx.h"`
`#include "currency.h"`
`#include "error.h"`
`#include "gui.h"`
`#include "window_gui.h"`
`#include "textbuf_gui.h"`
`#include "viewport_func.h"`
`#include "company_func.h"`
`#include "command_func.h"`
`#include "network/network.h"`
`#include "network/network_gui.h"`
`#include "network/network_func.h"`
`#include "newgrf.h"`
`#include "company_manager_face.h"`
`#include "strings_func.h"`
`#include "date_func.h"`
`#include "widgets/dropdown_type.h"`
`#include "tilehighlight_func.h"`
`#include "company_base.h"`
`#include "core/geometry_func.hpp"`
`#include "object_type.h"`
`#include "rail.h"`
`#include "road.h"`
`#include "engine_base.h"`
`#include "window_func.h"`
`#include "road_func.h"`
`#include "water.h"`
`#include "station_func.h"`
`#include "zoom_func.h"`
`#include "sortlist_type.h"`
`#include "widgets/company_widget.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | ExpensesList
| Expense list container. More...
struct | CompanyFinancesWindow
| Window class displaying the company finances. More...
class | DropDownListColourItem
struct | SelectCompanyLiveryWindow
| Company livery colour scheme window. More...
class | SelectCompanyManagerFaceWindow
| Management class for customizing the face of the company manager. More...
struct | CompanyInfrastructureWindow
| Window with detailed information about the company's infrastructure. More...
struct | CompanyWindow
| Window with general information about a company. More...
struct | BuyCompanyWindow

## Typedefs
typedef GUIList< const Group * > | GUIGroupList

## Functions
static void | DoSelectCompanyManagerFace (Window *parent)
| Open the simple/advanced company manager face selection window. More...
static void | ShowCompanyInfrastructure (CompanyID company)
| Open the infrastructure window of a company. More...
static void | DrawCategories (const Rect &r)
| Draw the expenses categories. More...
static void | DrawPrice (Money amount, int left, int right, int top)
| Draw an amount of money. More...
static void | DrawYearColumn (const Rect &r, int year, const Money(*tbl)[EXPENSES_END])
| Draw a column with prices. More...
void | ShowCompanyFinances (CompanyID company)
| Open the finances window of a company. More...
void | ShowCompanyLiveryWindow (CompanyID company, GroupID group)
void | DrawCompanyManagerFace (CompanyManagerFace cmf, int colour, int x, int y)
| Draws the face of a company manager's face. More...
int | GetAmountOwnedBy (const Company *c, Owner owner)
void | ShowCompany (CompanyID company)
| Show the window with the overview of the company. More...
void | DirtyCompanyInfrastructureWindows (CompanyID company)
| Redraw all windows with company infrastructure counts. More...
void | ShowBuyCompanyDialog (CompanyID company)
| Show the query to buy another company. More...

## Variables
static const uint | EXP_LINESPACE = 2
| Company GUI constants. More...
static const uint | EXP_BLOCKSPACE = 10
| Amount of vertical space between two blocks of numbers.
static ExpensesType | _expenses_list_1 []
| Standard unsorted list of expenses. More...
static ExpensesType | _expenses_list_2 []
| Grouped list of expenses. More...
static const ExpensesList | _expenses_list_types []
static const NWidgetPart | _nested_company_finances_widgets []
static WindowDesc | _company_finances_desc (WDP_AUTO, "company_finances", 0, 0, WC_FINANCES, WC_NONE, 0, _nested_company_finances_widgets, lengthof(_nested_company_finances_widgets))
static const StringID | _colour_dropdown []
static const LiveryClass | _livery_class [LS_END]
static const int | LEVEL_WIDTH = 10
| Indenting width of a sub-group in pixels.
static const NWidgetPart | _nested_select_company_livery_widgets []
static WindowDesc | _select_company_livery_desc (WDP_AUTO, "company_livery", 0, 0, WC_COMPANY_COLOUR, WC_NONE, 0, _nested_select_company_livery_widgets, lengthof(_nested_select_company_livery_widgets))
static const NWidgetPart | _nested_select_company_manager_face_widgets []
| Nested widget description for the company manager face selection dialog.
static WindowDesc | _select_company_manager_face_desc (WDP_AUTO, "company_face", 0, 0, WC_COMPANY_MANAGER_FACE, WC_NONE, WDF_CONSTRUCTION, _nested_select_company_manager_face_widgets, lengthof(_nested_select_company_manager_face_widgets))
| Company manager face selection window description.
static const NWidgetPart | _nested_company_infrastructure_widgets []
static WindowDesc | _company_infrastructure_desc (WDP_AUTO, "company_infrastructure", 0, 0, WC_COMPANY_INFRASTRUCTURE, WC_NONE, 0, _nested_company_infrastructure_widgets, lengthof(_nested_company_infrastructure_widgets))
static const NWidgetPart | _nested_company_widgets []
static const StringID | _company_view_vehicle_count_strings []
| Strings for the company vehicle counts. More...
static WindowDesc | _company_desc (WDP_AUTO, "company", 0, 0, WC_COMPANY, WC_NONE, 0, _nested_company_widgets, lengthof(_nested_company_widgets))
static const NWidgetPart | _nested_buy_company_widgets []
static WindowDesc | _buy_company_desc (WDP_AUTO, nullptr, 0, 0, WC_BUY_COMPANY, WC_NONE, WDF_CONSTRUCTION, _nested_buy_company_widgets, lengthof(_nested_buy_company_widgets))

## Detailed Description

Company related GUIs.

Definition in file company_gui.cpp.

## Function Documentation

## ◆ DirtyCompanyInfrastructureWindows()

void DirtyCompanyInfrastructureWindows | ( | CompanyID | company | ) |

Redraw all windows with company infrastructure counts.

Parameters

  company | The company to redraw the windows of.

Definition at line 2709 of file company_gui.cpp.

References SetWindowDirty(), WC_COMPANY, and WC_COMPANY_INFRASTRUCTURE.

Referenced by Station::AfterStationTileSetChange(), CmdConvertRail(), RemoveLock(), and UpdateCompanyRoadInfrastructure().

## ◆ DoSelectCompanyManagerFace()

static void DoSelectCompanyManagerFace | ( | Window * | parent | ) |
| static

Open the simple/advanced company manager face selection window.

Parameters

  parent | the parent company window

Definition at line 1709 of file company_gui.cpp.

References _select_company_manager_face_desc, BringWindowToFrontById(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), WC_COMPANY_MANAGER_FACE, and Window::window_number.

Referenced by CompanyWindow::OnClick().

## ◆ DrawCategories()

static void DrawCategories | ( | const Rect & | r | ) |
| static

Draw the expenses categories.

Parameters

  r | Available space for drawing.

Note
  The environment must provide padding at the left and right of r.

Definition at line 136 of file company_gui.cpp.

Referenced by CompanyFinancesWindow::DrawWidget().

## ◆ DrawCompanyManagerFace()

void DrawCompanyManagerFace | ( | CompanyManagerFace | cmf,
|  | int | colour,
|  | int | x,
|  | int | y
| ) |  |

Draws the face of a company manager's face.

Parameters

  cmf | the company manager's face
  colour | the (background) colour of the gradient
  x | x-position to draw the face
  y | y-position to draw the face

Definition at line 1110 of file company_gui.cpp.

Referenced by ErrmsgWindow::DrawWidget(), SelectCompanyManagerFaceWindow::DrawWidget(), CompanyWindow::DrawWidget(), and BuyCompanyWindow::DrawWidget().

## ◆ DrawPrice()

static void DrawPrice | ( | Money | amount,
|  | int | left,
|  | int | right,
|  | int | top
| ) |  |
| static

Draw an amount of money.

Parameters

  amount | Amount of money to draw,
  left | Left coordinate of the space to draw in.
  right | Right coordinate of the space to draw in.
  top | Top coordinate of the space to draw in.

Definition at line 166 of file company_gui.cpp.

References DrawString(), and SetDParam().

## ◆ DrawYearColumn()

static void DrawYearColumn | ( | const Rect & | r,
|  | int | year,
|  | const Money(*) | tbl[EXPENSES_END]
| ) |  |
| static

Draw a column with prices.

Parameters

  r | Available space for drawing.
  year | Year being drawn.
  tbl | Pointer to table of amounts for year.

Note
  The environment must provide padding at the left and right of r.

Definition at line 184 of file company_gui.cpp.

Referenced by CompanyFinancesWindow::DrawWidget().

## ◆ ShowBuyCompanyDialog()

void ShowBuyCompanyDialog | ( | CompanyID | company | ) |

Show the query to buy another company.

Parameters

  company | The company to buy.

Definition at line 2810 of file company_gui.cpp.

Referenced by HandleBankruptcyTakeover().

## ◆ ShowCompany()

void ShowCompany | ( | CompanyID | company | ) |

Show the window with the overview of the company.

Parameters

  company | The company to show the window for.

Definition at line 2698 of file company_gui.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID().

Referenced by GoalListWindow::HandleClick().

## ◆ ShowCompanyFinances()

void ShowCompanyFinances | ( | CompanyID | company | ) |

Open the finances window of a company.

Parameters

  company | Company to show finances of.

Precondition
  is company a valid company.

Definition at line 477 of file company_gui.cpp.

References BringWindowToFrontById(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), and WC_FINANCES.

Referenced by CompaniesYearlyLoop(), MenuClickFinances(), and StatusBarWindow::OnClick().

## ◆ ShowCompanyInfrastructure()

static void ShowCompanyInfrastructure | ( | CompanyID | company | ) |
| static

Open the infrastructure window of a company.

Parameters

  company | Company to show infrastructure of.

Definition at line 2085 of file company_gui.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID().

Referenced by CompanyFinancesWindow::OnClick().

## Variable Documentation

## ◆ _colour_dropdown

const StringID _colour_dropdown[]
| static

Initial value:
= {
STR_COLOUR_DARK_BLUE,
STR_COLOUR_PALE_GREEN,
STR_COLOUR_PINK,
STR_COLOUR_YELLOW,
STR_COLOUR_RED,
STR_COLOUR_LIGHT_BLUE,
STR_COLOUR_GREEN,
STR_COLOUR_DARK_GREEN,
STR_COLOUR_BLUE,
STR_COLOUR_CREAM,
STR_COLOUR_MAUVE,
STR_COLOUR_PURPLE,
STR_COLOUR_ORANGE,
STR_COLOUR_BROWN,
STR_COLOUR_GREY,
STR_COLOUR_WHITE,
}

Definition at line 486 of file company_gui.cpp.

## ◆ _company_view_vehicle_count_strings

const StringID _company_view_vehicle_count_strings[]
| static

Initial value:
= {
STR_COMPANY_VIEW_TRAINS, STR_COMPANY_VIEW_ROAD_VEHICLES, STR_COMPANY_VIEW_SHIPS, STR_COMPANY_VIEW_AIRCRAFT
}

Strings for the company vehicle counts.

Definition at line 2200 of file company_gui.cpp.

## ◆ _expenses_list_1

ExpensesType _expenses_list_1[]
| static

Initial value:
= {
EXPENSES_CONSTRUCTION,
EXPENSES_NEW_VEHICLES,
EXPENSES_TRAIN_RUN,
EXPENSES_ROADVEH_RUN,
EXPENSES_AIRCRAFT_RUN,
EXPENSES_SHIP_RUN,
EXPENSES_PROPERTY,
EXPENSES_TRAIN_INC,
EXPENSES_ROADVEH_INC,
EXPENSES_AIRCRAFT_INC,
EXPENSES_SHIP_INC,
EXPENSES_LOAN_INT,
EXPENSES_OTHER,
}

Standard unsorted list of expenses.

Definition at line 54 of file company_gui.cpp.

## ◆ _expenses_list_2

ExpensesType _expenses_list_2[]
| static

Initial value:
= {
EXPENSES_TRAIN_INC,
EXPENSES_ROADVEH_INC,
EXPENSES_AIRCRAFT_INC,
EXPENSES_SHIP_INC,
INVALID_EXPENSES,
EXPENSES_TRAIN_RUN,
EXPENSES_ROADVEH_RUN,
EXPENSES_AIRCRAFT_RUN,
EXPENSES_SHIP_RUN,
EXPENSES_PROPERTY,
EXPENSES_LOAN_INT,
INVALID_EXPENSES,
EXPENSES_CONSTRUCTION,
EXPENSES_NEW_VEHICLES,
EXPENSES_OTHER,
INVALID_EXPENSES,
}

Grouped list of expenses.

Definition at line 71 of file company_gui.cpp.

## ◆ _expenses_list_types

const ExpensesList _expenses_list_types[]
| static

Initial value:
= {
ExpensesList(_expenses_list_1, lengthof(_expenses_list_1), 0),
ExpensesList(_expenses_list_2, lengthof(_expenses_list_2), 3),
}

Definition at line 126 of file company_gui.cpp.

## ◆ _livery_class

const LiveryClass _livery_class[LS_END]
| static

Initial value:
= {
LC_OTHER,
LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL,
LC_ROAD, LC_ROAD,
LC_SHIP, LC_SHIP,
LC_AIRCRAFT, LC_AIRCRAFT, LC_AIRCRAFT,
LC_ROAD, LC_ROAD,
}

Definition at line 506 of file company_gui.cpp.

## ◆ _nested_buy_company_widgets

const NWidgetPart _nested_buy_company_widgets[]
| static

Initial value:
= {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE),
NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE, WID_BC_CAPTION), SetDataTip(STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE),
NWidget(NWID_VERTICAL), SetPIP(8, 8, 8),
NWidget(NWID_HORIZONTAL), SetPIP(8, 10, 8),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_BC_FACE), SetFill(0, 1),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_BC_QUESTION), SetMinimalSize(240, 0), SetFill(1, 1),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(100, 10, 100),
NWidget(WWT_TEXTBTN, COLOUR_LIGHT_BLUE, WID_BC_NO), SetMinimalSize(60, 12), SetDataTip(STR_QUIT_NO, STR_NULL), SetFill(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_LIGHT_BLUE, WID_BC_YES), SetMinimalSize(60, 12), SetDataTip(STR_QUIT_YES, STR_NULL), SetFill(1, 0),
EndContainer(),
EndContainer(),
EndContainer(),
}

Definition at line 2780 of file company_gui.cpp.

## ◆ EXP_LINESPACE

const uint EXP_LINESPACE = 2
| static

Company GUI constants.

Amount of vertical space for a horizontal (sub-)total line.

Definition at line 47 of file company_gui.cpp.

EXPENSES_ROADVEH_RUN
@ EXPENSES_ROADVEH_RUN
Running costs road vehicles.
Definition: economy_type.h:161
INVALID_EXPENSES
@ INVALID_EXPENSES
Invalid expense type.
Definition: economy_type.h:172
_expenses_list_2
static ExpensesType _expenses_list_2[]
Grouped list of expenses.
Definition: company_gui.cpp:71
EXPENSES_OTHER
@ EXPENSES_OTHER
Other expenses.
Definition: economy_type.h:170
WWT_CAPTION
@ WWT_CAPTION
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:59
NWID_HORIZONTAL
@ NWID_HORIZONTAL
Horizontal container.
Definition: widget_type.h:73
EXPENSES_AIRCRAFT_RUN
@ EXPENSES_AIRCRAFT_RUN
Running costs aircraft.
Definition: economy_type.h:162
WWT_EMPTY
@ WWT_EMPTY
Empty widget, place holder to reserve space in widget array.
Definition: widget_type.h:46
SetDataTip
static NWidgetPart SetDataTip(uint32 data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1107
ExpensesList
Expense list container.
Definition: company_gui.cpp:91
WID_BC_QUESTION
@ WID_BC_QUESTION
Question text.
Definition: company_widget.h:195
NC_EQUALSIZE
@ NC_EQUALSIZE
Value of the NCB_EQUALSIZE flag.
Definition: widget_type.h:463
EXPENSES_CONSTRUCTION
@ EXPENSES_CONSTRUCTION
Construction costs.
Definition: economy_type.h:158
EXPENSES_SHIP_INC
@ EXPENSES_SHIP_INC
Income from ships.
Definition: economy_type.h:168
WID_BC_FACE
@ WID_BC_FACE
Face button.
Definition: company_widget.h:194
EXPENSES_AIRCRAFT_INC
@ EXPENSES_AIRCRAFT_INC
Income from aircraft.
Definition: economy_type.h:167
EXPENSES_LOAN_INT
@ EXPENSES_LOAN_INT
Interest payments over the loan.
Definition: economy_type.h:169
NWID_VERTICAL
@ NWID_VERTICAL
Vertical container.
Definition: widget_type.h:75
WWT_CLOSEBOX
@ WWT_CLOSEBOX
Close box (at top-left of a window)
Definition: widget_type.h:67
EndContainer
static NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME,...
Definition: widget_type.h:1092
NWidget
static NWidgetPart NWidget(WidgetType tp, Colours col, int16 idx=-1)
Widget part function for starting a new 'real' widget.
Definition: widget_type.h:1207
SetMinimalSize
static NWidgetPart SetMinimalSize(int16 x, int16 y)
Widget part function for setting the minimal size.
Definition: widget_type.h:1010
WWT_PANEL
@ WWT_PANEL
Simple depressed panel.
Definition: widget_type.h:48
EXPENSES_PROPERTY
@ EXPENSES_PROPERTY
Property costs.
Definition: economy_type.h:164
EXPENSES_NEW_VEHICLES
@ EXPENSES_NEW_VEHICLES
New vehicles.
Definition: economy_type.h:159
lengthof
#define lengthof(x)
Return the length of an fixed size array.
Definition: stdafx.h:378
EXPENSES_TRAIN_RUN
@ EXPENSES_TRAIN_RUN
Running costs trains.
Definition: economy_type.h:160
SetPIP
static NWidgetPart SetPIP(uint8 pre, uint8 inter, uint8 post)
Widget part function for setting a pre/inter/post spaces.
Definition: widget_type.h:1169
SetFill
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:1076
WID_BC_NO
@ WID_BC_NO
No button.
Definition: company_widget.h:196
EXPENSES_ROADVEH_INC
@ EXPENSES_ROADVEH_INC
Income from road vehicles.
Definition: economy_type.h:166
EXPENSES_SHIP_RUN
@ EXPENSES_SHIP_RUN
Running costs ships.
Definition: economy_type.h:163
WID_BC_CAPTION
@ WID_BC_CAPTION
Caption of window.
Definition: company_widget.h:193
EXPENSES_TRAIN_INC
@ EXPENSES_TRAIN_INC
Income from trains.
Definition: economy_type.h:165
_expenses_list_1
static ExpensesType _expenses_list_1[]
Standard unsorted list of expenses.
Definition: company_gui.cpp:54
WWT_TEXTBTN
@ WWT_TEXTBTN
(Toggle) Button with text
Definition: widget_type.h:53
WID_BC_YES
@ WID_BC_YES
Yes button.
Definition: company_widget.h:197