Operating System
Dependencies: UnitTest wolfssh mDNS wolfcrypt wolfSSL
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
Generated on Thu Jul 14 2022 03:24:47 by 1.7.2