Updated through tag hostap_2_5 from git://w1.fi/hostap.git
[mech_eap.git] / libeap / wpa_supplicant / wpa_gui-qt4 / wpagui.h
1 /*
2  * wpa_gui - WpaGui class
3  * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8
9 #ifndef WPAGUI_H
10 #define WPAGUI_H
11
12 #include <QSystemTrayIcon>
13 #include <QObject>
14 #include "ui_wpagui.h"
15 #include "addinterface.h"
16
17 class UserDataRequest;
18
19 class WpaGuiApp : public QApplication
20 {
21         Q_OBJECT
22 public:
23         WpaGuiApp(int &argc, char **argv);
24
25 #if !defined(QT_NO_SESSIONMANAGER) && QT_VERSION < 0x050000
26         virtual void saveState(QSessionManager &manager);
27 #endif
28
29         WpaGui *w;
30         int argc;
31         char **argv;
32 };
33
34 class WpaGui : public QMainWindow, public Ui::WpaGui
35 {
36         Q_OBJECT
37
38 public:
39
40         enum TrayIconType {
41                 TrayIconOffline = 0,
42                 TrayIconAcquiring,
43                 TrayIconConnected,
44                 TrayIconSignalNone,
45                 TrayIconSignalWeak,
46                 TrayIconSignalOk,
47                 TrayIconSignalGood,
48                 TrayIconSignalExcellent,
49         };
50
51         WpaGui(QApplication *app, QWidget *parent = 0, const char *name = 0,
52                Qt::WindowFlags fl = 0);
53         ~WpaGui();
54
55         virtual int ctrlRequest(const char *cmd, char *buf, size_t *buflen);
56         virtual void triggerUpdate();
57         virtual void editNetwork(const QString &sel);
58         virtual void removeNetwork(const QString &sel);
59         virtual void enableNetwork(const QString &sel);
60         virtual void disableNetwork(const QString &sel);
61         virtual int getNetworkDisabled(const QString &sel);
62         void setBssFromScan(const QString &bssid);
63 #ifndef QT_NO_SESSIONMANAGER
64         void saveState();
65 #endif
66
67 public slots:
68         virtual void parse_argv();
69         virtual void updateStatus();
70         virtual void updateNetworks();
71         virtual void helpIndex();
72         virtual void helpContents();
73         virtual void helpAbout();
74         virtual void disconnect();
75         virtual void scan();
76         virtual void eventHistory();
77         virtual void ping();
78         virtual void signalMeterUpdate();
79         virtual void processMsg(char *msg);
80         virtual void processCtrlReq(const char *req);
81         virtual void receiveMsgs();
82         virtual void connectB();
83         virtual void selectNetwork(const QString &sel);
84         virtual void editSelectedNetwork();
85         virtual void editListedNetwork();
86         virtual void removeSelectedNetwork();
87         virtual void removeListedNetwork();
88         virtual void addNetwork();
89         virtual void enableAllNetworks();
90         virtual void disableAllNetworks();
91         virtual void removeAllNetworks();
92         virtual void saveConfig();
93         virtual void selectAdapter(const QString &sel);
94         virtual void updateNetworkDisabledStatus();
95         virtual void enableListedNetwork(bool);
96         virtual void disableListedNetwork(bool);
97         virtual void showTrayMessage(QSystemTrayIcon::MessageIcon type,
98                                      int sec, const QString &msg);
99         virtual void showTrayStatus();
100         virtual void updateTrayIcon(TrayIconType type);
101         virtual void updateTrayToolTip(const QString &msg);
102         virtual QIcon loadThemedIcon(const QStringList &names,
103                                      const QIcon &fallback);
104         virtual void wpsDialog();
105         virtual void peersDialog();
106         virtual void tabChanged(int index);
107         virtual void wpsPbc();
108         virtual void wpsGeneratePin();
109         virtual void wpsApPinChanged(const QString &text);
110         virtual void wpsApPin();
111 #ifdef CONFIG_NATIVE_WINDOWS
112         virtual void startService();
113         virtual void stopService();
114 #endif /* CONFIG_NATIVE_WINDOWS */
115         virtual void addInterface();
116
117 protected slots:
118         virtual void languageChange();
119         virtual void trayActivated(QSystemTrayIcon::ActivationReason how);
120         virtual void closeEvent(QCloseEvent *event);
121
122 private:
123         ScanResults *scanres;
124         Peers *peers;
125         bool networkMayHaveChanged;
126         char *ctrl_iface;
127         EventHistory *eh;
128         struct wpa_ctrl *ctrl_conn;
129         QSocketNotifier *msgNotifier;
130         QTimer *timer;
131         int pingsToStatusUpdate;
132         WpaMsgList msgs;
133         char *ctrl_iface_dir;
134         struct wpa_ctrl *monitor_conn;
135         UserDataRequest *udr;
136         QAction *disconnectAction;
137         QAction *reconnectAction;
138         QAction *eventAction;
139         QAction *scanAction;
140         QAction *statAction;
141         QAction *showAction;
142         QAction *hideAction;
143         QAction *quitAction;
144         QMenu *tray_menu;
145         QSystemTrayIcon *tray_icon;
146         TrayIconType currentIconType;
147         QString wpaStateTranslate(char *state);
148         void createTrayIcon(bool);
149         bool ackTrayIcon;
150         bool startInTray;
151         bool quietMode;
152
153         int openCtrlConnection(const char *ifname);
154
155         bool wpsRunning;
156
157         QString bssFromScan;
158
159         void stopWpsRun(bool success);
160
161         QTimer *signalMeterTimer;
162         int signalMeterInterval;
163
164 #ifdef CONFIG_NATIVE_WINDOWS
165         QAction *fileStartServiceAction;
166         QAction *fileStopServiceAction;
167
168         bool serviceRunning();
169 #endif /* CONFIG_NATIVE_WINDOWS */
170
171         QAction *addInterfaceAction;
172         AddInterface *add_iface;
173
174         bool connectedToService;
175
176         QApplication *app;
177         bool inTray;
178 };
179
180 #endif /* WPAGUI_H */