diff --git a/lib/EAPBase_UI/build/EAPBase_UI.vcxproj b/lib/EAPBase_UI/build/EAPBase_UI.vcxproj index b898611..4294ac7 100644 --- a/lib/EAPBase_UI/build/EAPBase_UI.vcxproj +++ b/lib/EAPBase_UI/build/EAPBase_UI.vcxproj @@ -91,7 +91,7 @@ - ..\..\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\..\WinStd\include;%(AdditionalIncludeDirectories) + ..\..\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\..\WinStd\include;..\..\wxExtend\include;%(AdditionalIncludeDirectories) diff --git a/lib/EAPBase_UI/include/EAP_UI.h b/lib/EAPBase_UI/include/EAP_UI.h index 48877bc..9760ca0 100644 --- a/lib/EAPBase_UI/include/EAP_UI.h +++ b/lib/EAPBase_UI/include/EAP_UI.h @@ -46,6 +46,7 @@ template class wxEAPCredentialsPanel; template class wxIdentityCredentialsPanel; template class wxPasswordCredentialsPanel; class wxEAPProviderSelectDialog; +class wxInitializerPeer; /// /// \defgroup EAPBaseGUI GUI @@ -121,7 +122,9 @@ inline void wxInitializeConfig(); #include #include +#include #include +#include #include @@ -409,6 +412,32 @@ protected: }; +/// +/// Peer initializer +/// +class wxInitializerPeer +{ +public: + /// + /// Initialize peer + /// + wxInitializerPeer(_In_ HINSTANCE instance, _In_ const wxString &domain, _In_opt_ HWND hwndParent); + + /// + /// Uninitialize peer + /// + virtual ~wxInitializerPeer(); + +public: + wxWindow* m_parent; ///< Parent window + +protected: + static wxCriticalSection s_lock; ///< Initialization lock + static unsigned long s_init_ref_count; ///< Initialization reference counter + static wxLocale *s_locale; ///< Locale +}; + + /// /// EAP general note /// @@ -1028,8 +1057,6 @@ protected: /// \endcond }; -/// @} - /// /// Generic password credential entry panel diff --git a/lib/EAPBase_UI/src/EAP_UI.cpp b/lib/EAPBase_UI/src/EAP_UI.cpp index 97ae9a7..d7176dd 100644 --- a/lib/EAPBase_UI/src/EAP_UI.cpp +++ b/lib/EAPBase_UI/src/EAP_UI.cpp @@ -467,3 +467,62 @@ void wxEAPProviderSelectDialog::OnProvSelect(wxCommandEvent& event) event.Skip(); } /// \endcond + + +////////////////////////////////////////////////////////////////////// +// wxInitializerPeer +////////////////////////////////////////////////////////////////////// + +wxInitializerPeer::wxInitializerPeer(_In_ HINSTANCE instance, _In_ const wxString &domain, _In_opt_ HWND hwndParent) +{ + wxCriticalSectionLocker locker(s_lock); + + if (s_init_ref_count++ == 0) { + // Initialize application. + new wxApp(); + wxEntryStart(instance); + + // Do our wxWidgets configuration and localization initialization. + wxInitializeConfig(); + s_locale = new wxLocale; + if (wxInitializeLocale(*s_locale)) { + s_locale->AddCatalog(wxT("wxExtend") wxT(wxExtendVersion)); + if (!domain.IsEmpty()) + s_locale->AddCatalog(domain); + } + } + + if (hwndParent) { + // Create wxWidget-approved parent window. + m_parent = new wxWindow; + m_parent->SetHWND((WXHWND)hwndParent); + m_parent->AdoptAttributesFromHWND(); + wxTopLevelWindows.Append(m_parent); + } else + m_parent = NULL; +} + + +wxInitializerPeer::~wxInitializerPeer() +{ + wxCriticalSectionLocker locker(s_lock); + + if (m_parent) { + wxTopLevelWindows.DeleteObject(m_parent); + m_parent->SetHWND((WXHWND)NULL); + } + + if (--s_init_ref_count == 0) { + wxEntryCleanup(); + + if (s_locale) { + delete s_locale; + s_locale = NULL; + } + } +} + + +wxCriticalSection wxInitializerPeer::s_lock; +unsigned long wxInitializerPeer::s_init_ref_count = 0; +wxLocale *wxInitializerPeer::s_locale = NULL; diff --git a/lib/EAPBase_UI/src/StdAfx.h b/lib/EAPBase_UI/src/StdAfx.h index 8395abc..0d2ced9 100644 --- a/lib/EAPBase_UI/src/StdAfx.h +++ b/lib/EAPBase_UI/src/StdAfx.h @@ -23,4 +23,7 @@ #include "../include/EAP_UI.h" #include "../include/Module.h" +#include + +#include #include diff --git a/lib/TTLS_UI/build/TTLS_UI.vcxproj b/lib/TTLS_UI/build/TTLS_UI.vcxproj index d896e39..a8d9372 100644 --- a/lib/TTLS_UI/build/TTLS_UI.vcxproj +++ b/lib/TTLS_UI/build/TTLS_UI.vcxproj @@ -91,7 +91,7 @@ - ..\..\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\..\WinStd\include;..\..\wxExtend\include;%(AdditionalIncludeDirectories) + ..\..\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\..\WinStd\include;%(AdditionalIncludeDirectories) diff --git a/lib/TTLS_UI/src/Module.cpp b/lib/TTLS_UI/src/Module.cpp index 94e1c34..4cc2c52 100644 --- a/lib/TTLS_UI/src/Module.cpp +++ b/lib/TTLS_UI/src/Module.cpp @@ -24,32 +24,6 @@ using namespace std; using namespace winstd; -/// -/// Peer initializer -/// -class wxInitializerPeer -{ -public: - /// - /// Initialize peer - /// - wxInitializerPeer(_In_ HINSTANCE instance, _In_opt_ HWND hwndParent); - - /// - /// Uninitialize peer - /// - virtual ~wxInitializerPeer(); - -public: - wxWindow* m_parent; ///< Parent window - -protected: - static wxCriticalSection s_lock; ///< Initialization lock - static unsigned long s_init_ref_count; ///< Initialization reference counter - static wxLocale *s_locale; ///< Locale -}; - - ////////////////////////////////////////////////////////////////////// // eap::peer_ttls_ui ////////////////////////////////////////////////////////////////////// @@ -118,7 +92,7 @@ void eap::peer_ttls_ui::invoke_config_ui( } // Initialize application. - wxInitializerPeer init(m_instance, hwndParent); + wxInitializerPeer init(m_instance, wxT("EAP-TTLS_UI"), hwndParent); // Create and launch configuration dialog. wxEAPConfigDialog dlg(cfg, init.m_parent); @@ -186,7 +160,7 @@ void eap::peer_ttls_ui::invoke_identity_ui( config_method_ttls *cfg_method = NULL; // Initialize application. - wxInitializerPeer init(m_instance, hwndParent); + wxInitializerPeer init(m_instance, wxT("EAP-TTLS_UI"), hwndParent); if (cfg.m_providers.size() > 1) { // Multiple identity providers: User has to select one first. @@ -443,7 +417,7 @@ void eap::peer_ttls_ui::invoke_interactive_ui( #endif { // Initialize application. - wxInitializerPeer init(m_instance, hwndParent); + wxInitializerPeer init(m_instance, wxT("EAP-TTLS_UI"), hwndParent); sanitizing_wstring challenge(reinterpret_cast(ctx.m_data.data()), ctx.m_data.size()/sizeof(sanitizing_wstring::value_type)), @@ -504,61 +478,3 @@ void eap::peer_ttls_ui::invoke_interactive_ui( // Pack output data. pack(ctx.m_data, ppDataFromInteractiveUI, pdwDataFromInteractiveUISize); } - - -////////////////////////////////////////////////////////////////////// -// wxInitializerPeer -////////////////////////////////////////////////////////////////////// - -wxInitializerPeer::wxInitializerPeer(_In_ HINSTANCE instance, _In_opt_ HWND hwndParent) -{ - wxCriticalSectionLocker locker(s_lock); - - if (s_init_ref_count++ == 0) { - // Initialize application. - new wxApp(); - wxEntryStart(instance); - - // Do our wxWidgets configuration and localization initialization. - wxInitializeConfig(); - s_locale = new wxLocale; - if (wxInitializeLocale(*s_locale)) { - s_locale->AddCatalog(wxT("wxExtend") wxT(wxExtendVersion)); - s_locale->AddCatalog(wxT("EAP-TTLS_UI")); - } - } - - if (hwndParent) { - // Create wxWidget-approved parent window. - m_parent = new wxWindow; - m_parent->SetHWND((WXHWND)hwndParent); - m_parent->AdoptAttributesFromHWND(); - wxTopLevelWindows.Append(m_parent); - } else - m_parent = NULL; -} - - -wxInitializerPeer::~wxInitializerPeer() -{ - wxCriticalSectionLocker locker(s_lock); - - if (m_parent) { - wxTopLevelWindows.DeleteObject(m_parent); - m_parent->SetHWND((WXHWND)NULL); - } - - if (--s_init_ref_count == 0) { - wxEntryCleanup(); - - if (s_locale) { - delete s_locale; - s_locale = NULL; - } - } -} - - -wxCriticalSection wxInitializerPeer::s_lock; -unsigned long wxInitializerPeer::s_init_ref_count = 0; -wxLocale *wxInitializerPeer::s_locale = NULL; diff --git a/lib/TTLS_UI/src/StdAfx.h b/lib/TTLS_UI/src/StdAfx.h index fc8eb81..a52ad1c 100644 --- a/lib/TTLS_UI/src/StdAfx.h +++ b/lib/TTLS_UI/src/StdAfx.h @@ -34,8 +34,4 @@ #include "../../EapHost/include/Credentials.h" #include "../../TTLS/include/UIContext.h" -#include - -#include #include -#include