wpa_gui-qt4: add system tray support
[mech_eap.git] / 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 program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  *
9  * Alternatively, this software may be distributed under the terms of BSD
10  * license.
11  *
12  * See README and COPYING for more details.
13  */
14
15 #ifndef WPAGUI_H
16 #define WPAGUI_H
17
18 #include <QSystemTrayIcon>
19 #include <QObject>
20 #include "ui_wpagui.h"
21
22 class UserDataRequest;
23
24
25 class WpaGui : public QMainWindow, public Ui::WpaGui
26 {
27         Q_OBJECT
28
29 public:
30         WpaGui(QWidget *parent = 0, const char *name = 0,
31                Qt::WFlags fl = 0);
32         ~WpaGui();
33
34         virtual int ctrlRequest(const char *cmd, char *buf, size_t *buflen);
35         virtual void triggerUpdate();
36         virtual void editNetwork(const QString &sel);
37         virtual void removeNetwork(const QString &sel);
38         virtual void enableNetwork(const QString &sel);
39         virtual void disableNetwork(const QString &sel);
40         virtual int getNetworkDisabled(const QString &sel);
41
42 public slots:
43         virtual void parse_argv();
44         virtual void updateStatus();
45         virtual void updateNetworks();
46         virtual void fileExit();
47         virtual void helpIndex();
48         virtual void helpContents();
49         virtual void helpAbout();
50         virtual void disconnect();
51         virtual void scan();
52         virtual void eventHistory();
53         virtual void ping();
54         virtual void processMsg(char *msg);
55         virtual void processCtrlReq(const char *req);
56         virtual void receiveMsgs();
57         virtual void connectB();
58         virtual void selectNetwork(const QString &sel);
59         virtual void editSelectedNetwork();
60         virtual void editListedNetwork();
61         virtual void removeSelectedNetwork();
62         virtual void removeListedNetwork();
63         virtual void addNetwork();
64         virtual void enableAllNetworks();
65         virtual void disableAllNetworks();
66         virtual void removeAllNetworks();
67         virtual void saveConfig();
68         virtual void selectAdapter(const QString &sel);
69         virtual void updateNetworkDisabledStatus();
70         virtual void enableListedNetwork(bool);
71         virtual void disableListedNetwork(bool);
72         virtual void showTrayMessage(QSystemTrayIcon::MessageIcon type,
73                                      int sec, const QString &msg);
74         virtual void showTrayStatus();
75
76 protected slots:
77         virtual void languageChange();
78         virtual void trayActivated(QSystemTrayIcon::ActivationReason how);
79         virtual void closeEvent(QCloseEvent *event);
80
81 private:
82         ScanResults *scanres;
83         bool networkMayHaveChanged;
84         char *ctrl_iface;
85         EventHistory *eh;
86         struct wpa_ctrl *ctrl_conn;
87         QSocketNotifier *msgNotifier;
88         QTimer *timer;
89         int pingsToStatusUpdate;
90         WpaMsgList msgs;
91         char *ctrl_iface_dir;
92         struct wpa_ctrl *monitor_conn;
93         UserDataRequest *udr;
94         QAction *disconnectAction;
95         QAction *reconnectAction;
96         QAction *eventAction;
97         QAction *scanAction;
98         QAction *statAction;
99         QAction *showAction;
100         QAction *hideAction;
101         QAction *quitAction;
102         QMenu *tray_menu;
103         QSystemTrayIcon *tray_icon;
104         void createTrayIcon();
105         bool ackTrayIcon;
106
107         int openCtrlConnection(const char *ifname);
108 };
109
110 #endif /* WPAGUI_H */