OpenTTD: src/company_gui.cpp File Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Functions | Variables
company_gui.cpp File Reference

Company related GUIs. More...

`#include "stdafx.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 "engine_base.h"`
`#include "window_func.h"`
`#include "road_func.h"`
`#include "water.h"`
`#include "station_func.h"`
`#include "zoom_func.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

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

## Variables
static const uint | EXP_LINESPACE = 2
| Company GUI constants.
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.
static ExpensesType | _expenses_list_2 []
| Grouped list of expenses.
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 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.
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, NULL, 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

void DirtyCompanyInfrastructureWindows | ( | CompanyID | company | ) |

Redraw all windows with company infrastructure counts.

Parameters

  company | The company to redraw the windows of.

Definition at line 2473 of file company_gui.cpp.

References SetWindowDirty(), WC_COMPANY, and WC_COMPANY_INFRASTRUCTURE.

Referenced by BuildObject(), CmdBuildAirport(), CmdBuildBridge(), CmdBuildCanal(), CmdBuildDock(), CmdBuildRailStation(), CmdBuildRailWaypoint(), CmdBuildRoad(), CmdBuildRoadDepot(), CmdBuildRoadStop(), CmdBuildShipDepot(), CmdBuildSingleRail(), CmdBuildSingleSignal(), CmdBuildTrainDepot(), CmdBuildTunnel(), CmdConvertRail(), CmdRemoveRoadStop(), CmdRemoveSingleRail(), CmdRemoveSingleSignal(), DoBuildLock(), DoClearBridge(), DoClearTunnel(), RemoveAirport(), RemoveDock(), RemoveFromRailBaseStation(), RemoveLock(), RemoveRoad(), and RemoveRoadStop().

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

Open the simple/advanced company manager face selection window.

Parameters

  parent | the parent company window
  adv | simple or advanced face selection window
  top | previous top position of the window
  left | previous left position of the window

Definition at line 1516 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().

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 135 of file company_gui.cpp.

References _settings_client, DrawString(), ExpensesList::et, EXP_BLOCKSPACE, EXP_LINESPACE, GUISettings::expenses_layout, FONT_HEIGHT_NORMAL, ClientSettings::gui, INVALID_EXPENSES, ExpensesList::length, SA_HOR_CENTER, and SA_RIGHT.

Referenced by CompanyFinancesWindow::DrawWidget().

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 870 of file company_gui.cpp.

References _cmf_info, DrawSprite(), GE_WM, GENDER_FEMALE, GetCompanyManagerFaceBits(), GetCompanyManagerFaceSprite(), and HasBit().

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

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 165 of file company_gui.cpp.

References DrawString(), SA_RIGHT, and SetDParam().

Referenced by 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 183 of file company_gui.cpp.

References _settings_client, DrawPrice(), DrawString(), ExpensesList::et, EXP_BLOCKSPACE, EXP_LINESPACE, GUISettings::expenses_layout, FONT_HEIGHT_NORMAL, GfxFillRect(), ClientSettings::gui, INVALID_EXPENSES, ExpensesList::length, PC_BLACK, SA_RIGHT, and SetDParam().

Referenced by CompanyFinancesWindow::DrawWidget().

void ShowBuyCompanyDialog | ( | CompanyID | company | ) |

Show the query to buy another company.

Parameters

  company | The company to buy.

Definition at line 2574 of file company_gui.cpp.

Referenced by HandleBankruptcyTakeover().

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 2462 of file company_gui.cpp.

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

Referenced by MenuClickCompany(), and MainToolbarWindow::OnHotkey().

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 482 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(), StatusBarWindow::OnClick(), and MainToolbarWindow::OnHotkey().

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

Open the infrastructure window of a company.

Parameters

  company | Company to show infrastructure of.

Definition at line 1878 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(), and CompanyWindow::OnClick().

## Variable Documentation

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 491 of file company_gui.cpp.

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 1987 of file company_gui.cpp.

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 53 of file company_gui.cpp.

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 70 of file company_gui.cpp.

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 125 of file company_gui.cpp.

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 511 of file company_gui.cpp.

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 2544 of file company_gui.cpp.

const NWidgetPart _nested_select_company_livery_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_SCL_CAPTION), SetDataTip(STR_LIVERY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_SCL_CLASS_GENERAL), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_COMPANY_GENERAL, STR_LIVERY_GENERAL_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_SCL_CLASS_RAIL), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_TRAINLIST, STR_LIVERY_TRAIN_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_SCL_CLASS_ROAD), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_TRUCKLIST, STR_LIVERY_ROAD_VEHICLE_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_SCL_CLASS_SHIP), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_SHIPLIST, STR_LIVERY_SHIP_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_SCL_CLASS_AIRCRAFT), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_AIRPLANESLIST, STR_LIVERY_AIRCRAFT_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(90, 22), SetFill(1, 1), EndContainer(),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PANEL, COLOUR_GREY, WID_SCL_SPACER_DROPDOWN), SetMinimalSize(150, 12), SetFill(1, 1), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_SCL_PRI_COL_DROPDOWN), SetMinimalSize(125, 12), SetFill(0, 1), SetDataTip(STR_BLACK_STRING, STR_LIVERY_PRIMARY_TOOLTIP),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_SCL_SEC_COL_DROPDOWN), SetMinimalSize(125, 12), SetFill(0, 1),
SetDataTip(STR_BLACK_STRING, STR_LIVERY_SECONDARY_TOOLTIP),
EndContainer(),
NWidget(WWT_MATRIX, COLOUR_GREY, WID_SCL_MATRIX), SetMinimalSize(275, 15), SetFill(1, 0), SetMatrixDataTip(1, 1, STR_LIVERY_PANEL_TOOLTIP),
}

Definition at line 834 of file company_gui.cpp.

const uint EXP_LINESPACE = 2
| static

Company GUI constants.

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

Definition at line 46 of file company_gui.cpp.

Referenced by DrawCategories(), CompanyInfrastructureWindow::DrawWidget(), DrawYearColumn(), and CompanyInfrastructureWindow::UpdateWidgetSize().