Operating System

Dependencies:   UnitTest wolfssh mDNS wolfcrypt wolfSSL

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers widget.h Source File

widget.h

00001  
00002 #ifndef __MYOS__GUI__WIDGET_H
00003 #define __MYOS__GUI__WIDGET_H
00004 
00005 
00006 #include <common/graphicscontext.h>
00007 //#include <drivers/keyboard.h>
00008 
00009 namespace myos
00010 {
00011     namespace gui
00012     {
00013         
00014         class Widget
00015         {
00016         protected:
00017             Widget* parent;
00018             int32_t x;
00019             int32_t y;
00020             int32_t w;
00021             int32_t h;
00022             
00023             uint8_t r;
00024             uint8_t g;
00025             uint8_t b;
00026             bool Focussable;
00027 
00028         public:
00029 
00030             Widget(Widget* parent,
00031                    int32_t x, int32_t y, int32_t w, int32_t h,
00032                    uint8_t r, uint8_t g, uint8_t b);
00033             ~Widget();
00034             
00035             virtual void GetFocus(Widget* widget);
00036             virtual void ModelToScreen(int32_t &x, int32_t& y);
00037             virtual bool ContainsCoordinate(int32_t x, int32_t y);
00038             
00039             virtual void Draw(common::GraphicsContext* gc);
00040             //virtual void OnMouseDown(int32_t x, int32_t y, uint8_t button);
00041             //virtual void OnMouseUp(int32_t x, int32_t y, uint8_t button);
00042             //virtual void OnMouseMove(int32_t oldx, int32_t oldy, int32_t newx, int32_t newy);
00043         };
00044         
00045         
00046         class CompositeWidget : public Widget
00047         {
00048         private:
00049             Widget* children[100];
00050             int numChildren;
00051             Widget* focussedChild;
00052             
00053         public:
00054             CompositeWidget(Widget* parent,
00055                    int32_t x, int32_t y, int32_t w, int32_t h,
00056                    uint8_t r, uint8_t g, uint8_t b);
00057             ~CompositeWidget();            
00058             
00059             virtual void GetFocus(Widget* widget);
00060             virtual bool AddChild(Widget* child);
00061             
00062             virtual void Draw(common::GraphicsContext* gc);
00063             //virtual void OnMouseDown(int32_t x, int32_t y, uint8_t button);
00064             //virtual void OnMouseUp(int32_t x, int32_t y, uint8_t button);
00065             //virtual void OnMouseMove(int32_t oldx, int32_t oldy, int32_t newx, int32_t newy);
00066             
00067             //virtual void OnKeyDown(char);
00068             //virtual void OnKeyUp(char);
00069         };
00070         
00071     }
00072 }
00073 
00074 
00075 #endif