summaryrefslogtreecommitdiff
path: root/core/launcher/desktop.h
blob: dfdbeab099662a3869874479d2f189e2044692b0 (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
/**********************************************************************
** 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 __DESKTOP_H__
#define __DESKTOP_H__


#include "shutdownimpl.h"

#include <qpe/qpeapplication.h>

#include <qwidget.h>

class Background;
class Launcher;
class TaskBar;
class PowerStatus;
class QCopBridge;
class TransferServer;
class DesktopPowerAlerter;
class PackageSlave;

class DesktopApplication : public QPEApplication
{
    Q_OBJECT
public:
    DesktopApplication( int& argc, char **argv, Type t );
    ~DesktopApplication();
signals:
    void home();
    void datebook();
    void contacts();
    void launch();
    void email();
    void backlight();
    void power();
    void symbol();
    void numLockStateToggle();
    void capsLockStateToggle();
    void prepareForRestart();

protected:
#ifdef Q_WS_QWS
    bool qwsEventFilter( QWSEvent * );
#endif
    void shutdown();
    void restart();

protected slots:
    void shutdown(ShutdownImpl::Type);
    void psTimeout();
    void sendCard();
private:
    DesktopPowerAlerter *pa;
    PowerStatus *ps;
    QTimer *cardSendTimer;
};


class Desktop : public QWidget {
    Q_OBJECT
public:
    Desktop();
    ~Desktop();

    static bool screenLocked();

    void show();
    void checkMemory();

    void keyClick();
    void screenClick();
    static void soundAlarm();

public slots:
    void raiseDatebook();
    void raiseContacts();
    void raiseMenu();
    void raiseLauncher();
    void raiseEmail();
    void togglePower();
    void toggleLight();
    void toggleNumLockState();
    void toggleCapsLockState();
    void toggleSymbolInput();
    void terminateServers();
    void rereadVolumes();

protected:
    void executeOrModify(const QString& appLnkFile);
    void styleChange( QStyle & );
    void timerEvent( QTimerEvent *e );
    bool eventFilter( QObject *, QEvent * );

    QWidget *bg;
    Launcher *launcher;
    TaskBar *tb;

private:
    void startTransferServer();
    bool recoverMemory();

    QCopBridge *qcopBridge;
    TransferServer *transferServer;
    PackageSlave *packageSlave;

    bool keyclick,touchclick;
};


#endif // __DESKTOP_H__