OpenTTD
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. 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 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 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, 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

◆ DirtyCompanyInfrastructureWindows()

void DirtyCompanyInfrastructureWindows ( CompanyID  company)

Redraw all windows with company infrastructure counts.

Parameters
companyThe 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 CmdBuildRoadDepot(), CmdConvertRail(), and RemoveLock().

◆ DoSelectCompanyManagerFace()

static void DoSelectCompanyManagerFace ( Window parent)
static

Open the simple/advanced company manager face selection window.

Parameters
parentthe parent company window
advsimple or advanced face selection window
topprevious top position of the window
leftprevious left position of the window

Definition at line 1516 of file company_gui.cpp.

References 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
rAvailable 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.

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
cmfthe company manager's face
colourthe (background) colour of the gradient
xx-position to draw the face
yy-position to draw the face

Definition at line 870 of file company_gui.cpp.

Referenced by ErrmsgWindow::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
amountAmount of money to draw,
leftLeft coordinate of the space to draw in.
rightRight coordinate of the space to draw in.
topTop coordinate of the space to draw in.

Definition at line 165 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
rAvailable space for drawing.
yearYear being drawn.
tblPointer 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.

Referenced by CompanyFinancesWindow::DrawWidget().

◆ ShowBuyCompanyDialog()

void ShowBuyCompanyDialog ( CompanyID  company)

Show the query to buy another company.

Parameters
companyThe company to buy.

Definition at line 2574 of file company_gui.cpp.

◆ ShowCompany()

void ShowCompany ( CompanyID  company)

Show the window with the overview of the company.

Parameters
companyThe 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().

◆ ShowCompanyFinances()

void ShowCompanyFinances ( CompanyID  company)

Open the finances window of a company.

Parameters
companyCompany 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 MenuClickFinances(), and StatusBarWindow::OnClick().

◆ ShowCompanyInfrastructure()

static void ShowCompanyInfrastructure ( CompanyID  company)
static

Open the infrastructure window of a company.

Parameters
companyCompany 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().

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

◆ _expenses_list_1

ExpensesType _expenses_list_1[]
static
Initial value:
= {
}
Running costs trains.
Definition: economy_type.h:153
Income from road vehicles.
Definition: economy_type.h:159
Running costs ships.
Definition: economy_type.h:156
Income from aircrafts.
Definition: economy_type.h:160
Construction costs.
Definition: economy_type.h:151
Running costs road vehicles.
Definition: economy_type.h:154
Property costs.
Definition: economy_type.h:157
Running costs aircrafts.
Definition: economy_type.h:155
Income from trains.
Definition: economy_type.h:158
New vehicles.
Definition: economy_type.h:152
Income from ships.
Definition: economy_type.h:161
Other expenses.
Definition: economy_type.h:163
Interest payments over the loan.
Definition: economy_type.h:162

Standard unsorted list of expenses.

Definition at line 53 of file company_gui.cpp.

◆ _expenses_list_2

ExpensesType _expenses_list_2[]
static
Initial value:

Grouped list of expenses.

Definition at line 70 of file company_gui.cpp.

◆ _expenses_list_types

const ExpensesList _expenses_list_types[]
static
Initial value:
= {
}
Expense list container.
Definition: company_gui.cpp:90
static ExpensesType _expenses_list_2[]
Grouped list of expenses.
Definition: company_gui.cpp:70
static ExpensesType _expenses_list_1[]
Standard unsorted list of expenses.
Definition: company_gui.cpp:53
#define lengthof(x)
Return the length of an fixed size array.
Definition: depend.cpp:42

Definition at line 125 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 511 of file company_gui.cpp.

◆ _nested_buy_company_widgets

const NWidgetPart _nested_buy_company_widgets[]
static
Initial value:
= {
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),
NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE),
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),
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),
}
Empty widget, place holder to reserve space in widget array.
Definition: widget_type.h:48
Horizontal container.
Definition: widget_type.h:75
Close box (at top-left of a window)
Definition: widget_type.h:69
Caption of window.
No button.
Yes button.
static NWidgetPart SetDataTip(uint32 data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1014
static NWidgetPart SetMinimalSize(int16 x, int16 y)
Widget part function for setting the minimal size.
Definition: widget_type.h:947
Simple depressed panel.
Definition: widget_type.h:50
static NWidgetPart NWidget(WidgetType tp, Colours col, int16 idx=-1)
Widget part function for starting a new &#39;real&#39; widget.
Definition: widget_type.h:1114
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:61
Vertical container.
Definition: widget_type.h:77
static NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME, WWT_INSET, or WWT_PANEL).
Definition: widget_type.h:999
Face button.
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983
Question text.
Value of the NCB_EQUALSIZE flag.
Definition: widget_type.h:429
static NWidgetPart SetPIP(uint8 pre, uint8 inter, uint8 post)
Widget part function for setting a pre/inter/post spaces.
Definition: widget_type.h:1076
(Toggle) Button with text
Definition: widget_type.h:55

Definition at line 2544 of file company_gui.cpp.

◆ _nested_select_company_livery_widgets

const NWidgetPart _nested_select_company_livery_widgets[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_SCL_CAPTION), SetDataTip(STR_LIVERY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
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(),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_SCL_PRI_COL_DROPDOWN), SetMinimalSize(125, 12), SetFill(0, 1), SetDataTip(STR_BLACK_STRING, STR_LIVERY_PRIMARY_TOOLTIP),
SetDataTip(STR_BLACK_STRING, STR_LIVERY_SECONDARY_TOOLTIP),
NWidget(WWT_MATRIX, COLOUR_GREY, WID_SCL_MATRIX), SetMinimalSize(275, 15), SetFill(1, 0), SetMatrixDataTip(1, 1, STR_LIVERY_PANEL_TOOLTIP),
}
Dropdown for secondary colour.
Horizontal container.
Definition: widget_type.h:75
Caption of window.
Close box (at top-left of a window)
Definition: widget_type.h:69
Spacer for dropdown.
static NWidgetPart SetMatrixDataTip(uint8 cols, uint8 rows, StringID tip)
Widget part function for setting the data and tooltip of WWT_MATRIX widgets.
Definition: widget_type.h:1032
static NWidgetPart SetDataTip(uint32 data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1014
static NWidgetPart SetMinimalSize(int16 x, int16 y)
Widget part function for setting the minimal size.
Definition: widget_type.h:947
Simple depressed panel.
Definition: widget_type.h:50
static NWidgetPart NWidget(WidgetType tp, Colours col, int16 idx=-1)
Widget part function for starting a new &#39;real&#39; widget.
Definition: widget_type.h:1114
Dropdown for primary colour.
Grid of rows and columns.
Definition: widget_type.h:59
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:61
Class general.
static NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME, WWT_INSET, or WWT_PANEL).
Definition: widget_type.h:999
Drop down list.
Definition: widget_type.h:70
Class aircraft.
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983
(Toggle) Button with image
Definition: widget_type.h:52

Definition at line 834 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 46 of file company_gui.cpp.