summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/applet/bluezapplet.cpp
authorharlekin <harlekin>2002-06-01 23:07:22 (UTC)
committer harlekin <harlekin>2002-06-01 23:07:22 (UTC)
commit4a8e6f982a1033b7f2b0406a238503f9acb9a7c5 (patch) (unidiff)
treec85b839b6650ccfd8d63fe3a6ec75425e3a76bd9 /noncore/net/opietooth/applet/bluezapplet.cpp
parent4f5fdda25657f079b5937cbd4b588466c2298304 (diff)
downloadopie-4a8e6f982a1033b7f2b0406a238503f9acb9a7c5.zip
opie-4a8e6f982a1033b7f2b0406a238503f9acb9a7c5.tar.gz
opie-4a8e6f982a1033b7f2b0406a238503f9acb9a7c5.tar.bz2
bluetooth applet for the taskbar
Diffstat (limited to 'noncore/net/opietooth/applet/bluezapplet.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/applet/bluezapplet.cpp199
1 files changed, 199 insertions, 0 deletions
diff --git a/noncore/net/opietooth/applet/bluezapplet.cpp b/noncore/net/opietooth/applet/bluezapplet.cpp
new file mode 100644
index 0000000..9569b36
--- a/dev/null
+++ b/noncore/net/opietooth/applet/bluezapplet.cpp
@@ -0,0 +1,199 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Maximilian Reiss <max.reiss@gmx.de>
4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can
6.> <,   >  .   <= redistribute it and/or modify it under
7:=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more
18++=   -.     .     .: details.
19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with
22    --        :-= this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29
30#include "bluezapplet.h"
31#include <qapplication.h>
32
33#include <qpe/resource.h>
34#include <qpe/qcopenvelope_qws.h>
35#include <qpe/resource.h>
36#include <qpe/config.h>
37
38#include <qpoint.h>
39#include <qpainter.h>
40#include <qlayout.h>
41#include <qframe.h>
42#include <qpixmap.h>
43#include <qstring.h>
44#include <qtimer.h>
45#include <qpopupmenu.h>
46
47#include <device.h>
48
49namespace OpieTooth {
50
51 BluezApplet::BluezApplet( QWidget *parent, const char *name ) : QWidget( parent, name ) {
52 setFixedHeight( 18 );
53 setFixedWidth( 14 );
54 bluezOnPixmap = Resource::loadPixmap( "bluetoothapplet/bluezon" );
55 bluezOffPixmap = Resource::loadPixmap( "bluetoothapplet/bluezoff" );
56 // bluezDiscoveryOnPixmap = Resource::loadPixmap( "bluetoothapplet/magglass" );
57 startTimer(5000);
58 timerEvent(NULL);
59 }
60
61 BluezApplet::~BluezApplet() {
62 }
63
64 int BluezApplet::checkBluezStatus() {
65 if (btDevice->isLoaded() ) {
66 return 1;
67 } else {
68 return 0;
69 }
70 }
71
72 int BluezApplet::setBluezStatus(int c) {
73
74 if (c == 1) {
75 btDevice = new Device("/dev/ttySB0", "scr" );
76 // system("hciattach /dev/ttySB0 csr");
77 //system("hcid");
78 } else {
79 if (btDevice) {
80 delete btDevice;
81 }
82 //system("killall hciattach");
83 //system("killall hcid");
84 }
85 return 0;
86 }
87
88 int BluezApplet::checkBluezDiscoveryStatus() {
89 }
90
91 int BluezApplet::setBluezDiscoveryStatus(int d) {
92 }
93
94 void BluezApplet::mousePressEvent( QMouseEvent *) {
95
96 QPopupMenu *menu = new QPopupMenu();
97 QPopupMenu *signal = new QPopupMenu();
98 int ret=0;
99
100 /* Refresh active state */
101 timerEvent(NULL);
102
103
104 if (bluezactive) {
105 menu->insertItem( tr("Disable Bluetooth"), 0 );
106 } else {
107 menu->insertItem( tr("Enable Bluetooth"), 1 );
108 }
109
110 menu->insertItem( tr("Launch manager"), 2 );
111
112 menu->insertSeparator(6);
113 menu->insertItem( tr("Signal strength"), signal, 5);
114 menu->insertSeparator(8);
115
116 if (bluezDiscoveryActive) {
117 menu->insertItem( tr("Disable discovery"), 3 );
118 } else {
119 menu->insertItem( tr("Enable discovery"), 4 );
120 }
121 //menu->insertItem( tr("More..."), 7 )
122
123 QPoint p = mapToGlobal( QPoint(1, -menu->sizeHint().height()-1) );
124 ret = menu->exec(p, 2);
125
126 // qDebug("ret was %d\n", ret);
127
128 switch(ret) {
129 case 0:
130 setBluezStatus(0);
131 timerEvent(NULL);
132 break;
133 case 1:
134 setBluezStatus(1);
135 timerEvent(NULL);
136 break;
137 case 2:
138 // start bluetoothmanager
139 launchManager();
140 timerEvent(NULL);
141 break;
142 case 3:
143 setBluezDiscoveryStatus(0);
144 timerEvent(NULL);
145 break;
146 case 4:
147 setBluezDiscoveryStatus(1);
148 timerEvent(NULL);
149 break;
150 //case 7:
151 // With table of currently-detected devices.
152 }
153 }
154
155/**
156 * Launches the bluetooth manager
157 */
158 void BluezApplet::launchManager() {
159 QCopEnvelope e("QPE/System", "execute(QString)");
160 e << QString("bluetooth-manager");
161 }
162
163/**
164 * Refresh timer
165 * @param the timer event
166 */
167 void BluezApplet::timerEvent( QTimerEvent * ) {
168 int oldactive = bluezactive;
169 int olddiscovery = bluezDiscoveryActive;
170
171 bluezactive = checkBluezStatus();
172 bluezDiscoveryActive = checkBluezDiscoveryStatus();
173
174 if ((bluezactive != oldactive) || (bluezDiscoveryActive != olddiscovery)) {
175 paintEvent(NULL);
176 }
177 }
178
179/**
180 * Implementation of the paint event
181 * @param the QPaintEvent
182 */
183 void BluezApplet::paintEvent( QPaintEvent* ) {
184 QPainter p(this);
185 qDebug("paint bluetooth pixmap");
186
187 p.eraseRect ( 0, 0, this->width(), this->height() );
188
189 if (bluezactive > 0) {
190 p.drawPixmap( 0, 1, bluezOnPixmap );
191 } else {
192 p.drawPixmap( 0, 1, bluezOffPixmap );
193 }
194
195 if (bluezDiscoveryActive > 0) {
196 p.drawPixmap( 0, 1, bluezDiscoveryOnPixmap );
197 }
198 }
199};