]> git.vomp.tv Git - vompclient.git/blob - option.h
Improve connection failure handling
[vompclient.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, see <https://www.gnu.org/licenses/>.
18 */
19
20 #ifndef OPTION_H
21 #define OPTION_H
22
23 #include <stdlib.h>
24 #include "defines.h"
25
26 class AbstractOption;
27
28 #include <vector>
29
30 class Option;
31 typedef std::vector<Option*> Options;
32
33 class Option
34 {
35   public:
36     Option(UINT id, const char* displayText, const char* configSection, const char* configKey, UCHAR optionType,
37            UINT numChoices, UINT defaultChoice, UINT startInt,
38            const char * const * options, const char * const * optionkeys = NULL, bool deletestrings = false, AbstractOption* handler = NULL);
39     ~Option();
40   
41     UINT id;
42     const char* displayText;
43     const char* configSection;
44     const char* configKey;
45     UCHAR optionType;
46     UINT numChoices;
47     UINT defaultChoice;
48     int startInt;
49     const char * const * options;
50     const char * const * optionkeys;
51     bool deletestrings;
52     AbstractOption* opthandler;
53     
54     UINT configChoice;
55     UINT userSetChoice;
56
57     const static UCHAR TYPE_TEXT       = 1;
58     const static UCHAR TYPE_INT        = 2;
59     const static UCHAR TYPE_KEYED_TEXT = 3;
60 };
61
62 #endif
63