| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        dialogs.h
 
- // Purpose:     Common dialogs demo
 
- // Author:      Julian Smart, Vadim Zeitlin, ABX
 
- // Created:     04/01/98
 
- // Copyright:   (c) Julian Smart
 
- //              (c) 2004 ABX
 
- //              (c) Vadim Zeitlin
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /*
 
- This sample shows how to use the common dialogs available from wxWidgets.
 
- It also shows that generic implementations of common dialogs can be exchanged
 
- with native dialogs and can coexist in one application. The need for generic
 
- dialogs addition is recognized thanks to setup of below USE_*** setting. Their
 
- combinations reflects conditions of makefiles and project files to avoid unresolved
 
- references during linking. For now some generic dialogs are added in static builds
 
- of MSW, MAC and OS2
 
- */
 
- #ifndef __DIALOGSH__
 
- #define __DIALOGSH__
 
- #ifdef __WXUNIVERSAL__
 
-     #define USE_WXUNIVERSAL 1
 
- #else
 
-     #define USE_WXUNIVERSAL 0
 
- #endif
 
- #ifdef WXUSINGDLL
 
-     #define USE_DLL 1
 
- #else
 
-     #define USE_DLL 0
 
- #endif
 
- #if defined(__WXWINCE__)
 
-     #define USE_WXWINCE 1
 
- #else
 
-     #define USE_WXWINCE 0
 
- #endif
 
- #if defined(__WXMSW__) && !USE_WXWINCE
 
-     #define USE_WXMSW 1
 
- #else
 
-     #define USE_WXMSW 0
 
- #endif
 
- #ifdef __WXMAC__
 
-     #define USE_WXMAC 1
 
- #else
 
-     #define USE_WXMAC 0
 
- #endif
 
- #if USE_NATIVE_FONT_DIALOG_FOR_MACOSX
 
-     #define USE_WXMACFONTDLG 1
 
- #else
 
-     #define USE_WXMACFONTDLG 0
 
- #endif
 
- #ifdef __WXGTK__
 
-     #define USE_WXGTK 1
 
- #else
 
-     #define USE_WXGTK 0
 
- #endif
 
- #ifdef __WXPM__
 
-     #define USE_WXPM 1
 
- #else
 
-     #define USE_WXPM 0
 
- #endif
 
- #define USE_GENERIC_DIALOGS (!USE_WXUNIVERSAL && !USE_DLL)
 
- #define USE_COLOURDLG_GENERIC \
 
-     ((USE_WXMSW || USE_WXMAC) && USE_GENERIC_DIALOGS && wxUSE_COLOURDLG)
 
- #define USE_DIRDLG_GENERIC \
 
-     ((USE_WXMSW || USE_WXMAC) && USE_GENERIC_DIALOGS && wxUSE_DIRDLG)
 
- #define USE_FILEDLG_GENERIC \
 
-     ((((USE_WXMSW || USE_WXMAC || USE_WXPM || USE_WXGTK) \
 
-                     && USE_GENERIC_DIALOGS) || USE_WXWINCE) && wxUSE_FILEDLG)
 
- #define USE_FONTDLG_GENERIC \
 
-     ((USE_WXMSW || USE_WXMACFONTDLG || USE_WXPM) && USE_GENERIC_DIALOGS && wxUSE_FONTDLG)
 
- // Turn USE_MODAL_PRESENTATION to 0 if there is any reason for not presenting difference
 
- // between modal and modeless dialogs (ie. not implemented it in your port yet)
 
- #if defined(__SMARTPHONE__) || !wxUSE_BOOKCTRL
 
-     #define USE_MODAL_PRESENTATION 0
 
- #else
 
-     #define USE_MODAL_PRESENTATION 1
 
- #endif
 
- // Turn USE_SETTINGS_DIALOG to 0 if supported
 
- #if wxUSE_BOOKCTRL
 
-     #define USE_SETTINGS_DIALOG 1
 
- #else
 
-     #define USE_SETTINGS_DIALOG 0
 
- #endif
 
- #if wxUSE_LOG
 
- // Custom application traits class which we use to override the default log
 
- // target creation
 
- class MyAppTraits : public wxGUIAppTraits
 
- {
 
- public:
 
-     virtual wxLog *CreateLogTarget();
 
- };
 
- #endif // wxUSE_LOG
 
- // Define a new application type
 
- class MyApp: public wxApp
 
- {
 
- public:
 
-     MyApp() { m_startupProgressStyle = -1; }
 
-     virtual bool OnInit();
 
- #if wxUSE_CMDLINE_PARSER
 
-     virtual void OnInitCmdLine(wxCmdLineParser& parser);
 
-     virtual bool OnCmdLineParsed(wxCmdLineParser& parser);
 
- #endif // wxUSE_CMDLINE_PARSER
 
- protected:
 
- #if wxUSE_LOG
 
-     virtual wxAppTraits *CreateTraits() { return new MyAppTraits; }
 
- #endif // wxUSE_LOG
 
- private:
 
-     // Flag set to a valid value if command line option "progress" is used,
 
-     // this allows testing of wxProgressDialog before the main event loop is
 
-     // started. If this option is not specified it is set to -1 by default
 
-     // meaning that progress dialog shouldn't be shown at all.
 
-     long m_startupProgressStyle;
 
- };
 
- #if USE_MODAL_PRESENTATION
 
- // A custom modeless dialog
 
- class MyModelessDialog : public wxDialog
 
- {
 
- public:
 
-     MyModelessDialog(wxWindow *parent);
 
-     void OnButton(wxCommandEvent& event);
 
-     void OnClose(wxCloseEvent& event);
 
- private:
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- // A custom modal dialog
 
- class MyModalDialog : public wxDialog
 
- {
 
- public:
 
-     MyModalDialog(wxWindow *parent);
 
-     void OnButton(wxCommandEvent& event);
 
- private:
 
-     wxButton *m_btnModal,
 
-              *m_btnModeless,
 
-              *m_btnDelete;
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- #endif // USE_MODAL_PRESENTATION
 
- // A class demonstrating CreateStdDialogButtonSizer()
 
- class StdButtonSizerDialog : public wxDialog
 
- {
 
- public:
 
-     StdButtonSizerDialog(wxWindow *parent);
 
-     void OnEvent(wxCommandEvent& event);
 
- private:
 
-     void EnableDisableControls();
 
-     wxCheckBox *m_chkboxAffirmativeButton;
 
-     wxRadioButton *m_radiobtnOk,
 
-                   *m_radiobtnYes;
 
-     wxCheckBox *m_chkboxDismissButton;
 
-     wxRadioButton *m_radiobtnClose,
 
-                   *m_radiobtnCancel;
 
-     wxCheckBox *m_chkboxApply,
 
-                *m_chkboxNo,
 
-                *m_chkboxHelp,
 
-                *m_chkboxNoDefault;
 
-     wxSizer *m_buttonsSizer;
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- // Test harness for wxMessageDialog.
 
- class TestMessageBoxDialog : public wxDialog
 
- {
 
- public:
 
-     TestMessageBoxDialog(wxWindow *parent);
 
-     bool Create();
 
- protected:
 
-     wxString GetBoxTitle() { return m_textTitle->GetValue(); }
 
-     wxString GetMessage() { return m_textMsg->GetValue(); }
 
-     long GetStyle();
 
-     void PrepareMessageDialog(wxMessageDialogBase &dlg);
 
-     virtual void AddAdditionalTextOptions(wxSizer *WXUNUSED(sizer)) { }
 
-     virtual void AddAdditionalFlags(wxSizer *WXUNUSED(sizer)) { }
 
-     void OnApply(wxCommandEvent& event);
 
-     void OnClose(wxCommandEvent& event);
 
-     void OnUpdateLabelUI(wxUpdateUIEvent& event);
 
-     void OnUpdateNoDefaultUI(wxUpdateUIEvent& event);
 
- private:
 
-     enum
 
-     {
 
-         Btn_Yes,
 
-         Btn_No,
 
-         Btn_Ok,
 
-         Btn_Cancel,
 
-         Btn_Help,
 
-         Btn_Max
 
-     };
 
-     struct BtnInfo
 
-     {
 
-         int flag;
 
-         const char *name;
 
-     };
 
-     static const BtnInfo ms_btnInfo[Btn_Max];
 
-     enum
 
-     {
 
-         MsgDlgIcon_No,
 
-         MsgDlgIcon_None,
 
-         MsgDlgIcon_Info,
 
-         MsgDlgIcon_Question,
 
-         MsgDlgIcon_Warning,
 
-         MsgDlgIcon_Error,
 
-         MsgDlgIcon_AuthNeeded,
 
-         MsgDlgIcon_Max
 
-     };
 
-     wxTextCtrl *m_textTitle,
 
-                *m_textMsg,
 
-                *m_textExtMsg;
 
-     wxCheckBox *m_buttons[Btn_Max];
 
-     wxTextCtrl *m_labels[Btn_Max];
 
-     wxRadioBox *m_icons;
 
-     wxCheckBox *m_chkNoDefault,
 
-                *m_chkCentre;
 
-     wxDECLARE_EVENT_TABLE();
 
-     wxDECLARE_NO_COPY_CLASS(TestMessageBoxDialog);
 
- };
 
- #if wxUSE_RICHMSGDLG
 
- class TestRichMessageDialog : public TestMessageBoxDialog
 
- {
 
- public:
 
-     TestRichMessageDialog(wxWindow *parent);
 
- protected:
 
-     // overrides method in base class
 
-     virtual void AddAdditionalTextOptions(wxSizer *sizer);
 
-     virtual void AddAdditionalFlags(wxSizer *sizer);
 
-     void OnApply(wxCommandEvent& event);
 
- private:
 
-     wxTextCtrl *m_textCheckBox;
 
-     wxCheckBox *m_initialValueCheckBox;
 
-     wxTextCtrl *m_textDetailed;
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- #endif // wxUSE_RICHMSGDLG
 
- class TestDefaultActionDialog: public wxDialog
 
- {
 
- public:
 
-     TestDefaultActionDialog( wxWindow *parent );
 
-     void OnListBoxDClick(wxCommandEvent& event);
 
-     void OnDisableOK(wxCommandEvent& event);
 
-     void OnDisableCancel(wxCommandEvent& event);
 
-     void OnCatchListBoxDClick(wxCommandEvent& event);
 
-     void OnTextEnter(wxCommandEvent& event);
 
- private:
 
-     bool   m_catchListBoxDClick;
 
- private:
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- #if USE_SETTINGS_DIALOG
 
- // Property sheet dialog
 
- class SettingsDialog: public wxPropertySheetDialog
 
- {
 
- DECLARE_CLASS(SettingsDialog)
 
- public:
 
-     SettingsDialog(wxWindow* parent, int dialogType);
 
-     ~SettingsDialog();
 
-     wxPanel* CreateGeneralSettingsPage(wxWindow* parent);
 
-     wxPanel* CreateAestheticSettingsPage(wxWindow* parent);
 
- protected:
 
-     enum {
 
-         ID_SHOW_TOOLTIPS = 100,
 
-         ID_AUTO_SAVE,
 
-         ID_AUTO_SAVE_MINS,
 
-         ID_LOAD_LAST_PROJECT,
 
-         ID_APPLY_SETTINGS_TO,
 
-         ID_BACKGROUND_STYLE,
 
-         ID_FONT_SIZE
 
-     };
 
-     wxImageList*    m_imageList;
 
- DECLARE_EVENT_TABLE()
 
- };
 
- #endif // USE_SETTINGS_DIALOG
 
- // Define a new frame type
 
- class MyFrame: public wxFrame
 
- {
 
- public:
 
-     MyFrame(const wxString& title);
 
-     virtual ~MyFrame();
 
- #if wxUSE_MSGDLG
 
-     void MessageBox(wxCommandEvent& event);
 
-     void MessageBoxDialog(wxCommandEvent& event);
 
-     void MessageBoxInfo(wxCommandEvent& event);
 
-     void MessageBoxWindowModal(wxCommandEvent& event);
 
-     void MessageBoxWindowModalClosed(wxWindowModalDialogEvent& event);
 
- #endif // wxUSE_MSGDLG
 
- #if wxUSE_RICHMSGDLG
 
-     void RichMessageDialog(wxCommandEvent& event);
 
- #endif // wxUSE_RICHMSGDLG
 
- #if wxUSE_COLOURDLG
 
-     void ChooseColour(wxCommandEvent& event);
 
-     void GetColour(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_INFOBAR
 
-     void InfoBarSimple(wxCommandEvent& event);
 
-     void InfoBarAdvanced(wxCommandEvent& event);
 
- #endif // wxUSE_INFOBAR
 
- #if wxUSE_CHOICEDLG
 
-     void SingleChoice(wxCommandEvent& event);
 
-     void MultiChoice(wxCommandEvent& event);
 
- #endif // wxUSE_CHOICEDLG
 
-     void Rearrange(wxCommandEvent& event);
 
- #if wxUSE_TEXTDLG
 
-     void LineEntry(wxCommandEvent& event);
 
-     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 USE_FILEDLG_GENERIC
 
-     void FileOpenGeneric(wxCommandEvent& event);
 
-     void FilesOpenGeneric(wxCommandEvent& event);
 
-     void FileSaveGeneric(wxCommandEvent& event);
 
- #endif // USE_FILEDLG_GENERIC
 
- #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);
 
- #endif // USE_MODAL_PRESENTATION
 
-     void ModelessDlg(wxCommandEvent& event);
 
-     void DlgCenteredScreen(wxCommandEvent& event);
 
-     void DlgCenteredParent(wxCommandEvent& event);
 
-     void MiniFrame(wxCommandEvent& event);
 
-     void DlgOnTop(wxCommandEvent& event);
 
- #if wxUSE_PROGRESSDLG
 
-     void ShowProgress(wxCommandEvent& event);
 
- #endif // wxUSE_PROGRESSDLG
 
- #if wxUSE_ABOUTDLG
 
-     void ShowSimpleAboutDialog(wxCommandEvent& event);
 
-     void ShowFancyAboutDialog(wxCommandEvent& event);
 
-     void ShowFullAboutDialog(wxCommandEvent& event);
 
-     void ShowCustomAboutDialog(wxCommandEvent& event);
 
- #endif // wxUSE_ABOUTDLG
 
- #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 USE_COLOURDLG_GENERIC
 
-     void ChooseColourGeneric(wxCommandEvent& event);
 
- #endif // USE_COLOURDLG_GENERIC
 
- #if USE_FONTDLG_GENERIC
 
-     void ChooseFontGeneric(wxCommandEvent& event);
 
- #endif // USE_FONTDLG_GENERIC
 
-     void OnPropertySheet(wxCommandEvent& event);
 
-     void OnRequestUserAttention(wxCommandEvent& event);
 
- #if wxUSE_NOTIFICATION_MESSAGE
 
-     void OnNotifMsgAuto(wxCommandEvent& event);
 
-     void OnNotifMsgShow(wxCommandEvent& event);
 
-     void OnNotifMsgHide(wxCommandEvent& event);
 
- #endif // wxUSE_NOTIFICATION_MESSAGE
 
- #if wxUSE_RICHTOOLTIP
 
-     void OnRichTipDialog(wxCommandEvent& event);
 
- #endif // wxUSE_RICHTOOLTIP
 
-     void OnStandardButtonsSizerDialog(wxCommandEvent& event);
 
-     void OnTestDefaultActionDialog(wxCommandEvent& event);
 
-     void OnModalHook(wxCommandEvent& event);
 
-     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;
 
-     wxFindReplaceDialog *m_dlgFind,
 
-                         *m_dlgReplace;
 
- #endif // wxUSE_FINDREPLDLG
 
- #if wxUSE_NOTIFICATION_MESSAGE
 
-     wxNotificationMessage *m_notifMsg;
 
- #endif // wxUSE_NOTIFICATION_MESSAGE
 
-     wxColourData m_clrData;
 
-     // just a window which we use to show the effect of font/colours selection
 
-     wxWindow *m_canvas;
 
- #if wxUSE_INFOBAR
 
-     void OnInfoBarRedo(wxCommandEvent& event);
 
-     wxInfoBar *m_infoBarSimple,
 
-               *m_infoBarAdvanced;
 
- #endif // wxUSE_INFOBAR
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- class MyCanvas: public wxScrolledWindow
 
- {
 
- public:
 
-     MyCanvas(wxWindow *parent) : wxScrolledWindow(parent, wxID_ANY)
 
-     {
 
-         SetForegroundColour(*wxBLACK);
 
-         SetBackgroundColour(*wxWHITE);
 
-         SetFont(*wxNORMAL_FONT);
 
-     }
 
- private:
 
-     void OnPaint(wxPaintEvent& event);
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- // Menu IDs
 
- enum
 
- {
 
-     DIALOGS_CHOOSE_COLOUR = wxID_HIGHEST,
 
-     DIALOGS_GET_COLOUR,
 
-     DIALOGS_CHOOSE_COLOUR_GENERIC,
 
-     DIALOGS_CHOOSE_FONT,
 
-     DIALOGS_CHOOSE_FONT_GENERIC,
 
-     DIALOGS_MESSAGE_BOX,
 
-     DIALOGS_MESSAGE_BOX_WINDOW_MODAL,
 
-     DIALOGS_MESSAGE_DIALOG,
 
-     DIALOGS_MESSAGE_BOX_WXINFO,
 
-     DIALOGS_RICH_MESSAGE_DIALOG,
 
-     DIALOGS_SINGLE_CHOICE,
 
-     DIALOGS_MULTI_CHOICE,
 
-     DIALOGS_REARRANGE,
 
-     DIALOGS_LINE_ENTRY,
 
-     DIALOGS_TEXT_ENTRY,
 
-     DIALOGS_PASSWORD_ENTRY,
 
-     DIALOGS_FILE_OPEN,
 
-     DIALOGS_FILE_OPEN2,
 
-     DIALOGS_FILES_OPEN,
 
-     DIALOGS_FILE_SAVE,
 
-     DIALOGS_FILE_OPEN_GENERIC,
 
-     DIALOGS_FILES_OPEN_GENERIC,
 
-     DIALOGS_FILE_SAVE_GENERIC,
 
-     DIALOGS_DIR_CHOOSE,
 
-     DIALOGS_DIRNEW_CHOOSE,
 
-     DIALOGS_GENERIC_DIR_CHOOSE,
 
-     DIALOGS_TIP,
 
-     DIALOGS_NUM_ENTRY,
 
-     DIALOGS_LOG_DIALOG,
 
-     DIALOGS_INFOBAR_SIMPLE,
 
-     DIALOGS_INFOBAR_ADVANCED,
 
-     DIALOGS_MODAL,
 
-     DIALOGS_MODELESS,
 
-     DIALOGS_CENTRE_SCREEN,
 
-     DIALOGS_CENTRE_PARENT,
 
-     DIALOGS_MINIFRAME,
 
-     DIALOGS_ONTOP,
 
-     DIALOGS_MODELESS_BTN,
 
-     DIALOGS_PROGRESS,
 
-     DIALOGS_ABOUTDLG_SIMPLE,
 
-     DIALOGS_ABOUTDLG_FANCY,
 
-     DIALOGS_ABOUTDLG_FULL,
 
-     DIALOGS_ABOUTDLG_CUSTOM,
 
-     DIALOGS_BUSYINFO,
 
-     DIALOGS_FIND,
 
-     DIALOGS_REPLACE,
 
-     DIALOGS_REQUEST,
 
-     DIALOGS_NOTIFY_AUTO,
 
-     DIALOGS_NOTIFY_SHOW,
 
-     DIALOGS_NOTIFY_HIDE,
 
-     DIALOGS_RICHTIP_DIALOG,
 
-     DIALOGS_PROPERTY_SHEET,
 
-     DIALOGS_PROPERTY_SHEET_TOOLBOOK,
 
-     DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK,
 
-     DIALOGS_STANDARD_BUTTON_SIZER_DIALOG,
 
-     DIALOGS_TEST_DEFAULT_ACTION,
 
-     DIALOGS_MODAL_HOOK
 
- };
 
- #endif
 
 
  |