1 /* 2 * wpa_gui - WpaGui class 3 * Copyright (c) 2005-2006, Jouni Malinen <j (at) 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 #include "addinterface.h" 22 23 class UserDataRequest; 24 25 26 class WpaGui : public QMainWindow, public Ui::WpaGui 27 { 28 Q_OBJECT 29 30 public: 31 WpaGui(QApplication *app, QWidget *parent = 0, const char *name = 0, 32 Qt::WFlags fl = 0); 33 ~WpaGui(); 34 35 virtual int ctrlRequest(const char *cmd, char *buf, size_t *buflen); 36 virtual void triggerUpdate(); 37 virtual void editNetwork(const QString &sel); 38 virtual void removeNetwork(const QString &sel); 39 virtual void enableNetwork(const QString &sel); 40 virtual void disableNetwork(const QString &sel); 41 virtual int getNetworkDisabled(const QString &sel); 42 void setBssFromScan(const QString &bssid); 43 #ifndef QT_NO_SESSIONMANAGER 44 void saveState(); 45 #endif 46 47 public slots: 48 virtual void parse_argv(); 49 virtual void updateStatus(); 50 virtual void updateNetworks(); 51 virtual void helpIndex(); 52 virtual void helpContents(); 53 virtual void helpAbout(); 54 virtual void disconnect(); 55 virtual void scan(); 56 virtual void eventHistory(); 57 virtual void ping(); 58 virtual void processMsg(char *msg); 59 virtual void processCtrlReq(const char *req); 60 virtual void receiveMsgs(); 61 virtual void connectB(); 62 virtual void selectNetwork(const QString &sel); 63 virtual void editSelectedNetwork(); 64 virtual void editListedNetwork(); 65 virtual void removeSelectedNetwork(); 66 virtual void removeListedNetwork(); 67 virtual void addNetwork(); 68 virtual void enableAllNetworks(); 69 virtual void disableAllNetworks(); 70 virtual void removeAllNetworks(); 71 virtual void saveConfig(); 72 virtual void selectAdapter(const QString &sel); 73 virtual void updateNetworkDisabledStatus(); 74 virtual void enableListedNetwork(bool); 75 virtual void disableListedNetwork(bool); 76 virtual void showTrayMessage(QSystemTrayIcon::MessageIcon type, 77 int sec, const QString &msg); 78 virtual void showTrayStatus(); 79 virtual void wpsDialog(); 80 virtual void peersDialog(); 81 virtual void tabChanged(int index); 82 virtual void wpsPbc(); 83 virtual void wpsGeneratePin(); 84 virtual void wpsApPinChanged(const QString &text); 85 virtual void wpsApPin(); 86 #ifdef CONFIG_NATIVE_WINDOWS 87 virtual void startService(); 88 virtual void stopService(); 89 #endif /* CONFIG_NATIVE_WINDOWS */ 90 virtual void addInterface(); 91 92 protected slots: 93 virtual void languageChange(); 94 virtual void trayActivated(QSystemTrayIcon::ActivationReason how); 95 virtual void closeEvent(QCloseEvent *event); 96 97 private: 98 ScanResults *scanres; 99 Peers *peers; 100 bool networkMayHaveChanged; 101 char *ctrl_iface; 102 EventHistory *eh; 103 struct wpa_ctrl *ctrl_conn; 104 QSocketNotifier *msgNotifier; 105 QTimer *timer; 106 int pingsToStatusUpdate; 107 WpaMsgList msgs; 108 char *ctrl_iface_dir; 109 struct wpa_ctrl *monitor_conn; 110 UserDataRequest *udr; 111 QAction *disconnectAction; 112 QAction *reconnectAction; 113 QAction *eventAction; 114 QAction *scanAction; 115 QAction *statAction; 116 QAction *showAction; 117 QAction *hideAction; 118 QAction *quitAction; 119 QMenu *tray_menu; 120 QSystemTrayIcon *tray_icon; 121 QString wpaStateTranslate(char *state); 122 void createTrayIcon(bool); 123 bool ackTrayIcon; 124 bool startInTray; 125 126 int openCtrlConnection(const char *ifname); 127 128 bool wpsRunning; 129 130 QString bssFromScan; 131 132 void stopWpsRun(bool success); 133 134 #ifdef CONFIG_NATIVE_WINDOWS 135 QAction *fileStartServiceAction; 136 QAction *fileStopServiceAction; 137 138 bool serviceRunning(); 139 #endif /* CONFIG_NATIVE_WINDOWS */ 140 141 QAction *addInterfaceAction; 142 AddInterface *add_iface; 143 144 bool connectedToService; 145 146 QApplication *app; 147 bool inTray; 148 }; 149 150 #endif /* WPAGUI_H */ 151