summaryrefslogtreecommitdiffstats
path: root/kpacman/kpacman.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kpacman/kpacman.cpp')
-rw-r--r--kpacman/kpacman.cpp476
1 files changed, 0 insertions, 476 deletions
diff --git a/kpacman/kpacman.cpp b/kpacman/kpacman.cpp
deleted file mode 100644
index 9083728..0000000
--- a/kpacman/kpacman.cpp
+++ /dev/null
@@ -1,476 +0,0 @@
-/***************************************************************************
- kpacman.cpp - description
- -------------------
- begin : Sam Jan 19 13:37:57 CET 2002
- copyright : (C) 1998-2003 by Jörg Thönnissen
- email : joe@dsite.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-// include files for TQt
-#include <tqkeycode.h>
-#include <tqcolor.h>
-#include <tqstring.h>
-#include <tqmsgbox.h>
-
-// include files for KDE
-#include <kcolordlg.h>
-#include <kstatusbar.h>
-#include <kstdaction.h>
-#include <kstdgameaction.h>
-
-// application specific includes
-#include "kpacman.h"
-
-#define ID_STATUS_MSG 1
-
-KpacmanApp::KpacmanApp(TQWidget *, const char *name) : TDEMainWindow(0, name)
-{
- config=kapp->config();
-
- ///////////////////////////////////////////////////////////////////
- // call inits to invoke all other construction parts
- initStatusBar();
- initActions();
- initView();
-
- readOptions();
-
- highscoresChecked = false;
- focusedPause = false;
-
- connect(view->referee, SIGNAL(setScore(int, int)), view->score, SLOT(setScore(int, int)));
- connect(view->referee, SIGNAL(setPoints(int)), view->score, SLOT(set(int)));
- connect(view->referee, SIGNAL(setLifes(int)), view->status, SLOT(setLifes(int)));
- connect(view->referee, SIGNAL(setLevel(int)), view->status, SLOT(setLevel(int)));
-
- connect(view->referee, SIGNAL(focusedGamePause()), this, SLOT(slotFocusedGamePause()));
- connect(view->referee, SIGNAL(forcedGameHighscores()), this, SLOT(slotForcedGameHighscores()));
-
- connect(view->score, SIGNAL(gameHighscores()), this, SLOT(slotGameHighscores()));
- connect(view->score, SIGNAL(gameFinished()), this, SLOT(slotGameFinished()));
-}
-
-KpacmanApp::~KpacmanApp()
-{
-
-}
-
-
-void KpacmanApp::initActions()
-{
- gameNew = KStdGameAction::gameNew(this, SLOT(slotGameNew()), actionCollection());
- gamePause = KStdGameAction::pause(this, SLOT(slotGamePause()), actionCollection());
- gamePause->setAccel(Key_F3);
- gameQuit = KStdGameAction::quit(this, SLOT(slotGameQuit()), actionCollection());
- gameHighscores = KStdGameAction::highscores(this, SLOT(slotGameHighscores()), actionCollection());
- showMenuBar = KStdAction::showMenubar(this, SLOT(slotShowMenuBar()), actionCollection());
- showToolBar = KStdAction::showToolbar(this, SLOT(slotShowToolBar()), actionCollection());
- showStatusBar = KStdAction::showStatusbar(this, SLOT(slotShowStatusBar()), actionCollection());
- showMouseCursor = new TDEToggleAction(i18n("Show Mouse&cursor"), 0,
- this, SLOT(slotShowMouseCursor()), actionCollection(),
- "options_show_mousecursor");
- selectGraphicScheme = new TDEActionMenu(i18n("&Select graphic scheme"), actionCollection(),
- "options_select_graphic_scheme");
- KStdAction::keyBindings(this, SLOT(slotKeyBindings()), actionCollection());
- focusOutPause = new TDEToggleAction(i18n("Pause in &Background"), 0,
- this, SLOT(slotFocusOutPause()), actionCollection(),
- "options_focus_out_pause");
- focusInContinue = new TDEToggleAction(i18n("Continue in &Foreground"), 0,
- this, SLOT(slotFocusInContinue()), actionCollection(),
- "options_focus_in_continue");
-
- showMenuBar->setStatusText(i18n("Enables/disables the menubar"));
- showToolBar->setStatusText(i18n("Enables/disables the toolbar"));
- showStatusBar->setStatusText(i18n("Enables/disables the statusbar"));
- showMouseCursor->setStatusText(i18n("Enable/disables the mousecursor"));
-
- // use the absolute path to your kpacmanui.rc file for testing purpose in createGUI();
- createGUI();
-}
-
-
-void KpacmanApp::initStatusBar()
-{
- ///////////////////////////////////////////////////////////////////
- // STATUSBAR
- // TODO: add your own items you need for displaying current application status.
- statusBar()->insertItem(i18n("Ready."), ID_STATUS_MSG);
-}
-
-void KpacmanApp::initView()
-{
- ////////////////////////////////////////////////////////////////////
- // create the main widget here that is managed by TDEMainWindow's view-region and
- // connect the widget.
-
- view = new KpacmanView(this);
- setCentralWidget(view);
-
- setFixedSize(view->width(), view->height());
- view->referee->setFocus();
-}
-
-void KpacmanApp::saveOptions()
-{
- // config->setGroup("General Options");
- config->writeEntry("Geometry", size());
- config->writeEntry("ShowMenubar", showMenuBar->isChecked());
- config->writeEntry("ShowToolbar", showToolBar->isChecked());
- config->writeEntry("ShowStatusbar", showStatusBar->isChecked());
- config->writeEntry("ShowMousecursor", showMouseCursor->isChecked());
- config->writeEntry("FocusOutPause", focusOutPause->isChecked());
- config->writeEntry("FocusInContinue", focusInContinue->isChecked());
- config->writeEntry("ToolBarPos", (int) toolBar("mainToolBar")->barPos());
- config->writeEntry("Scheme", scheme);
- config->writeEntry("Mode", mode);
-}
-
-void KpacmanApp::readOptions()
-{
-
- // config->setGroup("General Options");
-
- // bar status settings
- bool bShowMenubar = config->readBoolEntry("ShowMenubar", true);
- showMenuBar->setChecked(bShowMenubar);
- slotShowMenuBar();
-
- bool bShowToolbar = config->readBoolEntry("ShowToolbar", true);
- showToolBar->setChecked(bShowToolbar);
- slotShowToolBar();
-
- bool bShowStatusbar = config->readBoolEntry("ShowStatusbar", false);
- showStatusBar->setChecked(bShowStatusbar);
- slotShowStatusBar();
-
- // cursor status settings
- bool bShowMousecursor = config->readBoolEntry("ShowMousecursor", false);
- showMouseCursor->setChecked(bShowMousecursor);
- slotShowMouseCursor();
-
- // focus status settings
- bool bFocusOutPause = config->readBoolEntry("FocusOutPause", false);
- focusOutPause->setChecked(bFocusOutPause);
- slotFocusOutPause();
-
- bool bFocusInContinue = config->readBoolEntry("FocusInContinue", false);
- focusInContinue->setChecked(bFocusInContinue);
- slotFocusInContinue();
-
- // bar position settings
- TDEToolBar::BarPosition toolBarPos;
- toolBarPos = (TDEToolBar::BarPosition) config->readNumEntry("ToolBarPos", TDEToolBar::Top);
- toolBar("mainToolBar")->setBarPos(toolBarPos);
-
- TQSize size = config->readSizeEntry("Geometry");
- if (!size.isEmpty())
- {
- resize(size);
- }
-
- // scheme and mode
- scheme = config->readNumEntry("Scheme", -1);
- mode = config->readNumEntry("Mode", -1);
- readSchemes();
-}
-
-void KpacmanApp::readSchemes()
-{
- TQString saveGroup = config->group();
- TQString group;
- TQString description;
-
- int modeCount = config->readNumEntry("ModeCount", -1);
- int schemeCount = config->readNumEntry("SchemeCount");
-
- modeID.resize(modeCount > 0 ? modeCount : 0);
- schemeID.resize(schemeCount);
- schemeMode.resize(schemeCount);
-
- schemesPopup = new TQPtrList<TDEPopupMenu>;
- schemesPopup->setAutoDelete(true);
-
- modesPopup = selectGraphicScheme->popupMenu();
- connect(modesPopup, SIGNAL(activated(int)), this, SLOT(slotSchemeActivated(int)));
-
- if (schemeCount == 0 || scheme == -1) {
- TQMessageBox::warning(this, i18n("Configuration Error"),
- i18n("There are no schemes defined,\n"
- "or no scheme is selected."));
- return;
- }
-
- // create submenus (TQPopupMenu) for graphic-modes
- for (int m = 0; m < modeCount; m++) {
- group.sprintf("Mode %d", m);
- config->setGroup(group);
-
- description = config->readEntry("Description", group);
-
- TDEPopupMenu *p = new TDEPopupMenu;
- p->setCheckable(true);
- connect(p, SIGNAL(activated(int)), this, SLOT(slotSchemeActivated(int)));
- schemesPopup->append(p);
-
- modeID[m] = modesPopup->insertItem(description, schemesPopup->at(m));
- modesPopup->setItemEnabled(modeID[m], false);
- modesPopup->setItemChecked(modeID[m], m == mode);
- }
-
- // create menuitems (insertItem) for graphic-schemes
- for (int i = 0; i < schemeCount; i++) {
- group.sprintf("Scheme %d", i);
- config->setGroup(group);
-
- description = config->readEntry("Description", group);
- schemeMode[i] = config->readNumEntry("Mode", -1);
-
- if (schemeMode[i] == -1) {
- schemeID[i] = modesPopup->insertItem(description);
- modesPopup->setItemChecked(schemeID[i], i == scheme);
- } else {
- schemeID[i] = schemesPopup->at(schemeMode[i])->insertItem(description);
- schemesPopup->at(schemeMode[i])->setItemChecked(schemeID[i], i == scheme);
- modesPopup->setItemEnabled(modeID[schemeMode[i]], true);
- }
- }
-
- config->setGroup(saveGroup);
-}
-
-bool KpacmanApp::queryExit()
-{
- saveOptions();
- return true;
-}
-
-
-/////////////////////////////////////////////////////////////////////
-// SLOT IMPLEMENTATION
-/////////////////////////////////////////////////////////////////////
-
-void KpacmanApp::slotGameNew()
-{
- // enable the gameHighscores action, if disabled by forced highscores mode
- if (!gameHighscores->isEnabled())
- gameHighscores->setEnabled(true);
-
- // hide highscores and show board again, if in highscores mode
- if (highscoresChecked)
- slotGameHighscores();
-
- // deactivate pause and uncheck the menuitem, if in pause state
- if (gamePause->isChecked()) {
- gamePause->setChecked(false);
- slotGamePause();
- }
- // disable menuitem to prevent interruption of the game
- gameNew->setEnabled(false);
-
- view->referee->play();
-}
-
-void KpacmanApp::slotGamePause()
-{
- view->referee->pause();
- view->score->setPause(gamePause->isChecked());
-}
-
-void KpacmanApp::slotFocusedGamePause()
-{
- // if an focus-event triggers the pause, toggle the gamePause checked
- gamePause->setChecked(!gamePause->isChecked());
- focusedPause = !focusedPause;
-
- slotGamePause();
-}
-
-void KpacmanApp::slotGameHighscores()
-{
- // toggle highscores mode flag
- highscoresChecked = !highscoresChecked;
-
- view->referee->toggleHallOfFame();
-
- // show highscore (by lowering referee and status) or return to play (by raising them again)
- if (highscoresChecked) {
- view->referee->lower();
- view->status->lower();
- } else {
- view->status->raise();
- view->referee->raise();
- view->referee->setFocus();
-
- // after forced highscores comes the intro again
- if (!gameHighscores->isEnabled()) {
- gameHighscores->setEnabled(true);
- view->referee->intro();
- }
- }
-}
-
-void KpacmanApp::slotForcedGameHighscores()
-{
- // disable menuitem to prevent closing highscores display
- gameHighscores->setEnabled(false);
-
- slotGameHighscores();
-}
-
-void KpacmanApp::slotGameQuit()
-{
- slotStatusMsg(i18n("Exiting..."));
- saveOptions();
- kapp->quit();
-}
-
-void KpacmanApp::slotShowMenuBar()
-{
- slotStatusMsg(i18n("Toggling menubar..."));
- ///////////////////////////////////////////////////////////////////
- // turn Menubar on or off
- if(!showMenuBar->isChecked()) {
- menuBar()->hide();
- setFixedSize(view->width(), view->height());
- } else {
- menuBar()->show();
- }
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotShowToolBar()
-{
- slotStatusMsg(i18n("Toggling toolbar..."));
- ///////////////////////////////////////////////////////////////////
- // turn Toolbar on or off
- if(!showToolBar->isChecked()) {
- toolBar("mainToolBar")->hide();
- setFixedSize(view->width(), view->height());
- } else {
- toolBar("mainToolBar")->show();
- }
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotShowStatusBar()
-{
- slotStatusMsg(i18n("Toggle the statusbar..."));
- ///////////////////////////////////////////////////////////////////
- // turn Statusbar on or off
- if(!showStatusBar->isChecked()) {
- statusBar()->hide();
- setFixedSize(view->width(), view->height());
- } else {
- statusBar()->show();
- }
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotShowMouseCursor()
-{
- slotStatusMsg(i18n("Toggle the mousecursor..."));
- ///////////////////////////////////////////////////////////////////
- // turn Mousecursor on or off
- if(!showMouseCursor->isChecked()) {
- view->setCursor(blankCursor);
- } else {
- view->setCursor(arrowCursor);
- }
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotSchemeActivated(int id)
-{
- slotStatusMsg(i18n("Graphic scheme selected..."));
- ///////////////////////////////////////////////////////////////////
- // select activated scheme/mode
-
- mode = -1;
- scheme = -1;
-
- for (uint s = 0; s < schemeID.size(); s++) {
- if (schemeID[s] == id) {
- scheme = s;
- mode = schemeMode[s];
- }
- if (schemeMode[s] == -1) {
- modesPopup->setItemChecked(schemeID[s], schemeID[s] == id);
- } else {
- modesPopup->setItemChecked(modeID[schemeMode[s]], schemeMode[s] == mode);
- schemesPopup->at(schemeMode[s])->setItemChecked(schemeID[s], schemeID[s] == id);
- }
- }
-
- view->setScheme(scheme, mode);
- setFixedSize(view->width(), view->height());
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotFocusOutPause()
-{
- slotStatusMsg(i18n("Toggle focusOutPause..."));
- ///////////////////////////////////////////////////////////////////
- // turn focusOutPause on or off
- view->referee->setFocusOutPause(focusOutPause->isChecked());
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotFocusInContinue()
-{
- slotStatusMsg(i18n("Toggle focusInContinue..."));
- ///////////////////////////////////////////////////////////////////
- // turn focusInContinue on or off
- view->referee->setFocusInContinue(focusInContinue->isChecked());
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotKeyBindings()
-{
- slotStatusMsg(i18n("Configure key bindings..."));
- ///////////////////////////////////////////////////////////////////
- // configure key bindings
- PKeys *keys = new PKeys();
- if (keys->exec() == TQDialog::Accepted) {
- view->referee->initKeys();
- view->score->initKeys();
- }
- delete keys;
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotGameFinished()
-{
- slotStatusMsg(i18n("Game finished..."));
- ///////////////////////////////////////////////////////////////////
- // enable/disable the menuitem
- gameNew->setEnabled(true);
-
- slotStatusMsg(i18n("Ready."));
-}
-
-void KpacmanApp::slotStatusMsg(const TQString &text)
-{
- ///////////////////////////////////////////////////////////////////
- // change status message permanently
- statusBar()->clear();
- statusBar()->changeItem(text, ID_STATUS_MSG);
-}
-
-#include "kpacman.moc"