From 13188defe3a42d5ffd3fcdc8255b08ad27556ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?W=C5=82odzimierz=20Skiba?= Date: Fri, 11 Jun 2004 20:43:45 +0000 Subject: [PATCH] Reworked dialogs sample in the direction of fully working in not fully specified setup.h. Dedicated mainly for all those hard working on various port. Be happy with always working dialogs sample. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/dialogs/dialogs.cpp | 520 +++++++++++++++++++++++------------- samples/dialogs/dialogs.h | 82 +++++- 2 files changed, 406 insertions(+), 196 deletions(-) diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp index 7eb014a3a8..c1e008d05c 100644 --- a/samples/dialogs/dialogs.cpp +++ b/samples/dialogs/dialogs.cpp @@ -2,7 +2,7 @@ // Name: dialogs.cpp // Purpose: Common dialogs demo // Author: Julian Smart -// Modified by: +// Modified by: ABX (2004) - adjustementd for conditional building // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart @@ -25,69 +25,131 @@ #include "wx/wx.h" #endif -#ifdef __WXWINCE__ -#include "wx/msw/wince/time.h" -#endif - -#include "wx/numdlg.h" -#include "wx/colordlg.h" -#include "wx/filedlg.h" -#include "wx/dirdlg.h" -#include "wx/fontdlg.h" -#include "wx/choicdlg.h" -#include "wx/tipdlg.h" -#include "wx/progdlg.h" -#include "wx/fdrepdlg.h" -#include "wx/busyinfo.h" #include "wx/image.h" -#define wxTEST_GENERIC_DIALOGS_IN_MSW 0 +#if wxUSE_COLOURDLG + #include "wx/colordlg.h" +#endif // wxUSE_COLOURDLG -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW -#include "wx/generic/colrdlgg.h" -#include "wx/generic/fontdlgg.h" -#endif +#if wxUSE_CHOICEDLG + #include "wx/choicdlg.h" +#endif // wxUSE_CHOICEDLG -#define wxUSE_DIRDLGG 0 +#if wxUSE_STARTUP_TIPS + #include "wx/tipdlg.h" +#endif // wxUSE_STARTUP_TIPS -#if !(defined(__WXMSW__) || defined(__WXMAC__)) || wxUSE_DIRDLGG -#include "wx/generic/dirdlgg.h" -#endif +#if wxUSE_PROGRESSDLG + #include "wx/progdlg.h" +#endif // wxUSE_PROGRESSDLG + +#if wxUSE_BUSYINFO + #include "wx/busyinfo.h" +#endif // wxUSE_BUSYINFO + +#if wxUSE_NUMBERDLG + #include "wx/numdlg.h" +#endif // wxUSE_NUMBERDLG + +#if wxUSE_FILEDLG + #include "wx/filedlg.h" +#endif // wxUSE_FILEDLG + +#if wxUSE_DIRDLG + #include "wx/dirdlg.h" +#endif // wxUSE_DIRDLG + +#if wxUSE_FONTDLG + #include "wx/fontdlg.h" +#endif // wxUSE_FONTDLG + +#if wxUSE_FINDREPLDLG + #include "wx/fdrepdlg.h" +#endif // wxUSE_FINDREPLDLG #include "dialogs.h" +#if USE_COLOURDLG_GENERIC + #include "wx/generic/colrdlgg.h" +#endif // USE_COLOURDLG_GENERIC + +#if USE_FONTDLG_GENERIC + #include "wx/generic/fontdlgg.h" +#endif // USE_FONTDLG_GENERIC + +#if USE_DIRDLG_GENERIC + #include "wx/generic/dirdlgg.h" +#endif // USE_DIRDLG_GENERIC + IMPLEMENT_APP(MyApp) BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) EVT_PAINT(MyCanvas::OnPaint) END_EVENT_TABLE() + + BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(DIALOGS_CHOOSE_COLOUR, MyFrame::ChooseColour) - EVT_MENU(DIALOGS_CHOOSE_FONT, MyFrame::ChooseFont) - EVT_MENU(DIALOGS_LOG_DIALOG, MyFrame::LogDialog) EVT_MENU(DIALOGS_MESSAGE_BOX, MyFrame::MessageBox) + +#if wxUSE_COLOURDLG + EVT_MENU(DIALOGS_CHOOSE_COLOUR, MyFrame::ChooseColour) +#endif // wxUSE_COLOURDLG + +#if wxUSE_FONTDLG + EVT_MENU(DIALOGS_CHOOSE_FONT, MyFrame::ChooseFont) +#endif // wxUSE_FONTDLG + +#if wxUSE_LOG_DIALOG + EVT_MENU(DIALOGS_LOG_DIALOG, MyFrame::LogDialog) +#endif // wxUSE_LOG_DIALOG + +#if wxUSE_TEXTDLG EVT_MENU(DIALOGS_TEXT_ENTRY, MyFrame::TextEntry) EVT_MENU(DIALOGS_PASSWORD_ENTRY, MyFrame::PasswordEntry) +#endif // wxUSE_TEXTDLG + +#if wxUSE_NUMBERDLG EVT_MENU(DIALOGS_NUM_ENTRY, MyFrame::NumericEntry) +#endif // wxUSE_NUMBERDLG + +#if wxUSE_CHOICEDLG EVT_MENU(DIALOGS_SINGLE_CHOICE, MyFrame::SingleChoice) EVT_MENU(DIALOGS_MULTI_CHOICE, MyFrame::MultiChoice) +#endif // wxUSE_CHOICEDLG + +#if wxUSE_FILEDLG EVT_MENU(DIALOGS_FILE_OPEN, MyFrame::FileOpen) EVT_MENU(DIALOGS_FILE_OPEN2, MyFrame::FileOpen2) EVT_MENU(DIALOGS_FILES_OPEN, MyFrame::FilesOpen) EVT_MENU(DIALOGS_FILE_SAVE, MyFrame::FileSave) +#endif // wxUSE_FILEDLG + +#if wxUSE_DIRDLG EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose) EVT_MENU(DIALOGS_DIRNEW_CHOOSE, MyFrame::DirChooseNew) -#if defined(__WXMSW__) || defined(__WXMAC__) - EVT_MENU(DIALOGS_GENERIC_DIR_CHOOSE, MyFrame::GenericDirChoose) -#endif // wxMSW || wxMAC +#endif // wxUSE_DIRDLG + +#if USE_MODAL_PRESENTATION EVT_MENU(DIALOGS_MODAL, MyFrame::ModalDlg) EVT_MENU(DIALOGS_MODELESS, MyFrame::ModelessDlg) +#endif // USE_MODAL + +#if wxUSE_STARTUP_TIPS EVT_MENU(DIALOGS_TIP, MyFrame::ShowTip) -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW - EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC, MyFrame::ChooseColourGeneric) +#endif // wxUSE_STARTUP_TIPS + +#if USE_FONTDLG_GENERIC EVT_MENU(DIALOGS_CHOOSE_FONT_GENERIC, MyFrame::ChooseFontGeneric) -#endif +#endif // USE_FONTDLG_GENERIC + +#if USE_DIRDLG_GENERIC + EVT_MENU(DIALOGS_GENERIC_DIR_CHOOSE, MyFrame::GenericDirChoose) +#endif // wxMSW || wxMAC + +#if USE_COLOURDLG_GENERIC + EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC, MyFrame::ChooseColourGeneric) +#endif // USE_COLOURDLG_GENERIC #if wxUSE_PROGRESSDLG EVT_MENU(DIALOGS_PROGRESS, MyFrame::ShowProgress) @@ -101,24 +163,28 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(DIALOGS_FIND, MyFrame::ShowFindDialog) EVT_MENU(DIALOGS_REPLACE, MyFrame::ShowReplaceDialog) - EVT_FIND(-1, MyFrame::OnFindDialog) - EVT_FIND_NEXT(-1, MyFrame::OnFindDialog) - EVT_FIND_REPLACE(-1, MyFrame::OnFindDialog) - EVT_FIND_REPLACE_ALL(-1, MyFrame::OnFindDialog) - EVT_FIND_CLOSE(-1, MyFrame::OnFindDialog) + EVT_FIND(wxID_ANY, MyFrame::OnFindDialog) + EVT_FIND_NEXT(wxID_ANY, MyFrame::OnFindDialog) + EVT_FIND_REPLACE(wxID_ANY, MyFrame::OnFindDialog) + EVT_FIND_REPLACE_ALL(wxID_ANY, MyFrame::OnFindDialog) + EVT_FIND_CLOSE(wxID_ANY, MyFrame::OnFindDialog) #endif // wxUSE_FINDREPLDLG + EVT_MENU(wxID_EXIT, MyFrame::OnExit) END_EVENT_TABLE() -BEGIN_EVENT_TABLE(MyModalDialog, wxDialog) - EVT_BUTTON(-1, MyModalDialog::OnButton) -END_EVENT_TABLE() +#if USE_MODAL_PRESENTATION -BEGIN_EVENT_TABLE(MyModelessDialog, wxDialog) - EVT_BUTTON(DIALOGS_MODELESS_BTN, MyModelessDialog::OnButton) + BEGIN_EVENT_TABLE(MyModalDialog, wxDialog) + EVT_BUTTON(wxID_ANY, MyModalDialog::OnButton) + END_EVENT_TABLE() - EVT_CLOSE(MyModelessDialog::OnClose) -END_EVENT_TABLE() + BEGIN_EVENT_TABLE(MyModelessDialog, wxDialog) + EVT_BUTTON(DIALOGS_MODELESS_BTN, MyModelessDialog::OnButton) + EVT_CLOSE(MyModelessDialog::OnClose) + END_EVENT_TABLE() + +#endif // USE_MODAL_PRESENTATION MyCanvas *myCanvas = (MyCanvas *) NULL; @@ -130,110 +196,180 @@ bool MyApp::OnInit() #endif #if defined(__WXGTK__) && defined(wxUSE_UNICODE) - wxConvCurrent = &wxConvLibc; + wxConvCurrent = &wxConvLibc; #endif - m_canvasTextColour = wxColour(_T("BLACK")); - m_canvasFont = *wxNORMAL_FONT; + m_canvasTextColour = wxColour(_T("BLACK")); + m_canvasFont = *wxNORMAL_FONT; - // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, _T("wxWidgets dialogs example"), wxPoint(20, 20), wxSize(400, 300)); + // Create the main frame window + MyFrame *frame = new MyFrame((wxFrame *) NULL, _T("wxWidgets dialogs example")); - // Make a menubar - wxMenu *file_menu = new wxMenu; + // Make a menubar + wxMenu *file_menu = new wxMenu; - file_menu->Append(DIALOGS_CHOOSE_COLOUR, _T("&Choose colour")); + file_menu->Append(DIALOGS_MESSAGE_BOX, _T("&Message box\tCtrl-M")); -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW - file_menu->Append(DIALOGS_CHOOSE_COLOUR_GENERIC, _T("Choose colour (&generic)")); -#endif - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_CHOOSE_FONT, _T("Choose &font")); + #if wxUSE_COLOURDLG || wxUSE_FONTDLG || wxUSE_CHOICEDLG -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW - file_menu->Append(DIALOGS_CHOOSE_FONT_GENERIC, _T("Choose f&ont (generic)")); -#endif + wxMenu *choices_menu = new wxMenu; - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_LOG_DIALOG, _T("&Log dialog\tCtrl-L")); - file_menu->Append(DIALOGS_MESSAGE_BOX, _T("&Message box\tCtrl-M")); - file_menu->Append(DIALOGS_TEXT_ENTRY, _T("Text &entry\tCtrl-E")); - file_menu->Append(DIALOGS_PASSWORD_ENTRY, _T("&Password entry\tCtrl-P")); - file_menu->Append(DIALOGS_NUM_ENTRY, _T("&Numeric entry\tCtrl-N")); - file_menu->Append(DIALOGS_SINGLE_CHOICE, _T("&Single choice\tCtrl-C")); - file_menu->Append(DIALOGS_MULTI_CHOICE, _T("M&ultiple choice\tCtrl-U")); - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_TIP, _T("&Tip of the day\tCtrl-T")); - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_FILE_OPEN, _T("&Open file\tCtrl-O")); - file_menu->Append(DIALOGS_FILE_OPEN2, _T("&Second open file\tCtrl-2")); - file_menu->Append(DIALOGS_FILES_OPEN, _T("Open &files\tCtrl-Q")); - file_menu->Append(DIALOGS_FILE_SAVE, _T("Sa&ve file\tCtrl-S")); - file_menu->Append(DIALOGS_DIR_CHOOSE, _T("&Choose a directory\tCtrl-D")); - file_menu->Append(DIALOGS_DIRNEW_CHOOSE, _T("Choose a directory (with \"Ne&w\" button)\tShift-Ctrl-D")); -#if defined(__WXMSW__) || defined(__WXMAC__) - file_menu->Append(DIALOGS_GENERIC_DIR_CHOOSE, _T("&Choose a directory (generic implementation)")); -#endif // wxMSW || wxMAC - file_menu->AppendSeparator(); + #if wxUSE_COLOURDLG + choices_menu->Append(DIALOGS_CHOOSE_COLOUR, _T("&Choose colour")); + #endif // wxUSE_COLOURDLG -#if wxUSE_PROGRESSDLG - file_menu->Append(DIALOGS_PROGRESS, _T("Pro&gress dialog\tCtrl-G")); -#endif // wxUSE_PROGRESSDLG -#if wxUSE_BUSYINFO - file_menu->Append(DIALOGS_BUSYINFO, _T("&Busy info dialog\tCtrl-B")); -#endif // wxUSE_BUSYINFO -#if wxUSE_FINDREPLDLG - file_menu->Append(DIALOGS_FIND, _T("&Find dialog\tCtrl-F"), _T(""), TRUE); - file_menu->Append(DIALOGS_REPLACE, _T("Find and &replace dialog\tShift-Ctrl-F"), _T(""), TRUE); -#endif // wxUSE_FINDREPLDLG - file_menu->AppendSeparator(); + #if USE_COLOURDLG_GENERIC + choices_menu->Append(DIALOGS_CHOOSE_COLOUR_GENERIC, _T("&Choose colour (generic)")); + #endif // USE_COLOURDLG_GENERIC - file_menu->Append(DIALOGS_MODAL, _T("Mo&dal dialog\tCtrl-W")); - file_menu->Append(DIALOGS_MODELESS, _T("Modeless &dialog\tCtrl-Z"), _T(""), TRUE); - file_menu->AppendSeparator(); + #if wxUSE_FONTDLG + choices_menu->Append(DIALOGS_CHOOSE_FONT, _T("Choose &font")); + #endif // wxUSE_FONTDLG - file_menu->Append(wxID_EXIT, _T("E&xit\tAlt-X")); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, _T("&File")); - frame->SetMenuBar(menu_bar); + #if USE_FONTDLG_GENERIC + choices_menu->Append(DIALOGS_CHOOSE_FONT_GENERIC, _T("Choose &font (generic)")); + #endif // USE_FONTDLG_GENERIC - myCanvas = new MyCanvas(frame); - myCanvas->SetBackgroundColour(*wxWHITE); + #if wxUSE_CHOICEDLG + choices_menu->Append(DIALOGS_SINGLE_CHOICE, _T("&Single choice\tCtrl-C")); + choices_menu->Append(DIALOGS_MULTI_CHOICE, _T("M&ultiple choice\tCtrl-U")); + #endif // wxUSE_CHOICEDLG - frame->Centre(wxBOTH); + file_menu->Append(wxID_ANY,_T("Choices and selectors"),choices_menu); - // Show the frame - frame->Show(TRUE); + #endif // wxUSE_COLOURDLG || wxUSE_FONTDLG || wxUSE_CHOICEDLG - SetTopWindow(frame); - return TRUE; + #if wxUSE_TEXTDLG || wxUSE_NUMBERDLG + + wxMenu *entry_menu = new wxMenu; + + #if wxUSE_TEXTDLG + entry_menu->Append(DIALOGS_TEXT_ENTRY, _T("Text &entry\tCtrl-E")); + entry_menu->Append(DIALOGS_PASSWORD_ENTRY, _T("&Password entry\tCtrl-P")); + #endif // wxUSE_TEXTDLG + + #if wxUSE_NUMBERDLG + entry_menu->Append(DIALOGS_NUM_ENTRY, _T("&Numeric entry\tCtrl-N")); + #endif // wxUSE_NUMBERDLG + + file_menu->Append(wxID_ANY,_T("Entry dialogs"),entry_menu); + + #endif + + + #if wxUSE_FILEDLG + + wxMenu *filedlg_menu = new wxMenu; + filedlg_menu->Append(DIALOGS_FILE_OPEN, _T("&Open file\tCtrl-O")); + filedlg_menu->Append(DIALOGS_FILE_OPEN2, _T("&Second open file\tCtrl-2")); + filedlg_menu->Append(DIALOGS_FILES_OPEN, _T("Open &files\tCtrl-Q")); + filedlg_menu->Append(DIALOGS_FILE_SAVE, _T("Sa&ve file\tCtrl-S")); + file_menu->Append(wxID_ANY,_T("File operations"),filedlg_menu); + + #endif // wxUSE_FILEDLG + + #if wxUSE_DIRDLG + wxMenu *dir_menu = new wxMenu; + + dir_menu->Append(DIALOGS_DIR_CHOOSE, _T("&Choose a directory\tCtrl-D")); + + #if USE_DIRDLG_GENERIC + dir_menu->Append(DIALOGS_GENERIC_DIR_CHOOSE, _T("&Choose a directory (generic)")); + #endif // USE_DIRDLG_GENERIC + + dir_menu->Append(DIALOGS_DIRNEW_CHOOSE, _T("Choose a directory (with \"Ne&w\" button)\tShift-Ctrl-D")); + file_menu->Append(wxID_ANY,_T("Directory operations"),dir_menu); + + #endif // wxUSE_DIRDLG + + + #if wxUSE_STARTUP_TIPS || wxUSE_PROGRESSDLG || wxUSE_BUSYINFO || wxUSE_LOG_DIALOG + + wxMenu *info_menu = new wxMenu; + + #if wxUSE_STARTUP_TIPS + info_menu->Append(DIALOGS_TIP, _T("&Tip of the day\tCtrl-T")); + #endif // wxUSE_STARTUP_TIPS + + #if wxUSE_PROGRESSDLG + info_menu->Append(DIALOGS_PROGRESS, _T("Pro&gress dialog\tCtrl-G")); + #endif // wxUSE_PROGRESSDLG + + #if wxUSE_BUSYINFO + info_menu->Append(DIALOGS_BUSYINFO, _T("&Busy info dialog\tCtrl-B")); + #endif // wxUSE_BUSYINFO + + #if wxUSE_LOG_DIALOG + info_menu->Append(DIALOGS_LOG_DIALOG, _T("&Log dialog\tCtrl-L")); + #endif // wxUSE_LOG_DIALOG + + file_menu->Append(wxID_ANY,_T("Informative dialogs"),info_menu); + + #endif // wxUSE_STARTUP_TIPS || wxUSE_PROGRESSDLG || wxUSE_BUSYINFO || wxUSE_LOG_DIALOG + + + #if wxUSE_FINDREPLDLG + wxMenu *find_menu = new wxMenu; + find_menu->Append(DIALOGS_FIND, _T("&Find dialog\tCtrl-F"), _T(""), true); + find_menu->Append(DIALOGS_REPLACE, _T("Find and &replace dialog\tShift-Ctrl-F"), _T(""), true); + file_menu->Append(wxID_ANY,_T("Searching"),find_menu); + #endif // wxUSE_FINDREPLDLG + + #if USE_MODAL_PRESENTATION + wxMenu *modal_menu = new wxMenu; + modal_menu->Append(DIALOGS_MODAL, _T("Mo&dal dialog\tCtrl-W")); + modal_menu->Append(DIALOGS_MODELESS, _T("Modeless &dialog\tCtrl-Z"), _T(""), true); + file_menu->Append(wxID_ANY,_T("Modal/Modeless"),modal_menu); + #endif // USE_MODAL_PRESENTATION + + file_menu->AppendSeparator(); + file_menu->Append(wxID_EXIT, _T("E&xit\tAlt-X")); + + wxMenuBar *menu_bar = new wxMenuBar; + menu_bar->Append(file_menu, _T("&File")); + frame->SetMenuBar(menu_bar); + + myCanvas = new MyCanvas(frame); + myCanvas->SetBackgroundColour(*wxWHITE); + + frame->Centre(wxBOTH); + + // Show the frame + frame->Show(true); + + SetTopWindow(frame); + + return true; } // My frame constructor MyFrame::MyFrame(wxWindow *parent, - const wxString& title, - const wxPoint& pos, - const wxSize& size) - : wxFrame(parent, -1, title, pos, size) + const wxString& title) + : wxFrame(parent, wxID_ANY, title) { +#if USE_MODAL_PRESENTATION m_dialog = (MyModelessDialog *)NULL; +#endif // USE_MODAL_PRESENTATION #if wxUSE_FINDREPLDLG m_dlgFind = m_dlgReplace = NULL; #endif +#if wxUSE_COLOURDLG m_clrData.SetChooseFull(true); for (int i = 0; i < 16; i++) { m_clrData.SetCustomColour(i, wxColour(i*16, i*16, i*16)); } +#endif // wxUSE_COLOURDLG CreateStatusBar(); } +#if wxUSE_COLOURDLG void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event) ) { m_clrData.SetColour(myCanvas->GetBackgroundColour()); @@ -248,7 +384,9 @@ void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event) ) myCanvas->Refresh(); } } +#endif // wxUSE_COLOURDLG +#if wxUSE_FONTDLG void MyFrame::ChooseFont(wxCommandEvent& WXUNUSED(event) ) { wxFontData data; @@ -271,48 +409,51 @@ void MyFrame::ChooseFont(wxCommandEvent& WXUNUSED(event) ) } //else: cancelled by the user, don't change the font } +#endif // wxUSE_FONTDLG -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW +#if USE_COLOURDLG_GENERIC void MyFrame::ChooseColourGeneric(wxCommandEvent& WXUNUSED(event)) { - wxColourData data; - data.SetChooseFull(TRUE); - for (int i = 0; i < 16; i++) - { + wxColourData data; + data.SetChooseFull(true); + for (int i = 0; i < 16; i++) + { wxColour colour(i*16, i*16, i*16); data.SetCustomColour(i, colour); - } + } - wxGenericColourDialog *dialog = new wxGenericColourDialog(this, &data); - if (dialog->ShowModal() == wxID_OK) - { + wxGenericColourDialog *dialog = new wxGenericColourDialog(this, &data); + if (dialog->ShowModal() == wxID_OK) + { wxColourData retData = dialog->GetColourData(); wxColour col = retData.GetColour(); // wxBrush *brush = wxTheBrushList->FindOrCreateBrush(&col, wxSOLID); myCanvas->SetBackgroundColour(col); myCanvas->ClearBackground(); myCanvas->Refresh(); - } - dialog->Destroy(); + } + dialog->Destroy(); } +#endif // USE_COLOURDLG_GENERIC +#if USE_FONTDLG_GENERIC void MyFrame::ChooseFontGeneric(wxCommandEvent& WXUNUSED(event) ) { - wxFontData data; - data.SetInitialFont(wxGetApp().m_canvasFont); - data.SetColour(wxGetApp().m_canvasTextColour); + wxFontData data; + data.SetInitialFont(wxGetApp().m_canvasFont); + data.SetColour(wxGetApp().m_canvasTextColour); - wxGenericFontDialog *dialog = new wxGenericFontDialog(this, &data); - if (dialog->ShowModal() == wxID_OK) - { + wxGenericFontDialog *dialog = new wxGenericFontDialog(this, &data); + if (dialog->ShowModal() == wxID_OK) + { wxFontData retData = dialog->GetFontData(); wxGetApp().m_canvasFont = retData.GetChosenFont(); wxGetApp().m_canvasTextColour = retData.GetColour(); myCanvas->Refresh(); - } - dialog->Destroy(); + } + dialog->Destroy(); } -#endif // wxTEST_GENERIC_DIALOGS_IN_MSW +#endif // USE_FONTDLG_GENERIC void MyFrame::LogDialog(wxCommandEvent& WXUNUSED(event)) { @@ -338,28 +479,29 @@ void MyFrame::LogDialog(wxCommandEvent& WXUNUSED(event)) void MyFrame::MessageBox(wxCommandEvent& WXUNUSED(event) ) { - wxMessageDialog dialog( NULL, _T("This is a message box\nA long, long string to test out the message box properly"), - _T("Message box text"), wxNO_DEFAULT|wxYES_NO|wxCANCEL|wxICON_INFORMATION); + wxMessageDialog dialog( NULL, _T("This is a message box\nA long, long string to test out the message box properly"), + _T("Message box text"), wxNO_DEFAULT|wxYES_NO|wxCANCEL|wxICON_INFORMATION); - switch ( dialog.ShowModal() ) - { - case wxID_YES: - wxLogStatus(wxT("You pressed \"Yes\"")); - break; + switch ( dialog.ShowModal() ) + { + case wxID_YES: + wxLogStatus(wxT("You pressed \"Yes\"")); + break; - case wxID_NO: - wxLogStatus(wxT("You pressed \"No\"")); - break; + case wxID_NO: + wxLogStatus(wxT("You pressed \"No\"")); + break; - case wxID_CANCEL: - wxLogStatus(wxT("You pressed \"Cancel\"")); - break; + case wxID_CANCEL: + wxLogStatus(wxT("You pressed \"Cancel\"")); + break; - default: - wxLogError(wxT("Unexpected wxMessageDialog return code!")); - } + default: + wxLogError(wxT("Unexpected wxMessageDialog return code!")); + } } +#if wxUSE_NUMBERDLG void MyFrame::NumericEntry(wxCommandEvent& WXUNUSED(event) ) { long res = wxGetNumberFromUser( _T("This is some text, actually a lot of text.\n") @@ -382,7 +524,9 @@ void MyFrame::NumericEntry(wxCommandEvent& WXUNUSED(event) ) wxMessageBox(msg, _T("Numeric test result"), wxOK | icon, this); } +#endif // wxUSE_NUMBERDLG +#if wxUSE_TEXTDLG void MyFrame::PasswordEntry(wxCommandEvent& WXUNUSED(event)) { wxString pwd = wxGetPasswordFromUser(_T("Enter password:"), @@ -398,20 +542,22 @@ void MyFrame::PasswordEntry(wxCommandEvent& WXUNUSED(event)) void MyFrame::TextEntry(wxCommandEvent& WXUNUSED(event)) { - wxTextEntryDialog dialog(this, - _T("This is a small sample\n") - _T("A long, long string to test out the text entrybox"), - _T("Please enter a string"), - _T("Default value"), - wxOK | wxCANCEL); + wxTextEntryDialog dialog(this, + _T("This is a small sample\n") + _T("A long, long string to test out the text entrybox"), + _T("Please enter a string"), + _T("Default value"), + wxOK | wxCANCEL); - if (dialog.ShowModal() == wxID_OK) - { - wxMessageDialog dialog2(this, dialog.GetValue(), _T("Got string")); - dialog2.ShowModal(); - } + if (dialog.ShowModal() == wxID_OK) + { + wxMessageDialog dialog2(this, dialog.GetValue(), _T("Got string")); + dialog2.ShowModal(); + } } +#endif // wxUSE_TEXTDLG +#if wxUSE_CHOICEDLG void MyFrame::SingleChoice(wxCommandEvent& WXUNUSED(event) ) { const wxString choices[] = { _T("One"), _T("Two"), _T("Three"), _T("Four"), _T("Five") } ; @@ -461,7 +607,9 @@ void MyFrame::MultiChoice(wxCommandEvent& WXUNUSED(event) ) } //else: cancelled or nothing selected } +#endif // wxUSE_CHOICEDLG +#if wxUSE_FILEDLG void MyFrame::FileOpen(wxCommandEvent& WXUNUSED(event) ) { wxFileDialog dialog @@ -571,7 +719,9 @@ void MyFrame::FileSave(wxCommandEvent& WXUNUSED(event) ) dialog.GetPath().c_str(), dialog.GetFilterIndex()); } } +#endif // wxUSE_FILEDLG +#if wxUSE_DIRDLG void MyFrame::DoDirChoose(int style) { // pass some initial dir to wxDirDialog @@ -595,12 +745,11 @@ void MyFrame::DirChooseNew(wxCommandEvent& WXUNUSED(event) ) { DoDirChoose(wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON); } +#endif // wxUSE_DIRDLG -#if defined(__WXMSW__) || defined(__WXMAC__) - +#if USE_DIRDLG_GENERIC void MyFrame::GenericDirChoose(wxCommandEvent& WXUNUSED(event) ) { -#if !(defined(__WXMSW__) || defined(__WXMAC__)) || wxUSE_DIRDLGG // pass some initial dir to wxDirDialog wxString dirHome; wxGetHomeDir(&dirHome); @@ -612,14 +761,10 @@ void MyFrame::GenericDirChoose(wxCommandEvent& WXUNUSED(event) ) wxMessageDialog dialog2(this, dialog.GetPath(), _T("Selected path")); dialog2.ShowModal(); } -#else - wxLogError(wxT("Sorry, generic dir dialog not available:\n") - wxT("set wxUSE_DIRDLGG to 1 and recompile")); -#endif } +#endif // USE_DIRDLG_GENERIC -#endif // wxMSW || wxMAC - +#if USE_MODAL_PRESENTATION void MyFrame::ModalDlg(wxCommandEvent& WXUNUSED(event)) { MyModalDialog dlg(this); @@ -637,17 +782,18 @@ void MyFrame::ModelessDlg(wxCommandEvent& event) m_dialog = new MyModelessDialog(this); } - m_dialog->Show(TRUE); + m_dialog->Show(true); } else // hide { m_dialog->Hide(); } } +#endif // USE_MODAL_PRESENTATION +#if wxUSE_STARTUP_TIPS void MyFrame::ShowTip(wxCommandEvent& WXUNUSED(event)) { -#if wxUSE_STARTUP_TIPS static size_t s_index = (size_t)-1; if ( s_index == (size_t)-1 ) @@ -671,12 +817,12 @@ void MyFrame::ShowTip(wxCommandEvent& WXUNUSED(event)) s_index = tipProvider->GetCurrentTip(); delete tipProvider; -#endif } +#endif // wxUSE_STARTUP_TIPS void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event) ) { - Close(TRUE); + Close(true); } #if wxUSE_PROGRESSDLG @@ -696,7 +842,7 @@ void MyFrame::ShowProgress( wxCommandEvent& WXUNUSED(event) ) wxPD_ESTIMATED_TIME | wxPD_REMAINING_TIME); - bool cont = TRUE; + bool cont = true; for ( int i = 0; i <= max; i++ ) { wxSleep(1); @@ -775,7 +921,7 @@ void MyFrame::ShowReplaceDialog( wxCommandEvent& WXUNUSED(event) ) wxFR_REPLACEDIALOG ); - m_dlgReplace->Show(TRUE); + m_dlgReplace->Show(true); } } @@ -797,7 +943,7 @@ void MyFrame::ShowFindDialog( wxCommandEvent& WXUNUSED(event) ) wxFR_NOWHOLEWORD ); - m_dlgFind->Show(TRUE); + m_dlgFind->Show(true); } } @@ -853,16 +999,16 @@ void MyFrame::OnFindDialog(wxFindDialogEvent& event) else { txt = _T("Unknown"); - idMenu = -1; + idMenu = wxID_ANY; wxFAIL_MSG( _T("unexpected event") ); } wxLogMessage(wxT("%s dialog is being closed."), txt); - if ( idMenu != -1 ) + if ( idMenu != wxID_ANY ) { - GetMenuBar()->Check(idMenu, FALSE); + GetMenuBar()->Check(idMenu, false); } dlg->Destroy(); @@ -893,18 +1039,18 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event) ) // ---------------------------------------------------------------------------- MyModelessDialog::MyModelessDialog(wxWindow *parent) - : wxDialog(parent, -1, wxString(_T("Modeless dialog"))) + : wxDialog(parent, wxID_ANY, wxString(_T("Modeless dialog"))) { wxBoxSizer *sizerTop = new wxBoxSizer(wxVERTICAL); wxButton *btn = new wxButton(this, DIALOGS_MODELESS_BTN, _T("Press me")); - wxCheckBox *check = new wxCheckBox(this, -1, _T("Should be disabled")); + wxCheckBox *check = new wxCheckBox(this, wxID_ANY, _T("Should be disabled")); check->Disable(); sizerTop->Add(btn, 1, wxEXPAND | wxALL, 5); sizerTop->Add(check, 1, wxEXPAND | wxALL, 5); - SetAutoLayout(TRUE); + SetAutoLayout(true); SetSizer(sizerTop); sizerTop->SetSizeHints(this); @@ -934,13 +1080,13 @@ void MyModelessDialog::OnClose(wxCloseEvent& event) // ---------------------------------------------------------------------------- MyModalDialog::MyModalDialog(wxWindow *parent) - : wxDialog(parent, -1, wxString(_T("Modal dialog"))) + : wxDialog(parent, wxID_ANY, wxString(_T("Modal dialog"))) { wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); - m_btnModal = new wxButton(this, -1, _T("&Modal dialog...")); - m_btnModeless = new wxButton(this, -1, _T("Mode&less dialog")); - m_btnDelete = new wxButton(this, -1, _T("&Delete button")); + m_btnModal = new wxButton(this, wxID_ANY, _T("&Modal dialog...")); + m_btnModeless = new wxButton(this, wxID_ANY, _T("Mode&less dialog")); + m_btnDelete = new wxButton(this, wxID_ANY, _T("&Delete button")); wxButton *btnOk = new wxButton(this, wxID_CANCEL, _T("&Close")); sizerTop->Add(m_btnModal, 0, wxALIGN_CENTER | wxALL, 5); @@ -948,7 +1094,7 @@ MyModalDialog::MyModalDialog(wxWindow *parent) sizerTop->Add(m_btnDelete, 0, wxALIGN_CENTER | wxALL, 5); sizerTop->Add(btnOk, 0, wxALIGN_CENTER | wxALL, 5); - SetAutoLayout(TRUE); + SetAutoLayout(true); SetSizer(sizerTop); sizerTop->SetSizeHints(this); @@ -969,9 +1115,13 @@ void MyModalDialog::OnButton(wxCommandEvent& event) } else if ( event.GetEventObject() == m_btnModal ) { +#if wxUSE_TEXTDLG wxGetTextFromUser(_T("Dummy prompt"), _T("Modal dialog called from dialog"), _T(""), this); +#else + wxMessageBox(_T("Modal dialog called from dialog")); +#endif // wxUSE_TEXTDLG } else if ( event.GetEventObject() == m_btnModeless ) { diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h index 8b734dcacf..16b915ac85 100644 --- a/samples/dialogs/dialogs.h +++ b/samples/dialogs/dialogs.h @@ -2,7 +2,7 @@ // Name: dialogs.h // Purpose: Common dialogs demo // Author: Julian Smart -// Modified by: +// Modified by: ABX (2004) - adjustementd for conditional building // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart @@ -12,6 +12,25 @@ #ifndef __DIALOGSH__ #define __DIALOGSH__ +#define USE_COLOURDLG_GENERIC \ + ( \ + wxUSE_COLOURDLG && \ + ( defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXGTK20__) ) && \ + !defined(__WXUNIVERSAL__) \ + ) + + +#define USE_FONTDLG_GENERIC \ + ( \ + wxUSE_FONTDLG && \ + ( defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXPM__) ) && \ + !defined(__WXUNIVERSAL__) \ + ) + +#define USE_DIRDLG_GENERIC 0 + +#define USE_MODAL_PRESENTATION 1 + // Define a new application type class MyApp: public wxApp { @@ -55,52 +74,93 @@ private: class MyFrame: public wxFrame { public: - MyFrame(wxWindow *parent, const wxString& title, - const wxPoint& pos, const wxSize& size); + MyFrame(wxWindow *parent, const wxString& title); - void ChooseColour(wxCommandEvent& event); - void ChooseFont(wxCommandEvent& event); - void LogDialog(wxCommandEvent& event); void MessageBox(wxCommandEvent& event); + +#if wxUSE_COLOURDLG + void ChooseColour(wxCommandEvent& event); +#endif // wxUSE_COLOURDLG + +#if wxUSE_FONTDLG + void ChooseFont(wxCommandEvent& event); +#endif // wxUSE_FONTDLG + +#if wxUSE_LOG_DIALOG + void LogDialog(wxCommandEvent& event); +#endif // wxUSE_LOG_DIALOG + +#if wxUSE_CHOICEDLG void SingleChoice(wxCommandEvent& event); void MultiChoice(wxCommandEvent& event); +#endif // wxUSE_CHOICEDLG + +#if wxUSE_TEXTDLG void TextEntry(wxCommandEvent& event); void PasswordEntry(wxCommandEvent& event); +#endif // wxUSE_TEXTDLG + +#if wxUSE_NUMBERDLG void NumericEntry(wxCommandEvent& event); +#endif // wxUSE_NUMBERDLG + +#if wxUSE_FILEDLG void FileOpen(wxCommandEvent& event); void FileOpen2(wxCommandEvent& event); void FilesOpen(wxCommandEvent& event); void FileSave(wxCommandEvent& event); +#endif // wxUSE_FILEDLG + +#if wxUSE_DIRDLG void DirChoose(wxCommandEvent& event); void DirChooseNew(wxCommandEvent& event); +#endif // wxUSE_DIRDLG + +#if USE_DIRDLG_GENERIC void GenericDirChoose(wxCommandEvent& event); +#endif // USE_DIRDLG_GENERIC + +#if wxUSE_STARTUP_TIPS void ShowTip(wxCommandEvent& event); +#endif // wxUSE_STARTUP_TIPS + +#if USE_MODAL_PRESENTATION void ModalDlg(wxCommandEvent& event); void ModelessDlg(wxCommandEvent& event); +#endif // USE_MODAL_PRESENTATION + #if wxUSE_PROGRESSDLG void ShowProgress(wxCommandEvent& event); #endif // wxUSE_PROGRESSDLG + #if wxUSE_BUSYINFO void ShowBusyInfo(wxCommandEvent& event); #endif // wxUSE_BUSYINFO + #if wxUSE_FINDREPLDLG void ShowFindDialog(wxCommandEvent& event); void ShowReplaceDialog(wxCommandEvent& event); - void OnFindDialog(wxFindDialogEvent& event); #endif // wxUSE_FINDREPLDLG -#if !defined(__WXMSW__) || wxTEST_GENERIC_DIALOGS_IN_MSW +#if USE_COLOURDLG_GENERIC void ChooseColourGeneric(wxCommandEvent& event); +#endif // USE_COLOURDLG_GENERIC + +#if USE_FONTDLG_GENERIC void ChooseFontGeneric(wxCommandEvent& event); -#endif +#endif // USE_FONTDLG_GENERIC void OnExit(wxCommandEvent& event); private: +#if wxUSE_DIRDLG void DoDirChoose(int style); +#endif // wxUSE_DIRDLG +#if USE_MODAL_PRESENTATION MyModelessDialog *m_dialog; +#endif // USE_MODAL_PRESENTATION #if wxUSE_FINDREPLDLG wxFindReplaceData m_findData; @@ -118,7 +178,7 @@ class MyCanvas: public wxScrolledWindow { public: MyCanvas(wxWindow *parent) : - wxScrolledWindow(parent,-1,wxDefaultPosition,wxDefaultSize,wxNO_FULL_REPAINT_ON_RESIZE) { } + wxScrolledWindow(parent,wxID_ANY,wxDefaultPosition,wxDefaultSize,wxNO_FULL_REPAINT_ON_RESIZE) { } void OnPaint(wxPaintEvent& event); @@ -129,7 +189,7 @@ public: // Menu IDs enum { - DIALOGS_CHOOSE_COLOUR = 1, + DIALOGS_CHOOSE_COLOUR = wxID_HIGHEST, DIALOGS_CHOOSE_COLOUR_GENERIC, DIALOGS_CHOOSE_FONT, DIALOGS_CHOOSE_FONT_GENERIC,