diff --git a/MiniEngine_Widget.h b/MiniEngine_Widget.h new file mode 100644 index 0000000..5b08691 --- /dev/null +++ b/MiniEngine_Widget.h @@ -0,0 +1,55 @@ +#pragma once +#include "MiniEngine.h" +#include + +class Brush : public MiniEngine::Renderer +{ +public: + void setArea(MiniEngine::Rect Area); + + int copy(MiniEngine::Texture t, MiniEngine::Rect src, MiniEngine::Rect dst); + int copyTo(MiniEngine::Texture t, MiniEngine::Rect dst); + int copyTo(MiniEngine::Texture t, MiniEngine::Point lupoint); + int copyFill(MiniEngine::Texture t,MiniEngine::Rect src); + int copyFullFill(MiniEngine::Texture t); +private: + MiniEngine::Rect area; +}; + +class Board +{ +public: + Board(MiniEngine::Window wnd,MiniEngine::Rect Area); + Brush getBrush(); +private: + MiniEngine::Rect area,fullwnd; +}; + +class Drawable +{ +public: + virtual void draw(Brush& brush)=0; + virtual ~Drawable()=default; +}; + +class Interactive +{ +public: + virtual void handle(SDL_Event e,int& running,int& update)=0; +}; + +class ButtonBase : public Drawable, public Interactive +{ +public: + ButtonBase(); + void setTextureNormal(MiniEngine::Texture Normal); + void setTextureMouseover(MiniEngine::Texture Mouseover); + void setTextureClicked(MiniEngine::Texture Clicked); + void setRect(MiniEngine::Rect SensorArea); + virtual void draw(Brush& brush); + virtual void handle(SDL_Event e,int& running,int& update); +private: + int status; + MiniEngine::Texture t1,t2,t3; + MiniEngine::Rect rect; +};