File indexing completed on 2024-12-08 06:45:58
0001 /* 0002 This file is part of the KDE games kwin4 program 0003 SPDX-FileCopyrightText: 2006 Martin Heni <kde@heni-online.de> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef SCORE_SPRITE_H 0009 #define SCORE_SPRITE_H 0010 0011 // own 0012 #include "pixmapsprite.h" 0013 #include "thememanager.h" 0014 // Qt 0015 #include <QGraphicsPixmapItem> 0016 #include <QGraphicsTextItem> 0017 0018 /** 0019 * The sprite for a score board on the canvas. 0020 */ 0021 class ScoreSprite : public PixmapSprite 0022 { 0023 public: 0024 /** 0025 * Constructor for the score sprite. 0026 * @param id The theme id 0027 * @param theme The theme manager 0028 * @param no A used defined number (unused) 0029 * @param scene The graphics scene 0030 */ 0031 ScoreSprite(const QString &id, ThemeManager *theme, int no, QGraphicsScene *scene); 0032 0033 /** 0034 * Destructor 0035 */ 0036 ~ScoreSprite() override; 0037 0038 /** 0039 * Standard QGI advance function. 0040 * @param phase The advance phase 0041 */ 0042 void advance(int phase) override; 0043 0044 /** 0045 * Retrieve the type of QGI. This item is UserType+10 0046 * @return The type of item. 0047 */ 0048 int type() const override 0049 { 0050 return QGraphicsItem::UserType + 10; 0051 } 0052 0053 /** 0054 * Main theme change function. On call of this the item needs to redraw and 0055 * resize. 0056 */ 0057 void changeTheme() override; 0058 0059 /** 0060 * Store the level of the AI. 0061 * @param level The level 0062 * @param no The player number [0,1] 0063 */ 0064 void setLevel(int level, int no); 0065 0066 /** 0067 * Store the player name. 0068 * @param s The name 0069 * @param no The player number [0,1] 0070 */ 0071 void setPlayerName(const QString &s, int no); 0072 0073 /** 0074 * Store the amounts of wins for a player. 0075 * @param s The amount of wins 0076 * @param no The player number [0,1] 0077 */ 0078 void setWon(const QString &s, int no); 0079 0080 /** 0081 * Store the amounts of draws for a player. 0082 * @param s The amount of draws 0083 * @param no The player number [0,1] 0084 */ 0085 void setDraw(const QString &s, int no); 0086 0087 /** 0088 * Store the amounts of losses for a player. 0089 * @param s The amount of losses 0090 * @param no The player number [0,1] 0091 */ 0092 void setLoss(const QString &s, int no); 0093 0094 /** 0095 * Store the amounts of aborted games for a player. 0096 * @param s The amount of aborted games 0097 * @param no The player number [0,1] 0098 */ 0099 void setBreak(const QString &s, int no); 0100 0101 /** 0102 * Define who's turn it is next 0103 * @param no The next player number [0,1] 0104 */ 0105 void setTurn(int no); 0106 0107 /** 0108 * Store input device for a player. 0109 * @param device The device number [0-3] 0110 * @param no The player number [0,1] 0111 */ 0112 void setInput(int device, int no); 0113 0114 private: 0115 // Text for won 0116 QGraphicsTextItem *mWon[2]; 0117 0118 // Text for draw 0119 QGraphicsTextItem *mDraw[2]; 0120 0121 // Text for loss 0122 QGraphicsTextItem *mLoss[2]; 0123 0124 // Text for aborted games 0125 QGraphicsTextItem *mBreak[2]; 0126 0127 // Text for name of player 0128 QGraphicsTextItem *mName[2]; 0129 0130 // Sprite for the input device 0131 PixmapSprite *mInput[2]; 0132 0133 // Frame number of the input device sprite 0134 int mInputFrame[2]; 0135 0136 // Whose' turn or -1 for nobody 0137 int mTurn; 0138 }; 0139 0140 #endif