| OpenTTD
    | 
Window that lists the content that's at the content server. More...
 
  
 | Public Member Functions | |
| NetworkContentListWindow (WindowDesc *desc, bool select_all, const std::bitset< CONTENT_TYPE_END > &types) | |
| Create the content list window. | |
| ~NetworkContentListWindow () | |
| Free everything we allocated. | |
| virtual void | UpdateWidgetSize (int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) | 
| virtual void | DrawWidget (const Rect &r, int widget) const | 
| virtual void | OnPaint () | 
| void | DrawMatrix (const Rect &r) const | 
| Draw/fill the matrix with the list of content to download. | |
| void | DrawDetails (const Rect &r) const | 
| Helper function to draw the details part of this window. | |
| virtual void | OnClick (Point pt, int widget, int click_count) | 
| virtual EventState | OnKeyPress (WChar key, uint16 keycode) | 
| virtual void | OnEditboxChanged (int wid) | 
| virtual void | OnResize () | 
| virtual void | OnReceiveContentInfo (const ContentInfo *rci) | 
| virtual void | OnDownloadComplete (ContentID cid) | 
| virtual void | OnConnect (bool success) | 
| virtual void | OnInvalidateData (int data=0, bool gui_scope=true) | 
| Some data on this window has become invalid. | |
|  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. | |
| virtual | ~Window () | 
| Remove window and all its child windows from the window stack. | |
| void * | operator new[] (size_t size) | 
| Helper allocation function to disallow something. | |
| void | operator delete (void *ptr) | 
| Helper allocation function to disallow something. | |
| template<class NWID > | |
| const NWID * | GetWidget (uint widnum) const | 
| Specialized case of Window::GetWidget for the nested widget base class. | |
| template<class NWID > | |
| NWID * | GetWidget (uint widnum) | 
| Get the nested widget with number widnum from the nested widget tree. | |
| const Scrollbar * | GetScrollbar (uint widnum) const | 
| Return the Scrollbar to a widget index. | |
| Scrollbar * | GetScrollbar (uint widnum) | 
| Return the Scrollbar to a widget index. | |
| const QueryString * | GetQueryString (uint widnum) const | 
| Return the querystring associated to a editbox. | |
| QueryString * | GetQueryString (uint widnum) | 
| Return the querystring associated to a editbox. | |
| virtual const char * | GetFocusedText () const | 
| Get the current input text if an edit box has the focus. | |
| virtual const char * | GetCaret () const | 
| Get the string at the caret if an edit box has the focus. | |
| virtual const char * | GetMarkedText (size_t *length) const | 
| Get the range of the currently marked input text. | |
| virtual Point | GetCaretPosition () const | 
| Get the current caret position if an edit box has the focus. | |
| 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. | |
| virtual const char * | 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 (bool fill_nested=true) | 
| 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 (byte widget_index, TextColour highlighted_colour) | 
| Sets the highlighted status of a widget. | |
| bool | IsWidgetHighlighted (byte widget_index) const | 
| Gets the highlighted status of a widget. | |
| void | SetWidgetDisabledState (byte widget_index, bool disab_stat) | 
| Sets the enabled/disabled status of a widget. | |
| void | DisableWidget (byte widget_index) | 
| Sets a widget to disabled. | |
| void | EnableWidget (byte widget_index) | 
| Sets a widget to Enabled. | |
| bool | IsWidgetDisabled (byte widget_index) const | 
| Gets the enabled/disabled status of a widget. | |
| bool | IsWidgetFocused (byte widget_index) const | 
| Check if given widget is focused within this window. | |
| bool | IsWidgetGloballyFocused (byte widget_index) const | 
| Check if given widget has user input focus. | |
| void | SetWidgetLoweredState (byte widget_index, bool lowered_stat) | 
| Sets the lowered/raised status of a widget. | |
| void | ToggleWidgetLoweredState (byte widget_index) | 
| Invert the lowered/raised status of a widget. | |
| void | LowerWidget (byte widget_index) | 
| Marks a widget as lowered. | |
| void | RaiseWidget (byte widget_index) | 
| Marks a widget as raised. | |
| bool | IsWidgetLowered (byte widget_index) const | 
| Gets the lowered state of a widget. | |
| void | UnfocusFocusedWidget () | 
| Makes no widget on this window have focus. | |
| bool | SetFocusedWidget (int widget_index) | 
| Set focus within this window to the given widget. | |
| EventState | HandleEditBoxKey (int wid, WChar key, uint16 keycode) | 
| Process keypress for editbox widget. | |
| virtual void | InsertTextString (int 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. | |
| void | HandleButtonClick (byte widget) | 
| Do all things to make a button look clicked and mark it to be unclicked in a few ticks. | |
| int | GetRowFromWidget (int clickpos, int 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. | |
| void CDECL | SetWidgetsDisabledState (bool disab_stat, int widgets,...) | 
| Sets the enabled/disabled status of a list of widgets. | |
| void CDECL | SetWidgetsLoweredState (bool lowered_stat, int widgets,...) | 
| Sets the lowered/raised status of a list of widgets. | |
| void | SetWidgetDirty (byte 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 (int widget, SortButtonState state) const | 
| Draw a sort button's up or down arrow symbol. | |
| void | DeleteChildWindows (WindowClass wc=WC_INVALID) const | 
| Delete 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) | 
| 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 | 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 | OnInit () | 
| Notification that the nested widget tree gets initialized. | |
| virtual void | ApplyDefaults () | 
| Read default values from WindowDesc configuration an apply them to the window. | |
| virtual Point | OnInitialPosition (int16 sm_width, int16 sm_height, int window_number) | 
| Compute the initial position of the window. | |
| virtual void | OnPaint () | 
| The window must be repainted. | |
| virtual void | DrawWidget (const Rect &r, int widget) const | 
| Draw the contents of a nested widget. | |
| virtual void | UpdateWidgetSize (int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) | 
| Update size and resize step of a widget in the window. | |
| virtual void | SetStringParameters (int widget) const | 
| Initialize string parameters for a widget. | |
| virtual void | OnFocus () | 
| Called when window gains focus. | |
| virtual void | OnFocusLost () | 
| Called when window looses focus. | |
| virtual EventState | OnKeyPress (WChar key, uint16 keycode) | 
| A key has been pressed. | |
| virtual EventState | OnHotkey (int hotkey) | 
| A hotkey has been pressed. | |
| virtual EventState | OnCTRLStateChange () | 
| The state of the control key has changed. | |
| virtual void | OnClick (Point pt, int widget, int click_count) | 
| A click with the left mouse button has been made on the window. | |
| virtual bool | OnRightClick (Point pt, int widget) | 
| A click with the right mouse button has been made on the window. | |
| virtual void | OnHover (Point pt, int widget) | 
| The mouse is hovering over a widget in the window, perform an action for it, like opening a custom tooltip. | |
| virtual void | OnMouseDrag (Point pt, int widget) | 
| An 'object' is being dragged at the provided position, highlight the target if possible. | |
| virtual void | OnDragDrop (Point pt, int widget) | 
| A dragged 'object' has been released. | |
| virtual void | OnScroll (Point delta) | 
| Handle the request for (viewport) scrolling. | |
| virtual void | OnMouseOver (Point pt, int widget) | 
| The mouse is currently moving over the window or has just moved outside of the window. | |
| virtual void | OnMouseWheel (int wheel) | 
| 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 | OnTick () | 
| Called once per (game) tick. | |
| virtual void | OnHundredthTick () | 
| Called once every 100 (game) ticks. | |
| virtual void | OnTimeout () | 
| Called when this window's timeout has been reached. | |
| virtual void | OnResize () | 
| Called after the window got resized. | |
| virtual void | OnDropdownSelect (int widget, int index) | 
| A dropdown option associated to this window has been selected. | |
| virtual void | OnDropdownClose (Point pt, int widget, int index, bool instant_close) | 
| A dropdown window associated to this window has been closed. | |
| virtual void | OnEditboxChanged (int widget) | 
| The text in an editbox has been edited. | |
| virtual void | OnQueryTextFinished (char *str) | 
| The query window opened from this window has closed. | |
| virtual void | OnInvalidateData (int data=0, bool gui_scope=true) | 
| Some data on this window has become invalid. | |
| virtual void | OnPlaceObject (Point pt, TileIndex tile) | 
| The user clicked some place on the map when a tile highlight mode has been set. | |
| virtual bool | OnVehicleSelect (const struct Vehicle *v) | 
| The user clicked on a vehicle while HT_VEHICLE has been set. | |
| virtual void | OnPlaceObjectAbort () | 
| The user cancelled a tile highlight mode that has been set. | |
| virtual void | OnPlaceDrag (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt) | 
| The user is dragging over the map when the tile highlight mode has been set. | |
| virtual void | OnPlaceMouseUp (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) | 
| The user has dragged over the map when the tile highlight mode has been set. | |
| virtual void | OnPlacePresize (Point pt, 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. | |
| virtual bool | IsNewGRFInspectable () const | 
| Is the data related to this window NewGRF inspectable? | |
| virtual void | ShowNewGRFInspectWindow () const | 
| Show the NewGRF inspection window. | |
|  Public Member Functions inherited from ZeroedMemoryAllocator | |
| void * | operator new (size_t size) | 
| Memory allocator for a single class instance. | |
| void | operator delete[] (void *ptr) | 
| Memory release for an array of class instances. | |
| Private Types | |
| typedef GUIList< const ContentInfo *, ContentListFilterData & > | GUIContentList | 
| List with content infos. | |
| Private Member Functions | |
| void | OpenExternalSearch () | 
| Search external websites for content. | |
| void | BuildContentList () | 
| (Re)build the network game list as its amount has changed because an item has been added or deleted for example | |
| void | SortContentList () | 
| Sort the content list. | |
| void | FilterContentList () | 
| Filter the content list. | |
| bool | UpdateFilterState () | 
| Update filter state based on current window state. | |
| void | ScrollToSelected () | 
| Make sure that the currently selected content info is within the visible part of the matrix. | |
|  Private Member Functions inherited from ContentCallback | |
| virtual void | OnConnect (bool success) | 
| Callback for when the connection has finished. | |
| virtual void | OnDisconnect () | 
| Callback for when the connection got disconnected. | |
| virtual void | OnReceiveContentInfo (const ContentInfo *ci) | 
| We received a content info. | |
| virtual void | OnDownloadProgress (const ContentInfo *ci, int bytes) | 
| We have progress in the download of a file. | |
| virtual void | OnDownloadComplete (ContentID cid) | 
| We have finished downloading a file. | |
| virtual | ~ContentCallback () | 
| Silentium. | |
| Static Private Member Functions | |
| static void | ExternalSearchDisclaimerCallback (Window *w, bool accepted) | 
| Callback function for disclaimer about entering external websites. | |
| static int CDECL | NameSorter (const ContentInfo *const *a, const ContentInfo *const *b) | 
| Sort content by name. | |
| static int CDECL | TypeSorter (const ContentInfo *const *a, const ContentInfo *const *b) | 
| Sort content by type. | |
| static int CDECL | StateSorter (const ContentInfo *const *a, const ContentInfo *const *b) | 
| Sort content by state. | |
| static bool CDECL | TagNameFilter (const ContentInfo *const *a, ContentListFilterData &filter) | 
| Filter content by tags/name. | |
| static bool CDECL | TypeOrSelectedFilter (const ContentInfo *const *a, ContentListFilterData &filter) | 
| Filter content by type, but still show content selected for download. | |
| Private Attributes | |
| GUIContentList | content | 
| List with content. | |
| bool | auto_select | 
| Automatically select all content when the meta-data becomes available. | |
| ContentListFilterData | filter_data | 
| Filter for content list. | |
| QueryString | filter_editbox | 
| Filter editbox;. | |
| Dimension | checkbox_size | 
| Size of checkbox/"blot" sprite. | |
| const ContentInfo * | selected | 
| The selected content info. | |
| int | list_pos | 
| Our position in the list. | |
| uint | filesize_sum | 
| The sum of all selected file sizes. | |
| Scrollbar * | vscroll | 
| Cache of the vertical scrollbar. | |
| Static Private Attributes | |
| static const uint | EDITBOX_MAX_SIZE = 50 | 
| Maximum size of the editbox in characters. | |
| static Listing | last_sorting = {false, 1} | 
| The last sorting setting. | |
| static Filtering | last_filtering = {false, 0} | 
| The last filtering setting. | |
| static GUIContentList::SortFunction *const | sorter_funcs [] | 
| Sorter functions. | |
| static GUIContentList::FilterFunction *const | filter_funcs [] | 
| Filter functions. | |
| static char | content_type_strs [CONTENT_TYPE_END][64] | 
| Cached strings for all content types. | |
| Friends | |
| void | BuildContentTypeStringList () | 
| Build array of all strings corresponding to the content types. | |
| Additional Inherited Members | |
|  Static Public Member Functions inherited from Window | |
| static int | SortButtonWidth () | 
| Get width of up/down arrow of sort button state. | |
|  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. | |
| uint8 | timeout_timer | 
| Timer value of the WF_TIMEOUT for flags. | |
| uint8 | 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 NULLif no nested widget has focus. | |
| SmallMap< int, QueryString * > | querystrings | 
| QueryString associated to WWT_EDITBOX widgets. | |
| NWidgetBase * | nested_root | 
| Root of the nested tree. | |
| NWidgetBase ** | nested_array | 
| Array of pointers into the tree. Do not access directly, use Window::GetWidget() instead. | |
| uint | nested_array_size | 
| Size of the nested array. | |
| NWidgetStacked * | shade_select | 
| Selection widget (NWID_SELECTION) to use for shading the window. If NULL, window cannot shade. | |
| Dimension | unshaded_size | 
| Last known unshaded size (only valid while shaded). | |
| int | scrolling_scrollbar | 
| Widgetindex of just being dragged scrollbar. -1 if none is active. | |
| Window * | parent | 
| Parent window. | |
| Window * | z_front | 
| The window in front of us in z-order. | |
| Window * | z_back | 
| The window behind us in z-order. | |
|  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) | 
| Resize window towards the default size. | |
|  Protected Attributes inherited from Window | |
| SmallVector< int, 4 > | scheduled_invalidation_data | 
| Data of scheduled OnInvalidateData() calls. | |
Window that lists the content that's at the content server.
Definition at line 300 of file network_content_gui.cpp.
| 
 | private | 
List with content infos.
Definition at line 302 of file network_content_gui.cpp.
| 
 | inline | 
Create the content list window.
| desc | the window description to pass to Window's constructor. | 
| select_all | Whether the select all button is allowed or not. | 
| type | the main type of content to display or CONTENT_TYPE_END. When a type other than CONTENT_TYPE_END is given, dependencies of other types are only shown when content that depend on them are selected. | 
Definition at line 527 of file network_content_gui.cpp.
References _network_content_client, QueryString::ACTION_CLEAR, ClientNetworkContentSocketHandler::AddCallback(), auto_select, QueryString::cancel_button, checkbox_size, content, Window::CreateNestedTree(), filter_data, filter_editbox, filter_funcs, FilterContentList(), Window::FinishInitNested(), GUIList< T, F >::ForceRebuild(), Window::GetScrollbar(), GetSpriteSize(), Window::InvalidateData(), last_filtering, last_sorting, maxdim(), Window::querystrings, GUIList< T, F >::SetFilterFuncs(), GUIList< T, F >::SetFiltering(), Window::SetFocusedWidget(), GUIList< T, F >::SetListing(), GUIList< T, F >::SetSortFuncs(), Window::SetWidgetDisabledState(), SortContentList(), sorter_funcs, ContentListFilterData::types, UpdateFilterState(), vscroll, WID_NCL_FILTER, WID_NCL_SCROLLBAR, WID_NCL_SEARCH_EXTERNAL, WID_NCL_SEL_ALL_UPDATE, and WN_NETWORK_WINDOW_CONTENT_LIST.
| 
 | inline | 
Helper function to draw the details part of this window.
| r | the rectangle to stay within while drawing | 
< Number of pixels at the left
< Number of pixels at the right
< Number of pixels at the top
Definition at line 674 of file network_content_gui.cpp.
References _network_content_client, ClientNetworkContentSocketHandler::Begin(), SmallVector< T, S >::Begin(), CONTENT_TYPE_BASE_GRAPHICS, ContentInfo::dependencies, ContentInfo::dependency_count, ContentInfo::description, DRAW_STRING_BUFFER, DrawString(), DrawStringMultiLine(), ClientNetworkContentSocketHandler::End(), SmallVector< T, S >::End(), ContentInfo::filesize, filesize_sum, FONT_HEIGHT_NORMAL, GfxFillRect(), ContentInfo::id, ContentInfo::IsSelected(), lastof, ContentInfo::name, PC_DARK_BLUE, ClientNetworkContentSocketHandler::ReverseLookupTreeDependency(), SA_CENTER, SA_HOR_CENTER, ContentInfo::SELECTED, selected, seprintf(), SetDParam(), SetDParamStr(), ContentInfo::state, StrEmpty(), ContentInfo::tag_count, ContentInfo::tags, ContentInfo::type, ContentInfo::upgrade, ContentInfo::url, ContentInfo::version, WD_INSET_LEFT, WD_INSET_RIGHT, WD_INSET_TOP, WD_PAR_VSEP_NORMAL, and WD_PAR_VSEP_WIDE.
| 
 | inline | 
Draw/fill the matrix with the list of content to download.
| r | The boundaries of the matrix. | 
Definition at line 632 of file network_content_gui.cpp.
References ContentInfo::ALREADY_HERE, ContentInfo::AUTOSELECTED, checkbox_size, content, CONTENT_TYPE_BASE_GRAPHICS, ContentInfo::DOES_NOT_EXIST, DrawSprite(), DrawString(), SmallVector< T, S >::End(), FONT_HEIGHT_NORMAL, SmallVector< T, S >::Get(), Scrollbar::GetCapacity(), GfxFillRect(), max(), ContentInfo::name, PC_GREY, NWidgetBase::pos_x, SA_HOR_CENTER, ContentInfo::SELECTED, selected, ContentInfo::state, ContentInfo::type, ContentInfo::UNSELECTED, vscroll, WD_FRAMERECT_LEFT, WD_FRAMERECT_RIGHT, WD_MATRIX_TOP, WID_NCL_CHECKBOX, WID_NCL_NAME, and WID_NCL_TYPE.
| 
 | inlinestaticprivate | 
Sort content by name.
Definition at line 410 of file network_content_gui.cpp.
References strnatcmp().
Referenced by TypeSorter().
| 
 | inlinevirtual | 
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. | 
Definition at line 984 of file network_content_gui.cpp.
References ContentInfo::ALREADY_HERE, ContentInfo::AUTOSELECTED, SmallVector< T, S >::Begin(), BuildContentList(), content, SmallVector< T, S >::End(), ContentInfo::filesize, filesize_sum, FindWindowById(), GUIList< T, F >::NeedRebuild(), ContentInfo::SELECTED, selected, Window::SetWidgetDisabledState(), ContentInfo::state, StrEmpty(), ContentInfo::UNSELECTED, ContentInfo::upgrade, ContentInfo::url, WC_NETWORK_STATUS_WINDOW, WID_NCL_CANCEL, WID_NCL_DOWNLOAD, WID_NCL_OPEN_URL, WID_NCL_SELECT_ALL, WID_NCL_SELECT_UPDATE, WID_NCL_TEXTFILE, WID_NCL_UNSELECT, and WN_NETWORK_STATUS_WINDOW_CONTENT_DOWNLOAD.
| 
 | inlinestaticprivate | 
Sort content by state.
Definition at line 427 of file network_content_gui.cpp.
References TypeSorter().
| 
 | inlinestaticprivate | 
Filter content by type, but still show content selected for download.
Definition at line 459 of file network_content_gui.cpp.
References ContentInfo::AUTOSELECTED, ContentInfo::SELECTED, and ContentListFilterData::types.
| 
 | inlinestaticprivate | 
Sort content by type.
Definition at line 416 of file network_content_gui.cpp.
References content_type_strs, NameSorter(), and strnatcmp().
Referenced by StateSorter().
| 
 | inlineprivate | 
Update filter state based on current window state.
Definition at line 498 of file network_content_gui.cpp.
References content, filter_data, GUIList< T, F >::GetFiltering(), StringFilter::IsEmpty(), GUIList< T, F >::SetFilterState(), Filtering::state, ContentListFilterData::string_filter, and ContentListFilterData::types.
Referenced by NetworkContentListWindow().
| 
 | staticprivate | 
Filter functions.
Definition at line 309 of file network_content_gui.cpp.
Referenced by NetworkContentListWindow().
| 
 | staticprivate | 
Sorter functions.
Definition at line 308 of file network_content_gui.cpp.
Referenced by NetworkContentListWindow().
 1.8.1.2
 1.8.1.2