OpenTTD
Data Structures | Macros | Enumerations | Functions | Variables
misc_gui.cpp File Reference

GUIs for a number of misc windows. More...

#include "stdafx.h"
#include "debug.h"
#include "landscape.h"
#include "error.h"
#include "gui.h"
#include "command_func.h"
#include "company_func.h"
#include "town.h"
#include "string_func.h"
#include "company_base.h"
#include "texteff.hpp"
#include "strings_func.h"
#include "window_func.h"
#include "querystring_gui.h"
#include "core/geometry_func.hpp"
#include "newgrf_debug.h"
#include "zoom_func.h"
#include "widgets/misc_widget.h"
#include "table/strings.h"
#include "safeguards.h"

Go to the source code of this file.

Data Structures

class  LandInfoWindow
 
struct  AboutWindow
 
struct  TooltipsWindow
 Window for displaying a tooltip. More...
 
struct  QueryStringWindow
 Class for the string query window. More...
 
struct  QueryWindow
 Window used for asking the user a YES/NO question. More...
 

Macros

#define LANDINFOD_LEVEL   1
 

Enumerations

enum  OskActivation { OSKA_DISABLED, OSKA_DOUBLE_CLICK, OSKA_SINGLE_CLICK, OSKA_IMMEDIATELY }
 Method to open the OSK. More...
 

Functions

void ShowLandInfo (TileIndex tile)
 Show land information window. More...
 
void ShowAboutWindow ()
 
void ShowEstimatedCostOrIncome (Money cost, int x, int y)
 Display estimated costs. More...
 
void ShowCostOrIncomeAnimation (int x, int y, int z, Money cost)
 Display animated income or costs on the map. More...
 
void ShowFeederIncomeAnimation (int x, int y, int z, Money transfer, Money income)
 Display animated feeder income. More...
 
TextEffectID ShowFillingPercent (int x, int y, int z, uint8 percent, StringID string)
 Display vehicle loading indicators. More...
 
void UpdateFillingPercent (TextEffectID te_id, uint8 percent, StringID string)
 Update vehicle loading indicators. More...
 
void HideFillingPercent (TextEffectID *te_id)
 Hide vehicle loading indicators. More...
 
void GuiShowTooltips (Window *parent, StringID str, uint paramcount, const uint64 params[], TooltipCloseCondition close_tooltip)
 Shows a tooltip. More...
 
void ShowQueryString (StringID str, StringID caption, uint maxsize, Window *parent, CharSetFilter afilter, QueryStringFlags flags)
 Show a query popup window with a textbox in it. More...
 
void ShowQuery (StringID caption, StringID message, Window *parent, QueryCallbackProc *callback)
 Show a modal confirmation window with standard 'yes' and 'no' buttons The window is aligned to the centre of its parent. More...
 

Variables

static const NWidgetPart _nested_land_info_widgets []
 
static WindowDesc _land_info_desc (WDP_AUTO, "land_info", 0, 0, WC_LAND_INFO, WC_NONE, 0, _nested_land_info_widgets, lengthof(_nested_land_info_widgets))
 
static const NWidgetPart _nested_about_widgets []
 
static WindowDesc _about_desc (WDP_CENTER, NULL, 0, 0, WC_GAME_OPTIONS, WC_NONE, 0, _nested_about_widgets, lengthof(_nested_about_widgets))
 
static const char *const _credits []
 
static const NWidgetPart _nested_tooltips_widgets []
 
static WindowDesc _tool_tips_desc (WDP_MANUAL, NULL, 0, 0, WC_TOOLTIPS, WC_NONE, WDF_NO_FOCUS, _nested_tooltips_widgets, lengthof(_nested_tooltips_widgets))
 
static const NWidgetPart _nested_query_string_widgets []
 
static WindowDesc _query_string_desc (WDP_CENTER, "query_string", 0, 0, WC_QUERY_STRING, WC_NONE, 0, _nested_query_string_widgets, lengthof(_nested_query_string_widgets))
 
static const NWidgetPart _nested_query_widgets []
 
static WindowDesc _query_desc (WDP_CENTER, NULL, 0, 0, WC_CONFIRM_POPUP_QUERY, WC_NONE, WDF_MODAL, _nested_query_widgets, lengthof(_nested_query_widgets))
 

Detailed Description

GUIs for a number of misc windows.

Definition in file misc_gui.cpp.

Enumeration Type Documentation

◆ OskActivation

Method to open the OSK.

Enumerator
OSKA_DISABLED 

The OSK shall not be activated at all.

OSKA_DOUBLE_CLICK 

Double click on the edit box opens OSK.

OSKA_SINGLE_CLICK 

Single click after focus click opens OSK.

OSKA_IMMEDIATELY 

Focusing click already opens OSK.

Definition at line 37 of file misc_gui.cpp.

Function Documentation

◆ GuiShowTooltips()

void GuiShowTooltips ( Window parent,
StringID  str,
uint  paramcount,
const uint64  params[],
TooltipCloseCondition  close_tooltip 
)

Shows a tooltip.

Parameters
parentThe window this tooltip is related to.
strString to be displayed
paramcountnumber of params to deal with
params(optional) up to 5 pieces of additional information that may be added to a tooltip
use_left_mouse_buttonclose the tooltip when the left (true) or right (false) mouse button is released

Definition at line 742 of file misc_gui.cpp.

References DeleteWindowById(), Window::GetWidget(), Window::InvalidateData(), Window::IsWidgetGloballyFocused(), Window::SetWidgetDirty(), WC_OSK, WC_TOOLTIPS, and Window::window_class.

Referenced by IndustryCargoesWindow::OnHover().

◆ HideFillingPercent()

void HideFillingPercent ( TextEffectID *  te_id)

Hide vehicle loading indicators.

Parameters
*te_idTextEffectID which is supposed to be hidden.

Definition at line 629 of file misc_gui.cpp.

Referenced by Train::Crash(), and Vehicle::PreDestructor().

◆ ShowCostOrIncomeAnimation()

void ShowCostOrIncomeAnimation ( int  x,
int  y,
int  z,
Money  cost 
)

Display animated income or costs on the map.

Parameters
xWorld X position of the animation location.
yWorld Y position of the animation location.
zWorld Z position of the animation location.
costEstimated cost (or income if negative).

Definition at line 554 of file misc_gui.cpp.

◆ ShowEstimatedCostOrIncome()

void ShowEstimatedCostOrIncome ( Money  cost,
int  x,
int  y 
)

Display estimated costs.

Parameters
costEstimated cost (or income if negative).
xX position of the notification window.
yY position of the notification window.

Definition at line 535 of file misc_gui.cpp.

◆ ShowFeederIncomeAnimation()

void ShowFeederIncomeAnimation ( int  x,
int  y,
int  z,
Money  transfer,
Money  income 
)

Display animated feeder income.

Parameters
xWorld X position of the animation location.
yWorld Y position of the animation location.
zWorld Z position of the animation location.
transferEstimated feeder income.
incomeReal income from goods being delivered to their final destination.

Definition at line 575 of file misc_gui.cpp.

◆ ShowFillingPercent()

TextEffectID ShowFillingPercent ( int  x,
int  y,
int  z,
uint8  percent,
StringID  string 
)

Display vehicle loading indicators.

Parameters
xWorld X position of the animation location.
yWorld Y position of the animation location.
zWorld Z position of the animation location.
percentEstimated feeder income.
stringString which is drawn on the map.
Returns
TextEffectID to be used for future updates of the loading indicators.

Definition at line 602 of file misc_gui.cpp.

◆ ShowLandInfo()

void ShowLandInfo ( TileIndex  tile)

Show land information window.

Parameters
tileThe tile to show information about.

Definition at line 366 of file misc_gui.cpp.

References DeleteWindowById(), and WC_LAND_INFO.

◆ ShowQuery()

void ShowQuery ( StringID  caption,
StringID  message,
Window parent,
QueryCallbackProc callback 
)

Show a modal confirmation window with standard 'yes' and 'no' buttons The window is aligned to the centre of its parent.

Parameters
captionstring shown as window caption
messagestring that will be shown for the window
parentpointer to parent window, if this pointer is NULL the parent becomes the main window WC_MAIN_WINDOW
callbackcallback function pointer to set in the window descriptor

Definition at line 1206 of file misc_gui.cpp.

References FindWindowById(), and WC_MAIN_WINDOW.

Referenced by CmdPause(), MenuClickLargeWorldScreenshot(), and GenerateProgressWindow::OnClick().

◆ ShowQueryString()

void ShowQueryString ( StringID  str,
StringID  caption,
uint  maxsize,
Window parent,
CharSetFilter  afilter,
QueryStringFlags  flags 
)

Show a query popup window with a textbox in it.

Parameters
strStringID for the text shown in the textbox
captionStringID of text shown in caption of querywindow
maxsizemaximum size in bytes or characters (including terminating '\0') depending on flags
parentpointer to a Window that will handle the events (ok/cancel) of this window. If NULL, results are handled by global function HandleOnEditText
afilterfilters out unwanted character input
flagsvarious flags,
See also
QueryStringFlags

Definition at line 1065 of file misc_gui.cpp.

References DeleteWindowByClass(), MAX_CHAR_LENGTH, QSF_LEN_IN_CHARS, and WC_QUERY_STRING.

Referenced by WaypointWindow::OnClick(), NewGRFInspectWindow::OnClick(), SpriteAlignerWindow::OnClick(), SelectCompanyManagerFaceWindow::OnClick(), StationViewWindow::OnClick(), VehicleDetailsWindow::OnClick(), CompanyWindow::OnClick(), GenerateLandscapeWindow::OnDropdownSelect(), and ToolbarScenDatePanel().

◆ UpdateFillingPercent()

void UpdateFillingPercent ( TextEffectID  te_id,
uint8  percent,
StringID  string 
)

Update vehicle loading indicators.

Parameters
te_idTextEffectID to be updated.
stringString which is printed.

Definition at line 617 of file misc_gui.cpp.

Variable Documentation

◆ _nested_about_widgets

const NWidgetPart _nested_about_widgets[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_ABOUT_OPENTTD, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PANEL, COLOUR_GREY), SetPIP(4, 2, 4),
NWidget(WWT_LABEL, COLOUR_GREY), SetDataTip(STR_ABOUT_ORIGINAL_COPYRIGHT, STR_NULL),
NWidget(WWT_LABEL, COLOUR_GREY), SetDataTip(STR_ABOUT_VERSION, STR_NULL),
NWidget(WWT_FRAME, COLOUR_GREY), SetPadding(0, 5, 1, 5),
NWidget(WWT_LABEL, COLOUR_GREY, WID_A_WEBSITE), SetDataTip(STR_BLACK_RAW_STRING, STR_NULL),
NWidget(WWT_LABEL, COLOUR_GREY), SetDataTip(STR_ABOUT_COPYRIGHT_OPENTTD, STR_NULL),
}
Empty widget, place holder to reserve space in widget array.
Definition: widget_type.h:48
Centered label.
Definition: widget_type.h:57
Horizontal container.
Definition: widget_type.h:75
Close box (at top-left of a window)
Definition: widget_type.h:69
static NWidgetPart SetPadding(uint8 top, uint8 right, uint8 bottom, uint8 left)
Widget part function for setting additional space around a widget.
Definition: widget_type.h:1046
static NWidgetPart SetDataTip(uint32 data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1014
Simple depressed panel.
Definition: widget_type.h:50
Frame.
Definition: widget_type.h:60
static NWidgetPart NWidget(WidgetType tp, Colours col, int16 idx=-1)
Widget part function for starting a new 'real' widget.
Definition: widget_type.h:1114
The actually scrolling text.
Definition: misc_widget.h:27
URL of OpenTTD website.
Definition: misc_widget.h:28
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:61
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
static NWidgetPart SetPIP(uint8 pre, uint8 inter, uint8 post)
Widget part function for setting a pre/inter/post spaces.
Definition: widget_type.h:1076

Definition at line 372 of file misc_gui.cpp.

◆ _nested_land_info_widgets

const NWidgetPart _nested_land_info_widgets[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_LAND_AREA_INFORMATION_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_DEBUGBOX, COLOUR_GREY),
}
Horizontal container.
Definition: widget_type.h:75
NewGRF debug box (at top-right of a window, between WWT_CAPTION and WWT_SHADEBOX) ...
Definition: widget_type.h:63
Close box (at top-left of a window)
Definition: widget_type.h:69
Background of the window.
Definition: misc_widget.h:17
static NWidgetPart SetDataTip(uint32 data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1014
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 'real' widget.
Definition: widget_type.h:1114
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:61
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

Definition at line 45 of file misc_gui.cpp.

◆ _nested_query_string_widgets

const NWidgetPart _nested_query_string_widgets[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_QS_CAPTION), SetDataTip(STR_WHITE_STRING, STR_NULL),
NWidget(WWT_PANEL, COLOUR_GREY),
NWidget(WWT_EDITBOX, COLOUR_GREY, WID_QS_TEXT), SetMinimalSize(256, 12), SetFill(1, 1), SetPadding(2, 2, 2, 2),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_QS_DEFAULT), SetMinimalSize(87, 12), SetFill(1, 1), SetDataTip(STR_BUTTON_DEFAULT, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_QS_CANCEL), SetMinimalSize(86, 12), SetFill(1, 1), SetDataTip(STR_BUTTON_CANCEL, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_QS_OK), SetMinimalSize(87, 12), SetFill(1, 1), SetDataTip(STR_BUTTON_OK, STR_NULL),
}
Horizontal container.
Definition: widget_type.h:75
OK button.
Definition: misc_widget.h:37
a textbox for typing
Definition: widget_type.h:71
Text of the query.
Definition: misc_widget.h:34
Close box (at top-left of a window)
Definition: widget_type.h:69
Caption of the window.
Definition: misc_widget.h:33
static NWidgetPart SetPadding(uint8 top, uint8 right, uint8 bottom, uint8 left)
Widget part function for setting additional space around a widget.
Definition: widget_type.h:1046
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 'real' widget.
Definition: widget_type.h:1114
Default button.
Definition: misc_widget.h:35
Cancel button.
Definition: misc_widget.h:36
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:61
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
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983
Value of the NCB_EQUALSIZE flag.
Definition: widget_type.h:429
(Toggle) Button with text
Definition: widget_type.h:55

Definition at line 1033 of file misc_gui.cpp.

◆ _nested_query_widgets

const NWidgetPart _nested_query_widgets[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_RED),
NWidget(WWT_CAPTION, COLOUR_RED, WID_Q_CAPTION), SetDataTip(STR_JUST_STRING, STR_NULL),
NWidget(WWT_PANEL, COLOUR_RED), SetPIP(8, 15, 8),
NWidget(WWT_TEXT, COLOUR_RED, WID_Q_TEXT), SetMinimalSize(200, 12),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_Q_NO), SetMinimalSize(71, 12), SetFill(1, 1), SetDataTip(STR_QUIT_NO, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_Q_YES), SetMinimalSize(71, 12), SetFill(1, 1), SetDataTip(STR_QUIT_YES, STR_NULL),
}
Horizontal container.
Definition: widget_type.h:75
Text of the query.
Definition: misc_widget.h:43
Close box (at top-left of a window)
Definition: widget_type.h:69
Pure simple text.
Definition: widget_type.h:58
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
Normal push-button (no toggle button) with text caption.
Definition: widget_type.h:104
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 'real' widget.
Definition: widget_type.h:1114
No button.
Definition: misc_widget.h:45
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:61
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
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983
Yes button.
Definition: misc_widget.h:44
Caption of the window.
Definition: misc_widget.h:42
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

Definition at line 1176 of file misc_gui.cpp.

◆ _nested_tooltips_widgets

const NWidgetPart _nested_tooltips_widgets[]
static
Initial value:
= {
}
Background of the window.
Definition: misc_widget.h:22
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 'real' widget.
Definition: widget_type.h:1114
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

Definition at line 637 of file misc_gui.cpp.