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 "widgets/company_widget.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 2445 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(), RemoveRailStation(), 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 1497 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 132 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 858 of file company_gui.cpp.

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

Referenced by NewsWindow::DrawWidget(), BuyCompanyWindow::DrawWidget(), CompanyWindow::DrawWidget(), and SelectCompanyManagerFaceWindow::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 162 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 180 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 2546 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 2434 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 478 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 1857 of file company_gui.cpp.

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

Referenced by CompanyWindow::OnClick(), and CompanyFinancesWindow::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 487 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 1966 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 50 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 67 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 122 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 507 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 2516 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 822 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 43 of file company_gui.cpp.

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