aboutsummaryrefslogtreecommitdiff
path: root/engines/macventure/controls.cpp
diff options
context:
space:
mode:
authorBorja Lorente2016-07-21 15:25:43 +0200
committerBorja Lorente2016-08-14 18:57:26 +0200
commit53a5fb6c546bee103526fe444ece0c2cda52d624 (patch)
tree1213c0fc597c94f535deb06cd475862e06718098 /engines/macventure/controls.cpp
parent91493aaeb860edbdc991bca679ad6cf8a9d513eb (diff)
downloadscummvm-rg350-53a5fb6c546bee103526fe444ece0c2cda52d624.tar.gz
scummvm-rg350-53a5fb6c546bee103526fe444ece0c2cda52d624.tar.bz2
scummvm-rg350-53a5fb6c546bee103526fe444ece0c2cda52d624.zip
MACVENTURE: Refactor dialogs and controls
Diffstat (limited to 'engines/macventure/controls.cpp')
-rw-r--r--engines/macventure/controls.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/engines/macventure/controls.cpp b/engines/macventure/controls.cpp
new file mode 100644
index 0000000000..f467d72de6
--- /dev/null
+++ b/engines/macventure/controls.cpp
@@ -0,0 +1,77 @@
+/* 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.
+*
+*/
+
+#include "macventure/gui.h"
+
+namespace MacVenture {
+CommandButton::CommandButton() {
+ _gui = nullptr;
+}
+
+CommandButton::CommandButton(ControlData data, Gui *g) {
+ _data = data;
+ _gui = g;
+ _selected = false;
+}
+
+void CommandButton::draw(Graphics::ManagedSurface &surface) const {
+
+ uint colorFill = _selected ? kColorBlack : kColorWhite;
+ uint colorText = _selected ? kColorWhite : kColorBlack;
+
+ surface.fillRect(_data.bounds, colorFill);
+ surface.frameRect(_data.bounds, kColorBlack);
+
+ if (_data.titleLength > 0) {
+ const Graphics::Font &font = _gui->getCurrentFont();
+ Common::String title(_data.title);
+ font.drawString(
+ &surface,
+ title,
+ _data.bounds.left,
+ _data.bounds.top,
+ _data.bounds.right - _data.bounds.left,
+ colorText,
+ Graphics::kTextAlignCenter);
+ }
+}
+
+bool CommandButton::isInsideBounds(const Common::Point point) const {
+ return _data.bounds.contains(point);
+}
+
+const ControlData& CommandButton::getData() const {
+ return _data;
+}
+
+void CommandButton::select() {
+ _selected = true;
+}
+
+void CommandButton::unselect() {
+ _selected = false;
+}
+
+bool CommandButton::isSelected() {
+ return _selected;
+}
+}