GUI to change NewGRF settings. More...
#include "stdafx.h"
#include "gui.h"
#include "newgrf.h"
#include "strings_func.h"
#include "window_func.h"
#include "gamelog.h"
#include "settings_type.h"
#include "settings_func.h"
#include "widgets/dropdown_type.h"
#include "network/network.h"
#include "network/network_content.h"
#include "sortlist_type.h"
#include "querystring_gui.h"
#include "core/geometry_func.hpp"
#include "newgrf_text.h"
#include "fileio_func.h"
#include "fontcache.h"
#include "table/strings.h"
#include "table/sprites.h"
Go to the source code of this file.
Data Structures | |
struct | NewGRFParametersWindow |
Window for setting the parameters of a NewGRF. More... | |
struct | NewGRFTextfileWindow |
Window for displaying the textfile of a NewGRF. More... | |
class | DropDownListPresetItem |
struct | NewGRFWindow |
Window for showing NewGRF files. More... | |
class | NWidgetNewGRFDisplay |
Custom nested widget container for the NewGRF gui. More... | |
struct | ScanProgressWindow |
Window for showing the progress of NewGRF scanning. More... | |
Enumerations | |
enum | ShowNewGRFParametersWidgets { GRFPAR_WIDGET_SHOW_NUMPAR, GRFPAR_WIDGET_NUMPAR_DEC, GRFPAR_WIDGET_NUMPAR_INC, GRFPAR_WIDGET_NUMPAR, GRFPAR_WIDGET_NUMPAR_TEXT, GRFPAR_WIDGET_BACKGROUND, GRFPAR_WIDGET_SCROLLBAR, GRFPAR_WIDGET_ACCEPT, GRFPAR_WIDGET_RESET, GRFPAR_WIDGET_SHOW_DESCRIPTION, GRFPAR_WIDGET_DESCRIPTION } |
Enum referring to the widgets of the NewGRF parameters window. More... | |
enum | ShowNewGRFTextfileWidgets { GTW_WIDGET_CAPTION, GTW_WIDGET_BACKGROUND, GTW_WIDGET_VSCROLLBAR, GTW_WIDGET_HSCROLLBAR } |
Widgets of the NewGRFTextfileWindow. More... | |
enum | ShowNewGRFStateWidgets { SNGRFS_PRESET_LIST, SNGRFS_PRESET_SAVE, SNGRFS_PRESET_DELETE, SNGRFS_ADD, SNGRFS_REMOVE, SNGRFS_MOVE_UP, SNGRFS_MOVE_DOWN, SNGRFS_FILTER, SNGRFS_FILE_LIST, SNGRFS_SCROLLBAR, SNGRFS_AVAIL_LIST, SNGRFS_SCROLL2BAR, SNGRFS_NEWGRF_INFO_TITLE, SNGRFS_NEWGRF_INFO, SNGRFS_NEWGRF_TEXTFILE, SNGRFS_SET_PARAMETERS = SNGRFS_NEWGRF_TEXTFILE + TFT_END, SNGRFS_TOGGLE_PALETTE, SNGRFS_APPLY_CHANGES, SNGRFS_RESCAN_FILES, SNGRFS_RESCAN_FILES2, SNGRFS_CONTENT_DOWNLOAD, SNGRFS_CONTENT_DOWNLOAD2, SNGRFS_SHOW_REMOVE, SNGRFS_SHOW_APPLY } |
Names of the manage newgrfs window widgets. More... | |
enum | ScanProgressWindowWidgets { SPWW_PROGRESS_BAR, GPWW_PROGRESS_TEXT } |
The widgets for the scan progress. More... | |
Functions | |
void | ShowNewGRFError () |
Show the first NewGRF error we can find. | |
static void | ShowNewGRFInfo (const GRFConfig *c, uint x, uint y, uint right, uint bottom, bool show_params) |
void | OpenGRFParameterWindow (GRFConfig *c) |
void | ShowNewGRFTextfileWindow (const GRFConfig *c, TextfileType file_type) |
static void | NewGRFConfirmationCallback (Window *w, bool confirmed) |
Callback function for the newgrf 'apply changes' confirmation window. | |
NWidgetBase * | NewGRFDisplay (int *biggest_index) |
Construct nested container widget for managing the lists and the info panel of the NewGRF GUI. | |
void | ShowNewGRFSettings (bool editable, bool show_params, bool exec_changes, GRFConfig **config) |
Setup the NewGRF gui. | |
void | UpdateNewGRFScanStatus (uint num, const char *name) |
Update the NewGRF scan status. | |
Variables | |
static const NWidgetPart | _nested_newgrf_parameter_widgets [] |
static const WindowDesc | _newgrf_parameters_desc (WDP_CENTER, 500, 208, WC_GRF_PARAMETERS, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_newgrf_parameter_widgets, lengthof(_nested_newgrf_parameter_widgets)) |
Window definition for the change grf parameters window. | |
static const NWidgetPart | _nested_newgrf_textfile_widgets [] |
static const WindowDesc | _newgrf_textfile_desc (WDP_CENTER, 630, 460, WC_NEWGRF_TEXTFILE, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_newgrf_textfile_widgets, lengthof(_nested_newgrf_textfile_widgets)) |
Window definition for the grf textfile window. | |
static GRFPresetList | _grf_preset_list |
static const NWidgetPart | _nested_newgrf_actives_widgets [] |
static const NWidgetPart | _nested_newgrf_availables_widgets [] |
static const NWidgetPart | _nested_newgrf_infopanel_widgets [] |
static const NWidgetPart | _nested_newgrf_widgets [] |
static const WindowDesc | _newgrf_desc (WDP_CENTER, 300, 263, WC_GAME_OPTIONS, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_newgrf_widgets, lengthof(_nested_newgrf_widgets)) |
static const NWidgetPart | _nested_scan_progress_widgets [] |
Widgets for the progress window. | |
static const WindowDesc | _scan_progress_desc (WDP_CENTER, 0, 0, WC_MODAL_PROGRESS, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_scan_progress_widgets, lengthof(_nested_scan_progress_widgets)) |
Description of the widgets and other settings of the window. |
GUI to change NewGRF settings.
Definition in file newgrf_gui.cpp.
The widgets for the scan progress.
SPWW_PROGRESS_BAR |
Simple progress bar. |
GPWW_PROGRESS_TEXT |
Text explaining what is happening. |
Definition at line 1941 of file newgrf_gui.cpp.
Enum referring to the widgets of the NewGRF parameters window.
GRFPAR_WIDGET_SHOW_NUMPAR |
NWID_SELECTION to optionally display GRFPAR_WIDGET_NUMPAR |
GRFPAR_WIDGET_NUMPAR_DEC |
Button to decrease number of parameters. |
GRFPAR_WIDGET_NUMPAR_INC |
Button to increase number of parameters. |
GRFPAR_WIDGET_NUMPAR |
Optional number of parameters. |
GRFPAR_WIDGET_NUMPAR_TEXT |
Text description. |
GRFPAR_WIDGET_BACKGROUND |
Panel to draw the settings on. |
GRFPAR_WIDGET_SCROLLBAR |
Scrollbar to scroll through all settings. |
GRFPAR_WIDGET_ACCEPT |
Accept button. |
GRFPAR_WIDGET_RESET |
Reset button. |
GRFPAR_WIDGET_SHOW_DESCRIPTION |
NWID_SELECTION to optionally display parameter descriptions |
GRFPAR_WIDGET_DESCRIPTION |
Multi-line description of a parameter. |
Definition at line 141 of file newgrf_gui.cpp.
Names of the manage newgrfs window widgets.
SNGRFS_SHOW_REMOVE |
Select active list buttons (0 = normal, 1 = simple layout). |
SNGRFS_SHOW_APPLY |
Select display of the buttons below the 'details'. |
Definition at line 702 of file newgrf_gui.cpp.
Widgets of the NewGRFTextfileWindow.
Definition at line 469 of file newgrf_gui.cpp.
static void NewGRFConfirmationCallback | ( | Window * | w, | |
bool | confirmed | |||
) | [static] |
Callback function for the newgrf 'apply changes' confirmation window.
w | Window which is calling this callback | |
confirmed | boolean value, true when yes was clicked, false otherwise |
Definition at line 1896 of file newgrf_gui.cpp.
References _grfconfig, NewGRFWindow::active_sel, NewGRFWindow::actives, NewGRFWindow::avails, CopyGRFConfigList(), DeleteWindowByClass(), GamelogGRFUpdate(), GamelogStartAction(), GamelogStopAction(), GLAT_GRF, Window::InvalidateData(), GRFConfig::next, NewGRFWindow::orig_list, ReInitAllWindows(), and ReloadNewGRFData().
NWidgetBase* NewGRFDisplay | ( | int * | biggest_index | ) |
Construct nested container widget for managing the lists and the info panel of the NewGRF GUI.
Definition at line 1853 of file newgrf_gui.cpp.
References lengthof, MakeNWidgets(), and max().
void ShowNewGRFSettings | ( | bool | editable, | |
bool | show_params, | |||
bool | exec_changes, | |||
GRFConfig ** | config | |||
) |
Setup the NewGRF gui.
editable | allow the user to make changes to the grfconfig in the window | |
show_params | show information about what parameters are set for the grf files | |
exec_changes | if changes are made to the list (editable is true), apply these changes immediately or only update the list | |
config | pointer to a linked-list of grfconfig's that will be shown |
Definition at line 1934 of file newgrf_gui.cpp.
References DeleteWindowByClass().
Referenced by MenuClickSettings(), and SelectGameWindow::OnClick().
void UpdateNewGRFScanStatus | ( | uint | num, | |
const char * | name | |||
) |
Update the NewGRF scan status.
num | The number of NewGRFs scanned so far. | |
name | The name of the last scanned NewGRF. |
Definition at line 2058 of file newgrf_gui.cpp.
References FindWindowByClass(), and ScanProgressWindow::UpdateNewGRFScanStatus().
Referenced by GRFFileScanner::AddFile(), and ScanNewGRFFiles().
const NWidgetPart _nested_newgrf_infopanel_widgets[] [static] |
{ NWidget(NWID_VERTICAL), SetPadding(0, 0, 2, 0), NWidget(WWT_PANEL, COLOUR_MAUVE), SetPadding(0, 0, 2, 0), NWidget(WWT_EMPTY, COLOUR_MAUVE, SNGRFS_NEWGRF_INFO_TITLE), SetFill(1, 0), SetResize(1, 0), NWidget(WWT_EMPTY, COLOUR_MAUVE, SNGRFS_NEWGRF_INFO), SetFill(1, 1), SetResize(1, 1), SetMinimalSize(150, 100), EndContainer(), NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_NEWGRF_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_NEWGRF_SETTINGS_VIEW_README, STR_NULL), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_NEWGRF_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_NEWGRF_SETTINGS_VIEW_CHANGELOG, STR_NULL), NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_NEWGRF_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_NEWGRF_SETTINGS_VIEW_LICENSE, STR_NULL), EndContainer(), EndContainer(), NWidget(NWID_SELECTION, INVALID_COLOUR, SNGRFS_SHOW_APPLY), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(0, WD_RESIZEBOX_WIDTH, 0), NWidget(NWID_VERTICAL), NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_SET_PARAMETERS), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_NEWGRF_SETTINGS_SET_PARAMETERS, STR_NULL), NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_TOGGLE_PALETTE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_NEWGRF_SETTINGS_TOGGLE_PALETTE, STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP), EndContainer(), NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_APPLY_CHANGES), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_NEWGRF_SETTINGS_APPLY_CHANGES, STR_NULL), EndContainer(), EndContainer(), }
Definition at line 1821 of file newgrf_gui.cpp.
const NWidgetPart _nested_newgrf_parameter_widgets[] [static] |
{ NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_MAUVE), NWidget(WWT_CAPTION, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_PARAMETERS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), EndContainer(), NWidget(NWID_SELECTION, INVALID_COLOUR, GRFPAR_WIDGET_SHOW_NUMPAR), NWidget(WWT_PANEL, COLOUR_MAUVE), SetResize(1, 0), SetFill(1, 0), SetPIP(4, 0, 4), NWidget(NWID_HORIZONTAL), SetPIP(4, 0, 4), NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, GRFPAR_WIDGET_NUMPAR_DEC), SetMinimalSize(12, 12), SetDataTip(AWV_DECREASE, STR_NULL), NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, GRFPAR_WIDGET_NUMPAR_INC), SetMinimalSize(12, 12), SetDataTip(AWV_INCREASE, STR_NULL), NWidget(WWT_TEXT, COLOUR_MAUVE, GRFPAR_WIDGET_NUMPAR), SetResize(1, 0), SetFill(1, 0), SetPadding(0, 0, 0, 4), SetDataTip(STR_NEWGRF_PARAMETERS_NUM_PARAM, STR_NULL), EndContainer(), EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_MATRIX, COLOUR_MAUVE, GRFPAR_WIDGET_BACKGROUND), SetMinimalSize(188, 182), SetResize(1, 1), SetFill(1, 0), SetDataTip(0x501, STR_NULL), SetScrollbar(GRFPAR_WIDGET_SCROLLBAR), NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, GRFPAR_WIDGET_SCROLLBAR), EndContainer(), NWidget(NWID_SELECTION, INVALID_COLOUR, GRFPAR_WIDGET_SHOW_DESCRIPTION), NWidget(WWT_PANEL, COLOUR_MAUVE, GRFPAR_WIDGET_DESCRIPTION), SetResize(1, 0), SetFill(1, 0), EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, GRFPAR_WIDGET_ACCEPT), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NEWGRF_PARAMETERS_CLOSE, STR_NULL), NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, GRFPAR_WIDGET_RESET), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NEWGRF_PARAMETERS_RESET, STR_NEWGRF_PARAMETERS_RESET_TOOLTIP), EndContainer(), NWidget(WWT_RESIZEBOX, COLOUR_MAUVE), EndContainer(), }
Definition at line 423 of file newgrf_gui.cpp.
const NWidgetPart _nested_newgrf_textfile_widgets[] [static] |
{ NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_MAUVE), NWidget(WWT_CAPTION, COLOUR_MAUVE, GTW_WIDGET_CAPTION), SetDataTip(STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_PANEL, COLOUR_MAUVE, GTW_WIDGET_BACKGROUND), SetMinimalSize(200, 125), SetResize(1, 12), SetScrollbar(GTW_WIDGET_VSCROLLBAR), EndContainer(), NWidget(NWID_VERTICAL), NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, GTW_WIDGET_VSCROLLBAR), EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(NWID_HSCROLLBAR, COLOUR_MAUVE, GTW_WIDGET_HSCROLLBAR), NWidget(WWT_RESIZEBOX, COLOUR_MAUVE), EndContainer(), }
Definition at line 648 of file newgrf_gui.cpp.
const NWidgetPart _nested_newgrf_widgets[] [static] |
{ NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_MAUVE), NWidget(WWT_CAPTION, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_SETTINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), EndContainer(), NWidget(WWT_PANEL, COLOUR_MAUVE), NWidgetFunction(NewGRFDisplay), SetPadding(WD_RESIZEBOX_WIDTH, WD_RESIZEBOX_WIDTH, 2, WD_RESIZEBOX_WIDTH), NWidget(NWID_HORIZONTAL), NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0), NWidget(WWT_RESIZEBOX, COLOUR_MAUVE), EndContainer(), EndContainer(), }
Definition at line 1868 of file newgrf_gui.cpp.
const NWidgetPart _nested_scan_progress_widgets[] [static] |
{ NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_NEWGRF_SCAN_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), NWidget(WWT_PANEL, COLOUR_GREY), NWidget(NWID_HORIZONTAL), SetPIP(20, 0, 20), NWidget(NWID_VERTICAL), SetPIP(11, 8, 11), NWidget(WWT_LABEL, INVALID_COLOUR), SetDataTip(STR_NEWGRF_SCAN_MESSAGE, STR_NULL), SetFill(1, 0), NWidget(WWT_EMPTY, INVALID_COLOUR, SPWW_PROGRESS_BAR), SetFill(1, 0), NWidget(WWT_EMPTY, INVALID_COLOUR, GPWW_PROGRESS_TEXT), SetFill(1, 0), EndContainer(), EndContainer(), EndContainer(), }
Widgets for the progress window.
Definition at line 1947 of file newgrf_gui.cpp.
const WindowDesc _scan_progress_desc(WDP_CENTER, 0, 0, WC_MODAL_PROGRESS, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_scan_progress_widgets, lengthof(_nested_scan_progress_widgets)) [static] |
Description of the widgets and other settings of the window.
Referenced by ScanProgressWindow::ScanProgressWindow().