1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        dialogs.h
3 // Purpose:     Common dialogs demo
4 // Author:      Julian Smart, Vadim Zeitlin, ABX
5 // Created:     04/01/98
6 // Copyright:   (c) Julian Smart
7 //              (c) 2004 ABX
8 //              (c) Vadim Zeitlin
9 // Licence:     wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11 
12 /*
13 This sample shows how to use the common dialogs available from wxWidgets.
14 It also shows that generic implementations of common dialogs can be exchanged
15 with native dialogs and can coexist in one application. The need for generic
16 dialogs addition is recognized thanks to setup of below USE_*** setting. Their
17 combinations reflects conditions of makefiles and project files to avoid unresolved
18 references during linking. For now some generic dialogs are added in static builds
19 of MSW, MAC and OS2
20 */
21 
22 #ifndef __DIALOGSH__
23 #define __DIALOGSH__
24 
25 #ifdef __WXUNIVERSAL__
26     #define USE_WXUNIVERSAL 1
27 #else
28     #define USE_WXUNIVERSAL 0
29 #endif
30 
31 #ifdef WXUSINGDLL
32     #define USE_DLL 1
33 #else
34     #define USE_DLL 0
35 #endif
36 
37 #if defined(__WXMSW__)
38     #define USE_WXMSW 1
39 #else
40     #define USE_WXMSW 0
41 #endif
42 
43 #ifdef __WXMAC__
44     #define USE_WXMAC 1
45 #else
46     #define USE_WXMAC 0
47 #endif
48 
49 #if USE_NATIVE_FONT_DIALOG_FOR_MACOSX
50     #define USE_WXMACFONTDLG 1
51 #else
52     #define USE_WXMACFONTDLG 0
53 #endif
54 
55 #ifdef __WXGTK__
56     #define USE_WXGTK 1
57 #else
58     #define USE_WXGTK 0
59 #endif
60 
61 #define USE_GENERIC_DIALOGS (!USE_WXUNIVERSAL && !USE_DLL)
62 
63 #define USE_COLOURDLG_GENERIC \
64     ((USE_WXMSW || USE_WXMAC) && USE_GENERIC_DIALOGS && wxUSE_COLOURDLG)
65 #define USE_DIRDLG_GENERIC \
66     ((USE_WXMSW || USE_WXMAC) && USE_GENERIC_DIALOGS && wxUSE_DIRDLG)
67 #define USE_FILEDLG_GENERIC \
68     ((USE_WXMSW || USE_WXMAC) && USE_GENERIC_DIALOGS  && wxUSE_FILEDLG)
69 #define USE_FONTDLG_GENERIC \
70     ((USE_WXMSW || USE_WXMACFONTDLG) && USE_GENERIC_DIALOGS && wxUSE_FONTDLG)
71 
72 // Turn USE_MODAL_PRESENTATION to 0 if there is any reason for not presenting difference
73 // between modal and modeless dialogs (ie. not implemented it in your port yet)
74 #if !wxUSE_BOOKCTRL
75     #define USE_MODAL_PRESENTATION 0
76 #else
77     #define USE_MODAL_PRESENTATION 1
78 #endif
79 
80 
81 // Turn USE_SETTINGS_DIALOG to 0 if supported
82 #if wxUSE_BOOKCTRL
83     #define USE_SETTINGS_DIALOG 1
84 #else
85     #define USE_SETTINGS_DIALOG 0
86 #endif
87 
88 #if wxUSE_LOG
89 
90 // Custom application traits class which we use to override the default log
91 // target creation
92 class MyAppTraits : public wxGUIAppTraits
93 {
94 public:
95     virtual wxLog *CreateLogTarget() wxOVERRIDE;
96 };
97 
98 #endif // wxUSE_LOG
99 
100 // Define a new application type
101 class MyApp: public wxApp
102 {
103 public:
MyApp()104     MyApp() { m_startupProgressStyle = -1; }
105 
106     virtual bool OnInit() wxOVERRIDE;
107 
108 #if wxUSE_CMDLINE_PARSER
109     virtual void OnInitCmdLine(wxCmdLineParser& parser) wxOVERRIDE;
110     virtual bool OnCmdLineParsed(wxCmdLineParser& parser) wxOVERRIDE;
111 #endif // wxUSE_CMDLINE_PARSER
112 
113 protected:
114 #if wxUSE_LOG
CreateTraits()115     virtual wxAppTraits *CreateTraits() wxOVERRIDE { return new MyAppTraits; }
116 #endif // wxUSE_LOG
117 
118 private:
119     // Flag set to a valid value if command line option "progress" is used,
120     // this allows testing of wxProgressDialog before the main event loop is
121     // started. If this option is not specified it is set to -1 by default
122     // meaning that progress dialog shouldn't be shown at all.
123     long m_startupProgressStyle;
124 };
125 
126 #if USE_MODAL_PRESENTATION
127 
128 // A custom modeless dialog
129 class MyModelessDialog : public wxDialog
130 {
131 public:
132     MyModelessDialog(wxWindow *parent);
133 
134     void OnButton(wxCommandEvent& event);
135     void OnClose(wxCloseEvent& event);
136 
137 private:
138     wxDECLARE_EVENT_TABLE();
139 };
140 
141 // A custom modal dialog
142 class MyModalDialog : public wxDialog
143 {
144 public:
145     MyModalDialog(wxWindow *parent);
146 
147     void OnButton(wxCommandEvent& event);
148 
149 private:
150     wxButton *m_btnModal,
151              *m_btnModeless,
152              *m_btnDelete;
153 
154     wxDECLARE_EVENT_TABLE();
155 };
156 
157 #endif // USE_MODAL_PRESENTATION
158 
159 // A class demonstrating CreateStdDialogButtonSizer()
160 class StdButtonSizerDialog : public wxDialog
161 {
162 public:
163     StdButtonSizerDialog(wxWindow *parent);
164 
165     void OnEvent(wxCommandEvent& event);
166 
167 private:
168     void EnableDisableControls();
169 
170     wxCheckBox *m_chkboxAffirmativeButton;
171     wxRadioButton *m_radiobtnOk,
172                   *m_radiobtnYes;
173 
174     wxCheckBox *m_chkboxDismissButton;
175     wxRadioButton *m_radiobtnClose,
176                   *m_radiobtnCancel;
177 
178     wxCheckBox *m_chkboxApply,
179                *m_chkboxNo,
180                *m_chkboxHelp,
181                *m_chkboxNoDefault;
182 
183     wxSizer *m_buttonsSizer;
184 
185     wxDECLARE_EVENT_TABLE();
186 };
187 
188 // Test harness for wxMessageDialog.
189 class TestMessageBoxDialog : public wxDialog
190 {
191 public:
192     TestMessageBoxDialog(wxWindow *parent);
193 
194     bool Create();
195 
196 protected:
GetBoxTitle()197     wxString GetBoxTitle() { return m_textTitle->GetValue(); }
GetMessage()198     wxString GetMessage() { return m_textMsg->GetValue(); }
199     long GetStyle();
200 
201     void PrepareMessageDialog(wxMessageDialogBase &dlg);
202 
AddAdditionalTextOptions(wxSizer * WXUNUSED (sizer))203     virtual void AddAdditionalTextOptions(wxSizer *WXUNUSED(sizer)) { }
AddAdditionalFlags(wxSizer * WXUNUSED (sizer))204     virtual void AddAdditionalFlags(wxSizer *WXUNUSED(sizer)) { }
205 
206     void ShowResult(int res);
207 
208     void OnApply(wxCommandEvent& event);
209     void OnClose(wxCommandEvent& event);
210     void OnUpdateLabelUI(wxUpdateUIEvent& event);
211     void OnUpdateNoDefaultUI(wxUpdateUIEvent& event);
212 
213 private:
214     enum
215     {
216         Btn_Yes,
217         Btn_No,
218         Btn_Ok,
219         Btn_Cancel,
220         Btn_Help,
221         Btn_Max
222     };
223 
224     struct BtnInfo
225     {
226         int flag;
227         const char *name;
228     };
229 
230     static const BtnInfo ms_btnInfo[Btn_Max];
231 
232     enum
233     {
234         MsgDlgIcon_No,
235         MsgDlgIcon_None,
236         MsgDlgIcon_Info,
237         MsgDlgIcon_Question,
238         MsgDlgIcon_Warning,
239         MsgDlgIcon_Error,
240         MsgDlgIcon_AuthNeeded,
241         MsgDlgIcon_Max
242     };
243 
244     wxTextCtrl *m_textTitle,
245                *m_textMsg,
246                *m_textExtMsg;
247 
248     wxCheckBox *m_buttons[Btn_Max];
249     wxTextCtrl *m_labels[Btn_Max];
250 
251     wxRadioBox *m_icons;
252 
253     wxCheckBox *m_chkNoDefault,
254                *m_chkCentre;
255 
256     wxStaticText *m_labelResult;
257 
258     wxDECLARE_EVENT_TABLE();
259     wxDECLARE_NO_COPY_CLASS(TestMessageBoxDialog);
260 };
261 
262 #if wxUSE_RICHMSGDLG
263 class TestRichMessageDialog : public TestMessageBoxDialog
264 {
265 public:
266     TestRichMessageDialog(wxWindow *parent);
267 
268 protected:
269     // overrides method in base class
270     virtual void AddAdditionalTextOptions(wxSizer *sizer) wxOVERRIDE;
271     virtual void AddAdditionalFlags(wxSizer *sizer) wxOVERRIDE;
272 
273     void OnApply(wxCommandEvent& event);
274 
275 private:
276     wxTextCtrl *m_textCheckBox;
277     wxCheckBox *m_initialValueCheckBox;
278     wxTextCtrl *m_textDetailed;
279     wxTextCtrl *m_textFooter;
280     wxChoice *m_iconsFooter;
281 
282     wxDECLARE_EVENT_TABLE();
283 };
284 #endif // wxUSE_RICHMSGDLG
285 
286 class TestDefaultActionDialog: public wxDialog
287 {
288 public:
289     TestDefaultActionDialog( wxWindow *parent );
290 
291     void OnListBoxDClick(wxCommandEvent& event);
292     void OnDisableOK(wxCommandEvent& event);
293     void OnDisableCancel(wxCommandEvent& event);
294     void OnCatchListBoxDClick(wxCommandEvent& event);
295     void OnTextEnter(wxCommandEvent& event);
296 
297 private:
298     bool   m_catchListBoxDClick;
299 
300 private:
301     wxDECLARE_EVENT_TABLE();
302 };
303 
304 
305 #if USE_SETTINGS_DIALOG
306 
307 // Struct containing properties edited by SettingsDialog.
308 struct SettingsData
309 {
SettingsDataSettingsData310     SettingsData() :
311         m_loadLastOnStartup(false),
312         m_autoSaveInterval(1),
313         m_showToolTips(false),
314         m_applyTo(0),
315         m_bgStyle(0),
316         m_titleFontSize(10)
317     {
318     }
319 
320     bool m_loadLastOnStartup;
321     int m_autoSaveInterval;
322     bool m_showToolTips;
323     int m_applyTo;
324     int m_bgStyle;
325     int m_titleFontSize;
326 };
327 
328 // Property sheet dialog
329 class SettingsDialog: public wxPropertySheetDialog
330 {
331     wxDECLARE_CLASS(SettingsDialog);
332 public:
333     SettingsDialog(wxWindow* parent, SettingsData& settingsData, int dialogType);
334     ~SettingsDialog();
335 
336     wxPanel* CreateGeneralSettingsPage(wxWindow* parent);
337     wxPanel* CreateAestheticSettingsPage(wxWindow* parent);
338 
339 protected:
340 
341     enum {
342         ID_SHOW_TOOLTIPS = 100,
343         ID_AUTO_SAVE,
344         ID_AUTO_SAVE_MINS,
345         ID_LOAD_LAST_PROJECT,
346 
347         ID_APPLY_SETTINGS_TO,
348         ID_BACKGROUND_STYLE,
349         ID_FONT_SIZE
350     };
351 
352     wxImageList*    m_imageList;
353 
354     SettingsData& m_settingsData;
355 
356     wxDECLARE_EVENT_TABLE();
357 };
358 
359 #endif // USE_SETTINGS_DIALOG
360 
361 // Define a new frame type
362 class MyFrame: public wxFrame
363 {
364 public:
365     MyFrame(const wxString& title);
366     virtual ~MyFrame();
367 
368 #if wxUSE_MSGDLG
369     void MessageBox(wxCommandEvent& event);
370     void MessageBoxDialog(wxCommandEvent& event);
371     void MessageBoxDialogWindowModal(wxCommandEvent& event);
372     void MessageBoxDialogWindowModalClosed(wxWindowModalDialogEvent& event);
373     void MessageBoxInfo(wxCommandEvent& event);
374     void MessageBoxWindowModal(wxCommandEvent& event);
375     void MessageBoxWindowModalClosed(wxWindowModalDialogEvent& event);
376 #endif // wxUSE_MSGDLG
377 #if wxUSE_RICHMSGDLG
378     void RichMessageDialog(wxCommandEvent& event);
379 #endif // wxUSE_RICHMSGDLG
380 
381 #if wxUSE_COLOURDLG
382     void ChooseColour(wxCommandEvent& event);
383     void GetColour(wxCommandEvent& event);
384 #endif // wxUSE_COLOURDLG
385 
386 #if wxUSE_FONTDLG
387     void ChooseFont(wxCommandEvent& event);
388 #endif // wxUSE_FONTDLG
389 
390 #if wxUSE_LOG_DIALOG
391     void LogDialog(wxCommandEvent& event);
392 #endif // wxUSE_LOG_DIALOG
393 
394 #if wxUSE_INFOBAR
395     void InfoBarSimple(wxCommandEvent& event);
396     void InfoBarSimpleWrapped(wxCommandEvent &event);
397     void InfoBarAdvanced(wxCommandEvent& event);
398 #endif // wxUSE_INFOBAR
399 
400 #if wxUSE_CHOICEDLG
401     void SingleChoice(wxCommandEvent& event);
402     void MultiChoice(wxCommandEvent& event);
403 #endif // wxUSE_CHOICEDLG
404 
405 #if wxUSE_REARRANGECTRL
406     void Rearrange(wxCommandEvent& event);
407 #endif // wxUSE_REARRANGECTRL
408 
409 #if wxUSE_ADDREMOVECTRL
410     void AddRemove(wxCommandEvent& event);
411 #endif // wxUSE_ADDREMOVECTRL
412 
413 #if wxUSE_TEXTDLG
414     void LineEntry(wxCommandEvent& event);
415     void TextEntry(wxCommandEvent& event);
416     void PasswordEntry(wxCommandEvent& event);
417 #endif // wxUSE_TEXTDLG
418 
419 #ifdef wxUSE_CREDENTIALDLG
420     void CredentialEntry(wxCommandEvent& event);
421 #endif // wxUSE_CREDENTIALDLG
422 
423 #if wxUSE_NUMBERDLG
424     void NumericEntry(wxCommandEvent& event);
425 #endif // wxUSE_NUMBERDLG
426 
427 #if wxUSE_FILEDLG
428     void FileOpen(wxCommandEvent& event);
429     void FileOpen2(wxCommandEvent& event);
430     void FilesOpen(wxCommandEvent& event);
431     void FilesOpenWindowModal(wxCommandEvent& event);
432     void FilesOpenWindowModalClosed(wxWindowModalDialogEvent& event);
433     void FileSave(wxCommandEvent& event);
434     void FileSaveWindowModal(wxCommandEvent& event);
435     void FileSaveWindowModalClosed(wxWindowModalDialogEvent& event);
436     void MacToggleAlwaysShowTypes(wxCommandEvent& event);
437 #endif // wxUSE_FILEDLG
438 
439 #if USE_FILEDLG_GENERIC
440     void FileOpenGeneric(wxCommandEvent& event);
441     void FilesOpenGeneric(wxCommandEvent& event);
442     void FileSaveGeneric(wxCommandEvent& event);
443 #endif // USE_FILEDLG_GENERIC
444 
445 #if wxUSE_DIRDLG
446     void DirChoose(wxCommandEvent& event);
447     void DirChooseWindowModal(wxCommandEvent& event);
448     void DirChooseWindowModalClosed(wxWindowModalDialogEvent& event);
449     void DirChooseNew(wxCommandEvent& event);
450     void DirChooseMultiple(wxCommandEvent& event);
451 #endif // wxUSE_DIRDLG
452 
453 #if USE_DIRDLG_GENERIC
454     void GenericDirChoose(wxCommandEvent& event);
455 #endif // USE_DIRDLG_GENERIC
456 
457 #if wxUSE_STARTUP_TIPS
458     void ShowTip(wxCommandEvent& event);
459 #endif // wxUSE_STARTUP_TIPS
460 
461 #if USE_MODAL_PRESENTATION
462     void ModalDlg(wxCommandEvent& event);
463 #endif // USE_MODAL_PRESENTATION
464     void ModelessDlg(wxCommandEvent& event);
465     void DlgCenteredScreen(wxCommandEvent& event);
466     void DlgCenteredParent(wxCommandEvent& event);
467     void MiniFrame(wxCommandEvent& event);
468     void DlgOnTop(wxCommandEvent& event);
469 
470 #if wxUSE_PROGRESSDLG
471     void ShowProgress(wxCommandEvent& event);
472 #ifdef wxHAS_NATIVE_PROGRESSDIALOG
473     void ShowProgressGeneric(wxCommandEvent& event);
474 #endif // wxHAS_NATIVE_PROGRESSDIALOG
475     void DoShowProgress(wxGenericProgressDialog& dialog);
476 #endif // wxUSE_PROGRESSDLG
477     void ShowAppProgress(wxCommandEvent& event);
478 
479 #if wxUSE_ABOUTDLG
480     void ShowSimpleAboutDialog(wxCommandEvent& event);
481     void ShowFancyAboutDialog(wxCommandEvent& event);
482     void ShowFullAboutDialog(wxCommandEvent& event);
483     void ShowCustomAboutDialog(wxCommandEvent& event);
484 #endif // wxUSE_ABOUTDLG
485 
486 #if wxUSE_BUSYINFO
487     void ShowBusyInfo(wxCommandEvent& event);
488     void ShowRichBusyInfo(wxCommandEvent& event);
489 #endif // wxUSE_BUSYINFO
490 
491 #if wxUSE_FINDREPLDLG
492     void ShowFindDialog(wxCommandEvent& event);
493     void ShowReplaceDialog(wxCommandEvent& event);
494     void OnFindDialog(wxFindDialogEvent& event);
495 #endif // wxUSE_FINDREPLDLG
496 
497 #if USE_COLOURDLG_GENERIC
498     void ChooseColourGeneric(wxCommandEvent& event);
499 #endif // USE_COLOURDLG_GENERIC
500 
501 #if USE_FONTDLG_GENERIC
502     void ChooseFontGeneric(wxCommandEvent& event);
503 #endif // USE_FONTDLG_GENERIC
504 
505     void OnPropertySheet(wxCommandEvent& event);
506 
507     void OnRequestUserAttention(wxCommandEvent& event);
508 #if wxUSE_NOTIFICATION_MESSAGE
509     void OnNotifMsg(wxCommandEvent& event);
510 #endif // wxUSE_NOTIFICATION_MESSAGE
511 
512 #if wxUSE_RICHTOOLTIP
513     void OnRichTipDialog(wxCommandEvent& event);
514 #endif // wxUSE_RICHTOOLTIP
515 
516     void OnStandardButtonsSizerDialog(wxCommandEvent& event);
517 
518     void OnTestDefaultActionDialog(wxCommandEvent& event);
519     void OnModalHook(wxCommandEvent& event);
520 
521     void OnExit(wxCommandEvent& event);
522 
523 private:
524 #if wxUSE_COLOURDLG
525     void OnColourChanged(wxColourDialogEvent& event);
526     void DoApplyColour(const wxColour& colour);
527 #endif // wxUSE_COLOURDLG
528 
529 #if wxUSE_DIRDLG
530     void DoDirChoose(int style);
531 #endif // wxUSE_DIRDLG
532 
533 #if USE_MODAL_PRESENTATION
534     MyModelessDialog *m_dialog;
535 #endif // USE_MODAL_PRESENTATION
536 
537 #if wxUSE_FINDREPLDLG
538     wxFindReplaceData m_findData;
539 
540     wxFindReplaceDialog *m_dlgFind,
541                         *m_dlgReplace;
542 #endif // wxUSE_FINDREPLDLG
543 
544     wxColourData m_clrData;
545 
546     // just a window which we use to show the effect of font/colours selection
547     wxWindow *m_canvas;
548 
549 #if wxUSE_INFOBAR
550     void OnInfoBarRedo(wxCommandEvent& event);
551 
552     wxInfoBar *m_infoBarSimple,
553               *m_infoBarAdvanced;
554 #endif // wxUSE_INFOBAR
555 
556 #if USE_SETTINGS_DIALOG
557     SettingsData m_settingsData;
558 #endif // USE_SETTINGS_DIALOG
559 
560 #if wxUSE_TIPWINDOW
561     void OnShowTip(wxCommandEvent& event);
562     void OnUpdateShowTipUI(wxUpdateUIEvent& event);
563 
564     wxTipWindow *m_tipWindow;
565 #endif // wxUSE_TIPWINDOW
566 
567     wxDECLARE_EVENT_TABLE();
568 };
569 
570 class MyCanvas: public wxScrolledWindow
571 {
572 public:
MyCanvas(wxWindow * parent)573     MyCanvas(wxWindow *parent) : wxScrolledWindow(parent, wxID_ANY)
574     {
575         SetForegroundColour(*wxBLACK);
576         SetBackgroundColour(*wxWHITE);
577         SetFont(*wxNORMAL_FONT);
578     }
579 
580 private:
581     void OnPaint(wxPaintEvent& event);
582 
583     wxDECLARE_EVENT_TABLE();
584 };
585 
586 
587 // Menu IDs
588 enum
589 {
590     DIALOGS_CHOOSE_COLOUR = wxID_HIGHEST,
591     DIALOGS_CHOOSE_COLOUR_ALPHA,
592     DIALOGS_GET_COLOUR,
593     DIALOGS_CHOOSE_COLOUR_GENERIC,
594     DIALOGS_CHOOSE_COLOUR_GENERIC_ALPHA,
595     DIALOGS_CHOOSE_FONT,
596     DIALOGS_CHOOSE_FONT_GENERIC,
597     DIALOGS_MESSAGE_BOX,
598     DIALOGS_MESSAGE_BOX_WINDOW_MODAL,
599     DIALOGS_MESSAGE_DIALOG,
600     DIALOGS_MESSAGE_DIALOG_WINDOW_MODAL,
601     DIALOGS_MESSAGE_BOX_WXINFO,
602     DIALOGS_RICH_MESSAGE_DIALOG,
603     DIALOGS_SINGLE_CHOICE,
604     DIALOGS_MULTI_CHOICE,
605     DIALOGS_REARRANGE,
606     DIALOGS_ADDREMOVE,
607     DIALOGS_LINE_ENTRY,
608     DIALOGS_TEXT_ENTRY,
609     DIALOGS_PASSWORD_ENTRY,
610     DIALOGS_CREDENTIAL_ENTRY,
611     DIALOGS_FILE_OPEN,
612     DIALOGS_FILE_OPEN2,
613     DIALOGS_FILES_OPEN,
614     DIALOGS_FILES_OPEN_WINDOW_MODAL,
615     DIALOGS_FILE_SAVE,
616     DIALOGS_FILE_SAVE_WINDOW_MODAL,
617     DIALOGS_FILE_OPEN_GENERIC,
618     DIALOGS_FILES_OPEN_GENERIC,
619     DIALOGS_FILE_SAVE_GENERIC,
620     DIALOGS_MAC_TOGGLE_ALWAYS_SHOW_TYPES,
621     DIALOGS_DIR_CHOOSE,
622     DIALOGS_DIR_CHOOSE_WINDOW_MODAL,
623     DIALOGS_DIRNEW_CHOOSE,
624     DIALOGS_DIRMULTIPLE_CHOOSE,
625     DIALOGS_GENERIC_DIR_CHOOSE,
626     DIALOGS_TIP,
627     DIALOGS_NUM_ENTRY,
628     DIALOGS_LOG_DIALOG,
629     DIALOGS_INFOBAR_SIMPLE,
630     DIALOGS_INFOBAR_SIMPLE_WRAPPED,
631     DIALOGS_INFOBAR_ADVANCED,
632     DIALOGS_MODAL,
633     DIALOGS_MODELESS,
634     DIALOGS_CENTRE_SCREEN,
635     DIALOGS_CENTRE_PARENT,
636     DIALOGS_MINIFRAME,
637     DIALOGS_ONTOP,
638     DIALOGS_MODELESS_BTN,
639     DIALOGS_PROGRESS,
640     DIALOGS_PROGRESS_GENERIC,
641     DIALOGS_APP_PROGRESS,
642     DIALOGS_ABOUTDLG_SIMPLE,
643     DIALOGS_ABOUTDLG_FANCY,
644     DIALOGS_ABOUTDLG_FULL,
645     DIALOGS_ABOUTDLG_CUSTOM,
646     DIALOGS_BUSYINFO,
647     DIALOGS_BUSYINFO_RICH,
648     DIALOGS_FIND,
649     DIALOGS_REPLACE,
650     DIALOGS_REQUEST,
651     DIALOGS_NOTIFY_MSG,
652     DIALOGS_SHOW_TIP,
653     DIALOGS_RICHTIP_DIALOG,
654     DIALOGS_PROPERTY_SHEET,
655     DIALOGS_PROPERTY_SHEET_TOOLBOOK,
656     DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK,
657     DIALOGS_STANDARD_BUTTON_SIZER_DIALOG,
658     DIALOGS_TEST_DEFAULT_ACTION,
659     DIALOGS_MODAL_HOOK
660 };
661 
662 #endif
663 
664