summaryrefslogtreecommitdiff
path: root/core/applets/volumeapplet/volume.h
blob: 454a688068a897ac179a185e11c304acdde7a89f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/**********************************************************************
** Copyright (C) 2000 Trolltech AS.  All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/

#ifndef __VOLUME_APPLET_H__
#define __VOLUME_APPLET_H__


#include <qframe.h>

class QPixmap;
class QTimer;
class QSlider;
class QCheckBox;
class QButton;
class OLedBox;

class VolumeApplet;

class VolumeControl : public QFrame {
	Q_OBJECT
	
public:
	VolumeControl ( VolumeApplet *icon, bool showMic = false, QWidget *parent=0, const char *name=0 );

	bool volMuted ( ) const;
	int volPercent ( ) const;

	virtual void show ( bool showmic );

protected:
	virtual void keyPressEvent ( QKeyEvent * e );
	
protected slots:
	void volumeChanged ( bool muted );
	void micChanged ( bool muted );
	
private slots:
	void volMoved ( int percent );
	void micMoved ( int percent );
	void alarmMoved ( int percent );
	void bassMoved( int percent );
	void trebleMoved( int percent );
	
	void volMuteToggled ( bool );
	void micMuteToggled ( bool );
	void alarmSoundToggled ( bool );
	void keyClickToggled ( bool );
	void screenTapToggled ( bool ); 

	void buttonChanged ( );
	void rateTimerDone ( );
	
private:
	void readConfig ( bool force = false );

	enum eUpdate {
		UPD_None,
		UPD_Vol,
		UPD_Mic,
		UPD_Bass,
		UPD_Treble
	};
	void writeConfigEntry ( const char *entry, int val, eUpdate upd );


private:
	QSlider *volSlider;
	QSlider *bassSlider;
	QSlider *trebleSlider;
	QSlider *micSlider;
	QSlider *alarmSlider;
	OLedBox *volLed;
	OLedBox *micLed;
	OLedBox *alarmLed;
	
	QCheckBox *alarmBox;
	QCheckBox *tapBox;
	QCheckBox *keyBox;
	QPushButton *upButton;
	QPushButton *downButton;
	QTimer *rateTimer;

	int  m_vol_percent;
	int  m_mic_percent;
	int  m_alarm_percent;
	int  m_bass_percent;
	int  m_treble_percent;
	bool m_vol_muted;
	bool m_mic_muted;	
	bool m_snd_alarm;
	bool m_snd_touch;
	bool m_snd_key;

	VolumeApplet *m_icon;	
};

class VolumeApplet : public QWidget {
	Q_OBJECT

public:
	VolumeApplet ( QWidget *parent = 0, const char *name=0 );
	~VolumeApplet ( );
	static int position();

	void redraw ( bool all = true );

protected:
	virtual void mousePressEvent ( QMouseEvent * );
	virtual void paintEvent ( QPaintEvent* );
	
private:
	QPixmap *      m_pixmap;
	VolumeControl *m_dialog;
};


#endif // __VOLUME_APPLET_H__