aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25/kernel/window.h
diff options
context:
space:
mode:
authorEugene Sandulenko2010-07-29 19:53:02 +0000
committerEugene Sandulenko2010-10-12 21:38:20 +0000
commita683a420a9e43705c972b5e74d55e319729e1a81 (patch)
treebde6e4abd417bdfaec120aa951da9a19be36b654 /engines/sword25/kernel/window.h
parent7723d91c957d07205c51be32498d45cd0a78568f (diff)
downloadscummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.tar.gz
scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.tar.bz2
scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.zip
SWORD25: Importing original sources
svn-id: r53171
Diffstat (limited to 'engines/sword25/kernel/window.h')
-rwxr-xr-xengines/sword25/kernel/window.h176
1 files changed, 176 insertions, 0 deletions
diff --git a/engines/sword25/kernel/window.h b/engines/sword25/kernel/window.h
new file mode 100755
index 0000000000..6a6121f247
--- /dev/null
+++ b/engines/sword25/kernel/window.h
@@ -0,0 +1,176 @@
+// -----------------------------------------------------------------------------
+// This file is part of Broken Sword 2.5
+// Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdörfer
+//
+// Broken Sword 2.5 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.
+//
+// Broken Sword 2.5 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 Broken Sword 2.5; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+// -----------------------------------------------------------------------------
+
+/*
+ BS_Window
+ ---------
+ Simples Fensterklasseninterface.
+ Ist nur aus Gründen der Portabilität in einer Klasse gekapselt.
+ TODO: Für andere Betriebssysteme implementieren
+
+ Autor: Malte Thiesen
+*/
+
+#ifndef _BS_WINDOW_H
+#define _BS_WINDOW_H
+
+// Includes
+#include "common.h"
+
+// Klassendefinition
+/**
+ @brief Ein Simples Fensterklasseninterface.
+
+ Fenster werden ausschließlich mit BS_Window::CreateBSWindow() erstellt. BS_Window wählt
+ dann selbständig die richtige Klasse für das Betriebssystem aus.
+*/
+class BS_Window
+{
+protected:
+ bool _InitSuccess;
+ bool _CloseWanted;
+
+public:
+ virtual ~BS_Window(){};
+
+ /**
+ @brief Gibt den Sichtbarkeitsstatus des Fensters zurück
+ @return Gibt true zurück wenn das Fenster sichtbar ist, andernfalls false
+ */
+ virtual bool IsVisible() = 0;
+ /**
+ @brief Setzt den Sichtbarkeitsstatus des Fensters
+ @param Visible gibt an, ob das Fenster sichtbar oder versteckt sein soll
+ */
+ virtual void SetVisible(bool Visible) = 0;
+ /**
+ @brief Gibt die Position des Fensters auf der X-Achse zurück
+ @return Gibt die Position des Fensters auf der X-Achse zurück
+ */
+ virtual int GetX() = 0;
+ /**
+ @brief Setzt die Position des Fensters auf der X-Achse
+ @param X die X-Position des Fensters oder -1 für zentrierte Ausrichtung auf der X-Achse
+ */
+ virtual void SetX(int X) = 0;
+ /**
+ @brief Gibt die Position des Fensters auf der Y-Achse zurück
+ @return Gibt die Position des Fensters auf der Y-Achse zurück
+ */
+ virtual int GetY() = 0;
+ /**
+ @brief Setzt die Position des Fensters auf der Y-Achse
+ @param Y die Y-Position des Fensters oder -1 für zentrierte Ausrichtung auf der Y-Achse
+ */
+ virtual void SetY(int X) = 0;
+ /**
+ @brief Gibt die Position des Fensterinhaltes auf der X-Achse zurück
+ @return Gibt die Position des Fensterinhaltes auf der X-Achse zurück
+ */
+ virtual int GetClientX() = 0;
+ /**
+ @brief Gibt die Position des Fensterinhaltes auf der Y-Achse zurück
+ @return Gibt die Position des Fensterinhaltes auf der Y-Achse zurück
+ */
+ virtual int GetClientY() = 0;
+ /**
+ @brief Gibt die Breite des Fensters ohne Rahmen zurück
+ @return Gibt die Breite des Fensters ohne Rahmen zurück
+ */
+ virtual int GetWidth() = 0;
+ /**
+ @brief Setzt die Breite des Fensters ohne Rahmen
+ @param Width die Breite des Fensters ohne Rahmen
+ */
+ virtual void SetWidth(int Width) = 0;
+ /**
+ @brief Gibt die Höhe des Fensters ohne Rahmen und Kopfzeile zurück
+ @return Gibt die Höhe des Fensters ohne Rahmen und Kopfzeile zurück
+ */
+ virtual int GetHeight() = 0;
+ /**
+ @brief Setzt die Höhe des Fensters ohne Rahmen und Kopfzeile
+ @param Height die Höhe des Fensters ohne Rahmen und Kopfzeile
+ */
+ virtual void SetHeight(int Height) = 0;
+ /**
+ @brief Gibt den Titel der Fensters zurück
+ @return Gibt den Titel des Fenster zurück
+ */
+ virtual std::string GetTitle() = 0;
+ /**
+ @brief Setzt den Titel des Fensters
+ @param Title der neue Titel des Fensters
+ */
+ virtual void SetTitle(std::string Title) = 0;
+ /**
+ @brief Arbeitet die Windowmessages des Fensters ab.
+ Diese Methode sollte während des Main-Loops aufgerufen werden.
+ @return Gibt false zurück, falls das Fenster geschlossen wurde.
+ */
+ virtual bool ProcessMessages() = 0;
+ /**
+ @brief Pausiert die Applikation bis das Fenster wieder den Focus hat oder geschlossen wurde.
+ @return Gibt false zurück, falls das Fenster geschlossen wurde.
+ */
+ virtual bool WaitForFocus() = 0;
+ /**
+ @brief Gibt zurück, ob das Fenster den Focus hat.
+ @return Gibt true zurück, wenn das Fenster den Focus hat, ansonsten false
+ */
+ virtual bool HasFocus() = 0;
+ /**
+ @brief Gibt das Windowhandle, des Systems zurück.
+ @return Das Windowhandle des Fensters
+ @remark Wenn das Windowshandle benutzt wird, sind die entsprechenden Codeteile
+ natürlich nicht mehr portable.
+ */
+ virtual unsigned int GetWindowHandle() = 0;
+
+
+ /**
+ @brief Setzt den Rückgabewert für den nächsten Aufruf von CloseWanted. Sollte vom
+ Fenster selbst verwendet werden, wenn es geschlossen werden möchte. Dieser
+ Mechanismus erlaubt den Scripten abzufragen, wann das Hauptfenster geschlossen
+ werden soll, und sich entsprechend zu beenden, bzw. beim Nutzer nachzufragen.
+ **/
+ void SetCloseWanted(bool Wanted);
+ /**
+ @brief Gibt einmal den Wert des letztes Aufrufs von SetCloseWanted zurück,
+ und danach sofort wieder false, solange bis mit SetCloseWanted wieder
+ ein neuer Wert gesetzt wird.
+ **/
+ bool CloseWanted();
+
+
+ /**
+ @brief Erstellt eine neue Fensterinstanz.
+ @param X die X-Position des Fensters oder -1 für zentrierte Ausrichtung auf der X-Achse
+ @param Y des Y-Position des Fensters oder -1 für zentrierte Ausrichtung auf der Y-Achsen
+ @param Width die Breite des Fensters ohne Rahmen
+ @param Height die Höhe des Fensters ohne Rahmen und Kopfzeile
+ @param Visible gibt an, ob das Fenster dargestellt werden soll
+ @return Gibt einen Pointer auf ein Fensterobjekt zurück, oder NULL wenn das Erstellen
+ fehlgeschlagen ist.
+ @remark Das Fenster muss nach Benutzung mit delete freigegeben werden!
+ */
+ static BS_Window* CreateBSWindow(int X, int Y, int Width, int Height, bool Visible);
+};
+
+#endif \ No newline at end of file