]> git.vomp.tv Git - vompclient-marten.git/blob - option.h
MoComp nearly bug free
[vompclient-marten.git] / option.h
1 /*
2     Copyright 2007 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #ifndef OPTION_H
22 #define OPTION_H
23
24 #include <stdlib.h>
25 #include "defines.h"
26
27 class AbstractOption;
28
29 #include <vector>
30
31 class Option;
32 using namespace std;
33 typedef vector<Option*> Options;
34
35 class Option
36 {
37   public:
38     Option(UINT id, const char* displayText, const char* configSection, const char* configKey, UINT optionType, 
39            UINT numChoices, UINT defaultChoice, UINT startInt,
40            const char * const * options, const char * const * optionkeys = NULL, bool deletestrings = false, AbstractOption* handler = NULL);
41     ~Option();
42   
43     UINT id;
44     const char* displayText;
45     const char* configSection;
46     const char* configKey;
47     UCHAR optionType;
48     UINT numChoices;
49     UINT defaultChoice;
50     int startInt;
51     const char * const * options;
52     const char * const * optionkeys;
53     bool deletestrings;
54     AbstractOption* opthandler;
55     
56     UINT configChoice;
57     UINT userSetChoice;
58
59     const static UCHAR TYPE_TEXT       = 1;
60     const static UCHAR TYPE_INT        = 2;
61     const static UCHAR TYPE_KEYED_TEXT = 3;
62 };
63
64 #endif
65