home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 March / PCpro_2005_03.ISO / files / systools / speedswitchxp / sswitchxp14.exe / Typical / GeneralOptions.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2005-01-14  |  7.5 KB  |  232 lines

  1. /*
  2.    SpeedswitchXP V1.4
  3.    - Windows XP CPU Frequency Control for Notebooks -
  4.  
  5.    Copyright(c) 2002-2004 Christian Diefer
  6.  
  7.    This program is free software; you can redistribute it and/or modify
  8.    it under the terms of the GNU General Public License version 2 as 
  9.    published by the Free Software Foundation.
  10.    
  11.    This program is distributed in the hope that it will be useful,
  12.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.    GNU General Public License for more details.
  15.  
  16.    You should have received a copy of the GNU General Public License
  17.    along with this program; if not, write to the Free Software
  18.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19. */
  20.  
  21. #include "stdafx.h"
  22. #include "SpeedswitchXP.h"
  23. #include "GeneralOptions.h"
  24.  
  25.  
  26. // CGeneralOptions dialog
  27.  
  28. IMPLEMENT_DYNAMIC(CGeneralOptions, CDialog)
  29.  
  30. CGeneralOptions::CGeneralOptions(CWnd* pParent /*=NULL*/)
  31.     : CDialog(CGeneralOptions::IDD, pParent)
  32.   , m_bAutostart(FALSE)
  33.   , m_bDebugmode(FALSE)
  34.   , m_bMinimizeOnClose(FALSE)
  35.   , m_bCheckStatus(FALSE)
  36.   , m_iCheckInterval(5)
  37.   , m_bReactivate(FALSE)
  38.   , m_bReadCPUSpeed(FALSE)
  39.   , m_iSpeedMethod(1)
  40.   , m_bReadCPULoad(FALSE)
  41.   , m_bShowDiagram(FALSE)
  42.   , m_iCPUInterval(2)
  43.   , m_iSpeedScaling(0)
  44.   , m_iBattMethod(0)
  45.   , m_bShowBattery(FALSE)
  46.   , m_iBatteryIndicator(0)
  47.   , m_bChargeIndicator(FALSE)
  48.   , m_bSpeedIcon(FALSE)
  49.   , m_bLoadIcon(FALSE)
  50. { }
  51.  
  52. CGeneralOptions::~CGeneralOptions()
  53. { }
  54.  
  55. void CGeneralOptions::DoDataExchange(CDataExchange* pDX)
  56. {
  57.   CDialog::DoDataExchange(pDX);
  58.   DDX_Check(pDX, IDC_CHECK1, m_bAutostart);
  59.   DDX_Check(pDX, IDC_CHECK2, m_bDebugmode);
  60.   DDX_Check(pDX, IDC_CHECK3, m_bMinimizeOnClose);
  61.   DDX_Check(pDX, IDC_CHECK4, m_bCheckStatus);
  62.   DDX_Text(pDX, IDC_EDIT1, m_iCheckInterval);
  63.   DDX_Check(pDX, IDC_CHECK5, m_bReactivate);
  64.   DDX_Check(pDX, IDC_CHECK6, m_bReadCPUSpeed);
  65.   DDX_CBIndex(pDX, IDC_COMBO2, m_iSpeedMethod);
  66.   DDX_Check(pDX, IDC_CHECK7, m_bReadCPULoad);
  67.   DDX_Check(pDX, IDC_CHECK8, m_bShowDiagram);
  68.   DDX_Text(pDX, IDC_EDIT3, m_iCPUInterval);
  69.   DDX_CBIndex(pDX, IDC_SCALING, m_iSpeedScaling);
  70.   DDX_CBIndex(pDX, IDC_BATTMET, m_iBattMethod);
  71.   DDX_Check(pDX, IDC_SHOWBATT, m_bShowBattery);
  72.   DDX_CBIndex(pDX, IDC_BATTIND, m_iBatteryIndicator);
  73.   DDX_Check(pDX, IDC_CHARGECHECK, m_bChargeIndicator);
  74.   DDX_Check(pDX, IDC_CHECK10, m_bSpeedIcon);
  75.   DDX_Check(pDX, IDC_CHECK11, m_bLoadIcon);
  76. }
  77.  
  78. BOOL CGeneralOptions::OnInitDialog()
  79. {
  80.     CDialog::OnInitDialog();
  81.  
  82.   ((CWnd*)GetDlgItem(IDC_EDIT1))->EnableWindow( m_bCheckStatus );
  83.   ((CWnd*)GetDlgItem(IDC_COMBO2))->EnableWindow( m_bReadCPUSpeed );
  84.   ((CWnd*)GetDlgItem(IDC_CHECK10))->EnableWindow( m_bReadCPUSpeed );
  85.   ((CWnd*)GetDlgItem(IDC_CHECK11))->EnableWindow( m_bReadCPULoad );
  86.   ((CWnd*)GetDlgItem(IDC_STATIC8))->EnableWindow( m_bShowDiagram );
  87.   ((CWnd*)GetDlgItem(IDC_SCALING))->EnableWindow( m_bShowDiagram );
  88.  
  89.   if( !m_bReadCPUSpeed && !m_bReadCPULoad )
  90.   {
  91.     m_bShowDiagram = FALSE;
  92.     ((CWnd*)GetDlgItem(IDC_CHECK8))->EnableWindow( FALSE );
  93.     ((CWnd*)GetDlgItem(IDC_STATIC8))->EnableWindow( FALSE );
  94.     ((CWnd*)GetDlgItem(IDC_SCALING))->EnableWindow( FALSE );
  95.   }
  96.   else
  97.     ((CWnd*)GetDlgItem(IDC_CHECK8))->EnableWindow( TRUE );
  98.  
  99.   bool x = (m_bReadCPUSpeed || m_bReadCPULoad || m_bShowBattery);
  100.   ((CWnd*)GetDlgItem(IDC_STATIC3))->EnableWindow( x );
  101.   ((CWnd*)GetDlgItem(IDC_STATIC4))->EnableWindow( x );
  102.   ((CWnd*)GetDlgItem(IDC_EDIT3))->EnableWindow( x );
  103.  
  104.   ((CWnd*)GetDlgItem(IDC_BATTIND))->EnableWindow( m_bShowBattery );
  105.   ((CWnd*)GetDlgItem(IDC_BATTMET))->EnableWindow( m_bShowBattery );
  106.   ((CWnd*)GetDlgItem(IDC_CHARGECHECK))->EnableWindow( m_bShowBattery );
  107.  
  108.   return TRUE;
  109. }
  110.  
  111. BEGIN_MESSAGE_MAP(CGeneralOptions, CDialog)
  112.   ON_BN_CLICKED(IDC_CHECK2, OnBnClickedCheck2)
  113.   ON_BN_CLICKED(IDC_CHECK4, OnBnClickedCheck4)
  114.   ON_BN_CLICKED(IDC_CHECK6, OnBnClickedCheck6)
  115.   ON_BN_CLICKED(IDC_CHECK8, OnBnClickedCheck8)
  116.   ON_BN_CLICKED(IDC_CHECK7, OnBnClickedCheck7)
  117.   ON_BN_CLICKED(IDC_SHOWBATT, OnBnClickedShowbatt)
  118. END_MESSAGE_MAP()
  119.  
  120.  
  121. // CGeneralOptions message handlers
  122.  
  123. void CGeneralOptions::OnBnClickedCheck2()
  124. {
  125.   UpdateData();    
  126.  
  127.   if( m_bDebugmode )
  128.   {
  129.     if( MessageBox("Enabling this option results in the production of a significant amount of debugging data "
  130.                    "combined with a possible performance degradation of your system. It is recommended "
  131.                    "that you restart the application in order to receive accurate debugging infos. Don't "
  132.                    "forget to turn off this option when you have collected enough debugging data. "
  133.                    "Do you really want to enable this ?","Info",MB_ICONEXCLAMATION|MB_YESNO) != IDYES )
  134.     {
  135.       m_bDebugmode = FALSE;
  136.       UpdateData( FALSE );
  137.     }
  138.   }
  139. }
  140.  
  141. // enable/disable check power scheme integrity
  142. void CGeneralOptions::OnBnClickedCheck4()
  143. {
  144.   UpdateData();
  145.   ((CWnd*)GetDlgItem(IDC_EDIT1))->EnableWindow( m_bCheckStatus );
  146. }
  147.  
  148. // enable/disable CPU speed reading
  149. void CGeneralOptions::OnBnClickedCheck6()
  150. {
  151.   UpdateData();
  152.  
  153.   ((CWnd*)GetDlgItem(IDC_COMBO2))->EnableWindow( m_bReadCPUSpeed );
  154.   ((CWnd*)GetDlgItem(IDC_CHECK10))->EnableWindow( m_bReadCPUSpeed );
  155.  
  156.   if( !m_bReadCPUSpeed )
  157.     m_bSpeedIcon = FALSE;
  158.  
  159.   if( !m_bReadCPUSpeed && !m_bReadCPULoad )
  160.   {
  161.     m_bShowDiagram = FALSE;
  162.     ((CWnd*)GetDlgItem(IDC_CHECK8))->EnableWindow( FALSE );
  163.     ((CWnd*)GetDlgItem(IDC_STATIC8))->EnableWindow( FALSE );
  164.     ((CWnd*)GetDlgItem(IDC_SCALING))->EnableWindow( FALSE );
  165.   }
  166.   else
  167.     ((CWnd*)GetDlgItem(IDC_CHECK8))->EnableWindow( TRUE );
  168.  
  169.   bool x = (m_bReadCPUSpeed || m_bReadCPULoad || m_bShowBattery);
  170.   ((CWnd*)GetDlgItem(IDC_STATIC3))->EnableWindow( x );
  171.   ((CWnd*)GetDlgItem(IDC_STATIC4))->EnableWindow( x );
  172.   ((CWnd*)GetDlgItem(IDC_EDIT3))->EnableWindow( x );
  173.  
  174.   UpdateData( FALSE );
  175. }
  176.  
  177. // enable/disable history diagram
  178. void CGeneralOptions::OnBnClickedCheck8()
  179. {
  180.   UpdateData();
  181.  
  182.   ((CWnd*)GetDlgItem(IDC_STATIC8))->EnableWindow( m_bShowDiagram );
  183.   ((CWnd*)GetDlgItem(IDC_SCALING))->EnableWindow( m_bShowDiagram );
  184. }
  185.  
  186. // enable/disable CPU load reading
  187. void CGeneralOptions::OnBnClickedCheck7()
  188. {
  189.   UpdateData();
  190.  
  191.   ((CWnd*)GetDlgItem(IDC_CHECK11))->EnableWindow( m_bReadCPULoad );
  192.  
  193.   if( !m_bReadCPULoad )
  194.     m_bLoadIcon = FALSE;
  195.  
  196.   if( !m_bReadCPUSpeed && !m_bReadCPULoad )
  197.   {
  198.     m_bShowDiagram = FALSE;
  199.     ((CWnd*)GetDlgItem(IDC_CHECK8))->EnableWindow( FALSE );
  200.     ((CWnd*)GetDlgItem(IDC_STATIC8))->EnableWindow( FALSE );
  201.     ((CWnd*)GetDlgItem(IDC_SCALING))->EnableWindow( FALSE );
  202.   }
  203.   else
  204.     ((CWnd*)GetDlgItem(IDC_CHECK8))->EnableWindow( TRUE );
  205.  
  206.   bool x = (m_bReadCPUSpeed || m_bReadCPULoad || m_bShowBattery);
  207.   ((CWnd*)GetDlgItem(IDC_STATIC3))->EnableWindow( x );
  208.   ((CWnd*)GetDlgItem(IDC_STATIC4))->EnableWindow( x );
  209.   ((CWnd*)GetDlgItem(IDC_EDIT3))->EnableWindow( x );
  210.  
  211.   UpdateData( FALSE );
  212. }
  213.  
  214. void CGeneralOptions::OnBnClickedShowbatt()
  215. {
  216.   UpdateData();
  217.  
  218.   ((CWnd*)GetDlgItem(IDC_BATTIND))->EnableWindow( m_bShowBattery );
  219.   ((CWnd*)GetDlgItem(IDC_BATTMET))->EnableWindow( m_bShowBattery );
  220.   ((CWnd*)GetDlgItem(IDC_CHARGECHECK))->EnableWindow( m_bShowBattery );
  221.  
  222.   if( !m_bShowBattery )
  223.     m_bChargeIndicator = FALSE;
  224.  
  225.   bool x = (m_bReadCPUSpeed || m_bReadCPULoad || m_bShowBattery);
  226.   ((CWnd*)GetDlgItem(IDC_STATIC3))->EnableWindow( x );
  227.   ((CWnd*)GetDlgItem(IDC_STATIC4))->EnableWindow( x );
  228.   ((CWnd*)GetDlgItem(IDC_EDIT3))->EnableWindow( x );
  229.  
  230.   UpdateData( FALSE );
  231. }
  232.