home *** CD-ROM | disk | FTP | other *** search
/ Clickx 47 / Clickx 47.iso / assets / software / sswitchxp152.exe / source / SpeedswitchXP / UserOptions.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2006-07-13  |  8.4 KB  |  235 lines

  1. /*
  2.    SpeedswitchXP V1.5
  3.    - Windows XP CPU Frequency Control for Notebooks -
  4.  
  5.    Copyright(c) 2002-2005 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. #define _UNICODE
  22.  
  23. #include "stdafx.h"
  24. #include "SpeedswitchXP.h"
  25. #include "UserOptions.h"
  26. #include "speedswitch.h"
  27.  
  28. #define TOOLTIP_ID 1
  29.  
  30. // CUserOptions dialog
  31.  
  32. IMPLEMENT_DYNAMIC(CUserOptions, CDialog)
  33. CUserOptions::CUserOptions(CWnd* pParent /*=NULL*/)
  34.     : CDialog(CUserOptions::IDD, pParent)
  35.   , m_iThrottlePolicyAC(0)
  36.   , m_iThrottlePolicyDC(0)
  37.   , m_iIdleTimeoutAC(0)
  38.   , m_iIdleTimeoutDC(0)
  39.   , m_iIdleSensAC(0)
  40.   , m_iIdleSensDC(0)
  41.   , m_iMaxSleepStateAC(0)
  42.   , m_iMaxSleepStateDC(0)
  43.   , m_iVideoTimeoutAC(0)
  44.   , m_iVideoTimeoutDC(0)
  45.   , m_iSpindownTimeoutAC(0)
  46.   , m_iSpindownTimeoutDC(0)
  47.   , m_bOptPowerAC(0)
  48.   , m_bOptPowerDC(0)
  49.   , m_iFanThrottleTolAC(0)
  50.   , m_iFanThrottleTolDC(0)
  51.   , m_iForcedThrottleAC(0)
  52.   , m_iForcedThrottleDC(0)
  53. { }
  54.  
  55. CUserOptions::~CUserOptions()
  56. { }
  57.  
  58. void CUserOptions::DoDataExchange(CDataExchange* pDX)
  59. {
  60.   CDialog::DoDataExchange(pDX);
  61.   DDX_CBIndex(pDX, IDC_COMBO1, m_iThrottlePolicyAC);
  62.   DDX_CBIndex(pDX, IDC_COMBO2, m_iThrottlePolicyDC);
  63.   DDX_Text(pDX, IDC_EDIT1, m_iIdleTimeoutAC);
  64.   DDX_Text(pDX, IDC_EDIT2, m_iIdleTimeoutDC);
  65.   DDX_Text(pDX, IDC_EDIT3, m_iIdleSensAC);
  66.   DDX_Text(pDX, IDC_EDIT4, m_iIdleSensDC);
  67.   DDX_CBIndex(pDX, IDC_COMBO3, m_iMaxSleepStateAC);
  68.   DDX_CBIndex(pDX, IDC_COMBO4, m_iMaxSleepStateDC);
  69.   DDX_Text(pDX, IDC_EDIT5, m_iVideoTimeoutAC);
  70.   DDX_Text(pDX, IDC_EDIT7, m_iVideoTimeoutDC);
  71.   DDX_Text(pDX, IDC_EDIT8, m_iSpindownTimeoutAC);
  72.   DDX_Text(pDX, IDC_EDIT6, m_iSpindownTimeoutDC);
  73.   DDX_CBIndex(pDX, IDC_COMBO5, m_bOptPowerAC);
  74.   DDX_CBIndex(pDX, IDC_COMBO6, m_bOptPowerDC);
  75.   DDX_Text(pDX, IDC_EDIT10, m_iFanThrottleTolAC);
  76.   DDX_Text(pDX, IDC_EDIT9, m_iFanThrottleTolDC);
  77.   DDX_Text(pDX, IDC_EDIT11, m_iForcedThrottleAC);
  78.   DDX_Text(pDX, IDC_EDIT12, m_iForcedThrottleDC);
  79. }
  80.  
  81. BOOL CUserOptions::OnInitDialog()
  82. {
  83.     CDialog::OnInitDialog();
  84.  
  85.   CString s1;
  86.  
  87.   s1.LoadStringW( IDS_CPUPOL1 );
  88.  
  89.   addToolTip( 0, IDC_EDIT1, s1 );
  90.   addToolTip( 1, IDC_EDIT2, s1 );
  91.  
  92.   s1.LoadStringW( IDS_CPUPOL2 );
  93.   addToolTip( 2, IDC_EDIT3, s1 );
  94.   addToolTip( 3, IDC_EDIT4, s1 );
  95.  
  96.   s1.LoadStringW( IDS_CPUPOL3 );
  97.   addToolTip( 4, IDC_COMBO1, s1 );
  98.   addToolTip( 5, IDC_COMBO2, s1 );
  99.  
  100.   s1.LoadStringW( IDS_CPUPOL4 );
  101.   addToolTip( 6, IDC_COMBO3, s1 );
  102.   addToolTip( 7, IDC_COMBO4, s1 );
  103.  
  104.   s1.LoadStringW( IDS_CPUPOL5 );
  105.   addToolTip( 8, IDC_EDIT5, s1 );
  106.   addToolTip( 9, IDC_EDIT7, s1 );
  107.  
  108.   s1.LoadStringW( IDS_CPUPOL6 );
  109.   addToolTip( 10, IDC_EDIT8, s1 );
  110.   addToolTip( 11, IDC_EDIT6, s1 );
  111.  
  112.   s1.LoadStringW( IDS_CPUPOL7 );
  113.   addToolTip( 12, IDC_COMBO5, s1 );
  114.   addToolTip( 13, IDC_COMBO6, s1 );
  115.  
  116.   s1.LoadStringW( IDS_CPUPOL8 );
  117.   addToolTip( 14, IDC_EDIT10, s1 );
  118.   addToolTip( 15, IDC_EDIT9, s1 );
  119.  
  120.   s1.LoadStringW( IDS_CPUPOL9 );
  121.   addToolTip( 16, IDC_EDIT11, s1 );
  122.   addToolTip( 17, IDC_EDIT12, s1 );
  123.  
  124.   return TRUE;
  125. }
  126.  
  127. BOOL CUserOptions::PreTranslateMessage( MSG* pMsg ) 
  128. {
  129.   for( int i=0; i<18; i++ )
  130.     m_tToolTip[i].RelayEvent( pMsg );
  131.  
  132.   return CDialog::PreTranslateMessage( pMsg );
  133. }
  134.  
  135.  
  136. BEGIN_MESSAGE_MAP(CUserOptions, CDialog)
  137. END_MESSAGE_MAP()
  138.  
  139. // CUserOptions message handlers
  140. void CUserOptions::setVars()
  141. {
  142.   m_iIdleTimeoutAC = internalPolicy.user.IdleTimeoutAc;
  143.   m_iIdleTimeoutDC = internalPolicy.user.IdleTimeoutDc;
  144.   m_iIdleSensAC = internalPolicy.user.IdleSensitivityAc;
  145.   m_iIdleSensDC = internalPolicy.user.IdleSensitivityDc;
  146.   m_iThrottlePolicyAC = internalPolicy.user.ThrottlePolicyAc;
  147.   m_iThrottlePolicyDC = internalPolicy.user.ThrottlePolicyDc;
  148.   m_iMaxSleepStateAC = internalPolicy.user.MaxSleepAc;
  149.   m_iMaxSleepStateDC = internalPolicy.user.MaxSleepDc;
  150.   m_iVideoTimeoutAC = internalPolicy.user.VideoTimeoutAc;
  151.   m_iVideoTimeoutDC = internalPolicy.user.VideoTimeoutDc;
  152.   m_iSpindownTimeoutAC = internalPolicy.user.SpindownTimeoutAc;
  153.   m_iSpindownTimeoutDC = internalPolicy.user.SpindownTimeoutDc;
  154.   m_bOptPowerAC = internalPolicy.user.OptimizeForPowerAc ? 0 : 1;
  155.   m_bOptPowerDC = internalPolicy.user.OptimizeForPowerDc ? 0 : 1;
  156.   m_iFanThrottleTolAC = internalPolicy.user.FanThrottleToleranceAc;
  157.   m_iFanThrottleTolDC = internalPolicy.user.FanThrottleToleranceDc;
  158.   m_iForcedThrottleAC = internalPolicy.user.ForcedThrottleAc;
  159.   m_iForcedThrottleDC = internalPolicy.user.ForcedThrottleDc;
  160. }
  161.  
  162. void CUserOptions::getVars()
  163. {
  164.   if( m_iIdleSensAC<0 || m_iIdleSensAC>100 )
  165.     m_iIdleSensAC = internalPolicy.user.IdleSensitivityAc;
  166.  
  167.   if( m_iIdleSensDC<0 || m_iIdleSensDC>100 )
  168.     m_iIdleSensDC = internalPolicy.user.IdleSensitivityDc;
  169.  
  170.   if( m_iFanThrottleTolAC<0 || m_iFanThrottleTolAC>100 )
  171.     m_iFanThrottleTolAC = internalPolicy.user.FanThrottleToleranceAc;
  172.  
  173.   if( m_iFanThrottleTolDC<0 || m_iFanThrottleTolDC>100 )
  174.     m_iFanThrottleTolDC = internalPolicy.user.FanThrottleToleranceDc;
  175.  
  176.   if( m_iForcedThrottleAC<0 || m_iForcedThrottleAC>100 )
  177.     m_iForcedThrottleAC = internalPolicy.user.ForcedThrottleAc;
  178.  
  179.   if( m_iForcedThrottleDC<0 || m_iForcedThrottleDC>100 )
  180.     m_iForcedThrottleDC = internalPolicy.user.ForcedThrottleDc;
  181.  
  182.   if( m_iIdleTimeoutAC != internalPolicy.user.IdleTimeoutAc
  183.   ||  m_iIdleTimeoutDC != internalPolicy.user.IdleTimeoutDc
  184.   ||  m_iIdleSensAC != internalPolicy.user.IdleSensitivityAc
  185.   ||  m_iIdleSensDC != internalPolicy.user.IdleSensitivityDc
  186.   ||  m_iThrottlePolicyAC != internalPolicy.user.ThrottlePolicyAc
  187.   ||  m_iThrottlePolicyDC != internalPolicy.user.ThrottlePolicyDc
  188.   ||  ((SYSTEM_POWER_STATE)m_iMaxSleepStateAC) != internalPolicy.user.MaxSleepAc
  189.   ||  ((SYSTEM_POWER_STATE)m_iMaxSleepStateDC) != internalPolicy.user.MaxSleepDc
  190.   ||  m_iVideoTimeoutAC != internalPolicy.user.VideoTimeoutAc
  191.   ||  m_iVideoTimeoutDC != internalPolicy.user.VideoTimeoutDc
  192.   ||  m_iSpindownTimeoutAC != internalPolicy.user.SpindownTimeoutAc
  193.   ||  m_iSpindownTimeoutDC != internalPolicy.user.SpindownTimeoutDc
  194.   ||  m_bOptPowerAC != (internalPolicy.user.OptimizeForPowerAc ? 0 : 1)
  195.   ||  m_bOptPowerDC != (internalPolicy.user.OptimizeForPowerDc ? 0 : 1)
  196.   ||  m_iFanThrottleTolAC != internalPolicy.user.FanThrottleToleranceAc
  197.   ||  m_iFanThrottleTolDC != internalPolicy.user.FanThrottleToleranceDc
  198.   ||  m_iForcedThrottleAC != internalPolicy.user.ForcedThrottleAc
  199.   ||  m_iForcedThrottleDC != internalPolicy.user.ForcedThrottleDc )
  200.     power = TRUE;
  201.   else
  202.   {
  203.     power = FALSE;
  204.     return;
  205.   }
  206.  
  207.   internalPolicy.user.IdleTimeoutAc = m_iIdleTimeoutAC;
  208.   internalPolicy.user.IdleTimeoutDc = m_iIdleTimeoutDC;
  209.   internalPolicy.user.IdleSensitivityAc = m_iIdleSensAC;
  210.   internalPolicy.user.IdleSensitivityDc = m_iIdleSensDC;
  211.   internalPolicy.user.ThrottlePolicyAc = m_iThrottlePolicyAC;
  212.   internalPolicy.user.ThrottlePolicyDc = m_iThrottlePolicyDC;
  213.   internalPolicy.user.MaxSleepAc = (SYSTEM_POWER_STATE)m_iMaxSleepStateAC;
  214.   internalPolicy.user.MaxSleepDc = (SYSTEM_POWER_STATE)m_iMaxSleepStateDC;
  215.   internalPolicy.user.VideoTimeoutAc = m_iVideoTimeoutAC;
  216.   internalPolicy.user.VideoTimeoutDc = m_iVideoTimeoutDC;
  217.   internalPolicy.user.SpindownTimeoutAc = m_iSpindownTimeoutAC;
  218.   internalPolicy.user.SpindownTimeoutDc = m_iSpindownTimeoutDC;
  219.   internalPolicy.user.OptimizeForPowerAc = m_bOptPowerAC==0;
  220.   internalPolicy.user.OptimizeForPowerDc = m_bOptPowerDC==0;
  221.   internalPolicy.user.FanThrottleToleranceAc = m_iFanThrottleTolAC;
  222.   internalPolicy.user.FanThrottleToleranceDc = m_iFanThrottleTolDC;
  223.   internalPolicy.user.ForcedThrottleAc = m_iForcedThrottleAC;
  224.   internalPolicy.user.ForcedThrottleDc = m_iForcedThrottleDC;
  225. }
  226.  
  227. void CUserOptions::addToolTip( int no, int id, CString str )
  228. {
  229.   CWnd* wnd = GetDlgItem( id );
  230.   CRect rect; 
  231.   wnd->GetClientRect( rect );
  232.   m_tToolTip[no].Create( wnd );
  233.   m_tToolTip[no].AddTool( wnd, str, rect, TOOLTIP_ID );
  234. }
  235.