1813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen/*
2813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen * wpa_gui - Application startup
3813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
4813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen *
5813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen * This software may be distributed under the terms of the BSD license.
6813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen * See README for more details.
7813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen */
85a6fdcd3718927109592c6df692fe24a8fdaee31Jack Jansen
9cc94764c67f6fbb73caecec5afabef7327b15ac7Jack Jansen#ifdef CONFIG_NATIVE_WINDOWS
10cc94764c67f6fbb73caecec5afabef7327b15ac7Jack Jansen#include <winsock.h>
11813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen#endif /* CONFIG_NATIVE_WINDOWS */
12813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen#include <QApplication>
13b2e33fe285a1f998f477202e9379a39488ea518bJack Jansen#include <QtCore/QLibraryInfo>
14813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen#include <QtCore/QTranslator>
15b2e33fe285a1f998f477202e9379a39488ea518bJack Jansen#include "wpagui.h"
16813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen
17791d56f1f71a9cc02993063ea1545d7ae8822bf2Brett CannonWpaGuiApp::WpaGuiApp(int &argc, char **argv) :
18791d56f1f71a9cc02993063ea1545d7ae8822bf2Brett Cannon	QApplication(argc, argv),
19791d56f1f71a9cc02993063ea1545d7ae8822bf2Brett Cannon	argc(argc),
20813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	argv(argv)
21813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen{
22813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	w = NULL;
23813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen}
24813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen
25813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen#if !defined(QT_NO_SESSIONMANAGER) && QT_VERSION < 0x050000
26813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansenvoid WpaGuiApp::saveState(QSessionManager &manager)
273b8052685c87e6564a3a4c37954ac2d96fcd6478Jack Jansen{
28813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	QApplication::saveState(manager);
29813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	w->saveState();
30813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen}
31813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen#endif
32813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen
33813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen
3481da9f146c2223bc486197c2df03feda5126dcd5Jack Jansenint main(int argc, char *argv[])
35813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen{
36813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	WpaGuiApp app(argc, argv);
3781da9f146c2223bc486197c2df03feda5126dcd5Jack Jansen	QTranslator translator;
3881da9f146c2223bc486197c2df03feda5126dcd5Jack Jansen	QString locale;
3981da9f146c2223bc486197c2df03feda5126dcd5Jack Jansen	QString resourceDir;
40813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	int ret;
41813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen
42813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	locale = QLocale::system().name();
43813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
44cc94764c67f6fbb73caecec5afabef7327b15ac7Jack Jansen	if (!translator.load("wpa_gui_" + locale, resourceDir))
45cc94764c67f6fbb73caecec5afabef7327b15ac7Jack Jansen		translator.load("wpa_gui_" + locale, "lang");
46813c997b7663aaad296f6f221d2395b3fee4b422Jack Jansen	app.installTranslator(&translator);
47a4f8e580588b7ebd5fde61debab3fdb72f37cdecJack Jansen
480ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen	WpaGui w(&app);
490ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen
500ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen#ifdef CONFIG_NATIVE_WINDOWS
510ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen	WSADATA wsaData;
520ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen	if (WSAStartup(MAKEWORD(2, 0), &wsaData)) {
530ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen		/* printf("Could not find a usable WinSock.dll\n"); */
540ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen		return -1;
550ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen	}
560ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen#endif /* CONFIG_NATIVE_WINDOWS */
570ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen
580ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen	app.w = &w;
590ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen
600ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen	ret = app.exec();
6170a6b49821a3226f55e9716f32d802d06640cb89Walter Dörwald
620ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen#ifdef CONFIG_NATIVE_WINDOWS
630ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen	WSACleanup();
64182b5aca27d376b08a2904bed42b751496f932f3Tim Peters#endif /* CONFIG_NATIVE_WINDOWS */
65182b5aca27d376b08a2904bed42b751496f932f3Tim Peters
66c77f6dfd923e469cd645a0f825509cf0e9c490a0Jack Jansen	return ret;
67182b5aca27d376b08a2904bed42b751496f932f3Tim Peters}
680ae3220736f9b71820b01aee1f540d0afcceb9a6Jack Jansen