/////////////////////////////////////////////////////////////////////////////
-// 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
if ( hWnd )
{
::ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE);
-
- if ( show && IsTopLevel() )
- {
- wxBringWindowToTop(hWnd);
- }
}
return true;
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();
}
}
-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 )
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);
}
}
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) )
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) )
{
// 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;
}
return GetEventHandler()->ProcessEvent(event);
}
+// ---------------------------------------------------------------------------
+// labels
+// ---------------------------------------------------------------------------
+
+void wxWindowMSW::SetLabel( const wxString& label)
+{
+ SetWindowText(GetHwnd(), label.c_str());
+}
+
+wxString wxWindowMSW::GetLabel() const
+{
+ return wxGetWindowText(GetHWND());
+}
+
// ---------------------------------------------------------------------------
// miscellaneous
// ---------------------------------------------------------------------------
GenerateMouseLeave();
}
}
-#endif // HAVE_TRACKMOUSEEVENT
+#endif // HAVE_TRACKMOUSEEVENT
#if wxUSE_MOUSEEVENT_HACK
// Windows often generates mouse events even if mouse position hasn't
event.Skip();
}
#endif
-