Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4680 right-hear 1
#ifndef __MGTK_WIDGET_H
2
#define __MGTK_WIDGET_H
3
 
4
#include
5
#include
6
 
7
#define wf_Visible		0x00000001
8
#define wf_Disabled		0x00000002
9
#define wf_Focused		0x00000004
10
#define wf_Selected		0x00000008
11
 
12
class GGroup;
13
 
14
class GWidget
15
{
16
public:
17
    GGroup *	Parent;
18
    GPoint	Origin;
19
    GPoint	Size;
20
    GWidget *	WNext;
21
    GWidget *	WPrev;
22
    unsigned long Flags;
23
    GWidget();
24
    virtual ~GWidget();
25
    virtual void HandleEvent(GEvent *);
26
    void Draw(void);
27
    virtual void DrawWidget();
28
    virtual void ToGlobal(GPoint *);
29
    virtual void ToLocal(GPoint *);
30
    virtual void Idle();
31
    virtual void SetBounds(GRect *);
32
    int MouseInWidget(int,int);
33
    void ClearEvent(GEvent *);
34
    virtual void Show();
35
    virtual void Hide();
36
    virtual void Select(bool);
37
    virtual bool IsGroup();
38
    inline bool IsDisabled() { return Flags&wf_Disabled; }
39
};
40
 
41
class GGroup: public GWidget
42
{
43
public:
44
    GRect	Clip;
45
    GWidget *	WFirst;
46
    GWidget * 	WSelect;
47
    GGroup();
48
    virtual ~GGroup();
49
    virtual void HandleEvent(GEvent *);
50
    virtual void DrawWidget();
51
    virtual void Insert(GWidget *);
52
    virtual void Remove(GWidget *);
53
    virtual void ForEach(void (*fn)(GGroup *,GWidget *,void *),void *);
54
    virtual void Show();
55
    virtual void Hide();
56
    virtual void Select(GWidget *,bool);
57
    virtual GWidget * Select();
58
    virtual bool IsGroup();
59
    virtual void BroadcastEvent(GEvent *);
60
    virtual void RepaintWhole();
61
};
62
 
63
#endif