forked from KolibriOS/kolibrios
4f7ee97ec9
git-svn-id: svn://kolibrios.org@4680 a494cfbc-eb01-0410-851d-a64ba20cac60
64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
#ifndef __MGTK_WIDGET_H
|
|
#define __MGTK_WIDGET_H
|
|
|
|
#include<mgtk/event.h>
|
|
#include<mgtk/types.h>
|
|
|
|
#define wf_Visible 0x00000001
|
|
#define wf_Disabled 0x00000002
|
|
#define wf_Focused 0x00000004
|
|
#define wf_Selected 0x00000008
|
|
|
|
class GGroup;
|
|
|
|
class GWidget
|
|
{
|
|
public:
|
|
GGroup * Parent;
|
|
GPoint Origin;
|
|
GPoint Size;
|
|
GWidget * WNext;
|
|
GWidget * WPrev;
|
|
unsigned long Flags;
|
|
GWidget();
|
|
virtual ~GWidget();
|
|
virtual void HandleEvent(GEvent *);
|
|
void Draw(void);
|
|
virtual void DrawWidget();
|
|
virtual void ToGlobal(GPoint *);
|
|
virtual void ToLocal(GPoint *);
|
|
virtual void Idle();
|
|
virtual void SetBounds(GRect *);
|
|
int MouseInWidget(int,int);
|
|
void ClearEvent(GEvent *);
|
|
virtual void Show();
|
|
virtual void Hide();
|
|
virtual void Select(bool);
|
|
virtual bool IsGroup();
|
|
inline bool IsDisabled() { return Flags&wf_Disabled; }
|
|
};
|
|
|
|
class GGroup: public GWidget
|
|
{
|
|
public:
|
|
GRect Clip;
|
|
GWidget * WFirst;
|
|
GWidget * WSelect;
|
|
GGroup();
|
|
virtual ~GGroup();
|
|
virtual void HandleEvent(GEvent *);
|
|
virtual void DrawWidget();
|
|
virtual void Insert(GWidget *);
|
|
virtual void Remove(GWidget *);
|
|
virtual void ForEach(void (*fn)(GGroup *,GWidget *,void *),void *);
|
|
virtual void Show();
|
|
virtual void Hide();
|
|
virtual void Select(GWidget *,bool);
|
|
virtual GWidget * Select();
|
|
virtual bool IsGroup();
|
|
virtual void BroadcastEvent(GEvent *);
|
|
virtual void RepaintWhole();
|
|
};
|
|
|
|
#endif
|