home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / button.pak / BUTTONX.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  4KB  |  145 lines

  1. // ---------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (C) 1991, 1995 by Borland International, All Rights Reserved
  4. //
  5. // Example illustrating PushButtons, Checkboxes, RadioButtons and GroupBoxes
  6. // Also illustrates the GroupBox notifications provided by ObjectWindows.
  7. //----------------------------------------------------------------------------
  8. #include <owl/pch.h>
  9. #include <owl/applicat.h>
  10. #include <owl/framewin.h>
  11. #include <owl/button.h>
  12. #include <owl/checkbox.h>
  13. #include <owl/radiobut.h>
  14. #include <owl/groupbox.h>
  15.  
  16. //
  17. // IDs of Controls
  18. //
  19. const uint16 ID_BUTTON   = 101;
  20. const uint16 ID_RBUTTON1 = 102;
  21. const uint16 ID_RBUTTON2 = 103;
  22. const uint16 ID_CHECKBOX = 104;
  23. const uint16 ID_GROUPBOX = 105;
  24.  
  25. //
  26. // class TTestWindow
  27. // ~~~~~ ~~~~~~~~~~~
  28. //  TTestWindow is used as the client of a FrameWindow
  29. //
  30. class TTestWindow : public TWindow {
  31.   public:
  32.     TTestWindow();
  33.  
  34.     // Message Handlers
  35.     //
  36.     void  HandleButtonMsg();      // Handles notifications from ID_BUTTON
  37.     void  HandleCheckBoxMsg();    // Handles notifications from ID_CHECKBOX
  38.     void  HandleGroupBoxMsg(uint);// Handles notifications from ID_GROUPBOX
  39.  
  40.   protected:
  41.     // C++ Objects behind the controls
  42.     //
  43.     TRadioButton* RButton1;
  44.     TRadioButton* RButton2;
  45.     TCheckBox*    CheckBox;
  46.     TGroupBox*    GroupBox;
  47.  
  48.   DECLARE_RESPONSE_TABLE(TTestWindow);
  49. };
  50.  
  51.  
  52. DEFINE_RESPONSE_TABLE1(TTestWindow, TWindow)
  53.   EV_COMMAND(ID_BUTTON, HandleButtonMsg),
  54.   EV_COMMAND(ID_CHECKBOX, HandleCheckBoxMsg),
  55.   EV_CHILD_NOTIFY_ALL_CODES(ID_GROUPBOX, HandleGroupBoxMsg),
  56. END_RESPONSE_TABLE;
  57.  
  58. //
  59. // Constructor of TTestWindow
  60. //
  61. //  The constructor instantiates C++ objects representing PushButtons,
  62. //  CheckBoxes, RadioButtons and GroupBoxes.
  63. //
  64. TTestWindow::TTestWindow()
  65. :
  66.   TWindow(0, 0, 0)
  67. {
  68.   new TButton(this, ID_BUTTON, "State of Check Box", 88, 48, 296, 24, false);
  69.   CheckBox = new TCheckBox(this, ID_CHECKBOX, "Check Box Text", 158, 12, 150, 26, 0);
  70.   GroupBox = new TGroupBox(this, ID_GROUPBOX, "Group Box", 158, 102, 176, 108);
  71.   RButton1 = new TRadioButton(this, ID_RBUTTON1, "Radio Button 1",
  72.                               174, 128, 138, 24, GroupBox);
  73.   RButton2 = new TRadioButton(this, ID_RBUTTON2, "Radio Button 2",
  74.                               174, 162, 138, 24, GroupBox);
  75.   SetBkgndColor( TColor::Sys3dFace );
  76. }
  77.  
  78. //
  79. // Handles BN_CLICK notifications from the PushButton and displays
  80. // a MessageBox reporting in the state of the CheckBox.
  81. //
  82. void
  83. TTestWindow::HandleButtonMsg()
  84. {
  85.   if (CheckBox->GetCheck() == BF_CHECKED)
  86.     MessageBox("Checked", "The check box is:", MB_OK);
  87.   else
  88.     MessageBox("Unchecked", "The check box is:", MB_OK);
  89. }
  90.  
  91. //
  92. // Handles BN_CLICK notifications from the CheckBox and displays
  93. // a MessageBox reporting that te CheckBox has been toggle
  94. //
  95. void
  96. TTestWindow::HandleCheckBoxMsg()
  97. {
  98.   MessageBox("Toggled", "The check box has been:", MB_OK);
  99. }
  100.  
  101. //
  102. // Handles Notifications from the GroupBox and displays a MessageBox
  103. // reporting the currently selected RadioButton
  104. //
  105. void
  106. TTestWindow::HandleGroupBoxMsg(uint /* notifyCode */)
  107. {
  108.   char textBuff[20];
  109.  
  110.   if (RButton1->GetCheck() == BF_CHECKED)
  111.     RButton1->GetWindowText(textBuff, sizeof(textBuff));
  112.   else
  113.     RButton2->GetWindowText(textBuff, sizeof(textBuff));
  114.  
  115.   MessageBox(textBuff, "You have selected:", MB_OK);
  116. }
  117.  
  118.  
  119. //
  120. // class TTestApp
  121. // ~~~~~ ~~~~~~~~
  122. class TTestApp : public TApplication {
  123.   public:
  124.     TTestApp() : TApplication() {}
  125.     void InitMainWindow();
  126. };
  127.  
  128. //
  129. //
  130. //
  131. void
  132. TTestApp::InitMainWindow()
  133. {
  134.   MainWindow = new TFrameWindow(0, "Button Tester", new TTestWindow);
  135. }
  136.  
  137. //
  138. //
  139. //
  140. int
  141. OwlMain(int /*argc*/, char* /*argv*/ [])
  142. {
  143.   return TTestApp().Run();
  144. }
  145.