ES-DE/src/components/GuiBox.cpp

139 lines
3.5 KiB
C++
Raw Normal View History

#include "GuiBox.h"
GuiBox::GuiBox(int offsetX, int offsetY, unsigned int width, unsigned int height)
{
setOffsetX(offsetX);
setOffsetY(offsetY);
mWidth = width;
mHeight = height;
}
void GuiBox::setData(GuiBoxData data)
{
setBackgroundImage(data.backgroundPath, data.backgroundTiled);
setHorizontalImage(data.horizontalPath, data.horizontalTiled);
setVerticalImage(data.verticalPath, data.verticalTiled);
setCornerImage(data.cornerPath);
}
void GuiBox::setHorizontalImage(std::string path, bool tiled)
{
2012-10-07 21:56:33 +00:00
mHorizontalImage.setTiling(tiled);
mHorizontalImage.setOrigin(0, 0);
mHorizontalImage.setImage(path);
mHorizontalImage.setResize(mHorizontalImage.getHeight(), mHeight, true);
}
void GuiBox::setVerticalImage(std::string path, bool tiled)
{
2012-10-07 21:56:33 +00:00
mVerticalImage.setTiling(tiled);
mVerticalImage.setOrigin(0, 0);
mVerticalImage.setImage(path);
mVerticalImage.setResize(mWidth, mVerticalImage.getHeight(), true);
}
void GuiBox::setBackgroundImage(std::string path, bool tiled)
{
2012-10-07 21:56:33 +00:00
mBackgroundImage.setResize(mWidth, mHeight, true);
mBackgroundImage.setTiling(tiled);
2012-10-07 21:56:33 +00:00
mBackgroundImage.setOffsetX(getOffsetX());
mBackgroundImage.setOffsetY(getOffsetY());
mBackgroundImage.setImage(path);
}
void GuiBox::setCornerImage(std::string path)
{
2012-10-07 22:25:51 +00:00
mCornerImage.setOrigin(0, 0);
2012-10-07 21:56:33 +00:00
mCornerImage.setResize(getHorizontalBorderWidth(), getVerticalBorderWidth(), true);
2012-10-07 22:25:51 +00:00
mCornerImage.setImage(path);
}
void GuiBox::onRender()
{
mBackgroundImage.render();
//left border
2012-10-07 21:56:33 +00:00
mHorizontalImage.setOffsetX(getOffsetX() - getHorizontalBorderWidth());
mHorizontalImage.setOffsetY(getOffsetY());
2012-10-07 22:25:51 +00:00
mHorizontalImage.setFlipX(false);
mHorizontalImage.render();
2012-10-07 21:56:33 +00:00
//Renderer::drawRect(getOffsetX() - getHorizontalBorderWidth(), getOffsetY(), getHorizontalBorderWidth(), mHeight, 0xFF0000);
//right border
mHorizontalImage.setOffsetX(getOffsetX() + mWidth);
2012-10-07 21:56:33 +00:00
//same Y
2012-10-07 22:25:51 +00:00
mHorizontalImage.setFlipX(true);
mHorizontalImage.render();
2012-10-07 21:56:33 +00:00
//Renderer::drawRect(getOffsetX() + mWidth, getOffsetY(), getHorizontalBorderWidth(), mHeight, 0xFF0000);
//top border
mVerticalImage.setOffsetX(getOffsetX());
mVerticalImage.setOffsetY(getOffsetY() - getVerticalBorderWidth());
2012-10-07 22:25:51 +00:00
mVerticalImage.setFlipY(false);
2012-10-07 21:56:33 +00:00
mVerticalImage.render();
//Renderer::drawRect(getOffsetX(), getOffsetY() - getVerticalBorderWidth(), mWidth, getVerticalBorderWidth(), 0x00FF00);
//bottom border
//same X
mVerticalImage.setOffsetY(getOffsetY() + mHeight);
2012-10-07 22:25:51 +00:00
mVerticalImage.setFlipY(true);
2012-10-07 21:56:33 +00:00
mVerticalImage.render();
//Renderer::drawRect(getOffsetX(), getOffsetY() + mHeight, mWidth, getVerticalBorderWidth(), 0x00FF00);
2012-10-07 22:25:51 +00:00
//corner top left
mCornerImage.setOffsetX(getOffsetX() - getHorizontalBorderWidth());
mCornerImage.setOffsetY(getOffsetY() - getVerticalBorderWidth());
mCornerImage.setFlipX(false);
mCornerImage.setFlipY(false);
mCornerImage.render();
//top right
mCornerImage.setOffsetX(getOffsetX() + mWidth);
mCornerImage.setFlipX(true);
mCornerImage.render();
//bottom right
mCornerImage.setOffsetY(getOffsetY() + mHeight);
mCornerImage.setFlipY(true);
mCornerImage.render();
//bottom left
mCornerImage.setOffsetX(getOffsetX() - getHorizontalBorderWidth());
mCornerImage.setFlipX(false);
mCornerImage.render();
}
void GuiBox::onInit()
{
mHorizontalImage.init();
mVerticalImage.init();
}
void GuiBox::onDeinit()
{
mHorizontalImage.deinit();
mVerticalImage.deinit();
}
2012-10-07 21:56:33 +00:00
int GuiBox::getHorizontalBorderWidth()
{
return mHorizontalImage.getWidth();
2012-10-07 21:56:33 +00:00
}
int GuiBox::getVerticalBorderWidth()
{
return mVerticalImage.getHeight();
}
bool GuiBox::hasBackground()
{
return mBackgroundImage.hasImage();
2012-10-07 21:56:33 +00:00
}