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
);
82 void OnCharHook(wxKeyEvent
& event
);
83 void OnCloseWindow(wxCloseEvent
& event
);
86 void OnOK(wxCommandEvent
& event
);
87 void OnApply(wxCommandEvent
& event
);
88 void OnCancel(wxCommandEvent
& event
);
90 // Responds to colour changes
91 void OnSysColourChanged(wxSysColourChangedEvent
& event
);
94 long MSWWindowProc(WXUINT message
, WXWPARAM wParam
, WXLPARAM lParam
);
97 virtual WXHBRUSH
OnCtlColor(WXHDC pDC
, WXHWND pWnd
, WXUINT nCtlColor
,
98 WXUINT message
, WXWPARAM wParam
, WXLPARAM lParam
);
102 // find the window to use as parent for this dialog if none has been
103 // specified explicitly by the user
106 wxWindow
*FindSuitableParent() const;
108 // show modal dialog and enter modal loop
111 // common part of all ctors
115 wxWindow
*m_oldFocus
;
117 // while we are showing a modal dialog we disable the other windows using
119 wxWindowDisabler
*m_windowDisabler
;
121 DECLARE_DYNAMIC_CLASS(wxDialog
)
122 DECLARE_EVENT_TABLE()
123 DECLARE_NO_COPY_CLASS(wxDialog
)