OpenTTD Source 20241224-master-gf74b0cf984
industry_gui.cpp File Reference

GUIs related to industries. More...

#include "stdafx.h"
#include "error.h"
#include "gui.h"
#include "settings_gui.h"
#include "sound_func.h"
#include "window_func.h"
#include "textbuf_gui.h"
#include "command_func.h"
#include "viewport_func.h"
#include "industry.h"
#include "town.h"
#include "cheat_type.h"
#include "newgrf_industries.h"
#include "newgrf_text.h"
#include "newgrf_debug.h"
#include "network/network.h"
#include "strings_func.h"
#include "company_func.h"
#include "tilehighlight_func.h"
#include "string_func.h"
#include "sortlist_type.h"
#include "dropdown_func.h"
#include "company_base.h"
#include "core/geometry_func.hpp"
#include "core/random_func.hpp"
#include "core/backup_type.hpp"
#include "genworld.h"
#include "smallmap_gui.h"
#include "dropdown_type.h"
#include "clear_map.h"
#include "zoom_func.h"
#include "industry_cmd.h"
#include "graph_gui.h"
#include "querystring_gui.h"
#include "stringfilter_type.h"
#include "timer/timer.h"
#include "timer/timer_window.h"
#include "hotkeys.h"
#include "widgets/industry_widget.h"
#include "table/strings.h"
#include <bitset>
#include "safeguards.h"

Go to the source code of this file.

Data Structures

struct  CargoSuffix
 Transfer storage of cargo suffix information. More...
 
class  BuildIndustryWindow
 Build (fund or prospect) a new industry,. More...
 
class  IndustryViewWindow
 
class  IndustryDirectoryWindow
 The list of industries. More...
 
struct  CargoesField
 Data about a single field in the IndustryCargoesWindow panel. More...
 
struct  CargoesRow
 A single row of CargoesField. More...
 
struct  IndustryCargoesWindow
 Window displaying the cargo connections around an industry (or cargo). More...
 

Typedefs

typedef GUIList< const Industry *, const CargoID &, const std::pair< CargoID, CargoID > & > GUIIndustryList
 

Enumerations

enum  CargoSuffixType { CST_FUND , CST_VIEW , CST_DIR }
 Cargo suffix type (for which window is it requested) More...
 
enum  CargoSuffixDisplay { CSD_CARGO , CSD_CARGO_AMOUNT , CSD_CARGO_TEXT , CSD_CARGO_AMOUNT_TEXT }
 Ways of displaying the cargo. More...
 
enum  CargoSuffixInOut { CARGOSUFFIX_OUT = 0 , CARGOSUFFIX_IN = 1 }
 
enum  IndustryDirectoryHotkeys { IDHK_FOCUS_FILTER_BOX }
 Enum referring to the Hotkeys in the industry directory window. More...
 
enum  CargoesFieldType {
  CFT_EMPTY , CFT_SMALL_EMPTY , CFT_INDUSTRY , CFT_CARGO ,
  CFT_CARGO_LABEL , CFT_HEADER
}
 Available types of field. More...
 

Functions

void GenerateIndustries ()
 This function will create random industries during game creation.
 
static void ShowIndustryCargoesWindow (IndustryType id)
 Open the industry and cargoes window.
 
static void GetCargoSuffix (uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, CargoSuffix &suffix)
 Gets the string to display after the cargo name (using callback 37)
 
template<typename TC , typename TS >
static void GetAllCargoSuffixes (CargoSuffixInOut use_input, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, const TC &cargoes, TS &suffixes)
 Gets all strings to display after the cargoes of industries (using callback 37)
 
void GetCargoSuffix (CargoSuffixInOut use_input, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, CargoID cargo, uint8_t slot, CargoSuffix &suffix)
 Gets the strings to display after the cargo of industries (using callback 37)
 
static bool IndustryTypeNameSorter (const IndustryType &a, const IndustryType &b)
 Sort industry types by their name.
 
void SortIndustryTypes ()
 Initialize the list of sorted industry types.
 
void CcBuildIndustry (Commands, const CommandCost &result, TileIndex tile, IndustryType indtype, uint32_t, bool, uint32_t)
 Command callback.
 
void ShowBuildIndustryWindow ()
 
static void UpdateIndustryProduction (Industry *i)
 
static bool IsProductionAlterable (const Industry *i)
 
void ShowIndustryViewWindow (int industry)
 
static bool CargoFilter (const Industry *const *industry, const std::pair< CargoID, CargoID > &cargoes)
 Cargo filter functions.
 
void ShowIndustryDirectory ()
 
void ShowIndustryCargoesWindow ()
 Open the industry and cargoes window with an industry.
 

Variables

bool _ignore_restrictions
 
std::bitset< NUM_INDUSTRYTYPES_displayed_industries
 Communication from the industry chain window to the smallmap window about what industries to display.
 
std::array< IndustryType, NUM_INDUSTRYTYPES_sorted_industry_types
 Industry types sorted by name.
 
static constexpr NWidgetPart _nested_build_industry_widgets []
 
static WindowDesc _build_industry_desc (WDP_AUTO, "build_industry", 170, 212, WC_BUILD_INDUSTRY, WC_NONE, WDF_CONSTRUCTION, _nested_build_industry_widgets)
 Window definition of the dynamic place industries gui.
 
static constexpr NWidgetPart _nested_industry_view_widgets []
 Widget definition of the view industry gui.
 
static WindowDesc _industry_view_desc (WDP_AUTO, "view_industry", 260, 120, WC_INDUSTRY_VIEW, WC_NONE, 0, _nested_industry_view_widgets)
 Window definition of the view industry gui.
 
static constexpr NWidgetPart _nested_industry_directory_widgets []
 Widget definition of the industry directory gui.
 
static GUIIndustryList::FilterFunction *const _industry_filter_funcs [] = { &CargoFilter }
 
static WindowDesc _industry_directory_desc (WDP_AUTO, "list_industries", 428, 190, WC_INDUSTRY_DIRECTORY, WC_NONE, 0, _nested_industry_directory_widgets, &IndustryDirectoryWindow::hotkeys)
 Window definition of the industry directory gui.
 
static constexpr NWidgetPart _nested_industry_cargoes_widgets []
 Widgets of the industry cargoes window.
 
static WindowDesc _industry_cargoes_desc (WDP_AUTO, "industry_cargoes", 300, 210, WC_INDUSTRY_CARGOES, WC_NONE, 0, _nested_industry_cargoes_widgets)
 Window description for the industry cargoes window.
 
static const uint MAX_CARGOES = 16
 Maximum number of cargoes carried in a CFT_CARGO field in CargoesField.
 

Detailed Description

GUIs related to industries.

Definition in file industry_gui.cpp.

Typedef Documentation

◆ GUIIndustryList

typedef GUIList<const Industry *, const CargoID &, const std::pair<CargoID, CargoID> &> GUIIndustryList

Definition at line 1285 of file industry_gui.cpp.

Enumeration Type Documentation

◆ CargoesFieldType

Available types of field.

Enumerator
CFT_EMPTY 

Empty field.

CFT_SMALL_EMPTY 

Empty small field (for the header).

CFT_INDUSTRY 

Display industry.

CFT_CARGO 

Display cargo connections.

CFT_CARGO_LABEL 

Display cargo labels.

CFT_HEADER 

Header text.

Definition at line 1989 of file industry_gui.cpp.

◆ CargoSuffixDisplay

Ways of displaying the cargo.

Enumerator
CSD_CARGO 

Display the cargo without sub-type (cb37 result 401).

CSD_CARGO_AMOUNT 

Display the cargo and amount (if useful), but no sub-type (cb37 result 400 or fail).

CSD_CARGO_TEXT 

Display then cargo and supplied string (cb37 result 800-BFF).

CSD_CARGO_AMOUNT_TEXT 

Display then cargo, amount, and string (cb37 result 000-3FF).

Definition at line 68 of file industry_gui.cpp.

◆ CargoSuffixInOut

enum CargoSuffixInOut

Definition at line 141 of file industry_gui.cpp.

◆ CargoSuffixType

Cargo suffix type (for which window is it requested)

Enumerator
CST_FUND 

Fund-industry window.

CST_VIEW 

View-industry window.

CST_DIR 

Industry-directory window.

Definition at line 61 of file industry_gui.cpp.

◆ IndustryDirectoryHotkeys

Enum referring to the Hotkeys in the industry directory window.

Enumerator
IDHK_FOCUS_FILTER_BOX 

Focus the filter box.

Definition at line 1337 of file industry_gui.cpp.

Function Documentation

◆ CargoFilter()

static bool CargoFilter ( const Industry *const *  industry,
const std::pair< CargoID, CargoID > &  cargoes 
)
static

Cargo filter functions.

Check whether an industry accepts and produces a certain cargo pair.

Parameters
industryThe industry whose cargoes will being checked.
cargoesThe accepted and produced cargo pair to look for.
Returns
bool Whether the given cargoes accepted and produced by the industry.

Definition at line 1294 of file industry_gui.cpp.

References CargoFilterCriteria::CF_ANY, and CargoFilterCriteria::CF_NONE.

◆ CcBuildIndustry()

void CcBuildIndustry ( Commands  cmd,
const CommandCost result,
TileIndex  tile,
IndustryType  indtype,
uint32_t  ,
bool  ,
uint32_t   
)

Command callback.

In case of failure to build an industry, show an error message.

Parameters
resultResult of the command.
tileTile where the industry is placed.
indtypeIndustry type.

Definition at line 255 of file industry_gui.cpp.

References IndustrySpec::enabled, CommandCost::GetErrorMessage(), GetIndustrySpec(), IndustrySpec::name, NUM_INDUSTRYTYPES, SetDParam(), ShowErrorMessage(), CommandCost::Succeeded(), TILE_SIZE, TileX(), TileY(), and WL_INFO.

Referenced by BuildIndustryWindow::OnPlaceObject().

◆ GenerateIndustries()

void GenerateIndustries ( )
extern

This function will create random industries during game creation.

It will scale the amount of industries by mapsize and difficulty level.

Definition at line 2445 of file industry_cmd.cpp.

◆ GetAllCargoSuffixes()

template<typename TC , typename TS >
static void GetAllCargoSuffixes ( CargoSuffixInOut  use_input,
CargoSuffixType  cst,
const Industry ind,
IndustryType  ind_type,
const IndustrySpec indspec,
const TC &  cargoes,
TS &  suffixes 
)
inlinestatic

Gets all strings to display after the cargoes of industries (using callback 37)

Parameters
use_inputget suffixes for output cargoes or input cargoes?
cstthe cargo suffix type (for which window is it requested).
See also
CargoSuffixType
Parameters
indthe industry (nullptr if in fund window)
ind_typethe industry type
indspecthe industry spec
cargoesarray with cargotypes. for INVALID_CARGO no suffix will be determined
suffixesis filled with the suffixes

Definition at line 157 of file industry_gui.cpp.

References IndustrySpec::behaviour, GRFFile::cargo_map, CSD_CARGO, GetCargoSuffix(), IndustrySpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, INDUSTRYBEH_CARGOTYPES_UNLIMITED, IsValidCargoID(), and lengthof.

Referenced by BuildIndustryWindow::DrawWidget(), and BuildIndustryWindow::UpdateWidgetSize().

◆ GetCargoSuffix() [1/2]

void GetCargoSuffix ( CargoSuffixInOut  use_input,
CargoSuffixType  cst,
const Industry ind,
IndustryType  ind_type,
const IndustrySpec indspec,
CargoID  cargo,
uint8_t  slot,
CargoSuffix suffix 
)

Gets the strings to display after the cargo of industries (using callback 37)

Parameters
use_inputget suffixes for output cargo or input cargo?
cstthe cargo suffix type (for which window is it requested).
See also
CargoSuffixType
Parameters
indthe industry (nullptr if in fund window)
ind_typethe industry type
indspecthe industry spec
cargocargotype. for INVALID_CARGO no suffix will be determined
slotaccepts/produced slot number, used for old-style 3-in/2-out industries.
suffixis filled with the suffix

Definition at line 208 of file industry_gui.cpp.

References IndustrySpec::behaviour, GRFFile::cargo_map, CSD_CARGO, CargoSuffix::display, GetCargoSuffix(), IndustrySpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, INDUSTRY_ORIGINAL_NUM_INPUTS, INDUSTRY_ORIGINAL_NUM_OUTPUTS, INDUSTRYBEH_CARGOTYPES_UNLIMITED, IsValidCargoID(), and CargoSuffix::text.

◆ GetCargoSuffix() [2/2]

static void GetCargoSuffix ( uint  cargo,
CargoSuffixType  cst,
const Industry ind,
IndustryType  ind_type,
const IndustrySpec indspec,
CargoSuffix suffix 
)
static

Gets the string to display after the cargo name (using callback 37)

Parameters
cargothe cargo for which the suffix is requested, meaning depends on presence of flag 18 in prop 1A
cstthe cargo suffix type (for which window is it requested).
See also
CargoSuffixType
Parameters
indthe industry (nullptr if in fund window)
ind_typethe industry type
indspecthe industry spec
suffixis filled with the string to display

Definition at line 93 of file industry_gui.cpp.

References CALLBACK_FAILED, IndustrySpec::callback_mask, CBID_INDUSTRY_CARGO_SUFFIX, CBM_IND_CARGO_SUFFIX, CSD_CARGO, CSD_CARGO_AMOUNT, CSD_CARGO_AMOUNT_TEXT, CSD_CARGO_TEXT, CST_FUND, CargoSuffix::display, ErrorUnknownCallbackResult(), GB(), GetGRFStringID(), GetIndustryCallback(), GetString(), IndustrySpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, GRFFilePropsBase< Tcnt >::grfid, HasBit(), INVALID_TILE, Industry::location, StartTextRefStackUsage(), StopTextRefStackUsage(), CargoSuffix::text, and OrthogonalTileArea::tile.

Referenced by IndustryViewWindow::DrawInfo(), GetAllCargoSuffixes(), GetCargoSuffix(), and IndustryDirectoryWindow::GetIndustryString().

◆ IndustryTypeNameSorter()

static bool IndustryTypeNameSorter ( const IndustryType &  a,
const IndustryType &  b 
)
static

Sort industry types by their name.

Definition at line 227 of file industry_gui.cpp.

References GetIndustrySpec(), GetString(), and StrNaturalCompare().

Referenced by SortIndustryTypes().

◆ IsProductionAlterable()

static bool IsProductionAlterable ( const Industry i)
inlinestatic

Definition at line 780 of file industry_gui.cpp.

◆ ShowBuildIndustryWindow()

void ShowBuildIndustryWindow ( )

Definition at line 771 of file industry_gui.cpp.

◆ ShowIndustryCargoesWindow() [1/2]

void ShowIndustryCargoesWindow ( )

Open the industry and cargoes window with an industry.

Definition at line 3235 of file industry_gui.cpp.

References NUM_INDUSTRYTYPES, and ShowIndustryCargoesWindow().

Referenced by MenuClickIndustry(), BuildIndustryWindow::OnClick(), IndustryViewWindow::OnClick(), and ShowIndustryCargoesWindow().

◆ ShowIndustryCargoesWindow() [2/2]

static void ShowIndustryCargoesWindow ( IndustryType  id)
static

Open the industry and cargoes window.

Parameters
idIndustry type to display, NUM_INDUSTRYTYPES selects a default industry type.

Definition at line 3213 of file industry_gui.cpp.

References _sorted_industry_types, BringWindowToFrontById(), IndustrySpec::enabled, GetIndustrySpec(), Window::InvalidateData(), NUM_INDUSTRYTYPES, and WC_INDUSTRY_CARGOES.

◆ ShowIndustryDirectory()

void ShowIndustryDirectory ( )

Definition at line 1950 of file industry_gui.cpp.

◆ ShowIndustryViewWindow()

void ShowIndustryViewWindow ( int  industry)

Definition at line 1248 of file industry_gui.cpp.

◆ SortIndustryTypes()

void SortIndustryTypes ( )

Initialize the list of sorted industry types.

Definition at line 238 of file industry_gui.cpp.

References _sorted_industry_types, IndustryTypeNameSorter(), and NUM_INDUSTRYTYPES.

Referenced by AfterLoadGRFs(), and ReadLanguagePack().

◆ UpdateIndustryProduction()

static void UpdateIndustryProduction ( Industry i)
static

Definition at line 1203 of file industry_gui.cpp.

Variable Documentation

◆ _displayed_industries

std::bitset<NUM_INDUSTRYTYPES> _displayed_industries

Communication from the industry chain window to the smallmap window about what industries to display.

Definition at line 58 of file industry_gui.cpp.

Referenced by IndustryCargoesWindow::ComputeCargoDisplay(), IndustryCargoesWindow::ComputeIndustryDisplay(), and SmallMapWindow::OnInvalidateData().

◆ _ignore_restrictions

bool _ignore_restrictions

Definition at line 57 of file industry_gui.cpp.

◆ _industry_filter_funcs

GUIIndustryList::FilterFunction* const _industry_filter_funcs[] = { &CargoFilter }
static

Definition at line 1334 of file industry_gui.cpp.

◆ _nested_build_industry_widgets

constexpr NWidgetPart _nested_build_industry_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_FUND_INDUSTRY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_DEFSIZEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN),
SetDataTip(STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES, STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP),
SetDataTip(STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES, STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP),
NWidget(WWT_MATRIX, COLOUR_DARK_GREEN, WID_DPI_MATRIX_WIDGET), SetMatrixDataTip(1, 0, STR_FUND_INDUSTRY_SELECTION_TOOLTIP), SetFill(1, 0), SetResize(1, 1), SetScrollbar(WID_DPI_SCROLLBAR),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, WID_DPI_INFOPANEL), SetResize(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_DARK_GREEN, WID_DPI_DISPLAY_WIDGET), SetFill(1, 0), SetResize(1, 0),
SetDataTip(STR_INDUSTRY_DISPLAY_CHAIN, STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_DARK_GREEN, WID_DPI_FUND_WIDGET), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_JUST_STRING, STR_NULL),
NWidget(WWT_RESIZEBOX, COLOUR_DARK_GREEN),
}
constexpr NWidgetPart SetFill(uint16_t fill_x, uint16_t fill_y)
Widget part function for setting filling.
constexpr NWidgetPart SetScrollbar(WidgetID index)
Attach a scrollbar to a widget.
constexpr NWidgetPart SetDataTip(uint32_t data, StringID tip)
Widget part function for setting the data and tooltip.
constexpr NWidgetPart SetMinimalSize(int16_t x, int16_t y)
Widget part function for setting the minimal size.
constexpr NWidgetPart NWidget(WidgetType tp, Colours col, WidgetID idx=-1)
Widget part function for starting a new 'real' widget.
constexpr NWidgetPart SetMatrixDataTip(uint8_t cols, uint8_t rows, StringID tip)
Widget part function for setting the data and tooltip of WWT_MATRIX widgets.
constexpr NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME,...
constexpr NWidgetPart SetResize(int16_t dx, int16_t dy)
Widget part function for setting the resize step.
@ WID_DPI_MATRIX_WIDGET
Matrix of the industries.
@ WID_DPI_REMOVE_ALL_INDUSTRIES_WIDGET
Remove all industries button.
@ WID_DPI_INFOPANEL
Info panel about the industry.
@ WID_DPI_SCENARIO_EDITOR_PANE
Pane containing SE-only widgets.
@ WID_DPI_SCROLLBAR
Scrollbar of the matrix.
@ WID_DPI_CREATE_RANDOM_INDUSTRIES_WIDGET
Create random industries button.
@ WID_DPI_FUND_WIDGET
Fund button.
@ WID_DPI_DISPLAY_WIDGET
Display chain button.
@ NWID_HORIZONTAL
Horizontal container.
Definition widget_type.h:75
@ WWT_TEXTBTN
(Toggle) Button with text
Definition widget_type.h:55
@ WWT_PANEL
Simple depressed panel.
Definition widget_type.h:50
@ WWT_STICKYBOX
Sticky box (at top-right of a window, after WWT_DEFSIZEBOX)
Definition widget_type.h:66
@ WWT_MATRIX
Grid of rows and columns.
Definition widget_type.h:59
@ WWT_SHADEBOX
Shade box (at top-right of a window, between WWT_DEBUGBOX and WWT_DEFSIZEBOX)
Definition widget_type.h:64
@ WWT_CAPTION
Window caption (window title between closebox and stickybox)
Definition widget_type.h:61
@ NWID_VSCROLLBAR
Vertical scrollbar.
Definition widget_type.h:85
@ NWID_VERTICAL
Vertical container.
Definition widget_type.h:77
@ WWT_CLOSEBOX
Close box (at top-left of a window)
Definition widget_type.h:69
@ WWT_RESIZEBOX
Resize box (normally at bottom-right of a window)
Definition widget_type.h:68
@ WWT_DEFSIZEBOX
Default window size box (at top-right of a window, between WWT_SHADEBOX and WWT_STICKYBOX)
Definition widget_type.h:65
@ NWID_SELECTION
Stacked widgets, only one visible at a time (eg in a panel with tabs).
Definition widget_type.h:80

Definition at line 268 of file industry_gui.cpp.

◆ _nested_industry_cargoes_widgets

constexpr NWidgetPart _nested_industry_cargoes_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN, WID_IC_CAPTION), SetDataTip(STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
SetDataTip(STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP, STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_BROWN), SetFill(1, 0), SetResize(0, 0), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_IC_IND_DROPDOWN), SetFill(0, 0), SetResize(0, 0),
SetDataTip(STR_INDUSTRY_CARGOES_SELECT_INDUSTRY, STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP),
SetDataTip(STR_INDUSTRY_CARGOES_SELECT_CARGO, STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
}
@ WID_IC_SCROLLBAR
Scrollbar of the panel.
@ WID_IC_NOTIFY
Row of buttons at the bottom.
@ WID_IC_IND_DROPDOWN
Select industry dropdown.
@ WID_IC_CAPTION
Caption of the window.
@ WID_IC_PANEL
Panel that shows the chain.
@ WID_IC_CARGO_DROPDOWN
Select cargo dropdown.
@ WWT_DROPDOWN
Drop down list.
Definition widget_type.h:70

Widgets of the industry cargoes window.

Definition at line 1956 of file industry_gui.cpp.

◆ _nested_industry_directory_widgets

constexpr NWidgetPart _nested_industry_directory_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN, WID_ID_CAPTION), SetDataTip(STR_INDUSTRY_DIRECTORY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_ID_DROPDOWN_ORDER), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_DROPDOWN_CRITERIA), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_SORT_CRITERIA),
NWidget(WWT_EDITBOX, COLOUR_BROWN, WID_ID_FILTER), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_LIST_FILTER_OSKTITLE, STR_LIST_FILTER_TOOLTIP),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_FILTER_BY_ACC_CARGO), SetMinimalSize(225, 12), SetFill(0, 1), SetDataTip(STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER, STR_TOOLTIP_FILTER_CRITERIA),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_FILTER_BY_PROD_CARGO), SetMinimalSize(225, 12), SetFill(0, 1), SetDataTip(STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER, STR_TOOLTIP_FILTER_CRITERIA),
NWidget(WWT_PANEL, COLOUR_BROWN), SetResize(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_ID_INDUSTRY_LIST), SetDataTip(0x0, STR_INDUSTRY_DIRECTORY_LIST_CAPTION), SetResize(1, 1), SetScrollbar(WID_ID_VSCROLLBAR),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
}
@ WID_ID_HSCROLLBAR
Horizontal scrollbar of the list.
@ WID_ID_INDUSTRY_LIST
Industry list.
@ WID_ID_DROPDOWN_ORDER
Dropdown for the order of the sort.
@ WID_ID_FILTER_BY_PROD_CARGO
Produced cargo filter dropdown list.
@ WID_ID_DROPDOWN_CRITERIA
Dropdown for the criteria of the sort.
@ WID_ID_CAPTION
Caption of the window.
@ WID_ID_FILTER
Textbox to filter industry name.
@ WID_ID_FILTER_BY_ACC_CARGO
Accepted cargo filter dropdown list.
@ WID_ID_VSCROLLBAR
Vertical scrollbar of the list.
@ WWT_EDITBOX
a textbox for typing
Definition widget_type.h:71
@ NWID_HSCROLLBAR
Horizontal scrollbar.
Definition widget_type.h:84

Widget definition of the industry directory gui.

Definition at line 1254 of file industry_gui.cpp.

◆ _nested_industry_view_widgets

constexpr NWidgetPart _nested_industry_view_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_CREAM),
NWidget(WWT_CAPTION, COLOUR_CREAM, WID_IV_CAPTION), SetDataTip(STR_INDUSTRY_VIEW_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHIMGBTN, COLOUR_CREAM, WID_IV_GOTO), SetAspect(WidgetDimensions::ASPECT_LOCATION), SetDataTip(SPR_GOTO_LOCATION, STR_INDUSTRY_VIEW_LOCATION_TOOLTIP),
NWidget(WWT_DEBUGBOX, COLOUR_CREAM),
NWidget(WWT_SHADEBOX, COLOUR_CREAM),
NWidget(WWT_DEFSIZEBOX, COLOUR_CREAM),
NWidget(WWT_STICKYBOX, COLOUR_CREAM),
NWidget(WWT_PANEL, COLOUR_CREAM),
NWidget(WWT_INSET, COLOUR_CREAM), SetPadding(2, 2, 2, 2),
NWidget(NWID_VIEWPORT, INVALID_COLOUR, WID_IV_VIEWPORT), SetMinimalSize(254, 86), SetFill(1, 0), SetResize(1, 1),
NWidget(WWT_PANEL, COLOUR_CREAM, WID_IV_INFO), SetMinimalSize(260, 0), SetMinimalTextLines(2, WidgetDimensions::unscaled.framerect.Vertical()), SetResize(1, 0),
NWidget(WWT_PUSHTXTBTN, COLOUR_CREAM, WID_IV_DISPLAY), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_INDUSTRY_DISPLAY_CHAIN, STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_CREAM, WID_IV_GRAPH), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_INDUSTRY_VIEW_PRODUCTION_GRAPH, STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP),
NWidget(WWT_RESIZEBOX, COLOUR_CREAM),
}
static const WidgetDimensions unscaled
Unscaled widget dimensions.
Definition window_gui.h:96
constexpr NWidgetPart SetPadding(uint8_t top, uint8_t right, uint8_t bottom, uint8_t left)
Widget part function for setting additional space around a widget.
constexpr NWidgetPart SetMinimalTextLines(uint8_t lines, uint8_t spacing, FontSize size=FS_NORMAL)
Widget part function for setting the minimal text lines.
constexpr NWidgetPart SetAspect(float ratio, AspectFlags flags=AspectFlags::ResizeX)
Widget part function for setting the aspect ratio.
@ WID_IV_INFO
Info of the industry.
@ WID_IV_CAPTION
Caption of the window.
@ WID_IV_GRAPH
Production history button.
@ WID_IV_DISPLAY
Display chain button.
@ WID_IV_GOTO
Goto button.
@ WID_IV_VIEWPORT
Viewport of the industry.
@ WWT_PUSHTXTBTN
Normal push-button (no toggle button) with text caption.
@ WWT_INSET
Pressed (inset) panel, most commonly used as combo box text area.
Definition widget_type.h:51
@ WWT_PUSHIMGBTN
Normal push-button (no toggle button) with image caption.
@ NWID_VIEWPORT
Nested widget containing a viewport.
Definition widget_type.h:82
@ WWT_DEBUGBOX
NewGRF debug box (at top-right of a window, between WWT_CAPTION and WWT_SHADEBOX)
Definition widget_type.h:63

Widget definition of the view industry gui.

Definition at line 1216 of file industry_gui.cpp.

◆ _sorted_industry_types

◆ MAX_CARGOES