summaryrefslogtreecommitdiff
path: root/library
Unidiff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/applicationinterface.h33
-rw-r--r--library/fontfactoryinterface.h15
-rw-r--r--library/imagecodecinterface.h13
-rw-r--r--library/qpeapplication.cpp6
-rw-r--r--library/qpeapplication.h40
-rw-r--r--library/styleinterface.h24
6 files changed, 116 insertions, 15 deletions
diff --git a/library/applicationinterface.h b/library/applicationinterface.h
index b37a2c5..b7648f6 100644
--- a/library/applicationinterface.h
+++ b/library/applicationinterface.h
@@ -1,32 +1,65 @@
1/* 1/*
2 * GPLv2 (C) 2002-2003 Trolltech 2 * GPLv2 (C) 2002-2003 Trolltech
3 * (C) 2003 zecke@handhelds.org 3 * (C) 2003 zecke@handhelds.org
4 */ 4 */
5 5
6 6
7#ifndef APPLICATIONINTERFACE_H 7#ifndef APPLICATIONINTERFACE_H
8#define APPLICATIONINTERFACE_H 8#define APPLICATIONINTERFACE_H
9 9
10#include <qstringlist.h> 10#include <qstringlist.h>
11#include <qtopia/qcom.h> 11#include <qtopia/qcom.h>
12 12
13#ifndef QT_NO_COMPONENT 13#ifndef QT_NO_COMPONENT
14// {07E15B48-B947-4334-B866-D2AD58157D8C} 14// {07E15B48-B947-4334-B866-D2AD58157D8C}
15#ifndef IID_QtopiaApplication 15#ifndef IID_QtopiaApplication
16#define IID_QtopiaApplication QUuid( 0x07e15b48, 0xb947, 0x4334, 0xb8, 0x66, 0xd2, 0xad, 0x58, 0x15, 0x7d, 0x8c) 16#define IID_QtopiaApplication QUuid( 0x07e15b48, 0xb947, 0x4334, 0xb8, 0x66, 0xd2, 0xad, 0x58, 0x15, 0x7d, 0x8c)
17#endif 17#endif
18#endif 18#endif
19 19
20
21/**
22 * \brief Application interface currently used by the quicklaunch framework
23 *
24 * This is the interface to be exposed by applications available as DSO
25 * Normally one would use the OApplicationFactory which does the magic of
26 * exposing the interface.
27 *
28 *
29 * Resulting dynamic shared objects (dso) need to go into the
30 * OPIEDIR/plugins/application.
31 *
32 *
33 * You can use this interface to load applications into your application.
34 * @todo Implement Services + Trader
35 * @since Opie 1.0.2
36 */
20struct ApplicationInterface : public QUnknownInterface 37struct ApplicationInterface : public QUnknownInterface
21{ 38{
22public: 39public:
40
41 /**
42 * \brief create the mainwindow for the giving application name
43 * Create a main window for the giving application name
44 *
45 * @param appName The application widget to be created
46 * @param parent The parent of the newly created widget
47 * @param name The name of the QObject
48 * @param f Possible Window Flags
49 *
50 * @return the widget or 0l
51 */
23 virtual QWidget *createMainWindow( const QString &appName, QWidget *parent=0, 52 virtual QWidget *createMainWindow( const QString &appName, QWidget *parent=0,
24 const char *name=0, Qt::WFlags f=0 ) = 0; 53 const char *name=0, Qt::WFlags f=0 ) = 0;
54
55 /**
56 * The list of application windows supported
57 */
25 virtual QStringList applications() const = 0; 58 virtual QStringList applications() const = 0;
26}; 59};
27 60
28/* 61/*
29 * Use an extended interface for QObejct, Opie::Part in the future 62 * Use an extended interface for QObejct, Opie::Part in the future
30 */ 63 */
31 64
32#endif 65#endif
diff --git a/library/fontfactoryinterface.h b/library/fontfactoryinterface.h
index ed65dfa..68b0be5 100644
--- a/library/fontfactoryinterface.h
+++ b/library/fontfactoryinterface.h
@@ -1,41 +1,56 @@
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#ifndef FONTFACTORYINTERFACE_H 20#ifndef FONTFACTORYINTERFACE_H
21#define FONTFACTORYINTERFACE_H 21#define FONTFACTORYINTERFACE_H
22 22
23#include <qnamespace.h> 23#include <qnamespace.h>
24#include <qstring.h> 24#include <qstring.h>
25#include <qpe/qcom.h> 25#include <qpe/qcom.h>
26 26
27class QFontFactory; 27class QFontFactory;
28 28
29#ifndef QT_NO_COMPONENT 29#ifndef QT_NO_COMPONENT
30// {7F194DD6-FAA3-498F-8F30-9C297A570DFA} 30// {7F194DD6-FAA3-498F-8F30-9C297A570DFA}
31#ifndef IID_FontFactory 31#ifndef IID_FontFactory
32#define IID_FontFactory QUuid( 0x7f194dd6, 0xfaa3, 0x498f, 0x8f, 0x30, 0x9c, 0x29, 0x7a, 0x57, 0x0d, 0xfa) 32#define IID_FontFactory QUuid( 0x7f194dd6, 0xfaa3, 0x498f, 0x8f, 0x30, 0x9c, 0x29, 0x7a, 0x57, 0x0d, 0xfa)
33#endif 33#endif
34#endif 34#endif
35 35
36
37/**
38 * \brief Interface for additional Font Factories
39 *
40 * To add special types of fonts TrueTypes or your very own
41 * format. If you implement this Interface you can add
42 * custom font loading.
43 *
44 * The dynamic shared object goes to
45 * OPIEDIR/plugins/fontfactories.
46 *
47 * As of version Opie 1.0.2 loading of the plugins is not
48 * yet implemented
49 *
50 */
36struct FontFactoryInterface : public QUnknownInterface 51struct FontFactoryInterface : public QUnknownInterface
37{ 52{
38 virtual QFontFactory *fontFactory() = 0; 53 virtual QFontFactory *fontFactory() = 0;
39}; 54};
40 55
41#endif 56#endif
diff --git a/library/imagecodecinterface.h b/library/imagecodecinterface.h
index 8306b68..3b1cd7b 100644
--- a/library/imagecodecinterface.h
+++ b/library/imagecodecinterface.h
@@ -1,39 +1,52 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the 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#ifndef IMAGECODECINTERFACE_H 20#ifndef IMAGECODECINTERFACE_H
21#define IMAGECODECINTERFACE_H 21#define IMAGECODECINTERFACE_H
22 22
23#include <qstringlist.h> 23#include <qstringlist.h>
24#include <qpe/qcom.h> 24#include <qpe/qcom.h>
25 25
26#ifndef QT_NO_COMPONENT 26#ifndef QT_NO_COMPONENT
27#ifndef IID_QtopiaImageCodec 27#ifndef IID_QtopiaImageCodec
28#define IID_QtopiaImageCodec QUuid(0x09bf6906, 0x1549, 0xbb4a, 0x18, 0xba, 0xb9, 0xe7, 0x0a, 0x6e, 0x4d, 0x1e) 28#define IID_QtopiaImageCodec QUuid(0x09bf6906, 0x1549, 0xbb4a, 0x18, 0xba, 0xb9, 0xe7, 0x0a, 0x6e, 0x4d, 0x1e)
29#endif 29#endif
30#endif 30#endif
31 31
32
33/**
34 *
35 * \brief add Image Codecs
36 *
37 * This interface will be queried to add new Image loading
38 * and saving routines.
39 *
40 * The ImageCodec needs to be placed in OPIEDIR/plugins/imagecodecs.
41 *
42 * @see QImage
43 * @see QImageIO
44 **/
32struct ImageCodecInterface : public QUnknownInterface 45struct ImageCodecInterface : public QUnknownInterface
33{ 46{
34public: 47public:
35 virtual QStringList keys() const = 0; 48 virtual QStringList keys() const = 0;
36 virtual bool installIOHandler( const QString &format ) = 0; 49 virtual bool installIOHandler( const QString &format ) = 0;
37}; 50};
38 51
39#endif 52#endif
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index a97efc0..6f2e43b 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -374,130 +374,130 @@ static void setMic( int t = 0, int percent = -1 )
374 cfg.setGroup( "Volume" ); 374 cfg.setGroup( "Volume" );
375 if ( percent < 0 ) 375 if ( percent < 0 )
376 percent = cfg.readNumEntry( "Mic", 50 ); 376 percent = cfg.readNumEntry( "Mic", 50 );
377 377
378#ifndef QT_NO_SOUND 378#ifndef QT_NO_SOUND
379 int fd = 0; 379 int fd = 0;
380 int mic = micMuted ? 0 : percent; 380 int mic = micMuted ? 0 : percent;
381 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { 381 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) {
382 ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic ); 382 ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic );
383 ::close( fd ); 383 ::close( fd );
384 } 384 }
385#endif 385#endif
386 } 386 }
387 break; 387 break;
388 } 388 }
389} 389}
390 390
391 391
392static void setBass( int t = 0, int percent = -1 ) 392static void setBass( int t = 0, int percent = -1 )
393{ 393{
394 switch ( t ) { 394 switch ( t ) {
395 case 0: { 395 case 0: {
396 Config cfg( "qpe" ); 396 Config cfg( "qpe" );
397 cfg.setGroup( "Volume" ); 397 cfg.setGroup( "Volume" );
398 if ( percent < 0 ) 398 if ( percent < 0 )
399 percent = cfg.readNumEntry( "BassPercent", 50 ); 399 percent = cfg.readNumEntry( "BassPercent", 50 );
400 400
401#ifndef QT_NO_SOUND 401#ifndef QT_NO_SOUND
402 int fd = 0; 402 int fd = 0;
403 int bass = percent; 403 int bass = percent;
404 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { 404 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) {
405 ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass ); 405 ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass );
406 ::close( fd ); 406 ::close( fd );
407 } 407 }
408#endif 408#endif
409 } 409 }
410 break; 410 break;
411 } 411 }
412} 412}
413 413
414 414
415static void setTreble( int t = 0, int percent = -1 ) 415static void setTreble( int t = 0, int percent = -1 )
416{ 416{
417 switch ( t ) { 417 switch ( t ) {
418 case 0: { 418 case 0: {
419 Config cfg( "qpe" ); 419 Config cfg( "qpe" );
420 cfg.setGroup( "Volume" ); 420 cfg.setGroup( "Volume" );
421 if ( percent < 0 ) 421 if ( percent < 0 )
422 percent = cfg.readNumEntry( "TreblePercent", 50 ); 422 percent = cfg.readNumEntry( "TreblePercent", 50 );
423 423
424#ifndef QT_NO_SOUND 424#ifndef QT_NO_SOUND
425 int fd = 0; 425 int fd = 0;
426 int treble = percent; 426 int treble = percent;
427 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { 427 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) {
428 ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble ); 428 ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble );
429 ::close( fd ); 429 ::close( fd );
430 } 430 }
431#endif 431#endif
432 } 432 }
433 break; 433 break;
434 } 434 }
435} 435}
436 436
437 437
438/*! 438/**
439 \class QPEApplication qpeapplication.h 439 \class QPEApplication
440 \brief The QPEApplication class implements various system services 440 \brief The QPEApplication class implements various system services
441 that are available to all Qtopia applications. 441 that are available to all Qtopia applications.
442 442
443 Simply by using QPEApplication instead of QApplication, a standard Qt 443 Simply by using QPEApplication instead of QApplication, a standard Qt
444 application becomes a Qtopia application. It automatically follows 444 application becomes a Qtopia application. It automatically follows
445 style changes, quits and raises, and in the 445 style changes, quits and raises, and in the
446 case of \link docwidget.html document-oriented\endlink applications, 446 case of \link docwidget.html document-oriented\endlink applications,
447 changes the currently displayed document in response to the environment. 447 changes the currently displayed document in response to the environment.
448 448
449 To create a \link docwidget.html document-oriented\endlink 449 To create a \link docwidget.html document-oriented\endlink
450 application use showMainDocumentWidget(); to create a 450 application use showMainDocumentWidget(); to create a
451 non-document-oriented application use showMainWidget(). The 451 non-document-oriented application use showMainWidget(). The
452 keepRunning() function indicates whether the application will 452 keepRunning() function indicates whether the application will
453 continue running after it's processed the last \link qcop.html 453 continue running after it's processed the last \link qcop.html
454 QCop\endlink message. This can be changed using setKeepRunning(). 454 QCop\endlink message. This can be changed using setKeepRunning().
455 455
456 A variety of signals are emitted when certain events occur, for 456 A variety of signals are emitted when certain events occur, for
457 example, timeChanged(), clockChanged(), weekChanged(), 457 example, timeChanged(), clockChanged(), weekChanged(),
458 dateFormatChanged() and volumeChanged(). If the application receives 458 dateFormatChanged() and volumeChanged(). If the application receives
459 a \link qcop.html QCop\endlink message on the application's 459 a \link qcop.html QCop\endlink message on the application's
460 QPE/Application/\e{appname} channel, the appMessage() signal is 460 QPE/Application/\e{appname} channel, the appMessage() signal is
461 emitted. There are also flush() and reload() signals, which 461 emitted. There are also flush() and reload() signals, which
462 are emitted when synching begins and ends respectively - upon these 462 are emitted when synching begins and ends respectively - upon these
463 signals, the application should save and reload any data 463 signals, the application should save and reload any data
464 files that are involved in synching. Most of these signals will initially 464 files that are involved in synching. Most of these signals will initially
465 be received and unfiltered through the appMessage() signal. 465 be received and unfiltered through the appMessage() signal.
466 466
467 This class also provides a set of useful static functions. The 467 This class also provides a set of useful static functions. The
468 qpeDir() and documentDir() functions return the respective paths. 468 qpeDir() and documentDir() functions return the respective paths.
469 The grabKeyboard() and ungrabKeyboard() functions are used to 469 The grabKeyboard() and ungrabKeyboard() functions are used to
470 control whether the application takes control of the device's 470 control whether the application takes control of the device's
471 physical buttons (e.g. application launch keys). The stylus' mode of 471 physical buttons (e.g. application launch keys). The stylus' mode of
472 operation is set with setStylusOperation() and retrieved with 472 operation is set with setStylusOperation() and retrieved with
473 stylusOperation(). There are also setInputMethodHint() and 473 stylusOperation(). There are also setInputMethodHint() and
474 inputMethodHint() functions. 474 inputMethodHint() functions.
475 475
476 \ingroup qtopiaemb 476 \ingroup qtopiaemb
477*/ 477*/
478 478
479/*! 479/*!
480 \fn void QPEApplication::clientMoused() 480 \fn void QPEApplication::clientMoused()
481 481
482 \internal 482 \internal
483*/ 483*/
484 484
485/*! 485/*!
486 \fn void QPEApplication::timeChanged(); 486 \fn void QPEApplication::timeChanged();
487 This signal is emitted when the time changes outside the normal 487 This signal is emitted when the time changes outside the normal
488 passage of time, i.e. if the time is set backwards or forwards. 488 passage of time, i.e. if the time is set backwards or forwards.
489*/ 489*/
490 490
491/*! 491/*!
492 \fn void QPEApplication::clockChanged( bool ampm ); 492 \fn void QPEApplication::clockChanged( bool ampm );
493 493
494 This signal is emitted when the user changes the clock's style. If 494 This signal is emitted when the user changes the clock's style. If
495 \a ampm is TRUE, the user wants a 12-hour AM/PM clock, otherwise, 495 \a ampm is TRUE, the user wants a 12-hour AM/PM clock, otherwise,
496 they want a 24-hour clock. 496 they want a 24-hour clock.
497*/ 497*/
498 498
499/*! 499/*!
500 \fn void QPEApplication::volumeChanged( bool muted ) 500 \fn void QPEApplication::volumeChanged( bool muted )
501 501
502 This signal is emitted whenever the mute state is changed. If \a 502 This signal is emitted whenever the mute state is changed. If \a
503 muted is TRUE, then sound output has been muted. 503 muted is TRUE, then sound output has been muted.
@@ -1510,148 +1510,150 @@ void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data)
1510 /* so next quit won't quit */ 1510 /* so next quit won't quit */
1511 } 1511 }
1512 else if ( msg == "raise()" ) { 1512 else if ( msg == "raise()" ) {
1513 d->keep_running = TRUE; 1513 d->keep_running = TRUE;
1514 d->notbusysent = FALSE; 1514 d->notbusysent = FALSE;
1515 raiseAppropriateWindow(); 1515 raiseAppropriateWindow();
1516 // Tell the system we're still chugging along... 1516 // Tell the system we're still chugging along...
1517 QCopEnvelope e("QPE/System", "appRaised(QString)"); 1517 QCopEnvelope e("QPE/System", "appRaised(QString)");
1518 e << d->appName; 1518 e << d->appName;
1519 } 1519 }
1520 else if ( msg == "flush()" ) { 1520 else if ( msg == "flush()" ) {
1521 emit flush(); 1521 emit flush();
1522 // we need to tell the desktop 1522 // we need to tell the desktop
1523 QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" ); 1523 QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" );
1524 e << d->appName; 1524 e << d->appName;
1525 } 1525 }
1526 else if ( msg == "reload()" ) { 1526 else if ( msg == "reload()" ) {
1527 emit reload(); 1527 emit reload();
1528 } 1528 }
1529 else if ( msg == "setDocument(QString)" ) { 1529 else if ( msg == "setDocument(QString)" ) {
1530 d->keep_running = TRUE; 1530 d->keep_running = TRUE;
1531 QDataStream stream( data, IO_ReadOnly ); 1531 QDataStream stream( data, IO_ReadOnly );
1532 QString doc; 1532 QString doc;
1533 stream >> doc; 1533 stream >> doc;
1534 QWidget *mw = mainWidget(); 1534 QWidget *mw = mainWidget();
1535 if ( !mw ) 1535 if ( !mw )
1536 mw = d->qpe_main_widget; 1536 mw = d->qpe_main_widget;
1537 if ( mw ) 1537 if ( mw )
1538 Global::setDocument( mw, doc ); 1538 Global::setDocument( mw, doc );
1539 1539
1540 } else if ( msg == "QPEProcessQCop()" ) { 1540 } else if ( msg == "QPEProcessQCop()" ) {
1541 processQCopFile(); 1541 processQCopFile();
1542 d->sendQCopQ(); 1542 d->sendQCopQ();
1543 }else 1543 }else
1544 { 1544 {
1545 bool p = d->keep_running; 1545 bool p = d->keep_running;
1546 d->keep_running = FALSE; 1546 d->keep_running = FALSE;
1547 emit appMessage( msg, data); 1547 emit appMessage( msg, data);
1548 if ( d->keep_running ) { 1548 if ( d->keep_running ) {
1549 d->notbusysent = FALSE; 1549 d->notbusysent = FALSE;
1550 raiseAppropriateWindow(); 1550 raiseAppropriateWindow();
1551 if ( !p ) { 1551 if ( !p ) {
1552 // Tell the system we're still chugging along... 1552 // Tell the system we're still chugging along...
1553#ifndef QT_NO_COP 1553#ifndef QT_NO_COP
1554 QCopEnvelope e("QPE/System", "appRaised(QString)"); 1554 QCopEnvelope e("QPE/System", "appRaised(QString)");
1555 e << d->appName; 1555 e << d->appName;
1556#endif 1556#endif
1557 } 1557 }
1558 } 1558 }
1559 if ( p ) 1559 if ( p )
1560 d->keep_running = p; 1560 d->keep_running = p;
1561 } 1561 }
1562#endif 1562#endif
1563} 1563}
1564 1564
1565 1565
1566/*! 1566/*!
1567 Sets widget \a mw as the mainWidget() and shows it. For small windows, 1567 Sets widget \a mw as the mainWidget() and shows it. For small windows,
1568 consider passing TRUE for \a nomaximize rather than the default FALSE. 1568 consider passing TRUE for \a nomaximize rather than the default FALSE.
1569 1569
1570 \sa showMainDocumentWidget() 1570 \sa showMainDocumentWidget()
1571*/ 1571*/
1572void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize ) 1572void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize )
1573{ 1573{
1574 setMainWidget(mw);
1574 d->show(mw, nomaximize ); 1575 d->show(mw, nomaximize );
1575} 1576}
1576 1577
1577/*! 1578/*!
1578 Sets widget \a mw as the mainWidget() and shows it. For small windows, 1579 Sets widget \a mw as the mainWidget() and shows it. For small windows,
1579 consider passing TRUE for \a nomaximize rather than the default FALSE. 1580 consider passing TRUE for \a nomaximize rather than the default FALSE.
1580 1581
1581 This calls designates the application as 1582 This calls designates the application as
1582 a \link docwidget.html document-oriented\endlink application. 1583 a \link docwidget.html document-oriented\endlink application.
1583 1584
1584 The \a mw widget \e must have this slot: setDocument(const QString&). 1585 The \a mw widget \e must have this slot: setDocument(const QString&).
1585 1586
1586 \sa showMainWidget() 1587 \sa showMainWidget()
1587*/ 1588*/
1588void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize ) 1589void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize )
1589{ 1590{
1590 if ( mw && argc() == 2 ) 1591 if ( mw && argc() == 2 )
1591 Global::setDocument( mw, QString::fromUtf8(argv()[1]) ); 1592 Global::setDocument( mw, QString::fromUtf8(argv()[1]) );
1592 1593
1593 1594
1595 setMainWidget(mw);
1594 d->show(mw, nomaximize ); 1596 d->show(mw, nomaximize );
1595} 1597}
1596 1598
1597 1599
1598/*! 1600/*!
1599 If an application is started via a \link qcop.html QCop\endlink 1601 If an application is started via a \link qcop.html QCop\endlink
1600 message, the application will process the \link qcop.html 1602 message, the application will process the \link qcop.html
1601 QCop\endlink message and then quit. If the application calls this 1603 QCop\endlink message and then quit. If the application calls this
1602 function while processing a \link qcop.html QCop\endlink message, 1604 function while processing a \link qcop.html QCop\endlink message,
1603 after processing its outstanding \link qcop.html QCop\endlink 1605 after processing its outstanding \link qcop.html QCop\endlink
1604 messages the application will start 'properly' and show itself. 1606 messages the application will start 'properly' and show itself.
1605 1607
1606 \sa keepRunning() 1608 \sa keepRunning()
1607*/ 1609*/
1608void QPEApplication::setKeepRunning() 1610void QPEApplication::setKeepRunning()
1609{ 1611{
1610 if ( qApp && qApp->inherits( "QPEApplication" ) ) { 1612 if ( qApp && qApp->inherits( "QPEApplication" ) ) {
1611 QPEApplication * qpeApp = ( QPEApplication* ) qApp; 1613 QPEApplication * qpeApp = ( QPEApplication* ) qApp;
1612 qpeApp->d->keep_running = TRUE; 1614 qpeApp->d->keep_running = TRUE;
1613 } 1615 }
1614} 1616}
1615 1617
1616/*! 1618/*!
1617 Returns TRUE if the application will quit after processing the 1619 Returns TRUE if the application will quit after processing the
1618 current list of qcop messages; otherwise returns FALSE. 1620 current list of qcop messages; otherwise returns FALSE.
1619 1621
1620 \sa setKeepRunning() 1622 \sa setKeepRunning()
1621*/ 1623*/
1622bool QPEApplication::keepRunning() const 1624bool QPEApplication::keepRunning() const
1623{ 1625{
1624 return d->keep_running; 1626 return d->keep_running;
1625} 1627}
1626 1628
1627/*! 1629/*!
1628 \internal 1630 \internal
1629*/ 1631*/
1630void QPEApplication::internalSetStyle( const QString &style ) 1632void QPEApplication::internalSetStyle( const QString &style )
1631{ 1633{
1632#if QT_VERSION >= 300 1634#if QT_VERSION >= 300
1633 if ( style == "QPE" ) { 1635 if ( style == "QPE" ) {
1634 setStyle( new QPEStyle ); 1636 setStyle( new QPEStyle );
1635 } 1637 }
1636 else { 1638 else {
1637 QStyle *s = QStyleFactory::create( style ); 1639 QStyle *s = QStyleFactory::create( style );
1638 if ( s ) 1640 if ( s )
1639 setStyle( s ); 1641 setStyle( s );
1640 } 1642 }
1641#else 1643#else
1642 if ( style == "Windows" ) { 1644 if ( style == "Windows" ) {
1643 setStyle( new QWindowsStyle ); 1645 setStyle( new QWindowsStyle );
1644 } 1646 }
1645 else if ( style == "QPE" ) { 1647 else if ( style == "QPE" ) {
1646 setStyle( new QPEStyle ); 1648 setStyle( new QPEStyle );
1647 } 1649 }
1648 else if ( style == "Light" ) { 1650 else if ( style == "Light" ) {
1649 setStyle( new LightStyle ); 1651 setStyle( new LightStyle );
1650 } 1652 }
1651#ifndef QT_NO_STYLE_PLATINUM 1653#ifndef QT_NO_STYLE_PLATINUM
1652 else if ( style == "Platinum" ) { 1654 else if ( style == "Platinum" ) {
1653 setStyle( new QPlatinumStyle ); 1655 setStyle( new QPlatinumStyle );
1654 } 1656 }
1655#endif 1657#endif
1656#ifndef QT_NO_STYLE_MOTIF 1658#ifndef QT_NO_STYLE_MOTIF
1657 else if ( style == "Motif" ) { 1659 else if ( style == "Motif" ) {
diff --git a/library/qpeapplication.h b/library/qpeapplication.h
index 729cf2b..3ef8b46 100644
--- a/library/qpeapplication.h
+++ b/library/qpeapplication.h
@@ -1,104 +1,142 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the 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#ifndef __QPE_APPLICATION_H__ 20#ifndef __QPE_APPLICATION_H__
21#define __QPE_APPLICATION_H__ 21#define __QPE_APPLICATION_H__
22 22
23#include <stdlib.h> // for setenv() 23#include <stdlib.h> // for setenv()
24 24
25#include <qglobal.h> 25#include <qglobal.h>
26#include <qapplication.h> 26#include <qapplication.h>
27#include <qdialog.h> 27#include <qdialog.h>
28#include <qwsdisplay_qws.h> 28#include <qwsdisplay_qws.h>
29#if defined(_WS_QWS_) && !defined(Q_WS_QWS) 29#if defined(_WS_QWS_) && !defined(Q_WS_QWS)
30#define Q_WS_QWS 30#define Q_WS_QWS
31#endif 31#endif
32#include "qpedecoration_qws.h" 32#include "qpedecoration_qws.h"
33#include "timestring.h" 33#include "timestring.h"
34 34
35class QCopChannel; 35class QCopChannel;
36class QPEApplicationData; 36class QPEApplicationData;
37class QWSEvent; 37class QWSEvent;
38class QWSKeyEvent; 38class QWSKeyEvent;
39 39
40 40/**
41 \brief The QPEApplication class implements various system services
42 that are available to all Qtopia applications.
43
44 Simply by using QPEApplication instead of QApplication, a standard Qt
45 application becomes a Qtopia application. It automatically follows
46 style changes, quits and raises, and in the
47 case of \link docwidget.html document-oriented\endlink applications,
48 changes the currently displayed document in response to the environment.
49
50 To create a \link docwidget.html document-oriented\endlink
51 application use showMainDocumentWidget(); to create a
52 non-document-oriented application use showMainWidget(). The
53 keepRunning() function indicates whether the application will
54 continue running after it's processed the last \link qcop.html
55 QCop\endlink message. This can be changed using setKeepRunning().
56
57 A variety of signals are emitted when certain events occur, for
58 example, timeChanged(), clockChanged(), weekChanged(),
59 dateFormatChanged() and volumeChanged(). If the application receives
60 a \link qcop.html QCop\endlink message on the application's
61 QPE/Application/\e{appname} channel, the appMessage() signal is
62 emitted. There are also flush() and reload() signals, which
63 are emitted when synching begins and ends respectively - upon these
64 signals, the application should save and reload any data
65 files that are involved in synching. Most of these signals will initially
66 be received and unfiltered through the appMessage() signal.
67
68 This class also provides a set of useful static functions. The
69 qpeDir() and documentDir() functions return the respective paths.
70 The grabKeyboard() and ungrabKeyboard() functions are used to
71 control whether the application takes control of the device's
72 physical buttons (e.g. application launch keys). The stylus' mode of
73 operation is set with setStylusOperation() and retrieved with
74 stylusOperation(). There are also setInputMethodHint() and
75 inputMethodHint() functions.
76
77 \ingroup qtopiaemb
78*/
41class QPEApplication : public QApplication 79class QPEApplication : public QApplication
42{ 80{
43 Q_OBJECT 81 Q_OBJECT
44public: 82public:
45 QPEApplication( int& argc, char **argv, Type=GuiClient ); 83 QPEApplication( int& argc, char **argv, Type=GuiClient );
46 ~QPEApplication(); 84 ~QPEApplication();
47 85
48 static QString qpeDir(); 86 static QString qpeDir();
49 static QString documentDir(); 87 static QString documentDir();
50 void applyStyle(); 88 void applyStyle();
51 void reset(); 89 void reset();
52 static int defaultRotation(); 90 static int defaultRotation();
53 static void setDefaultRotation(int r); 91 static void setDefaultRotation(int r);
54 static void setCurrentRotation(int r); 92 static void setCurrentRotation(int r);
55 static void setCurrentMode(int x, int y, int depth ); 93 static void setCurrentMode(int x, int y, int depth );
56 static void grabKeyboard(); 94 static void grabKeyboard();
57 static void ungrabKeyboard(); 95 static void ungrabKeyboard();
58 96
59 enum StylusMode { 97 enum StylusMode {
60 LeftOnly, 98 LeftOnly,
61 RightOnHold 99 RightOnHold
62 // RightOnHoldLeftDelayed, etc. 100 // RightOnHoldLeftDelayed, etc.
63 }; 101 };
64 static void setStylusOperation( QWidget*, StylusMode ); 102 static void setStylusOperation( QWidget*, StylusMode );
65 static StylusMode stylusOperation( QWidget* ); 103 static StylusMode stylusOperation( QWidget* );
66 104
67 enum InputMethodHint { 105 enum InputMethodHint {
68 Normal, 106 Normal,
69 AlwaysOff, 107 AlwaysOff,
70 AlwaysOn 108 AlwaysOn
71 }; 109 };
72 110
73 enum screenSaverHint { 111 enum screenSaverHint {
74 Disable = 0, 112 Disable = 0,
75 DisableLightOff = 1, 113 DisableLightOff = 1,
76 DisableSuspend = 2, 114 DisableSuspend = 2,
77 Enable = 100 115 Enable = 100
78 }; 116 };
79 117
80 static void setInputMethodHint( QWidget *, InputMethodHint ); 118 static void setInputMethodHint( QWidget *, InputMethodHint );
81 static InputMethodHint inputMethodHint( QWidget * ); 119 static InputMethodHint inputMethodHint( QWidget * );
82 120
83 void showMainWidget( QWidget*, bool nomax=FALSE ); 121 void showMainWidget( QWidget*, bool nomax=FALSE );
84 void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); 122 void showMainDocumentWidget( QWidget*, bool nomax=FALSE );
85 static void showDialog( QDialog*, bool nomax=FALSE ); 123 static void showDialog( QDialog*, bool nomax=FALSE );
86 static int execDialog( QDialog*, bool nomax=FALSE ); 124 static int execDialog( QDialog*, bool nomax=FALSE );
87 /* Merge setTempScreenSaverMode */ 125 /* Merge setTempScreenSaverMode */
88#ifdef QTOPIA_INTERNAL_INITAPP 126#ifdef QTOPIA_INTERNAL_INITAPP
89 void initApp( int argv, char **argv ); 127 void initApp( int argv, char **argv );
90#endif 128#endif
91 129
92 static void setKeepRunning(); 130 static void setKeepRunning();
93 bool keepRunning() const; 131 bool keepRunning() const;
94 132
95 bool keyboardGrabbed() const; 133 bool keyboardGrabbed() const;
96 134
97 int exec(); 135 int exec();
98 136
99signals: 137signals:
100 void clientMoused(); 138 void clientMoused();
101 void timeChanged(); 139 void timeChanged();
102 void clockChanged( bool pm ); 140 void clockChanged( bool pm );
103 void micChanged( bool muted ); 141 void micChanged( bool muted );
104 void volumeChanged( bool muted ); 142 void volumeChanged( bool muted );
diff --git a/library/styleinterface.h b/library/styleinterface.h
index 8a900c7..872a4a5 100644
--- a/library/styleinterface.h
+++ b/library/styleinterface.h
@@ -1,67 +1,67 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Robert Griebl. All rights reserved. 2** Copyright (C) 2002 Robert Griebl. All rights reserved.
3** 3**
4** This file is part of OPIE (http://www.opie.info). 4** This file is part of OPIE (http://www.opie.info).
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**********************************************************************/ 14**********************************************************************/
15 15
16#ifndef STYLEINTERFACE_H 16#ifndef STYLEINTERFACE_H
17#define STYLEINTERFACE_H 17#define STYLEINTERFACE_H
18 18
19#include <qpe/qcom.h> 19#include <qpe/qcom.h>
20 20
21#ifndef QT_NO_COMPONENT 21#ifndef QT_NO_COMPONENT
22 22
23// {17AF792C-E461-49A9-9B71-068B9A8DDAE4} 23// {17AF792C-E461-49A9-9B71-068B9A8DDAE4}
24#ifndef IID_Style 24#ifndef IID_Style
25#define IID_Style QUuid( 0x17af792c, 0xe461, 0x49a9, 0x9b, 0x71, 0x06, 0x8b, 0x9a, 0x8d, 0xda, 0xe4) 25#define IID_Style QUuid( 0x17af792c, 0xe461, 0x49a9, 0x9b, 0x71, 0x06, 0x8b, 0x9a, 0x8d, 0xda, 0xe4)
26#endif 26#endif
27 27
28// {6C33B4F9-D529-453A-8FB3-DA42B21872BD} 28// {6C33B4F9-D529-453A-8FB3-DA42B21872BD}
29# ifndef IID_StyleExtended 29# ifndef IID_StyleExtended
30# define IID_StyleExtended QUuid( 0x6c33b4f9, 0xd529, 0x453a, 0x8f, 0xb3, 0xda, 0x42, 0xb2, 0x18, 0x72, 0xbd) 30# define IID_StyleExtended QUuid( 0x6c33b4f9, 0xd529, 0x453a, 0x8f, 0xb3, 0xda, 0x42, 0xb2, 0x18, 0x72, 0xbd)
31#endif 31#endif
32 32
33#endif 33#endif
34 34
35class QWidget; 35class QWidget;
36class QStyle; 36class QStyle;
37 37
38 38
39class QStyle; 39class QStyle;
40 40
41struct StyleInterface : public QUnknownInterface 41struct StyleInterface : public QUnknownInterface
42{ 42{
43 //! Return a new style. 43 /*! Return a new style.*/
44 virtual QStyle *style() = 0; 44 virtual QStyle *style() = 0;
45 //! Return a short name for the style. 45 /*! Return a short name for the style. */
46 virtual QString name() const = 0; 46 virtual QString name() const = 0;
47}; 47};
48 48
49struct StyleExtendedInterface : public StyleInterface 49struct StyleExtendedInterface : public StyleInterface
50{ 50{
51 //! Return a (longer) description for the style. 51 /*! Return a (longer) description for the style. */
52 virtual QString description ( ) const = 0; 52 virtual QString description ( ) const = 0;
53 53
54 //! Does this style support customization 54 /*! Does this style support customization */
55 virtual bool hasSettings ( ) const = 0; 55 virtual bool hasSettings ( ) const = 0;
56 56
57 //! Return a new settings page. 57 /*! Return a new settings page. */
58 virtual QWidget *create ( QWidget *parent, const char *name = 0 ) = 0; 58 virtual QWidget *create ( QWidget *parent, const char *name = 0 ) = 0;
59 59
60 //! Callback for appearance app when OK is clicked (return true when style has to re-applied). 60 /*! Callback for appearance app when OK is clicked (return true when style has to re-applied). */
61 virtual bool accept ( ) = 0; 61 virtual bool accept ( ) = 0;
62 62
63 //! Callback for appeaeance app when Cancel is clicked. 63 /*! Callback for appeaeance app when Cancel is clicked. */
64 virtual void reject ( ) = 0; 64 virtual void reject ( ) = 0;
65}; 65};
66 66
67#endif 67#endif