Minimize diff for ports where features are not possible.
[wxWidgets.git] / samples / dialogs / dialogs.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: dialogs.h
3 // Purpose: Common dialogs demo
4 // Author: Julian Smart
5 // Modified by: ABX (2004) - adjustementd for conditional building
6 // Created: 04/01/98
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef __DIALOGSH__
13 #define __DIALOGSH__
14
15 #define USE_COLOURDLG_GENERIC \
16 ( \
17 wxUSE_COLOURDLG && \
18 ( defined(__WXMSW__) || defined(__WXMAC__) ) && \
19 !defined(__WXUNIVERSAL__) \
20 )
21
22
23 #define USE_DIRDLG_GENERIC \
24 ( \
25 wxUSE_DIRDLG && \
26 ( defined(__WXMSW__) || defined(__WXMAC__) ) && \
27 !defined(__WXUNIVERSAL__) \
28 )
29
30 #define USE_FILEDLG_GENERIC \
31 ( \
32 wxUSE_FILEDLG && \
33 ( defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXPM__) ) && \
34 !defined(__WXUNIVERSAL__) \
35 )
36
37 #define USE_FONTDLG_GENERIC \
38 ( \
39 wxUSE_FONTDLG && \
40 ( defined(__WXMSW__) || defined(__WXPM__) ) && \
41 !defined(__WXUNIVERSAL__) \
42 )
43
44
45 #define USE_MODAL_PRESENTATION \
46 ( \
47 defined(__WXMSW__) || \
48 defined(__WXMAC__) || \
49 defined(__WXGTK__) || \
50 defined(__WXPM__) \
51 )
52
53 // Define a new application type
54 class MyApp: public wxApp
55 {
56 public:
57 bool OnInit();
58
59 wxFont m_canvasFont;
60 wxColour m_canvasTextColour;
61 };
62
63 #if USE_MODAL_PRESENTATION
64
65 // A custom modeless dialog
66 class MyModelessDialog : public wxDialog
67 {
68 public:
69 MyModelessDialog(wxWindow *parent);
70
71 void OnButton(wxCommandEvent& event);
72 void OnClose(wxCloseEvent& event);
73
74 private:
75 DECLARE_EVENT_TABLE()
76 };
77
78 // A custom modal dialog
79 class MyModalDialog : public wxDialog
80 {
81 public:
82 MyModalDialog(wxWindow *parent);
83
84 void OnButton(wxCommandEvent& event);
85
86 private:
87 wxButton *m_btnModal,
88 *m_btnModeless,
89 *m_btnDelete;
90
91 DECLARE_EVENT_TABLE()
92 };
93
94 #endif // USE_MODAL_PRESENTATION
95
96 // Define a new frame type
97 class MyFrame: public wxFrame
98 {
99 public:
100 MyFrame(wxWindow *parent, const wxString& title);
101
102 void MessageBox(wxCommandEvent& event);
103
104 #if wxUSE_COLOURDLG
105 void ChooseColour(wxCommandEvent& event);
106 #endif // wxUSE_COLOURDLG
107
108 #if wxUSE_FONTDLG
109 void ChooseFont(wxCommandEvent& event);
110 #endif // wxUSE_FONTDLG
111
112 #if wxUSE_LOG_DIALOG
113 void LogDialog(wxCommandEvent& event);
114 #endif // wxUSE_LOG_DIALOG
115
116 #if wxUSE_CHOICEDLG
117 void SingleChoice(wxCommandEvent& event);
118 void MultiChoice(wxCommandEvent& event);
119 #endif // wxUSE_CHOICEDLG
120
121 #if wxUSE_TEXTDLG
122 void TextEntry(wxCommandEvent& event);
123 void PasswordEntry(wxCommandEvent& event);
124 #endif // wxUSE_TEXTDLG
125
126 #if wxUSE_NUMBERDLG
127 void NumericEntry(wxCommandEvent& event);
128 #endif // wxUSE_NUMBERDLG
129
130 #if wxUSE_FILEDLG
131 void FileOpen(wxCommandEvent& event);
132 void FileOpen2(wxCommandEvent& event);
133 void FilesOpen(wxCommandEvent& event);
134 void FileSave(wxCommandEvent& event);
135 #endif // wxUSE_FILEDLG
136
137 #if USE_FILEDLG_GENERIC
138 void FileOpenGeneric(wxCommandEvent& event);
139 void FilesOpenGeneric(wxCommandEvent& event);
140 void FileSaveGeneric(wxCommandEvent& event);
141 #endif // USE_FILEDLG_GENERIC
142
143 #if wxUSE_DIRDLG
144 void DirChoose(wxCommandEvent& event);
145 void DirChooseNew(wxCommandEvent& event);
146 #endif // wxUSE_DIRDLG
147
148 #if USE_DIRDLG_GENERIC
149 void GenericDirChoose(wxCommandEvent& event);
150 #endif // USE_DIRDLG_GENERIC
151
152 #if wxUSE_STARTUP_TIPS
153 void ShowTip(wxCommandEvent& event);
154 #endif // wxUSE_STARTUP_TIPS
155
156 #if USE_MODAL_PRESENTATION
157 void ModalDlg(wxCommandEvent& event);
158 void ModelessDlg(wxCommandEvent& event);
159 #endif // USE_MODAL_PRESENTATION
160
161 #if wxUSE_PROGRESSDLG
162 void ShowProgress(wxCommandEvent& event);
163 #endif // wxUSE_PROGRESSDLG
164
165 #if wxUSE_BUSYINFO
166 void ShowBusyInfo(wxCommandEvent& event);
167 #endif // wxUSE_BUSYINFO
168
169 #if wxUSE_FINDREPLDLG
170 void ShowFindDialog(wxCommandEvent& event);
171 void ShowReplaceDialog(wxCommandEvent& event);
172 void OnFindDialog(wxFindDialogEvent& event);
173 #endif // wxUSE_FINDREPLDLG
174
175 #if USE_COLOURDLG_GENERIC
176 void ChooseColourGeneric(wxCommandEvent& event);
177 #endif // USE_COLOURDLG_GENERIC
178
179 #if USE_FONTDLG_GENERIC
180 void ChooseFontGeneric(wxCommandEvent& event);
181 #endif // USE_FONTDLG_GENERIC
182
183 void OnExit(wxCommandEvent& event);
184
185 private:
186 #if wxUSE_DIRDLG
187 void DoDirChoose(int style);
188 #endif // wxUSE_DIRDLG
189
190 #if USE_MODAL_PRESENTATION
191 MyModelessDialog *m_dialog;
192 #endif // USE_MODAL_PRESENTATION
193
194 #if wxUSE_FINDREPLDLG
195 wxFindReplaceData m_findData;
196
197 wxFindReplaceDialog *m_dlgFind,
198 *m_dlgReplace;
199 #endif // wxUSE_FINDREPLDLG
200
201 wxColourData m_clrData;
202
203 DECLARE_EVENT_TABLE()
204 };
205
206 class MyCanvas: public wxScrolledWindow
207 {
208 public:
209 MyCanvas(wxWindow *parent) :
210 wxScrolledWindow(parent,wxID_ANY,wxDefaultPosition,wxDefaultSize,wxNO_FULL_REPAINT_ON_RESIZE) { }
211
212 void OnPaint(wxPaintEvent& event);
213
214 DECLARE_EVENT_TABLE()
215 };
216
217
218 // Menu IDs
219 enum
220 {
221 DIALOGS_CHOOSE_COLOUR = wxID_HIGHEST,
222 DIALOGS_CHOOSE_COLOUR_GENERIC,
223 DIALOGS_CHOOSE_FONT,
224 DIALOGS_CHOOSE_FONT_GENERIC,
225 DIALOGS_MESSAGE_BOX,
226 DIALOGS_SINGLE_CHOICE,
227 DIALOGS_MULTI_CHOICE,
228 DIALOGS_TEXT_ENTRY,
229 DIALOGS_PASSWORD_ENTRY,
230 DIALOGS_FILE_OPEN,
231 DIALOGS_FILE_OPEN2,
232 DIALOGS_FILES_OPEN,
233 DIALOGS_FILE_SAVE,
234 DIALOGS_FILE_OPEN_GENERIC,
235 DIALOGS_FILES_OPEN_GENERIC,
236 DIALOGS_FILE_SAVE_GENERIC,
237 DIALOGS_DIR_CHOOSE,
238 DIALOGS_DIRNEW_CHOOSE,
239 DIALOGS_GENERIC_DIR_CHOOSE,
240 DIALOGS_TIP,
241 DIALOGS_NUM_ENTRY,
242 DIALOGS_LOG_DIALOG,
243 DIALOGS_MODAL,
244 DIALOGS_MODELESS,
245 DIALOGS_MODELESS_BTN,
246 DIALOGS_PROGRESS,
247 DIALOGS_BUSYINFO,
248 DIALOGS_FIND,
249 DIALOGS_REPLACE
250 };
251
252 #endif
253