summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/NetClientDlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'StarsEx/NetClientDlg.cpp')
-rw-r--r--StarsEx/NetClientDlg.cpp47
1 files changed, 31 insertions, 16 deletions
diff --git a/StarsEx/NetClientDlg.cpp b/StarsEx/NetClientDlg.cpp
index a478d15..03077f7 100644
--- a/StarsEx/NetClientDlg.cpp
+++ b/StarsEx/NetClientDlg.cpp
@@ -12,27 +12,24 @@
*/
#include "NetClientDlg.h"
-#include "NetClientConfig.h"
-#include "NetLobbyClient.h"
-#include "MenuScreen.h"
-#include "Starshatter.h"
-#include "Ship.h"
-#include "HUDView.h"
-
-#include "NetAddr.h"
-#include "ContentBundle.h"
#include "Button.h"
+#include "ContentBundle.h"
+#include "Keyboard.h"
#include "ListBox.h"
+#include "MenuScreen.h"
+#include "NetAddrDlg.h"
+#include "NetAddr.h"
+#include "NetClientConfig.h"
+#include "NetLobbyClient.h"
#include "Slider.h"
-#include "Video.h"
-#include "Keyboard.h"
// +--------------------------------------------------------------------+
// DECLARE MAPPING FUNCTIONS:
DEF_MAP_CLIENT(NetClientDlg, OnSelect);
DEF_MAP_CLIENT(NetClientDlg, OnAdd);
+DEF_MAP_CLIENT(NetClientDlg, OnEdit);
DEF_MAP_CLIENT(NetClientDlg, OnDel);
DEF_MAP_CLIENT(NetClientDlg, OnServer);
DEF_MAP_CLIENT(NetClientDlg, OnHost);
@@ -70,7 +67,8 @@ void
NetClientDlg::RegisterControls()
{
btn_add = (Button*) FindControl(101);
- btn_del = (Button*) FindControl(102);
+ btn_edit = (Button*) FindControl(102);
+ btn_del = (Button*) FindControl(103);
lst_servers = (ListBox*) FindControl(200);
lbl_info = FindControl(210);
btn_server = (Button*) FindControl(301);
@@ -79,6 +77,7 @@ NetClientDlg::RegisterControls()
btn_cancel = (Button*) FindControl(2);
REGISTER_CLIENT(EID_CLICK, btn_add, NetClientDlg, OnAdd);
+ REGISTER_CLIENT(EID_CLICK, btn_edit, NetClientDlg, OnEdit);
REGISTER_CLIENT(EID_CLICK, btn_del, NetClientDlg, OnDel);
REGISTER_CLIENT(EID_SELECT, lst_servers, NetClientDlg, OnSelect);
REGISTER_CLIENT(EID_CLICK, btn_server, NetClientDlg, OnServer);
@@ -133,9 +132,9 @@ NetClientDlg::ExecFrame()
NetServerInfo* info = config->GetServerInfo(server_index);
- bool del_enabled = info != 0;
- bool join_enabled = info != 0 && info->status > NetServerInfo::OFFLINE;
- bool host_enabled = join_enabled && info->hosted == 0;
+ const bool server_selected = info != 0;
+ const bool join_enabled = server_selected && info->status > NetServerInfo::OFFLINE;
+ const bool host_enabled = join_enabled && info->hosted == 0;
if (btn_host)
btn_host->SetEnabled(host_enabled);
@@ -144,7 +143,10 @@ NetClientDlg::ExecFrame()
btn_join->SetEnabled(join_enabled);
if (btn_del)
- btn_del->SetEnabled(del_enabled);
+ btn_del->SetEnabled(server_selected);
+
+ if (btn_edit)
+ btn_edit->SetEnabled(server_selected);
}
// +--------------------------------------------------------------------+
@@ -342,10 +344,23 @@ DWORD WINAPI NetClientPingProc(LPVOID link)
void
NetClientDlg::OnAdd(AWEvent* event)
{
+ if (auto dialog = manager->GetNetAddrDlg())
+ dialog->SelectConfig();
manager->ShowNetAddrDlg();
}
void
+NetClientDlg::OnEdit(AWEvent* event)
+{
+ if (config && server_index >= 0) {
+ if (auto* dialog = manager->GetNetAddrDlg()) {
+ dialog->SelectConfig(server_index);
+ }
+ manager->ShowNetAddrDlg();
+ }
+}
+
+void
NetClientDlg::OnDel(AWEvent* event)
{
if (config && server_index >= 0)