You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/katomic/toplevel.cpp

120 lines
3.5 KiB

/* toplevel.cpp
Copyright (C) 1998 Andreas W<>st (AndreasWuest@gmx.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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include <tqgroupbox.h>
#include <tqlayout.h>
#include <tdeglobal.h>
#include <tdelocale.h>
#include <ksimpleconfig.h>
#include <kstandarddirs.h>
#include <tdeapplication.h>
#include "gamewidget.h"
#include "toplevel.h"
#include "settings.h"
#include "configbox.h"
#include <tdeaction.h>
#include <kstdaction.h>
#include <kstdgameaction.h>
#include <kdebug.h>
extern Options settings;
void AtomTopLevel::createMenu()
{
TDEAction *act = KStdGameAction::highscores(main, TQ_SLOT(showHighscores()), actionCollection());
act->setText(i18n("Show &Highscores"));
KStdGameAction::quit(this, TQ_SLOT(close()), actionCollection());
KStdGameAction::restart(main, TQ_SLOT(restartLevel()), actionCollection());
KStdAction::preferences(this, TQ_SLOT(configopts()), actionCollection());
undoAction = KStdGameAction::undo (main, TQ_SLOT(doUndo()), actionCollection());
redoAction = KStdGameAction::redo (main, TQ_SLOT(doRedo()), actionCollection());
undoAction->setEnabled(false);
redoAction->setEnabled(false);
connect (main, TQ_SIGNAL (enableRedo(bool)), TQ_SLOT(enableRedo(bool)));
connect (main, TQ_SIGNAL (enableUndo(bool)), TQ_SLOT(enableUndo(bool)));
new TDEAction(i18n("Atom Up"), Key_Up, main, TQ_SLOT(moveUp()), actionCollection(), "atom_up");
new TDEAction(i18n("Atom Down"), Key_Down, main, TQ_SLOT(moveDown()), actionCollection(), "atom_down");
new TDEAction(i18n("Atom Left"), Key_Left, main, TQ_SLOT(moveLeft()), actionCollection(), "atom_left");
new TDEAction(i18n("Atom Right"), Key_Right, main, TQ_SLOT(moveRight()), actionCollection(), "atom_right");
new TDEAction(i18n("Next Atom"), Key_Tab, main, TQ_SLOT(nextAtom()), actionCollection(), "next_atom");
new TDEAction(i18n("Previous Atom"), SHIFT+Key_Tab, main, TQ_SLOT(previousAtom()), actionCollection(), "prev_atom");
}
void AtomTopLevel::configopts()
{
(new ConfigBox(this, "Options"))->show();
}
void AtomTopLevel::initConfig()
{
config = TDEGlobal::config();
}
void AtomTopLevel::saveConfig()
{
config = TDEGlobal::config();
if (settings.changed) {
config->setGroup("Options");
config->writeEntry("Animation Speed", settings.anim_speed);
config->setGroup("Colors");
}
config->sync();
}
AtomTopLevel::AtomTopLevel()
{
main = new GameWidget(this, "gamewidget");
createMenu();
initConfig();
setCentralWidget(main);
setupGUI( TDEMainWindow::Save | Keys | Create );
}
AtomTopLevel::~AtomTopLevel()
{
}
bool AtomTopLevel::queryExit()
{
saveConfig();
return true;
}
void AtomTopLevel::enableRedo(bool enable)
{
redoAction->setEnabled(enable);
}
void AtomTopLevel::enableUndo(bool enable)
{
undoAction->setEnabled(enable);
}
#include "toplevel.moc"