Code for single instance and bring-to-top under CE.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -99,8 +99,13 @@ extern void wxSetKeyboardHook(bool doIt);
|
||||
|
||||
// NB: all "NoRedraw" classes must have the same names as the "normal" classes
|
||||
// with NR suffix - wxWindow::MSWCreate() supposes this
|
||||
#ifdef __WXWINCE__
|
||||
wxChar *wxCanvasClassName;
|
||||
wxChar *wxCanvasClassNameNR;
|
||||
#else
|
||||
const wxChar *wxCanvasClassName = wxT("wxWindowClass");
|
||||
const wxChar *wxCanvasClassNameNR = wxT("wxWindowClassNR");
|
||||
#endif
|
||||
const wxChar *wxMDIFrameClassName = wxT("wxMDIFrameClass");
|
||||
const wxChar *wxMDIFrameClassNameNoRedraw = wxT("wxMDIFrameClassNR");
|
||||
const wxChar *wxMDIChildFrameClassName = wxT("wxMDIChildFrameClass");
|
||||
@@ -254,6 +259,20 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
|
||||
// ensure that base cleanup is done if we return too early
|
||||
wxCallBaseCleanup callBaseCleanup(this);
|
||||
|
||||
#ifdef __WXWINCE__
|
||||
wxString tmp = GetAppName();
|
||||
tmp += wxT("ClassName");
|
||||
wxCanvasClassName = wxStrdup( tmp.c_str() );
|
||||
tmp += wxT("NR");
|
||||
wxCanvasClassNameNR = wxStrdup( tmp.c_str() );
|
||||
HWND hWnd = FindWindow( wxCanvasClassNameNR, NULL );
|
||||
if (hWnd)
|
||||
{
|
||||
SetForegroundWindow( (HWND)(((DWORD)hWnd)|0x01) );
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
// the first thing to do is to check if we're trying to run an Unicode
|
||||
// program under Win9x w/o MSLU emulation layer - if so, abort right now
|
||||
// as it has no chance to work
|
||||
@@ -514,6 +533,11 @@ void wxApp::CleanUp()
|
||||
|
||||
delete wxWinHandleHash;
|
||||
wxWinHandleHash = NULL;
|
||||
|
||||
#ifdef __WXWINCE__
|
||||
free( wxCanvasClassName );
|
||||
free( wxCanvasClassNameNR );
|
||||
#endif
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -88,7 +88,11 @@ wxDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
wxWindowList wxModelessWindows;
|
||||
|
||||
// the name of the default wxWindows class
|
||||
#ifdef __WXWINCE__
|
||||
extern wxChar *wxCanvasClassName;
|
||||
#else
|
||||
extern const wxChar *wxCanvasClassName;
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxTLWHiddenParentModule: used to manage the hidden parent window (we need a
|
||||
|
@@ -128,7 +128,11 @@
|
||||
wxMenu *wxCurrentPopupMenu = NULL;
|
||||
#endif // wxUSE_MENUS_NATIVE
|
||||
|
||||
#ifdef __WXWINCE__
|
||||
extern wxChar *wxCanvasClassName;
|
||||
#else
|
||||
extern const wxChar *wxCanvasClassName;
|
||||
#endif
|
||||
|
||||
// true if we had already created the std colour map, used by
|
||||
// wxGetStdColourMap() and wxWindow::OnSysColourChanged() (FIXME-MT)
|
||||
@@ -1022,8 +1026,8 @@ bool wxCheckWindowWndProc(WXHWND hWnd, WXFARPROC wndProc)
|
||||
// On WinCE (at least), the wndproc comparison doesn't work,
|
||||
// so have to use something like this.
|
||||
#ifdef __WXWINCE__
|
||||
extern const wxChar *wxCanvasClassName;
|
||||
extern const wxChar *wxCanvasClassNameNR;
|
||||
extern wxChar *wxCanvasClassName;
|
||||
extern wxChar *wxCanvasClassNameNR;
|
||||
extern const wxChar *wxMDIFrameClassName;
|
||||
extern const wxChar *wxMDIFrameClassNameNoRedraw;
|
||||
extern const wxChar *wxMDIChildFrameClassName;
|
||||
|
Reference in New Issue
Block a user