18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wpa_gui - WpaGui class 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef WPAGUI_H 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define WPAGUI_H 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include <QSystemTrayIcon> 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include <QObject> 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "ui_wpagui.h" 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "addinterface.h" 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass UserDataRequest; 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass WpaGui : public QMainWindow, public Ui::WpaGui 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{ 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt Q_OBJECT 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtpublic: 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WpaGui(QApplication *app, QWidget *parent = 0, const char *name = 0, 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt Qt::WFlags fl = 0); 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt ~WpaGui(); 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual int ctrlRequest(const char *cmd, char *buf, size_t *buflen); 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void triggerUpdate(); 318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void editNetwork(const QString &sel); 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void removeNetwork(const QString &sel); 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void enableNetwork(const QString &sel); 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void disableNetwork(const QString &sel); 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual int getNetworkDisabled(const QString &sel); 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void setBssFromScan(const QString &bssid); 378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef QT_NO_SESSIONMANAGER 388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void saveState(); 398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif 408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtpublic slots: 428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void parse_argv(); 438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void updateStatus(); 448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void updateNetworks(); 458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void helpIndex(); 468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void helpContents(); 478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void helpAbout(); 488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void disconnect(); 498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void scan(); 508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void eventHistory(); 518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void ping(); 528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void processMsg(char *msg); 538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void processCtrlReq(const char *req); 548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void receiveMsgs(); 558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void connectB(); 568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void selectNetwork(const QString &sel); 578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void editSelectedNetwork(); 588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void editListedNetwork(); 598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void removeSelectedNetwork(); 608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void removeListedNetwork(); 618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void addNetwork(); 628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void enableAllNetworks(); 638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void disableAllNetworks(); 648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void removeAllNetworks(); 658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void saveConfig(); 668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void selectAdapter(const QString &sel); 678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void updateNetworkDisabledStatus(); 688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void enableListedNetwork(bool); 698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void disableListedNetwork(bool); 708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void showTrayMessage(QSystemTrayIcon::MessageIcon type, 718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int sec, const QString &msg); 728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void showTrayStatus(); 738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void wpsDialog(); 748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void peersDialog(); 758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void tabChanged(int index); 768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void wpsPbc(); 778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void wpsGeneratePin(); 788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void wpsApPinChanged(const QString &text); 798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void wpsApPin(); 808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_NATIVE_WINDOWS 818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void startService(); 828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void stopService(); 838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_NATIVE_WINDOWS */ 848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void addInterface(); 858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtprotected slots: 878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void languageChange(); 888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void trayActivated(QSystemTrayIcon::ActivationReason how); 898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual void closeEvent(QCloseEvent *event); 908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtprivate: 928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt ScanResults *scanres; 938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt Peers *peers; 948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool networkMayHaveChanged; 958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt char *ctrl_iface; 968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt EventHistory *eh; 978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wpa_ctrl *ctrl_conn; 988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QSocketNotifier *msgNotifier; 998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QTimer *timer; 1008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int pingsToStatusUpdate; 1018d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WpaMsgList msgs; 1028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt char *ctrl_iface_dir; 1038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wpa_ctrl *monitor_conn; 1048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt UserDataRequest *udr; 1058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *disconnectAction; 1068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *reconnectAction; 1078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *eventAction; 1088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *scanAction; 1098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *statAction; 1108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *showAction; 1118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *hideAction; 1128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *quitAction; 1138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QMenu *tray_menu; 1148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QSystemTrayIcon *tray_icon; 1158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QString wpaStateTranslate(char *state); 1168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void createTrayIcon(bool); 1178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool ackTrayIcon; 1188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool startInTray; 1198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int openCtrlConnection(const char *ifname); 1218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool wpsRunning; 1238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QString bssFromScan; 1258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void stopWpsRun(bool success); 1278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_NATIVE_WINDOWS 1298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *fileStartServiceAction; 1308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *fileStopServiceAction; 1318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool serviceRunning(); 1338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_NATIVE_WINDOWS */ 1348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QAction *addInterfaceAction; 1368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt AddInterface *add_iface; 1378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool connectedToService; 1398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt QApplication *app; 1418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool inTray; 1428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 1438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* WPAGUI_H */ 145