X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1777b9bbf4573dabecf4a3256d0d3c2c0c2a3fdf..324eeecb3cdc9522e136af6670443148772b412a:/include/wx/dialog.h diff --git a/include/wx/dialog.h b/include/wx/dialog.h index 8a4737c2f4..ec8bfb2cec 100644 --- a/include/wx/dialog.h +++ b/include/wx/dialog.h @@ -12,73 +12,84 @@ #ifndef _WX_DIALOG_H_BASE_ #define _WX_DIALOG_H_BASE_ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "dialogbase.h" +#endif + #include "wx/defs.h" -#include "wx/panel.h" +#include "wx/containr.h" +#include "wx/toplevel.h" + +class WXDLLEXPORT wxSizer; +class WXDLLEXPORT wxStdDialogButtonSizer; + +#define wxDIALOG_NO_PARENT 0x0001 // Don't make owned by apps top window + +#ifdef __WXWINCE__ +# ifdef __SMARTPHONE__ +# define wxDEFAULT_DIALOG_STYLE (wxMAXIMIZE | wxCAPTION) +# else +# define wxDEFAULT_DIALOG_STYLE (0) +# endif +#else // !__WXWINCE__ +# define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX) +#endif + +extern WXDLLEXPORT_DATA(const wxChar*) wxDialogNameStr; -class WXDLLEXPORT wxDialogBase : public wxPanel +class WXDLLEXPORT wxDialogBase : public wxTopLevelWindow { public: + wxDialogBase() { Init(); } + virtual ~wxDialogBase() { } + + void Init(); + // the modal dialogs have a return code - usually the id of the last // pressed button void SetReturnCode(int returnCode) { m_returnCode = returnCode; } int GetReturnCode() const { return m_returnCode; } -protected: - // functions to help with dialog layout - // ------------------------------------ - - // constants used in dialog layout - static const long LAYOUT_X_MARGIN; - static const long LAYOUT_Y_MARGIN; - static const long MARGIN_BETWEEN_BUTTONS; - - // Split the message in lines putting them into the array and calculating - // the maximum line width/height which is returned as wxSize. - wxSize SplitTextMessage(const wxString& message, wxArrayString *lines); - - // Creates the (possibly multiline) message, assuming each line has the - // size sizeText (which can be retrieved from SplitTextMessage). Returns - // the bottom border of the multiline text zone. - long CreateTextMessage(const wxArrayString& lines, - const wxPoint& posText, - const wxSize& sizeText); - - // Returns the preferred size for the buttons in the dialog - wxSize GetStandardButtonSize(bool hasCancel = TRUE); - - // Create the standard [Ok] and [Cancel] (if hasCancel) buttons centering - // them with respect to the dialog width wDialog at vertical position y. - // wButton and hButton is the size of the button (which can be retrieved - // from GetStandardButtonSize) - void CreateStandardButtons(long wDialog, - long y, - long wButton, - long hButton, - bool hasCancel = TRUE); - - // Returns the standard height of single line text ctrl (it's not the same - // as the height of just text which may be retrieved from - // wxGetCharHeight()) - long GetStandardTextHeight(); +#if wxUSE_STATTEXT // && wxUSE_TEXTCTRL + // splits text up at newlines and places the + // lines into a vertical wxBoxSizer + wxSizer *CreateTextSizer( const wxString &message ); +#endif // wxUSE_STATTEXT // && wxUSE_TEXTCTRL + +#if wxUSE_BUTTON + // places buttons into a horizontal wxBoxSizer + wxSizer *CreateButtonSizer( long flags ); + wxStdDialogButtonSizer *CreateStdDialogButtonSizer( long flags ); +#endif // wxUSE_BUTTON +protected: // the return code from modal dialog int m_returnCode; + + DECLARE_NO_COPY_CLASS(wxDialogBase) + DECLARE_EVENT_TABLE() + WX_DECLARE_CONTROL_CONTAINER(); }; -#if defined(__WXMSW__) - #include "wx/msw/dialog.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/dialog.h" -#elif defined(__WXGTK__) - #include "wx/gtk/dialog.h" -#elif defined(__WXQT__) - #include "wx/qt/dialog.h" -#elif defined(__WXMAC__) - #include "wx/mac/dialog.h" -#elif defined(__WXPM__) - #include "wx/os2/dialog.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/dialog.h" + +#if defined(__WXUNIVERSAL__) && !defined(__WXMICROWIN__) + #include "wx/univ/dialog.h" +#else + #if defined(__WXPALMOS__) + #include "wx/palmos/dialog.h" + #elif defined(__WXMSW__) + #include "wx/msw/dialog.h" + #elif defined(__WXMOTIF__) + #include "wx/motif/dialog.h" + #elif defined(__WXGTK__) + #include "wx/gtk/dialog.h" + #elif defined(__WXMAC__) + #include "wx/mac/dialog.h" + #elif defined(__WXCOCOA__) + #include "wx/cocoa/dialog.h" + #elif defined(__WXPM__) + #include "wx/os2/dialog.h" + #endif #endif #endif