diff options
Diffstat (limited to 'backends/platform/wii/options.cpp')
-rw-r--r-- | backends/platform/wii/options.cpp | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/backends/platform/wii/options.cpp b/backends/platform/wii/options.cpp new file mode 100644 index 0000000000..52c29a8a24 --- /dev/null +++ b/backends/platform/wii/options.cpp @@ -0,0 +1,116 @@ +/* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#include "common/config-manager.h" +#include "gui/dialog.h" +#include "gui/TabWidget.h" + +#include "options.h" +#include "gfx.h" + +WiiOptionsDialog::WiiOptionsDialog(const OSystem::GraphicsMode &gfxMode) : + Dialog(180, 120, 304, 200) { + + _videoModePrefix = String("wii_video_") + gfxMode.name; + + new ButtonWidget(this, 56, 160, 108, 24, "Cancel", 'c'); + new ButtonWidget(this, 180, 160, 108, 24, "Ok", 'k'); + + TabWidget *tab = new TabWidget(this, 0, 0, 304, 146); + + tab->addTab("Video"); + + new StaticTextWidget(tab, 16, 16, 128, 16, + "Current video mode:", Graphics::kTextAlignRight); + new StaticTextWidget(tab, 160, 16, 128, 16, + gfxMode.description, Graphics::kTextAlignLeft); + + new StaticTextWidget(tab, 16, 48, 128, 16, + "Horizontal underscan:", Graphics::kTextAlignRight); + _sliderUnderscanX = new SliderWidget(tab, 160, 47, 128, 18, 'x'); + _sliderUnderscanX->setMinValue(0); + _sliderUnderscanX->setMaxValue(32); + + new StaticTextWidget(tab, 16, 80, 128, 16, + "Vertical underscan:", Graphics::kTextAlignRight); + _sliderUnderscanY = new SliderWidget(tab, 160, 79, 128, 18, 'y'); + _sliderUnderscanY->setMinValue(0); + _sliderUnderscanY->setMaxValue(32); + + load(); +} + +WiiOptionsDialog::~WiiOptionsDialog() { +} + +void WiiOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, + uint32 data) { + switch (cmd) { + case 'x': + case 'y': + gfx_set_underscan(_sliderUnderscanX->getValue(), + _sliderUnderscanY->getValue()); + break; + + case 'k': + save(); + close(); + break; + + case 'c': + revert(); + close(); + break; + + default: + Dialog::handleCommand(sender, cmd, data); + break; + } +} + +void WiiOptionsDialog::revert() { + gfx_set_underscan(ConfMan.getInt(_videoModePrefix + "_underscan_x", + Common::ConfigManager::kApplicationDomain), + ConfMan.getInt(_videoModePrefix + "_underscan_y", + Common::ConfigManager::kApplicationDomain)); +} + +void WiiOptionsDialog::load() { + int x = ConfMan.getInt(_videoModePrefix + "_underscan_x", + Common::ConfigManager::kApplicationDomain); + int y = ConfMan.getInt(_videoModePrefix + "_underscan_y", + Common::ConfigManager::kApplicationDomain); + + _sliderUnderscanX->setValue(x); + _sliderUnderscanY->setValue(y); +} + +void WiiOptionsDialog::save() { + ConfMan.setInt(_videoModePrefix + "_underscan_x", + _sliderUnderscanX->getValue(), + Common::ConfigManager::kApplicationDomain); + ConfMan.setInt(_videoModePrefix + "_underscan_y", + _sliderUnderscanY->getValue(), + Common::ConfigManager::kApplicationDomain); + ConfMan.flushToDisk(); +} + |