X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a756f210019dd5b51331b7181c816d3882146a30..205b0c9c6aa69c02a7774846e677910bf1609a53:/src/mac/dialog.cpp diff --git a/src/mac/dialog.cpp b/src/mac/dialog.cpp index eed25f3fb7..1ef72057f8 100644 --- a/src/mac/dialog.cpp +++ b/src/mac/dialog.cpp @@ -30,7 +30,7 @@ extern wxList wxPendingDelete; #if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxTopLevelWindow) -BEGIN_EVENT_TABLE(wxDialog, wxTopLevelWindow) +BEGIN_EVENT_TABLE(wxDialog, wxDialogBase) EVT_BUTTON(wxID_OK, wxDialog::OnOK) EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) @@ -67,6 +67,7 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id, MacCreateRealWindow( title , pos , size , MacRemoveBordersFromStyle(style) , name ) ; m_macWindowBackgroundTheme = kThemeBrushDialogBackgroundActive ; + SetThemeWindowBackground( (WindowRef) m_macWindow , m_macWindowBackgroundTheme , false ) ; return TRUE; } @@ -123,8 +124,6 @@ bool wxDialog::IsModalShowing() const return wxModalDialogs.Find((wxDialog *)this) != NULL; // const_cast } -extern bool s_macIsInModalLoop ; - bool wxDialog::Show(bool show) { if ( !wxDialogBase::Show(show) ) @@ -156,6 +155,10 @@ bool wxDialog::Show(bool show) return TRUE; } +#if !TARGET_CARBON +extern bool s_macIsInModalLoop ; +#endif + void wxDialog::DoShowModal() { wxCHECK_RET( !IsModalShowing(), _T("DoShowModal() called twice") ); @@ -174,22 +177,26 @@ void wxDialog::DoShowModal() { winFocus = wxTheApp->GetTopWindow(); } +#if TARGET_CARBON + BeginAppModalStateForWindow( (WindowRef) MacGetWindowRef()) ; +#else // TODO : test whether parent gets disabled - bool formerModal = s_macIsInModalLoop ; s_macIsInModalLoop = true ; - +#endif while ( IsModalShowing() ) { - while ( !wxTheApp->Pending() && wxTheApp->ProcessIdle() ) - { - } wxTheApp->MacDoOneEvent() ; + // calls process idle itself } +#if TARGET_CARBON + EndAppModalStateForWindow( (WindowRef) MacGetWindowRef() ) ; +#else + // TODO probably reenable the parent window if any s_macIsInModalLoop = formerModal ; +#endif - // TODO probably reenable the parent window if any // and restore focus if ( winFocus ) @@ -216,7 +223,7 @@ void wxDialog::EndModal(int retCode) } // Standard buttons -void wxDialog::OnOK(wxCommandEvent& event) +void wxDialog::OnOK(wxCommandEvent& WXUNUSED(event)) { if ( Validate() && TransferDataFromWindow() ) { @@ -224,19 +231,19 @@ void wxDialog::OnOK(wxCommandEvent& event) } } -void wxDialog::OnApply(wxCommandEvent& event) +void wxDialog::OnApply(wxCommandEvent& WXUNUSED(event)) { if (Validate()) TransferDataFromWindow(); // TODO probably need to disable the Apply button until things change again } -void wxDialog::OnCancel(wxCommandEvent& event) +void wxDialog::OnCancel(wxCommandEvent& WXUNUSED(event)) { - EndModal(wxID_CANCEL); + EndModal(wxID_CANCEL); } -void wxDialog::OnCloseWindow(wxCloseEvent& event) +void wxDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) { // We'll send a Cancel message by default, // which may close the dialog. @@ -266,7 +273,7 @@ void wxDialog::OnCloseWindow(wxCloseEvent& event) closing.DeleteObject(this); } -void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event) +void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event)) { SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); Refresh();