]> git.saurik.com Git - wxWidgets.git/commitdiff
Code for single instance and bring-to-top under CE.
authorRobert Roebling <robert@roebling.de>
Mon, 19 Apr 2004 21:47:12 +0000 (21:47 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 19 Apr 2004 21:47:12 +0000 (21:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/app.cpp
src/msw/toplevel.cpp
src/msw/window.cpp

index 7d430057a94f7e5c2384d95b4f3b50a454bd5e89..6c4e94bacde93a0276d4fbebbc085c34b4e91044 100644 (file)
@@ -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
 }
 
 // ----------------------------------------------------------------------------
index eccae97c29db29351e40316a83490c1ed33fe930..2477c11582ca13d16df1397e6537b6cc036e5782 100644 (file)
@@ -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
index 3c76c6b55115ba97cc74c4d707a3cf72d081f0e4..b7c5b66709171c9a6129c1a4c45fd136c29791c1 100644 (file)
 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;