mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-01 15:25:33 +01:00
92 lines
3.1 KiB
C++
92 lines
3.1 KiB
C++
![]() |
///////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: src/msw/datecontrols.cpp
|
||
|
// Purpose: implementation of date controls helper functions
|
||
|
// Author: Vadim Zeitlin
|
||
|
// Created: 2008-04-04
|
||
|
// RCS-ID: $Id: datecontrols.cpp 61508 2009-07-23 20:30:22Z VZ $
|
||
|
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
|
||
|
// Licence: wxWindows licence
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// ============================================================================
|
||
|
// declarations
|
||
|
// ============================================================================
|
||
|
|
||
|
// ----------------------------------------------------------------------------
|
||
|
// headers
|
||
|
// ----------------------------------------------------------------------------
|
||
|
|
||
|
// for compilers that support precompilation, includes "wx.h".
|
||
|
#include "wx/wxprec.h"
|
||
|
|
||
|
#ifdef __BORLANDC__
|
||
|
#pragma hdrstop
|
||
|
#endif
|
||
|
|
||
|
#ifndef WX_PRECOMP
|
||
|
#include "wx/app.h"
|
||
|
#include "wx/msw/wrapcctl.h"
|
||
|
#endif // WX_PRECOMP
|
||
|
|
||
|
#if wxUSE_DATEPICKCTRL || wxUSE_CALENDARCTRL
|
||
|
|
||
|
#include "wx/msw/private/datecontrols.h"
|
||
|
|
||
|
#include "wx/dynlib.h"
|
||
|
|
||
|
// ============================================================================
|
||
|
// implementation
|
||
|
// ============================================================================
|
||
|
|
||
|
bool wxMSWDateControls::CheckInitialization()
|
||
|
{
|
||
|
// although we already call InitCommonControls() in app.cpp which is
|
||
|
// supposed to initialize all common controls, in comctl32.dll 4.72 (and
|
||
|
// presumably earlier versions 4.70 and 4.71, date time picker not being
|
||
|
// supported in < 4.70 anyhow) it does not do it and we have to initialize
|
||
|
// it explicitly
|
||
|
|
||
|
// this is initially set to -1 to indicate that we need to perform the
|
||
|
// initialization and gets set to false or true depending on its result
|
||
|
static int s_initResult = -1; // MT-ok: used from GUI thread only
|
||
|
if ( s_initResult == -1 )
|
||
|
{
|
||
|
// in any case do nothing the next time, the result won't change and
|
||
|
// it's enough to give the error only once
|
||
|
s_initResult = false;
|
||
|
|
||
|
if ( wxApp::GetComCtl32Version() < 470 )
|
||
|
{
|
||
|
wxLogError(_("This system doesn't support date controls, please upgrade your version of comctl32.dll"));
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
#if wxUSE_DYNLIB_CLASS
|
||
|
INITCOMMONCONTROLSEX icex;
|
||
|
icex.dwSize = sizeof(icex);
|
||
|
icex.dwICC = ICC_DATE_CLASSES;
|
||
|
|
||
|
// see comment in wxApp::GetComCtl32Version() explaining the
|
||
|
// use of wxLoadedDLL
|
||
|
wxLoadedDLL dllComCtl32(wxT("comctl32.dll"));
|
||
|
if ( dllComCtl32.IsLoaded() )
|
||
|
{
|
||
|
wxLogNull noLog;
|
||
|
|
||
|
typedef BOOL (WINAPI *ICCEx_t)(INITCOMMONCONTROLSEX *);
|
||
|
wxDYNLIB_FUNCTION( ICCEx_t, InitCommonControlsEx, dllComCtl32 );
|
||
|
|
||
|
if ( pfnInitCommonControlsEx )
|
||
|
{
|
||
|
s_initResult = (*pfnInitCommonControlsEx)(&icex);
|
||
|
}
|
||
|
}
|
||
|
#endif // wxUSE_DYNLIB_CLASS
|
||
|
}
|
||
|
|
||
|
return s_initResult != 0;
|
||
|
}
|
||
|
|
||
|
#endif // wxUSE_DATEPICKCTRL || wxUSE_CALENDARCTRL
|