visualboyadvance-m/src/win32/JoybusOptions.cpp

81 lines
1.6 KiB
C++

#ifndef NO_LINK
#include "stdafx.h"
#include "vba.h"
#include "JoybusOptions.h"
#include "../gba/GBALink.h"
// JoybusOptions dialog
IMPLEMENT_DYNAMIC(JoybusOptions, CDialog)
JoybusOptions::JoybusOptions(CWnd* pParent /*=NULL*/)
: CDialog(JoybusOptions::IDD, pParent)
{
}
JoybusOptions::~JoybusOptions()
{
}
void JoybusOptions::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_JOYBUS_ENABLE, enable_check);
DDX_Control(pDX, IDC_JOYBUS_HOSTNAME, hostname);
}
BEGIN_MESSAGE_MAP(JoybusOptions, CDialog)
ON_BN_CLICKED(IDC_JOYBUS_ENABLE, &JoybusOptions::OnBnClickedJoybusEnable)
ON_BN_CLICKED(IDOK, &JoybusOptions::OnBnClickedOk)
END_MESSAGE_MAP()
BOOL JoybusOptions::OnInitDialog()
{
CDialog::OnInitDialog();
enable_check.SetCheck(gba_joybus_enabled ? BST_CHECKED : BST_UNCHECKED);
hostname.EnableWindow(enable_check.GetCheck() == BST_CHECKED);
hostname.SetWindowText(joybusHostAddr.ToString().c_str());
return TRUE;
}
void JoybusOptions::OnBnClickedJoybusEnable()
{
hostname.EnableWindow(enable_check.GetCheck() == BST_CHECKED);
}
void JoybusOptions::OnBnClickedOk()
{
if ( (hostname.GetWindowTextLength() == 0)
&& (enable_check.GetCheck() == BST_CHECKED) )
{
hostname.SetWindowText("Enter IP or Hostname");
return;
}
gba_joybus_enabled = enable_check.GetCheck() == BST_CHECKED;
CString address;
hostname.GetWindowText(address);
sf::IPAddress new_server;
new_server = std::string(address);
if (!new_server.IsValid())
{
hostname.SetWindowText("Enter IP or Hostname");
return;
}
joybusHostAddr = new_server;
JoyBusConnect();
OnOK();
}
#endif // NO_LINK