-rw-r--r-- | core/launcher/taskbar.cpp | 119 |
1 files changed, 45 insertions, 74 deletions
diff --git a/core/launcher/taskbar.cpp b/core/launcher/taskbar.cpp index 8af568d..feeba79 100644 --- a/core/launcher/taskbar.cpp +++ b/core/launcher/taskbar.cpp | |||
@@ -32,77 +32,50 @@ | |||
32 | #include <qpe/qpeapplication.h> | 32 | #include <qpe/qpeapplication.h> |
33 | #include <qpe/qcopenvelope_qws.h> | 33 | #include <qpe/qcopenvelope_qws.h> |
34 | #include <qpe/global.h> | 34 | #include <qpe/global.h> |
35 | 35 | ||
36 | #if defined( QT_QWS_SL5XXX ) || defined( QT_QWS_IPAQ ) | 36 | #if defined( QT_QWS_SL5XXX ) || defined( QT_QWS_IPAQ ) |
37 | #include <qpe/custom.h> | 37 | #include <qpe/custom.h> |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | #include <opie/odevice.h> | 40 | #include <opie/odevice.h> |
41 | 41 | ||
42 | #include <qlabel.h> | 42 | #include <qlabel.h> |
43 | #include <qlayout.h> | 43 | #include <qlayout.h> |
44 | #include <qtimer.h> | 44 | #include <qtimer.h> |
45 | #include <qwindowsystem_qws.h> | 45 | #include <qwindowsystem_qws.h> |
46 | #include <qwidgetstack.h> | 46 | #include <qwidgetstack.h> |
47 | 47 | ||
48 | #if defined( Q_WS_QWS ) | 48 | #if defined( Q_WS_QWS ) |
49 | #include <qwsdisplay_qws.h> | 49 | #include <qwsdisplay_qws.h> |
50 | #include <qgfx_qws.h> | 50 | #include <qgfx_qws.h> |
51 | #endif | 51 | #endif |
52 | 52 | ||
53 | 53 | ||
54 | using namespace Opie; | 54 | using namespace Opie; |
55 | 55 | ||
56 | #define FACTORY(T) \ | ||
57 | static QWidget *new##T( bool maximized ) { \ | ||
58 | QWidget *w = new T( 0, "test", QWidget::WDestructiveClose | QWidget::WGroupLeader ); \ | ||
59 | if ( maximized ) { \ | ||
60 | if ( qApp->desktop()->width() <= 350 ) { \ | ||
61 | w->showMaximized(); \ | ||
62 | } else { \ | ||
63 | w->resize( QSize( 300, 300 ) ); \ | ||
64 | } \ | ||
65 | } \ | ||
66 | w->show(); \ | ||
67 | return w; \ | ||
68 | } | ||
69 | |||
70 | |||
71 | #ifdef SINGLE_APP | ||
72 | #define APP(a,b,c,d) FACTORY(b) | ||
73 | #include "../launcher/apps.h" | ||
74 | #undef APP | ||
75 | #endif // SINGLE_APP | ||
76 | |||
77 | static Global::Command builtins[] = { | 56 | static Global::Command builtins[] = { |
78 | 57 | ||
79 | #ifdef SINGLE_APP | ||
80 | #define APP(a,b,c,d) { a, new##b, c }, | ||
81 | #include "../launcher/apps.h" | ||
82 | #undef APP | ||
83 | #endif | ||
84 | |||
85 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_SL5XXX) | 58 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_SL5XXX) |
86 | { "calibrate", TaskBar::calibrate, 1, 0 }, | 59 | { "calibrate", TaskBar::calibrate, 1, 0 }, |
87 | #endif | 60 | #endif |
88 | #if !defined(QT_QWS_CASSIOPEIA) | 61 | #if !defined(QT_QWS_CASSIOPEIA) |
89 | { "shutdown", Global::shutdown, 1, 0 }, | 62 | { "shutdown", Global::shutdown, 1, 0 }, |
90 | // { "run", run, 1, 0 }, | 63 | // { "run", run, 1, 0 }, |
91 | #endif | 64 | #endif |
92 | 65 | ||
93 | { 0, TaskBar::calibrate, 0, 0 }, | 66 | { 0, TaskBar::calibrate, 0, 0 }, |
94 | }; | 67 | }; |
95 | 68 | ||
96 | static bool initNumLock() | 69 | static bool initNumLock() |
97 | { | 70 | { |
98 | #ifdef QPE_INITIAL_NUMLOCK_STATE | 71 | #ifdef QPE_INITIAL_NUMLOCK_STATE |
99 | QPE_INITIAL_NUMLOCK_STATE | 72 | QPE_INITIAL_NUMLOCK_STATE |
100 | #endif | 73 | #endif |
101 | return FALSE; | 74 | return FALSE; |
102 | } | 75 | } |
103 | 76 | ||
104 | class LockKeyState : public QWidget | 77 | class LockKeyState : public QWidget |
105 | { | 78 | { |
106 | public: | 79 | public: |
107 | LockKeyState( QWidget *parent ) : | 80 | LockKeyState( QWidget *parent ) : |
108 | QWidget(parent), | 81 | QWidget(parent), |
@@ -130,57 +103,53 @@ public: | |||
130 | if ( nl ) | 103 | if ( nl ) |
131 | p.drawPixmap(1,y,nl_pm); | 104 | p.drawPixmap(1,y,nl_pm); |
132 | if ( cl ) | 105 | if ( cl ) |
133 | p.drawPixmap(1,y+nl_pm.height()+1,cl_pm); | 106 | p.drawPixmap(1,y+nl_pm.height()+1,cl_pm); |
134 | } | 107 | } |
135 | private: | 108 | private: |
136 | QPixmap nl_pm, cl_pm; | 109 | QPixmap nl_pm, cl_pm; |
137 | bool nl, cl; | 110 | bool nl, cl; |
138 | }; | 111 | }; |
139 | 112 | ||
140 | TaskBar::~TaskBar() | 113 | TaskBar::~TaskBar() |
141 | { | 114 | { |
142 | } | 115 | } |
143 | 116 | ||
144 | 117 | ||
145 | TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader) | 118 | TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader) |
146 | { | 119 | { |
147 | Global::setBuiltinCommands(builtins); | 120 | Global::setBuiltinCommands(builtins); |
148 | 121 | ||
149 | sm = new StartMenu( this ); | 122 | sm = new StartMenu( this ); |
150 | 123 | ||
151 | inputMethods = new InputMethods( this ); | 124 | inputMethods = new InputMethods( this ); |
152 | connect( inputMethods, SIGNAL(inputToggled(bool)), | 125 | connect( inputMethods, SIGNAL(inputToggled(bool)), |
153 | this, SLOT(calcMaxWindowRect()) ); | 126 | this, SLOT(calcMaxWindowRect()) ); |
154 | //new QuickLauncher( this ); | ||
155 | 127 | ||
156 | stack = new QWidgetStack( this ); | 128 | stack = new QWidgetStack( this ); |
157 | stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) ); | 129 | stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) ); |
158 | label = new QLabel(stack); | 130 | label = new QLabel(stack); |
159 | 131 | ||
160 | //mru = new MRUList( stack ); | ||
161 | //stack->raiseWidget( mru ); | ||
162 | |||
163 | runningAppBar = new RunningAppBar(stack); | 132 | runningAppBar = new RunningAppBar(stack); |
164 | stack->raiseWidget(runningAppBar); | 133 | stack->raiseWidget(runningAppBar); |
165 | 134 | ||
166 | waitIcon = new Wait( this ); | 135 | waitIcon = new Wait( this ); |
167 | (void) new AppIcons( this ); | 136 | (void) new AppIcons( this ); |
168 | 137 | ||
169 | sysTray = new SysTray( this ); | 138 | sysTray = new SysTray( this ); |
170 | 139 | ||
171 | // ## make customizable in some way? | 140 | // ## make customizable in some way? |
172 | lockState = new LockKeyState( this ); | 141 | lockState = new LockKeyState( this ); |
173 | 142 | ||
174 | #if defined(Q_WS_QWS) | 143 | #if defined(Q_WS_QWS) |
175 | #if !defined(QT_NO_COP) | 144 | #if !defined(QT_NO_COP) |
176 | QCopChannel *channel = new QCopChannel( "QPE/TaskBar", this ); | 145 | QCopChannel *channel = new QCopChannel( "QPE/TaskBar", this ); |
177 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 146 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), |
178 | this, SLOT(receive(const QCString&, const QByteArray&)) ); | 147 | this, SLOT(receive(const QCString&, const QByteArray&)) ); |
179 | #endif | 148 | #endif |
180 | #endif | 149 | #endif |
181 | waitTimer = new QTimer( this ); | 150 | waitTimer = new QTimer( this ); |
182 | connect( waitTimer, SIGNAL( timeout() ), this, SLOT( stopWait() ) ); | 151 | connect( waitTimer, SIGNAL( timeout() ), this, SLOT( stopWait() ) ); |
183 | clearer = new QTimer( this ); | 152 | clearer = new QTimer( this ); |
184 | QObject::connect(clearer, SIGNAL(timeout()), SLOT(clearStatusBar())); | 153 | QObject::connect(clearer, SIGNAL(timeout()), SLOT(clearStatusBar())); |
185 | QObject::connect(clearer, SIGNAL(timeout()), sysTray, SLOT(show())); | 154 | QObject::connect(clearer, SIGNAL(timeout()), sysTray, SLOT(show())); |
186 | } | 155 | } |
@@ -241,104 +210,106 @@ void TaskBar::styleChange( QStyle &s ) | |||
241 | void TaskBar::calcMaxWindowRect() | 210 | void TaskBar::calcMaxWindowRect() |
242 | { | 211 | { |
243 | #ifdef Q_WS_QWS | 212 | #ifdef Q_WS_QWS |
244 | QRect wr; | 213 | QRect wr; |
245 | int displayWidth = qApp->desktop()->width(); | 214 | int displayWidth = qApp->desktop()->width(); |
246 | QRect ir = inputMethods->inputRect(); | 215 | QRect ir = inputMethods->inputRect(); |
247 | if ( ir.isValid() ) { | 216 | if ( ir.isValid() ) { |
248 | wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); | 217 | wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); |
249 | } else { | 218 | } else { |
250 | wr.setCoords( 0, 0, displayWidth-1, y()-1 ); | 219 | wr.setCoords( 0, 0, displayWidth-1, y()-1 ); |
251 | } | 220 | } |
252 | 221 | ||
253 | #if QT_VERSION < 300 | 222 | #if QT_VERSION < 300 |
254 | QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr, | 223 | QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr, |
255 | QSize(qt_screen->width(),qt_screen->height())) | 224 | QSize(qt_screen->width(),qt_screen->height())) |
256 | ); | 225 | ); |
257 | #else | 226 | #else |
258 | QWSServer::setMaxWindowRect( wr ); | 227 | QWSServer::setMaxWindowRect( wr ); |
259 | #endif | 228 | #endif |
260 | #endif | 229 | #endif |
261 | } | 230 | } |
262 | 231 | ||
263 | void TaskBar::receive( const QCString &msg, const QByteArray &data ) | 232 | void TaskBar::receive( const QCString &msg, const QByteArray &data ) |
264 | { | 233 | { |
265 | QDataStream stream( data, IO_ReadOnly ); | 234 | QDataStream stream( data, IO_ReadOnly ); |
266 | if ( msg == "message(QString)" ) { | 235 | if ( msg == "message(QString)" ) { |
267 | QString text; | 236 | QString text; |
268 | stream >> text; | 237 | stream >> text; |
269 | setStatusMessage( text ); | 238 | setStatusMessage( text ); |
270 | } else if ( msg == "hideInputMethod()" ) { | 239 | } else if ( msg == "hideInputMethod()" ) { |
271 | inputMethods->hideInputMethod(); | 240 | inputMethods->hideInputMethod(); |
272 | } else if ( msg == "showInputMethod()" ) { | 241 | } else if ( msg == "showInputMethod()" ) { |
273 | inputMethods->showInputMethod(); | 242 | inputMethods->showInputMethod(); |
274 | } else if ( msg == "reloadInputMethods()" ) { | 243 | } else if ( msg == "reloadInputMethods()" ) { |
275 | inputMethods->loadInputMethods(); | 244 | inputMethods->loadInputMethods(); |
276 | } else if ( msg == "reloadApps()" ) { | 245 | } else if ( msg == "toggleInputMethod()" ) { |
277 | sm->reloadApps(); | 246 | inputMethods->shown() ? inputMethods->hideInputMethod() : inputMethods->showInputMethod(); |
278 | } else if ( msg == "reloadApplets()" ) { | 247 | } else if ( msg == "reloadApps()" ) { |
279 | sysTray->clearApplets(); | 248 | sm->reloadApps(); |
280 | sysTray->addApplets(); | 249 | } else if ( msg == "reloadApplets()" ) { |
281 | sm->reloadApplets(); | 250 | sysTray->clearApplets(); |
282 | } else if ( msg == "soundAlarm()" ) { | 251 | sysTray->addApplets(); |
283 | DesktopApplication::soundAlarm ( ); | 252 | sm->reloadApplets(); |
284 | } | 253 | } else if ( msg == "soundAlarm()" ) { |
285 | else if ( msg == "setLed(int,bool)" ) { | 254 | DesktopApplication::soundAlarm ( ); |
286 | int led, status; | 255 | } |
287 | stream >> led >> status; | 256 | else if ( msg == "setLed(int,bool)" ) { |
288 | 257 | int led, status; | |
289 | QValueList <OLed> ll = ODevice::inst ( )-> ledList ( ); | 258 | stream >> led >> status; |
290 | if ( ll. count ( )){ | 259 | |
291 | OLed l = ll. contains ( Led_Mail ) ? Led_Mail : ll [0]; | 260 | QValueList <OLed> ll = ODevice::inst ( )-> ledList ( ); |
292 | bool canblink = ODevice::inst ( )-> ledStateList ( l ). contains ( Led_BlinkSlow ); | 261 | if ( ll. count ( )){ |
293 | 262 | OLed l = ll. contains ( Led_Mail ) ? Led_Mail : ll [0]; | |
294 | ODevice::inst ( )-> setLedState ( l, status ? ( canblink ? Led_BlinkSlow : Led_On ) : Led_Off ); | 263 | bool canblink = ODevice::inst ( )-> ledStateList ( l ). contains ( Led_BlinkSlow ); |
295 | } | 264 | |
296 | } | 265 | ODevice::inst ( )-> setLedState ( l, status ? ( canblink ? Led_BlinkSlow : Led_On ) : Led_Off ); |
297 | else if ( msg == "toggleMenu()" ) { | 266 | } |
298 | if ( sm-> launchMenu-> isVisible ( )) | 267 | } |
299 | sm-> launch ( ); | 268 | else if ( msg == "toggleMenu()" ) { |
300 | else { | 269 | if ( sm-> launchMenu-> isVisible ( )) |
301 | QCopEnvelope e ( "QPE/System", "toggleApplicationMenu()" ); | 270 | sm-> launch ( ); |
302 | } | 271 | else { |
303 | } | 272 | QCopEnvelope e ( "QPE/System", "toggleApplicationMenu()" ); |
304 | else if ( msg == "toggleStartMenu()" ) { | 273 | } |
305 | sm-> launch ( ); | 274 | } |
306 | } | 275 | else if ( msg == "toggleStartMenu()" ) { |
276 | sm-> launch ( ); | ||
277 | } | ||
307 | } | 278 | } |
308 | 279 | ||
309 | QWidget *TaskBar::calibrate(bool) | 280 | QWidget *TaskBar::calibrate(bool) |
310 | { | 281 | { |
311 | #ifdef Q_WS_QWS | 282 | #ifdef Q_WS_QWS |
312 | Calibrate *c = new Calibrate; | 283 | Calibrate *c = new Calibrate; |
313 | c->show(); | 284 | c->show(); |
314 | return c; | 285 | return c; |
315 | #else | 286 | #else |
316 | return 0; | 287 | return 0; |
317 | #endif | 288 | #endif |
318 | } | 289 | } |
319 | 290 | ||
320 | void TaskBar::toggleNumLockState() | 291 | void TaskBar::toggleNumLockState() |
321 | { | 292 | { |
322 | if ( lockState ) lockState->toggleNumLockState(); | 293 | if ( lockState ) lockState->toggleNumLockState(); |
323 | } | 294 | } |
324 | 295 | ||
325 | void TaskBar::toggleCapsLockState() | 296 | void TaskBar::toggleCapsLockState() |
326 | { | 297 | { |
327 | if ( lockState ) lockState->toggleCapsLockState(); | 298 | if ( lockState ) lockState->toggleCapsLockState(); |
328 | } | 299 | } |
329 | 300 | ||
330 | void TaskBar::toggleSymbolInput() | 301 | void TaskBar::toggleSymbolInput() |
331 | { | 302 | { |
332 | if ( inputMethods->currentShown() == "Unicode" ) { | 303 | if ( inputMethods->currentShown() == "Unicode" ) { |
333 | inputMethods->hideInputMethod(); | 304 | inputMethods->hideInputMethod(); |
334 | } else { | 305 | } else { |
335 | inputMethods->showInputMethod("Unicode"); | 306 | inputMethods->showInputMethod("Unicode"); |
336 | } | 307 | } |
337 | } | 308 | } |
338 | 309 | ||
339 | bool TaskBar::recoverMemory() | 310 | bool TaskBar::recoverMemory() |
340 | { | 311 | { |
341 | //eturn mru->quitOldApps(); | 312 | //mru->quitOldApps() is no longer supported |
342 | return true; | 313 | return true; |
343 | } | 314 | } |
344 | 315 | ||