• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegames API Reference
  • KDE Home
  • Contact Us
 

kmahjongg

  • sources
  • kde-4.14
  • kdegames
  • kmahjongg
boardwidget.h
Go to the documentation of this file.
1 /* Copyright (C) 1997 Mathias Mueller <in5y158@public.uni-hamburg.de>
2  * Copyright (C) 2006 Mauricio Piacentini <mauricio@tabuleiro.com>
3  *
4  * Kmahjongg is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
17 
18 #ifndef BOARDWIDGET_H
19 #define BOARDWIDGET_H
20 
21 
22 #include "KmTypes.h"
23 #include "kmahjonggtileset.h"
24 #include "kmahjonggbackground.h"
25 #include "kmahjongglayout.h"
26 #include "GameData.h"
27 #include "TileCoord.h"
28 #include "TileSprite.h"
29 
30 #include <QHash>
31 #include <QPoint>
32 
33 #include <qevent.h>
34 
35 #define USE_UNSTABLE_LIBKDEGAMESPRIVATE_API
36 #include <libkdegamesprivate/kgamecanvas.h>
37 
38 #include <ktoolbar.h>
39 #include <kstatusbar.h>
40 #include <kfiledialog.h>
41 
42 
43 #define ANIMSPEED 200
44 #define ID_GAME_TIMER 999
45 
46 
52 class BoardWidget : public KGameCanvasWidget
53 {
54  Q_OBJECT
55 
56 public:
61  explicit BoardWidget(QWidget *parent = 0);
62 
65  ~BoardWidget();
66 
69  void calculateNewGame(int num = -1);
70 
76  int undoMove();
77 
80  void redoMove();
81 
84  void startDemoMode();
85 
88  void stopDemoMode();
89 
92  void pause();
93 
96  void gameLoaded();
97 
100  void animateMoveList();
101 
106  void setShowMatch(bool show);
107 
113  long getGameNum() {return gameGenerationNum;}
114 
119  QString getBoardName() {return theBoardLayout.board()->getFilename();}
120 
125  QString getLayoutName();
126 
127  TileViewAngle m_angle;
128  GameData *Game;
129  KMahjonggTileset theTiles;
130  KMahjonggBackground theBackground;
131  KMahjonggLayout theBoardLayout;
132 
133  QHash<TileCoord, TileSprite *> spriteMap;
134 
135 public slots:
138  void loadSettings();
139 
142  void saveSettings();
143 
146  void resizeTileset(const QSize &wsize);
147 
150  void animatingMoveListForward();
151 
154  void animatingMoveListBackwards();
155 
158  void shuffle();
159 
162  void angleSwitchCW();
163 
166  void angleSwitchCCW();
167 
170  void helpMove();
171 
174  void helpMoveTimeout();
175 
178  void helpMoveStop();
179 
182  void demoMoveTimeout();
183 
186  void matchAnimationTimeout();
187 
190  void setDisplayedWidth();
191 
197  bool loadTileset ( const QString & );
198 
204  bool loadBoardLayout( const QString& );
205 
211  bool loadBoard();
212 
215  void drawBoard(bool showTiles = true);
216 
219  void updateSpriteMap();
220 
223  void populateSpriteMap();
224 
230  bool loadBackground(const QString&, bool bShowError = true);
231 
232 signals:
235  void statusTextChanged(const QString&, long);
236 
239  void tileNumberChanged(int iMaximum, int iCurrent, int iLeft);
240 
245  void demoModeChanged(bool bActive);
246 
249  void gameCalculated();
250 
253  void gameOver(unsigned short removed, unsigned short cheats);
254 
255 protected:
258  virtual void wheelEvent(QWheelEvent *event);
259 
266  KGameCanvasItem* itemAt(const QPoint &point) const;
267 
270  virtual void resizeEvent(QResizeEvent *event);
271 
274  void getFileOrDefault(const QString &filename, const QString &type, QString &res);
275 
278  void mousePressEvent(QMouseEvent*);
279 
282  void setStatusText(const QString&);
283 
286  void cancelUserSelectedTiles();
287 
290  void drawTileNumber();
291 
294  void hilightTile(POSITION&, bool on = true, bool refresh = true);
295 
298  void putTileInBoard(POSITION&, bool refresh = true);
299 
302  void removeTile(POSITION&, bool refresh = true);
303 
309  void transformPointToPosition(const QPoint &point, POSITION &MouseClickPos);
310 
313  void stopEndAnimation();
314 
317  void stopMatchAnimation();
318 
323  int requiredWidth();
324 
329  int requiredHeight();
330 
335  int requiredHorizontalCells();
336 
341  int requiredVerticalCells();
342 
347  bool validMovesAvailable();
348 
349  int iTimerStep;
350 
351  short matchCount;
352  bool showMatch;
353  bool showHelp;
354  bool gamePaused;
355 
356  unsigned short cheatsUsed;
357  long gameGenerationNum;
358 
359  POSITION MouseClickPos1;
360  POSITION MouseClickPos2;
361  POSITION TimerPos1;
362  POSITION TimerPos2;
363 
366  enum STATES {
367  Stop,
368  Demo,
369  Help,
370  Animation,
371  Match
372  } TimerState;
373 
374  QTimer *timer;
375  QTimer *animateForwardTimer;
376  QTimer *animateBackwardsTimer;
377 
378 private:
379  QString getRandomLayoutName() const;
380 };
381 
382 
383 #endif // BOARDWIDGET_H
KMahjonggLayout
Definition: kmahjongglayout.h:28
BoardWidget::Demo
Definition: boardwidget.h:368
BoardWidget::getGameNum
long getGameNum()
Method Description.
Definition: boardwidget.h:113
BoardWidget::getLayoutName
QString getLayoutName()
Method Description.
Definition: boardwidget.cpp:1249
QResizeEvent
QWidget
KGameCanvasItem
BoardWidget::populateSpriteMap
void populateSpriteMap()
Slot Description.
Definition: boardwidget.cpp:158
BoardWidget::Help
Definition: boardwidget.h:369
KGameCanvasWidget
BoardWidget::helpMoveTimeout
void helpMoveTimeout()
Slot Description.
Definition: boardwidget.cpp:508
BoardWidget::drawBoard
void drawBoard(bool showTiles=true)
Slot Description.
Definition: boardwidget.cpp:792
BoardWidget::Animation
Definition: boardwidget.h:370
BoardWidget::requiredHeight
int requiredHeight()
Method Description.
Definition: boardwidget.cpp:1135
BoardWidget::gameLoaded
void gameLoaded()
Method Description.
Definition: boardwidget.cpp:454
BoardWidget::m_angle
TileViewAngle m_angle
Definition: boardwidget.h:127
BoardWidget::getBoardName
QString getBoardName()
Method Description.
Definition: boardwidget.h:119
BoardWidget::transformPointToPosition
void transformPointToPosition(const QPoint &point, POSITION &MouseClickPos)
Transform window point to board position.
Definition: boardwidget.cpp:971
BoardWidget::animateBackwardsTimer
QTimer * animateBackwardsTimer
Definition: boardwidget.h:376
BoardWidget::validMovesAvailable
bool validMovesAvailable()
This method test if any valid moves are available.
Definition: boardwidget.cpp:1238
BoardLayout::getFilename
QString getFilename() const
Get filename.
Definition: BoardLayout.cpp:51
BoardWidget::setShowMatch
void setShowMatch(bool show)
Method Description.
Definition: boardwidget.cpp:618
BoardWidget::setStatusText
void setStatusText(const QString &)
Method Description.
Definition: boardwidget.cpp:1043
QWheelEvent
BoardWidget::setDisplayedWidth
void setDisplayedWidth()
Slot Description.
Definition: boardwidget.cpp:151
BoardWidget::calculateNewGame
void calculateNewGame(int num=-1)
Method Description.
Definition: boardwidget.cpp:717
BoardWidget::putTileInBoard
void putTileInBoard(POSITION &, bool refresh=true)
Method Description.
Definition: boardwidget.cpp:818
BoardWidget::gameGenerationNum
long gameGenerationNum
Definition: boardwidget.h:357
BoardWidget::timer
QTimer * timer
Definition: boardwidget.h:374
KmTypes.h
BoardWidget::saveSettings
void saveSettings()
Slot Description.
Definition: boardwidget.cpp:142
BoardWidget::shuffle
void shuffle()
Slot Description.
Definition: boardwidget.cpp:1221
QPoint
QMouseEvent
BoardWidget::angleSwitchCW
void angleSwitchCW()
Slot Description.
Definition: boardwidget.cpp:1182
BoardWidget::theBackground
KMahjonggBackground theBackground
Definition: boardwidget.h:130
BoardWidget::matchCount
short matchCount
Definition: boardwidget.h:351
TileSprite.h
BoardWidget::loadBackground
bool loadBackground(const QString &, bool bShowError=true)
Slot Description.
Definition: boardwidget.cpp:1048
TileViewAngle
TileViewAngle
Tile angles for face composition.
Definition: KmTypes.h:57
BoardWidget::Game
GameData * Game
Definition: boardwidget.h:128
BoardWidget::spriteMap
QHash< TileCoord, TileSprite * > spriteMap
Definition: boardwidget.h:133
BoardWidget::cheatsUsed
unsigned short cheatsUsed
Definition: boardwidget.h:356
BoardWidget::helpMove
void helpMove()
Slot Description.
Definition: boardwidget.cpp:493
QTimer
BoardWidget::resizeTileset
void resizeTileset(const QSize &wsize)
Slot Description.
Definition: boardwidget.cpp:133
BoardWidget::gameCalculated
void gameCalculated()
Signal Description.
QHash< TileCoord, TileSprite * >
BoardWidget::hilightTile
void hilightTile(POSITION &, bool on=true, bool refresh=true)
Method Description.
Definition: boardwidget.cpp:770
BoardWidget::angleSwitchCCW
void angleSwitchCCW()
Slot Description.
Definition: boardwidget.cpp:1143
BoardWidget::BoardWidget
BoardWidget(QWidget *parent=0)
Class Constructor.
Definition: boardwidget.cpp:34
BoardWidget::statusTextChanged
void statusTextChanged(const QString &, long)
Signal Description.
BoardWidget::removeTile
void removeTile(POSITION &, bool refresh=true)
Method Description.
Definition: boardwidget.cpp:841
BoardWidget::iTimerStep
int iTimerStep
Definition: boardwidget.h:349
BoardWidget::cancelUserSelectedTiles
void cancelUserSelectedTiles()
Method Description.
Definition: boardwidget.cpp:1070
BoardWidget::~BoardWidget
~BoardWidget()
Class Destructor.
Definition: boardwidget.cpp:81
GameData.h
BoardWidget::requiredHorizontalCells
int requiredHorizontalCells()
Method Description.
Definition: boardwidget.cpp:1111
BoardWidget::tileNumberChanged
void tileNumberChanged(int iMaximum, int iCurrent, int iLeft)
Signal Description.
BoardWidget::Match
Definition: boardwidget.h:371
BoardWidget::animateMoveList
void animateMoveList()
Method Description.
Definition: boardwidget.cpp:667
BoardWidget::startDemoMode
void startDemoMode()
Method Description.
Definition: boardwidget.cpp:536
BoardWidget::showMatch
bool showMatch
Definition: boardwidget.h:352
BoardWidget::loadSettings
void loadSettings()
Slot Description.
Definition: boardwidget.cpp:86
QString
BoardWidget::pause
void pause()
Method Description.
Definition: boardwidget.cpp:448
BoardWidget::requiredVerticalCells
int requiredVerticalCells()
Method Description.
Definition: boardwidget.cpp:1120
BoardWidget::mousePressEvent
void mousePressEvent(QMouseEvent *)
Method Description.
Definition: boardwidget.cpp:856
BoardWidget::drawTileNumber
void drawTileNumber()
Method Description.
Definition: boardwidget.cpp:1065
BoardWidget::TimerState
enum BoardWidget::STATES TimerState
QSize
pos
struct pos POSITION
Definition: KmTypes.h:34
BoardWidget::updateSpriteMap
void updateSpriteMap()
Slot Description.
Definition: boardwidget.cpp:208
BoardWidget::animateForwardTimer
QTimer * animateForwardTimer
Definition: boardwidget.h:375
BoardWidget::MouseClickPos2
POSITION MouseClickPos2
Definition: boardwidget.h:360
BoardWidget::helpMoveStop
void helpMoveStop()
Slot Description.
Definition: boardwidget.cpp:527
BoardWidget::stopMatchAnimation
void stopMatchAnimation()
Method Description.
Definition: boardwidget.cpp:648
BoardWidget::gamePaused
bool gamePaused
Definition: boardwidget.h:354
BoardWidget::matchAnimationTimeout
void matchAnimationTimeout()
Slot Description.
Definition: boardwidget.cpp:627
BoardWidget::showHelp
bool showHelp
Definition: boardwidget.h:353
BoardWidget::loadBoardLayout
bool loadBoardLayout(const QString &)
Slot Description.
Definition: boardwidget.cpp:1098
BoardWidget::TimerPos2
POSITION TimerPos2
Definition: boardwidget.h:362
BoardWidget::demoModeChanged
void demoModeChanged(bool bActive)
Signal Description.
BoardWidget::STATES
STATES
Describe the enum.
Definition: boardwidget.h:366
BoardWidget::animatingMoveListBackwards
void animatingMoveListBackwards()
Slot Description.
Definition: boardwidget.cpp:689
BoardWidget::gameOver
void gameOver(unsigned short removed, unsigned short cheats)
Signal Description.
BoardWidget::loadBoard
bool loadBoard()
Slot Description.
Definition: boardwidget.cpp:1035
BoardWidget::wheelEvent
virtual void wheelEvent(QWheelEvent *event)
Overridden virtual method for wheel events.
Definition: boardwidget.cpp:1256
GameData
This class implements.
Definition: GameData.h:51
BoardWidget::stopEndAnimation
void stopEndAnimation()
Method Description.
Definition: boardwidget.cpp:703
TileCoord.h
BoardWidget::undoMove
int undoMove()
Method Description.
Definition: boardwidget.cpp:470
BoardWidget::resizeEvent
virtual void resizeEvent(QResizeEvent *event)
Virtual Method Description.
Definition: boardwidget.cpp:122
BoardWidget::TimerPos1
POSITION TimerPos1
Definition: boardwidget.h:361
BoardWidget::getFileOrDefault
void getFileOrDefault(const QString &filename, const QString &type, QString &res)
Method Description.
BoardWidget::loadTileset
bool loadTileset(const QString &)
Slot Description.
Definition: boardwidget.cpp:1078
BoardWidget::Stop
Definition: boardwidget.h:367
BoardWidget::animatingMoveListForward
void animatingMoveListForward()
Slot Description.
Definition: boardwidget.cpp:673
BoardWidget::theTiles
KMahjonggTileset theTiles
Definition: boardwidget.h:129
BoardWidget::redoMove
void redoMove()
Method Description.
Definition: boardwidget.cpp:658
BoardWidget::theBoardLayout
KMahjonggLayout theBoardLayout
Definition: boardwidget.h:131
BoardWidget::itemAt
KGameCanvasItem * itemAt(const QPoint &point) const
Override the itemAt method of the KGameCanvasWidget.
Definition: boardwidget.cpp:923
BoardWidget::requiredWidth
int requiredWidth()
Method Description.
Definition: boardwidget.cpp:1127
BoardWidget::demoMoveTimeout
void demoMoveTimeout()
Slot Description.
Definition: boardwidget.cpp:559
BoardWidget::MouseClickPos1
POSITION MouseClickPos1
Definition: boardwidget.h:359
kmahjongglayout.h
BoardWidget::stopDemoMode
void stopDemoMode()
Method Description.
Definition: boardwidget.cpp:549
KMahjonggLayout::board
BoardLayout * board()
Definition: kmahjongglayout.cpp:119
BoardWidget
Where all the funn happens.
Definition: boardwidget.h:52
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:18:33 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kmahjongg

Skip menu "kmahjongg"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdegames API Reference

Skip menu "kdegames API Reference"
  • granatier
  • kapman
  • kblackbox
  • kgoldrunner
  • kigo
  • kmahjongg
  • KShisen
  • ksquares
  • libkdegames
  •   highscore
  •   libkdegamesprivate
  •     kgame
  • libkmahjongg
  • palapeli
  •   libpala

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal