aboutsummaryrefslogtreecommitdiff
path: root/engines/macventure/controls.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/macventure/controls.h')
-rw-r--r--engines/macventure/controls.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/engines/macventure/controls.h b/engines/macventure/controls.h
new file mode 100644
index 0000000000..a780f6328b
--- /dev/null
+++ b/engines/macventure/controls.h
@@ -0,0 +1,105 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* 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 MACVENTURE_CONTROLS_H
+#define MACVENTURE_CONTROLS_H
+
+namespace MacVenture {
+
+class Gui;
+
+enum ControlType { // HACK, should correspond exactly with the types of controls (sliders etc)
+ kControlExitBox = 0,
+ kControlExamine = 1,
+ kControlOpen = 2,
+ kControlClose = 3,
+ kControlSpeak = 4,
+ kControlOperate = 5,
+ kControlGo = 6,
+ kControlHit = 7,
+ kControlConsume = 8,
+ kControlClickToContinue = 9
+};
+
+enum ControlAction { // HACK, figure out a way to put it in engine
+ kNoCommand = 0,
+ kStartOrResume = 1,
+ kClose = 2,
+ kTick = 3,
+ kActivateObject = 4,
+ kMoveObject = 5,
+ kConsume = 6,
+ kExamine = 7,
+ kGo = 8,
+ kHit = 9,
+ kOpen = 10,
+ kOperate = 11,
+ kSpeak = 12,
+ kBabble = 13,
+ kTargetName = 14,
+ kDebugObject = 15,
+ kClickToContinue = 16
+};
+struct ControlData {
+ Common::Rect bounds;
+ uint16 scrollValue;
+ uint8 visible;
+ uint16 scrollMax;
+ uint16 scrollMin;
+ uint16 cdef;
+ ControlAction refcon;
+ ControlType type;
+ uint8 titleLength;
+ char* title;
+ uint16 border;
+};
+
+class CommandButton {
+
+enum {
+ kCommandsLeftPadding = 0,
+ kCommandsTopPadding = 0
+};
+
+public:
+
+ CommandButton();
+
+ CommandButton(ControlData data, Gui *g);
+ ~CommandButton() {}
+
+ void draw(Graphics::ManagedSurface &surface) const;
+ bool isInsideBounds(const Common::Point point) const;
+ const ControlData& getData() const;
+ void select();
+ void unselect();
+ bool isSelected();
+
+private:
+ bool _selected;
+ ControlData _data;
+ Gui *_gui;
+};
+
+} // End of namespace MacVenture
+
+#endif