|
OpenTTD Source 20260208-master-g43af8e94d0
|
Rail toolbar management class. More...
Public Member Functions | |
| BuildRailToolbarWindow (WindowDesc &desc, RailType railtype) | |
| void | Close (int data=0) override |
| Hide the window and all its child windows, and mark them for a later deletion. | |
| void | OnInvalidateData (int data=0, bool gui_scope=true) override |
| Some data on this window has become invalid. | |
| bool | OnTooltip (Point pt, WidgetID widget, TooltipCloseCondition close_cond) override |
| Event to display a custom tooltip. | |
| void | OnInit () override |
| Notification that the nested widget tree gets initialized. | |
| void | ModifyRailType (RailType railtype) |
| Switch to another rail type. | |
| void | UpdateRemoveWidgetStatus (WidgetID clicked_widget) |
| std::string | GetWidgetString (WidgetID widget, StringID stringid) const override |
| Get the raw string for a widget. | |
| CursorID | GetCursorForWidget (WidgetID widget) |
| Returns corresponding cursor for provided button. | |
| HighLightStyle | GetHighLightStyleForWidget (WidgetID widget) |
| Returns corresponding high light style for provided button. | |
| void | OnClick (Point pt, WidgetID widget, int click_count) override |
| A click with the left mouse button has been made on the window. | |
| EventState | OnHotkey (int hotkey) override |
| A hotkey has been pressed. | |
| void | OnPlaceObject (Point pt, TileIndex tile) override |
| The user clicked some place on the map when a tile highlight mode has been set. | |
| void | OnPlaceDrag (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt) override |
| The user is dragging over the map when the tile highlight mode has been set. | |
| Point | OnInitialPosition (int16_t sm_width, int16_t sm_height, int window_number) override |
| Compute the initial position of the window. | |
| void | OnPlaceMouseUp (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) override |
| The user has dragged over the map when the tile highlight mode has been set. | |
| void | OnPlaceObjectAbort () override |
| The user cancelled a tile highlight mode that has been set. | |
| void | OnPlacePresize (Point pt, TileIndex tile) override |
| 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. | |
| EventState | OnCTRLStateChange () override |
| The state of the control key has changed. | |
| void | OnRealtimeTick (uint delta_ms) override |
| Called periodically. | |
| EventState | ChangeRailTypeOnHotkey (int hotkey) |
| Selects new RailType based on SpecialHotkeys and order defined in _sorted_railtypes. | |
| 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. | |
| void * | operator new[] (size_t size)=delete |
| Helper allocation function to disallow something. | |
| template<class NWID> | |
| const NWID * | GetWidget (WidgetID widnum) const |
| Get the nested widget with number widnum from the nested widget tree. | |
| template<class NWID> | |
| NWID * | GetWidget (WidgetID widnum) |
| Get the nested widget with number widnum from the nested widget tree. | |
| const Scrollbar * | GetScrollbar (WidgetID widnum) const |
| Return the Scrollbar to a widget index. | |
| Scrollbar * | GetScrollbar (WidgetID widnum) |
| Return the Scrollbar to a widget index. | |
| const QueryString * | GetQueryString (WidgetID widnum) const |
| Return the querystring associated to a editbox. | |
| QueryString * | GetQueryString (WidgetID widnum) |
| Return the querystring associated to a editbox. | |
| void | UpdateQueryStringSize () |
| Update size of all QueryStrings of this window. | |
| virtual const struct Textbuf * | GetFocusedTextbuf () const |
| Get the current input text buffer. | |
| virtual Point | GetCaretPosition () const |
| Get the current caret position if an edit box has the focus. | |
| virtual Rect | GetTextBoundingRect (size_t from, size_t to) const |
| Get the bounding rectangle for a text range if an edit box has the focus. | |
| virtual ptrdiff_t | GetTextCharacterAtPosition (const Point &pt) const |
| Get the character that is rendered at a position by the focused edit box. | |
| void | InitNested (WindowNumber number=0) |
| Perform complete initialization of the Window with nested widgets, to allow use. | |
| void | CreateNestedTree () |
| Perform the first part of the initialization of a nested widget tree. | |
| void | FinishInitNested (WindowNumber window_number=0) |
| Perform the second part of the initialization of a nested widget tree. | |
| 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. | |
| bool | IsWidgetHighlighted (WidgetID widget_index) const |
| Gets the highlighted status of a widget. | |
| void | SetWidgetDisabledState (WidgetID widget_index, bool disab_stat) |
| Sets the enabled/disabled status of a widget. | |
| void | DisableWidget (WidgetID widget_index) |
| Sets a widget to disabled. | |
| void | EnableWidget (WidgetID widget_index) |
| Sets a widget to Enabled. | |
| bool | IsWidgetDisabled (WidgetID widget_index) const |
| Gets the enabled/disabled status of a widget. | |
| bool | IsWidgetFocused (WidgetID widget_index) const |
| Check if given widget is focused within this window. | |
| bool | IsWidgetGloballyFocused (WidgetID widget_index) const |
| Check if given widget has user input focus. | |
| void | SetWidgetLoweredState (WidgetID widget_index, bool lowered_stat) |
| Sets the lowered/raised status of a widget. | |
| void | ToggleWidgetLoweredState (WidgetID widget_index) |
| Invert the lowered/raised status of a widget. | |
| void | LowerWidget (WidgetID widget_index) |
| Marks a widget as lowered. | |
| void | RaiseWidget (WidgetID widget_index) |
| Marks a widget as raised. | |
| void | RaiseWidgetWhenLowered (WidgetID widget_index) |
| Marks a widget as raised and dirty (redraw), when it is marked as lowered. | |
| bool | IsWidgetLowered (WidgetID widget_index) const |
| Gets the lowered state of a widget. | |
| void | UnfocusFocusedWidget () |
| Makes no widget on this window have focus. | |
| bool | SetFocusedWidget (WidgetID widget_index) |
| Set focus within this window to the given widget. | |
| EventState | HandleEditBoxKey (WidgetID wid, char32_t key, uint16_t keycode) |
| Process keypress for editbox widget. | |
| virtual void | InsertTextString (WidgetID wid, std::string_view str, bool marked, std::optional< size_t > caret, std::optional< size_t > insert_location, std::optional< size_t > replacement_end) |
| Insert a text string at the cursor position into the edit box widget. | |
| void | HandleButtonClick (WidgetID widget) |
| Do all things to make a button look clicked and mark it to be unclicked in a few ticks. | |
| int | GetRowFromWidget (int clickpos, WidgetID widget, int padding, int line_height=-1) const |
| Compute the row of a widget that a user clicked in. | |
| void | RaiseButtons (bool autoraise=false) |
| Raise the buttons of the window. | |
| template<typename... Args> | |
| void | SetWidgetsDisabledState (bool disab_stat, Args... widgets) |
| Sets the enabled/disabled status of a list of widgets. | |
| template<typename... Args> | |
| void | SetWidgetsLoweredState (bool lowered_stat, Args... widgets) |
| Sets the lowered/raised status of a list of widgets. | |
| template<typename... Args> | |
| void | RaiseWidgetsWhenLowered (Args... widgets) |
| Raises the widgets and sets widgets dirty that are lowered. | |
| void | SetWidgetDirty (WidgetID widget_index) const |
| Invalidate a widget, i.e. | |
| 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. | |
| Window * | FindChildWindow (WindowClass wc=WC_INVALID) const |
| Find the Window whose parent pointer points to this window. | |
| Window * | FindChildWindowById (WindowClass wc, WindowNumber number) const |
| Find the Window whose parent pointer points to this window. | |
| void | CloseChildWindows (WindowClass wc=WC_INVALID) const |
| Close all children a window might have in a head-recursive manner. | |
| void | CloseChildWindowById (WindowClass wc, WindowNumber number) const |
| Close all children a window might have in a head-recursive manner. | |
| 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. | |
| bool | IsShaded () const |
| Is window shaded currently? | |
| void | SetShaded (bool make_shaded) |
| Set the shaded state of the window to make_shaded. | |
| 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). | |
| void | ProcessScheduledInvalidations () |
| Process all scheduled invalidations. | |
| void | ProcessHighlightedInvalidations () |
| Process all invalidation of highlighted widgets. | |
| virtual void | ApplyDefaults () |
| Read default values from WindowDesc configuration an apply them to the window. | |
| virtual void | OnPaint () |
| The window must be repainted. | |
| virtual void | DrawWidget (const Rect &r, WidgetID widget) const |
| Draw the contents of a nested widget. | |
| virtual void | UpdateWidgetSize (WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) |
| Update size and resize step of a widget in the window. | |
| virtual void | OnFocus () |
| The window has gained focus. | |
| virtual void | OnFocusLost (bool closing) |
| The window has lost focus. | |
| virtual EventState | OnKeyPress (char32_t key, uint16_t keycode) |
| A key has been pressed. | |
| virtual bool | OnRightClick (Point pt, WidgetID widget) |
| A click with the right mouse button has been made on the window. | |
| virtual void | OnHover (Point pt, WidgetID widget) |
| The mouse is hovering over a widget in the window, perform an action for it. | |
| virtual void | OnMouseDrag (Point pt, WidgetID widget) |
| An 'object' is being dragged at the provided position, highlight the target if possible. | |
| virtual void | OnDragDrop (Point pt, WidgetID widget) |
| A dragged 'object' has been released. | |
| virtual void | OnScroll (Point delta) |
| Handle the request for (viewport) scrolling. | |
| virtual void | OnScrollbarScroll (WidgetID widget) |
| Notify window that a scrollbar position has been updated. | |
| virtual void | OnMouseOver (Point pt, WidgetID widget) |
| The mouse is currently moving over the window or has just moved outside of the window. | |
| virtual void | OnMouseWheel (int wheel, WidgetID widget) |
| The mouse wheel has been turned. | |
| 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 | OnTimeout () |
| Called when this window's timeout has been reached. | |
| virtual void | OnResize () |
| Called after the window got resized. | |
| virtual void | OnDropdownSelect (WidgetID widget, int index, int click_result) |
| A dropdown option associated to this window has been selected. | |
| virtual void | OnDropdownClose (Point pt, WidgetID widget, int index, int click_result, bool instant_close) |
| A dropdown window associated to this window has been closed. | |
| virtual void | OnEditboxChanged (WidgetID widget) |
| The text in an editbox has been edited. | |
| virtual void | OnQueryTextFinished (std::optional< std::string > str) |
| The query window opened from this window has closed. | |
| virtual bool | OnVehicleSelect (const struct Vehicle *v) |
| The user clicked on a vehicle while HT_VEHICLE has been set. | |
| virtual bool | OnVehicleSelect (VehicleList::const_iterator begin, VehicleList::const_iterator end) |
| The user clicked on a vehicle while HT_VEHICLE has been set. | |
| virtual bool | IsNewGRFInspectable () const |
| Is the data related to this window NewGRF inspectable? | |
| virtual void | ShowNewGRFInspectWindow () const |
| Show the NewGRF inspection window. | |
| template<> | |
| const NWidgetBase * | GetWidget (WidgetID widnum) const |
| Specialized case of Window::GetWidget for the nested widget base class. | |
Static Public Member Functions | |
| static EventState | RailToolbarGlobalHotkeys (int hotkey) |
| Handler for global hotkeys of the BuildRailToolbarWindow. | |
| Static Public Member Functions inherited from Window | |
| static int | SortButtonWidth () |
| Get width of up/down arrow of sort button state. | |
| static void | DeleteClosedWindows () |
| Delete all closed windows. | |
Data Fields | |
| RailType | railtype = INVALID_RAILTYPE |
| Rail type to build. | |
| WidgetID | last_user_action = INVALID_WIDGET |
| Last started user action. | |
| Data Fields inherited from Window | |
| WindowDesc & | window_desc |
| Window description. | |
| WindowFlags | flags {} |
| Window flags. | |
| WindowClass | window_class {} |
| Window class. | |
| WindowNumber | window_number = 0 |
| Window number within the window class. | |
| int | scale = 0 |
| Scale of this window – used to determine how to resize. | |
| uint8_t | timeout_timer = 0 |
| Timer value of the WindowFlag::Timeout for flags. | |
| uint8_t | white_border_timer = 0 |
| Timer value of the WindowFlag::WhiteBorder for flags. | |
| int | left = 0 |
| x position of left edge of the window | |
| int | top = 0 |
| y position of top edge of the window | |
| int | width = 0 |
| width of the window (number of pixels to the right in x direction) | |
| int | height = 0 |
| Height of the window (number of pixels down in y direction). | |
| ResizeInfo | resize {} |
| Resize information. | |
| Owner | owner = INVALID_OWNER |
| The owner of the content shown in this window. Company colour is acquired from this variable. | |
| std::unique_ptr< ViewportData > | viewport |
| Pointer to viewport data, if present. | |
| const NWidgetCore * | nested_focus = nullptr |
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 = nullptr |
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 = INVALID_WIDGET |
ID of current mouse capture widget (e.g. dragged scrollbar). INVALID_WIDGET if no widget has mouse capture. | |
| Window * | parent = nullptr |
| Parent window. | |
| WindowList::iterator | z_position {} |
Static Public Attributes | |
| static const std::initializer_list< WidgetID > | can_build_widgets |
| List of widgets to be disabled if infrastructure limit prevents building. | |
| static HotkeyList | hotkeys |
Additional Inherited Members | |
| 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. | |
| Protected Member Functions inherited from Window | |
| void | InitializeData (WindowNumber window_number) |
| Initializes the data (except the position and initial size) of a new Window. | |
| void | InitializePositionSize (int x, int y, int min_width, int min_height) |
| Set the position and smallest size of the window. | |
| virtual void | FindWindowPlacementAndResize (int def_width, int def_height, bool allow_resize) |
| Resize window towards the default size. | |
| 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 = false |
| Set if window has been resized. | |
Rail toolbar management class.
Definition at line 439 of file rail_gui.cpp.
|
inline |
Definition at line 443 of file rail_gui.cpp.
|
inline |
Selects new RailType based on SpecialHotkeys and order defined in _sorted_railtypes.
| hotkey | Defines what action to perform. |
Definition at line 846 of file rail_gui.cpp.
References _cur_railtype, _last_built_railtype, _local_company, _sorted_railtypes, ES_HANDLED, GetCursorForWidget(), GetListIndexStep(), HasRailTypeAvail(), ModifyRailType(), SetCursor(), SetWindowDirty(), TRANSPORT_RAIL, WC_BUILD_DEPOT, WC_BUILD_SIGNAL, WC_BUILD_STATION, and WC_BUILD_WAYPOINT.
Referenced by OnHotkey().
|
inlineoverridevirtual |
Hide the window and all its child windows, and mark them for a later deletion.
| data | Window specific data to be passed through the window close functions. |
Reimplemented from Window.
Definition at line 453 of file rail_gui.cpp.
References _settings_client, Window::Close(), CloseWindowById(), Window::IsWidgetLowered(), SetViewportCatchmentStation(), SetViewportCatchmentWaypoint(), WC_SCEN_LAND_GEN, WC_SELECT_STATION, WID_RAT_BUILD_STATION, and WID_RAT_BUILD_WAYPOINT.
Referenced by OnInvalidateData().
Returns corresponding cursor for provided button.
| widget | Widget ID of the button. |
Definition at line 573 of file rail_gui.cpp.
References _cur_railtype, ANIMCURSOR_BUILDSIGNALS, ANIMCURSOR_DEMOLISH, RailTypeInfo::autorail, RailTypeInfo::convert, RailTypeInfo::cursor, RailTypeInfo::depot, GetRailTypeInfo(), RailTypeInfo::rail_ew, RailTypeInfo::rail_ns, RailTypeInfo::rail_nwse, RailTypeInfo::rail_swne, RailTypeInfo::tunnel, WID_RAT_AUTORAIL, WID_RAT_BUILD_BRIDGE, WID_RAT_BUILD_DEPOT, WID_RAT_BUILD_EW, WID_RAT_BUILD_NS, WID_RAT_BUILD_SIGNALS, WID_RAT_BUILD_STATION, WID_RAT_BUILD_TUNNEL, WID_RAT_BUILD_WAYPOINT, WID_RAT_BUILD_X, WID_RAT_BUILD_Y, WID_RAT_CONVERT_RAIL, and WID_RAT_DEMOLISH.
Referenced by ChangeRailTypeOnHotkey(), and OnClick().
|
inline |
Returns corresponding high light style for provided button.
| widget | Widget ID of the button. |
Definition at line 598 of file rail_gui.cpp.
References HT_DIAGONAL, HT_DIR_HL, HT_DIR_VL, HT_DIR_X, HT_DIR_Y, HT_LINE, HT_RAIL, HT_RECT, HT_SPECIAL, WID_RAT_AUTORAIL, WID_RAT_BUILD_BRIDGE, WID_RAT_BUILD_DEPOT, WID_RAT_BUILD_EW, WID_RAT_BUILD_NS, WID_RAT_BUILD_SIGNALS, WID_RAT_BUILD_STATION, WID_RAT_BUILD_TUNNEL, WID_RAT_BUILD_WAYPOINT, WID_RAT_BUILD_X, WID_RAT_BUILD_Y, WID_RAT_CONVERT_RAIL, and WID_RAT_DEMOLISH.
Referenced by OnClick().
|
inlineoverridevirtual |
Get the raw string for a widget.
Calls to this function are also made during initialization to measure the size (that is as part of InitNested()), during drawing, and while re-initializing the window. Only for widgets that render text initializing is requested.
| widget | Widget number. |
| stringid | StringID assigned to widget. |
Reimplemented from Window.
Definition at line 555 of file rail_gui.cpp.
References GetRailTypeInfo(), GetString(), Window::GetWidgetString(), RailTypeInfo::max_speed, PackVelocity(), RailTypeInfo::strings, RailTypeInfo::toolbar_caption, VEH_TRAIN, and WID_RAT_CAPTION.
|
inline |
Switch to another rail type.
| railtype | New rail type. |
Definition at line 519 of file rail_gui.cpp.
References railtype, and Window::ReInit().
Referenced by ChangeRailTypeOnHotkey(), ReinitGuiAfterToggleElrail(), and SetDefaultRailGui().
|
inlineoverridevirtual |
A click with the left mouse button has been made on the window.
| pt | the point inside the window that has been clicked. |
| widget | the clicked widget. |
| click_count | Number of fast consecutive clicks at same position |
Reimplemented from Window.
Definition at line 619 of file rail_gui.cpp.
References _ctrl_pressed, _remove_button_clicked, BuildRailClick_Remove(), GetCursorForWidget(), GetHighLightStyleForWidget(), HandlePlacePushButton(), Point, RailToolbar_CtrlChanged(), ShowSignalBuilder(), ShowStationBuilder(), WID_RAT_BUILD_DEPOT, WID_RAT_BUILD_NS, WID_RAT_BUILD_SIGNALS, WID_RAT_BUILD_STATION, WID_RAT_BUILD_WAYPOINT, and WID_RAT_REMOVE.
|
inlineoverridevirtual |
The state of the control key has changed.
Reimplemented from Window.
Definition at line 829 of file rail_gui.cpp.
References ES_HANDLED, ES_NOT_HANDLED, Window::IsWidgetLowered(), RailToolbar_CtrlChanged(), WID_RAT_BUILD_STATION, and WID_RAT_BUILD_WAYPOINT.
|
inlineoverridevirtual |
A hotkey has been pressed.
| hotkey | Hotkey index, by default a widget index of a button or editbox. |
Reimplemented from Window.
Definition at line 665 of file rail_gui.cpp.
References ChangeRailTypeOnHotkey(), IsSpecialHotkey(), MarkTileDirtyByTile(), Window::OnHotkey(), and TileVirtXY().
|
inlineoverridevirtual |
Notification that the nested widget tree gets initialized.
The event can be used to perform general computations.
Reimplemented from Window.
Definition at line 501 of file rail_gui.cpp.
References RailTypeInfo::auto_rail, RailTypeInfo::build_depot, RailTypeInfo::build_ew_rail, RailTypeInfo::build_ns_rail, RailTypeInfo::build_tunnel, RailTypeInfo::build_x_rail, RailTypeInfo::build_y_rail, RailTypeInfo::convert_rail, GetRailTypeInfo(), Window::GetWidget(), RailTypeInfo::gui_sprites, WID_RAT_AUTORAIL, WID_RAT_BUILD_DEPOT, WID_RAT_BUILD_EW, WID_RAT_BUILD_NS, WID_RAT_BUILD_TUNNEL, WID_RAT_BUILD_X, WID_RAT_BUILD_Y, and WID_RAT_CONVERT_RAIL.
|
inlineoverridevirtual |
Compute the initial position of the window.
| sm_width | Smallest width of the window. |
| sm_height | Smallest height of the window. |
| window_number | The window number of the new window. |
Reimplemented from Window.
Definition at line 739 of file rail_gui.cpp.
References AlignInitialConstructionToolbar(), Point, and Window::window_number.
|
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 469 of file rail_gui.cpp.
References can_build_widgets, CanBuildVehicleInfrastructure(), Close(), CloseWindowById(), Window::SetWidgetDisabledState(), TRANSPORT_RAIL, ValParamRailType(), VEH_TRAIN, WC_BUILD_DEPOT, WC_BUILD_SIGNAL, WC_BUILD_STATION, WC_BUILD_WAYPOINT, and WC_SELECT_STATION.
|
inlineoverridevirtual |
The user is dragging over the map when the tile highlight mode has been set.
| select_method | the method of selection (allowed directions) |
| select_proc | what will be created when the drag is over. |
| pt | the exact point on the map where the mouse is. |
Reimplemented from Window.
Definition at line 731 of file rail_gui.cpp.
References _convert_signal_button, FindWindowById(), Window::IsWidgetLowered(), Point, VpSelectTilesWithMethod(), WC_BUILD_SIGNAL, and WID_RAT_BUILD_SIGNALS.
|
inlineoverridevirtual |
The user has dragged over the map when the tile highlight mode has been set.
| select_method | the method of selection (allowed directions) |
| select_proc | what should be created. |
| pt | the exact point on the map where the mouse was released. |
| start_tile | the begin tile of the drag. |
| end_tile | the end tile of the drag. |
Reimplemented from Window.
Definition at line 744 of file rail_gui.cpp.
References _ctrl_pressed, _cur_railtype, _remove_button_clicked, _settings_client, _waypoint_gui, AXIS_X, AXIS_Y, CommandFlagsToDCFlags(), DDSP_BUILD_BRIDGE, DDSP_BUILD_SIGNALS, DDSP_BUILD_STATION, DDSP_CONVERT_RAIL, DDSP_DEMOLISH_AREA, DDSP_PLACE_RAIL, DDSP_REMOVE_STATION, GetCommandFlags(), GUIPlaceProcDragXY(), OrthogonalTileArea::h, HandleAutoSignalPlacement(), Window::IsWidgetLowered(), Point, ResetObjectToPlace(), ShowBuildBridgeWindow(), ShowSelectRailWaypointIfNeeded(), OrthogonalTileArea::tile, TRANSPORT_RAIL, VPM_X_LIMITED, OrthogonalTileArea::w, and WID_RAT_BUILD_STATION.
The user clicked some place on the map when a tile highlight mode has been set.
| pt | the exact point on the map that has been clicked. |
| tile | the tile on the map that has been clicked. |
Reimplemented from Window.
Definition at line 672 of file rail_gui.cpp.
References _build_depot_direction, _cur_railtype, CcBuildRailTunnel(), DDSP_BUILD_SIGNALS, DDSP_CONVERT_RAIL, DDSP_PLACE_RAIL, PlaceProc_DemolishArea(), PlaceRail_Bridge(), PlaceRail_Station(), PlaceRail_Waypoint(), Point, TRANSPORT_RAIL, VPM_FIX_HORIZONTAL, VPM_FIX_VERTICAL, VPM_FIX_X, VPM_FIX_Y, VPM_RAILDIRS, VPM_SIGNALDIRS, VPM_X_AND_Y, VpStartPlaceSizing(), WID_RAT_AUTORAIL, WID_RAT_BUILD_BRIDGE, WID_RAT_BUILD_DEPOT, WID_RAT_BUILD_EW, WID_RAT_BUILD_NS, WID_RAT_BUILD_SIGNALS, WID_RAT_BUILD_STATION, WID_RAT_BUILD_TUNNEL, WID_RAT_BUILD_WAYPOINT, WID_RAT_BUILD_X, WID_RAT_BUILD_Y, WID_RAT_CONVERT_RAIL, and WID_RAT_DEMOLISH.
|
inlineoverridevirtual |
The user cancelled a tile highlight mode that has been set.
Reimplemented from Window.
Definition at line 806 of file rail_gui.cpp.
References CloseWindowByClass(), CloseWindowById(), Window::DisableWidget(), Window::IsWidgetLowered(), Window::RaiseButtons(), SetViewportCatchmentStation(), SetViewportCatchmentWaypoint(), Window::SetWidgetDirty(), TRANSPORT_RAIL, WC_BUILD_BRIDGE, WC_BUILD_DEPOT, WC_BUILD_SIGNAL, WC_BUILD_STATION, WC_BUILD_WAYPOINT, WC_SELECT_STATION, WID_RAT_BUILD_STATION, WID_RAT_BUILD_WAYPOINT, and WID_RAT_REMOVE.
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.
An example of this is the tile highlight for dock building.
| pt | the exact point on the map where the mouse is. |
| tile | the tile on the map where the mouse is. |
Reimplemented from Window.
Definition at line 823 of file rail_gui.cpp.
References _build_tunnel_endtile, _cur_railtype, Auto, Point, TRANSPORT_RAIL, and VpSetPresizeRange().
|
inlineoverridevirtual |
Called periodically.
Reimplemented from Window.
Definition at line 836 of file rail_gui.cpp.
References Window::IsWidgetLowered(), and WID_RAT_BUILD_WAYPOINT.
|
inlineoverridevirtual |
Event to display a custom tooltip.
| pt | The point where the mouse is located. |
| widget | The widget where the mouse is located. |
| close_cond | The conditions when to close the tooltip. |
Reimplemented from Window.
Definition at line 490 of file rail_gui.cpp.
References can_build_widgets, CanBuildVehicleInfrastructure(), GetEncodedString(), GuiShowTooltips(), Point, and VEH_TRAIN.
|
inlinestatic |
Handler for global hotkeys of the BuildRailToolbarWindow.
| hotkey | Hotkey |
Definition at line 869 of file rail_gui.cpp.
References _last_built_railtype, ES_NOT_HANDLED, Window::OnHotkey(), ShowBuildRailToolbar(), and Window::Window().
|
inline |
Definition at line 525 of file rail_gui.cpp.
|
inlinestatic |
List of widgets to be disabled if infrastructure limit prevents building.
Definition at line 463 of file rail_gui.cpp.
Referenced by OnInvalidateData(), and OnTooltip().
|
inlinestatic |
Definition at line 877 of file rail_gui.cpp.
| WidgetID BuildRailToolbarWindow::last_user_action = INVALID_WIDGET |
Last started user action.
Definition at line 441 of file rail_gui.cpp.
| RailType BuildRailToolbarWindow::railtype = INVALID_RAILTYPE |