home *** CD-ROM | disk | FTP | other *** search
- /*
- SpeedswitchXP V1.4
- - Windows XP CPU Frequency Control for Notebooks -
-
- Copyright(c) 2002-2004 Christian Diefer
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
- #include "stdafx.h"
- #include "TOptions.h"
- #include "SpeedswitchXP.h"
- #include "SpeedswitchXPOptions.h"
- #include "GeneralOptions.h"
- #include "UserOptions.h"
- #include "MachOptions.h"
- #include "CPUOptions.h"
-
- CGeneralOptions genOpt;
- CUserOptions userOpt;
- CMachOptions machOpt;
- CCPUOptions cpuOpt;
-
- // CSpeedswitchXPOptions dialog
-
- IMPLEMENT_DYNAMIC(CSpeedswitchXPOptions, CDialog)
- CSpeedswitchXPOptions::CSpeedswitchXPOptions(CWnd* pParent /*=NULL*/)
- : CDialog(CSpeedswitchXPOptions::IDD, pParent)
- { }
-
- CSpeedswitchXPOptions::~CSpeedswitchXPOptions()
- { }
-
- void CSpeedswitchXPOptions::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_TAB1, tabCtrl);
- DDX_Control(pDX, IDC_UPPERLEFT, m_cUpperLeft);
- DDX_Control(pDX, IDC_LOWERRIGHT, m_cLowerRight);
- }
-
-
- BEGIN_MESSAGE_MAP(CSpeedswitchXPOptions, CDialog)
- ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTcnSelchangeTab1)
- END_MESSAGE_MAP()
-
-
- BOOL CSpeedswitchXPOptions::OnInitDialog()
- {
- log( "OnInitDialog von Options" );
- CDialog::OnInitDialog();
-
- TC_ITEM TabCtrlItem;
- TabCtrlItem.mask = TCIF_TEXT;
- TabCtrlItem.pszText = "General";
- tabCtrl.InsertItem( 0, &TabCtrlItem );
- TabCtrlItem.pszText = "User policy";
- tabCtrl.InsertItem( 1, &TabCtrlItem );
- TabCtrlItem.pszText = "Machine policy";
- tabCtrl.InsertItem( 2, &TabCtrlItem );
- TabCtrlItem.pszText = "CPU policy";
- tabCtrl.InsertItem( 3, &TabCtrlItem );
-
- tabs[0] = &genOpt;
- tabs[1] = &userOpt;
- tabs[2] = &machOpt;
- tabs[3] = &cpuOpt;
-
- genOpt.Create( IDD_GENERALOPT, this );
- userOpt.Create( IDD_USEROPT, this );
- machOpt.Create( IDD_MACHOPT, this );
- cpuOpt.Create( IDD_CPUOPT, this );
-
- genOpt.ShowWindow( SW_SHOW );
- userOpt.ShowWindow( SW_HIDE );
- machOpt.ShowWindow( SW_HIDE );
- cpuOpt.ShowWindow( SW_HIDE );
-
- // calculate overlay window position and size
- RECT r1, r2;
- m_cUpperLeft.GetWindowRect( &r1 );
- ScreenToClient( &r1 );
-
- m_cLowerRight.GetWindowRect( &r2 );
- ScreenToClient( &r2 );
-
- tabs[0]->SetWindowPos( &wndTop, r1.left, r1.top, r2.right-r1.left, r2.bottom-r1.top, SWP_SHOWWINDOW );
-
- for( int i=1; i<4; i++ )
- tabs[i]->SetWindowPos( &wndTop, r1.left, r1.top, r2.right-r1.left, r2.bottom-r1.top, SWP_HIDEWINDOW );
-
- genOpt.UpdateData( FALSE );
- userOpt.UpdateData( FALSE );
- machOpt.UpdateData( FALSE );
- cpuOpt.UpdateData( FALSE );
-
- log( "OnInitDialog von Options zuende" );
-
- return TRUE;
- }
-
- // CSpeedswitchXPOptions message handlers
-
- void CSpeedswitchXPOptions::OnTcnSelchangeTab1( NMHDR *pNMHDR, LRESULT *pResult )
- {
- int i = tabCtrl.GetCurSel();
-
- for( int x=0; x<4; x++ )
- tabs[x]->ShowWindow( x==i ? SW_SHOW : SW_HIDE );
-
- *pResult = 0;
- }
-
- void CSpeedswitchXPOptions::OnOK()
- {
- UpdateData();
- genOpt.UpdateData();
- userOpt.UpdateData();
- machOpt.UpdateData();
- cpuOpt.UpdateData();
- cpuOpt.applyChanges( cpuOpt.m_iCStateConfig );
-
- CDialog::OnOK();
- }
-
- void CSpeedswitchXPOptions::setVars( TOptions& options )
- {
- genOpt.m_bAutostart = options.autoStart;
- genOpt.m_bDebugmode = options.debugMode;
- genOpt.m_bMinimizeOnClose = options.minimizeOnClose;
- genOpt.m_bCheckStatus = options.checkStatus;
- genOpt.m_iCheckInterval = options.checkInterval;
- genOpt.m_bReactivate = options.reactivate;
- genOpt.m_bReadCPUSpeed = options.readCPUSpeed;
- genOpt.m_iSpeedMethod = options.speedMethod;
- genOpt.m_bReadCPULoad = options.readCPULoad;
- genOpt.m_bShowDiagram = options.showDiagram;
- genOpt.m_iCPUInterval = options.cpuInterval;
- genOpt.m_iSpeedScaling = options.freqScaling-1;
- genOpt.m_bShowBattery = options.showBattery;
- genOpt.m_iBatteryIndicator = options.batteryIndicator;
- genOpt.m_iBattMethod = options.batteryMethod;
- genOpt.m_bChargeIndicator = options.chargeIndicator;
- genOpt.m_bSpeedIcon = options.speedIcon;
- genOpt.m_bLoadIcon = options.loadIcon;
-
- userOpt.setVars();
- machOpt.setVars();
- cpuOpt.setVars();
- power = cpu = FALSE;
- }
-
- void CSpeedswitchXPOptions::getVars( TOptions& options )
- {
- options.autoStart = genOpt.m_bAutostart;
- options.debugMode = genOpt.m_bDebugmode;
- options.minimizeOnClose = genOpt.m_bMinimizeOnClose;
- options.checkStatus = genOpt.m_bCheckStatus;
- options.checkInterval = genOpt.m_iCheckInterval;
- options.reactivate = genOpt.m_bReactivate;
- options.readCPUSpeed = genOpt.m_bReadCPUSpeed;
- options.speedMethod = genOpt.m_iSpeedMethod;
- options.readCPULoad = genOpt.m_bReadCPULoad;
- options.showDiagram = genOpt.m_bShowDiagram;
- options.cpuInterval = genOpt.m_iCPUInterval;
- options.freqScaling = genOpt.m_iSpeedScaling+1;
- options.showBattery = genOpt.m_bShowBattery;
- options.batteryIndicator = genOpt.m_iBatteryIndicator;
- options.batteryMethod = genOpt.m_iBattMethod;
- options.chargeIndicator = genOpt.m_bChargeIndicator;
- options.speedIcon = genOpt.m_bSpeedIcon;
- options.loadIcon = genOpt.m_bLoadIcon;
-
- userOpt.getVars();
- machOpt.getVars();
- cpuOpt.getVars();
-
- power = userOpt.power || machOpt.power;
- cpu = cpuOpt.cpu;
- }
-