summaryrefslogtreecommitdiff
path: root/plugins/Skins/SkinLib/DialogState.h
blob: e27fc929da9972ea27c1e68d86c413182dde104e (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
51
52
53
54
55
56
57
58
59
#ifndef __DIALOG_STATE_H__
# define __DIALOG_STATE_H__

#include "Dialog.h"
#include "FieldState.h"
#include "BorderState.h"


/// This have to be deleted before the owning dialog
/// It is responsible for freeing the FieldStates
class DialogState
{
public:
	~DialogState();

	Dialog * getDialog() const;

	std::vector<FieldState *> fields;
	FieldState * getField(const char *name) const;

	// Used inside script

	virtual int getX() const;
	virtual int getY() const;
	virtual int getLeft() const;
	virtual int getTop() const;
	virtual int getRight() const;
	virtual int getBottom() const;

	int getWidth() const;
	void setWidth(int width);

	int getHeight() const;
	void setHeight(int height);

	BorderState * getBorders();
	const BorderState * getBorders() const;

	// Results

	RECT getInsideRect() const;
	RECT getRect() const;

private:
	DialogState(Dialog *dialog);

	Dialog *dialog;

	Size size;
	BorderState borders;

	int getHorizontalBorders() const;
	int getVerticalBorders() const;

	friend class Dialog;
};


#endif // __DIALOG_STATE_H__