Support for multi-provider management added to GUI
This commit is contained in:
parent
858486412e
commit
5dfd079686
@ -89,6 +89,7 @@ inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::config &val);
|
|||||||
#include <eaptypes.h> // Must include after <Windows.h>
|
#include <eaptypes.h> // Must include after <Windows.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
|
|
||||||
|
#include <list>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
@ -466,6 +467,9 @@ namespace eap
|
|||||||
|
|
||||||
class config_connection : public config
|
class config_connection : public config
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
typedef std::list<eap::config_provider> provider_list;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
/// Constructs configuration
|
/// Constructs configuration
|
||||||
@ -560,7 +564,7 @@ namespace eap
|
|||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::vector<eap::config_provider> m_providers; ///< Array of provider configurations
|
std::list<eap::config_provider> m_providers; ///< Provider configurations
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -619,14 +619,14 @@ eap::config_connection::config_connection(_In_ module &mod) : config(mod)
|
|||||||
|
|
||||||
eap::config_connection::config_connection(_In_ const config_connection &other) :
|
eap::config_connection::config_connection(_In_ const config_connection &other) :
|
||||||
m_providers(other.m_providers),
|
m_providers(other.m_providers),
|
||||||
config(other)
|
config (other )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
eap::config_connection::config_connection(_Inout_ config_connection &&other) :
|
eap::config_connection::config_connection(_Inout_ config_connection &&other) :
|
||||||
m_providers(std::move(other.m_providers)),
|
m_providers(std::move(other.m_providers)),
|
||||||
config(std::move(other))
|
config (std::move(other ))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -645,7 +645,7 @@ eap::config_connection& eap::config_connection::operator=(_In_ const config_conn
|
|||||||
eap::config_connection& eap::config_connection::operator=(_Inout_ config_connection &&other)
|
eap::config_connection& eap::config_connection::operator=(_Inout_ config_connection &&other)
|
||||||
{
|
{
|
||||||
if (this != &other) {
|
if (this != &other) {
|
||||||
(config&&)*this = std::move(other);
|
(config&&)*this = std::move(other );
|
||||||
m_providers = std::move(other.m_providers);
|
m_providers = std::move(other.m_providers);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -671,7 +671,7 @@ void eap::config_connection::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *
|
|||||||
if (FAILED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:EAPIdentityProviderList"), &pXmlElIdentityProviderList)))
|
if (FAILED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:EAPIdentityProviderList"), &pXmlElIdentityProviderList)))
|
||||||
throw com_runtime_error(hr, __FUNCTION__ " Error selecting <EAPIdentityProviderList> element.");
|
throw com_runtime_error(hr, __FUNCTION__ " Error selecting <EAPIdentityProviderList> element.");
|
||||||
|
|
||||||
for (vector<config_provider>::const_iterator provider = m_providers.cbegin(), provider_end = m_providers.cend(); provider != provider_end; ++provider) {
|
for (provider_list::const_iterator provider = m_providers.cbegin(), provider_end = m_providers.cend(); provider != provider_end; ++provider) {
|
||||||
// <EAPIdentityProvider>
|
// <EAPIdentityProvider>
|
||||||
com_obj<IXMLDOMElement> pXmlElIdentityProvider;
|
com_obj<IXMLDOMElement> pXmlElIdentityProvider;
|
||||||
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"EAPIdentityProvider"), bstrNamespace, &pXmlElIdentityProvider)))
|
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"EAPIdentityProvider"), bstrNamespace, &pXmlElIdentityProvider)))
|
||||||
@ -733,10 +733,10 @@ void eap::config_connection::operator>>(_Inout_ cursor_in &cursor)
|
|||||||
{
|
{
|
||||||
config::operator>>(cursor);
|
config::operator>>(cursor);
|
||||||
|
|
||||||
list<config_provider>::size_type count;
|
provider_list::size_type count;
|
||||||
cursor >> count;
|
cursor >> count;
|
||||||
m_providers.clear();
|
m_providers.clear();
|
||||||
for (list<config_provider>::size_type i = 0; i < count; i++) {
|
for (provider_list::size_type i = 0; i < count; i++) {
|
||||||
config_provider el(m_module);
|
config_provider el(m_module);
|
||||||
cursor >> el;
|
cursor >> el;
|
||||||
m_providers.push_back(std::move(el));
|
m_providers.push_back(std::move(el));
|
||||||
|
@ -21,7 +21,9 @@
|
|||||||
#include <wx/hyperlink.h>
|
#include <wx/hyperlink.h>
|
||||||
#include <wx/icon.h>
|
#include <wx/icon.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
|
#include <wx/msgdlg.h>
|
||||||
#include <wx/scrolwin.h>
|
#include <wx/scrolwin.h>
|
||||||
|
#include <wx/textdlg.h>
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
||||||
|
|
||||||
@ -187,7 +189,7 @@ public:
|
|||||||
this->SetIcon(wxIcon(wxICON(product.ico)));
|
this->SetIcon(wxIcon(wxICON(product.ico)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (std::vector<eap::config_provider>::iterator provider = m_cfg.m_providers.begin(), provider_end = m_cfg.m_providers.end(); provider != provider_end; ++provider) {
|
for (eap::config_connection::provider_list::iterator provider = m_cfg.m_providers.begin(), provider_end = m_cfg.m_providers.end(); provider != provider_end; ++provider) {
|
||||||
bool is_single = provider->m_methods.size() == 1;
|
bool is_single = provider->m_methods.size() == 1;
|
||||||
std::vector<std::unique_ptr<eap::config_method> >::size_type count = 0;
|
std::vector<std::unique_ptr<eap::config_method> >::size_type count = 0;
|
||||||
std::vector<std::unique_ptr<eap::config_method> >::iterator method = provider->m_methods.begin(), method_end = provider->m_methods.end();
|
std::vector<std::unique_ptr<eap::config_method> >::iterator method = provider->m_methods.begin(), method_end = provider->m_methods.end();
|
||||||
@ -223,15 +225,72 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
virtual void OnUpdateUI(wxUpdateUIEvent& /*event*/)
|
virtual void OnUpdateUI(wxUpdateUIEvent& /*event*/)
|
||||||
|
{
|
||||||
|
int idx = m_providers->GetSelection();
|
||||||
|
if (idx != wxNOT_FOUND) {
|
||||||
|
eap::config_provider &cfg_provider = ((_wxT*)m_providers->GetPage(idx))->GetProvider();
|
||||||
|
m_prov_remove->Enable(true);
|
||||||
|
m_prov_advanced->Enable(!cfg_provider.m_read_only);
|
||||||
|
} else {
|
||||||
|
m_prov_remove->Enable(false);
|
||||||
|
m_prov_advanced->Enable(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
virtual void OnProvAdd(wxCommandEvent& /*event*/)
|
||||||
|
{
|
||||||
|
// One method
|
||||||
|
std::unique_ptr<eap::config_method> cfg_method(m_cfg.m_module.make_config_method());
|
||||||
|
|
||||||
|
// Create provider.
|
||||||
|
eap::config_provider cfg_provider(m_cfg.m_module);
|
||||||
|
GUID guid;
|
||||||
|
CoCreateGuid(&guid);
|
||||||
|
cfg_provider.m_id = std::move(winstd::wstring_guid(guid));
|
||||||
|
cfg_provider.m_methods.push_back(std::move(cfg_method));
|
||||||
|
|
||||||
|
// Append provider.
|
||||||
|
m_cfg.m_providers.push_back(std::move(cfg_provider));
|
||||||
|
eap::config_provider &cfg_provider2 = m_cfg.m_providers.back();
|
||||||
|
eap::config_method *cfg_method2 = cfg_provider2.m_methods.front().get();
|
||||||
|
m_providers->InsertPage(
|
||||||
|
m_providers->GetSelection() + 1,
|
||||||
|
new _wxT(
|
||||||
|
cfg_provider2,
|
||||||
|
*cfg_method2,
|
||||||
|
cfg_provider2.m_id.c_str(),
|
||||||
|
m_providers),
|
||||||
|
wxEAPGetProviderName(cfg_provider2.m_name), true);
|
||||||
|
|
||||||
|
this->Layout();
|
||||||
|
this->Fit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
virtual void OnProvRemove(wxCommandEvent& /*event*/)
|
||||||
{
|
{
|
||||||
int idx = m_providers->GetSelection();
|
int idx = m_providers->GetSelection();
|
||||||
eap::config_provider &cfg_provider = ((_wxT*)m_providers->GetPage(idx))->GetProvider();
|
eap::config_provider &cfg_provider = ((_wxT*)m_providers->GetPage(idx))->GetProvider();
|
||||||
|
|
||||||
m_advanced->Enable(!cfg_provider.m_read_only);
|
if (wxMessageBox(tstring_printf(_("Are you sure you want to permanently remove %ls provider from configuration?"), cfg_provider.m_name.c_str()), _("Warning"), wxYES_NO, this) == wxYES) {
|
||||||
|
// Delete provider.
|
||||||
|
eap::config_connection::provider_list::iterator it(m_cfg.m_providers.begin());
|
||||||
|
for (int i = 0; i < idx; i++, ++it);
|
||||||
|
m_cfg.m_providers.erase(it);
|
||||||
|
m_providers->DeletePage(idx);
|
||||||
|
if (idx < m_providers->GetPageCount())
|
||||||
|
m_providers->SetSelection(idx);
|
||||||
|
|
||||||
|
this->Layout();
|
||||||
|
this->Fit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void OnAdvanced(wxCommandEvent& /*event*/)
|
|
||||||
|
virtual void OnProvAdvanced(wxCommandEvent& /*event*/)
|
||||||
{
|
{
|
||||||
int idx = m_providers->GetSelection();
|
int idx = m_providers->GetSelection();
|
||||||
eap::config_provider &cfg_provider = ((_wxT*)m_providers->GetPage(idx))->GetProvider();
|
eap::config_provider &cfg_provider = ((_wxT*)m_providers->GetPage(idx))->GetProvider();
|
||||||
@ -243,7 +302,6 @@ protected:
|
|||||||
|
|
||||||
/// \endcond
|
/// \endcond
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
eap::config_connection &m_cfg; ///< Connection configuration
|
eap::config_connection &m_cfg; ///< Connection configuration
|
||||||
};
|
};
|
||||||
|
@ -26,7 +26,7 @@ wxEAPConfigDialogBase::wxEAPConfigDialogBase( wxWindow* parent, wxWindowID id, c
|
|||||||
m_providers->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
|
m_providers->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
|
||||||
|
|
||||||
|
|
||||||
sb_content->Add( m_providers, 1, wxEXPAND|wxALL, 10 );
|
sb_content->Add( m_providers, 0, wxEXPAND|wxALL, 10 );
|
||||||
|
|
||||||
wxBoxSizer* sb_bottom_horiz;
|
wxBoxSizer* sb_bottom_horiz;
|
||||||
sb_bottom_horiz = new wxBoxSizer( wxHORIZONTAL );
|
sb_bottom_horiz = new wxBoxSizer( wxHORIZONTAL );
|
||||||
@ -34,10 +34,20 @@ wxEAPConfigDialogBase::wxEAPConfigDialogBase( wxWindow* parent, wxWindowID id, c
|
|||||||
wxBoxSizer* sb_bottom_horiz_inner;
|
wxBoxSizer* sb_bottom_horiz_inner;
|
||||||
sb_bottom_horiz_inner = new wxBoxSizer( wxHORIZONTAL );
|
sb_bottom_horiz_inner = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
m_advanced = new wxButton( this, wxID_ANY, _("Advanced..."), wxDefaultPosition, wxDefaultSize, 0 );
|
m_prov_add = new wxButton( this, wxID_ANY, _("+"), wxDefaultPosition, wxSize( 30,-1 ), 0 );
|
||||||
m_advanced->SetToolTip( _("Opens dialog with provider settings") );
|
m_prov_add->SetToolTip( _("Adds new provider") );
|
||||||
|
|
||||||
sb_bottom_horiz_inner->Add( m_advanced, 0, wxALL, 5 );
|
sb_bottom_horiz_inner->Add( m_prov_add, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
m_prov_remove = new wxButton( this, wxID_ANY, _("-"), wxDefaultPosition, wxSize( 30,-1 ), 0 );
|
||||||
|
m_prov_remove->SetToolTip( _("Removes selected provider") );
|
||||||
|
|
||||||
|
sb_bottom_horiz_inner->Add( m_prov_remove, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
m_prov_advanced = new wxButton( this, wxID_ANY, _("Advanced..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_prov_advanced->SetToolTip( _("Opens dialog with provider settings") );
|
||||||
|
|
||||||
|
sb_bottom_horiz_inner->Add( m_prov_advanced, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
sb_bottom_horiz->Add( sb_bottom_horiz_inner, 1, wxEXPAND, 5 );
|
sb_bottom_horiz->Add( sb_bottom_horiz_inner, 1, wxEXPAND, 5 );
|
||||||
@ -62,7 +72,9 @@ wxEAPConfigDialogBase::wxEAPConfigDialogBase( wxWindow* parent, wxWindowID id, c
|
|||||||
// Connect Events
|
// Connect Events
|
||||||
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxEAPConfigDialogBase::OnInitDialog ) );
|
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxEAPConfigDialogBase::OnInitDialog ) );
|
||||||
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPConfigDialogBase::OnUpdateUI ) );
|
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPConfigDialogBase::OnUpdateUI ) );
|
||||||
m_advanced->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnAdvanced ), NULL, this );
|
m_prov_add->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnProvAdd ), NULL, this );
|
||||||
|
m_prov_remove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnProvRemove ), NULL, this );
|
||||||
|
m_prov_advanced->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnProvAdvanced ), NULL, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxEAPConfigDialogBase::~wxEAPConfigDialogBase()
|
wxEAPConfigDialogBase::~wxEAPConfigDialogBase()
|
||||||
@ -70,7 +82,9 @@ wxEAPConfigDialogBase::~wxEAPConfigDialogBase()
|
|||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxEAPConfigDialogBase::OnInitDialog ) );
|
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxEAPConfigDialogBase::OnInitDialog ) );
|
||||||
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPConfigDialogBase::OnUpdateUI ) );
|
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPConfigDialogBase::OnUpdateUI ) );
|
||||||
m_advanced->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnAdvanced ), NULL, this );
|
m_prov_add->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnProvAdd ), NULL, this );
|
||||||
|
m_prov_remove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnProvRemove ), NULL, this );
|
||||||
|
m_prov_advanced->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPConfigDialogBase::OnProvAdvanced ), NULL, this );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@
|
|||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">10</property>
|
<property name="border">10</property>
|
||||||
<property name="flag">wxEXPAND|wxALL</property>
|
<property name="flag">wxEXPAND|wxALL</property>
|
||||||
<property name="proportion">1</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxNotebook" expanded="1">
|
<object class="wxNotebook" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
@ -280,6 +280,182 @@
|
|||||||
<property name="name">sb_bottom_horiz_inner</property>
|
<property name="name">sb_bottom_horiz_inner</property>
|
||||||
<property name="orient">wxHORIZONTAL</property>
|
<property name="orient">wxHORIZONTAL</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">+</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_prov_add</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size">30,-1</property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip">Adds new provider</property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">OnProvAdd</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">-</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_prov_remove</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size">30,-1</property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip">Removes selected provider</property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">OnProvRemove</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL</property>
|
<property name="flag">wxALL</property>
|
||||||
@ -321,7 +497,7 @@
|
|||||||
<property name="minimize_button">0</property>
|
<property name="minimize_button">0</property>
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="moveable">1</property>
|
<property name="moveable">1</property>
|
||||||
<property name="name">m_advanced</property>
|
<property name="name">m_prov_advanced</property>
|
||||||
<property name="pane_border">1</property>
|
<property name="pane_border">1</property>
|
||||||
<property name="pane_position"></property>
|
<property name="pane_position"></property>
|
||||||
<property name="pane_size"></property>
|
<property name="pane_size"></property>
|
||||||
@ -342,7 +518,7 @@
|
|||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnButtonClick">OnAdvanced</event>
|
<event name="OnButtonClick">OnProvAdvanced</event>
|
||||||
<event name="OnChar"></event>
|
<event name="OnChar"></event>
|
||||||
<event name="OnEnterWindow"></event>
|
<event name="OnEnterWindow"></event>
|
||||||
<event name="OnEraseBackground"></event>
|
<event name="OnEraseBackground"></event>
|
||||||
|
@ -48,7 +48,9 @@ class wxEAPConfigDialogBase : public wxDialog
|
|||||||
protected:
|
protected:
|
||||||
wxEAPBannerPanel *m_banner;
|
wxEAPBannerPanel *m_banner;
|
||||||
wxNotebook* m_providers;
|
wxNotebook* m_providers;
|
||||||
wxButton* m_advanced;
|
wxButton* m_prov_add;
|
||||||
|
wxButton* m_prov_remove;
|
||||||
|
wxButton* m_prov_advanced;
|
||||||
wxStdDialogButtonSizer* m_buttons;
|
wxStdDialogButtonSizer* m_buttons;
|
||||||
wxButton* m_buttonsOK;
|
wxButton* m_buttonsOK;
|
||||||
wxButton* m_buttonsCancel;
|
wxButton* m_buttonsCancel;
|
||||||
@ -56,7 +58,9 @@ class wxEAPConfigDialogBase : public wxDialog
|
|||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
|
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
|
||||||
virtual void OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }
|
virtual void OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||||
virtual void OnAdvanced( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnProvAdd( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnProvRemove( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnProvAdvanced( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -29,8 +29,11 @@ using namespace winstd;
|
|||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
eap::config_method_ttls::config_method_ttls(_In_ module &mod) :
|
eap::config_method_ttls::config_method_ttls(_In_ module &mod) :
|
||||||
|
m_inner(new config_method_pap(mod)),
|
||||||
config_method_tls(mod)
|
config_method_tls(mod)
|
||||||
{
|
{
|
||||||
|
// TTLS is using blank pre-shared credentials per default.
|
||||||
|
m_use_preshared = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,26 +102,7 @@ void eap::peer_ttls_ui::invoke_config_ui(
|
|||||||
// Load existing configuration.
|
// Load existing configuration.
|
||||||
unpack(cfg, pConnectionDataIn, dwConnectionDataInSize);
|
unpack(cfg, pConnectionDataIn, dwConnectionDataInSize);
|
||||||
} else {
|
} else {
|
||||||
// This is a blank network profile. Create default configuraton.
|
// This is a blank network profile. `cfg` is already set to defaults.
|
||||||
|
|
||||||
// Inner configuration: PAP
|
|
||||||
config_method_pap *cfg_method_inner = new config_method_pap(*this);
|
|
||||||
cfg_method_inner->m_use_preshared = false;
|
|
||||||
cfg_method_inner->m_preshared(new credentials_pap(*this));
|
|
||||||
|
|
||||||
// Outer configuration
|
|
||||||
unique_ptr<config_method_ttls> cfg_method(new config_method_ttls(*this));
|
|
||||||
cfg_method->m_anonymous_identity = L"@";
|
|
||||||
cfg_method->m_use_preshared = true;
|
|
||||||
cfg_method->m_preshared.reset(new credentials_tls(*this));
|
|
||||||
cfg_method->m_inner.reset(cfg_method_inner);
|
|
||||||
|
|
||||||
// One method
|
|
||||||
config_provider cfg_provider(*this);
|
|
||||||
cfg_provider.m_methods.push_back(std::move(cfg_method));
|
|
||||||
|
|
||||||
// One provider
|
|
||||||
cfg.m_providers.push_back(std::move(cfg_provider));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int result;
|
int result;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user