OpenTTD
Data Structures | Functions | Variables
news_gui.cpp File Reference

GUI functions related to news messages. More...

#include "stdafx.h"
#include "gui.h"
#include "viewport_func.h"
#include "strings_func.h"
#include "window_func.h"
#include "date_func.h"
#include "vehicle_base.h"
#include "vehicle_func.h"
#include "vehicle_gui.h"
#include "station_base.h"
#include "industry.h"
#include "town.h"
#include "sound_func.h"
#include "string_func.h"
#include "widgets/dropdown_func.h"
#include "statusbar_gui.h"
#include "company_manager_face.h"
#include "company_func.h"
#include "engine_base.h"
#include "engine_gui.h"
#include "core/geometry_func.hpp"
#include "command_func.h"
#include "company_base.h"
#include "settings_internal.h"
#include "widgets/news_widget.h"
#include "table/strings.h"
#include "safeguards.h"

Go to the source code of this file.

Data Structures

struct  NewsWindow
 Window class displaying a news item. More...
 
struct  MessageHistoryWindow
 

Functions

static TileIndex GetReferenceTile (NewsReferenceType reftype, uint32 ref)
 Get the position a news-reference is referencing. More...
 
WindowDescGetNewsWindowLayout (NewsFlag flags)
 
 assert_compile (lengthof(_news_type_data)==NT_END)
 
static void ShowNewspaper (const NewsItem *ni)
 Open up an own newspaper window for the news item.
 
static void ShowTicker (const NewsItem *ni)
 Show news item in the ticker.
 
void InitNewsItemStructs ()
 Initialize the news-items data structures.
 
static bool ReadyForNextItem ()
 Are we ready to show another news item? Only if nothing is in the newsticker and no newspaper is displayed.
 
static void MoveToNextItem ()
 Move to the next news item.
 
void AddNewsItem (StringID string, NewsType type, NewsFlag flags, NewsReferenceType reftype1, uint32 ref1, NewsReferenceType reftype2, uint32 ref2, void *free_data)
 Add a new newsitem to be shown. More...
 
CommandCost CmdCustomNewsItem (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Create a new custom news item. More...
 
static void DeleteNewsItem (NewsItem *ni)
 Delete a news item from the queue.
 
void DeleteVehicleNews (VehicleID vid, StringID news)
 Delete a news item type about a vehicle. More...
 
void DeleteStationNews (StationID sid)
 Remove news regarding given station so there are no 'unknown station now accepts Mail' or 'First train arrived at unknown station' news items. More...
 
void DeleteIndustryNews (IndustryID iid)
 Remove news regarding given industry. More...
 
void DeleteInvalidEngineNews ()
 Remove engine announcements for invalid engines.
 
static void RemoveOldNewsItems ()
 
void ChangeVehicleNews (VehicleID from_index, VehicleID to_index)
 Report a change in vehicle IDs (due to autoreplace) to affected vehicle news. More...
 
void NewsLoop ()
 
static void ShowNewsMessage (const NewsItem *ni)
 Do a forced show of a specific message.
 
void ShowLastNewsMessage ()
 Show previous news item.
 
static void DrawNewsString (uint left, uint right, int y, TextColour colour, const NewsItem *ni)
 Draw an unformatted news message truncated to a maximum length. More...
 
void ShowMessageHistory ()
 Display window with news messages history.
 

Variables

const NewsItem_statusbar_news_item = NULL
 
static uint MIN_NEWS_AMOUNT = 30
 preferred minimum amount of news messages
 
static uint _total_news = 0
 current number of news items
 
static NewsItem_oldest_news = NULL
 head of news items queue
 
static NewsItem_latest_news = NULL
 tail of news items queue
 
static const NewsItem_forced_news = NULL
 Forced news item. More...
 
static const NewsItem_current_news = NULL
 Current news item (last item shown regularly). More...
 
static const NWidgetPart _nested_normal_news_widgets []
 
static WindowDesc _normal_news_desc (WDP_MANUAL, NULL, 0, 0, WC_NEWS_WINDOW, WC_NONE, 0, _nested_normal_news_widgets, lengthof(_nested_normal_news_widgets))
 
static const NWidgetPart _nested_vehicle_news_widgets []
 
static WindowDesc _vehicle_news_desc (WDP_MANUAL, NULL, 0, 0, WC_NEWS_WINDOW, WC_NONE, 0, _nested_vehicle_news_widgets, lengthof(_nested_vehicle_news_widgets))
 
static const NWidgetPart _nested_company_news_widgets []
 
static WindowDesc _company_news_desc (WDP_MANUAL, NULL, 0, 0, WC_NEWS_WINDOW, WC_NONE, 0, _nested_company_news_widgets, lengthof(_nested_company_news_widgets))
 
static const NWidgetPart _nested_thin_news_widgets []
 
static WindowDesc _thin_news_desc (WDP_MANUAL, NULL, 0, 0, WC_NEWS_WINDOW, WC_NONE, 0, _nested_thin_news_widgets, lengthof(_nested_thin_news_widgets))
 
static const NWidgetPart _nested_small_news_widgets []
 
static WindowDesc _small_news_desc (WDP_MANUAL, NULL, 0, 0, WC_NEWS_WINDOW, WC_NONE, 0, _nested_small_news_widgets, lengthof(_nested_small_news_widgets))
 
static WindowDesc_news_window_layout []
 Window layouts for news items. More...
 
static NewsTypeData _news_type_data []
 Per-NewsType data. More...
 
static const NWidgetPart _nested_message_history []
 
static WindowDesc _message_history_desc (WDP_AUTO, "list_news", 400, 140, WC_MESSAGE_HISTORY, WC_NONE, 0, _nested_message_history, lengthof(_nested_message_history))
 

Detailed Description

GUI functions related to news messages.

Definition in file news_gui.cpp.

Function Documentation

◆ AddNewsItem()

void AddNewsItem ( StringID  string,
NewsType  type,
NewsFlag  flags,
NewsReferenceType  reftype1,
uint32  ref1,
NewsReferenceType  reftype2,
uint32  ref2,
void *  free_data 
)

Add a new newsitem to be shown.

Parameters
stringString to display
typenews category
flagsdisplay flags for the news
reftype1Type of ref1
ref1Reference 1 to some object: Used for a possible viewport, scrolling after clicking on the news, and for deleteing the news when the object is deleted.
reftype2Type of ref2
ref2Reference 2 to some object: Used for scrolling after clicking on the news, and for deleteing the news when the object is deleted.
free_dataPointer to data that must be freed once the news message is cleared
See also
NewsSubtype

Definition at line 645 of file news_gui.cpp.

Referenced by AddVehicleAdviceNewsItem(), CheckSwitchToEuro(), CreateSubsidy(), and ShowRejectOrAcceptNews().

◆ ChangeVehicleNews()

void ChangeVehicleNews ( VehicleID  from_index,
VehicleID  to_index 
)

Report a change in vehicle IDs (due to autoreplace) to affected vehicle news.

Note
Viewports of currently displayed news is changed via ChangeVehicleViewports
Parameters
from_indexthe old vehicle ID
to_indexthe new vehicle ID

Definition at line 869 of file news_gui.cpp.

References NewsItem::next, NF_VEHICLE_PARAM0, and NR_VEHICLE.

◆ CmdCustomNewsItem()

CommandCost CmdCustomNewsItem ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Create a new custom news item.

Parameters
tileunused
flagstype of operation
p1various bitstuffed elements
  • p1 = (bit 0 - 7) - NewsType of the message.
  • p1 = (bit 8 - 15) - NewsReferenceType of first reference.
  • p1 = (bit 16 - 23) - Company this news message is for.
p2First reference of the news message.
textThe text of the news message.
Returns
the cost of this operation or an error

Definition at line 695 of file news_gui.cpp.

References _current_company, CMD_ERROR, GB(), and OWNER_DEITY.

◆ DeleteIndustryNews()

void DeleteIndustryNews ( IndustryID  iid)

Remove news regarding given industry.

Parameters
iidindustry to remove news about

Definition at line 824 of file news_gui.cpp.

References _oldest_news, DeleteNewsItem(), NewsItem::next, NR_INDUSTRY, NewsItem::ref1, NewsItem::ref2, NewsItem::reftype1, and NewsItem::reftype2.

◆ DeleteStationNews()

void DeleteStationNews ( StationID  sid)

Remove news regarding given station so there are no 'unknown station now accepts Mail' or 'First train arrived at unknown station' news items.

Parameters
sidstation to remove news about

Definition at line 807 of file news_gui.cpp.

References _oldest_news, DeleteNewsItem(), NewsItem::next, NR_STATION, NewsItem::ref1, NewsItem::ref2, NewsItem::reftype1, and NewsItem::reftype2.

◆ DeleteVehicleNews()

void DeleteVehicleNews ( VehicleID  vid,
StringID  news 
)

Delete a news item type about a vehicle.

When the news item type is INVALID_STRING_ID all news about the vehicle gets deleted.

Parameters
vidThe vehicle to remove the news for.
newsThe news type to remove.

Definition at line 788 of file news_gui.cpp.

References _oldest_news, DeleteNewsItem(), INVALID_STRING_ID, NewsItem::next, NR_VEHICLE, NewsItem::ref1, NewsItem::ref2, NewsItem::reftype1, NewsItem::reftype2, and NewsItem::string_id.

Referenced by AircraftHandleDestTooFar(), CmdStartStopVehicle(), DeleteOrderWarnings(), and Vehicle::HandlePathfindingResult().

◆ DrawNewsString()

static void DrawNewsString ( uint  left,
uint  right,
int  y,
TextColour  colour,
const NewsItem ni 
)
static

Draw an unformatted news message truncated to a maximum length.

If length exceeds maximum length it will be postfixed by '...'

Parameters
leftthe left most location for the string
rightthe right most location for the string
yposition of the string
colourthe colour the string will be shown in
*niNewsItem being printed
maxwmaximum width of string in pixels

Definition at line 967 of file news_gui.cpp.

◆ GetReferenceTile()

static TileIndex GetReferenceTile ( NewsReferenceType  reftype,
uint32  ref 
)
static

Get the position a news-reference is referencing.

Parameters
reftypeThe type of reference.
refThe reference.
Returns
A tile for the referenced object, or INVALID_TILE if none.

Definition at line 68 of file news_gui.cpp.

References SpecializedStation< Station, false >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >::Get(), INVALID_TILE, NR_INDUSTRY, NR_STATION, NR_TILE, NR_TOWN, TileDiffXY(), and BaseStation::xy.

Referenced by NewsWindow::OnClick().

Variable Documentation

◆ _current_news

const NewsItem* _current_news = NULL
static

Current news item (last item shown regularly).

Definition at line 59 of file news_gui.cpp.

Referenced by ReadyForNextItem(), and ShowLastNewsMessage().

◆ _forced_news

const NewsItem* _forced_news = NULL
static

Forced news item.

Users can force an item by accessing the history or "last message". If the message being shown was forced by the user, a pointer is stored in _forced_news. Otherwise, _forced_news variable is NULL.item the user has asked for

Definition at line 56 of file news_gui.cpp.

Referenced by ReadyForNextItem().

◆ _nested_company_news_widgets

const NWidgetPart _nested_company_news_widgets[]
static
Initial value:
= {
NWidget(WWT_PANEL, COLOUR_WHITE, WID_N_PANEL),
NWidget(WWT_CLOSEBOX, COLOUR_WHITE, WID_N_CLOSEBOX), SetPadding(0, 0, 0, 1),
NWidget(WWT_LABEL, COLOUR_WHITE, WID_N_TITLE), SetFill(1, 1), SetMinimalSize(410, 20), SetDataTip(STR_EMPTY, STR_NULL),
NWidget(WWT_EMPTY, COLOUR_WHITE, WID_N_MGR_FACE), SetMinimalSize(93, 119), SetPadding(2, 6, 2, 1),
NWidget(WWT_EMPTY, COLOUR_WHITE, WID_N_MGR_NAME), SetMinimalSize(93, 24), SetPadding(0, 0, 0, 1),
NWidget(WWT_EMPTY, COLOUR_WHITE, WID_N_COMPANY_MSG), SetFill(1, 1), SetMinimalSize(328, 150),
}
Face of the manager.
Definition: news_widget.h:29
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
Panel of the window.
Definition: news_widget.h:19
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
Invisible widget that takes some space.
Definition: widget_type.h:79
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
Title of the company news.
Definition: news_widget.h:20
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
Close the window.
Definition: news_widget.h:22
Message in company news items.
Definition: news_widget.h:27
Name of the manager.
Definition: news_widget.h:30
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
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983

Definition at line 129 of file news_gui.cpp.

◆ _nested_message_history

const NWidgetPart _nested_message_history[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_MESSAGE_HISTORY, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_MH_BACKGROUND), SetMinimalSize(200, 125), SetDataTip(0x0, STR_MESSAGE_HISTORY_TOOLTIP), SetResize(1, 12), SetScrollbar(WID_MH_SCROLLBAR),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
}
Background of the window.
Definition: news_widget.h:41
static NWidgetPart SetResize(int16 dx, int16 dy)
Widget part function for setting the resize step.
Definition: widget_type.h:930
Scrollbar for the list.
Definition: news_widget.h:42
Horizontal container.
Definition: widget_type.h:75
Resize box (normally at bottom-right of a window)
Definition: widget_type.h:68
Close box (at top-left of a window)
Definition: widget_type.h:69
Default window size box (at top-right of a window, between WWT_SHADEBOX and WWT_STICKYBOX) ...
Definition: widget_type.h:65
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
Sticky box (at top-right of a window, after WWT_DEFSIZEBOX)
Definition: widget_type.h:66
Vertical scrollbar.
Definition: widget_type.h:84
static NWidgetPart SetScrollbar(int index)
Attach a scrollbar to a widget.
Definition: widget_type.h:1095
Shade box (at top-right of a window, between WWT_DEBUGBOX and WWT_DEFSIZEBOX)
Definition: widget_type.h:64

Definition at line 1106 of file news_gui.cpp.

◆ _nested_normal_news_widgets

const NWidgetPart _nested_normal_news_widgets[]
static
Initial value:
= {
NWidget(WWT_PANEL, COLOUR_WHITE, WID_N_PANEL),
NWidget(WWT_CLOSEBOX, COLOUR_WHITE, WID_N_CLOSEBOX), SetPadding(0, 0, 0, 1),
NWidget(WWT_LABEL, COLOUR_WHITE, WID_N_DATE), SetDataTip(STR_DATE_LONG_SMALL, STR_NULL),
NWidget(WWT_EMPTY, COLOUR_WHITE, WID_N_MESSAGE), SetMinimalSize(428, 154), SetPadding(0, 5, 1, 5),
}
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
Panel of the window.
Definition: news_widget.h:19
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
Date of the news item.
Definition: news_widget.h:23
Invisible widget that takes some space.
Definition: widget_type.h:79
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
Close the window.
Definition: news_widget.h:22
Space for displaying the message. Only used in small news items.
Definition: news_widget.h:28
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
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983

Definition at line 80 of file news_gui.cpp.

◆ _nested_small_news_widgets

const NWidgetPart _nested_small_news_widgets[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE, WID_N_CLOSEBOX),
NWidget(WWT_EMPTY, COLOUR_LIGHT_BLUE, WID_N_CAPTION), SetFill(1, 0),
NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, WID_N_HEADLINE),
NWidget(WWT_INSET, COLOUR_LIGHT_BLUE, WID_N_INSET), SetPadding(2, 2, 2, 2),
NWidget(NWID_VIEWPORT, INVALID_COLOUR, WID_N_VIEWPORT), SetPadding(1, 1, 1, 1), SetMinimalSize(274, 47), SetFill(1, 0),
NWidget(WWT_EMPTY, COLOUR_WHITE, WID_N_MESSAGE), SetMinimalSize(275, 20), SetFill(1, 0), SetPadding(0, 5, 0, 5),
}
Nested widget containing a viewport.
Definition: widget_type.h:81
Empty widget, place holder to reserve space in widget array.
Definition: widget_type.h:48
Inset around the viewport in the window. Only used in small news items.
Definition: news_widget.h:25
Horizontal container.
Definition: widget_type.h:75
Pressed (inset) panel, most commonly used as combo box text area.
Definition: widget_type.h:51
Close box (at top-left of a window)
Definition: widget_type.h:69
Viewport in the window.
Definition: news_widget.h:26
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 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
Title bar of the window. Only used in small news items.
Definition: news_widget.h:24
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
Close the window.
Definition: news_widget.h:22
The news headline.
Definition: news_widget.h:21
Space for displaying the message. Only used in small news items.
Definition: news_widget.h:28
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

Definition at line 180 of file news_gui.cpp.

◆ _nested_thin_news_widgets

const NWidgetPart _nested_thin_news_widgets[]
static
Initial value:
= {
NWidget(WWT_PANEL, COLOUR_WHITE, WID_N_PANEL),
NWidget(WWT_CLOSEBOX, COLOUR_WHITE, WID_N_CLOSEBOX), SetPadding(0, 0, 0, 1),
NWidget(WWT_LABEL, COLOUR_WHITE, WID_N_DATE), SetDataTip(STR_DATE_LONG_SMALL, STR_NULL),
NWidget(WWT_EMPTY, COLOUR_WHITE, WID_N_MESSAGE), SetMinimalSize(428, 48), SetFill(1, 0), SetPadding(0, 5, 0, 5),
NWidget(NWID_VIEWPORT, INVALID_COLOUR, WID_N_VIEWPORT), SetMinimalSize(426, 70), SetPadding(1, 2, 2, 2),
}
Nested widget containing a viewport.
Definition: widget_type.h:81
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
Viewport in the window.
Definition: news_widget.h:26
Panel of the window.
Definition: news_widget.h:19
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
Date of the news item.
Definition: news_widget.h:23
Invisible widget that takes some space.
Definition: widget_type.h:79
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
Close the window.
Definition: news_widget.h:22
Space for displaying the message. Only used in small news items.
Definition: news_widget.h:28
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
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983

Definition at line 157 of file news_gui.cpp.

◆ _nested_vehicle_news_widgets

const NWidgetPart _nested_vehicle_news_widgets[]
static
Initial value:
= {
NWidget(WWT_PANEL, COLOUR_WHITE, WID_N_PANEL),
NWidget(WWT_CLOSEBOX, COLOUR_WHITE, WID_N_CLOSEBOX), SetPadding(0, 0, 0, 1),
NWidget(WWT_LABEL, COLOUR_WHITE, WID_N_VEH_TITLE), SetFill(1, 1), SetMinimalSize(419, 55), SetDataTip(STR_EMPTY, STR_NULL),
NWidget(WWT_PANEL, COLOUR_WHITE, WID_N_VEH_BKGND), SetPadding(0, 25, 1, 25),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_N_VEH_NAME), SetMinimalSize(369, 33), SetFill(1, 0),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_N_VEH_SPR), SetMinimalSize(369, 32), SetFill(1, 0),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_N_VEH_INFO), SetMinimalSize(369, 46), SetFill(1, 0),
}
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
Panel of the window.
Definition: news_widget.h:19
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
Invisible widget that takes some space.
Definition: widget_type.h:79
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
Name of the new vehicle.
Definition: news_widget.h:33
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
Close the window.
Definition: news_widget.h:22
Graphical display of the new vehicle.
Definition: news_widget.h:34
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
Dark background of new vehicle news.
Definition: news_widget.h:32
Vehicle new title.
Definition: news_widget.h:31
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:983
Some technical data of the new vehicle.
Definition: news_widget.h:35

Definition at line 102 of file news_gui.cpp.

◆ _news_type_data

NewsTypeData _news_type_data[]
static
Initial value:
= {
NewsTypeData("news_display.arrival_player", 60, SND_1D_APPLAUSE ),
NewsTypeData("news_display.arrival_other", 60, SND_1D_APPLAUSE ),
NewsTypeData("news_display.accident", 90, SND_BEGIN ),
NewsTypeData("news_display.company_info", 60, SND_BEGIN ),
NewsTypeData("news_display.open", 90, SND_BEGIN ),
NewsTypeData("news_display.close", 90, SND_BEGIN ),
NewsTypeData("news_display.economy", 30, SND_BEGIN ),
NewsTypeData("news_display.production_player", 30, SND_BEGIN ),
NewsTypeData("news_display.production_other", 30, SND_BEGIN ),
NewsTypeData("news_display.production_nobody", 30, SND_BEGIN ),
NewsTypeData("news_display.advice", 150, SND_BEGIN ),
NewsTypeData("news_display.new_vehicles", 30, SND_1E_OOOOH ),
NewsTypeData("news_display.acceptance", 90, SND_BEGIN ),
NewsTypeData("news_display.subsidies", 180, SND_BEGIN ),
NewsTypeData("news_display.general", 60, SND_BEGIN ),
}
Per-NewsType data.
Definition: news_type.h:112

Per-NewsType data.

Definition at line 224 of file news_gui.cpp.

◆ _news_window_layout

WindowDesc* _news_window_layout[]
static
Initial value:
= {
&_thin_news_desc,
&_small_news_desc,
&_normal_news_desc,
&_vehicle_news_desc,
&_company_news_desc,
}

Window layouts for news items.

Definition at line 206 of file news_gui.cpp.