Subversion Repositories Kolibri OS

Rev

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

  1. #ifndef __MGTK_WIDGET_H
  2. #define __MGTK_WIDGET_H
  3.  
  4. #include<mgtk/event.h>
  5. #include<mgtk/types.h>
  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
  64.