summaryrefslogtreecommitdiff
path: root/noncore/games/kpacman
authorimm <imm>2002-09-21 12:24:59 (UTC)
committer imm <imm>2002-09-21 12:24:59 (UTC)
commit99d546ce72f40e28b04f09201d92d58294401591 (patch) (unidiff)
tree4589ba17c622a114efb4811334e0adce02cedeca /noncore/games/kpacman
parent279f025b03efdade9c211dd9441eec0c2a91ad94 (diff)
downloadopie-99d546ce72f40e28b04f09201d92d58294401591.zip
opie-99d546ce72f40e28b04f09201d92d58294401591.tar.gz
opie-99d546ce72f40e28b04f09201d92d58294401591.tar.bz2
center widget
Diffstat (limited to 'noncore/games/kpacman') (more/less context) (show whitespace changes)
-rw-r--r--noncore/games/kpacman/kpacman.cpp21
-rw-r--r--noncore/games/kpacman/kpacman.h18
-rw-r--r--noncore/games/kpacman/kpacmanwidget.cpp9
-rw-r--r--noncore/games/kpacman/referee.cpp4
-rw-r--r--noncore/games/kpacman/score.cpp61
5 files changed, 13 insertions, 100 deletions
diff --git a/noncore/games/kpacman/kpacman.cpp b/noncore/games/kpacman/kpacman.cpp
index 7df6ef0..d9d2d69 100644
--- a/noncore/games/kpacman/kpacman.cpp
+++ b/noncore/games/kpacman/kpacman.cpp
@@ -17,31 +17,33 @@
17#include <qstring.h> 17#include <qstring.h>
18#include <qpopmenu.h> 18#include <qpopmenu.h>
19#include <qmsgbox.h> 19#include <qmsgbox.h>
20 20
21Kpacman::Kpacman(QWidget *parent, const char *name) 21Kpacman::Kpacman(QWidget *parent, const char *name)
22 : KTMainWindow(parent, name) 22 : KTMainWindow(parent, name)
23{ 23{
24 schemesPopup = new QList<QPopupMenu>; 24 schemesPopup = new QList<QPopupMenu>;
25 schemesPopup->setAutoDelete(TRUE); 25 schemesPopup->setAutoDelete(TRUE);
26 26
27 menu(); 27 menu();
28 28
29 m_view = new QWidget( this, "m_view" );
30 m_view->setBackgroundColor( black );
31 m_layout = new QGridLayout( m_view );
32 m_layout->setMargin( 7 );
33
29 view = new KpacmanWidget( this, QString(name)+"widget"); 34 view = new KpacmanWidget( this, QString(name)+"widget");
35 m_layout->addWidget( view, 0, 0 );
30 36
31#ifndef QWS 37 setCaption( "KPacman" );
32 setFixedSize(view->width(), view->height());
33#else
34 setCaption( "Kpacman" );
35#endif
36 38
37 view->referee->setFocus(); 39 view->referee->setFocus();
38 40
39 connect(view->referee, SIGNAL(setScore(int, int)), 41 connect(view->referee, SIGNAL(setScore(int, int)),
40 view->score, SLOT(setScore(int, int))); 42 view->score, SLOT(setScore(int, int)));
41 connect(view->referee, SIGNAL(setPoints(int)), 43 connect(view->referee, SIGNAL(setPoints(int)),
42 view->score, SLOT(set(int))); 44 view->score, SLOT(set(int)));
43 connect(view->referee, SIGNAL(setLifes(int)), 45 connect(view->referee, SIGNAL(setLifes(int)),
44 view->status, SLOT(setLifes(int))); 46 view->status, SLOT(setLifes(int)));
45 connect(view->referee, SIGNAL(setLevel(int)), 47 connect(view->referee, SIGNAL(setLevel(int)),
46 view->status, SLOT(setLevel(int))); 48 view->status, SLOT(setLevel(int)));
47 connect(view->referee, SIGNAL(forcedHallOfFame(bool)), 49 connect(view->referee, SIGNAL(forcedHallOfFame(bool)),
@@ -54,32 +56,25 @@ Kpacman::Kpacman(QWidget *parent, const char *name)
54 this, SLOT(forcedHallOfFame(bool))); 56 this, SLOT(forcedHallOfFame(bool)));
55 57
56 APP_CONFIG_BEGIN( cfg ); 58 APP_CONFIG_BEGIN( cfg );
57 focusOutPause = !cfg->readBoolEntry("FocusOutPause", TRUE); 59 focusOutPause = !cfg->readBoolEntry("FocusOutPause", TRUE);
58 focusInContinue = !cfg->readBoolEntry("FocusInContinue", TRUE); 60 focusInContinue = !cfg->readBoolEntry("FocusInContinue", TRUE);
59 hideMouseCursor = !cfg->readBoolEntry("HideMouseCursor", TRUE); 61 hideMouseCursor = !cfg->readBoolEntry("HideMouseCursor", TRUE);
60 APP_CONFIG_END( cfg ); 62 APP_CONFIG_END( cfg );
61 63
62 toggleFocusOutPause(); 64 toggleFocusOutPause();
63 toggleFocusInContinue(); 65 toggleFocusInContinue();
64 toggleHideMouseCursor(); 66 toggleHideMouseCursor();
65 67
66#ifndef QWS 68 setCentralWidget( m_view );
67 menuBar->show();
68 view->show();
69 setMenu(menuBar);
70 setView(view);
71#else
72 setCentralWidget( view );
73#endif
74} 69}
75 70
76Kpacman::~Kpacman() 71Kpacman::~Kpacman()
77{ 72{
78 APP_CONFIG_BEGIN( cfg ); 73 APP_CONFIG_BEGIN( cfg );
79 cfg->writeEntry("FocusOutPause", focusOutPause); 74 cfg->writeEntry("FocusOutPause", focusOutPause);
80 cfg->writeEntry("FocusInContinue", focusInContinue); 75 cfg->writeEntry("FocusInContinue", focusInContinue);
81 cfg->writeEntry("HideMouseCursor", hideMouseCursor); 76 cfg->writeEntry("HideMouseCursor", hideMouseCursor);
82 APP_CONFIG_END( cfg ); 77 APP_CONFIG_END( cfg );
83 delete _menuBar; 78 delete _menuBar;
84} 79}
85 80
diff --git a/noncore/games/kpacman/kpacman.h b/noncore/games/kpacman/kpacman.h
index d7de9de..2c1de70 100644
--- a/noncore/games/kpacman/kpacman.h
+++ b/noncore/games/kpacman/kpacman.h
@@ -1,51 +1,37 @@
1#ifndef KPACMAN_H 1#ifndef KPACMAN_H
2#define KPACMAN_H 2#define KPACMAN_H
3 3
4#ifdef HAVE_CONFIG_H 4#ifdef HAVE_CONFIG_H
5#include <config.h> 5#include <config.h>
6#endif 6#endif
7 7
8#include "portable.h" 8#include "portable.h"
9 9
10#if defined( KDE2_PORT )
11#include <kapp.h>
12#include <klocale.h>
13#include <ktmainwindow.h>
14#include <kmenubar.h>
15#elif defined( QPE_PORT )
16#include <qmainwindow.h> 10#include <qmainwindow.h>
17class QMenuBar; 11class QMenuBar;
18#endif
19
20#include <qregexp.h> 12#include <qregexp.h>
21 13
22#include "kpacmanwidget.h" 14#include "kpacmanwidget.h"
23 15
24#include <qpopmenu.h> 16#include <qpopmenu.h>
25 17
26#include <qlist.h> 18#include <qlist.h>
27#include <qfileinf.h> 19#include <qfileinf.h>
20#include <qlayout.h>
28 21
29#if defined( KDE2_PORT )
30#include <referee.h>
31#include <status.h>
32#include <score.h>
33#include <keys.h>
34#elif defined( QPE_PORT )
35#include "referee.h" 22#include "referee.h"
36#include "status.h" 23#include "status.h"
37#include "score.h" 24#include "score.h"
38#include "keys.h" 25#include "keys.h"
39#endif
40 26
41class Kpacman : public KTMainWindow 27class Kpacman : public KTMainWindow
42{ 28{
43 Q_OBJECT 29 Q_OBJECT
44public: 30public:
45 Kpacman(QWidget *parent = 0, const char *name = 0); 31 Kpacman(QWidget *parent = 0, const char *name = 0);
46 virtual ~Kpacman(); 32 virtual ~Kpacman();
47 33
48public slots: 34public slots:
49 void forcedHallOfFame(bool); 35 void forcedHallOfFame(bool);
50 36
51private slots: 37private slots:
@@ -62,24 +48,26 @@ private slots:
62 void toggleHideMouseCursor(); 48 void toggleHideMouseCursor();
63 void confKeys(); 49 void confKeys();
64 50
65protected: 51protected:
66 52
67private: 53private:
68 KpacmanWidget *view; 54 KpacmanWidget *view;
69 55
70 void menu(); 56 void menu();
71 57
72 int lookupSchemes(); 58 int lookupSchemes();
73 59
60 QGridLayout *m_layout;
61 QWidget *m_view;
74 KMenuBar *_menuBar; 62 KMenuBar *_menuBar;
75 QPopupMenu *gamePopup; 63 QPopupMenu *gamePopup;
76 QPopupMenu *optionsPopup; 64 QPopupMenu *optionsPopup;
77 QPopupMenu *modesPopup; 65 QPopupMenu *modesPopup;
78 QList<QPopupMenu> *schemesPopup; 66 QList<QPopupMenu> *schemesPopup;
79 67
80 int newID; 68 int newID;
81 int pauseID; 69 int pauseID;
82 int hofID; 70 int hofID;
83 QArray<int> modeID; 71 QArray<int> modeID;
84 QArray<int> schemeID; 72 QArray<int> schemeID;
85 QArray<int> schemeMode; 73 QArray<int> schemeMode;
diff --git a/noncore/games/kpacman/kpacmanwidget.cpp b/noncore/games/kpacman/kpacmanwidget.cpp
index 215dcda..feb782c 100644
--- a/noncore/games/kpacman/kpacmanwidget.cpp
+++ b/noncore/games/kpacman/kpacmanwidget.cpp
@@ -24,29 +24,25 @@ KpacmanWidget::KpacmanWidget( QWidget *parent, const char *name)
24 : QWidget( parent, name ) 24 : QWidget( parent, name )
25{ 25{
26 bitfont = NULL; 26 bitfont = NULL;
27 fontName = ""; 27 fontName = "";
28 28
29 scheme = mode = -1; 29 scheme = mode = -1;
30 confScheme(); 30 confScheme();
31 31
32 score = new Score(this, name, scheme, mode, bitfont); 32 score = new Score(this, name, scheme, mode, bitfont);
33 referee = new Referee( this, name, scheme, mode, bitfont); 33 referee = new Referee( this, name, scheme, mode, bitfont);
34 status = new Status(this, name, scheme, mode); 34 status = new Status(this, name, scheme, mode);
35 35
36#ifndef QWS
37 setFixedSize(referee->width(), bitfont->height()*3 + referee->height() + status->height());
38#else
39 setBackgroundColor( black ); 36 setBackgroundColor( black );
40#endif
41} 37}
42 38
43KpacmanWidget::~KpacmanWidget() 39KpacmanWidget::~KpacmanWidget()
44{ 40{
45} 41}
46 42
47void KpacmanWidget::confMisc(bool defGroup) 43void KpacmanWidget::confMisc(bool defGroup)
48{ 44{
49 APP_CONFIG_BEGIN( cfg ); 45 APP_CONFIG_BEGIN( cfg );
50 //KStandardDirs *dirs = KGlobal::dirs(); 46 //KStandardDirs *dirs = KGlobal::dirs();
51 QString findPath; 47 QString findPath;
52 48
@@ -129,29 +125,24 @@ void KpacmanWidget::confScheme()
129 125
130void KpacmanWidget::setScheme(int Scheme, int Mode) 126void KpacmanWidget::setScheme(int Scheme, int Mode)
131{ 127{
132 mode = Mode; 128 mode = Mode;
133 scheme = Scheme; 129 scheme = Scheme;
134 130
135 confScheme(); 131 confScheme();
136 132
137 score->setScheme(Scheme, Mode, bitfont); 133 score->setScheme(Scheme, Mode, bitfont);
138 referee->setScheme(Scheme, Mode, bitfont); 134 referee->setScheme(Scheme, Mode, bitfont);
139 status->setScheme(Scheme, Mode); 135 status->setScheme(Scheme, Mode);
140 136
141#ifndef QWS
142 setFixedSize(referee->width(),
143 bitfont->height()*3 + referee->height() + status->height());
144#endif
145
146 score->repaint(FALSE); 137 score->repaint(FALSE);
147 referee->repaint(FALSE); 138 referee->repaint(FALSE);
148 status->repaint(FALSE); 139 status->repaint(FALSE);
149} 140}
150 141
151void KpacmanWidget::resizeEvent( QResizeEvent * ) 142void KpacmanWidget::resizeEvent( QResizeEvent * )
152{ 143{
153 referee->setGeometry(0, bitfont->height()*3, referee->width(), referee->height()); 144 referee->setGeometry(0, bitfont->height()*3, referee->width(), referee->height());
154 referee->setBackgroundColor(BLACK); 145 referee->setBackgroundColor(BLACK);
155 146
156 status->setGeometry(0, bitfont->height()*3+referee->height(), referee->width(), 147 status->setGeometry(0, bitfont->height()*3+referee->height(), referee->width(),
157 status->height()); 148 status->height());
diff --git a/noncore/games/kpacman/referee.cpp b/noncore/games/kpacman/referee.cpp
index 70916f0..81f331b 100644
--- a/noncore/games/kpacman/referee.cpp
+++ b/noncore/games/kpacman/referee.cpp
@@ -722,28 +722,28 @@ void Referee::setScheme(int Scheme, int Mode, Bitfont *font)
722 setFixedSize(pix->levelPix().size()); 722 setFixedSize(pix->levelPix().size());
723 repaint(); 723 repaint();
724} 724}
725 725
726void Referee::keyPressEvent( QKeyEvent *k ) 726void Referee::keyPressEvent( QKeyEvent *k )
727{ 727{
728 uint key = k->key(); 728 uint key = k->key();
729#ifdef QWS 729#ifdef QWS
730 // "OK" => new game 730 // "OK" => new game
731 if ( key == Key_F33 || key == Key_F2 || key == Key_Enter ) 731 if ( key == Key_F33 || key == Key_F2 || key == Key_Enter )
732 play(); 732 play();
733 else if ( !gameState.testBit(Playing) && 733 else if ( !gameState.testBit(Playing) &&
734 key == Key_Up || 734 ( key == Key_Up ||
735 key == Key_Down || 735 key == Key_Down ||
736 key == Key_Right || 736 key == Key_Right ||
737 key == Key_Left ) 737 key == Key_Left ))
738 play(); 738 play();
739 // "Space" => pause 739 // "Space" => pause
740 //else if ( key == Key_Space || key == Key_F3 ) 740 //else if ( key == Key_Space || key == Key_F3 )
741 // pause(); 741 // pause();
742 // "Menu" => hall of fame 742 // "Menu" => hall of fame
743 //else if ( key == Key_F11 || key == Key_F4 ) 743 //else if ( key == Key_F11 || key == Key_F4 )
744 // toggleHallOfFame(); 744 // toggleHallOfFame();
745#endif 745#endif
746 746
747 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame) || 747 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame) ||
748 gameState.testBit(Demonstration) || gameState.testBit(Dying) || 748 gameState.testBit(Demonstration) || gameState.testBit(Dying) ||
749 gameState.testBit(Ready) || gameState.testBit(LevelDone) || 749 gameState.testBit(Ready) || gameState.testBit(LevelDone) ||
diff --git a/noncore/games/kpacman/score.cpp b/noncore/games/kpacman/score.cpp
index 17dbf0a..b3ff3d9 100644
--- a/noncore/games/kpacman/score.cpp
+++ b/noncore/games/kpacman/score.cpp
@@ -469,52 +469,24 @@ void Score::read()
469 469
470 for (int i = 0; i < 10; i++) 470 for (int i = 0; i < 10; i++)
471 for (uint j = 0; j < hallOfFame[i].name.length(); j++) 471 for (uint j = 0; j < hallOfFame[i].name.length(); j++)
472 if (hallOfFame[i].name.at(j) < bitfont->firstChar() || 472 if (hallOfFame[i].name.at(j) < bitfont->firstChar() ||
473 hallOfFame[i].name.at(j) > bitfont->lastChar()) 473 hallOfFame[i].name.at(j) > bitfont->lastChar())
474 hallOfFame[i].name.at(j) = hallOfFame[i].name.at(j).upper(); 474 hallOfFame[i].name.at(j) = hallOfFame[i].name.at(j).upper();
475 475
476 HighScore = hallOfFame[0].points; 476 HighScore = hallOfFame[0].points;
477} 477}
478 478
479void Score::write() 479void Score::write()
480{ 480{
481#ifndef QWS
482 if (!highscoreFile.exists() && highscoreFile.name() == systemHighscoreFileInfo.filePath())
483 KMessageBox::information(0,
484 tr("You're going to create the highscore-file\n"
485 "'%1'\n"
486 "for your maschine, that should be used systemwide.\n"
487 "\n"
488 "To grant access to the other users, set the appropriate rights (a+w)\n"
489 "on that file or ask your systemadministator for that favor.\n"
490 "\n"
491 "To use a different directory or filename for the highscores,"
492 "specify them in the configfile (kpacmanrc:highscoreFilePath)."
493 ).arg(systemHighscoreFileInfo.filePath()));
494
495 if (highscoreFile.name() == privateHighscoreFileInfo.filePath())
496 KMessageBox::information(0,
497 tr("You're using a private highscore-file, that's mostly because of\n"
498 "missing write-access to the systemwide file\n"
499 "'%1' .\n"
500 "\n"
501 "Ask your systemadministrator for granting you access to that file,\n"
502 "by setting the appropriate rights (a+w) on it.\n"
503 "\n"
504 "To use a different directory or filename for the highscores,"
505 "specify them in the configfile (kpacmanrc:highscoreFilePath)."
506 ).arg(systemHighscoreFileInfo.filePath()),
507 QString::null, "PrivateHighscore");
508#endif
509 if (highscoreFile.open(IO_WriteOnly)) { 481 if (highscoreFile.open(IO_WriteOnly)) {
510 QDataStream s(&highscoreFile); 482 QDataStream s(&highscoreFile);
511 for (int i = 0; i < 10; i++) 483 for (int i = 0; i < 10; i++)
512 s << hallOfFame[i].points << hallOfFame[i].levels << hallOfFame[i].duration << 484 s << hallOfFame[i].points << hallOfFame[i].levels << hallOfFame[i].duration <<
513 hallOfFame[i].moment << hallOfFame[i].name.latin1(); 485 hallOfFame[i].moment << hallOfFame[i].name.latin1();
514 highscoreFile.close(); 486 highscoreFile.close();
515 } 487 }
516} 488}
517 489
518void Score::setPause(bool Paused) 490void Score::setPause(bool Paused)
519{ 491{
520 paused = Paused; 492 paused = Paused;
@@ -596,47 +568,14 @@ int Score::y(float row)
596 return (int) (row*(bitfont->height()+bitfont->height()/4)); 568 return (int) (row*(bitfont->height()+bitfont->height()/4));
597} 569}
598 570
599/** 571/**
600 * Ermittelt die zu benutzende "highscore"-Datei, in die auch geschrieben werden kann. 572 * Ermittelt die zu benutzende "highscore"-Datei, in die auch geschrieben werden kann.
601 * Über den "highscoreFilePath"-KConfig-Eintrag, kann abweichend von der Standardlokation 573 * Über den "highscoreFilePath"-KConfig-Eintrag, kann abweichend von der Standardlokation
602 * der Standort der "highscore"-Datei spezifiziert werden. 574 * der Standort der "highscore"-Datei spezifiziert werden.
603 * Wenn die systemweite "highscore"-Datei nicht beschrieben werden kann, wird mit einer 575 * Wenn die systemweite "highscore"-Datei nicht beschrieben werden kann, wird mit einer
604 * privaten Datei gearbeitet. 576 * privaten Datei gearbeitet.
605 */ 577 */
606QFileInfo Score::locateHighscoreFilePath() 578QFileInfo Score::locateHighscoreFilePath()
607{ 579{
608#ifndef QWS
609 QFileInfo systemHighscoreDirPath;
610 QStringList systemHighscoreDirs;
611
612 // Schreibfähige "private" highscore-Datei ermitteln für den fallback.
613 privateHighscoreFileInfo.setFile(KGlobal::dirs()->saveLocation("appdata")+highscoreName);
614
615 // FilePath aus der Konfigurationsdatei benutzen
616 systemHighscoreFileInfo.setFile(cfg->readEntry("HighscoreFilePath"));
617
618 // Kein Wert aus der Konfiguration erhalten, dann die "system"-Datei suchen.
619 if (systemHighscoreFileInfo.filePath().isEmpty())
620 systemHighscoreDirs = KGlobal::dirs()->resourceDirs("appdata");
621 else
622 systemHighscoreDirs = QStringList(systemHighscoreFileInfo.filePath());
623
624 for (QStringList::Iterator i = systemHighscoreDirs.begin(); i != systemHighscoreDirs.end(); ++i) {
625
626 systemHighscoreFileInfo.setFile(*i);
627 if (systemHighscoreFileInfo.fileName().isEmpty())
628 systemHighscoreFileInfo.setFile(systemHighscoreFileInfo.dirPath()+"/"+highscoreName);
629
630 // privateHighscoreFileInfo für die "system" Suche ignorieren
631 if (systemHighscoreFileInfo.filePath() != privateHighscoreFileInfo.filePath())
632 if (!systemHighscoreFileInfo.exists()) {
633 systemHighscoreDirPath.setFile(systemHighscoreFileInfo.dirPath());
634 if (systemHighscoreDirPath.exists() && systemHighscoreDirPath.isWritable())
635 return systemHighscoreFileInfo;
636 } else
637 if (systemHighscoreFileInfo.isWritable())
638 return systemHighscoreFileInfo;
639 }
640#endif
641 return privateHighscoreFileInfo; 580 return privateHighscoreFileInfo;
642} 581}