merged 2.2 branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -122,7 +122,6 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
extern wxChar *wxBuffer;
|
||||
extern wxChar *wxOsVersion;
|
||||
extern wxList *wxWinHandleList;
|
||||
extern wxList WXDLLEXPORT wxPendingDelete;
|
||||
extern void wxSetKeyboardHook(bool doIt);
|
||||
@@ -158,7 +157,9 @@ LRESULT WXDLLEXPORT APIENTRY wxWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
// FIXME wxUSE_ON_FATAL_EXCEPTION is only supported for VC++ now because it
|
||||
// needs compiler support for Win32 SEH. Others (especially Borland)
|
||||
// probably have it too, but I'm not sure about how it works
|
||||
#ifndef __VISUALC__
|
||||
// JACS: get 'Cannot use __try in functions that require unwinding
|
||||
// in Unicode mode, so disabling.
|
||||
#if !defined(__VISUALC__) || defined(__WIN16__) || defined(UNICODE)
|
||||
#undef wxUSE_ON_FATAL_EXCEPTION
|
||||
#define wxUSE_ON_FATAL_EXCEPTION 0
|
||||
#endif // VC++
|
||||
@@ -175,17 +176,38 @@ LRESULT WXDLLEXPORT APIENTRY wxWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
// wxApp
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
|
||||
|
||||
BEGIN_EVENT_TABLE(wxApp, wxEvtHandler)
|
||||
EVT_IDLE(wxApp::OnIdle)
|
||||
EVT_END_SESSION(wxApp::OnEndSession)
|
||||
EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession)
|
||||
END_EVENT_TABLE()
|
||||
BEGIN_EVENT_TABLE(wxApp, wxEvtHandler)
|
||||
EVT_IDLE(wxApp::OnIdle)
|
||||
EVT_END_SESSION(wxApp::OnEndSession)
|
||||
EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
//// Initialize
|
||||
bool wxApp::Initialize()
|
||||
{
|
||||
// the first thing to do is to check if we're trying to run an Unicode
|
||||
// program under Win9x - if so, abort right now as it has no chance to
|
||||
// work
|
||||
#if wxUSE_UNICODE
|
||||
if ( wxGetOsVersion() != wxWINDOWS_NT )
|
||||
{
|
||||
// note that we can use MessageBoxW() as it's implemented even under
|
||||
// Win9x - OTOH, we can't use wxGetTranslation() because the file APIs
|
||||
// used by wxLocale are not
|
||||
::MessageBox
|
||||
(
|
||||
NULL,
|
||||
_T("This program uses Unicode and requires Windows NT/2000.\nProgram aborted."),
|
||||
_T("wxWindows Fatal Error"),
|
||||
MB_ICONERROR | MB_OK
|
||||
);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
#endif // wxUSE_UNICODE
|
||||
|
||||
// Some people may wish to use this, but
|
||||
// probably it shouldn't be here by default.
|
||||
#ifdef __WXDEBUG__
|
||||
@@ -196,10 +218,6 @@ bool wxApp::Initialize()
|
||||
|
||||
wxClassInfo::InitializeClasses();
|
||||
|
||||
#if wxUSE_RESOURCES
|
||||
wxGetResource(wxT("wxWindows"), wxT("OsVersion"), &wxOsVersion);
|
||||
#endif
|
||||
|
||||
#if wxUSE_THREADS
|
||||
wxPendingEventsLocker = new wxCriticalSection;
|
||||
#endif
|
||||
@@ -319,7 +337,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(frame)");
|
||||
wxLogLastError(wxT("RegisterClass(frame)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -330,7 +348,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(no redraw frame)");
|
||||
wxLogLastError(wxT("RegisterClass(no redraw frame)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -342,7 +360,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(MDI parent)");
|
||||
wxLogLastError(wxT("RegisterClass(MDI parent)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -353,7 +371,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(no redraw MDI parent frame)");
|
||||
wxLogLastError(wxT("RegisterClass(no redraw MDI parent frame)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -365,7 +383,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(MDI child)");
|
||||
wxLogLastError(wxT("RegisterClass(MDI child)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -376,7 +394,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(no redraw MDI child)");
|
||||
wxLogLastError(wxT("RegisterClass(no redraw MDI child)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -388,7 +406,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(panel)");
|
||||
wxLogLastError(wxT("RegisterClass(panel)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -399,7 +417,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(no redraw panel)");
|
||||
wxLogLastError(wxT("RegisterClass(no redraw panel)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -410,7 +428,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(canvas)");
|
||||
wxLogLastError(wxT("RegisterClass(canvas)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -419,7 +437,7 @@ bool wxApp::RegisterWindowClasses()
|
||||
wndclass.style = styleNoRedraw;
|
||||
if ( !RegisterClass(&wndclass) )
|
||||
{
|
||||
wxLogLastError("RegisterClass(no redraw canvas)");
|
||||
wxLogLastError(wxT("RegisterClass(no redraw canvas)"));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -615,12 +633,12 @@ void wxApp::CleanUp()
|
||||
// Entry point helpers, used by wxPython
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
int WXDLLEXPORT wxEntryStart( int WXUNUSED(argc), char** WXUNUSED(argv) )
|
||||
int WXDLLEXPORT wxEntryStart( int WXUNUSED(argc), char** WXUNUSED(argv) )
|
||||
{
|
||||
return wxApp::Initialize();
|
||||
}
|
||||
|
||||
int WXDLLEXPORT wxEntryInitGui()
|
||||
int WXDLLEXPORT wxEntryInitGui()
|
||||
{
|
||||
wxTheApp->OnInitGui();
|
||||
return 0;
|
||||
@@ -746,14 +764,10 @@ int wxEntry(WXHINSTANCE hInstance,
|
||||
__except ( gs_handleExceptions ? EXCEPTION_EXECUTE_HANDLER
|
||||
: EXCEPTION_CONTINUE_SEARCH ) {
|
||||
if ( wxTheApp )
|
||||
{
|
||||
// give the user a chance to do something special about this
|
||||
wxTheApp->OnFatalException();
|
||||
|
||||
// using wxLog would be unsafe here
|
||||
::MessageBox(NULL,
|
||||
_("Unrecoverable program error detected: "
|
||||
" the application will terminate."),
|
||||
_("Fatal Error"),
|
||||
MB_APPLMODAL | MB_ICONSTOP | MB_OK);
|
||||
}
|
||||
|
||||
::ExitProcess(3); // the same exit code as abort()
|
||||
|
||||
@@ -866,7 +880,7 @@ bool wxApp::DoMessage()
|
||||
else if ( rc == -1 )
|
||||
{
|
||||
// should never happen, but let's test for it nevertheless
|
||||
wxLogLastError("GetMessage");
|
||||
wxLogLastError(wxT("GetMessage"));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1174,7 +1188,7 @@ int wxApp::GetComCtl32Version()
|
||||
// try to use DllGetVersion() if available in _headers_
|
||||
#ifdef DLLVER_PLATFORM_WINDOWS // defined in shlwapi.h
|
||||
DLLGETVERSIONPROC pfnDllGetVersion = (DLLGETVERSIONPROC)
|
||||
::GetProcAddress(hModuleComCtl32, _T("DllGetVersion"));
|
||||
::GetProcAddress(hModuleComCtl32, "DllGetVersion");
|
||||
if ( pfnDllGetVersion )
|
||||
{
|
||||
DLLVERSIONINFO dvi;
|
||||
@@ -1203,11 +1217,7 @@ int wxApp::GetComCtl32Version()
|
||||
FARPROC theProc = ::GetProcAddress
|
||||
(
|
||||
hModuleComCtl32,
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x520)
|
||||
"InitCommonControlsEx"
|
||||
#else
|
||||
_T("InitCommonControlsEx")
|
||||
#endif
|
||||
);
|
||||
|
||||
if ( !theProc )
|
||||
@@ -1222,11 +1232,7 @@ int wxApp::GetComCtl32Version()
|
||||
theProc = ::GetProcAddress
|
||||
(
|
||||
hModuleComCtl32,
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x520)
|
||||
"InitializeFlatSB"
|
||||
#else
|
||||
_T("InitializeFlatSB")
|
||||
#endif
|
||||
);
|
||||
if ( !theProc )
|
||||
{
|
||||
@@ -1315,7 +1321,7 @@ void wxWakeUpIdle()
|
||||
if ( !::PostMessage(GetHwndOf(topWindow), WM_NULL, 0, 0) )
|
||||
{
|
||||
// should never happen
|
||||
wxLogLastError("PostMessage(WM_NULL)");
|
||||
wxLogLastError(wxT("PostMessage(WM_NULL)"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user