wpa_gui-qt4: add support for starting in system tray only
[libeap.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 helpIndex();
47         virtual void helpContents();
48         virtual void helpAbout();
49         virtual void disconnect();
50         virtual void scan();
51         virtual void eventHistory();
52         virtual void ping();
53         virtual void processMsg(char *msg);
54         virtual void processCtrlReq(const char *req);
55         virtual void receiveMsgs();
56         virtual void connectB();
57         virtual void selectNetwork(const QString &sel);
58         virtual void editSelectedNetwork();
59         virtual void editListedNetwork();
60         virtual void removeSelectedNetwork();
61         virtual void removeListedNetwork();
62         virtual void addNetwork();
63         virtual void enableAllNetworks();
64         virtual void disableAllNetworks();
65         virtual void removeAllNetworks();
66         virtual void saveConfig();
67         virtual void selectAdapter(const QString &sel);
68         virtual void updateNetworkDisabledStatus();
69         virtual void enableListedNetwork(bool);
70         virtual void disableListedNetwork(bool);
71         virtual void showTrayMessage(QSystemTrayIcon::MessageIcon type,
72                                      int sec, const QString &msg);
73         virtual void showTrayStatus();
74
75 protected slots:
76         virtual void languageChange();
77         virtual void trayActivated(QSystemTrayIcon::ActivationReason how);
78         virtual void closeEvent(QCloseEvent *event);
79
80 private:
81         ScanResults *scanres;
82         bool networkMayHaveChanged;
83         char *ctrl_iface;
84         EventHistory *eh;
85         struct wpa_ctrl *ctrl_conn;
86         QSocketNotifier *msgNotifier;
87         QTimer *timer;
88         int pingsToStatusUpdate;
89         WpaMsgList msgs;
90         char *ctrl_iface_dir;
91         struct wpa_ctrl *monitor_conn;
92         UserDataRequest *udr;
93         QAction *disconnectAction;
94         QAction *reconnectAction;
95         QAction *eventAction;
96         QAction *scanAction;
97         QAction *statAction;
98         QAction *showAction;
99         QAction *hideAction;
100         QAction *quitAction;
101         QMenu *tray_menu;
102         QSystemTrayIcon *tray_icon;
103         void createTrayIcon(bool);
104         bool ackTrayIcon;
105         bool startInTray;
106
107         int openCtrlConnection(const char *ifname);
108 };
109
110 #endif /* WPAGUI_H */