18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wpa_gui - Peers class
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2009-2010, Atheros Communications
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 PEERS_H
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define PEERS_H
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include <QObject>
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include <QStandardItemModel>
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "wpamsg.h"
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "ui_peers.h"
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass WpaGui;
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass Peers : public QDialog, public Ui::Peers
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	Q_OBJECT
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtpublic:
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	Peers(QWidget *parent = 0, const char *name = 0,
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		    bool modal = false, Qt::WFlags fl = 0);
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	~Peers();
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void setWpaGui(WpaGui *_wpagui);
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void event_notify(WpaMsg msg);
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtpublic slots:
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void context_menu(const QPoint &pos);
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void enter_pin();
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void connect_pbc();
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void learn_ap_config();
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_refresh();
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_start();
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_stop();
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_listen();
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_start_group();
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_remove_group();
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_connect();
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_req_pin();
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_show_pin();
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_display_pin();
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_display_pin_pd();
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_enter_pin();
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void properties();
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_hide_ap();
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_show_ap();
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_show_passphrase();
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_start_persistent();
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_invite();
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void ctx_p2p_delete();
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtprotected slots:
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void languageChange();
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	virtual void closeEvent(QCloseEvent *event);
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtprivate:
608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void add_station(QString info);
618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void add_stations();
628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void add_single_station(const char *addr);
638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	bool add_bss(const char *cmd);
648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void remove_bss(int id);
658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void add_scan_results();
668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void add_persistent(int id, const char *ssid, const char *bssid);
678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void add_persistent_groups();
688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void update_peers();
698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QStandardItem * find_addr(QString addr);
708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QStandardItem * find_addr_type(QString addr, int type);
718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void add_p2p_group_client(QStandardItem *parent, QString params);
728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QStandardItem * find_uuid(QString uuid);
738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void done(int r);
748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void remove_enrollee_uuid(QString uuid);
758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QString ItemType(int type);
768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void enable_persistent(int id);
778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	WpaGui *wpagui;
798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QStandardItemModel model;
808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QIcon *default_icon;
818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QIcon *ap_icon;
828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QIcon *laptop_icon;
838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QIcon *group_icon;
848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QIcon *invitation_icon;
858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	QStandardItem *ctx_item;
868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	bool hide_ap;
888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* PEERS_H */
91