You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/kgoldrunner/src/kgrdialog.h

219 lines
6.1 KiB

/***************************************************************************
* Copyright (C) 2003 by Ian Wadham and Marco Kr<EFBFBD>ger *
* ianw2@optusnet.com.au *
* *
* 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; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef KGRDIALOG_QT_H
#define KGRDIALOG_QT_H
// If portable version, use QDialog and QMessageBox.
// If KDE version, use KDialogBase and KMessageBox.
#ifdef KGR_PORTABLE
#include <qdialog.h>
#define KGR_DIALOG QDialog
#include <qmessagebox.h>
#else
#include <klocale.h>
#include <kdialogbase.h>
#define KGR_DIALOG KDialogBase
#include <kmessagebox.h>
#endif
#include <qlayout.h>
#include <qlistbox.h>
#include <qscrollbar.h>
#include <qlineedit.h>
#include <qhbox.h>
#include <qpushbutton.h>
#include <qbuttongroup.h>
#include <qradiobutton.h>
#ifdef QT3
#include <qtextedit.h>
#else
#include <qmultilineedit.h>
#endif
#include <qptrlist.h>
/**
@author Ian Wadham and Marco Kr<EFBFBD>ger
*/
class KGrCanvas;
class KGrGame;
class KGrCollection;
class KGrThumbNail;
/******************************************************************************/
/******************* DIALOG TO SELECT A GAME AND LEVEL *******************/
/******************************************************************************/
class KGrSLDialog : public KGR_DIALOG // KGR_PORTABLE sets QDialog/KDialogBase
{
Q_OBJECT
public:
KGrSLDialog (int action, int requestedLevel, int collnIndex,
QPtrList<KGrCollection> & gamesList, KGrGame * theGame,
QWidget * parent = 0, const char *name = 0);
~KGrSLDialog();
int selectedLevel() {return (number->value());}
int selectedGame() {return (slCollnIndex);}
private slots:
void slSetCollections (int cIndex);
void slColln (int i);
void slAboutColln ();
void slShowLevel (int i);
void slUpdate (const QString & text);
void slPaintLevel ();
void slotHelp (); // Will replace KDE slotHelp().
private:
int slAction;
QPtrList<KGrCollection> collections; // List of games.
int defaultLevel;
int defaultGame;
int slCollnIndex;
KGrGame * game;
KGrCollection * collection;
QWidget * slParent;
QLabel * collnL;
QListBox * colln;
QLabel * collnN;
QLabel * collnD;
QPushButton * collnA;
QLabel * numberL;
QLineEdit * display;
QScrollBar * number;
QPushButton * levelNH;
QLabel * slName;
KGrThumbNail * thumbNail;
#ifdef KGR_PORTABLE
QPushButton * OK;
QPushButton * HELP;
QPushButton * CANCEL;
#endif
};
/*******************************************************************************
*************** DIALOG BOX TO CREATE/EDIT A LEVEL NAME AND HINT ****************
*******************************************************************************/
class KGrNHDialog : public KGR_DIALOG // KGR_PORTABLE sets QDialog/KDialogBase
{
Q_OBJECT
public:
KGrNHDialog (const QString & levelName, const QString & levelHint,
QWidget * parent = 0, const char * name = 0);
~KGrNHDialog();
QString getName() {return (nhName->text());}
QString getHint() {return (mle->text());}
private:
QLineEdit * nhName;
#ifdef QT3
QTextEdit * mle;
#else
QMultiLineEdit * mle;
#endif
};
/*******************************************************************************
***************** DIALOG TO CREATE OR EDIT A GAME (COLLECTION) *****************
*******************************************************************************/
class KGrECDialog : public KGR_DIALOG // KGR_PORTABLE sets QDialog/KDialogBase
{
Q_OBJECT
public:
KGrECDialog (int action, int collnIndex,
QPtrList<KGrCollection> & gamesList,
QWidget *parent = 0, const char *name = 0);
~KGrECDialog();
QString getName() {return (ecName->text());}
QString getPrefix() {return (ecPrefix->text());}
bool isTrad() {return (ecTradB->isChecked());}
QString getAboutText() {return (mle->text());}
private slots:
void ecSetRules (const char settings);
void ecSetKGr(); // Radio button slots.
void ecSetTrad();
private:
QPtrList<KGrCollection> collections; // List of existing games.
int defaultGame;
QLabel * nameL;
QLineEdit * ecName;
QLabel * prefixL;
QLineEdit * ecPrefix;
QButtonGroup * ecGrp;
QRadioButton * ecKGrB;
QRadioButton * ecTradB;
QLabel * nLevL;
QLabel * mleL;
#ifdef QT3
QTextEdit * mle;
#else
QMultiLineEdit * mle;
#endif
#ifdef KGR_PORTABLE
QPushButton * OK;
QPushButton * CANCEL;
#endif
};
/*******************************************************************************
*************** DIALOG TO SELECT A SAVED GAME TO BE RE-LOADED ****************
*******************************************************************************/
#include <qfile.h>
#include <qtextstream.h>
class KGrLGDialog : public KGR_DIALOG // KGR_PORTABLE sets QDialog/KDialogBase
{
Q_OBJECT
public:
KGrLGDialog (QFile * savedGames, QPtrList<KGrCollection> & collections,
QWidget * parent, const char * name);
QString getCurrentText() {return (lgList->currentText());}
private slots:
void lgSelect (int n);
private:
QListBox * lgList;
int lgHighlight;
};
/*******************************************************************************
****************** PORTABLE MESSAGE FUNCTIONS (Qt Version) *******************
*******************************************************************************/
class KGrMessage : public QDialog
{
public:
static void information (QWidget * parent, const QString &caption, const QString &text);
static int warning (QWidget * parent, QString caption, QString text,
QString label0, QString label1, QString label2 = "");
static void wrapped (QWidget * parent, QString caption, QString text);
};
#endif