diff --git a/MiniEngine_Widget.cpp b/MiniEngine_Widget.cpp index 52879e6..5d5c937 100644 --- a/MiniEngine_Widget.cpp +++ b/MiniEngine_Widget.cpp @@ -1,6 +1,12 @@ #include "MiniEngine_Widget.h" using namespace MiniEngine; +namespace MiniEngine +{ + +namespace Widget +{ + void Brush::setArea(Rect Area) { area=Area; @@ -10,28 +16,29 @@ int Brush::copy(Texture t,Rect src,Rect dst) { dst.x+=area.x; dst.y+=area.y; - if(stretching) + + if(dst.x>area.x+area.w||dst.y>area.y+area.h) { - if(dst.w>area.w) - { - dst.w=area.w; - } - if(dst.h>area.h) - { - dst.h=area.h; - } + /// Not Printed. + return 1; } - else + + if(dst.x+dst.w>area.x+area.w) { - if(dst.w>area.w) - { - dst.w=src.w=area.w; - } - if(dst.h>area.h) - { - src.w=src.h=area.h; - } + /// Some parts will not be printed. + src.w=src.w*(area.w-dst.x+area.x)/dst.w; + + dst.w=area.w-(dst.x-area.x); } + + if(dst.y+dst.h>area.y+area.h) + { + /// Some parts will not be printed + src.h=src.h*(area.h-dst.y+area.y)/dst.h; + + dst.h=area.h-(dst.y-area.y); + } + return Renderer::copy(t,src,dst); } @@ -40,34 +47,38 @@ int Brush::copyTo(Texture t,Rect dst) dst.x+=area.x; dst.y+=area.y; - if(streching) + if(dst.x>area.x+area.w||dst.y>area.y+area.h) { - if(dst.w>area.w) - { - dst.w=area.w; - } - if(dst.h>area.h) - { - dst.h=area.h; - } - - return Renderer::copyTo(t,dst); + /// Not Printed. + return 1; } - else + + if(dst.x+dst.w>area.x+area.w||dst.y+dst.h>area.y+area.h) { + /// Some parts will not be printed. Rect src=t.getSize(); src.x=src.y=0; - if(dst.w>area.w) + + if(dst.x+dst.w>area.x+area.w) { - src.w=dst.w=area.w; + src.w=src.w*(area.w-dst.x+area.x)/dst.w; + + dst.w=area.w-(dst.x-area.x); } - if(dst.h>area.h) + + if(dst.y+dst.h>area.y+area.h) { - src.h=dst.h=area.h; + src.h=src.h*(area.h-dst.y+area.y)/dst.h; + + dst.h=area.h-(dst.y-area.y); } return Renderer::copy(t,src,dst); } + else + { + return Renderer::copyTo(t,dst); + } } int Brush::copyTo(Texture t,Point lupoint) @@ -81,24 +92,35 @@ int Brush::copyFill(Texture t,Rect src) return Renderer::copy(t,src,dst); } -int Brush::copyFullFill(Texture t ) +int Brush::copyFullFill(Texture t) { Rect dst=area; return Renderer::copyTo(t,dst); } -Board::Board(Window wnd,Rect Area) +Board::Board(Rect Area) { area=Area; - fullwnd=wnd.getSize(); } Brush Board::getBrush() { Brush b; + b.setArea(area); return b; } +Rect Board::getArea() +{ + return area; +} + + + + + + + ButtonBase::ButtonBase() { status=0; @@ -124,11 +146,24 @@ void ButtonBase::setRect(Rect SensorArea) rect=SensorArea; } -virtual void ButtonBase::draw(Brush& brush) +void ButtonBase::draw(Brush& brush) /// virtual { switch(status) { case 0: - brush.copyTo( ) + break; + case 1: + break; + case 2: + break; } } + +void ButtonBase::handle(SDL_Event e,int& running,int& update) /// virtual +{ + +} + +}/// End of namespace MiniEngine::Widget + +}/// End of namespace MiniEngine::Widget