Source Code (Use browser search to find items of interest.)
Class Index
ksame'KSameWidget (./kdegames/ksame/KSameWidget.h:29)
class KSameWidget: public KTMainWindow {
Q_OBJECT
public:
KSameWidget();
~KSameWidget();
private:
StoneWidget *stone;
HighScore *highscore;
KStatusBar *status;
QPopupMenu *colorsmenu;
QPopupMenu *optionsmenu;
QPopupMenu *editmenu;
int multispin_item;
int random_item;
int israndom;
protected:
void newGame(unsigned int board,int colors);
virtual void saveProperties(KConfig *conf);
virtual void readProperties(KConfig *conf);
public slots:
void sizeChanged();
/* File Menu */
void m_new();
void m_load();
void m_save();
void m_showhs();
void m_quit();
void m_undo();
/* Options Menu */
void m_tglboard();
void gameover();
void setColors(int colors);
void setBoard(int board);
void setScore(int score);
void setMarked(int m);
};
ksame'KSameWidget::KSameWidget() (./kdegames/ksame/KSameWidget.cpp:44)
KSameWidget::KSameWidget() {
KMenuBar *menu=new KMenuBar(this);
QPopupMenu *gamemenu=new QPopupMenu;
gamemenu->setAccel(CTRL+Key_N,
gamemenu->insertItem(i18n("&New"),this, SLOT(m_new())));
gamemenu->setAccel(CTRL+Key_L,
gamemenu->insertItem(i18n("&Open"),this, SLOT(m_load())));
gamemenu->setAccel(CTRL+Key_S,
gamemenu->insertItem(i18n("&Save"),this, SLOT(m_save())));
gamemenu->insertSeparator();
gamemenu->setAccel(CTRL+Key_H,
gamemenu->insertItem(i18n("S&how Highscore"),this, SLOT(m_showhs())));
gamemenu->insertSeparator();
gamemenu->setAccel(CTRL+Key_Q,
gamemenu->insertItem(i18n("E&xit"),this, SLOT(m_quit())));
menu->insertItem(i18n("&Game"),gamemenu);
menu->insertSeparator();
editmenu = new QPopupMenu;
editmenu->setAccel(CTRL+Key_Z,
editmenu->insertItem(i18n("&Undo"),this,
SLOT(m_undo())));
menu->insertItem(i18n("&Edit"),editmenu);
menu->insertSeparator();
optionsmenu = new QPopupMenu;
optionsmenu->setCheckable(true);
random_item = optionsmenu->insertItem(i18n("&Random Board"),this, SLOT(m_tglboard()));
optionsmenu->setAccel(CTRL+Key_R,random_item);
menu->insertItem(i18n("&Options"),optionsmenu);
menu->insertSeparator();
QString about = i18n("SameGame %1\n\n"
"by Marcus Kreutzberger (kreutzbe@informatik.mu-luebeck.de)")
.arg(KSAME_VERSION);
QPopupMenu *help = helpMenu(about);
menu->insertItem(i18n("&Help"), help);
setMenu(menu);
status=new KStatusBar(this);
status->insertItem(i18n("Colors: XX"),1);
status->insertItem(i18n("Board: XXXXXX"),2);
status->insertItem(i18n("Marked: XXXXXX"),3);
status->insertItem(i18n("Score: XXXXXX"),4);
// The new KStatusBar doesn't support this;
// commenting it out for now. status->setAlignment(4,AlignRight);
setStatusBar(status);
stone = new StoneWidget(this,15,10);
connect( stone, SIGNAL(s_gameover()), this, SLOT(gameover()));
connect( stone, SIGNAL(s_colors(int)), this, SLOT(setColors(int)));
connect( stone, SIGNAL(s_board(int)), this, SLOT(setBoard(int)));
connect( stone, SIGNAL(s_marked(int)), this, SLOT(setMarked(int)));
connect( stone, SIGNAL(s_score(int)), this, SLOT(setScore(int)));
connect(stone, SIGNAL(s_sizechanged()), this, SLOT(sizeChanged()));
setView(stone, false);
stone->show();
highscore = new HighScore();
israndom=1;
optionsmenu->setItemChecked(random_item, israndom);
sizeChanged();
if (!kapp->isRestored()) newGame(kapp->random(),default_colors);
debug("test");
}
ksame'KSameWidget::~KSameWidget() (./kdegames/ksame/KSameWidget.cpp:126)
KSameWidget::~KSameWidget() {
// delete stone;
delete highscore;
// debug("~KSameWidget\n");
}
ksame'KSameWidget::readProperties() (./kdegames/ksame/KSameWidget.cpp:132)
void KSameWidget::readProperties(KConfig *conf) {
ASSERT(conf);
stone->readProperties(conf);
}
ksame'KSameWidget::saveProperties() (./kdegames/ksame/KSameWidget.cpp:137)
void KSameWidget::saveProperties(KConfig *conf) {
ASSERT(conf);
stone->saveProperties(conf);
conf->sync();
}
ksame'KSameWidget::sizeChanged() (./kdegames/ksame/KSameWidget.cpp:143)
void KSameWidget::sizeChanged() {
setFixedSize(stone->sizeHint());
updateRects();
}
void
ksame'KSameWidget::newGame() (./kdegames/ksame/KSameWidget.cpp:149)
KSameWidget::newGame(unsigned int board,int colors) {
while (board>=1000000) board-=1000000;
// debug("newgame board %i colors %i",board,colors);
stone->newGame(board,colors);
// setBoard(stone->getBoard());
// setColors(stone->getColors());
}
ksame'KSameWidget::m_new() (./kdegames/ksame/KSameWidget.cpp:157)
void KSameWidget::m_new() {
if (israndom) {
if (stone->isGameover()||
(QMessageBox::information(this, kapp->caption() + " - " + i18n("New Game"),
i18n("Do you want to resign?"),
i18n("Yes"), i18n("No"))==0)) {
newGame(kapp->random(),default_colors);
}
} else {
QDialog dlg(0,i18n("Board"),1);
int w=10,h=10;
KIntNumInput bno(0, this, 10);
bno.setRange(0, 1000000, 1);
bno.setLabel(i18n("Select a board"));
bno.setFocus();
// QLabel l(&bno,i18n("Please &enter the board number:"),&dlg);
bno.move(10,h);
bno.resize(bno.sizeHint());
w=bno.width()+20;
h+=bno.height()+10;
// bno.move(10,h);
// w=QMAX(bno.width()+20,w);
// h+=bno.height()+10;
QPushButton ok(i18n("OK"), &dlg);
ok.setDefault(true);
QPushButton cancel(i18n("Cancel"), &dlg);
w=QMAX(ok.width()+cancel.width()+40,w);
ok.move(w-ok.width()-20-cancel.width(),h);
cancel.move(w-cancel.width()-10,h);
h+=QMAX(ok.height(),cancel.height())+10;
dlg.resize(w,h);
dlg.setFixedSize(w,h);
dlg.connect(&ok, SIGNAL(clicked()), SLOT(accept()) );
dlg.connect(&cancel, SIGNAL(clicked()), SLOT(reject()) );
dlg.connect(&bno, SIGNAL(returnPressed()), SLOT(accept()) );
bno.setValue(stone->board());
// bno.selectAll();
if (dlg.exec()) newGame(bno.value(),default_colors);
}
}
ksame'KSameWidget::m_load() (./kdegames/ksame/KSameWidget.cpp:205)
void KSameWidget::m_load() {
debug("menu load not supported");
}
ksame'KSameWidget::m_save() (./kdegames/ksame/KSameWidget.cpp:209)
void KSameWidget::m_save() {
debug("menu save not supported");
}
ksame'KSameWidget::m_undo() (./kdegames/ksame/KSameWidget.cpp:213)
void KSameWidget::m_undo() {
ASSERT(stone);
stone->undo();
}
ksame'KSameWidget::m_showhs() (./kdegames/ksame/KSameWidget.cpp:219)
void KSameWidget::m_showhs() {
ASSERT(stone);
stone->unmark();
highscore->showScore();
}
ksame'KSameWidget::m_quit() (./kdegames/ksame/KSameWidget.cpp:224)
void KSameWidget::m_quit() {
ASSERT(stone);
stone->unmark();
if (QMessageBox::information(this, i18n("SameGame - Exit"),
i18n("Do you really want to exit?"),
i18n("Yes"), i18n("No"))==0) {
kapp->quit();
}
}
ksame'KSameWidget::m_tglboard() (./kdegames/ksame/KSameWidget.cpp:234)
void KSameWidget::m_tglboard() {
israndom=!israndom;
optionsmenu->setItemChecked(random_item, israndom);
}
ksame'KSameWidget::setColors() (./kdegames/ksame/KSameWidget.cpp:240)
void KSameWidget::setColors(int colors) {
QString s;
s.sprintf(i18n("Colors: %01i"),colors);
status->changeItem(s,1);
}
ksame'KSameWidget::setBoard() (./kdegames/ksame/KSameWidget.cpp:246)
void KSameWidget::setBoard(int board) {
QString s;
s.sprintf(i18n("Board: %06i"),board);
status->changeItem(s,2);
}
ksame'KSameWidget::setMarked() (./kdegames/ksame/KSameWidget.cpp:252)
void KSameWidget::setMarked(int m) {
QString s;
s.sprintf(i18n("Marked: %06i"),m);
status->changeItem(s,3);
}
ksame'KSameWidget::setScore() (./kdegames/ksame/KSameWidget.cpp:258)
void KSameWidget::setScore(int score) {
QString s;
s.sprintf(i18n("Score: %06i"),score);
status->changeItem(s,4);
}
ksame'KSameWidget::gameover() (./kdegames/ksame/KSameWidget.cpp:264)
void KSameWidget::gameover() {
debug("GameOver");
stone->unmark();
highscore->add(stone->board(),stone->score(),stone->colors());
}