diff options
Diffstat (limited to 'StarsEx/NetClientDlg.cpp')
-rw-r--r-- | StarsEx/NetClientDlg.cpp | 47 |
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) |