aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/screen.h')
-rw-r--r--engines/xeen/screen.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/engines/xeen/screen.h b/engines/xeen/screen.h
index 728140a695..b132e3321a 100644
--- a/engines/xeen/screen.h
+++ b/engines/xeen/screen.h
@@ -26,6 +26,7 @@
#include "common/scummsys.h"
#include "common/system.h"
#include "common/array.h"
+#include "common/queue.h"
#include "common/rect.h"
#include "xeen/xsurface.h"
@@ -39,22 +40,30 @@ namespace Xeen {
class XeenEngine;
class Screen;
-class Window {
+class Window: public XSurface {
private:
- Screen *_screen;
+ XeenEngine *_vm;
Common::Rect _bounds;
+ Common::Rect _innerBounds;
int _a;
int _border;
int _xLo, _xHi;
int _ycL, _ycH;
bool _enabled;
+ Common::Queue<Common::Rect> _dirtyRects;
+
+ void open2();
public:
Window();
- Window(Screen *screen, const Common::Rect &bounds, int a, int border,
+ Window(XeenEngine *vm, const Common::Rect &bounds, int a, int border,
int xLo, int ycL, int xHi, int ycH);
- void setBounds(const Common::Rect &r) { _bounds = r; }
+ void setBounds(const Common::Rect &r);
+
+ void open();
+
+ void close();
void update();
};
@@ -86,9 +95,13 @@ public:
virtual void addDirtyRect(const Common::Rect &r);
public:
Common::Array<Window> _windows;
+
+ Common::Array<Window *> _windowStack;
public:
Screen(XeenEngine *vm);
+ void closeWindows();
+
void update();
void loadPalette(const Common::String &name);