home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 March / PCpro_2005_03.ISO / files / systools / speedswitchxp / sswitchxp14.exe / Typical / SpeedswitchXPOptions.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2005-01-14  |  5.7 KB  |  192 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 "TOptions.h"
  23. #include "SpeedswitchXP.h"
  24. #include "SpeedswitchXPOptions.h"
  25. #include "GeneralOptions.h"
  26. #include "UserOptions.h"
  27. #include "MachOptions.h"
  28. #include "CPUOptions.h"
  29.  
  30. CGeneralOptions genOpt;
  31. CUserOptions userOpt;
  32. CMachOptions machOpt;
  33. CCPUOptions cpuOpt;
  34.  
  35. // CSpeedswitchXPOptions dialog
  36.  
  37. IMPLEMENT_DYNAMIC(CSpeedswitchXPOptions, CDialog)
  38. CSpeedswitchXPOptions::CSpeedswitchXPOptions(CWnd* pParent /*=NULL*/)
  39.     : CDialog(CSpeedswitchXPOptions::IDD, pParent)
  40. { }
  41.  
  42. CSpeedswitchXPOptions::~CSpeedswitchXPOptions()
  43. { }
  44.  
  45. void CSpeedswitchXPOptions::DoDataExchange(CDataExchange* pDX)
  46. {
  47.   CDialog::DoDataExchange(pDX);
  48.   DDX_Control(pDX, IDC_TAB1, tabCtrl);
  49.   DDX_Control(pDX, IDC_UPPERLEFT, m_cUpperLeft);
  50.   DDX_Control(pDX, IDC_LOWERRIGHT, m_cLowerRight);
  51. }
  52.  
  53.  
  54. BEGIN_MESSAGE_MAP(CSpeedswitchXPOptions, CDialog)
  55.   ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTcnSelchangeTab1)
  56. END_MESSAGE_MAP()
  57.  
  58.  
  59. BOOL CSpeedswitchXPOptions::OnInitDialog()
  60. {
  61.   log( "OnInitDialog von Options" );
  62.     CDialog::OnInitDialog();
  63.  
  64.     TC_ITEM TabCtrlItem;
  65.     TabCtrlItem.mask = TCIF_TEXT;
  66.     TabCtrlItem.pszText = "General";
  67.     tabCtrl.InsertItem( 0, &TabCtrlItem );
  68.     TabCtrlItem.pszText = "User policy";
  69.     tabCtrl.InsertItem( 1, &TabCtrlItem );
  70.     TabCtrlItem.pszText = "Machine policy";
  71.   tabCtrl.InsertItem( 2, &TabCtrlItem );
  72.     TabCtrlItem.pszText = "CPU policy";
  73.   tabCtrl.InsertItem( 3, &TabCtrlItem );
  74.  
  75.   tabs[0] = &genOpt;
  76.   tabs[1] = &userOpt;
  77.   tabs[2] = &machOpt;
  78.   tabs[3] = &cpuOpt;
  79.  
  80.   genOpt.Create( IDD_GENERALOPT, this );
  81.   userOpt.Create( IDD_USEROPT, this );
  82.   machOpt.Create( IDD_MACHOPT, this );
  83.   cpuOpt.Create( IDD_CPUOPT, this );
  84.  
  85.   genOpt.ShowWindow( SW_SHOW );
  86.   userOpt.ShowWindow( SW_HIDE );
  87.   machOpt.ShowWindow( SW_HIDE );
  88.   cpuOpt.ShowWindow( SW_HIDE );
  89.  
  90.   // calculate overlay window position and size
  91.   RECT r1, r2;
  92.   m_cUpperLeft.GetWindowRect( &r1 );
  93.   ScreenToClient( &r1 );
  94.  
  95.   m_cLowerRight.GetWindowRect( &r2 );
  96.   ScreenToClient( &r2 );
  97.  
  98.   tabs[0]->SetWindowPos( &wndTop, r1.left, r1.top, r2.right-r1.left, r2.bottom-r1.top, SWP_SHOWWINDOW );
  99.  
  100.   for( int i=1; i<4; i++ )
  101.     tabs[i]->SetWindowPos( &wndTop, r1.left, r1.top, r2.right-r1.left, r2.bottom-r1.top, SWP_HIDEWINDOW );
  102.  
  103.   genOpt.UpdateData( FALSE );
  104.   userOpt.UpdateData( FALSE );
  105.   machOpt.UpdateData( FALSE );
  106.   cpuOpt.UpdateData( FALSE );
  107.  
  108.   log( "OnInitDialog von Options zuende" );
  109.  
  110.   return TRUE;
  111. }
  112.  
  113. // CSpeedswitchXPOptions message handlers
  114.  
  115. void CSpeedswitchXPOptions::OnTcnSelchangeTab1( NMHDR *pNMHDR, LRESULT *pResult )
  116. {
  117.   int i = tabCtrl.GetCurSel();
  118.  
  119.   for( int x=0; x<4; x++ )
  120.     tabs[x]->ShowWindow( x==i ? SW_SHOW : SW_HIDE );
  121.  
  122.   *pResult = 0;
  123. }
  124.  
  125. void CSpeedswitchXPOptions::OnOK()
  126. {
  127.   UpdateData();
  128.   genOpt.UpdateData();
  129.   userOpt.UpdateData();
  130.   machOpt.UpdateData();
  131.   cpuOpt.UpdateData();
  132.   cpuOpt.applyChanges( cpuOpt.m_iCStateConfig );
  133.  
  134.   CDialog::OnOK();
  135. }
  136.  
  137. void CSpeedswitchXPOptions::setVars( TOptions& options )
  138. {
  139.   genOpt.m_bAutostart = options.autoStart;
  140.   genOpt.m_bDebugmode = options.debugMode;
  141.   genOpt.m_bMinimizeOnClose = options.minimizeOnClose;
  142.   genOpt.m_bCheckStatus = options.checkStatus;
  143.   genOpt.m_iCheckInterval = options.checkInterval;
  144.   genOpt.m_bReactivate = options.reactivate;
  145.   genOpt.m_bReadCPUSpeed = options.readCPUSpeed;
  146.   genOpt.m_iSpeedMethod = options.speedMethod;
  147.   genOpt.m_bReadCPULoad = options.readCPULoad;
  148.   genOpt.m_bShowDiagram = options.showDiagram;
  149.   genOpt.m_iCPUInterval = options.cpuInterval;
  150.   genOpt.m_iSpeedScaling = options.freqScaling-1;
  151.   genOpt.m_bShowBattery = options.showBattery;
  152.   genOpt.m_iBatteryIndicator = options.batteryIndicator;
  153.   genOpt.m_iBattMethod = options.batteryMethod;
  154.   genOpt.m_bChargeIndicator = options.chargeIndicator;
  155.   genOpt.m_bSpeedIcon = options.speedIcon;
  156.   genOpt.m_bLoadIcon = options.loadIcon;
  157.  
  158.   userOpt.setVars();
  159.   machOpt.setVars();
  160.   cpuOpt.setVars();
  161.   power = cpu = FALSE;
  162. }
  163.  
  164. void CSpeedswitchXPOptions::getVars( TOptions& options )
  165. {
  166.   options.autoStart = genOpt.m_bAutostart;
  167.   options.debugMode = genOpt.m_bDebugmode;
  168.   options.minimizeOnClose = genOpt.m_bMinimizeOnClose;
  169.   options.checkStatus = genOpt.m_bCheckStatus;
  170.   options.checkInterval = genOpt.m_iCheckInterval;
  171.   options.reactivate = genOpt.m_bReactivate;
  172.   options.readCPUSpeed = genOpt.m_bReadCPUSpeed;
  173.   options.speedMethod = genOpt.m_iSpeedMethod;
  174.   options.readCPULoad = genOpt.m_bReadCPULoad;
  175.   options.showDiagram = genOpt.m_bShowDiagram;
  176.   options.cpuInterval = genOpt.m_iCPUInterval;
  177.   options.freqScaling = genOpt.m_iSpeedScaling+1;
  178.   options.showBattery = genOpt.m_bShowBattery;
  179.   options.batteryIndicator = genOpt.m_iBatteryIndicator;
  180.   options.batteryMethod = genOpt.m_iBattMethod;
  181.   options.chargeIndicator = genOpt.m_bChargeIndicator;
  182.   options.speedIcon = genOpt.m_bSpeedIcon;
  183.   options.loadIcon = genOpt.m_bLoadIcon;
  184.  
  185.   userOpt.getVars();
  186.   machOpt.getVars();
  187.   cpuOpt.getVars();
  188.  
  189.   power = userOpt.power || machOpt.power;
  190.   cpu = cpuOpt.cpu;
  191. }
  192.