mirror of
https://github.com/Kiritow/MiniEngine.git
synced 2024-03-22 13:11:22 +08:00
Update MiniEngine_Widget.cpp
This commit is contained in:
parent
11b1125d29
commit
58469b06f0
|
@ -1,6 +1,12 @@
|
||||||
#include "MiniEngine_Widget.h"
|
#include "MiniEngine_Widget.h"
|
||||||
using namespace MiniEngine;
|
using namespace MiniEngine;
|
||||||
|
|
||||||
|
namespace MiniEngine
|
||||||
|
{
|
||||||
|
|
||||||
|
namespace Widget
|
||||||
|
{
|
||||||
|
|
||||||
void Brush::setArea(Rect Area)
|
void Brush::setArea(Rect Area)
|
||||||
{
|
{
|
||||||
area=Area;
|
area=Area;
|
||||||
|
@ -10,28 +16,29 @@ int Brush::copy(Texture t,Rect src,Rect dst)
|
||||||
{
|
{
|
||||||
dst.x+=area.x;
|
dst.x+=area.x;
|
||||||
dst.y+=area.y;
|
dst.y+=area.y;
|
||||||
if(stretching)
|
|
||||||
|
if(dst.x>area.x+area.w||dst.y>area.y+area.h)
|
||||||
{
|
{
|
||||||
if(dst.w>area.w)
|
/// Not Printed.
|
||||||
{
|
return 1;
|
||||||
dst.w=area.w;
|
|
||||||
}
|
|
||||||
if(dst.h>area.h)
|
|
||||||
{
|
|
||||||
dst.h=area.h;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if(dst.x+dst.w>area.x+area.w)
|
||||||
{
|
{
|
||||||
if(dst.w>area.w)
|
/// Some parts will not be printed.
|
||||||
{
|
src.w=src.w*(area.w-dst.x+area.x)/dst.w;
|
||||||
dst.w=src.w=area.w;
|
|
||||||
}
|
dst.w=area.w-(dst.x-area.x);
|
||||||
if(dst.h>area.h)
|
|
||||||
{
|
|
||||||
src.w=src.h=area.h;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
return Renderer::copy(t,src,dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,34 +47,38 @@ int Brush::copyTo(Texture t,Rect dst)
|
||||||
dst.x+=area.x;
|
dst.x+=area.x;
|
||||||
dst.y+=area.y;
|
dst.y+=area.y;
|
||||||
|
|
||||||
if(streching)
|
if(dst.x>area.x+area.w||dst.y>area.y+area.h)
|
||||||
{
|
{
|
||||||
if(dst.w>area.w)
|
/// Not Printed.
|
||||||
{
|
return 1;
|
||||||
dst.w=area.w;
|
|
||||||
}
|
|
||||||
if(dst.h>area.h)
|
|
||||||
{
|
|
||||||
dst.h=area.h;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Renderer::copyTo(t,dst);
|
|
||||||
}
|
}
|
||||||
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();
|
Rect src=t.getSize();
|
||||||
src.x=src.y=0;
|
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);
|
return Renderer::copy(t,src,dst);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Renderer::copyTo(t,dst);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int Brush::copyTo(Texture t,Point lupoint)
|
int Brush::copyTo(Texture t,Point lupoint)
|
||||||
|
@ -81,24 +92,35 @@ int Brush::copyFill(Texture t,Rect src)
|
||||||
return Renderer::copy(t,src,dst);
|
return Renderer::copy(t,src,dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Brush::copyFullFill(Texture t )
|
int Brush::copyFullFill(Texture t)
|
||||||
{
|
{
|
||||||
Rect dst=area;
|
Rect dst=area;
|
||||||
return Renderer::copyTo(t,dst);
|
return Renderer::copyTo(t,dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
Board::Board(Window wnd,Rect Area)
|
Board::Board(Rect Area)
|
||||||
{
|
{
|
||||||
area=Area;
|
area=Area;
|
||||||
fullwnd=wnd.getSize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Brush Board::getBrush()
|
Brush Board::getBrush()
|
||||||
{
|
{
|
||||||
Brush b;
|
Brush b;
|
||||||
|
b.setArea(area);
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rect Board::getArea()
|
||||||
|
{
|
||||||
|
return area;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ButtonBase::ButtonBase()
|
ButtonBase::ButtonBase()
|
||||||
{
|
{
|
||||||
status=0;
|
status=0;
|
||||||
|
@ -124,11 +146,24 @@ void ButtonBase::setRect(Rect SensorArea)
|
||||||
rect=SensorArea;
|
rect=SensorArea;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void ButtonBase::draw(Brush& brush)
|
void ButtonBase::draw(Brush& brush) /// virtual
|
||||||
{
|
{
|
||||||
switch(status)
|
switch(status)
|
||||||
{
|
{
|
||||||
case 0:
|
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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user