diff options
Diffstat (limited to 'setup.cpp')
-rw-r--r-- | setup.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/setup.cpp b/setup.cpp new file mode 100644 index 0000000..eb1ad80 --- /dev/null +++ b/setup.cpp @@ -0,0 +1,80 @@ +/* + * Sudoku: A plugin for the Video Disk Recorder + * + * See the README file for copyright information and how to reach the author. + * + * $Id: setup.cpp 11 2005-10-28 01:00:01Z tom $ + */ + +#include "setup.h" +#include "i18n.h" +#include <strings.h> + +using namespace SudokuPlugin; + + +//--- class SudokuPlugin::SetupData -------------------------------------------- + +/** Constructor + * + * Initialize the parameters of the plugin with standard values. + */ +SetupData::SetupData() +{ + givens_count = 36; + symmetric = 1; + mark_errors = 1; + mark_ambiguous = 1; + transparency = 50; +} + +/** Parse the parameters of the plugin. + * + * This method is called for each parameter the plugin has previously + * stored in the global setup data. + */ +bool SetupData::parse(const char* name, const char* value) +{ + if (!strcasecmp(name, "GivensCount")) + givens_count = atoi(value); + else if (!strcasecmp(name, "Symmetric")) + symmetric = atoi(value); + else if (!strcasecmp(name, "MarkErrors")) + mark_errors = atoi(value); + else if (!strcasecmp(name, "MarkAmbiguous")) + mark_ambiguous = atoi(value); + else if (!strcasecmp(name, "Transparency")) + transparency = atoi(value); + else + return false; + return true; +} + + +//--- class SudokuPlugin::SetupPage -------------------------------------------- + +/** Constructor */ +SetupPage::SetupPage(SetupData& setup) : + setup(setup), data(setup) +{ + Add(new cMenuEditIntItem(tr("Givens count"), &data.givens_count, 26, 81)); + Add(new cMenuEditBoolItem(tr("Symmetric givens"), &data.symmetric)); + Add(new cMenuEditBoolItem(tr("Mark errors"), &data.mark_errors)); + Add(new cMenuEditBoolItem(tr("Mark ambiguous numbers"), + &data.mark_ambiguous)); + Add(new cMenuEditIntItem(tr("Transparency (%)"), &data.transparency, 0, 100)); +} + +/** Store the parameters of the plugin. + * + * The parameters of the plugin are stored into the global setup data file. + */ +void SetupPage::Store() +{ + setup = data; + SetupStore("GivensCount", setup.givens_count); + SetupStore("Symmetric", setup.symmetric); + SetupStore("MarkErrors", setup.mark_errors); + SetupStore("MarkAmbiguous", setup.mark_ambiguous); + SetupStore("Transparency", setup.transparency); +} |