X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a068160f9f732794d7d373d3adb4979c97c2d663..46cbb21ecbe0b016592a2166e4c9e3cec8f49d88:/src/msw/window.cpp diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 04f6f307a4..5785d69d6e 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/msw/windows.cpp -// Purpose: wxWindow +// Name: src/msw/window.cpp +// Purpose: wxWindowMSW // Author: Julian Smart // Modified by: VZ on 13.05.99: no more Default(), MSWOnXXX() reorganisation // Created: 04/01/98 @@ -151,7 +151,7 @@ static bool gs_hasStdCmap = false; // last mouse event information we need to filter out the duplicates #if wxUSE_MOUSEEVENT_HACK -static struct +static struct MouseEventInfoDummy { // mouse position (in screen coordinates) wxPoint pos; @@ -716,11 +716,6 @@ bool wxWindowMSW::Show(bool show) if ( hWnd ) { ::ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE); - - if ( show && IsTopLevel() ) - { - wxBringWindowToTop(hWnd); - } } return true; @@ -739,16 +734,6 @@ void wxWindowMSW::Lower() SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); } -void wxWindowMSW::SetTitle( const wxString& title) -{ - SetWindowText(GetHwnd(), title.c_str()); -} - -wxString wxWindowMSW::GetTitle() const -{ - return wxGetWindowText(GetHWND()); -} - void wxWindowMSW::DoCaptureMouse() { HWND hWnd = GetHwnd(); @@ -831,9 +816,9 @@ void wxWindowMSW::WarpPointer(int x, int y) } } -void wxWindowMSW::MSWUpdateUIState(int action) +void wxWindowMSW::MSWUpdateUIState(int action, int state) { - // WM_UPDATEUISTATE only appeared in Windows 2000 so it can do us no good + // WM_CHANGEUISTATE only appeared in Windows 2000 so it can do us no good // to use it on older systems -- and could possibly do some harm static int s_needToUpdate = -1; if ( s_needToUpdate == -1 ) @@ -845,11 +830,9 @@ void wxWindowMSW::MSWUpdateUIState(int action) if ( s_needToUpdate ) { - // NB: it doesn't seem to matter what we put in wParam, whether we - // include just one UISF_XXX or both, both are affected, no idea - // why - ::SendMessage(GetHwnd(), WM_UPDATEUISTATE, - MAKEWPARAM(action, UISF_HIDEFOCUS | UISF_HIDEACCEL), 0); + // we send WM_CHANGEUISTATE so if nothing needs changing then the system + // won't send WM_UPDATEUISTATE + ::SendMessage(GetHwnd(), WM_CHANGEUISTATE, MAKEWPARAM(action, state), 0); } } @@ -1137,8 +1120,8 @@ bool wxCheckWindowWndProc(WXHWND hWnd, str == wxMDIChildFrameClassNameNoRedraw || str == _T("wxTLWHiddenParent")) return true; // Effectively means don't subclass - else - return false; + + return false; #else WNDCLASS cls; if ( !::GetClassInfo(wxGetInstance(), wxGetWindowClass(hWnd), &cls) ) @@ -2066,6 +2049,12 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg) else // no default button #endif // wxUSE_BUTTON { +#ifdef __WXWINCE__ + wxJoystickEvent event(wxEVT_JOY_BUTTON_DOWN); + event.SetEventObject(this); + if(GetEventHandler()->ProcessEvent(event)) + return true; +#endif // this is a quick and dirty test for a text // control if ( !(lDlgCode & DLGC_HASSETSEL) ) @@ -2106,9 +2095,8 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg) { // as we don't call IsDialogMessage(), which would take of // this by default, we need to manually send this message - // so that controls could change their appearance - // appropriately - MSWUpdateUIState(UIS_CLEAR); + // so that controls can change their UI state if needed + MSWUpdateUIState(UIS_CLEAR, UISF_HIDEFOCUS); return true; } @@ -3549,6 +3537,20 @@ bool wxWindowMSW::HandleKillFocus(WXHWND hwnd) return GetEventHandler()->ProcessEvent(event); } +// --------------------------------------------------------------------------- +// labels +// --------------------------------------------------------------------------- + +void wxWindowMSW::SetLabel( const wxString& label) +{ + SetWindowText(GetHwnd(), label.c_str()); +} + +wxString wxWindowMSW::GetLabel() const +{ + return wxGetWindowText(GetHWND()); +} + // --------------------------------------------------------------------------- // miscellaneous // --------------------------------------------------------------------------- @@ -4656,7 +4658,7 @@ bool wxWindowMSW::HandleMouseMove(int x, int y, WXUINT flags) GenerateMouseLeave(); } } -#endif // HAVE_TRACKMOUSEEVENT +#endif // HAVE_TRACKMOUSEEVENT #if wxUSE_MOUSEEVENT_HACK // Windows often generates mouse events even if mouse position hasn't @@ -6205,4 +6207,3 @@ void wxWindowMSW::OnInitDialog( wxInitDialogEvent& event ) event.Skip(); } #endif -