1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/msw/dialog.h 
   3 // Purpose:     wxDialog class 
   4 // Author:      Julian Smart 
   8 // Copyright:   (c) Julian Smart 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  16     #pragma interface "dialog.h" 
  21 WXDLLEXPORT_DATA(extern const wxChar
*) wxDialogNameStr
; 
  23 class WXDLLEXPORT wxWindowDisabler
; 
  26 class WXDLLEXPORT wxDialog 
: public wxDialogBase
 
  29     wxDialog() { Init(); } 
  31     // Constructor with a modal flag, but no window id - the old convention 
  32     wxDialog(wxWindow 
*parent
, 
  33              const wxString
& title
, bool modal
, 
  34              int x 
= -1, int y
= -1, int width 
= 500, int height 
= 500, 
  35              long style 
= wxDEFAULT_DIALOG_STYLE
, 
  36              const wxString
& name 
= wxDialogNameStr
) 
  38         long modalStyle 
= modal 
? wxDIALOG_MODAL 
: wxDIALOG_MODELESS 
; 
  39         Create(parent
, -1, title
, wxPoint(x
, y
), wxSize(width
, height
), 
  40                style 
| modalStyle
, name
); 
  43     // Constructor with no modal flag - the new convention. 
  44     wxDialog(wxWindow 
*parent
, wxWindowID id
, 
  45              const wxString
& title
, 
  46              const wxPoint
& pos 
= wxDefaultPosition
, 
  47              const wxSize
& size 
= wxDefaultSize
, 
  48              long style 
= wxDEFAULT_DIALOG_STYLE
, 
  49              const wxString
& name 
= wxDialogNameStr
) 
  51         Create(parent
, id
, title
, pos
, size
, style
, name
); 
  54     bool Create(wxWindow 
*parent
, wxWindowID id
, 
  55                 const wxString
& title
, 
  56                 const wxPoint
& pos 
= wxDefaultPosition
, 
  57                 const wxSize
& size 
= wxDefaultSize
, 
  58                 long style 
= wxDEFAULT_DIALOG_STYLE
, 
  59                 const wxString
& name 
= wxDialogNameStr
); 
  63     void SetModal(bool flag
); 
  64     virtual bool IsModal() const; 
  66     // For now, same as Show(TRUE) but returns return code 
  67     virtual int ShowModal(); 
  69     // may be called to terminate the dialog with the given return code 
  70     virtual void EndModal(int retCode
); 
  72     // returns TRUE if we're in a modal loop 
  73     bool IsModalShowing() const; 
  75     // implementation only from now on 
  76     // ------------------------------- 
  78     // override some base class virtuals 
  79     virtual bool Show(bool show 
= TRUE
); 
  84     void OnCharHook(wxKeyEvent
& event
); 
  85     void OnCloseWindow(wxCloseEvent
& event
); 
  88     void OnOK(wxCommandEvent
& event
); 
  89     void OnApply(wxCommandEvent
& event
); 
  90     void OnCancel(wxCommandEvent
& event
); 
  92     // Responds to colour changes 
  93     void OnSysColourChanged(wxSysColourChangedEvent
& event
); 
  96     long MSWWindowProc(WXUINT message
, WXWPARAM wParam
, WXLPARAM lParam
); 
  99     virtual WXHBRUSH 
OnCtlColor(WXHDC pDC
, WXHWND pWnd
, WXUINT nCtlColor
, 
 100                                 WXUINT message
, WXWPARAM wParam
, WXLPARAM lParam
); 
 101 #endif // wxUSE_CTL3D 
 104     // find the window to use as parent for this dialog if none has been 
 105     // specified explicitly by the user 
 108     wxWindow 
*FindSuitableParent() const; 
 110     // show modal dialog and enter modal loop 
 113     // common part of all ctors 
 117     wxWindow 
*m_oldFocus
; 
 119     // while we are showing a modal dialog we disable the other windows using 
 121     wxWindowDisabler 
*m_windowDisabler
; 
 123     DECLARE_DYNAMIC_CLASS(wxDialog
) 
 124     DECLARE_EVENT_TABLE() 
 125     DECLARE_NO_COPY_CLASS(wxDialog
)