X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/555d502fafd60eb3d448dfa6a5a6263d28119f31..885d4bf54e542698e6d23096b2a6393c6741b327:/samples/dialogs/dialogs.cpp diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp index c27afabc23..023abe5e4d 100644 --- a/samples/dialogs/dialogs.cpp +++ b/samples/dialogs/dialogs.cpp @@ -33,6 +33,7 @@ #include "wx/tipdlg.h" #include "wx/progdlg.h" #include "wx/fdrepdlg.h" +#include "wx/busyinfo.h" #define wxTEST_GENERIC_DIALOGS_IN_MSW 0 @@ -77,9 +78,15 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC, MyFrame::ChooseColourGeneric) EVT_MENU(DIALOGS_CHOOSE_FONT_GENERIC, MyFrame::ChooseFontGeneric) #endif + #if wxUSE_PROGRESSDLG EVT_MENU(DIALOGS_PROGRESS, MyFrame::ShowProgress) #endif // wxUSE_PROGRESSDLG + +#if wxUSE_BUSYINFO + EVT_MENU(DIALOGS_BUSYINFO, MyFrame::ShowBusyInfo) +#endif // wxUSE_BUSYINFO + #if wxUSE_FINDREPLDLG EVT_MENU(DIALOGS_FIND, MyFrame::ShowFindDialog) EVT_MENU(DIALOGS_REPLACE, MyFrame::ShowReplaceDialog) @@ -154,9 +161,12 @@ bool MyApp::OnInit() #if wxUSE_PROGRESSDLG file_menu->Append(DIALOGS_PROGRESS, "Pro&gress dialog\tCtrl-G"); #endif // wxUSE_PROGRESSDLG +#if wxUSE_BUSYINFO + file_menu->Append(DIALOGS_BUSYINFO, "&Busy info dialog\tCtrl-B"); +#endif // wxUSE_BUSYINFO #if wxUSE_FINDREPLDLG - file_menu->Append(DIALOGS_FIND, "&Find dialog\tCtrl-F"); - file_menu->Append(DIALOGS_REPLACE, "Find and &replace dialog\tShift-Ctrl-F"); + file_menu->Append(DIALOGS_FIND, "&Find dialog\tCtrl-F", "", TRUE); + file_menu->Append(DIALOGS_REPLACE, "Find and &replace dialog\tShift-Ctrl-F", "", TRUE); #endif // wxUSE_FINDREPLDLG file_menu->AppendSeparator(); file_menu->Append(DIALOGS_MODAL, "Mo&dal dialog\tCtrl-D"); @@ -188,6 +198,11 @@ MyFrame::MyFrame(wxWindow *parent, : wxFrame(parent, -1, title, pos, size) { m_dialog = (MyModelessDialog *)NULL; + + m_dlgFind = + m_dlgReplace = NULL; + + CreateStatusBar(); } void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event) ) @@ -278,20 +293,20 @@ void MyFrame::LogDialog(wxCommandEvent& event) // being flushed -- test it { wxBusyCursor bc; - wxLogMessage("This is some message - everything is ok so far."); - wxLogMessage("Another message...\n... this one is on multiple lines"); - wxLogWarning("And then something went wrong!"); + wxLogMessage(wxT("This is some message - everything is ok so far.")); + wxLogMessage(wxT("Another message...\n... this one is on multiple lines")); + wxLogWarning(wxT("And then something went wrong!")); // and if ~wxBusyCursor doesn't do it, then call it manually wxYield(); } - wxLogError("Intermediary error handler decided to abort."); - wxLogError("The top level caller detected an unrecoverable error."); + wxLogError(wxT("Intermediary error handler decided to abort.")); + wxLogError(wxT("The top level caller detected an unrecoverable error.")); wxLog::FlushActive(); - wxLogMessage("And this is the same dialog but with only one message."); + wxLogMessage(wxT("And this is the same dialog but with only one message.")); } void MyFrame::MessageBox(wxCommandEvent& WXUNUSED(event) ) @@ -333,7 +348,7 @@ void MyFrame::PasswordEntry(wxCommandEvent& WXUNUSED(event)) this); if ( !!pwd ) { - wxMessageBox(wxString::Format("Your password is '%s'", pwd.c_str()), + wxMessageBox(wxString::Format(wxT("Your password is '%s'"), pwd.c_str()), "Got password", wxOK | wxICON_INFORMATION, this); } } @@ -386,10 +401,10 @@ void MyFrame::MultiChoice(wxCommandEvent& WXUNUSED(event) ) if ( count ) { wxString msg; - msg.Printf("You selected %u items:\n", count); + msg.Printf(wxT("You selected %u items:\n"), count); for ( size_t n = 0; n < count; n++ ) { - msg += wxString::Format("\t%u: %u (%s)\n", n, selections[n], + msg += wxString::Format(wxT("\t%u: %u (%s)\n"), n, selections[n], choices[selections[n]].c_str()); } wxLogMessage(msg); @@ -399,9 +414,9 @@ void MyFrame::MultiChoice(wxCommandEvent& WXUNUSED(event) ) void MyFrame::FileOpen(wxCommandEvent& WXUNUSED(event) ) { -// wxFAIL_MSG( "Test assert" ); - - wxFileDialog dialog(this, "Testing open file dialog", "", "", "*.txt", 0); + wxFileDialog dialog(this, "Testing open file dialog", + "", "", + "C++ files (*.h;*.cpp)|*.h;*.cpp"); if (dialog.ShowModal() == wxID_OK) { @@ -515,8 +530,8 @@ void MyFrame::GenericDirChoose(wxCommandEvent& WXUNUSED(event) ) dialog2.ShowModal(); } #else - wxLogError("Sorry, generic dir dialog not available:\n" - "set wxUSE_DIRDLGG to 1 and recompile"); + wxLogError(wxT("Sorry, generic dir dialog not available:\n") + wxT("set wxUSE_DIRDLGG to 1 and recompile")); #endif } @@ -615,41 +630,76 @@ void MyFrame::ShowProgress( wxCommandEvent& WXUNUSED(event) ) if ( !cont ) { - wxLogStatus("Progress dialog aborted!"); + wxLogStatus(wxT("Progress dialog aborted!")); } else { - wxLogStatus("Countdown from %d finished", max); + wxLogStatus(wxT("Countdown from %d finished"), max); } } #endif // wxUSE_PROGRESSDLG +#if wxUSE_BUSYINFO + +void MyFrame::ShowBusyInfo(wxCommandEvent& WXUNUSED(event)) +{ + wxWindowDisabler disableAll; + + wxBusyInfo info("Sleep^H^H^H^H^HWorkiing, please wait...", this); + + for ( int i = 0; i < 30; i++ ) + { + wxUsleep(100); + wxTheApp->Yield(); + } +} + +#endif // wxUSE_BUSYINFO + #if wxUSE_FINDREPLDLG void MyFrame::ShowReplaceDialog( wxCommandEvent& WXUNUSED(event) ) { - wxFindReplaceDialog *dialog = new wxFindReplaceDialog - ( - this, - &m_findData, - "Find and replace dialog", - wxFR_REPLACEDIALOG - ); - dialog->Show(TRUE); + if ( m_dlgReplace ) + { + delete m_dlgReplace; + m_dlgReplace = NULL; + } + else + { + m_dlgReplace = new wxFindReplaceDialog + ( + this, + &m_findData, + "Find and replace dialog", + wxFR_REPLACEDIALOG + ); + + m_dlgReplace->Show(TRUE); + } } void MyFrame::ShowFindDialog( wxCommandEvent& WXUNUSED(event) ) { - wxFindReplaceDialog *dialog = new wxFindReplaceDialog - ( - this, - &m_findData, - "Find dialog", - // just for testing - wxFR_NOWHOLEWORD - ); - dialog->Show(TRUE); + if ( m_dlgFind ) + { + delete m_dlgFind; + m_dlgFind = NULL; + } + else + { + m_dlgFind = new wxFindReplaceDialog + ( + this, + &m_findData, + "Find dialog", + // just for testing + wxFR_NOWHOLEWORD + ); + + m_dlgFind->Show(TRUE); + } } static wxString DecodeFindDialogEventFlags(int flags) @@ -669,7 +719,7 @@ void MyFrame::OnFindDialog(wxFindDialogEvent& event) if ( type == wxEVT_COMMAND_FIND || type == wxEVT_COMMAND_FIND_NEXT ) { - wxLogMessage("Find %s'%s' (flags: %s)", + wxLogMessage(wxT("Find %s'%s' (flags: %s)"), type == wxEVT_COMMAND_FIND_NEXT ? "next " : "", event.GetFindString().c_str(), DecodeFindDialogEventFlags(event.GetFlags()).c_str()); @@ -677,7 +727,7 @@ void MyFrame::OnFindDialog(wxFindDialogEvent& event) else if ( type == wxEVT_COMMAND_FIND_REPLACE || type == wxEVT_COMMAND_FIND_REPLACE_ALL ) { - wxLogMessage("Replace %s'%s' with '%s' (flags: %s)", + wxLogMessage(wxT("Replace %s'%s' with '%s' (flags: %s)"), type == wxEVT_COMMAND_FIND_REPLACE_ALL ? "all " : "", event.GetFindString().c_str(), event.GetReplaceString().c_str(), @@ -685,13 +735,33 @@ void MyFrame::OnFindDialog(wxFindDialogEvent& event) } else if ( type == wxEVT_COMMAND_FIND_CLOSE ) { - wxLogMessage("Find dialog is being closed."); + wxFindReplaceDialog *dlg = event.GetDialog(); + + const wxChar *txt; + if ( dlg == m_dlgFind ) + { + txt = _T("Find"); + m_dlgFind = NULL; + } + else if ( dlg == m_dlgReplace ) + { + txt = _T("Replace"); + m_dlgReplace = NULL; + } + else + { + txt = _T("Unknown"); + + wxFAIL_MSG( _T("unexecpted event") ); + } + + wxLogMessage(wxT("%s dialog is being closed."), txt), - event.GetDialog()->Destroy(); + dlg->Destroy(); } else { - wxLogError("Unknown find dialog event!"); + wxLogError(wxT("Unknown find dialog event!")); } }