Operating System
Dependencies: UnitTest wolfssh mDNS wolfcrypt wolfSSL
This is an embedded operating system for K64F. It includes a ssh server, a web-server and mDNS server. It has POST on boot. The main purpose of the OS is a router for the thing network.
Diff: gui/widget.h
- Revision:
- 0:97ba3e2cd071
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gui/widget.h Thu Jun 13 13:08:37 2019 +0000 @@ -0,0 +1,75 @@ + +#ifndef __MYOS__GUI__WIDGET_H +#define __MYOS__GUI__WIDGET_H + + +#include <common/graphicscontext.h> +//#include <drivers/keyboard.h> + +namespace myos +{ + namespace gui + { + + class Widget + { + protected: + Widget* parent; + int32_t x; + int32_t y; + int32_t w; + int32_t h; + + uint8_t r; + uint8_t g; + uint8_t b; + bool Focussable; + + public: + + Widget(Widget* parent, + int32_t x, int32_t y, int32_t w, int32_t h, + uint8_t r, uint8_t g, uint8_t b); + ~Widget(); + + virtual void GetFocus(Widget* widget); + virtual void ModelToScreen(int32_t &x, int32_t& y); + virtual bool ContainsCoordinate(int32_t x, int32_t y); + + virtual void Draw(common::GraphicsContext* gc); + //virtual void OnMouseDown(int32_t x, int32_t y, uint8_t button); + //virtual void OnMouseUp(int32_t x, int32_t y, uint8_t button); + //virtual void OnMouseMove(int32_t oldx, int32_t oldy, int32_t newx, int32_t newy); + }; + + + class CompositeWidget : public Widget + { + private: + Widget* children[100]; + int numChildren; + Widget* focussedChild; + + public: + CompositeWidget(Widget* parent, + int32_t x, int32_t y, int32_t w, int32_t h, + uint8_t r, uint8_t g, uint8_t b); + ~CompositeWidget(); + + virtual void GetFocus(Widget* widget); + virtual bool AddChild(Widget* child); + + virtual void Draw(common::GraphicsContext* gc); + //virtual void OnMouseDown(int32_t x, int32_t y, uint8_t button); + //virtual void OnMouseUp(int32_t x, int32_t y, uint8_t button); + //virtual void OnMouseMove(int32_t oldx, int32_t oldy, int32_t newx, int32_t newy); + + //virtual void OnKeyDown(char); + //virtual void OnKeyUp(char); + }; + + } +} + + +#endif \ No newline at end of file