home *** CD-ROM | disk | FTP | other *** search
/ HTBasic 9.3 / HTBasic 9.3.iso / 93win / data1.cab / DLL_Toolkit / Source / HTBCheckButton / CheckbuttonDlg.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2005-03-02  |  6.5 KB  |  279 lines

  1. // CheckbuttonDlg.cpp : implementation file
  2. //    High Tech BASIC, Copyright (C) TransEra Corp 1999, All Rights Reserved.
  3. // Sven Henze, Tech Soft GmbH 1999
  4.  
  5. #include "stdafx.h"
  6. #include "Checkbutton.h"
  7. #include "CheckbuttonDlg.h"
  8. #include "export.h"
  9.  
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15.  
  16. #define BUTTONHEIGHT 21
  17. #define WIDTHADJUST 25
  18. #define STARTHEIGHT 370
  19. #define HEIGHTADJUST 30
  20.  
  21.  
  22. #define BUTTON1_BIT        0x0001
  23. #define BUTTON2_BIT        0x0002
  24. #define BUTTON3_BIT        0x0004
  25. #define BUTTON4_BIT        0x0008
  26. #define BUTTON5_BIT        0x0010
  27. #define BUTTON6_BIT        0x0020
  28. #define BUTTON7_BIT        0x0040
  29. #define BUTTON8_BIT        0x0080
  30. #define BUTTON9_BIT        0x0100
  31. #define BUTTON10_BIT    0x0200
  32. #define OTHER_BITS        0xFC00
  33. #define ALL_BITS        0x7FFF
  34.  
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CheckButtonDlg dialog
  37.  
  38.  
  39. CheckButtonDlg::CheckButtonDlg(CWnd* pParent /*=NULL*/)
  40.     : CDialog(CheckButtonDlg::IDD, pParent)
  41. {
  42.     //{{AFX_DATA_INIT(CheckButtonDlg)
  43.         // NOTE: the ClassWizard will add member initialization here
  44.     //}}AFX_DATA_INIT
  45.  
  46.     int i;
  47.     short CheckMask;
  48.  
  49.     for ( i=0; i < MAXBUTTON; i++ )
  50.     {
  51.         ButtonStates[i] = FALSE;
  52.     }
  53.  
  54.     CheckMask = 0x0001;
  55.     for ( i = 0; i < MAXBUTTON; i++ )
  56.     {
  57.         if ( g_SavePressed & CheckMask )
  58.         {
  59.             ButtonStates[i] = TRUE;
  60.         }
  61.  
  62.         CheckMask <<= 1;
  63.  
  64.     }
  65.  
  66.     if(g_SavePressed & OTHER_BITS)
  67.     {
  68.         ButtonStates[0] = TRUE;
  69.     }
  70.  
  71. }    // CheckButtonDlg constructor
  72.  
  73.  
  74. void CheckButtonDlg::DoDataExchange(CDataExchange* pDX)
  75. {
  76.     CDialog::DoDataExchange(pDX);
  77.     //{{AFX_DATA_MAP(CheckButtonDlg)
  78.     DDX_Control(pDX, IDC_CHECK1, Buttons[0]);
  79.     DDX_Control(pDX, IDC_CHECK2, Buttons[1]);
  80.     DDX_Control(pDX, IDC_CHECK3, Buttons[2]);
  81.     DDX_Control(pDX, IDC_CHECK4, Buttons[3]);
  82.     DDX_Control(pDX, IDC_CHECK5, Buttons[4]);
  83.     DDX_Control(pDX, IDC_CHECK6, Buttons[5]);
  84.     DDX_Control(pDX, IDC_CHECK7, Buttons[6]);
  85.     DDX_Control(pDX, IDC_CHECK8, Buttons[7]);
  86.     DDX_Control(pDX, IDC_CHECK9, Buttons[8]);
  87.     DDX_Control(pDX, IDC_CHECK10, Buttons[9]);
  88.     DDX_Check(pDX, IDC_CHECK1, ButtonStates[0]);
  89.     DDX_Check(pDX, IDC_CHECK2, ButtonStates[1]);
  90.     DDX_Check(pDX, IDC_CHECK3, ButtonStates[2]);
  91.     DDX_Check(pDX, IDC_CHECK4, ButtonStates[3]);
  92.     DDX_Check(pDX, IDC_CHECK5, ButtonStates[4]);
  93.     DDX_Check(pDX, IDC_CHECK6, ButtonStates[5]);
  94.     DDX_Check(pDX, IDC_CHECK7, ButtonStates[6]);
  95.     DDX_Check(pDX, IDC_CHECK8, ButtonStates[7]);
  96.     DDX_Check(pDX, IDC_CHECK9, ButtonStates[8]);
  97.     DDX_Check(pDX, IDC_CHECK10, ButtonStates[9]);
  98.     //}}AFX_DATA_MAP
  99. }
  100.  
  101.  
  102. BEGIN_MESSAGE_MAP(CheckButtonDlg, CDialog)
  103.     //{{AFX_MSG_MAP(CheckButtonDlg)
  104.     ON_BN_CLICKED(IDC_BUTTON13, OKPressed)
  105.     ON_BN_CLICKED(IDC_BUTTON14, CancelPressed)
  106.     ON_BN_CLICKED(IDC_CHECK1, OnCheckButton1)
  107.     ON_BN_CLICKED(IDC_CHECK2, OnCheckButton2)
  108.     ON_BN_CLICKED(IDC_CHECK3, OnCheckButton3)
  109.     ON_BN_CLICKED(IDC_CHECK4, OnCheckButton4)
  110.     ON_BN_CLICKED(IDC_CHECK5, OnCheckButton5)
  111.     ON_BN_CLICKED(IDC_CHECK6, OnCheckButton6)
  112.     ON_BN_CLICKED(IDC_CHECK7, OnCheckButton7)
  113.     ON_BN_CLICKED(IDC_CHECK8, OnCheckButton8)
  114.     ON_BN_CLICKED(IDC_CHECK9, OnCheckButton9)
  115.     ON_BN_CLICKED(IDC_CHECK10, OnCheckButton10)
  116.     ON_WM_CLOSE()
  117.     //}}AFX_MSG_MAP
  118. END_MESSAGE_MAP()
  119.  
  120. /////////////////////////////////////////////////////////////////////////////
  121. // CheckButtonDlg message handlers
  122.  
  123. BOOL CheckButtonDlg::OnInitDialog() 
  124. {
  125.     CDialog::OnInitDialog();
  126.     
  127.     SetWindowText(g_Title);                                        // set window title
  128.  
  129.     SetDlgItemText(IDC_TEXT0,g_Description);                    // set static text control text
  130.     SetDlgItemText(IDC_TEXT1,g_grouptext);                        // group text
  131.  
  132.     CWnd* pStaticText = GetDlgItem(IDC_TEXT0);                    // get pointer to static text control text
  133.     pStaticText->SetWindowPos(NULL,0,0,g_Width,BUTTONHEIGHT,SWP_NOZORDER | SWP_NOMOVE);    // set width of static text control
  134.     
  135.     CWnd* pStaticGText = GetDlgItem(IDC_TEXT1);                    // get pointer to static text control text
  136.     pStaticGText->SetWindowPos(NULL,0,0,g_Width,24+BUTTONHEIGHT*g_BtnCount,SWP_NOZORDER | SWP_NOMOVE);    // set width of static text control
  137.  
  138.     CWnd* pOKButton = GetDlgItem(IDC_BUTTON13);                    // get pointer to OK button
  139.     CWnd* pCancelButton = GetDlgItem(IDC_BUTTON14);                // get pointer to OK button
  140.  
  141.     // center the 'OK' and 'Cancel buttons
  142.     pOKButton->SetWindowPos(NULL,(g_Width+WIDTHADJUST)/2-72,74+(BUTTONHEIGHT*g_BtnCount),60,23,SWP_NOZORDER);    // set position of OK button
  143.     pCancelButton->SetWindowPos(NULL,(g_Width+WIDTHADJUST)/2+3,74+(BUTTONHEIGHT*g_BtnCount),60,23,SWP_NOZORDER);    // set position of Cancel button
  144.     
  145.  
  146.     long i;
  147.  
  148.     // Setup any used buttons
  149.     for (i = 0; i < g_BtnCount; i++)
  150.     {
  151.         Buttons[i].SetWindowText(g_Text[i]);                        // set button text
  152.     }
  153.  
  154.     // Destroy the remaining buttons if any...
  155.     for (i = g_BtnCount; i < MAXBUTTON; i++)
  156.     {
  157.         Buttons[i].DestroyWindow();
  158.     }
  159.  
  160.  
  161.     // set window size
  162.     SetWindowPos(NULL,0,0,g_Width+WIDTHADJUST,135+(BUTTONHEIGHT*g_BtnCount),SWP_NOZORDER );    
  163.  
  164.     SetForegroundWindow();
  165.  
  166.     return TRUE;  // return TRUE unless you set the focus to a control
  167.                   // EXCEPTION: OCX Property Pages should return FALSE
  168. }
  169.  
  170. void CheckButtonDlg::OnCheckButton1() 
  171. {
  172.     *g_pPress ^= BUTTON1_BIT;
  173.     UserAct(1);
  174. }
  175.  
  176. void CheckButtonDlg::OnCheckButton2() 
  177. {            
  178.     *g_pPress ^= BUTTON2_BIT;
  179.     UserAct(2);
  180. }
  181.  
  182. void CheckButtonDlg::OnCheckButton3() 
  183. {    
  184.     *g_pPress ^= BUTTON3_BIT;
  185.     UserAct(3);
  186. }
  187.  
  188. void CheckButtonDlg::OnCheckButton4() 
  189. {
  190.     *g_pPress ^= BUTTON4_BIT;
  191.     UserAct(4);
  192. }
  193.  
  194. void CheckButtonDlg::OnCheckButton5() 
  195. {    
  196.     *g_pPress ^= BUTTON5_BIT;
  197.     UserAct(5);
  198. }
  199.  
  200. void CheckButtonDlg::OnCheckButton6() 
  201. {    
  202.     *g_pPress ^= BUTTON6_BIT;
  203.     UserAct(6);
  204. }
  205.  
  206. void CheckButtonDlg::OnCheckButton7() 
  207. {
  208.     *g_pPress ^= BUTTON7_BIT;
  209.     UserAct(7);
  210. }
  211.  
  212. void CheckButtonDlg::OnCheckButton8() 
  213. {    
  214.     *g_pPress ^= BUTTON8_BIT;
  215.     UserAct(8);
  216. }
  217.  
  218. void CheckButtonDlg::OnCheckButton9() 
  219. {    
  220.     *g_pPress ^= BUTTON9_BIT;
  221.     UserAct(9);
  222. }
  223.  
  224. void CheckButtonDlg::OnCheckButton10() 
  225. {    
  226.     *g_pPress ^= BUTTON10_BIT;
  227.     UserAct(10);
  228. }
  229.  
  230.  
  231.  
  232. void CheckButtonDlg::OnClose() 
  233. {    
  234.     
  235.     CDialog::OnClose();
  236. }
  237.  
  238.  
  239.  
  240. void CheckButtonDlg::UserAct(short select)
  241. {
  242.  
  243.     switch (g_Option)
  244.     {
  245.         case modal:
  246.             EndDialog(select);                    // shut down modal dialog
  247.             break;
  248.  
  249.         case signal:
  250.             Signal(select);                        // set signal for SIGNAL option dialog
  251.             break;
  252.  
  253.         default:
  254.             break;
  255.     }    
  256.  
  257. }
  258.  
  259.  
  260.  
  261. void CheckButtonDlg::OKPressed()
  262. {
  263.  
  264.     // insert some processing here (Press)
  265.     UserAct(1);
  266.     return;
  267.  
  268. }
  269.  
  270.  
  271. void CheckButtonDlg::CancelPressed()
  272. {
  273.  
  274.     // insert some processing here
  275.     *g_pPress = ALL_BITS;
  276.     EndDialog(0);                        // End Dialog if Cancel was pressed
  277.  
  278. }
  279.