summaryrefslogtreecommitdiffstats
path: root/kanagram/src/kanagram.h
diff options
context:
space:
mode:
Diffstat (limited to 'kanagram/src/kanagram.h')
-rw-r--r--kanagram/src/kanagram.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/kanagram/src/kanagram.h b/kanagram/src/kanagram.h
new file mode 100644
index 00000000..689495b8
--- /dev/null
+++ b/kanagram/src/kanagram.h
@@ -0,0 +1,134 @@
+/***************************************************************************
+ * Copyright (C) 2005 by Joshua Keel *
+ * joshuakeel@gmail.com *
+ * *
+ * 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. *
+ ***************************************************************************/
+
+#ifndef KANAGRAM_H
+#define KANAGRAM_H
+
+#include <config.h>
+
+#include <qwidget.h>
+#include <qlineedit.h>
+
+#include <kxmlguiclient.h>
+
+#ifndef WITHOUT_ARTS
+#include <arts/kartsdispatcher.h>
+#include <arts/kartsserver.h>
+#include <arts/kplayobject.h>
+#include <arts/kplayobjectfactory.h>
+#else
+class KArtsDispatcher;
+class KArtsServer;
+namespace KDE
+{
+ class PlayObjectFactory;
+}
+#endif
+
+#include "kanagramgame.h"
+
+#include <iostream>
+
+using namespace std;
+
+class KHelpMenu;
+class KConfigDialog;
+class KRandomSequence;
+class KanagramGame;
+class VocabSettings;
+
+class Kanagram : public QWidget
+{
+Q_OBJECT
+ public:
+ Kanagram();
+ ~Kanagram();
+
+ private slots:
+ void checkWord();
+ void loadSettings();
+ void hideHint();
+ void resetInputBox();
+ void refreshVocabularies();
+
+ private:
+ void drawText(QPainter &p, const QString &text, const QPoint &center, bool withMargin, int xMargin, int yMargin, QRect *rect, bool highlight, int fontSize = 18);
+ void drawTextNew(QPainter &p, const QString &text, int textAlign, int xMargin, int yMargin, const QRect &rect, bool highlight, int fontSize = 18);
+
+ void setupRects();
+
+ void play(QString filename);
+
+ void paintEvent(QPaintEvent *);
+
+ void mousePressEvent(QMouseEvent *e);
+
+ void mouseMoveEvent(QMouseEvent *e);
+
+ void updateButtonHighlighting(const QPoint &p);
+
+ void randomHintImage();
+
+ void showSettings();
+
+ void drawHelpText(QPainter &p, QString text);
+
+ void drawSwitcherText(QPainter &p, QString text);
+ void drawSwitcher(QPainter &p, const int xMargin, const int yMargin);
+
+ QRect innerRect(const QRect &rect, const int xMargin, const int yMargin);
+
+ KanagramGame *m_game;
+
+ QPixmap *m_back, *m_hintOverlay, *m_aboutKDEOverlay, *m_aboutAppOverlay, *m_handbookOverlay, *m_aboutKDEOverlayOver, *m_aboutAppOverlayOver, *m_handbookOverlayOver, *m_card, *m_arrow, *m_arrowOver, *m_next, *m_nextOver, *m_config, *m_configOver, *m_help, *m_helpOver, *m_quit, *m_quitOver, *m_up, *m_upOver, *m_upDisabled;
+
+ //Deprecated
+ //QRect m_newWordRect, m_settingsRect, m_helpRect, m_quitRect;
+
+ QRect m_nextRect, m_configRect, m_helpRect, m_quitRect, m_revealRect, m_hintRect, m_upRect, m_aboutKDERect, m_aboutAppRect, m_handbookRect, m_switcherRect, m_arrowRect, m_logoRect, m_hintBoxRect, m_blackboardRect;
+
+ bool m_overNext, m_overConfig, m_overHelp, m_overQuit, m_overReveal, m_overHint, m_overUp, m_overAboutKDE, m_overAboutApp, m_overHandbook, m_overSwitcher, m_overHintBox;
+
+ bool m_showHint;
+
+ QColor m_fillColor, m_fontColor, m_fontHighlightColor, m_chalkColor, m_chalkHighlightColor;
+
+ //Values for settings
+ int m_hintHideTime;
+ bool m_useSounds, m_useStandardFonts;
+
+ QFont m_blackboardFont, m_font;
+
+ KHelpMenu *m_helpMenu;
+
+ QLineEdit *m_inputBox;
+
+ VocabSettings *m_vocabSettings;
+
+ KRandomSequence m_randomImage;
+
+ QTimer *m_hintTimer;
+
+ KArtsDispatcher *m_artsDispatcher;
+ KArtsServer *m_artsServer;
+ KDE::PlayObjectFactory *m_artsFactory;
+};
+
+#endif