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