home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / dialog2.cpp < prev    next >
C/C++ Source or Header  |  1994-05-26  |  3KB  |  112 lines

  1. #include <cstring.h>
  2. #include <windows.h>
  3. #include <owl\applicat.h>
  4. #include <owl\checkbox.h>
  5. #include <owl\dialog.h>
  6. #include <owl\edit.h>
  7. #include <owl\framewin.h>
  8. #include <owl\radiobut.h>
  9. #include <owl\window.h>
  10. #include <owl\window.rh>
  11.  
  12. #include "dialog2.h"
  13.  
  14. const MaxEditLen = 30;
  15.  
  16. struct TTransferBuffer
  17. {
  18.    char find[MaxEditLen];
  19.    char replace[MaxEditLen];
  20.    WORD global, seltext, csensitive, wholeword;
  21. };
  22.  
  23. class TSearchDialog : public TDialog
  24. {
  25. public:
  26.    TSearchDialog( TWindow *parent,
  27.                   TTransferBuffer *xfer,
  28.                   TModule *module = 0);
  29.  
  30. };
  31.  
  32. TSearchDialog::TSearchDialog( TWindow *parent,
  33.                               TTransferBuffer *xfer,
  34.                               TModule *module)
  35.    : TDialog(parent, "Search", module)
  36. {
  37.    new TEdit(this, IDE_FIND, MaxEditLen);
  38.    new TEdit(this, IDE_REPLACE, MaxEditLen);
  39.    new TRadioButton(this, IDR_GLOBAL);
  40.    new TRadioButton(this, IDR_SELTEXT);
  41.    new TCheckBox(this, IDC_CASE);
  42.    new TCheckBox(this, IDC_WHOLEWORD);
  43.    SetTransferBuffer(xfer);
  44. }
  45.  
  46. class TMyWindow : public TWindow
  47. {
  48. public:
  49.    TMyWindow(TWindow *parent = 0);
  50.  
  51. protected:
  52.    void CmExit();
  53.    void CmDialog();
  54.  
  55. private:
  56.    TTransferBuffer xfer;
  57.  
  58.    DECLARE_RESPONSE_TABLE(TMyWindow);
  59. };
  60. DEFINE_RESPONSE_TABLE1(TMyWindow, TWindow)
  61.    EV_COMMAND(CM_EXIT, CmExit),
  62.    EV_COMMAND(CM_DIALOG, CmDialog),
  63. END_RESPONSE_TABLE;
  64.  
  65. TMyWindow::TMyWindow(TWindow *parent)
  66.    : TWindow(parent)
  67. {
  68.    memset(&xfer, 0, sizeof(xfer));
  69.    lstrcpy(xfer.find, "DOS");
  70.    lstrcpy(xfer.replace, "Replace");
  71.    xfer.global = BF_CHECKED;
  72.    xfer.csensitive = BF_CHECKED;
  73.    xfer.wholeword = BF_CHECKED;
  74. }
  75.  
  76. void TMyWindow::CmExit()
  77. {
  78.    SendMessage(WM_CLOSE);
  79. }
  80.  
  81. void TMyWindow::CmDialog()
  82. {
  83.    if (TSearchDialog(this, &xfer).Execute() == IDOK)
  84.       {
  85.       string msg("Find String: ");
  86.       msg += xfer.find;
  87.       msg += "\n\nReplace String: ";
  88.       msg += xfer.replace;
  89.       MessageBox(msg.c_str(), "Dialog Box Data");
  90.       }
  91. }
  92.  
  93. class TDialogApp : public TApplication
  94. {
  95. public:
  96.    TDialogApp() : TApplication()
  97.       { nCmdShow = SW_SHOWMAXIMIZED; }
  98.  
  99.    void InitMainWindow()
  100.       {
  101.       SetMainWindow(new TFrameWindow(  0,
  102.                            "Modal Dialog Box Data Transfer Tester",
  103.                            new TMyWindow ));
  104.       GetMainWindow()->AssignMenu("MainMenu");
  105.       }
  106. };
  107.  
  108. int OwlMain(int, char *[])
  109. {
  110.    return TDialogApp().Run();
  111. }
  112.