diff --git a/src/GuiComponent.cpp b/src/GuiComponent.cpp index 94afcdec0..3b3057764 100644 --- a/src/GuiComponent.cpp +++ b/src/GuiComponent.cpp @@ -169,3 +169,14 @@ GuiComponent* GuiComponent::getParent() { return mParent; } + + +unsigned char GuiComponent::getOpacity() +{ + return mOpacity; +} + +void GuiComponent::setOpacity(unsigned char opacity) +{ + mOpacity = opacity; +} diff --git a/src/GuiComponent.h b/src/GuiComponent.h index 2335b3a33..fe441b171 100644 --- a/src/GuiComponent.h +++ b/src/GuiComponent.h @@ -48,11 +48,14 @@ public: void clearChildren(); unsigned int getChildCount(); GuiComponent* getChild(unsigned int i); + unsigned char getOpacity(); + void setOpacity(unsigned char opacity); protected: //Default implementation just renders children - you should probably always call GuiComponent::onRender at some point in your custom onRender. virtual void onRender(); + unsigned char mOpacity; Window* mWindow; GuiComponent* mParent; Vector2i mOffset; diff --git a/src/components/AnimationComponent.cpp b/src/components/AnimationComponent.cpp index 31c4c327e..1c400b4d3 100644 --- a/src/components/AnimationComponent.cpp +++ b/src/components/AnimationComponent.cpp @@ -76,7 +76,7 @@ void AnimationComponent::update(int deltaTime) } } -void AnimationComponent::addChild(ImageComponent* gui) +void AnimationComponent::addChild(GuiComponent* gui) { mChildren.push_back(gui); } @@ -86,7 +86,7 @@ void AnimationComponent::moveChildren(int offsetx, int offsety) Vector2i move(offsetx, offsety); for(unsigned int i = 0; i < mChildren.size(); i++) { - ImageComponent* comp = mChildren.at(i); + GuiComponent* comp = mChildren.at(i); comp->setOffset(comp->getOffset() + move); } } diff --git a/src/components/AnimationComponent.h b/src/components/AnimationComponent.h index 99cbd35b7..4591c10c2 100644 --- a/src/components/AnimationComponent.h +++ b/src/components/AnimationComponent.h @@ -2,7 +2,6 @@ #define _ANIMATIONCOMPONENT_H_ #include "../GuiComponent.h" -#include "ImageComponent.h" #include #define ANIMATION_TICK_SPEED 16 @@ -18,12 +17,12 @@ public: void update(int deltaTime); - void addChild(ImageComponent* gui); + void addChild(GuiComponent* gui); private: unsigned char mOpacity; - std::vector mChildren; + std::vector mChildren; void moveChildren(int offsetx, int offsety); void setChildrenOpacity(unsigned char opacity); diff --git a/src/components/ImageComponent.cpp b/src/components/ImageComponent.cpp index 238c9019e..dc8021ef8 100644 --- a/src/components/ImageComponent.cpp +++ b/src/components/ImageComponent.cpp @@ -352,8 +352,6 @@ bool ImageComponent::hasImage() return !mPath.empty(); } -unsigned char ImageComponent::getOpacity() { return mOpacity; } -void ImageComponent::setOpacity(unsigned char opacity) { mOpacity = opacity; } void ImageComponent::copyScreen() { diff --git a/src/components/ImageComponent.h b/src/components/ImageComponent.h index 3cf0204b1..ca6939509 100644 --- a/src/components/ImageComponent.h +++ b/src/components/ImageComponent.h @@ -38,9 +38,6 @@ public: void init(); void deinit(); - unsigned char getOpacity(); - void setOpacity(unsigned char opacity); - protected: void onRender(); @@ -51,8 +48,6 @@ private: bool mAllowUpscale, mTiled, mFlipX, mFlipY; - unsigned char mOpacity; - void loadImage(std::string path); void resize(); void buildImageArray(int x, int y, GLfloat* points, GLfloat* texs, float percentageX = 1, float percentageY = 1); //writes 12 GLfloat points and 12 GLfloat texture coordinates to a given array at a given position diff --git a/src/components/TextComponent.cpp b/src/components/TextComponent.cpp index 477a19417..6b455881c 100644 --- a/src/components/TextComponent.cpp +++ b/src/components/TextComponent.cpp @@ -74,7 +74,7 @@ void TextComponent::onRender() Renderer::pushClipRect(getGlobalOffset(), getSize()); - Renderer::drawWrappedText(mText, (int)-mScrollPos.x, (int)-mScrollPos.y, mSize.x, mColor, font); + Renderer::drawWrappedText(mText, (int)-mScrollPos.x, (int)-mScrollPos.y, mSize.x, mColor >> 8 << 8 | getOpacity(), font); Renderer::popClipRect();