Data Structures | Typedefs | Functions | Variables

# network_gui.cpp File Reference

Implementation of the Network related GUIs. More...

`#include "../stdafx.h"`
`#include "../strings_func.h"`
`#include "../date_func.h"`
`#include "../fios.h"`
`#include "network_client.h"`
`#include "network_gui.h"`
`#include "network_gamelist.h"`
`#include "network.h"`
`#include "network_base.h"`
`#include "network_content.h"`
`#include "../gui.h"`
`#include "network_udp.h"`
`#include "../window_func.h"`
`#include "../gfx_func.h"`
`#include "../widgets/dropdown_func.h"`
`#include "../querystring_gui.h"`
`#include "../sortlist_type.h"`
`#include "../company_func.h"`
`#include "../core/geometry_func.hpp"`
`#include "../genworld.h"`
`#include "../map_type.h"`
`#include "../widgets/network_widget.h"`
`#include "table/strings.h"`
`#include "../table/sprites.h"`
`#include "../stringfilter_type.h"`

Go to the source code of this file.

## Data Structures
class | NWidgetServerListHeader
| Full blown container to make it behave exactly as we want :). More...
class | NetworkGameWindow
struct | NetworkStartServerWindow
struct | NetworkLobbyWindow
struct | NetworkClientListPopupWindow
| Popup selection window to chose an action to perform. More...
struct | NetworkClientListPopupWindow::ClientListAction
| Container for actions that can be executed. More...
struct | NetworkClientListWindow
| Main handle for clientlist. More...
struct | NetworkJoinStatusWindow
struct | NetworkCompanyPasswordWindow
## Typedefs
typedef GUIList < NetworkGameList *, StringFilter & > | GUIGameServerList
typedef uint16 | ServerListPosition
typedef void | ClientList_Action_Proc (const NetworkClientInfo *ci)
| Prototype for ClientList actions.
## Functions
static void | ShowNetworkStartServerWindow ()
static void | ShowNetworkLobbyWindow (NetworkGameList *ngl)
| Show the networklobbywindow with the selected server.
void | SortNetworkLanguages ()
void | UpdateNetworkGameWindow ()
| Update the network new window because a new server is found on the network.
static NWidgetBase * | MakeResizableHeader (int *biggest_index)
void | ShowNetworkGameWindow ()
NetworkCompanyInfo * | GetLobbyCompanyInfo (CompanyID company)
| Get the company information of a given company to fill for the lobby.
void | DrawCompanyIcon (CompanyID cid, int x, int y)
| Draw the icon of a company.
static void | ClientList_Kick (const NetworkClientInfo *ci)
static void | ClientList_Ban (const NetworkClientInfo *ci)
static void | ClientList_GiveMoney (const NetworkClientInfo *ci)
static void | ClientList_SpeakToClient (const NetworkClientInfo *ci)
static void | ClientList_SpeakToCompany (const NetworkClientInfo *ci)
static void | ClientList_SpeakToAll (const NetworkClientInfo *ci)
static void | PopupClientList (ClientID client_id, int x, int y)
| Show the popup (action list).
void | ShowClientList ()
void | ShowJoinStatusWindow ()
void | ShowNetworkNeedPassword (NetworkPasswordType npt)
void | ShowNetworkCompanyPasswordWindow (Window *parent)
## Variables
static const StringID | _connection_types_dropdown []
static const StringID | _lan_internet_types_dropdown []
static StringID | _language_dropdown [NETLANG_COUNT+1] = {STR_NULL}
static const ServerListPosition | SLP_INVALID = 0xFFFF
static const NWidgetPart | _nested_network_game_widgets []
static const WindowDesc | _network_game_window_desc (WDP_CENTER, 1000, 730, WC_NETWORK_WINDOW, WC_NONE, 0, _nested_network_game_widgets, lengthof(_nested_network_game_widgets))
static const NWidgetPart | _nested_network_start_server_window_widgets []
static const WindowDesc | _network_start_server_window_desc (WDP_CENTER, 0, 0, WC_NETWORK_WINDOW, WC_NONE, 0, _nested_network_start_server_window_widgets, lengthof(_nested_network_start_server_window_widgets))
static const NWidgetPart | _nested_network_lobby_window_widgets []
static const WindowDesc | _network_lobby_window_desc (WDP_CENTER, 0, 0, WC_NETWORK_WINDOW, WC_NONE, 0, _nested_network_lobby_window_widgets, lengthof(_nested_network_lobby_window_widgets))
static const NWidgetPart | _nested_client_list_popup_widgets []
static const WindowDesc | _client_list_popup_desc (WDP_AUTO, 0, 0, WC_CLIENT_LIST_POPUP, WC_CLIENT_LIST, 0, _nested_client_list_popup_widgets, lengthof(_nested_client_list_popup_widgets))
static const NWidgetPart | _nested_client_list_widgets []
static const WindowDesc | _client_list_desc (WDP_AUTO, 0, 0, WC_CLIENT_LIST, WC_NONE, 0, _nested_client_list_widgets, lengthof(_nested_client_list_widgets))
NetworkJoinStatus | _network_join_status
| The status of joining.
uint8 | _network_join_waiting
| The number of clients waiting in front of us.
uint32 | _network_join_bytes
| The number of bytes we already downloaded.
uint32 | _network_join_bytes_total
| The total number of bytes to download.
static const NWidgetPart | _nested_network_join_status_window_widgets []
static const WindowDesc | _network_join_status_window_desc (WDP_CENTER, 0, 0, WC_NETWORK_STATUS_WINDOW, WC_NONE, WDF_MODAL, _nested_network_join_status_window_widgets, lengthof(_nested_network_join_status_window_widgets))
static const NWidgetPart | _nested_network_company_password_window_widgets []
static const WindowDesc | _network_company_password_window_desc (WDP_AUTO, 0, 0, WC_COMPANY_PASSWORD_WINDOW, WC_NONE, 0, _nested_network_company_password_window_widgets, lengthof(_nested_network_company_password_window_widgets))

## Detailed Description

Implementation of the Network related GUIs.

Definition in file network_gui.cpp.

## Typedef Documentation

typedef void ClientList_Action_Proc(const NetworkClientInfo *ci)

Prototype for ClientList actions.

Parameters:

  | ci | The information about the current client.

Definition at line 1672 of file network_gui.cpp.

## Function Documentation

void DrawCompanyIcon | ( | CompanyID | c,
|  | int | x,
|  | int | y |
| ) |  |  |

Draw the icon of a company.

Parameters:

  | c | Company that needs its icon drawn.
  | x | Horizontal coordinate of the icon.
  | y | Vertical coordinate of the icon.

Definition at line 135 of file company_cmd.cpp.

References DrawSprite().

Referenced by TownAuthorityWindow::DrawRatings(), NetworkClientListWindow::DrawWidget(), LinkGraphLegendWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), CompanyLeagueWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), CheatWindow::DrawWidget(), and AIDebugWindow::OnPaint().

NetworkCompanyInfo* GetLobbyCompanyInfo | ( | CompanyID | company | ) |

Get the company information of a given company to fill for the lobby.

Parameters:

  | company | the company to get the company info struct from.

Returns:
  the company info struct to write the (downloaded) data to.

Definition at line 1656 of file network_gui.cpp.

References FindWindowById(), WC_NETWORK_WINDOW, and WN_NETWORK_WINDOW_LOBBY.

Referenced by NetworkLobbyWindow::OnPaint(), and ClientNetworkGameSocketHandler::Receive_SERVER_COMPANY_INFO().

static void ShowNetworkLobbyWindow | ( | NetworkGameList * | ngl | ) | `[static]`

Show the networklobbywindow with the selected server.

Parameters:

  | ngl | Selected game pointer which is passed to the new window.

Definition at line 1640 of file network_gui.cpp.

References _settings_client, DeleteWindowById(), NetworkSettings::last_host, NetworkSettings::last_port, ClientSettings::network, NetworkUDPQueryServer(), WC_NETWORK_WINDOW, WN_NETWORK_WINDOW_GAME, and WN_NETWORK_WINDOW_START.

Referenced by NetworkGameWindow::OnClick().

void UpdateNetworkGameWindow | ( |  | ) |

Update the network new window because a new server is found on the network.

Parameters:

  | unselect | unselect the currently selected item

Definition at line 77 of file network_gui.cpp.

References InvalidateWindowData(), WC_NETWORK_WINDOW, and WN_NETWORK_WINDOW_GAME.

Referenced by NetworkGameListAddItem(), NetworkGameListHandleDelayedInsert(), NetworkGameListRemoveItem(), and ClientNetworkUDPSocketHandler::Receive_SERVER_RESPONSE().

## Variable Documentation

const StringID _connection_types_dropdown[]`[static]`

Initial value:

     {
      STR_NETWORK_START_SERVER_LAN_INTERNET,
      STR_NETWORK_START_SERVER_INTERNET_ADVERTISE,
      INVALID_STRING_ID
    }

Definition at line 46 of file network_gui.cpp.

const StringID _lan_internet_types_dropdown[]`[static]`

Initial value:

     {
      STR_NETWORK_SERVER_LIST_LAN,
      STR_NETWORK_SERVER_LIST_INTERNET,
      INVALID_STRING_ID
    }

Definition at line 52 of file network_gui.cpp.

const NWidgetPart _nested_client_list_popup_widgets[]`[static]`

Initial value:

     {
      NWidget(WWT_PANEL, COLOUR_GREY, WID_CLP_PANEL), EndContainer(),
    }

Definition at line 1674 of file network_gui.cpp.

const NWidgetPart _nested_client_list_widgets[]`[static]`

Initial value:

     {
      NWidget(NWID_HORIZONTAL),
        NWidget(WWT_CLOSEBOX, COLOUR_GREY),
        NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_NETWORK_COMPANY_LIST_CLIENT_LIST, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
        NWidget(WWT_STICKYBOX, COLOUR_GREY),
      EndContainer(),
      NWidget(WWT_PANEL, COLOUR_GREY, WID_CL_PANEL), SetMinimalSize(250, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), SetResize(1, 1), EndContainer(),
    }

Definition at line 1845 of file network_gui.cpp.

const NWidgetPart _nested_network_company_password_window_widgets[]`[static]`

Initial value:

     {
      NWidget(NWID_HORIZONTAL),
        NWidget(WWT_CLOSEBOX, COLOUR_GREY),
        NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_COMPANY_PASSWORD_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
      EndContainer(),
      NWidget(WWT_PANEL, COLOUR_GREY, WID_NCP_BACKGROUND),
        NWidget(NWID_VERTICAL), SetPIP(5, 5, 5),
          NWidget(NWID_HORIZONTAL), SetPIP(5, 5, 5),
            NWidget(WWT_TEXT, COLOUR_GREY, WID_NCP_LABEL), SetDataTip(STR_COMPANY_VIEW_PASSWORD, STR_NULL),
            NWidget(WWT_EDITBOX, COLOUR_GREY, WID_NCP_PASSWORD), SetMinimalSize(194, 12), SetDataTip(STR_COMPANY_VIEW_SET_PASSWORD, STR_NULL),
          EndContainer(),
          NWidget(NWID_HORIZONTAL), SetPIP(5, 0, 5),
            NWidget(NWID_SPACER), SetFill(1, 0),
            NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_NCP_SAVE_AS_DEFAULT_PASSWORD), SetMinimalSize(194, 12),
                          SetDataTip(STR_COMPANY_PASSWORD_MAKE_DEFAULT, STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP),
          EndContainer(),
        EndContainer(),
      EndContainer(),
      NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
        NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_NCP_CANCEL), SetFill(1, 0), SetDataTip(STR_BUTTON_CANCEL, STR_COMPANY_PASSWORD_CANCEL),
        NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_NCP_OK), SetFill(1, 0), SetDataTip(STR_BUTTON_OK, STR_COMPANY_PASSWORD_OK),
      EndContainer(),
    }

Definition at line 2197 of file network_gui.cpp.

const NWidgetPart _nested_network_join_status_window_widgets[]`[static]`

Initial value:

     {
      NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_NETWORK_CONNECTING_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
      NWidget(WWT_PANEL, COLOUR_GREY),
        NWidget(WWT_EMPTY, COLOUR_GREY, WID_NJS_BACKGROUND),
        NWidget(NWID_HORIZONTAL),
          NWidget(NWID_SPACER), SetMinimalSize(75, 0), SetFill(1, 0),
          NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, WID_NJS_CANCELOK), SetMinimalSize(101, 12), SetDataTip(STR_NETWORK_CONNECTION_DISCONNECT, STR_NULL),
          NWidget(NWID_SPACER), SetMinimalSize(75, 0), SetFill(1, 0),
        EndContainer(),
        NWidget(NWID_SPACER), SetMinimalSize(0, 4),
      EndContainer(),
    }

Definition at line 2113 of file network_gui.cpp.