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