summaryrefslogtreecommitdiffstats
path: root/kpacman/kpacman.h
diff options
context:
space:
mode:
Diffstat (limited to 'kpacman/kpacman.h')
-rw-r--r--kpacman/kpacman.h185
1 files changed, 185 insertions, 0 deletions
diff --git a/kpacman/kpacman.h b/kpacman/kpacman.h
new file mode 100644
index 0000000..527d344
--- /dev/null
+++ b/kpacman/kpacman.h
@@ -0,0 +1,185 @@
+/***************************************************************************
+ kpacman.h - 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. *
+ * *
+ ***************************************************************************/
+
+#ifndef KPACMAN_H
+#define KPACMAN_H
+
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// include files for Qt
+#include <qlist.h>
+#include <qfileinf.h>
+#include <qregexp.h>
+
+//include files for KDE
+#include <kapp.h>
+#include <kmainwindow.h>
+#include <kpopupmenu.h>
+#include <kaction.h>
+#include <klocale.h>
+#include <kmenubar.h>
+
+// application specific includes
+#include "kpacmanview.h"
+#include "referee.h"
+#include "status.h"
+#include "score.h"
+#include "keys.h"
+
+// forward declaration of the Kpacman classes
+class KpacmanView;
+
+/**
+ * The base class for Kpacman application.
+ */
+class KpacmanApp : public KMainWindow
+{
+ Q_OBJECT
+
+ friend class KpacmanView;
+
+ public:
+ /** constructor of KpacmanApp, calls all init functions to create the application.
+ */
+ KpacmanApp(QWidget *parent = 0, const char *name = 0);
+ virtual ~KpacmanApp();
+
+ protected:
+ /** save general Options like all bar positions and status as well as the application specific
+ * Options to the configuration file
+ */
+ void saveOptions();
+ /** read general Options again and initialize all variables
+ */
+ void readOptions();
+ /** read graphic schemes and build menu items for selection
+ */
+ void readSchemes();
+ /** initializes the KActions of the application */
+ void initActions();
+ /** sets up the statusbar for the main window by initialzing a statuslabel.
+ */
+ void initStatusBar();
+ /** creates the centerwidget of the KTMainWindow instance and sets it as the view
+ */
+ void initView();
+ /** queryExit is called by KTMainWindow when the last window of the application is going to be closed
+ * during the closeEvent().
+ * Against the default implementation that just returns true, this calls saveOptions() to save the
+ * settings of the window's properties.
+ * @see KTMainWindow#queryExit
+ * @see KTMainWindow#closeEvent
+ */
+ virtual bool queryExit();
+
+
+ public slots:
+ /** play new game
+ */
+ void slotGameNew();
+ /** pause (continue) game
+ */
+ void slotGamePause();
+ /** pause (continue) game triggered by focus events
+ */
+ void slotFocusedGamePause();
+ /** toggle the highscores
+ */
+ void slotGameHighscores();
+ /** toggle the highscores, forced by the referee
+ */
+ void slotForcedGameHighscores();
+ /** save the options, then quits the application.
+ */
+ void slotGameQuit();
+ /** toggles the menubar
+ */
+ void slotShowMenuBar();
+ /** toggles the toolbar
+ */
+ void slotShowToolBar();
+ /** toggles the statusbar
+ */
+ void slotShowStatusBar();
+ /** toggles the mousecursor
+ */
+ void slotShowMouseCursor();
+ /** graphic scheme activated
+ * @param id the id of the activated/selected menuitem
+ */
+ void slotSchemeActivated(int id);
+ /** toggles the focus out pause
+ */
+ void slotFocusOutPause();
+ /** toggles the focus in continue
+ */
+ void slotFocusInContinue();
+ /** changes the statusbar contents for the standard label permanently, used to indicate current actions.
+ * @param text the text that is displayed in the statusbar
+ */
+ void slotStatusMsg(const QString &text);
+ /** configure keysbindings dialog
+ */
+ void slotKeyBindings();
+ /** game (including highscores displayed) has been finished
+ */
+ void slotGameFinished();
+
+ private:
+ /** the configuration object of the application */
+ KConfig *config;
+ /** view is the main widget which represents your working area. The View
+ * class should handle all events of the view widget. It is kept empty so
+ * you can create your view according to your application's needs by
+ * changing the view class.
+ */
+ KpacmanView *view;
+
+ // KAction pointers to enable/disable actions
+ KAction* gameNew;
+ KToggleAction* gamePause;
+ KAction* gameHighscores;
+ KAction* gameQuit;
+ KToggleAction* showMenuBar;
+ KToggleAction* showToolBar;
+ KToggleAction* showStatusBar;
+ KToggleAction* showMouseCursor;
+ KToggleAction* focusOutPause;
+ KToggleAction* focusInContinue;
+ KActionMenu* selectGraphicScheme;
+
+ // active scheme/mode
+ int scheme;
+ int mode;
+
+ KPopupMenu *modesPopup; // KAction main scheme selection menu
+ QList<KPopupMenu> *schemesPopup; // submenus for selecting scheme
+
+ // ID's of the menuitem(s) for finding/selecting scheme by id
+ QArray<int> modeID;
+ QArray<int> schemeID;
+
+ QArray<int> schemeMode; // mode(group) of the schemes, -1 if no group
+
+ bool highscoresChecked; // highscores display active
+ bool focusedPause; // Pause caused by focusEvents
+};
+
+#endif // KPACMAN_H