kolibrios/contrib/media/updf/include/mgtk/widget.h
right-hearted 4f7ee97ec9 uPDF with buttons
git-svn-id: svn://kolibrios.org@4680 a494cfbc-eb01-0410-851d-a64ba20cac60
2014-03-22 21:00:40 +00:00

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