X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/695fe764bd0ebfdc01d854033c26adb9ff248560..3dd4386160b8f6d28ecc4ad2ca308c437721a41f:/samples/dialogs/dialogs.h diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h index 91bef905f1..6f225aa991 100644 --- a/samples/dialogs/dialogs.h +++ b/samples/dialogs/dialogs.h @@ -9,40 +9,81 @@ // 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__ -#define USE_COLOURDLG_GENERIC \ - ( \ - wxUSE_COLOURDLG && \ - ( defined(__WXMSW__) || defined(__WXMAC__) ) && \ - !defined(__WXUNIVERSAL__) \ - ) +#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(__WXMSW__) && !defined(__WXWINCE__) + #define USE_WXMSW 1 +#else + #define USE_WXMSW 0 +#endif + +#ifdef __WXMAC__ + #define USE_WXMAC 1 +#else + #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 + #define USE_WXGTK 0 +#endif -#define USE_DIRDLG_GENERIC \ - ( \ - wxUSE_DIRDLG && \ - ( defined(__WXMSW__) || defined(__WXMAC__) ) && \ - !defined(__WXUNIVERSAL__) \ - ) +#ifdef __WXPM__ + #define USE_WXPM 1 +#else + #define USE_WXPM 0 +#endif -#define USE_FILEDLG_GENERIC \ - ( \ - wxUSE_FILEDLG && \ - ( defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXPM__) ) && \ - !defined(__WXUNIVERSAL__) \ - ) +#define USE_GENERIC_DIALOGS (!USE_WXUNIVERSAL && !USE_DLL) -#define USE_FONTDLG_GENERIC \ - ( \ - wxUSE_FONTDLG && \ - ( defined(__WXMSW__) || defined(__WXPM__) ) && \ - !defined(__WXUNIVERSAL__) \ - ) +#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 && wxUSE_FILEDLG) +#define USE_FONTDLG_GENERIC \ + ((USE_WXMSW || USE_WXMACFONTDLG ||USE_WXPM) && USE_GENERIC_DIALOGS && wxUSE_FONTDLG) -#define USE_MODAL_PRESENTATION 1 +// 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__) + #define USE_MODAL_PRESENTATION 0 +#else + #define USE_MODAL_PRESENTATION 1 +#endif + // Define a new application type class MyApp: public wxApp @@ -54,6 +95,8 @@ public: wxColour m_canvasTextColour; }; +#if USE_MODAL_PRESENTATION + // A custom modeless dialog class MyModelessDialog : public wxDialog { @@ -83,6 +126,8 @@ private: DECLARE_EVENT_TABLE() }; +#endif // USE_MODAL_PRESENTATION + // Define a new frame type class MyFrame: public wxFrame { @@ -170,6 +215,7 @@ public: void ChooseFontGeneric(wxCommandEvent& event); #endif // USE_FONTDLG_GENERIC + void OnRequestUserAttention(wxCommandEvent& event); void OnExit(wxCommandEvent& event); private: @@ -196,7 +242,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); @@ -236,7 +282,8 @@ enum DIALOGS_PROGRESS, DIALOGS_BUSYINFO, DIALOGS_FIND, - DIALOGS_REPLACE + DIALOGS_REPLACE, + DIALOGS_REQUEST }; #endif