X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7512bea2cbc6285700115dc54e7c22c8c563f030..17b1d76b4add82305463d10b9f65668d06169363:/samples/dialogs/dialogs.h diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h index 2c9c7e5b4e..12a64d9a63 100644 --- a/samples/dialogs/dialogs.h +++ b/samples/dialogs/dialogs.h @@ -9,6 +9,16 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// +/* +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__ @@ -24,7 +34,13 @@ #define USE_DLL 0 #endif -#if defined(__WXMSW__) && !defined(__WXWINCE__) +#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 @@ -36,6 +52,12 @@ #define USE_WXMAC 0 #endif +#if defined(__WXMAC_OSX__) && ( MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2) && USE_NATIVE_FONT_DIALOG_FOR_MACOSX + #define USE_WXMACFONTDLG 1 +#else + #define USE_WXMACFONTDLG 0 +#endif + #ifdef __WXGTK__ #define USE_WXGTK 1 #else @@ -48,24 +70,33 @@ #define USE_WXPM 0 #endif -#define USE_GENERIC_DIALOGS \ - (((USE_WXMSW && wxUSE_GENERIC_DIALOGS_IN_MSW) || \ - USE_WXMAC) && \ - !USE_WXUNIVERSAL) - -#define USE_COLOURDLG_GENERIC (USE_GENERIC_DIALOGS && wxUSE_COLOURDLG) -#define USE_DIRDLG_GENERIC (USE_GENERIC_DIALOGS && wxUSE_DIRDLG) -#define USE_FILEDLG_GENERIC (USE_GENERIC_DIALOGS && wxUSE_FILEDLG) -#define USE_FONTDLG_GENERIC (USE_GENERIC_DIALOGS && wxUSE_FONTDLG) - -// VZ: what is this for? -#define USE_MODAL_PRESENTATION \ - ( \ - USE_WXMSW || \ - USE_WXMAC || \ - USE_WXGTK || \ - USE_WXPM \ - ) +#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_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 + // Define a new application type class MyApp: public wxApp @@ -110,6 +141,38 @@ private: #endif // USE_MODAL_PRESENTATION +#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 { @@ -173,12 +236,21 @@ public: #if USE_MODAL_PRESENTATION void ModalDlg(wxCommandEvent& event); void ModelessDlg(wxCommandEvent& event); + void DlgCenteredScreen(wxCommandEvent& event); + void DlgCenteredParent(wxCommandEvent& event); #endif // USE_MODAL_PRESENTATION #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 @@ -197,6 +269,8 @@ public: void ChooseFontGeneric(wxCommandEvent& event); #endif // USE_FONTDLG_GENERIC + void OnPropertySheet(wxCommandEvent& event); + void OnRequestUserAttention(wxCommandEvent& event); void OnExit(wxCommandEvent& event); private: @@ -223,7 +297,7 @@ private: class MyCanvas: public wxScrolledWindow { public: - MyCanvas(wxWindow *parent) : + MyCanvas(wxWindow *parent) : wxScrolledWindow(parent,wxID_ANY,wxDefaultPosition,wxDefaultSize,wxNO_FULL_REPAINT_ON_RESIZE) { } void OnPaint(wxPaintEvent& event); @@ -259,11 +333,21 @@ enum DIALOGS_LOG_DIALOG, DIALOGS_MODAL, DIALOGS_MODELESS, + DIALOGS_CENTRE_SCREEN, + DIALOGS_CENTRE_PARENT, DIALOGS_MODELESS_BTN, DIALOGS_PROGRESS, + DIALOGS_ABOUTDLG_SIMPLE, + DIALOGS_ABOUTDLG_FANCY, + DIALOGS_ABOUTDLG_FULL, + DIALOGS_ABOUTDLG_CUSTOM, DIALOGS_BUSYINFO, DIALOGS_FIND, - DIALOGS_REPLACE + DIALOGS_REPLACE, + DIALOGS_REQUEST, + DIALOGS_PROPERTY_SHEET, + DIALOGS_PROPERTY_SHEET_TOOLBOOK, + DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK }; #endif