diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | c90c389a8a8d9d8661e9772ec4144c5cf2039f23 (patch) | |
tree | 6d8391395bce9eaea4ad78958617edb20c6a7573 /libkdegames/highscore/kexthighscore_gui.h | |
download | tdegames-c90c389a8a8d9d8661e9772ec4144c5cf2039f23.tar.gz tdegames-c90c389a8a8d9d8661e9772ec4144c5cf2039f23.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegames@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'libkdegames/highscore/kexthighscore_gui.h')
-rw-r--r-- | libkdegames/highscore/kexthighscore_gui.h | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/libkdegames/highscore/kexthighscore_gui.h b/libkdegames/highscore/kexthighscore_gui.h new file mode 100644 index 00000000..e721299a --- /dev/null +++ b/libkdegames/highscore/kexthighscore_gui.h @@ -0,0 +1,207 @@ +/* + This file is part of the KDE games library + Copyright (C) 2001-02 Nicolas Hadacek (hadacek@kde.org) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef KEXTHIGHSCORE_GUI_H +#define KEXTHIGHSCORE_GUI_H + +#include <qcheckbox.h> +#include <qlabel.h> +#include <qvbox.h> +#include <qtabwidget.h> + +#include <klistview.h> +#include <klineedit.h> +#include <kpushbutton.h> +#include <kdialogbase.h> + +#include "kexthighscore.h" + + +namespace KExtHighscore +{ + +class ItemContainer; +class ItemArray; +class Score; +class AdditionalTab; + +//----------------------------------------------------------------------------- +class ShowItem : public KListViewItem +{ + public: + ShowItem(QListView *, bool highlight); + + protected: + virtual void paintCell(QPainter *, const QColorGroup &, int column, + int width, int align); + + private: + bool _highlight; +}; + +class ScoresList : public KListView +{ + Q_OBJECT + public: + ScoresList(QWidget *parent); + + void addHeader(const ItemArray &); + + protected: + QListViewItem *addLine(const ItemArray &, uint index, bool highlight); + virtual QString itemText(const ItemContainer &, uint row) const = 0; + + private: + virtual void addLineItem(const ItemArray &, uint index, + QListViewItem *item); +}; + +//----------------------------------------------------------------------------- +class HighscoresList : public ScoresList +{ + Q_OBJECT + public: + HighscoresList(QWidget *parent); + + void load(const ItemArray &, int highlight); + + protected: + QString itemText(const ItemContainer &, uint row) const; +}; + +class HighscoresWidget : public QWidget +{ + Q_OBJECT + public: + HighscoresWidget(QWidget *parent); + + void load(int rank); + + signals: + void tabChanged(int i); + + public slots: + void changeTab(int i); + + private slots: + void showURL(const QString &) const; + void tabChanged() { emit tabChanged(_tw->currentPageIndex()); } + + private: + QTabWidget *_tw; + HighscoresList *_scoresList, *_playersList; + KURLLabel *_scoresUrl, *_playersUrl; + AdditionalTab *_statsTab, *_histoTab; +}; + +class HighscoresDialog : public KDialogBase +{ + Q_OBJECT + public: + HighscoresDialog(int rank, QWidget *parent); + + private slots: + void slotUser1(); + void slotUser2(); + void tabChanged(int i) { _tab = i; } + void createPage(QWidget *); + + private: + int _rank, _tab; + QWidget *_current; + QValueVector<HighscoresWidget *> _widgets; +}; + +//----------------------------------------------------------------------------- +class LastMultipleScoresList : public ScoresList +{ + Q_OBJECT +public: + LastMultipleScoresList(const QValueVector<Score> &, QWidget *parent); + +private: + void addLineItem(const ItemArray &, uint index, QListViewItem *line); + QString itemText(const ItemContainer &, uint row) const; + +private: + const QValueVector<Score> &_scores; +}; + +class TotalMultipleScoresList : public ScoresList +{ + Q_OBJECT +public: + TotalMultipleScoresList(const QValueVector<Score> &, QWidget *parent); + +private: + void addLineItem(const ItemArray &, uint index, QListViewItem *line); + QString itemText(const ItemContainer &, uint row) const; + +private: + const QValueVector<Score> &_scores; +}; + +//----------------------------------------------------------------------------- +class ConfigDialog : public KDialogBase +{ + Q_OBJECT + public: + ConfigDialog(QWidget *parent); + + bool hasBeenSaved() const { return _saved; } + + private slots: + void modifiedSlot(); + void removeSlot(); + void accept(); + void slotApply() { save(); } + void nickNameChanged(const QString &); + + private: + bool _saved; + QCheckBox *_WWHEnabled; + QLineEdit *_nickname, *_comment; + KLineEdit *_key, *_registeredName; + KPushButton *_removeButton; + + void load(); + bool save(); +}; + +//----------------------------------------------------------------------------- +class AskNameDialog : public KDialogBase +{ + Q_OBJECT + public: + AskNameDialog(QWidget *parent); + + QString name() const { return _edit->text(); } + bool dontAskAgain() const { return _checkbox->isChecked(); } + + private slots: + void nameChanged(); + + private: + QLineEdit *_edit; + QCheckBox *_checkbox; +}; + +} // namespace + +#endif |