summaryrefslogtreecommitdiffstats
path: root/src/tdebluez/trayicon.h
blob: 2ca747e74591c25126edfa1327ec7a5ceef316e9 (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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/*
 *
 *  TrayIcon for tdebluez
 *
 *  Copyright (C) 2018  Emanoil Kotsev <deloptes@gmail.com>
 *
 *
 *  This file is part of tdebluez.
 *
 *  tdebluez is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  tdebluez is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with kbluetooth; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifndef TRAYICON_H
#define TRAYICON_H


#include <tqtooltip.h>
#include <tdeconfig.h>
#include <tdepopupmenu.h>
#include <tdeactionclasses.h>

#include <ksystemtray.h>
#include <khelpmenu.h>
#include <knotifydialog.h>
#include <knotifyclient.h>
#include <kprocess.h>

#include "adapterconfigdialog.h"
#include "devicewizard.h"

class TQTimer;
class TDEToggleAction;
class TDEAction;
class TDEActionMenu;
class TDEPopupMenu;
class KHelpMenu;
class TDEBluetoothApp;

/**
 @author Fred Schaettgen
 */
class TrayIcon: public KSystemTray
{
    TQ_OBJECT

public:
    TrayIcon(TDEBluetoothApp* app);
    ~TrayIcon();
    //	void setAlwaysShowIcon(bool state);

private slots:
    // void slotQuitSelected();
    //	void slotShowIconToggled(bool);
    void slotServiceConfig();
    //	void slotPairedConfig();
    void slotDeviceConfig();
    void slotAdapterConfig();
    void slotInputConfig();
    void slotkbluemonitor();
    void slotkbluelock();
    //	void slotkbtobexclient();
    void slotConfigureNotifications()
    {
        KNotifyDialog::configure(this);
    }
    ;
    void slotQuitSelected();
    void slotReportBug()
    {
        helpMenu->reportBug();
    }
    ;
    void slotAbout()
    {
        helpMenu->aboutApplication();
    }
    ;
    void slotShowHelp();
//    void slotSearchIcon();
    void slotIconAutostartToggled(bool state);
    void slotIconAgentToggled(bool state);
    void slotIconObexToggled(bool state);
    // gui -> manager
    void slotPowerOn(bool state);
    // manager -> gui
    void slotPowerOnChanged(const TQString&, bool);
    void slotDeviceConnectedChanged(const TQString&, bool);
    void slotAddAdapter(const TQString&);
    void slotRemoveAdapter(const TQString&);
    void slotDiscoverableTimeoutChanged(const TQString&, TQ_UINT32 timeout);
    void slotDiscoverableChanged(const TQString&, bool state);
    //	void slotDiscoveringChanged(const TQString&, bool state);
    void slotUpdateToolTip(const TQString& adapter, const TQString& name);
    void slotAdapterAliasChanged(const TQString&, const TQString&);

protected:
    void mousePressEvent(TQMouseEvent *e);

private:
//    TQTimer *blinkTimer;
    bool iconConnectingBlinkState;

    KHelpMenu *helpMenu;
    TDEBluetoothApp* app;

    AdapterConfigDialog *adapterConfigDialog; // for BT Adapters
    DeviceWizard *deviceWizard; // for BT Devices

    bool acceptClose;
    KPixmap iconIdle;
    KPixmap iconConnected;
    KPixmap iconNoAdapter;
    KPixmap iconOff;

    TDEToggleAction *agentIconAction;
    TDEToggleAction *obexIconAction;
    //	TDEToggleAction *showIconAction;
    TDEToggleAction *autostartIconAction;
    TQMap<TQString, TDEToggleAction *> showPowerOnActionMap;

    TDEAction *serviceConfigAction;
    //	TDEAction *pairedConfigAction;
    TDEAction *adapterConfigAction;
    TDEAction *deviceConfigAction;
    //	TDEAction *inputConfigAction;
    TDEAction *showHelpAction;
    TDEAction *kbluemonAction;
    TDEAction *kbluelockAction;
    TDEAction *kbtobexclientAction;
    TDEAction *aboutAction;
    TDEActionMenu *configActionMenu;
    TDEActionMenu *helpActionMenu;

    void setupTray(bool);
    void updateIcon();

    void updateTooltip(const TQString &text);

    TQString localAndEnglish(const TQCString& s);

signals:
    //	void setObexSrv(bool);
    void setPowerOn(bool);

};

#endif