|
OpenTTD Source
14.0-beta1
|
Window for showing NewGRF files. More...
Public Types | |
| typedef GUIList< const GRFConfig *, std::nullptr_t, StringFilter & > | GUIGRFConfigList |
Public Types inherited from Window | |
| using | IteratorToFront = WindowIterator< false > |
| Iterate in Z order towards front. | |
| using | IteratorToBack = WindowIterator< true > |
| Iterate in Z order towards back. | |
| using | Iterate = AllWindows< false > |
| Iterate all windows in whatever order is easiest. | |
| using | IterateFromBack = AllWindows< false > |
| Iterate all windows in Z order from back to front. | |
| using | IterateFromFront = AllWindows< true > |
| Iterate all windows in Z order from front to back. | |
Public Member Functions | |
| NewGRFWindow (WindowDesc *desc, bool editable, bool show_params, bool execute, GRFConfig **orig_list) | |
| void | Close ([[maybe_unused]] int data=0) override |
| bool | CanUpgradeCurrent () |
| Test whether the currently active set of NewGRFs can be upgraded with the available NewGRFs. More... | |
| void | UpgradeCurrent () |
| Upgrade the currently active set of NewGRFs. | |
| void | UpdateWidgetSize (WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override |
| void | OnResize () override |
| Called after the window got resized. More... | |
| void | SetStringParameters (WidgetID widget) const override |
| PaletteID | GetPalette (const GRFConfig *c) const |
| Pick the palette for the sprite of the grf to display. More... | |
| void | DrawWidget (const Rect &r, WidgetID widget) const override |
| void | OnClick ([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override |
| void | OnNewGRFsScanned () override |
| Called whenever the NewGRF scan completed. | |
| void | OnDropdownSelect (WidgetID widget, int index) override |
| void | OnQueryTextFinished (char *str) override |
| void | UpdateScrollBars () |
| Updates the scroll bars for the active and inactive NewGRF lists. | |
| void | OnInvalidateData ([[maybe_unused]] int data=0, [[maybe_unused]] bool gui_scope=true) override |
| Some data on this window has become invalid. More... | |
| EventState | OnKeyPress ([[maybe_unused]] char32_t key, uint16_t keycode) override |
| void | OnEditboxChanged (WidgetID widget) override |
| void | OnDragDrop (Point pt, WidgetID widget) override |
| void | OnMouseDrag (Point pt, WidgetID widget) override |
Public Member Functions inherited from Window | |
| Window (WindowDesc *desc) | |
| Empty constructor, initialization has been moved to InitNested() called from the constructor of the derived class. More... | |
| void * | operator new[] (size_t size)=delete |
| Helper allocation function to disallow something. More... | |
| template<class NWID > | |
| const NWID * | GetWidget (WidgetID widnum) const |
| Get the nested widget with number widnum from the nested widget tree. More... | |
| template<class NWID > | |
| NWID * | GetWidget (WidgetID widnum) |
| Get the nested widget with number widnum from the nested widget tree. More... | |
| const Scrollbar * | GetScrollbar (WidgetID widnum) const |
| Return the Scrollbar to a widget index. More... | |
| Scrollbar * | GetScrollbar (WidgetID widnum) |
| Return the Scrollbar to a widget index. More... | |
| const QueryString * | GetQueryString (WidgetID widnum) const |
| Return the querystring associated to a editbox. More... | |
| QueryString * | GetQueryString (WidgetID widnum) |
| Return the querystring associated to a editbox. More... | |
| void | UpdateQueryStringSize () |
| Update size of all QueryStrings of this window. | |
| virtual const struct Textbuf * | GetFocusedTextbuf () const |
| Get the current input text buffer. More... | |
| virtual Point | GetCaretPosition () const |
| Get the current caret position if an edit box has the focus. More... | |
| virtual Rect | GetTextBoundingRect (const char *from, const char *to) const |
| Get the bounding rectangle for a text range if an edit box has the focus. More... | |
| virtual ptrdiff_t | GetTextCharacterAtPosition (const Point &pt) const |
| Get the character that is rendered at a position by the focused edit box. More... | |
| void | InitNested (WindowNumber number=0) |
| Perform complete initialization of the Window with nested widgets, to allow use. More... | |
| void | CreateNestedTree () |
| Perform the first part of the initialization of a nested widget tree. More... | |
| void | FinishInitNested (WindowNumber window_number=0) |
| Perform the second part of the initialization of a nested widget tree. More... | |
| template<typename T , std::enable_if_t< std::is_base_of< StrongTypedefBase, T >::value, int > = 0> | |
| void | FinishInitNested (T number) |
| void | SetTimeout () |
| Set the timeout flag of the window and initiate the timer. | |
| void | SetWhiteBorder () |
| Set the timeout flag of the window and initiate the timer. | |
| void | DisableAllWidgetHighlight () |
| Disable the highlighted status of all widgets. | |
| void | SetWidgetHighlight (WidgetID widget_index, TextColour highlighted_colour) |
| Sets the highlighted status of a widget. More... | |
| bool | IsWidgetHighlighted (WidgetID widget_index) const |
| Gets the highlighted status of a widget. More... | |
| void | SetWidgetDisabledState (WidgetID widget_index, bool disab_stat) |
| Sets the enabled/disabled status of a widget. More... | |
| void | DisableWidget (WidgetID widget_index) |
| Sets a widget to disabled. More... | |
| void | EnableWidget (WidgetID widget_index) |
| Sets a widget to Enabled. More... | |
| bool | IsWidgetDisabled (WidgetID widget_index) const |
| Gets the enabled/disabled status of a widget. More... | |
| bool | IsWidgetFocused (WidgetID widget_index) const |
| Check if given widget is focused within this window. More... | |
| bool | IsWidgetGloballyFocused (WidgetID widget_index) const |
| Check if given widget has user input focus. More... | |
| void | SetWidgetLoweredState (WidgetID widget_index, bool lowered_stat) |
| Sets the lowered/raised status of a widget. More... | |
| void | ToggleWidgetLoweredState (WidgetID widget_index) |
| Invert the lowered/raised status of a widget. More... | |
| void | LowerWidget (WidgetID widget_index) |
| Marks a widget as lowered. More... | |
| void | RaiseWidget (WidgetID widget_index) |
| Marks a widget as raised. More... | |
| void | RaiseWidgetWhenLowered (byte widget_index) |
| Marks a widget as raised and dirty (redraw), when it is marked as lowered. More... | |
| bool | IsWidgetLowered (WidgetID widget_index) const |
| Gets the lowered state of a widget. More... | |
| void | UnfocusFocusedWidget () |
| Makes no widget on this window have focus. More... | |
| bool | SetFocusedWidget (WidgetID widget_index) |
| Set focus within this window to the given widget. More... | |
| EventState | HandleEditBoxKey (WidgetID wid, char32_t key, uint16_t keycode) |
| Process keypress for editbox widget. More... | |
| virtual void | InsertTextString (WidgetID wid, const char *str, bool marked, const char *caret, const char *insert_location, const char *replacement_end) |
| Insert a text string at the cursor position into the edit box widget. More... | |
| void | HandleButtonClick (WidgetID widget) |
| Do all things to make a button look clicked and mark it to be unclicked in a few ticks. More... | |
| int | GetRowFromWidget (int clickpos, WidgetID widget, int padding, int line_height=-1) const |
| Compute the row of a widget that a user clicked in. More... | |
| void | RaiseButtons (bool autoraise=false) |
| Raise the buttons of the window. More... | |
| template<typename... Args> | |
| void | SetWidgetsDisabledState (bool disab_stat, Args... widgets) |
| Sets the enabled/disabled status of a list of widgets. More... | |
| template<typename... Args> | |
| void | SetWidgetsLoweredState (bool lowered_stat, Args... widgets) |
| Sets the lowered/raised status of a list of widgets. More... | |
| template<typename... Args> | |
| void | RaiseWidgetsWhenLowered (Args... widgets) |
| Raises the widgets and sets widgets dirty that are lowered. More... | |
| void | SetWidgetDirty (WidgetID widget_index) const |
| Invalidate a widget, i.e. More... | |
| void | DrawWidgets () const |
| Paint all widgets of a window. | |
| void | DrawViewport () const |
| Draw the viewport of this window. | |
| void | DrawSortButtonState (WidgetID widget, SortButtonState state) const |
| Draw a sort button's up or down arrow symbol. More... | |
| void | CloseChildWindows (WindowClass wc=WC_INVALID) const |
| Close all children a window might have in a head-recursive manner. More... | |
| virtual void | Close (int data=0) |
| Hide the window and all its child windows, and mark them for a later deletion. | |
| void | SetDirty () const |
| Mark entire window as dirty (in need of re-paint) | |
| void | ReInit (int rx=0, int ry=0, bool reposition=false) |
| Re-initialize a window, and optionally change its size. More... | |
| bool | IsShaded () const |
| Is window shaded currently? | |
| void | SetShaded (bool make_shaded) |
| Set the shaded state of the window to make_shaded. More... | |
| void | ScheduleResize () |
| Mark this window as resized and in need of OnResize() event. | |
| void | ProcessScheduledResize () |
| Process scheduled OnResize() event. | |
| void | InvalidateData (int data=0, bool gui_scope=true) |
| Mark this window's data as invalid (in need of re-computing) More... | |
| void | ProcessScheduledInvalidations () |
| Process all scheduled invalidations. | |
| void | ProcessHighlightedInvalidations () |
| Process all invalidation of highlighted widgets. | |
| virtual void | OnInit () |
| Notification that the nested widget tree gets initialized. More... | |
| virtual void | ApplyDefaults () |
| Read default values from WindowDesc configuration an apply them to the window. | |
| virtual Point | OnInitialPosition (int16_t sm_width, int16_t sm_height, int window_number) |
| Compute the initial position of the window. More... | |
| virtual void | OnPaint () |
| The window must be repainted. More... | |
| virtual void | DrawWidget ([[maybe_unused]] const Rect &r, [[maybe_unused]] WidgetID widget) const |
| Draw the contents of a nested widget. More... | |
| virtual void | UpdateWidgetSize ([[maybe_unused]] WidgetID widget, [[maybe_unused]] Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) |
| Update size and resize step of a widget in the window. More... | |
| virtual void | SetStringParameters ([[maybe_unused]] WidgetID widget) const |
| Initialize string parameters for a widget. More... | |
| virtual void | OnFocus () |
| The window has gained focus. More... | |
| virtual void | OnFocusLost (bool closing) |
| The window has lost focus. More... | |
| virtual EventState | OnKeyPress ([[maybe_unused]] char32_t key, [[maybe_unused]] uint16_t keycode) |
| A key has been pressed. More... | |
| virtual EventState | OnHotkey (int hotkey) |
| A hotkey has been pressed. More... | |
| virtual EventState | OnCTRLStateChange () |
| The state of the control key has changed. More... | |
| virtual void | OnClick ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget, [[maybe_unused]] int click_count) |
| A click with the left mouse button has been made on the window. More... | |
| virtual bool | OnRightClick ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
| A click with the right mouse button has been made on the window. More... | |
| virtual void | OnHover ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
| The mouse is hovering over a widget in the window, perform an action for it. More... | |
| virtual bool | OnTooltip ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget, [[maybe_unused]] TooltipCloseCondition close_cond) |
| Event to display a custom tooltip. More... | |
| virtual void | OnMouseDrag ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
| An 'object' is being dragged at the provided position, highlight the target if possible. More... | |
| virtual void | OnDragDrop ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
| A dragged 'object' has been released. More... | |
| virtual void | OnScroll ([[maybe_unused]] Point delta) |
| Handle the request for (viewport) scrolling. More... | |
| virtual void | OnMouseOver ([[maybe_unused]] Point pt, [[maybe_unused]] WidgetID widget) |
| The mouse is currently moving over the window or has just moved outside of the window. More... | |
| virtual void | OnMouseWheel ([[maybe_unused]] int wheel) |
| The mouse wheel has been turned. More... | |
| virtual void | OnMouseLoop () |
| Called for every mouse loop run, which is at least once per (game) tick. | |
| virtual void | OnGameTick () |
| Called once per (game) tick. | |
| virtual void | OnRealtimeTick ([[maybe_unused]] uint delta_ms) |
| Called periodically. | |
| virtual void | OnTimeout () |
| Called when this window's timeout has been reached. | |
| virtual void | OnDropdownSelect ([[maybe_unused]] WidgetID widget, [[maybe_unused]] int index) |
| A dropdown option associated to this window has been selected. More... | |
| virtual void | OnDropdownClose (Point pt, WidgetID widget, int index, bool instant_close) |
| A dropdown window associated to this window has been closed. More... | |
| virtual void | OnEditboxChanged ([[maybe_unused]] WidgetID widget) |
| The text in an editbox has been edited. More... | |
| virtual void | OnQueryTextFinished ([[maybe_unused]] char *str) |
| The query window opened from this window has closed. More... | |
| virtual void | OnPlaceObject ([[maybe_unused]] Point pt, [[maybe_unused]] TileIndex tile) |
| The user clicked some place on the map when a tile highlight mode has been set. More... | |
| virtual bool | OnVehicleSelect ([[maybe_unused]] const struct Vehicle *v) |
| The user clicked on a vehicle while HT_VEHICLE has been set. More... | |
| virtual bool | OnVehicleSelect ([[maybe_unused]] VehicleList::const_iterator begin, [[maybe_unused]] VehicleList::const_iterator end) |
| The user clicked on a vehicle while HT_VEHICLE has been set. More... | |
| virtual void | OnPlaceObjectAbort () |
| The user cancelled a tile highlight mode that has been set. | |
| virtual void | OnPlaceDrag ([[maybe_unused]] ViewportPlaceMethod select_method, [[maybe_unused]] ViewportDragDropSelectionProcess select_proc, [[maybe_unused]] Point pt) |
| The user is dragging over the map when the tile highlight mode has been set. More... | |
| virtual void | OnPlaceMouseUp ([[maybe_unused]] ViewportPlaceMethod select_method, [[maybe_unused]] ViewportDragDropSelectionProcess select_proc, [[maybe_unused]] Point pt, [[maybe_unused]] TileIndex start_tile, [[maybe_unused]] TileIndex end_tile) |
| The user has dragged over the map when the tile highlight mode has been set. More... | |
| virtual void | OnPlacePresize ([[maybe_unused]] Point pt, [[maybe_unused]] TileIndex tile) |
| The user moves over the map when a tile highlight mode has been set when the special mouse mode has been set to 'PRESIZE' mode. More... | |
| virtual bool | IsNewGRFInspectable () const |
| Is the data related to this window NewGRF inspectable? More... | |
| virtual void | ShowNewGRFInspectWindow () const |
| Show the NewGRF inspection window. More... | |
| template<> | |
| const NWidgetBase * | GetWidget (WidgetID widnum) const |
| Specialized case of Window::GetWidget for the nested widget base class. | |
Public Member Functions inherited from ZeroedMemoryAllocator | |
| void * | operator new (size_t size) |
| Memory allocator for a single class instance. More... | |
| void * | operator new[] (size_t size) |
| Memory allocator for an array of class instances. More... | |
| void | operator delete (void *ptr) |
| Memory release for a single class instance. More... | |
| void | operator delete[] (void *ptr) |
| Memory release for an array of class instances. More... | |
Public Member Functions inherited from NewGRFScanCallback | |
| virtual | ~NewGRFScanCallback ()=default |
| Make sure the right destructor gets called. | |
Data Fields | |
| GUIGRFConfigList | avails |
| Available (non-active) grfs. | |
| const GRFConfig * | avail_sel |
Currently selected available grf. nullptr is none is selected. | |
| int | avail_pos |
Index of avail_sel if existing, else -1. | |
| StringFilter | string_filter |
| Filter for available grf. | |
| QueryString | filter_editbox |
| Filter editbox;. | |
| StringList | grf_presets |
| List of known NewGRF presets. | |
| GRFConfig * | actives |
| Temporary active grf list to which changes are made. | |
| GRFConfig * | active_sel |
| Selected active grf item. | |
| GRFConfig ** | orig_list |
| List active grfs in the game. Used as initial value, may be updated by the window. | |
| bool | editable |
| Is the window editable? | |
| bool | show_params |
| Are the grf-parameters shown in the info-panel? | |
| bool | execute |
| On pressing 'apply changes' are grf changes applied immediately, or only list is updated. | |
| int | preset |
Selected preset or -1 if none selected. | |
| int | active_over |
Active GRF item over which another one is dragged, -1 if none. | |
| bool | modified |
| The list of active NewGRFs has been modified since the last time they got saved. | |
| Scrollbar * | vscroll |
| Scrollbar * | vscroll2 |
Data Fields inherited from Window | |
| WindowDesc * | window_desc |
| Window description. | |
| WindowFlags | flags |
| Window flags. | |
| WindowClass | window_class |
| Window class. | |
| WindowNumber | window_number |
| Window number within the window class. | |
| int | scale |
| Scale of this window – used to determine how to resize. | |
| uint8_t | timeout_timer |
| Timer value of the WF_TIMEOUT for flags. | |
| uint8_t | white_border_timer |
| Timer value of the WF_WHITE_BORDER for flags. | |
| int | left |
| x position of left edge of the window | |
| int | top |
| y position of top edge of the window | |
| int | width |
| width of the window (number of pixels to the right in x direction) | |
| int | height |
| Height of the window (number of pixels down in y direction) | |
| ResizeInfo | resize |
| Resize information. | |
| Owner | owner |
| The owner of the content shown in this window. Company colour is acquired from this variable. | |
| ViewportData * | viewport |
| Pointer to viewport data, if present. | |
| const NWidgetCore * | nested_focus |
Currently focused nested widget, or nullptr if no nested widget has focus. | |
| std::map< WidgetID, QueryString * > | querystrings |
| QueryString associated to WWT_EDITBOX widgets. | |
| std::unique_ptr< NWidgetBase > | nested_root |
| Root of the nested tree. | |
| WidgetLookup | widget_lookup |
| Indexed access to the nested widget tree. Do not access directly, use Window::GetWidget() instead. | |
| NWidgetStacked * | shade_select |
Selection widget (NWID_SELECTION) to use for shading the window. If nullptr, window cannot shade. | |
| Dimension | unshaded_size |
| Last known unshaded size (only valid while shaded). | |
| WidgetID | mouse_capture_widget |
| ID of current mouse capture widget (e.g. dragged scrollbar). -1 if no widget has mouse capture. | |
| Window * | parent |
| Parent window. | |
| WindowList::iterator | z_position |
Static Public Attributes | |
| static const uint | EDITBOX_MAX_SIZE = 50 |
| static Listing | last_sorting = {false, 0} |
| Default sorting of #GUIGRFConfigList. | |
| static Filtering | last_filtering = {false, 0} |
| Default filtering of #GUIGRFConfigList. | |
| static GUIGRFConfigList::SortFunction *const | sorter_funcs [] |
| Sort functions of the #GUIGRFConfigList. More... | |
| static GUIGRFConfigList::FilterFunction *const | filter_funcs [] |
| Filter functions of the #GUIGRFConfigList. More... | |
Private Member Functions | |
| void | BuildAvailables () |
| bool | AddGRFToActive (int ins_pos=-1) |
| Insert a GRF into the active list. More... | |
Static Private Member Functions | |
| static bool | NameSorter (const GRFConfig *const &a, const GRFConfig *const &b) |
| Sort grfs by name. | |
| static bool CDECL | TagNameFilter (const GRFConfig *const *a, StringFilter &filter) |
| Filter grfs by tags/name. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Window | |
| static int | SortButtonWidth () |
| Get width of up/down arrow of sort button state. More... | |
| static void | DeleteClosedWindows () |
| Delete all closed windows. | |
Protected Member Functions inherited from Window | |
| void | InitializeData (WindowNumber window_number) |
| Initializes the data (except the position and initial size) of a new Window. More... | |
| void | InitializePositionSize (int x, int y, int min_width, int min_height) |
| Set the position and smallest size of the window. More... | |
| virtual void | FindWindowPlacementAndResize (int def_width, int def_height) |
| Resize window towards the default size. More... | |
| virtual | ~Window () |
| Remove window and all its child windows from the window stack. | |
Protected Attributes inherited from Window | |
| std::vector< int > | scheduled_invalidation_data |
| Data of scheduled OnInvalidateData() calls. | |
| bool | scheduled_resize |
| Set if window has been resized. | |
Window for showing NewGRF files.
Definition at line 606 of file newgrf_gui.cpp.
|
inlineprivate |
Insert a GRF into the active list.
| ins_pos | Insert GRF at this position. |
Definition at line 1523 of file newgrf_gui.cpp.
References CloseWindowByClass(), GRFConfig::flags, GUIList< T, P, F >::ForceRebuild(), GCF_INVALID, GCF_STATIC, GOID_NEWGRF_LIST_EDITED, HasBit(), INVALID_STRING_ID, Window::InvalidateData(), NETWORK_MAX_GRF_COUNT, GRFConfig::next, GRFConfig::SetParameterDefaults(), ShowErrorMessage(), WC_TEXTFILE, and WL_INFO.
|
inline |
Test whether the currently active set of NewGRFs can be upgraded with the available NewGRFs.
Definition at line 704 of file newgrf_gui.cpp.
References _all_grfs, FillGrfidMap(), and GRFConfig::next.
Referenced by OnInvalidateData().
Pick the palette for the sprite of the grf to display.
| c | grf to display. |
Definition at line 823 of file newgrf_gui.cpp.
References GCS_DISABLED, GCS_NOT_FOUND, and GRFConfig::status.
|
inlineoverridevirtual |
Some data on this window has become invalid.
| data | Information about the changed data. |
| gui_scope | Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See InvalidateWindowData() for details. |
Reimplemented from Window.
Definition at line 1237 of file newgrf_gui.cpp.
References _settings_client, CanUpgradeCurrent(), editable, FGCM_EXACT, FindGRFConfig(), GRFConfig::flags, GUIList< T, P, F >::ForceRebuild(), GCF_COMPATIBLE, GCF_INVALID, GCS_NOT_FOUND, GOID_NEWGRF_CHANGES_APPLIED, GOID_NEWGRF_CHANGES_MADE, GOID_NEWGRF_CURRENT_LOADED, GOID_NEWGRF_LIST_EDITED, GOID_NEWGRF_RESCANNED, GRFIdentifier::grfid, ClientSettings::gui, HasBit(), GRFConfig::ident, GRFIdentifier::md5sum, GUISettings::newgrf_developer_tools, GRFConfig::next, GRFConfig::original_md5sum, Window::SetWidgetDisabledState(), Window::SetWidgetsDisabledState(), GRFConfig::status, UpdateScrollBars(), WID_NS_ADD, WID_NS_APPLY_CHANGES, WID_NS_MOVE_DOWN, WID_NS_MOVE_UP, WID_NS_PRESET_LIST, WID_NS_REMOVE, WID_NS_TOGGLE_PALETTE, and WID_NS_UPGRADE.
|
inlineoverridevirtual |
Called after the window got resized.
For nested windows with a viewport, call NWidgetViewport::UpdateViewportCoordinates.
Reimplemented from Window.
Definition at line 798 of file newgrf_gui.cpp.
References Scrollbar::SetCapacityFromWidget(), WID_NS_AVAIL_LIST, and WID_NS_FILE_LIST.
|
static |
Filter functions of the #GUIGRFConfigList.
Definition at line 614 of file newgrf_gui.cpp.
|
static |
Sort functions of the #GUIGRFConfigList.
Definition at line 613 of file newgrf_gui.cpp.