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.

gui/widget.h

Committer:
sPymbed
Date:
2019-06-13
Revision:
0:97ba3e2cd071

File content as of revision 0:97ba3e2cd071:

 
#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