Data Structures | Functions | Variables

dropdown.cpp File Reference

Implementation of the dropdown widget. More...

#include "../stdafx.h"
#include "../window_gui.h"
#include "../string_func.h"
#include "../strings_func.h"
#include "../window_func.h"
#include "dropdown_type.h"
#include "dropdown_widget.h"

Go to the source code of this file.

Data Structures

struct  DropdownWindow
 Drop-down menu window. More...

Functions

static void DeleteDropDownList (DropDownList *list)
 Delete all items of a drop down list and the list itself.
void ShowDropDownListAt (Window *w, DropDownList *list, int selected, int button, Rect wi_rect, Colours wi_colour, bool auto_width, bool instant_close)
 Show a drop down list.
void ShowDropDownList (Window *w, DropDownList *list, int selected, int button, uint width, bool auto_width, bool instant_close)
 Show a drop down list.
void ShowDropDownMenu (Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask, uint width)
 Show a dropdown menu window near a widget of the parent window.
int HideDropDownMenu (Window *pw)
 Delete the drop-down menu from window pw.

Variables

static const NWidgetPart _nested_dropdown_menu_widgets []
const WindowDesc _dropdown_desc (WDP_MANUAL, 0, 0, WC_DROPDOWN_MENU, WC_NONE, 0, _nested_dropdown_menu_widgets, lengthof(_nested_dropdown_menu_widgets))

Detailed Description

Implementation of the dropdown widget.

Definition in file dropdown.cpp.


Function Documentation

static void DeleteDropDownList ( DropDownList list  )  [static]

Delete all items of a drop down list and the list itself.

Parameters:
list List to delete.

Definition at line 75 of file dropdown.cpp.

Referenced by ShowDropDownMenu().

int HideDropDownMenu ( Window pw  ) 

Delete the drop-down menu from window pw.

Parameters:
pw Parent window of the drop-down menu window
Returns:
Parent widget number if the drop-down was found and closed, -1 if the window was not found.

Definition at line 483 of file dropdown.cpp.

References DropdownWindow::parent_button, DropdownWindow::parent_wnd_class, DropdownWindow::parent_wnd_num, WC_DROPDOWN_MENU, Window::window_class, and Window::window_number.

Referenced by DispatchLeftClickEvent(), GameSettingsWindow::OnClick(), OrdersWindow::OnClick(), NewGRFParametersWindow::OnClick(), AISettingsWindow::OnClick(), OrdersWindow::OnInvalidateData(), VehicleGroupWindow::OnInvalidateData(), VehicleListWindow::OnPaint(), and VehicleGroupWindow::OnPaint().

void ShowDropDownList ( Window w,
DropDownList list,
int  selected,
int  button,
uint  width,
bool  auto_width,
bool  instant_close 
)

Show a drop down list.

Parameters:
w Parent window for the list.
list Prepopulated DropDownList. Will be deleted when the list is closed.
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 width determined by the selected widget.
auto_width Maximum width is determined by the widest item in the list.
instant_close Set to true if releasing mouse button should close the list regardless of where the cursor is.

Definition at line 418 of file dropdown.cpp.

References _current_text_dir, NWidgetCore::colour, NWidgetBase::current_x, NWidgetBase::current_y, NWidgetCore::disp_flags, Window::GetWidget(), Window::LowerWidget(), NWidgetBase::pos_x, NWidgetBase::pos_y, Window::SetWidgetDirty(), ShowDropDownListAt(), TD_RTL, and NWidgetBase::type.

Referenced by VehicleListWindow::OnClick(), GameSettingsWindow::OnClick(), GameOptionsWindow::OnClick(), OrdersWindow::OnClick(), IndustryCargoesWindow::OnClick(), VehicleGroupWindow::OnClick(), CreateScenarioWindow::OnClick(), GenerateLandscapeWindow::OnClick(), ReplaceVehicleWindow::OnClick(), BuildAirportWindow::OnClick(), PopupMainCompanyToolbMenu(), PopupMainToolbMenu(), ShowDropDownMenu(), and ToolbarOptionsClick().

void ShowDropDownListAt ( Window w,
DropDownList list,
int  selected,
int  button,
Rect  wi_rect,
Colours  wi_colour,
bool  auto_width,
bool  instant_close 
)

Show a drop down list.

Parameters:
w Parent window for the list.
list Prepopulated DropDownList. Will be deleted when the list is closed.
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.
auto_width The width is determined by the widest item in the list, in this case only one of left or right is used (depending on text direction).
instant_close Set to true if releasing mouse button should close the list regardless of where the cursor is.

Definition at line 345 of file dropdown.cpp.

References _current_text_dir, DeleteWindowById(), GetMainViewBottom(), GetMainViewTop(), Window::left, max(), TD_RTL, Window::top, and WC_DROPDOWN_MENU.

Referenced by GameSettingsWindow::OnClick(), NewGRFParametersWindow::OnClick(), AISettingsWindow::OnClick(), and ShowDropDownList().

void ShowDropDownMenu ( Window w,
const StringID strings,
int  selected,
int  button,
uint32  disabled_mask,
uint32  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.

Parameters:
w Parent window that wants the dropdown menu.
strings Menu list, end with INVALID_STRING_ID
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 not copied to the dropdown list).
hidden_mask Bitmask for hidden items (items with their bit set are displayed, but not selectable in the dropdown list).
width Width of the dropdown menu. If 0, use the width of parent widget button.

Definition at line 459 of file dropdown.cpp.

References DeleteDropDownList(), HasBit(), INVALID_STRING_ID, and ShowDropDownList().

Referenced by VehicleListWindow::OnClick(), CompanyStationsWindow::OnClick(), OrdersWindow::OnClick(), NetworkStartServerWindow::OnClick(), NetworkGameWindow::OnClick(), IndustryDirectoryWindow::OnClick(), VehicleGroupWindow::OnClick(), GenerateLandscapeWindow::OnClick(), BuildVehicleWindow::OnClick(), BuildBridgeWindow::OnClick(), and ReplaceVehicleWindow::OnClick().


Variable Documentation

const NWidgetPart _nested_dropdown_menu_widgets[] [static]