|
|
@@ -16,41 +16,52 @@ namespace BansheeEngine
|
|
|
GUIScrollBarVert::GUIScrollBarVert(GUIWidget& parent, const GUIElementStyle* style, const GUILayoutOptions& layoutOptions)
|
|
|
:GUIElement(parent, style, layoutOptions), mLayout(nullptr)
|
|
|
{
|
|
|
+ mImageSprite = cm_new<ImageSprite, PoolAlloc>();
|
|
|
+
|
|
|
mLayout = &addLayoutYInternal();
|
|
|
|
|
|
GUIButton* upBtn = GUIButton::create(parent, L"", parent.getSkin()->getStyle("ScrollUpBtn"));
|
|
|
GUIButton* downBtn = GUIButton::create(parent, L"", parent.getSkin()->getStyle("ScrollDownBtn"));
|
|
|
GUIButton* handleBtn = GUIButton::create(parent, L"", GUILayoutOptions::expandableY(6), parent.getSkin()->getStyle("ScrollBarVertBtn"));
|
|
|
|
|
|
+ mLayout->addSpace(2);
|
|
|
mLayout->addElement(upBtn);
|
|
|
mLayout->addSpace(2);
|
|
|
mLayout->addElement(handleBtn); // We might want a special element for this?
|
|
|
mLayout->addSpace(2);
|
|
|
mLayout->addElement(downBtn);
|
|
|
+ mLayout->addSpace(2);
|
|
|
}
|
|
|
|
|
|
GUIScrollBarVert::~GUIScrollBarVert()
|
|
|
{
|
|
|
-
|
|
|
+ cm_delete<PoolAlloc>(mImageSprite);
|
|
|
}
|
|
|
|
|
|
UINT32 GUIScrollBarVert::getNumRenderElements() const
|
|
|
{
|
|
|
- return 0;
|
|
|
+ return mImageSprite->getNumRenderElements();
|
|
|
}
|
|
|
|
|
|
const HMaterial& GUIScrollBarVert::getMaterial(UINT32 renderElementIdx) const
|
|
|
{
|
|
|
- CM_EXCEPT(InternalErrorException, "Invalid render element index. This class has no render elements.");
|
|
|
+ return mImageSprite->getMaterial(renderElementIdx);
|
|
|
}
|
|
|
|
|
|
UINT32 GUIScrollBarVert::getNumQuads(UINT32 renderElementIdx) const
|
|
|
{
|
|
|
- return 0;
|
|
|
+ return mImageSprite->getNumQuads(renderElementIdx);
|
|
|
}
|
|
|
|
|
|
void GUIScrollBarVert::updateRenderElementsInternal()
|
|
|
- { }
|
|
|
+ {
|
|
|
+ IMAGE_SPRITE_DESC desc;
|
|
|
+ desc.texture = mStyle->normal.texture;
|
|
|
+ desc.width = mWidth;
|
|
|
+ desc.height = mHeight;
|
|
|
+
|
|
|
+ mImageSprite->update(desc);
|
|
|
+ }
|
|
|
|
|
|
UINT32 GUIScrollBarVert::_getOptimalWidth() const
|
|
|
{
|
|
|
@@ -62,9 +73,16 @@ namespace BansheeEngine
|
|
|
return mLayout->_getOptimalHeight();
|
|
|
}
|
|
|
|
|
|
+ UINT32 GUIScrollBarVert::_getRenderElementDepth(UINT32 renderElementIdx) const
|
|
|
+ {
|
|
|
+ return _getDepth() + 2; // + 2 depth because child buttons use +1
|
|
|
+ }
|
|
|
+
|
|
|
void GUIScrollBarVert::fillBuffer(UINT8* vertices, UINT8* uv, UINT32* indices, UINT32 startingQuad, UINT32 maxNumQuads,
|
|
|
UINT32 vertexStride, UINT32 indexStride, UINT32 renderElementIdx) const
|
|
|
- { }
|
|
|
+ {
|
|
|
+ mImageSprite->fillBuffer(vertices, uv, indices, startingQuad, maxNumQuads, vertexStride, indexStride, renderElementIdx, mOffset, mClipRect);
|
|
|
+ }
|
|
|
|
|
|
GUIScrollBarVert* GUIScrollBarVert::create(GUIWidget& parent, const GUIElementStyle* style)
|
|
|
{
|