summaryrefslogtreecommitdiffhomepage
path: root/nGenEx/FormWindow.h
blob: 4fffce694a0ed5242fa9edc3a5fd9e211e8f9d8c (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*  Project nGenEx
	Destroyer Studios LLC
	Copyright © 1997-2004. All Rights Reserved.

	SUBSYSTEM:    nGenEx.lib
	FILE:         FormWindow.h
	AUTHOR:       John DiCamillo


	OVERVIEW
	========
	Form Window class (a window that manages controls)
*/

#ifndef FormWindow_h
#define FormWindow_h

#include "Types.h"
#include "ActiveWindow.h"
#include "FormDef.h"
#include "List.h"

// +--------------------------------------------------------------------+

class Button;
class ComboBox;
class EditBox;
class ImageBox;
class ListBox;
class RichTextBox;
class Slider;

// +--------------------------------------------------------------------+

class FormWindow : public ActiveWindow
{
public:
	FormWindow(Screen* s, int ax, int ay, int aw, int ah,
	DWORD aid=0, DWORD style=0, ActiveWindow* parent=0);
	virtual ~FormWindow();

	// operations:
	virtual void            Init();
	virtual void            Init(const FormDef& def);
	virtual void            Destroy();
	virtual ActiveWindow*   FindControl(DWORD id);
	virtual ActiveWindow*   FindControl(int x, int y);
	virtual void            RegisterControls()      { }

	virtual void            AdoptFormDef(const FormDef& def);
	virtual void            AddControl(ActiveWindow* ctrl);

	virtual ActiveWindow*   CreateLabel(      const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0, DWORD style=0);
	virtual Button*         CreateButton(     const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0);
	virtual ImageBox*       CreateImageBox(   const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0);
	virtual ListBox*        CreateListBox(    const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0);
	virtual ComboBox*       CreateComboBox(   const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0);
	virtual EditBox*        CreateEditBox(    const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0);
	virtual RichTextBox*    CreateRichTextBox(const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0, DWORD style=0);
	virtual Slider*         CreateSlider(     const char* text, int x, int y, int w, int h, DWORD id=0, DWORD pid=0, DWORD style=0);

	// property accessors:
	ListIter<ActiveWindow>  Controls() { return children; }

protected:
	virtual void            CreateDefLabel(CtrlDef& def);
	virtual void            CreateDefButton(CtrlDef& def);
	virtual void            CreateDefImage(CtrlDef& def);
	virtual void            CreateDefList(CtrlDef& def);
	virtual void            CreateDefCombo(CtrlDef& def);
	virtual void            CreateDefEdit(CtrlDef& def);
	virtual void            CreateDefSlider(CtrlDef& def);
	virtual void            CreateDefRichText(CtrlDef& def);
};

#endif FormWindow_h