OpenTTD Source 20251116-master-g21329071df
newgrf_badge_gui.h File Reference

GUI functions related to NewGRF badges. More...

#include "dropdown_type.h"
#include "newgrf.h"
#include "newgrf_badge.h"
#include "newgrf_badge_type.h"
#include "timer/timer_game_calendar.h"

Go to the source code of this file.

Data Structures

class  GUIBadgeClasses
 
struct  GUIBadgeClasses::Element
 
class  NWidgetBadgeFilter
 

Functions

int DrawBadgeNameList (Rect r, std::span< const BadgeID > badges, GrfSpecFeature feature)
 Draw names for a list of badge labels.
 
void DrawBadgeColumn (Rect r, int column_group, const GUIBadgeClasses &gui_classes, std::span< const BadgeID > badges, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, PaletteID remap)
 Draw a badge column group.
 
std::unique_ptr< DropDownListItemMakeDropDownListBadgeItem (const std::shared_ptr< GUIBadgeClasses > &gui_classes, std::span< const BadgeID > badges, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, std::string &&str, int value, bool masked=false, bool shaded=false)
 
std::unique_ptr< DropDownListItemMakeDropDownListBadgeItem (const std::shared_ptr< GUIBadgeClasses > &gui_classes, std::span< const BadgeID > badges, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, Money cost, std::string &&str, int value, bool masked=false, bool shaded=false)
 
std::unique_ptr< DropDownListItemMakeDropDownListBadgeIconItem (const std::shared_ptr< GUIBadgeClasses > &gui_classes, std::span< const BadgeID > badges, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, Money cost, const Dimension &dim, SpriteID sprite, PaletteID palette, std::string &&str, int value, bool masked=false, bool shaded=false)
 
DropDownList BuildBadgeClassConfigurationList (const class GUIBadgeClasses &badge_class, uint columns, std::span< const StringID > column_separators)
 
bool HandleBadgeConfigurationDropDownClick (GrfSpecFeature feature, uint columns, int result, int click_result, BadgeFilterChoices &choices)
 Handle the badge configuration drop down selection.
 
std::pair< WidgetID, WidgetIDAddBadgeDropdownFilters (NWidgetContainer &container, WidgetID widget, Colours colour, GrfSpecFeature feature)
 Add badge drop down filter widgets.
 
void ResetBadgeFilter (BadgeFilterChoices &choices, BadgeClassID badge_class_index)
 Reset badge filter choice for a class.
 
void SetBadgeFilter (BadgeFilterChoices &choices, BadgeID badge_index)
 Set badge filter choice for a class.
 

Detailed Description

GUI functions related to NewGRF badges.

Definition in file newgrf_badge_gui.h.

Function Documentation

◆ AddBadgeDropdownFilters()

std::pair< WidgetID, WidgetID > AddBadgeDropdownFilters ( NWidgetContainer container,
WidgetID  widget,
Colours  colour,
GrfSpecFeature  feature 
)

Add badge drop down filter widgets.

Parameters
containerContainer widget to hold filter widgets.
widgetWidget index to apply to first filter.
colourBackground colour of widgets.
featureGRF feature for filters.
Returns
First and last widget indexes of filter widgets.

Definition at line 558 of file newgrf_badge_gui.cpp.

References NWidgetContainer::Add(), GetBadgeClassConfigItem(), and GetClassBadge().

◆ DrawBadgeColumn()

void DrawBadgeColumn ( Rect  r,
int  column_group,
const GUIBadgeClasses gui_classes,
std::span< const BadgeID badges,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date introduction_date,
PaletteID  remap 
)

Draw a badge column group.

Parameters
rrect to draw within.
column_groupcolumn to draw.
gui_classesgui badge classes.
badgesbadges to draw.
featurefeature being used.
introduction_dateintroduction date of item.
remappalette remap to for company-coloured badges.

Definition at line 163 of file newgrf_badge_gui.cpp.

References _current_text_dir, Badge::class_index, GetBadge(), GetBadgeSprite(), Rect::Indent(), PalSpriteID::pal, SA_CENTER, WidgetDimensions::scaled, ScaleGUITrad(), PalSpriteID::sprite, TD_RTL, and Rect::WithWidth().

◆ DrawBadgeNameList()

int DrawBadgeNameList ( Rect  r,
std::span< const BadgeID badges,
GrfSpecFeature  feature 
)

Draw names for a list of badge labels.

Parameters
rRect to draw in.
badgesList of badges.
featureGRF feature being used.
Returns
Vertical position after drawing is complete.

Definition at line 119 of file newgrf_badge_gui.cpp.

References AppendStringInPlace(), Badge::class_index, DrawStringMultiLine(), Badge::flags, GetBadge(), GetClassBadge(), GetListSeparator(), GetString(), FlatSet< Tkey, Tcompare >::insert(), Badge::name, NameListFirstOnly, NameListStop, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().

◆ HandleBadgeConfigurationDropDownClick()

bool HandleBadgeConfigurationDropDownClick ( GrfSpecFeature  feature,
uint  columns,
int  result,
int  click_result,
BadgeFilterChoices &  choices 
)

Handle the badge configuration drop down selection.

Parameters
featureFeature being used.
columnsMaximum column number permitted.
resultSelected dropdown item value.
click_resultDropdown click result.
Returns
true iff the caller should reinitialise their widgets.

Definition at line 463 of file newgrf_badge_gui.cpp.

References GetClassBadge(), and ResetBadgeClassConfiguration().

◆ MakeDropDownListBadgeIconItem()

std::unique_ptr< DropDownListItem > MakeDropDownListBadgeIconItem ( const std::shared_ptr< GUIBadgeClasses > &  gui_classes,
std::span< const BadgeID badges,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date introduction_date,
Money  cost,
const Dimension dim,
SpriteID  sprite,
PaletteID  palette,
std::string &&  str,
int  value,
bool  masked = false,
bool  shaded = false 
)

Definition at line 259 of file newgrf_badge_gui.cpp.

◆ MakeDropDownListBadgeItem() [1/2]

std::unique_ptr< DropDownListItem > MakeDropDownListBadgeItem ( const std::shared_ptr< GUIBadgeClasses > &  gui_classes,
std::span< const BadgeID badges,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date introduction_date,
Money  cost,
std::string &&  str,
int  value,
bool  masked = false,
bool  shaded = false 
)

Definition at line 254 of file newgrf_badge_gui.cpp.

◆ MakeDropDownListBadgeItem() [2/2]

std::unique_ptr< DropDownListItem > MakeDropDownListBadgeItem ( const std::shared_ptr< GUIBadgeClasses > &  gui_classes,
std::span< const BadgeID badges,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date introduction_date,
std::string &&  str,
int  value,
bool  masked = false,
bool  shaded = false 
)

Definition at line 249 of file newgrf_badge_gui.cpp.

◆ ResetBadgeFilter()

void ResetBadgeFilter ( BadgeFilterChoices &  choices,
BadgeClassID  badge_class_index 
)

Reset badge filter choice for a class.

Parameters
choicesBadge filter choices.
badge_class_indexBadge class to reset.

Definition at line 582 of file newgrf_badge_gui.cpp.

◆ SetBadgeFilter()

void SetBadgeFilter ( BadgeFilterChoices &  choices,
BadgeID  badge_index 
)

Set badge filter choice for a class.

Parameters
choicesBadge filter choices.
badge_indexBadge to set. The badge class is inferred from the badge.
Note
if the badge_index is invalid, the filter will be reset instead.

Definition at line 593 of file newgrf_badge_gui.cpp.

References Badge::class_index, and GetBadge().