/[projects]/wxCpuThrottle/src/wxcputhrottleframe.cpp
ViewVC logotype

Annotation of /wxCpuThrottle/src/wxcputhrottleframe.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (hide annotations) (download)
Fri Aug 10 18:12:36 2007 UTC (16 years, 9 months ago) by torben
File size: 3786 byte(s)
A lot of gui modifications, but now the application works as I want it to.

1 torben 20 /***************************************************************************
2     * Copyright (C) 2007 by Torben Nielsen *
3     * torben@t-hoerup.dk *
4     * *
5     * This program is free software; you can redistribute it and/or modify *
6     * it under the terms of the GNU General Public License as published by *
7     * the Free Software Foundation; either version 2 of the License, or *
8     * (at your option) any later version. *
9     * *
10     * This program is distributed in the hope that it will be useful, *
11     * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13     * GNU General Public License for more details. *
14     * *
15     * You should have received a copy of the GNU General Public License *
16     * along with this program; if not, write to the *
17     * Free Software Foundation, Inc., *
18     * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19     ***************************************************************************/
20    
21     #include "wxcputhrottleframe.h"
22    
23 torben 21 #include "SysMetrix.xpm"
24 torben 25 #include <wx/tglbtn.h> //togglebutton
25 torben 21
26 torben 25
27     enum
28     {
29     ID_SLIDER = 2000,
30     ID_RADIOBOX,
31     ID_TIMER
32     };
33    
34 torben 20 BEGIN_EVENT_TABLE( wxCpuThrottleFrame, wxDialog )
35     EVT_CLOSE( wxCpuThrottleFrame::OnClose )
36 torben 25 EVT_TIMER( ID_TIMER, wxCpuThrottleFrame::OnTimer )
37     EVT_RADIOBOX( ID_RADIOBOX, wxCpuThrottleFrame::OnRadiobutton)
38 torben 20 END_EVENT_TABLE()
39    
40    
41 torben 24
42 torben 25
43 torben 24 wxCpuThrottleFrame::wxCpuThrottleFrame( )
44 torben 25 : wxDialog(NULL, -1, wxT("wxCpuThrottle"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE ),
45     mIcon(SysMetrix_xpm),
46     mWritable(true),
47     mTimer(this, ID_TIMER)
48 torben 21 {
49 torben 25 try
50     {
51     mParser.ReadAcpiFile();
52     }
53     catch ( ... )
54     {
55     wxMessageBox("Could not open kernel file - aborting program");
56     OnQuit();
57     }
58    
59     try
60     {
61     mParser.SetState( mParser.GetCurrentState() );
62     }
63     catch ( ...)
64     {
65     mWritable = false;
66     }
67    
68    
69 torben 21 SetIcon(mIcon);
70 torben 24
71 torben 20 mTrayIcon = new TrayIcon(this);
72     mTrayIcon->SetIcon(mIcon,wxT("wxCpuThrottle") );
73 torben 24
74     wxBoxSizer* mainSizer = new wxBoxSizer( wxVERTICAL );
75    
76 torben 25
77     wxArrayString strings;
78     strings.Alloc(mParser.GetStateCount() );
79 torben 24
80 torben 25 for (int i=0; i<mParser.GetStateCount() ; i++)
81     {
82     strings.Add( mParser.GetStateDescription(i) );
83     }
84 torben 24
85 torben 25 mButtonbox = new wxRadioBox(this, ID_RADIOBOX, wxT("Throttle values"), wxDefaultPosition, wxDefaultSize,strings,1);
86    
87     mButtonbox->Enable( mWritable );
88    
89     mainSizer->Add( mButtonbox, 1, wxEXPAND,0);
90    
91 torben 24 SetSizer(mainSizer);
92     mainSizer->SetSizeHints(this );
93    
94 torben 25 mTimer.Start(1000);
95 torben 24
96 torben 25
97 torben 20 }
98    
99 torben 25 void wxCpuThrottleFrame::OnQuit( /*wxCommandEvent& WXUNUSED( event )*/ )
100 torben 20 {
101 torben 25 mTimer.Stop();
102 torben 20 delete mTrayIcon;
103 torben 21 mTrayIcon = 0;
104    
105 torben 20 Close(TRUE);
106     wxExit();
107    
108     }
109    
110     void wxCpuThrottleFrame::OnClose( wxCloseEvent& WXUNUSED( event ) )
111     {
112     Show(false);
113     }
114    
115 torben 25 void wxCpuThrottleFrame::OnTimer( wxTimerEvent& WXUNUSED(event) )
116     {
117     mParser.ReadAcpiFile();
118     mButtonbox->SetSelection( mParser.GetCurrentState() );
119    
120     wxString tooltip = wxT("wxCpuThrottle - ");
121     tooltip += mParser.GetStateDescription( mParser.GetCurrentState() );
122    
123     mTrayIcon->SetIcon( mIcon, tooltip );
124     }
125    
126 torben 21 void wxCpuThrottleFrame::SetPosition()
127     {
128     const int freeBorder = 20;
129     wxSize screenSize = ::wxGetDisplaySize();
130     wxSize mySize = GetSize();
131     Move(screenSize.GetWidth()-mySize.GetWidth() - freeBorder, screenSize.GetHeight() - mySize.GetHeight() - freeBorder);
132     }
133 torben 25
134    
135     void wxCpuThrottleFrame::OnRadiobutton(wxCommandEvent& event)
136     {
137     mParser.SetState( mButtonbox->GetSelection() );
138     }

Properties

Name Value
svn:eol-style native

  ViewVC Help
Powered by ViewVC 1.1.20