summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/volumeapplet/volume.cpp1
-rw-r--r--core/applets/volumeapplet/volumeappletimpl.cpp10
2 files changed, 7 insertions, 4 deletions
diff --git a/core/applets/volumeapplet/volume.cpp b/core/applets/volumeapplet/volume.cpp
index e8921f0..069f8ab 100644
--- a/core/applets/volumeapplet/volume.cpp
+++ b/core/applets/volumeapplet/volume.cpp
@@ -1,240 +1,241 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21 21
22#include "volume.h" 22#include "volume.h"
23 23
24#include <qpe/resource.h> 24#include <qpe/resource.h>
25#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
26#include <qpe/config.h> 26#include <qpe/config.h>
27#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) 27#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP)
28#include <qpe/qcopenvelope_qws.h> 28#include <qpe/qcopenvelope_qws.h>
29#endif 29#endif
30 30
31#include <qpainter.h> 31#include <qpainter.h>
32#include <qcheckbox.h> 32#include <qcheckbox.h>
33#include <qslider.h> 33#include <qslider.h>
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qframe.h> 35#include <qframe.h>
36#include <qpixmap.h> 36#include <qpixmap.h>
37#include <qlabel.h> 37#include <qlabel.h>
38 38
39#include <qpushbutton.h> 39#include <qpushbutton.h>
40#include <qtimer.h> 40#include <qtimer.h>
41 41
42#define RATE_TIMER_INTERVAL 100 42#define RATE_TIMER_INTERVAL 100
43// Ten times per second is fine (RATE_TIMER_INTERVAL 100). A shorter time 43// Ten times per second is fine (RATE_TIMER_INTERVAL 100). A shorter time
44// results in "hanging" buttons on the iPAQ due to quite high CPU consumption. 44// results in "hanging" buttons on the iPAQ due to quite high CPU consumption.
45 45
46VolumeControl::VolumeControl( bool showMic, QWidget *parent, const char *name ) 46VolumeControl::VolumeControl( bool showMic, QWidget *parent, const char *name )
47 : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup ) 47 : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup )
48{ 48{
49 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute
49 setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); 50 setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
50 createView(showMic); 51 createView(showMic);
51} 52}
52 53
53void VolumeControl::createView(bool showMic) 54void VolumeControl::createView(bool showMic)
54{ 55{
55 Config cfg("qpe"); 56 Config cfg("qpe");
56 cfg.setGroup("Volume"); 57 cfg.setGroup("Volume");
57//showMic = TRUE; 58//showMic = TRUE;
58 QHBoxLayout *hboxLayout = new QHBoxLayout(this); 59 QHBoxLayout *hboxLayout = new QHBoxLayout(this);
59 hboxLayout->setMargin( 3 ); 60 hboxLayout->setMargin( 3 );
60 hboxLayout->setSpacing( 0); 61 hboxLayout->setSpacing( 0);
61 62
62 QVBoxLayout *vboxButtons = new QVBoxLayout(this); 63 QVBoxLayout *vboxButtons = new QVBoxLayout(this);
63 upButton = new QPushButton( this ); 64 upButton = new QPushButton( this );
64 upButton->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) ); 65 upButton->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) );
65 upButton->setPixmap( Resource::loadPixmap( "up" ) ); 66 upButton->setPixmap( Resource::loadPixmap( "up" ) );
66 downButton = new QPushButton( this ); 67 downButton = new QPushButton( this );
67 downButton->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) ); 68 downButton->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) );
68 downButton->setPixmap( Resource::loadPixmap( "down" ) ); 69 downButton->setPixmap( Resource::loadPixmap( "down" ) );
69 vboxButtons->setSpacing( 2 ); 70 vboxButtons->setSpacing( 2 );
70 71
71 upButton->setFixedHeight(26); 72 upButton->setFixedHeight(26);
72 downButton->setFixedHeight(26); 73 downButton->setFixedHeight(26);
73 74
74 vboxButtons->addWidget( upButton ); 75 vboxButtons->addWidget( upButton );
75 vboxButtons->addWidget( downButton ); 76 vboxButtons->addWidget( downButton );
76 77
77 QVBoxLayout *vbox = new QVBoxLayout( this ); 78 QVBoxLayout *vbox = new QVBoxLayout( this );
78 QHBoxLayout *hbox = NULL; 79 QHBoxLayout *hbox = NULL;
79 80
80 slider = new QSlider( this ); 81 slider = new QSlider( this );
81 slider->setRange( 0, 100 ); 82 slider->setRange( 0, 100 );
82 slider->setTickmarks( QSlider::Both ); 83 slider->setTickmarks( QSlider::Both );
83 slider->setTickInterval( 20 ); 84 slider->setTickInterval( 20 );
84 slider->setFocusPolicy( QWidget::NoFocus ); 85 slider->setFocusPolicy( QWidget::NoFocus );
85 slider->setValue(cfg.readNumEntry("VolumePercent")); 86 slider->setValue(cfg.readNumEntry("VolumePercent"));
86 87
87 QVBoxLayout *sbox = new QVBoxLayout(this); 88 QVBoxLayout *sbox = new QVBoxLayout(this);
88 sbox->setMargin( 3 ); 89 sbox->setMargin( 3 );
89 sbox->setSpacing( 3 ); 90 sbox->setSpacing( 3 );
90 sbox->addWidget( new QLabel("Vol", this) , 0, Qt::AlignVCenter | Qt::AlignHCenter ); 91 sbox->addWidget( new QLabel("Vol", this) , 0, Qt::AlignVCenter | Qt::AlignHCenter );
91 sbox->addWidget( slider, 0, Qt::AlignVCenter | Qt::AlignHCenter ); 92 sbox->addWidget( slider, 0, Qt::AlignVCenter | Qt::AlignHCenter );
92 93
93// if (showMic == TRUE) { 94// if (showMic == TRUE) {
94 mic = new QSlider(this); 95 mic = new QSlider(this);
95 mic->setRange( 0, 100 ); 96 mic->setRange( 0, 100 );
96 mic->setTickmarks( QSlider::Both ); 97 mic->setTickmarks( QSlider::Both );
97 mic->setTickInterval( 20 ); 98 mic->setTickInterval( 20 );
98 mic->setFocusPolicy( QWidget::NoFocus ); 99 mic->setFocusPolicy( QWidget::NoFocus );
99 mic->setValue(cfg.readNumEntry("Mic")); 100 mic->setValue(cfg.readNumEntry("Mic"));
100 101
101 QVBoxLayout *mbox = new QVBoxLayout(this); 102 QVBoxLayout *mbox = new QVBoxLayout(this);
102 mbox->setMargin( 3 ); 103 mbox->setMargin( 3 );
103 mbox->setSpacing( 3 ); 104 mbox->setSpacing( 3 );
104 mbox->addWidget( new QLabel("Mic", this) , 0, Qt::AlignVCenter | Qt::AlignHCenter ); 105 mbox->addWidget( new QLabel("Mic", this) , 0, Qt::AlignVCenter | Qt::AlignHCenter );
105 mbox->addWidget( mic, 0, Qt::AlignVCenter | Qt::AlignHCenter ); 106 mbox->addWidget( mic, 0, Qt::AlignVCenter | Qt::AlignHCenter );
106 107
107 hbox = new QHBoxLayout( this ); 108 hbox = new QHBoxLayout( this );
108 hbox->setMargin( 3 ); 109 hbox->setMargin( 3 );
109 hbox->setSpacing( 3 ); 110 hbox->setSpacing( 3 );
110 hbox->addLayout( sbox, 1); 111 hbox->addLayout( sbox, 1);
111 hbox->addLayout( mbox, 1); 112 hbox->addLayout( mbox, 1);
112 // } 113 // }
113 114
114 muteBox = new QCheckBox( tr("Mute"), this ); 115 muteBox = new QCheckBox( tr("Mute"), this );
115 muteBox->setFocusPolicy( QWidget::NoFocus ); 116 muteBox->setFocusPolicy( QWidget::NoFocus );
116 117
117 QVBoxLayout *klbox = new QVBoxLayout(this); 118 QVBoxLayout *klbox = new QVBoxLayout(this);
118 119
119 QLabel *Label1; 120 QLabel *Label1;
120 Label1 = new QLabel( this, "Label1" ); 121 Label1 = new QLabel( this, "Label1" );
121 Label1->setText( tr( "Enable Sounds for:" )); 122 Label1->setText( tr( "Enable Sounds for:" ));
122 123
123 alarmSound = new QCheckBox( tr("Alarm Sound"), this ); 124 alarmSound = new QCheckBox( tr("Alarm Sound"), this );
124 alarmSound->setFocusPolicy( QWidget::NoFocus ); 125 alarmSound->setFocusPolicy( QWidget::NoFocus );
125 126
126 keyclicks = new QCheckBox( tr("Key Clicks"), this ); 127 keyclicks = new QCheckBox( tr("Key Clicks"), this );
127 keyclicks->setFocusPolicy( QWidget::NoFocus ); 128 keyclicks->setFocusPolicy( QWidget::NoFocus );
128 129
129 screentaps = new QCheckBox( tr("Screen taps"), this ); 130 screentaps = new QCheckBox( tr("Screen taps"), this );
130 screentaps->setFocusPolicy( QWidget::NoFocus ); 131 screentaps->setFocusPolicy( QWidget::NoFocus );
131 132
132 133
133 keyclicks->setChecked( cfg.readBoolEntry("KeySound",0)); 134 keyclicks->setChecked( cfg.readBoolEntry("KeySound",0));
134 screentaps->setChecked( cfg.readBoolEntry("TouchSound",0)); 135 screentaps->setChecked( cfg.readBoolEntry("TouchSound",0));
135 alarmSound->setChecked( cfg.readBoolEntry("AlarmSound",1)); 136 alarmSound->setChecked( cfg.readBoolEntry("AlarmSound",1));
136 137
137 klbox->setMargin( 3 ); 138 klbox->setMargin( 3 );
138 klbox->setSpacing( 0 ); 139 klbox->setSpacing( 0 );
139 klbox->addWidget( Label1, 1); 140 klbox->addWidget( Label1, 1);
140 klbox->addWidget( alarmSound, 1); 141 klbox->addWidget( alarmSound, 1);
141 klbox->addWidget( keyclicks, 1); 142 klbox->addWidget( keyclicks, 1);
142 klbox->addWidget( screentaps, 1); 143 klbox->addWidget( screentaps, 1);
143 vbox->setMargin( 3 ); 144 vbox->setMargin( 3 );
144 vbox->setSpacing( 0 ); 145 vbox->setSpacing( 0 );
145// if (showMic == TRUE) 146// if (showMic == TRUE)
146 vbox->addLayout( hbox, 1 ); 147 vbox->addLayout( hbox, 1 );
147// else 148// else
148// vbox->addLayout( sbox, 1); 149// vbox->addLayout( sbox, 1);
149 vbox->addWidget( muteBox, 0, Qt::AlignVCenter | Qt::AlignHCenter ); 150 vbox->addWidget( muteBox, 0, Qt::AlignVCenter | Qt::AlignHCenter );
150 151
151 hboxLayout->addLayout( vboxButtons ); 152 hboxLayout->addLayout( vboxButtons );
152 hboxLayout->addLayout( vbox); 153 hboxLayout->addLayout( vbox);
153 hboxLayout->addLayout( klbox); 154 hboxLayout->addLayout( klbox);
154 155
155 156
156 setFixedHeight( 120); 157 setFixedHeight( 120);
157// setFixedWidth( sizeHint().width() ); 158// setFixedWidth( sizeHint().width() );
158 setFocusPolicy(QWidget::NoFocus); 159 setFocusPolicy(QWidget::NoFocus);
159 connect( upButton, SIGNAL( pressed() ), this, SLOT( ButtonChanged() ) ); 160 connect( upButton, SIGNAL( pressed() ), this, SLOT( ButtonChanged() ) );
160 connect( upButton, SIGNAL( released() ), this, SLOT( ButtonChanged() ) ); 161 connect( upButton, SIGNAL( released() ), this, SLOT( ButtonChanged() ) );
161 connect( downButton, SIGNAL( pressed() ), this, SLOT( ButtonChanged() ) ); 162 connect( downButton, SIGNAL( pressed() ), this, SLOT( ButtonChanged() ) );
162 connect( downButton, SIGNAL( released() ), this, SLOT( ButtonChanged() ) ); 163 connect( downButton, SIGNAL( released() ), this, SLOT( ButtonChanged() ) );
163 164
164 rateTimer = new QTimer(this); 165 rateTimer = new QTimer(this);
165 connect( rateTimer, SIGNAL( timeout() ), this, SLOT( rateTimerDone() ) ); 166 connect( rateTimer, SIGNAL( timeout() ), this, SLOT( rateTimerDone() ) );
166} 167}
167 168
168void VolumeControl::keyPressEvent( QKeyEvent *e) 169void VolumeControl::keyPressEvent( QKeyEvent *e)
169{ 170{
170 switch(e->key()) 171 switch(e->key())
171 { 172 {
172 case Key_Up: 173 case Key_Up:
173 slider->subtractStep(); 174 slider->subtractStep();
174 break; 175 break;
175 case Key_Down: 176 case Key_Down:
176 slider->addStep(); 177 slider->addStep();
177 break; 178 break;
178 case Key_Space: 179 case Key_Space:
179 muteBox->toggle(); 180 muteBox->toggle();
180 break; 181 break;
181 case Key_Escape: 182 case Key_Escape:
182 close(); 183 close();
183 break; 184 break;
184 } 185 }
185} 186}
186 187
187void VolumeControl::ButtonChanged() 188void VolumeControl::ButtonChanged()
188{ 189{
189 if ( upButton->isDown() || downButton->isDown() ) 190 if ( upButton->isDown() || downButton->isDown() )
190 { 191 {
191 rateTimerDone(); // Call it one time manually, otherwise it wont get 192 rateTimerDone(); // Call it one time manually, otherwise it wont get
192 // called at all when a button is pressed for a time 193 // called at all when a button is pressed for a time
193 // shorter than RATE_TIMER_INTERVAL. 194 // shorter than RATE_TIMER_INTERVAL.
194 rateTimer->start( RATE_TIMER_INTERVAL, false ); 195 rateTimer->start( RATE_TIMER_INTERVAL, false );
195 } 196 }
196 else 197 else
197 rateTimer->stop(); 198 rateTimer->stop();
198} 199}
199 200
200void VolumeControl::rateTimerDone() 201void VolumeControl::rateTimerDone()
201{ 202{
202 if ( upButton->isDown() ) 203 if ( upButton->isDown() )
203 slider->setValue( slider->value() - 2 ); 204 slider->setValue( slider->value() - 2 );
204 else // downButton->isDown() 205 else // downButton->isDown()
205 slider->setValue( slider->value() + 2 ); 206 slider->setValue( slider->value() + 2 );
206} 207}
207 208
208//=========================================================================== 209//===========================================================================
209 210
210VolumeApplet::VolumeApplet( QWidget *parent, const char *name ) 211VolumeApplet::VolumeApplet( QWidget *parent, const char *name )
211 : QWidget( parent, name ) 212 : QWidget( parent, name )
212{ 213{
213 Config cfg("qpe"); 214 Config cfg("qpe");
214 cfg.setGroup("Volume"); 215 cfg.setGroup("Volume");
215 216
216 setFixedHeight( 18 ); 217 setFixedHeight( 18 );
217 setFixedWidth( 14 ); 218 setFixedWidth( 14 );
218 219
219 volumePixmap = Resource::loadPixmap( "volume" ); 220 volumePixmap = Resource::loadPixmap( "volume" );
220 221
221 volumePercent = cfg.readNumEntry("VolumePercent",50); 222 volumePercent = cfg.readNumEntry("VolumePercent",50);
222 micPercent = cfg.readNumEntry("Mic", 50); 223 micPercent = cfg.readNumEntry("Mic", 50);
223 muted = FALSE; // ### read from pref 224 muted = FALSE; // ### read from pref
224 micMuted = FALSE; // ### read from pref 225 micMuted = FALSE; // ### read from pref
225 226
226 advancedTimer = new QTimer(this); 227 advancedTimer = new QTimer(this);
227 228
228 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) ); 229 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) );
229 connect( qApp, SIGNAL( micChanged(bool) ), this, SLOT ( micChanged(bool) ) ); 230 connect( qApp, SIGNAL( micChanged(bool) ), this, SLOT ( micChanged(bool) ) );
230 connect( advancedTimer, SIGNAL( timeout() ),this, SLOT( advVolControl()) ); 231 connect( advancedTimer, SIGNAL( timeout() ),this, SLOT( advVolControl()) );
231 232
232 writeSystemVolume(); 233 writeSystemVolume();
233 writeSystemMic(); 234 writeSystemMic();
234} 235}
235 236
236VolumeApplet::~VolumeApplet() 237VolumeApplet::~VolumeApplet()
237{ 238{
238} 239}
239 240
240void VolumeApplet::keyPressEvent ( QKeyEvent * e ) 241void VolumeApplet::keyPressEvent ( QKeyEvent * e )
diff --git a/core/applets/volumeapplet/volumeappletimpl.cpp b/core/applets/volumeapplet/volumeappletimpl.cpp
index 676ab61..fb2b79f 100644
--- a/core/applets/volumeapplet/volumeappletimpl.cpp
+++ b/core/applets/volumeapplet/volumeappletimpl.cpp
@@ -1,64 +1,66 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "volume.h" 20#include "volume.h"
21#include "volumeappletimpl.h" 21#include "volumeappletimpl.h"
22#include <qpe/qcopenvelope_qws.h>
22 23
23 24
24VolumeAppletImpl::VolumeAppletImpl() 25VolumeAppletImpl::VolumeAppletImpl()
25 : volume(0), ref(0) 26 : volume(0), ref(0)
26{ 27{
27} 28}
28 29
29VolumeAppletImpl::~VolumeAppletImpl() 30VolumeAppletImpl::~VolumeAppletImpl()
30{ 31{
31 delete volume; 32 delete volume;
32} 33}
33 34
34QWidget *VolumeAppletImpl::applet( QWidget *parent ) 35QWidget *VolumeAppletImpl::applet( QWidget *parent )
35{ 36{
36 if ( !volume ) 37 if ( !volume )
37 volume = new VolumeApplet( parent ); 38 volume = new VolumeApplet( parent );
39 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute
38 return volume; 40 return volume;
39} 41}
40 42
41int VolumeAppletImpl::position() const 43int VolumeAppletImpl::position() const
42{ 44{
43 return 6; 45 return 6;
44} 46}
45 47
46QRESULT VolumeAppletImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 48QRESULT VolumeAppletImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
47{ 49{
48 *iface = 0; 50 *iface = 0;
49 if ( uuid == IID_QUnknown ) 51 if ( uuid == IID_QUnknown )
50 *iface = this; 52 *iface = this;
51 else if ( uuid == IID_TaskbarApplet ) 53 else if ( uuid == IID_TaskbarApplet )
52 *iface = this; 54 *iface = this;
53 55
54 if ( *iface ) 56 if ( *iface )
55 (*iface)->addRef(); 57 (*iface)->addRef();
56 return QS_OK; 58 return QS_OK;
57} 59}
58 60
59Q_EXPORT_INTERFACE() 61Q_EXPORT_INTERFACE()
60{ 62{
61 Q_CREATE_INSTANCE( VolumeAppletImpl ) 63 Q_CREATE_INSTANCE( VolumeAppletImpl )
62} 64}
63 65
64 66