File indexing completed on 2024-12-01 03:48:51
0001 /* This file is part of KsirK. 0002 Copyright (C) 2008 Gael Clouet <pelouas@hotmail.fr> 0003 0004 KsirK is free software; you can redistribute it and/or 0005 modify it under the terms of the GNU General Public 0006 License as published by the Free Software Foundation, either version 2 0007 of the License, or (at your option) any later version. 0008 0009 This program is distributed in the hope that it will be useful, 0010 but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0012 General Public License for more details. 0013 0014 You should have received a copy of the GNU General Public License 0015 along with this program; if not, write to the Free Software 0016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 0017 02110-1301, USA 0018 */ 0019 0020 /* begin : Thu Jan 17 2008 */ 0021 0022 0023 #ifndef KRIGHTDIALOG_H 0024 #define KRIGHTDIALOG_H 0025 0026 #include "KsirkGlobalDefinitions.h" 0027 0028 #include "GameLogic/onu.h" 0029 #include "GameLogic/country.h" 0030 #include "GameLogic/player.h" 0031 #include <stdlib.h> 0032 #include <QGroupBox> 0033 #include <QGridLayout> 0034 #include <QPointF> 0035 #include <QDockWidget> 0036 #include <QList> 0037 #include <QLabel> 0038 #include <QPixmap> 0039 0040 #include <KConfig> 0041 #include <KConfigGroup> 0042 #include <QPushButton> 0043 0044 #include "kgamewin.h" 0045 namespace Ksirk 0046 { 0047 class KGameWindow; 0048 namespace GameLogic 0049 { 0050 class ONU; 0051 class Country; 0052 } 0053 /** 0054 * The KRightDialog class is the widget displayed on the right of 0055 * the application 0056 */ 0057 class KRightDialog: public QWidget 0058 { 0059 Q_OBJECT 0060 0061 public: 0062 /** 0063 * Creates the group box which will contains the needed widgets 0064 */ 0065 KRightDialog(QDockWidget * parent,GameLogic::ONU * world,KGameWindow* m_game); 0066 0067 /** 0068 * Destroy the widget 0069 */ 0070 ~KRightDialog() override; 0071 0072 /** 0073 * Display the country information after a right click mouse 0074 * @param contryPoint which is the point clicked 0075 */ 0076 void displayCountryDetails(const QPointF& countryPoint); 0077 0078 /** 0079 * Display the fight details 0080 */ 0081 void displayFightDetails(GameLogic::Country * attaker, GameLogic::Country * defender,int nb_A, int nb_D); 0082 0083 /** 0084 * Display information about the recycling processus 0085 * @param player which we want to see information 0086 */ 0087 void displayRecycleDetails(GameLogic::Player* player, int nbAvailArmies); 0088 0089 /** 0090 * Update information about the recycling processus 0091 * @param country country which gives his information 0092 * @param recyclePhase shows if we are in recycle phase or not 0093 */ 0094 void updateRecycleDetails(GameLogic::Country* country, bool recyclePhase, int nbAvailArmies); 0095 0096 /** 0097 * Display the dice 0098 */ 0099 void displayFightResult(int A1, int A2, int A3, int D1, int D2,int nbA,int nbD, bool win); 0100 0101 void initListLabel(int i); 0102 0103 void removeListLabel(); 0104 0105 void clearLabel(); 0106 0107 void clearLayout() ; 0108 0109 inline void close() {m_parentWidget->hide();}; 0110 0111 inline void open() {m_parentWidget->show();}; 0112 0113 inline bool isOpen() {return m_parentWidget->isVisible();}; 0114 0115 private: 0116 0117 QGridLayout * mainLayout; 0118 0119 QLabel * loadingLabel; 0120 0121 QLabel *infoProcess; 0122 0123 QDockWidget * m_parentWidget; 0124 0125 Ksirk::GameLogic::ONU * world; 0126 0127 QList<QLabel*> rightContents; 0128 0129 QLabel * flag1; 0130 0131 QLabel * flag2; 0132 0133 QWidget * bas; 0134 0135 QWidget * haut; 0136 0137 QWidget * milieu; 0138 0139 QWidget * milieu2; 0140 0141 // Widgets and buttons used in displayRecycleDetails 0142 QWidget * btRecycleWidget; 0143 0144 QWidget * btValidWidget; 0145 0146 // images for buttons 0147 QPixmap soldat; 0148 QPixmap stopAttackAuto; 0149 QPixmap recycleContinue; 0150 QPixmap recycleDone; 0151 QPixmap recycleNextPlayer; 0152 0153 KGameWindow * game; 0154 0155 QPushButton* buttonStopAttack; 0156 QPushButton* buttonStopDefense; 0157 0158 private slots: 0159 0160 void slotStopAttackAuto(); 0161 void slotStopDefenseAuto(); 0162 0163 }; 0164 0165 } 0166 0167 #endif // KRIGHTDIALOG_H