|
OpenTTD Source 20251116-master-g21329071df
|
Implementation of the dropdown widget. More...
#include "stdafx.h"#include "dropdown_type.h"#include "dropdown_func.h"#include "strings_func.h"#include "sound_func.h"#include "timer/timer.h"#include "timer/timer_window.h"#include "window_gui.h"#include "window_func.h"#include "zoom_func.h"#include "widgets/dropdown_widget.h"#include "table/strings.h"#include "dropdown_common_type.h"#include "safeguards.h"Go to the source code of this file.
Data Structures | |
| struct | DropdownWindow |
| Drop-down menu window. More... | |
Functions | |
| std::unique_ptr< DropDownListItem > | MakeDropDownListDividerItem () |
| std::unique_ptr< DropDownListItem > | MakeDropDownListStringItem (StringID str, int value, bool masked, bool shaded) |
| std::unique_ptr< DropDownListItem > | MakeDropDownListStringItem (std::string &&str, int value, bool masked, bool shaded) |
| std::unique_ptr< DropDownListItem > | MakeDropDownListIconItem (SpriteID sprite, PaletteID palette, StringID str, int value, bool masked, bool shaded) |
| std::unique_ptr< DropDownListItem > | MakeDropDownListIconItem (const Dimension &dim, SpriteID sprite, PaletteID palette, StringID str, int value, bool masked, bool shaded) |
| std::unique_ptr< DropDownListItem > | MakeDropDownListCheckedItem (bool checked, StringID str, int value, bool masked, bool shaded, uint indent) |
| void | ReplaceDropDownList (Window *parent, DropDownList &&list, std::optional< int > selected_result) |
| Dimension | GetDropDownListDimension (const DropDownList &list) |
| Determine width and height required to fully display a DropDownList. | |
| void | ShowDropDownListAt (Window *w, DropDownList &&list, int selected, WidgetID button, Rect wi_rect, Colours wi_colour, bool instant_close, bool persist) |
| Show a drop down list. | |
| void | ShowDropDownList (Window *w, DropDownList &&list, int selected, WidgetID button, uint width, bool instant_close, bool persist) |
| Show a drop down list. | |
| void | ShowDropDownMenu (Window *w, std::span< const StringID > strings, int selected, WidgetID button, uint32_t disabled_mask, uint32_t hidden_mask, uint width) |
| Show a dropdown menu window near a widget of the parent window. | |
Variables | |
| static constexpr std::initializer_list< NWidgetPart > | _nested_dropdown_menu_widgets |
| static WindowDesc | _dropdown_desc (WDP_MANUAL, {}, 0, 0, WC_DROPDOWN_MENU, WC_NONE, WindowDefaultFlag::NoFocus, _nested_dropdown_menu_widgets) |
Implementation of the dropdown widget.
Definition in file dropdown.cpp.
| Dimension GetDropDownListDimension | ( | const DropDownList & | list | ) |
Determine width and height required to fully display a DropDownList.
| list | The list. |
Definition at line 374 of file dropdown.cpp.
References WidgetDimensions::dropdowntext, RectPadding::Horizontal(), and WidgetDimensions::scaled.
Referenced by DropdownWindow::UpdateSizeAndPosition(), BuildVehicleWindow::UpdateWidgetSize(), VehicleGroupWindow::UpdateWidgetSize(), GameOptionsWindow::UpdateWidgetSize(), and VehicleListWindow::UpdateWidgetSize().
| std::unique_ptr< DropDownListItem > MakeDropDownListCheckedItem | ( | bool | checked, |
| StringID | str, | ||
| int | value, | ||
| bool | masked, | ||
| bool | shaded, | ||
| uint | indent | ||
| ) |
Definition at line 54 of file dropdown.cpp.
| std::unique_ptr< DropDownListItem > MakeDropDownListDividerItem | ( | ) |
Definition at line 29 of file dropdown.cpp.
| std::unique_ptr< DropDownListItem > MakeDropDownListIconItem | ( | const Dimension & | dim, |
| SpriteID | sprite, | ||
| PaletteID | palette, | ||
| StringID | str, | ||
| int | value, | ||
| bool | masked, | ||
| bool | shaded | ||
| ) |
Definition at line 49 of file dropdown.cpp.
| std::unique_ptr< DropDownListItem > MakeDropDownListIconItem | ( | SpriteID | sprite, |
| PaletteID | palette, | ||
| StringID | str, | ||
| int | value, | ||
| bool | masked, | ||
| bool | shaded | ||
| ) |
Definition at line 44 of file dropdown.cpp.
| std::unique_ptr< DropDownListItem > MakeDropDownListStringItem | ( | std::string && | str, |
| int | value, | ||
| bool | masked, | ||
| bool | shaded | ||
| ) |
Definition at line 39 of file dropdown.cpp.
| std::unique_ptr< DropDownListItem > MakeDropDownListStringItem | ( | StringID | str, |
| int | value, | ||
| bool | masked, | ||
| bool | shaded | ||
| ) |
Definition at line 34 of file dropdown.cpp.
| void ReplaceDropDownList | ( | Window * | parent, |
| DropDownList && | list, | ||
| std::optional< int > | selected_result | ||
| ) |
Definition at line 363 of file dropdown.cpp.
| void ShowDropDownList | ( | Window * | w, |
| DropDownList && | list, | ||
| int | selected, | ||
| WidgetID | button, | ||
| uint | width, | ||
| bool | instant_close, | ||
| bool | persist | ||
| ) |
Show a drop down list.
| w | Parent window for the list. |
| list | Prepopulated DropDownList. |
| selected | The initially selected list item. |
| button | The widget within the parent window that is used to determine the list's location. |
| width | Override the minimum width determined by the selected widget and list contents. |
| instant_close | Set to true if releasing mouse button should close the list regardless of where the cursor is. |
| persist | Set if this dropdown should stay open after an option is selected. |
Definition at line 415 of file dropdown.cpp.
References _current_text_dir, NWidgetCore::colour, NWidgetCore::disp_flags, DropdownActive, Window::GetWidget(), NWID_BUTTON_DROPDOWN, ScaleGUITrad(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), NWidgetBase::SetDirty(), NWidgetCore::SetLowered(), ShowDropDownListAt(), SndClickBeep(), TD_RTL, and NWidgetBase::type.
Referenced by BuildAirportWindow::OnClick(), ReplaceVehicleWindow::OnClick(), BuildVehicleWindow::OnClick(), GenerateLandscapeWindow::OnClick(), CreateScenarioWindow::OnClick(), VehicleGroupWindow::OnClick(), IndustryDirectoryWindow::OnClick(), IndustryCargoesWindow::OnClick(), MusicTrackSelectionWindow::OnClick(), NetworkStartServerWindow::OnClick(), NetworkClientListWindow::OnClick(), NewGRFWindow::OnClick(), OrdersWindow::OnClick(), PickerWindow::OnClick(), GameOptionsWindow::OnClick(), CompanyStationsWindow::OnClick(), StoryBookWindow::OnClick(), TextfileWindow::OnClick(), VehicleListWindow::OnClick(), PopupMainToolbarMenu(), SetDateWindow::ShowDateDropDown(), ShowDropDownMenu(), and ToolbarOptionsClick().
| void ShowDropDownListAt | ( | Window * | w, |
| DropDownList && | list, | ||
| int | selected, | ||
| WidgetID | button, | ||
| Rect | wi_rect, | ||
| Colours | wi_colour, | ||
| bool | instant_close, | ||
| bool | persist | ||
| ) |
Show a drop down list.
| w | Parent window for the list. |
| list | Prepopulated DropDownList. |
| selected | The initially selected list item. |
| button | The widget which is passed to Window::OnDropdownSelect and OnDropdownClose. Unless you override those functions, this should be then widget index of the dropdown button. |
| wi_rect | Coord of the parent drop down button, used to position the dropdown menu. |
| instant_close | Set to true if releasing mouse button should close the list regardless of where the cursor is. |
| persist | Set if this dropdown should stay open after an option is selected. |
Definition at line 397 of file dropdown.cpp.
References CloseWindowByClass(), and WC_DROPDOWN_MENU.
Referenced by GSConfigWindow::OnClick(), NewGRFParametersWindow::OnClick(), ScriptSettingsWindow::OnClick(), NetworkClientListWindow::OnClickClientAdmin(), NetworkClientListWindow::OnClickCompanyAdmin(), and ShowDropDownList().
| void ShowDropDownMenu | ( | Window * | w, |
| std::span< const StringID > | strings, | ||
| int | selected, | ||
| WidgetID | button, | ||
| uint32_t | disabled_mask, | ||
| uint32_t | hidden_mask, | ||
| uint | width | ||
| ) |
Show a dropdown menu window near a widget of the parent window.
The result code of the items is their index in the strings list.
| w | Parent window that wants the dropdown menu. |
| strings | Menu list. |
| selected | Index of initial selected item. |
| button | Button widget number of the parent window w that wants the dropdown menu. |
| disabled_mask | Bitmask for disabled items (items with their bit set are displayed, but not selectable in the dropdown list). |
| hidden_mask | Bitmask for hidden items (items with their bit set are not copied to the dropdown list). |
| width | Minimum width of the dropdown menu. |
Definition at line 455 of file dropdown.cpp.
References HasBit(), and ShowDropDownList().
Referenced by DisplayVehicleSortDropDown(), ReplaceVehicleWindow::OnClick(), BuildBridgeWindow::OnClick(), GenerateLandscapeWindow::OnClick(), VehicleGroupWindow::OnClick(), IndustryDirectoryWindow::OnClick(), OrdersWindow::OnClick(), CompanyStationsWindow::OnClick(), StationViewWindow::OnClick(), TownDirectoryWindow::OnClick(), VehicleListWindow::OnClick(), and VehicleDetailsWindow::OnClick().
|
staticconstexpr |
Definition at line 59 of file dropdown.cpp.