QTfrontend/pages.cpp
changeset 184 f97a7a3dc8f6
parent 183 57c2ef19f719
child 187 96c3154efee5
--- a/QTfrontend/pages.cpp	Thu Oct 05 16:33:18 2006 +0000
+++ b/QTfrontend/pages.cpp	Thu Oct 05 17:02:09 2006 +0000
@@ -1,440 +1,440 @@
-/*
- * Hedgewars, a worms-like game
- * Copyright (c) 2006 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QDir>
-#include <QPushButton>
-#include <QGroupBox>
-#include <QComboBox>
-#include <QLabel>
-#include <QToolBox>
-#include <QLineEdit>
-#include <QListWidget>
-#include <QApplication>
-
-#include "pages.h"
-#include "sdlkeys.h"
-#include "hwconsts.h"
-#include "gamecfgwidget.h"
-#include "teamselect.h"
-#include "gamecfgwidget.h"
-#include "SquareLabel.h"
-#include "mapContainer.h"
-
-PageMain::PageMain(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	pageLayout->setMargin(25);
-	pageLayout->setColumnStretch(0, 1);
-	pageLayout->setColumnStretch(1, 2);
-	pageLayout->setColumnStretch(2, 1);
-
-	BtnSinglePlayer = new QPushButton(this);
-	BtnSinglePlayer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-	BtnSinglePlayer->setFont(*font14);
-	BtnSinglePlayer->setText(QPushButton::tr("Single Player"));
-	pageLayout->addWidget(BtnSinglePlayer, 1, 1);
-
-	BtnMultiplayer = new QPushButton(this);
-	BtnMultiplayer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-	BtnMultiplayer->setFont(*font14);
-	BtnMultiplayer->setText(QPushButton::tr("Multiplayer"));
-	pageLayout->addWidget(BtnMultiplayer, 2, 1);
-
-	BtnNet = new QPushButton(this);
-	BtnNet->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-	BtnNet->setFont(*font14);
-	BtnNet->setText(QPushButton::tr("Net game"));
-	pageLayout->addWidget(BtnNet, 3, 1);
-
-	BtnDemos = new QPushButton(this);
-	BtnDemos->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-	BtnDemos->setFont(*font14);
-	BtnDemos->setText(QPushButton::tr("Demos"));
-	pageLayout->addWidget(BtnDemos, 4, 1);
-
-	BtnSetup = new QPushButton(this);
-	BtnSetup->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-	BtnSetup->setFont(*font14);
-	BtnSetup->setText(QPushButton::tr("Setup"));
-	pageLayout->addWidget(BtnSetup, 5, 1);
-
-	BtnExit = new QPushButton(parent);
-	BtnExit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-	BtnExit->setFont(*font14);
-	BtnExit->setText(QPushButton::tr("Exit"));
-	pageLayout->addWidget(BtnExit, 6, 1);
-}
-
-PageLocalGame::PageLocalGame(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	BtnBack =	new QPushButton(this);
-	BtnBack->setFont(*font14);
-	BtnBack->setText(QPushButton::tr("Back"));
-	pageLayout->addWidget(BtnBack, 1, 0);
-	BtnSimpleGame = new	QPushButton(this);
-	BtnSimpleGame->setFont(*font14);
-	BtnSimpleGame->setText(QPushButton::tr("Simple Game"));
-	pageLayout->addWidget(BtnSimpleGame, 1, 3);
-	gameCFG = new GameCFGWidget(this);
-	pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
-}
-
-PageEditTeam::PageEditTeam(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	pageLayout->setColumnStretch(0, 100);
-	pageLayout->setColumnMinimumWidth(0, 150);
-	pageLayout->setColumnStretch(1, 100);
-	pageLayout->setColumnMinimumWidth(1, 200);
-	pageLayout->setColumnStretch(2, 250);
-	pageLayout->setColumnMinimumWidth(2, 250);
-
-	GBoxTeam = new QGroupBox(this);
-	GBoxTeam->setTitle(QGroupBox::tr("Team"));
-	GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-	QGridLayout * GBTLayout = new QGridLayout(GBoxTeam);
-	TeamNameEdit = new QLineEdit(GBoxTeam);
-	TeamNameEdit->setMaxLength(15);
-	GBTLayout->addWidget(TeamNameEdit);
-	pageLayout->addWidget(GBoxTeam, 0, 0);
-
-	GBoxHedgehogs = new	QGroupBox(this);
-	GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
-	GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-	QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
-	for(int i = 0; i < 8; i++)
-	{
-		HHNameEdit[i] = new QLineEdit(GBoxHedgehogs);
-		HHNameEdit[i]->setGeometry(QRect(10, 20 + i * 30, 141, 20));
-		HHNameEdit[i]->setMaxLength(15);
-		GBHLayout->addWidget(HHNameEdit[i]);
-	}
-	pageLayout->addWidget(GBoxHedgehogs, 1, 0, 2, 1);
-
-	BtnTeamDiscard = new QPushButton(this);
-	BtnTeamDiscard->setFont(*font14);
-	BtnTeamDiscard->setText(QPushButton::tr("Discard"));
-	pageLayout->addWidget(BtnTeamDiscard, 4, 0);
-
-	GBoxBinds =	new QGroupBox(this);
-	GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
-	QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
-	BindsBox = new QToolBox(GBoxBinds);
-	BindsBox->setLineWidth(0);
-	GBBLayout->addWidget(BindsBox);
-	page_A = new QWidget();
-	BindsBox->addItem(page_A, QToolBox::tr("Actions"));
-	page_W = new QWidget();
-	BindsBox->addItem(page_W, QToolBox::tr("Weapons"));
-	page_WP = new QWidget();
-	BindsBox->addItem(page_WP, QToolBox::tr("Weapon properties"));
-	page_O = new QWidget();
-	BindsBox->addItem(page_O, QToolBox::tr("Other"));
-	pageLayout->addWidget(GBoxBinds, 0, 1, 5, 1);
-
-	QStringList binds;
-	for(int i = 0; strlen(sdlkeys[i][1]) > 0; i++)
-	{
-		binds << sdlkeys[i][1];
-	}
-
-	quint16 widind = 0, i = 0;
-	while (i < BINDS_NUMBER) {
-		quint16 num = 0;
-		QGridLayout * pagelayout = new QGridLayout(BindsBox->widget(widind));
-		do {
-			LBind[i] = new QLabel(BindsBox->widget(widind));
-			LBind[i]->setText(QApplication::translate("binds", cbinds[i].name));
-			LBind[i]->setAlignment(Qt::AlignRight);
-			pagelayout->addWidget(LBind[i], num, 0);
-			CBBind[i] = new QComboBox(BindsBox->widget(widind));
-			CBBind[i]->addItems(binds);
-			pagelayout->addWidget(CBBind[i], num, 1);
-			num++;
-		} while (!cbinds[i++].chwidget);
-		pagelayout->addWidget(new QWidget(BindsBox->widget(widind)), num, 0, 1, 2);
-		widind++;
-	}
-
-	GBoxGrave =	new QGroupBox(this);
-	GBoxGrave->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-	GBoxGrave->setTitle(QGroupBox::tr("Grave"));
-	QGridLayout * GBGLayout = new QGridLayout(GBoxGrave);
-	CBGrave = new QComboBox(GBoxGrave);
-	CBGrave->setMaxCount(65535);
-	GBGLayout->addWidget(CBGrave, 0, 0, 1, 3);
-	GravePreview = new QLabel(GBoxGrave);
-	GravePreview->setScaledContents(false);
-	GBGLayout->addWidget(GravePreview, 1, 1);
-	pageLayout->addWidget(GBoxGrave, 0, 2, 2, 1);
-
-	GBoxFort = new QGroupBox(this);
-	GBoxFort->setTitle(QGroupBox::tr("Fort"));
-	QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
-	CBFort = new QComboBox(GBoxFort);
-	CBFort->setMaxCount(65535);
-	GBFLayout->addWidget(CBFort, 0, 0);
-	FortPreview	= new SquareLabel(GBoxFort);
-	FortPreview->setPixmap(QPixmap());
-	FortPreview->setScaledContents(true);
-	GBFLayout->addWidget(FortPreview, 1, 0);
-	pageLayout->addWidget(GBoxFort, 2, 2, 1, 1);
-
-	BtnTeamSave	= new QPushButton(this);
-	BtnTeamSave->setFont(*font14);
-	BtnTeamSave->setText(QPushButton::tr("Save"));
-	pageLayout->addWidget(BtnTeamSave, 4, 2);
-
-
-	QDir tmpdir;
-	tmpdir.cd(datadir->absolutePath());
-	tmpdir.cd("Forts");
-	tmpdir.setFilter(QDir::Files);
-
-	CBFort->addItems(tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L.png"), "\\1"));
-	tmpdir.cd("../Graphics/Graves");
-	QStringList list = tmpdir.entryList(QStringList("*.png"));
-	for (QStringList::Iterator it = list.begin(); it != list.end(); ++it )
-	{
-		CBGrave->addItem((*it).replace(QRegExp("^(.*).png"), "\\1"));
-	}
-
-	connect(CBGrave, SIGNAL(activated(const QString &)), this, SLOT(CBGrave_activated(const QString &)));
-	connect(CBFort, SIGNAL(activated(const QString &)), this, SLOT(CBFort_activated(const QString &)));
-}
-
-void PageEditTeam::CBGrave_activated(const QString & gravename)
-{
-	QPixmap pix(datadir->absolutePath() + "/Graphics/Graves/" + gravename + ".png");
-	GravePreview->setPixmap(pix.copy(0, 0, 32, 32));
-}
-
-void PageEditTeam::CBFort_activated(const QString & fortname)
-{
-	QPixmap pix(datadir->absolutePath() + "/Forts/" + fortname + "L.png");
-	FortPreview->setPixmap(pix);
-}
-
-PageMultiplayer::PageMultiplayer(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-
-	BtnBack = new QPushButton(this);
-	BtnBack->setFont(*font14);
-	BtnBack->setText(QPushButton::tr("Back"));
-	pageLayout->addWidget(BtnBack, 1, 0);
-	
-	//HWMapContainer* pMapContainer=new HWMapContainer(this);
-	//pageLayout->addWidget(pMapContainer, 1, 1);
-
-	gameCFG = new GameCFGWidget(this);
-	pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
-	teamsSelect = new TeamSelWidget(this);
-	pageLayout->addWidget(teamsSelect, 0, 2, 1, 2);
-
-	BtnStartMPGame = new QPushButton(this);
-	BtnStartMPGame->setFont(*font14);
-	BtnStartMPGame->setText(QPushButton::tr("Start"));
-	pageLayout->addWidget(BtnStartMPGame, 1, 3);
-}
-
-PagePlayDemo::PagePlayDemo(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	pageLayout->setColumnStretch(0, 1);
-	pageLayout->setColumnStretch(1, 2);
-	pageLayout->setColumnStretch(2, 1);
-
-	BtnBack = new QPushButton(this);
-	BtnBack->setFont(*font14);
-	BtnBack->setText(QPushButton::tr("Back"));
-	pageLayout->addWidget(BtnBack, 1, 0);
-
-	BtnPlayDemo	= new QPushButton(this);
-	BtnPlayDemo->setGeometry(QRect(240,	330, 161, 41));
-	BtnPlayDemo->setFont(*font14);
-	BtnPlayDemo->setText(QPushButton::tr("Play demo"));
-	pageLayout->addWidget(BtnPlayDemo, 1, 2);
-
-	DemosList =	new QListWidget(this);
-	DemosList->setGeometry(QRect(170, 10, 311, 311));
-	pageLayout->addWidget(DemosList, 0, 1);
-}
-
-PageOptions::PageOptions(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	groupBox = new QGroupBox(this);
-	groupBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-	groupBox->setTitle(QGroupBox::tr("Teams"));
-	pageLayout->addWidget(groupBox, 0, 0, 1, 3);
-
-	QGridLayout * GBTlayout = new QGridLayout(groupBox);
-	BtnNewTeam = new QPushButton(groupBox);
-	BtnNewTeam->setFont(*font14);
-	BtnNewTeam->setText(QPushButton::tr("New team"));
-	GBTlayout->addWidget(BtnNewTeam, 0, 0);
-
-	CBTeamName = new QComboBox(groupBox);
-	GBTlayout->addWidget(CBTeamName, 0, 1);
-
-	BtnEditTeam	= new QPushButton(groupBox);
-	BtnEditTeam->setFont(*font14);
-	BtnEditTeam->setText(QPushButton::tr("Edit team"));
-	GBTlayout->addWidget(BtnEditTeam, 0, 2);
-
-	AGGroupBox = new QGroupBox(this);
-	AGGroupBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-	AGGroupBox->setTitle(QGroupBox::tr("Audio/Graphic options"));
-	pageLayout->addWidget(AGGroupBox, 1, 0, 1, 3);
-
-	QGridLayout * GBAlayout = new QGridLayout(AGGroupBox);
-	CBResolution = new QComboBox(AGGroupBox);
-	CBResolution->addItem("640x480");
-	CBResolution->addItem("800x600");
-	CBResolution->addItem("1024x768");
-	CBResolution->addItem("1280x1024");
-	GBAlayout->addWidget(CBResolution, 0, 0);
-
-	CBFullscreen = new QCheckBox(AGGroupBox);
-	CBFullscreen->setText(QCheckBox::tr("Fullscreen"));
-	GBAlayout->addWidget(CBFullscreen, 0, 1);
-
-	CBEnableSound = new	QCheckBox(AGGroupBox);
-	CBEnableSound->setText(QCheckBox::tr("Enable sound"));
-	GBAlayout->addWidget(CBEnableSound, 0, 2);
-
-	pageLayout->addWidget(new QWidget(), 3, 0, 1, 3);
-
-	BtnSaveOptions = new QPushButton(this);
-	BtnSaveOptions->setFont(*font14);
-	BtnSaveOptions->setText(QPushButton::tr("Save"));
-	pageLayout->addWidget(BtnSaveOptions, 4, 2);
-
-	BtnBack = new QPushButton(this);
-	BtnBack->setFont(*font14);
-	BtnBack->setText(QPushButton::tr("Back"));
-	pageLayout->addWidget(BtnBack, 4, 0);
-}
-
-PageNet::PageNet(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	pageLayout->setColumnStretch(0, 1);
-	pageLayout->setColumnStretch(1, 1);
-	pageLayout->setColumnStretch(2, 1);
-
-	NNGroupBox = new QGroupBox(this);
-	NNGroupBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-	NNGroupBox->setTitle(QGroupBox::tr("Net options"));
-	pageLayout->addWidget(NNGroupBox, 0, 1);
-
-	pageLayout->addWidget(new QWidget(), 1, 1);
-
-	QGridLayout * GBNlayout = new QGridLayout(NNGroupBox);
-	labelNN = new QLabel(NNGroupBox);
-	labelNN->setText(QLabel::tr("Net nick"));
-	GBNlayout->addWidget(labelNN, 0, 0);
-
-	editNetNick	= new QLineEdit(NNGroupBox);
-	editNetNick->setMaxLength(20);
-	editNetNick->setText(QLineEdit::tr("unnamed"));
-	GBNlayout->addWidget(editNetNick, 0, 1);
-
-	labelIP = new QLabel(NNGroupBox);
-	labelIP->setText(QLabel::tr("Server address"));
-	GBNlayout->addWidget(labelIP, 1, 0);
-
-	editIP = new QLineEdit(NNGroupBox);
-	editIP->setMaxLength(50);
-	GBNlayout->addWidget(editIP, 1, 1);
-
-	BtnNetConnect = new	QPushButton(this);
-	BtnNetConnect->setFont(*font14);
-	BtnNetConnect->setText(QPushButton::tr("Connect"));
-	pageLayout->addWidget(BtnNetConnect, 2, 2);
-
-	BtnBack = new QPushButton(this);
-	BtnBack->setFont(*font14);
-	BtnBack->setText(QPushButton::tr("Back"));
-	pageLayout->addWidget(BtnBack, 2, 0);
-}
-
-PageNetChat::PageNetChat(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	pageLayout->setColumnStretch(0, 1);
-	pageLayout->setColumnStretch(1, 1);
-	pageLayout->setColumnStretch(2, 1);
-
-	BtnDisconnect = new QPushButton(this);
-	BtnDisconnect->setFont(*font14);
-	BtnDisconnect->setText(QPushButton::tr("Disconnect"));
-	pageLayout->addWidget(BtnDisconnect, 2, 0);
-
-	ChannelsList = new QListWidget(this);
-	pageLayout->addWidget(ChannelsList, 0, 1);
-
-	BtnJoin = new QPushButton(this);
-	BtnJoin->setFont(*font14);
-	BtnJoin->setText(QPushButton::tr("Join"));
-	pageLayout->addWidget(BtnJoin, 2, 2);
-
-	BtnCreate = new QPushButton(this);
-	BtnCreate->setFont(*font14);
-	BtnCreate->setText(QPushButton::tr("Create"));
-	pageLayout->addWidget(BtnCreate, 1, 2);
-}
-
-
-PageNetGame::PageNetGame(QWidget* parent) : QWidget(parent)
-{
-	QFont * font14 = new QFont("MS Shell Dlg", 14);
-	QGridLayout * pageLayout = new QGridLayout(this);
-	pageLayout->setColumnStretch(0, 1);
-	pageLayout->setColumnStretch(1, 1);
-	pageLayout->setColumnStretch(2, 1);
-
-	BtnBack = new QPushButton(this);
-	BtnBack->setFont(*font14);
-	BtnBack->setText(QPushButton::tr("Back"));
-	pageLayout->addWidget(BtnBack, 2, 0);
-
-	BtnAddTeam = new QPushButton(this);
-	BtnAddTeam->setFont(*font14);
-	BtnAddTeam->setText(QPushButton::tr("Add Team"));
-	pageLayout->addWidget(BtnAddTeam, 1, 1);
-
-	BtnGo	= new QPushButton(this);
-	BtnGo->setFont(*font14);
-	BtnGo->setText(QPushButton::tr("Go!"));
-	pageLayout->addWidget(BtnGo, 2, 2);
-
-	listNetTeams = new QListWidget(this);
-	pageLayout->addWidget(listNetTeams, 0, 1);
-}
+/*
+ * Hedgewars, a worms-like game
+ * Copyright (c) 2006 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QDir>
+#include <QPushButton>
+#include <QGroupBox>
+#include <QComboBox>
+#include <QLabel>
+#include <QToolBox>
+#include <QLineEdit>
+#include <QListWidget>
+#include <QApplication>
+
+#include "pages.h"
+#include "sdlkeys.h"
+#include "hwconsts.h"
+#include "gamecfgwidget.h"
+#include "teamselect.h"
+#include "gamecfgwidget.h"
+#include "SquareLabel.h"
+#include "mapContainer.h"
+
+PageMain::PageMain(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	pageLayout->setMargin(25);
+	pageLayout->setColumnStretch(0, 1);
+	pageLayout->setColumnStretch(1, 2);
+	pageLayout->setColumnStretch(2, 1);
+
+	BtnSinglePlayer = new QPushButton(this);
+	BtnSinglePlayer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+	BtnSinglePlayer->setFont(*font14);
+	BtnSinglePlayer->setText(QPushButton::tr("Single Player"));
+	pageLayout->addWidget(BtnSinglePlayer, 1, 1);
+
+	BtnMultiplayer = new QPushButton(this);
+	BtnMultiplayer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+	BtnMultiplayer->setFont(*font14);
+	BtnMultiplayer->setText(QPushButton::tr("Multiplayer"));
+	pageLayout->addWidget(BtnMultiplayer, 2, 1);
+
+	BtnNet = new QPushButton(this);
+	BtnNet->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+	BtnNet->setFont(*font14);
+	BtnNet->setText(QPushButton::tr("Net game"));
+	pageLayout->addWidget(BtnNet, 3, 1);
+
+	BtnDemos = new QPushButton(this);
+	BtnDemos->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+	BtnDemos->setFont(*font14);
+	BtnDemos->setText(QPushButton::tr("Demos"));
+	pageLayout->addWidget(BtnDemos, 4, 1);
+
+	BtnSetup = new QPushButton(this);
+	BtnSetup->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+	BtnSetup->setFont(*font14);
+	BtnSetup->setText(QPushButton::tr("Setup"));
+	pageLayout->addWidget(BtnSetup, 5, 1);
+
+	BtnExit = new QPushButton(parent);
+	BtnExit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+	BtnExit->setFont(*font14);
+	BtnExit->setText(QPushButton::tr("Exit"));
+	pageLayout->addWidget(BtnExit, 6, 1);
+}
+
+PageLocalGame::PageLocalGame(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	BtnBack =	new QPushButton(this);
+	BtnBack->setFont(*font14);
+	BtnBack->setText(QPushButton::tr("Back"));
+	pageLayout->addWidget(BtnBack, 1, 0);
+	BtnSimpleGame = new	QPushButton(this);
+	BtnSimpleGame->setFont(*font14);
+	BtnSimpleGame->setText(QPushButton::tr("Simple Game"));
+	pageLayout->addWidget(BtnSimpleGame, 1, 3);
+	gameCFG = new GameCFGWidget(this);
+	pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
+}
+
+PageEditTeam::PageEditTeam(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	pageLayout->setColumnStretch(0, 100);
+	pageLayout->setColumnMinimumWidth(0, 150);
+	pageLayout->setColumnStretch(1, 100);
+	pageLayout->setColumnMinimumWidth(1, 200);
+	pageLayout->setColumnStretch(2, 250);
+	pageLayout->setColumnMinimumWidth(2, 250);
+
+	GBoxTeam = new QGroupBox(this);
+	GBoxTeam->setTitle(QGroupBox::tr("Team"));
+	GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+	QGridLayout * GBTLayout = new QGridLayout(GBoxTeam);
+	TeamNameEdit = new QLineEdit(GBoxTeam);
+	TeamNameEdit->setMaxLength(15);
+	GBTLayout->addWidget(TeamNameEdit);
+	pageLayout->addWidget(GBoxTeam, 0, 0);
+
+	GBoxHedgehogs = new	QGroupBox(this);
+	GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
+	GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+	QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
+	for(int i = 0; i < 8; i++)
+	{
+		HHNameEdit[i] = new QLineEdit(GBoxHedgehogs);
+		HHNameEdit[i]->setGeometry(QRect(10, 20 + i * 30, 141, 20));
+		HHNameEdit[i]->setMaxLength(15);
+		GBHLayout->addWidget(HHNameEdit[i]);
+	}
+	pageLayout->addWidget(GBoxHedgehogs, 1, 0, 2, 1);
+
+	BtnTeamDiscard = new QPushButton(this);
+	BtnTeamDiscard->setFont(*font14);
+	BtnTeamDiscard->setText(QPushButton::tr("Discard"));
+	pageLayout->addWidget(BtnTeamDiscard, 4, 0);
+
+	GBoxBinds =	new QGroupBox(this);
+	GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
+	QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
+	BindsBox = new QToolBox(GBoxBinds);
+	BindsBox->setLineWidth(0);
+	GBBLayout->addWidget(BindsBox);
+	page_A = new QWidget();
+	BindsBox->addItem(page_A, QToolBox::tr("Actions"));
+	page_W = new QWidget();
+	BindsBox->addItem(page_W, QToolBox::tr("Weapons"));
+	page_WP = new QWidget();
+	BindsBox->addItem(page_WP, QToolBox::tr("Weapon properties"));
+	page_O = new QWidget();
+	BindsBox->addItem(page_O, QToolBox::tr("Other"));
+	pageLayout->addWidget(GBoxBinds, 0, 1, 5, 1);
+
+	QStringList binds;
+	for(int i = 0; strlen(sdlkeys[i][1]) > 0; i++)
+	{
+		binds << sdlkeys[i][1];
+	}
+
+	quint16 widind = 0, i = 0;
+	while (i < BINDS_NUMBER) {
+		quint16 num = 0;
+		QGridLayout * pagelayout = new QGridLayout(BindsBox->widget(widind));
+		do {
+			LBind[i] = new QLabel(BindsBox->widget(widind));
+			LBind[i]->setText(QApplication::translate("binds", cbinds[i].name));
+			LBind[i]->setAlignment(Qt::AlignRight);
+			pagelayout->addWidget(LBind[i], num, 0);
+			CBBind[i] = new QComboBox(BindsBox->widget(widind));
+			CBBind[i]->addItems(binds);
+			pagelayout->addWidget(CBBind[i], num, 1);
+			num++;
+		} while (!cbinds[i++].chwidget);
+		pagelayout->addWidget(new QWidget(BindsBox->widget(widind)), num, 0, 1, 2);
+		widind++;
+	}
+
+	GBoxGrave =	new QGroupBox(this);
+	GBoxGrave->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+	GBoxGrave->setTitle(QGroupBox::tr("Grave"));
+	QGridLayout * GBGLayout = new QGridLayout(GBoxGrave);
+	CBGrave = new QComboBox(GBoxGrave);
+	CBGrave->setMaxCount(65535);
+	GBGLayout->addWidget(CBGrave, 0, 0, 1, 3);
+	GravePreview = new QLabel(GBoxGrave);
+	GravePreview->setScaledContents(false);
+	GBGLayout->addWidget(GravePreview, 1, 1);
+	pageLayout->addWidget(GBoxGrave, 0, 2, 2, 1);
+
+	GBoxFort = new QGroupBox(this);
+	GBoxFort->setTitle(QGroupBox::tr("Fort"));
+	QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
+	CBFort = new QComboBox(GBoxFort);
+	CBFort->setMaxCount(65535);
+	GBFLayout->addWidget(CBFort, 0, 0);
+	FortPreview	= new SquareLabel(GBoxFort);
+	FortPreview->setPixmap(QPixmap());
+	FortPreview->setScaledContents(true);
+	GBFLayout->addWidget(FortPreview, 1, 0);
+	pageLayout->addWidget(GBoxFort, 2, 2, 1, 1);
+
+	BtnTeamSave	= new QPushButton(this);
+	BtnTeamSave->setFont(*font14);
+	BtnTeamSave->setText(QPushButton::tr("Save"));
+	pageLayout->addWidget(BtnTeamSave, 4, 2);
+
+
+	QDir tmpdir;
+	tmpdir.cd(datadir->absolutePath());
+	tmpdir.cd("Forts");
+	tmpdir.setFilter(QDir::Files);
+
+	CBFort->addItems(tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L.png"), "\\1"));
+	tmpdir.cd("../Graphics/Graves");
+	QStringList list = tmpdir.entryList(QStringList("*.png"));
+	for (QStringList::Iterator it = list.begin(); it != list.end(); ++it )
+	{
+		CBGrave->addItem((*it).replace(QRegExp("^(.*).png"), "\\1"));
+	}
+
+	connect(CBGrave, SIGNAL(activated(const QString &)), this, SLOT(CBGrave_activated(const QString &)));
+	connect(CBFort, SIGNAL(activated(const QString &)), this, SLOT(CBFort_activated(const QString &)));
+}
+
+void PageEditTeam::CBGrave_activated(const QString & gravename)
+{
+	QPixmap pix(datadir->absolutePath() + "/Graphics/Graves/" + gravename + ".png");
+	GravePreview->setPixmap(pix.copy(0, 0, 32, 32));
+}
+
+void PageEditTeam::CBFort_activated(const QString & fortname)
+{
+	QPixmap pix(datadir->absolutePath() + "/Forts/" + fortname + "L.png");
+	FortPreview->setPixmap(pix);
+}
+
+PageMultiplayer::PageMultiplayer(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+
+	BtnBack = new QPushButton(this);
+	BtnBack->setFont(*font14);
+	BtnBack->setText(QPushButton::tr("Back"));
+	pageLayout->addWidget(BtnBack, 1, 0);
+	
+	//HWMapContainer* pMapContainer=new HWMapContainer(this);
+	//pageLayout->addWidget(pMapContainer, 1, 1);
+
+	gameCFG = new GameCFGWidget(this);
+	pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
+	teamsSelect = new TeamSelWidget(this);
+	pageLayout->addWidget(teamsSelect, 0, 2, 1, 2);
+
+	BtnStartMPGame = new QPushButton(this);
+	BtnStartMPGame->setFont(*font14);
+	BtnStartMPGame->setText(QPushButton::tr("Start"));
+	pageLayout->addWidget(BtnStartMPGame, 1, 3);
+}
+
+PagePlayDemo::PagePlayDemo(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	pageLayout->setColumnStretch(0, 1);
+	pageLayout->setColumnStretch(1, 2);
+	pageLayout->setColumnStretch(2, 1);
+
+	BtnBack = new QPushButton(this);
+	BtnBack->setFont(*font14);
+	BtnBack->setText(QPushButton::tr("Back"));
+	pageLayout->addWidget(BtnBack, 1, 0);
+
+	BtnPlayDemo	= new QPushButton(this);
+	BtnPlayDemo->setGeometry(QRect(240,	330, 161, 41));
+	BtnPlayDemo->setFont(*font14);
+	BtnPlayDemo->setText(QPushButton::tr("Play demo"));
+	pageLayout->addWidget(BtnPlayDemo, 1, 2);
+
+	DemosList =	new QListWidget(this);
+	DemosList->setGeometry(QRect(170, 10, 311, 311));
+	pageLayout->addWidget(DemosList, 0, 1);
+}
+
+PageOptions::PageOptions(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	groupBox = new QGroupBox(this);
+	groupBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+	groupBox->setTitle(QGroupBox::tr("Teams"));
+	pageLayout->addWidget(groupBox, 0, 0, 1, 3);
+
+	QGridLayout * GBTlayout = new QGridLayout(groupBox);
+	BtnNewTeam = new QPushButton(groupBox);
+	BtnNewTeam->setFont(*font14);
+	BtnNewTeam->setText(QPushButton::tr("New team"));
+	GBTlayout->addWidget(BtnNewTeam, 0, 0);
+
+	CBTeamName = new QComboBox(groupBox);
+	GBTlayout->addWidget(CBTeamName, 0, 1);
+
+	BtnEditTeam	= new QPushButton(groupBox);
+	BtnEditTeam->setFont(*font14);
+	BtnEditTeam->setText(QPushButton::tr("Edit team"));
+	GBTlayout->addWidget(BtnEditTeam, 0, 2);
+
+	AGGroupBox = new QGroupBox(this);
+	AGGroupBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+	AGGroupBox->setTitle(QGroupBox::tr("Audio/Graphic options"));
+	pageLayout->addWidget(AGGroupBox, 1, 0, 1, 3);
+
+	QGridLayout * GBAlayout = new QGridLayout(AGGroupBox);
+	CBResolution = new QComboBox(AGGroupBox);
+	CBResolution->addItem("640x480");
+	CBResolution->addItem("800x600");
+	CBResolution->addItem("1024x768");
+	CBResolution->addItem("1280x1024");
+	GBAlayout->addWidget(CBResolution, 0, 0);
+
+	CBFullscreen = new QCheckBox(AGGroupBox);
+	CBFullscreen->setText(QCheckBox::tr("Fullscreen"));
+	GBAlayout->addWidget(CBFullscreen, 0, 1);
+
+	CBEnableSound = new	QCheckBox(AGGroupBox);
+	CBEnableSound->setText(QCheckBox::tr("Enable sound"));
+	GBAlayout->addWidget(CBEnableSound, 0, 2);
+
+	pageLayout->addWidget(new QWidget(), 3, 0, 1, 3);
+
+	BtnSaveOptions = new QPushButton(this);
+	BtnSaveOptions->setFont(*font14);
+	BtnSaveOptions->setText(QPushButton::tr("Save"));
+	pageLayout->addWidget(BtnSaveOptions, 4, 2);
+
+	BtnBack = new QPushButton(this);
+	BtnBack->setFont(*font14);
+	BtnBack->setText(QPushButton::tr("Back"));
+	pageLayout->addWidget(BtnBack, 4, 0);
+}
+
+PageNet::PageNet(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	pageLayout->setColumnStretch(0, 1);
+	pageLayout->setColumnStretch(1, 1);
+	pageLayout->setColumnStretch(2, 1);
+
+	NNGroupBox = new QGroupBox(this);
+	NNGroupBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+	NNGroupBox->setTitle(QGroupBox::tr("Net options"));
+	pageLayout->addWidget(NNGroupBox, 0, 1);
+
+	pageLayout->addWidget(new QWidget(), 1, 1);
+
+	QGridLayout * GBNlayout = new QGridLayout(NNGroupBox);
+	labelNN = new QLabel(NNGroupBox);
+	labelNN->setText(QLabel::tr("Net nick"));
+	GBNlayout->addWidget(labelNN, 0, 0);
+
+	editNetNick	= new QLineEdit(NNGroupBox);
+	editNetNick->setMaxLength(20);
+	editNetNick->setText(QLineEdit::tr("unnamed"));
+	GBNlayout->addWidget(editNetNick, 0, 1);
+
+	labelIP = new QLabel(NNGroupBox);
+	labelIP->setText(QLabel::tr("Server address"));
+	GBNlayout->addWidget(labelIP, 1, 0);
+
+	editIP = new QLineEdit(NNGroupBox);
+	editIP->setMaxLength(50);
+	GBNlayout->addWidget(editIP, 1, 1);
+
+	BtnNetConnect = new	QPushButton(this);
+	BtnNetConnect->setFont(*font14);
+	BtnNetConnect->setText(QPushButton::tr("Connect"));
+	pageLayout->addWidget(BtnNetConnect, 2, 2);
+
+	BtnBack = new QPushButton(this);
+	BtnBack->setFont(*font14);
+	BtnBack->setText(QPushButton::tr("Back"));
+	pageLayout->addWidget(BtnBack, 2, 0);
+}
+
+PageNetChat::PageNetChat(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	pageLayout->setColumnStretch(0, 1);
+	pageLayout->setColumnStretch(1, 1);
+	pageLayout->setColumnStretch(2, 1);
+
+	BtnDisconnect = new QPushButton(this);
+	BtnDisconnect->setFont(*font14);
+	BtnDisconnect->setText(QPushButton::tr("Disconnect"));
+	pageLayout->addWidget(BtnDisconnect, 2, 0);
+
+	ChannelsList = new QListWidget(this);
+	pageLayout->addWidget(ChannelsList, 0, 1);
+
+	BtnJoin = new QPushButton(this);
+	BtnJoin->setFont(*font14);
+	BtnJoin->setText(QPushButton::tr("Join"));
+	pageLayout->addWidget(BtnJoin, 2, 2);
+
+	BtnCreate = new QPushButton(this);
+	BtnCreate->setFont(*font14);
+	BtnCreate->setText(QPushButton::tr("Create"));
+	pageLayout->addWidget(BtnCreate, 1, 2);
+}
+
+
+PageNetGame::PageNetGame(QWidget* parent) : QWidget(parent)
+{
+	QFont * font14 = new QFont("MS Shell Dlg", 14);
+	QGridLayout * pageLayout = new QGridLayout(this);
+	pageLayout->setColumnStretch(0, 1);
+	pageLayout->setColumnStretch(1, 1);
+	pageLayout->setColumnStretch(2, 1);
+
+	BtnBack = new QPushButton(this);
+	BtnBack->setFont(*font14);
+	BtnBack->setText(QPushButton::tr("Back"));
+	pageLayout->addWidget(BtnBack, 2, 0);
+
+	BtnAddTeam = new QPushButton(this);
+	BtnAddTeam->setFont(*font14);
+	BtnAddTeam->setText(QPushButton::tr("Add Team"));
+	pageLayout->addWidget(BtnAddTeam, 1, 1);
+
+	BtnGo	= new QPushButton(this);
+	BtnGo->setFont(*font14);
+	BtnGo->setText(QPushButton::tr("Go!"));
+	pageLayout->addWidget(BtnGo, 2, 2);
+
+	listNetTeams = new QListWidget(this);
+	pageLayout->addWidget(listNetTeams, 0, 1);
+}