summaryrefslogtreecommitdiff
path: root/plugins/Skins/SkinLib/DialogInfo.h
blob: 02f07310d7b18a6792ffa72d9530d18d7b49fbda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef __DIALOG_INFO_H__
# define __DIALOG_INFO_H__

#include <windows.h>
#include <vector>


enum DialogInfoType
{
	UNKNOWN = 0,
	TYPE_VARIABLE,
	TYPE_INT,
	TYPE_DOUBLE,
	TYPE_BOOL,
	TYPE_STRING
};


class DialogInfoValue;

class DialogInfo
{
public:
	DialogInfo();
	~DialogInfo();

	void set(const char *name, const TCHAR *value);
	void set(const char *name, int value);
	void set(const char *name, double value);
	void set(const char *name, bool value);

	void remove(const char *name);

	DialogInfoType getType(const char *name);

	const TCHAR * getAsString(const char *name);
	int getAsInt(const char *name);
	double getAsDouble(const char *name);
	bool getAsBool(const char *name);

private:
	std::vector<DialogInfoValue *> values; 

	DialogInfoValue * findValue(const char *name, bool create = false, bool *isVar = NULL);

};



#endif // __DIALOG_INFO_H__