X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dbda9e86f0e5ec1184bc16d135bb7205bc99236e..90e586840b79c936751bf8305ea4f51c6c283791:/src/msw/dialog.cpp diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp index d5f4085fa6..199442210d 100644 --- a/src/msw/dialog.cpp +++ b/src/msw/dialog.cpp @@ -58,11 +58,6 @@ extern wxList WXDLLEXPORT wxPendingDelete; END_EVENT_TABLE() #endif -bool wxDialog::MSWProcessMessage(WXMSG* pMsg) -{ - return (::IsDialogMessage((HWND) GetHWND(), (MSG*)pMsg) != 0); -} - bool wxDialog::MSWOnClose(void) { return Close(); @@ -83,9 +78,13 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id, long style, const wxString& name) { +#if wxUSE_TOOLTIPS + m_hwndToolTip = 0; +#endif + SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); SetName(name); - + if (!parent) wxTopLevelWindows.Append(this); @@ -116,6 +115,9 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id, if (height < 0) height = 500; + // All dialogs should really have this style + m_windowStyle |= wxTAB_TRAVERSAL; + WXDWORD extendedStyle = MakeExtendedStyle(m_windowStyle); if (m_windowStyle & wxSTAY_ON_TOP) extendedStyle |= WS_EX_TOPMOST; @@ -140,13 +142,13 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id, if ( !hwnd ) { - wxLogError(_("Failed to created dialog.")); + wxLogError(_("Failed to create dialog.")); return FALSE; } SubclassWin(GetHWND()); - + SetWindowText(hwnd, title); SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); @@ -160,7 +162,7 @@ void wxDialog::SetModal(bool flag) else if ( m_windowStyle & wxDIALOG_MODAL ) m_windowStyle -= wxDIALOG_MODAL ; - + wxModelessWindows.DeleteObject(this); if (!flag) wxModelessWindows.Append(this); @@ -213,13 +215,13 @@ void wxDialog::OnCharHook(wxKeyEvent& event) { if (event.m_keyCode == WXK_ESCAPE) { - // Behaviour changed in 2.0: we'll send a Cancel message - // to the dialog instead of Close. - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); + // Behaviour changed in 2.0: we'll send a Cancel message + // to the dialog instead of Close. + wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); + cancelEvent.SetEventObject( this ); + GetEventHandler()->ProcessEvent(cancelEvent); - return; + return; } } // We didn't process this event. @@ -248,11 +250,11 @@ bool wxDialog::IsIconized(void) const return FALSE; } -void wxDialog::SetClientSize(int width, int height) +void wxDialog::DoSetClientSize(int width, int height) { HWND hWnd = (HWND) GetHWND(); RECT rect; - GetClientRect(hWnd, &rect); + ::GetClientRect(hWnd, &rect); RECT rect2; GetWindowRect(hWnd, &rect2); @@ -320,7 +322,7 @@ bool wxDialog::Show(bool show) BringWindowToTop((HWND) GetHWND()); return TRUE; } - + m_modalShowing = TRUE; wxNode *node = wxModalDialogs.First(); while (node) @@ -361,12 +363,14 @@ bool wxDialog::Show(bool show) // a message before the deletion. while (wxModalDialogs.Member(this) && m_modalShowing && GetMessage(&msg, NULL, 0, 0)) { - if (m_acceleratorTable.Ok() && - ::TranslateAccelerator((HWND) GetHWND(), (HACCEL) m_acceleratorTable.GetHACCEL(), &msg)) + if ( m_acceleratorTable.Ok() && + ::TranslateAccelerator((HWND)GetHWND(), + (HACCEL)m_acceleratorTable.GetHACCEL(), + &msg) ) { // Have processed the message } - else if (!IsDialogMessage((HWND) GetHWND(), &msg)) + else if ( !wxTheApp->ProcessMessage((WXMSG *)&msg) ) { TranslateMessage(&msg); DispatchMessage(&msg); @@ -560,7 +564,7 @@ void wxDialog::OnCancel(wxCommandEvent& event) else { SetReturnCode(wxID_CANCEL); - this->Show(FALSE); + this->Show(FALSE); } } @@ -581,12 +585,12 @@ void wxDialog::OnCloseWindow(wxCloseEvent& event) // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. static wxList closing; - + if ( closing.Member(this) ) return; - + closing.Append(this); - + wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); cancelEvent.SetEventObject( this ); GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog @@ -620,4 +624,4 @@ void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event) SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); Refresh(); #endif -} \ No newline at end of file +}