summaryrefslogtreecommitdiffhomepage
path: root/nGenEx/FormWindow.h
blob: b94dded42dc574bfe679705928b9f63860661bf6 (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