home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / updown.pak / UPDOWNX.CPP < prev   
C/C++ Source or Header  |  1997-05-06  |  3KB  |  142 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1995, 1996 by Borland International, All Rights Reserved
  4. //
  5. // Illustrates the TUpDown class
  6. //----------------------------------------------------------------------------
  7. #include <owl/pch.h>
  8. #if !defined(OWL_APPLICAT_H)
  9. # include <owl/applicat.h>
  10. #endif
  11. #if !defined(OWL_FRAMEWIN_H)
  12. # include <owl/framewin.h>
  13. #endif
  14. #if !defined(OWL_UPDOWN_H)
  15. # include <owl/updown.h>
  16. #endif
  17. #if !defined(OWL_COMMCTRL_H)
  18. # include <owl/commctrl.h>
  19. #endif
  20. #if !defined(OWL_GAUGE_H)
  21. # include <owl/gauge.h>
  22. #endif
  23. #if !defined(OWL_EDIT_H)
  24. # include <owl/edit.h>
  25. #endif
  26. #if !defined(OWL_GDIOBJEC_H)
  27. # include <owl/gdiobjec.h>
  28. #endif
  29. #if !defined(WINSYS_UIMETRIC_H)
  30. # include <winsys/uimetric.h>
  31. #endif
  32. #include <stdio.h>
  33.  
  34. const uint16 IDC_CLICKEE = 201;
  35. const uint16 IDC_CLICKER = 202;
  36. const uint16 IDC_BUMPER  = 203;
  37. const uint16 IDC_THERMOMETER = 208;
  38.  
  39. //
  40. // class TTestWindow
  41. // ~~~~~ ~~~~~~~~~~~
  42. class TTestWindow : public TWindow {
  43.   public:
  44.     TTestWindow();
  45.     
  46.   protected:
  47.     TEdit*    Clickee;
  48.     TUpDown*  Clicker;
  49.  
  50.     TGauge*   Thermometer;
  51.     TUpDown*  Bumper;
  52.  
  53.     int       Temp;
  54.     void      SetupWindow();
  55.     bool      EvBump(TNmUpDown& not);
  56.     
  57.   DECLARE_RESPONSE_TABLE(TTestWindow);
  58. };
  59.  
  60. DEFINE_RESPONSE_TABLE1(TTestWindow, TWindow)
  61.   EV_WM_SYSCOLORCHANGE,
  62.   EV_UDN_DELTAPOS(IDC_BUMPER, EvBump),
  63. END_RESPONSE_TABLE;
  64.  
  65. //
  66. //
  67. //
  68. TTestWindow::TTestWindow()
  69. :
  70.   TWindow(0, 0, 0)
  71. {
  72.   Attr.X = 20;
  73.   Attr.Y = 20;
  74.   Attr.W = 380;
  75.   Attr.H = 160;
  76.  
  77.   Clickee = new TEdit(this, IDC_CLICKEE, "42", 10, 10, 70, 28);
  78. #if defined(BI_PLAT_WIN32)
  79.   Clickee->Attr.ExStyle |= WS_EX_CLIENTEDGE;
  80. #endif
  81.   Clicker = new TUpDown(this, IDC_CLICKER, 76, 11, TUIMetric::CxVScroll, 26, Clickee);
  82.   Clicker->Attr.Style |= UDS_SETBUDDYINT | UDS_ALIGNRIGHT;
  83.  
  84.   Thermometer = new TGauge(this, "%d\xB0", IDC_THERMOMETER, 70, 70, 240, 24, true);
  85.   Bumper = new TUpDown(this, IDC_BUMPER, 320, 70, 30, 24, Thermometer);
  86.   Bumper->Attr.Style |= UDS_HORZ | UDS_WRAP;
  87.  
  88.   SetBkgndColor(TColor::Sys3dFace);
  89. }
  90.  
  91. //
  92. //
  93. //
  94. void
  95. TTestWindow::SetupWindow()
  96. {
  97.   TWindow::SetupWindow();
  98.  
  99.   Clicker->SetRange(0, 80);
  100.   Clicker->SetPos(75);
  101.  
  102.   Bumper->SetRange(0, 100);
  103.   Bumper->SetPos(50);
  104.  
  105.   Thermometer->SetValue(50);
  106. }
  107.  
  108. //
  109. //
  110. //
  111. bool
  112. TTestWindow::EvBump(TNmUpDown& not)
  113. {
  114.   int pos = not.iPos + not.iDelta;
  115.   Thermometer->SetValue(pos);
  116.   return false; // Allow change
  117. }
  118.  
  119. //----------------------------------------------------------------------------
  120.  
  121. //
  122. // class TTestApp
  123. // ~~~~~ ~~~~~~~~
  124. class TTestApp : public TApplication {
  125.   public:
  126.     TTestApp() : TApplication() {}
  127.     void InitMainWindow() {
  128.       MainWindow = new TFrameWindow(0, "UpDown Tester", new TTestWindow, true);
  129.       MainWindow->EnableKBHandler();
  130.       MainWindow->Attr.Style &= ~WS_THICKFRAME;
  131.     }
  132. };
  133.  
  134. //
  135. //
  136. //
  137. int
  138. OwlMain(int /*argc*/, char* /*argv*/ [])
  139. {
  140.   return TTestApp().Run();
  141. }
  142.