#include "stdafx.h" #include "V8DataModel/Frame.h" #include "Gui/Guidraw.h" namespace RBX { const char* const sFrame = "Frame"; const Reflection::EnumPropDescriptor prop_style("Style", category_Data, &Frame::getStyle, &Frame::setStyle); namespace Reflection { template<> EnumDesc::EnumDesc() :EnumDescriptor("FrameStyle") { addPair(Frame::CUSTOM_STYLE, "Custom"); addPair(Frame::BLUE_CHAT_STYLE, "ChatBlue"); addPair(Frame::ROBLOX_SQUARE_STYLE, "RobloxSquare"); addPair(Frame::ROBLOX_ROUND_STYLE, "RobloxRound"); addPair(Frame::GREEN_CHAT_STYLE, "ChatGreen"); addPair(Frame::RED_CHAT_STYLE, "ChatRed"); addPair(Frame::ROBLOX_DROPSHADOW_STYLE, "DropShadow"); } }//namespace Reflection Frame::Frame() : DescribedCreatable("Frame", false) , style(Frame::CUSTOM_STYLE) {} Rect2D Frame::getChildRect2D() const { switch(style) { case Frame::CUSTOM_STYLE: return getRect2D(); case Frame::BLUE_CHAT_STYLE: case Frame::GREEN_CHAT_STYLE: case Frame::RED_CHAT_STYLE: return Scale9Rect2D(getRect2D(), 17, 60); case Frame::ROBLOX_SQUARE_STYLE: case Frame::ROBLOX_ROUND_STYLE: case Frame::ROBLOX_DROPSHADOW_STYLE: return Scale9Rect2D(getRect2D(), 8, 21); default: RBXASSERT(0); return getRect2D(); } } void Frame::setStyle(Style value) { if(style != value) { style = value; raisePropertyChanged(prop_style); forceResize(); } } void Frame::render2d(Adorn* adorn) { static const TextureId sBlue = TextureId("rbxasset://textures/ui/dialog_blue.png"); static const TextureId sGreen = TextureId("rbxasset://textures/ui/dialog_green.png"); static const TextureId sRed = TextureId("rbxasset://textures/ui/dialog_red.png"); static const TextureId sBlackSquare = TextureId("rbxasset://textures/blackBkg_square.png"); static const TextureId sBlackRound = TextureId("rbxasset://textures/blackBkg_round.png"); static const TextureId sNewSquare = TextureId("rbxasset://textures/ui/newBkg_square.png"); GuiObject* clippingObject = firstAncestorClipping(); switch(style) { case Frame::CUSTOM_STYLE: Super::render2d(adorn); break; case Frame::BLUE_CHAT_STYLE: { Rect2D rect = Rect2D::xyxy(7, 7, 33, 33); Color4 color = Color3::white(); render2dScale9Impl2(adorn, sBlue, image, rect, clippingObject, color); break; } case Frame::GREEN_CHAT_STYLE: { Rect2D rect = Rect2D::xyxy(7, 7, 33, 33); Color4 color = Color3::white(); render2dScale9Impl2(adorn, sGreen, image, rect, clippingObject, color); break; } case Frame::RED_CHAT_STYLE: { Rect2D rect = Rect2D::xyxy(7, 7, 33, 33); Color4 color = Color3::white(); render2dScale9Impl2(adorn, sRed, image, rect, clippingObject, color); break; } case Frame::ROBLOX_SQUARE_STYLE: { Rect2D rect; setBackgroundTransparency(0.0f); render2dScale9Impl(adorn, sBlackSquare, Vector2int16(7,7), Vector2(14,14), image, rect, clippingObject); break; } case Frame::ROBLOX_ROUND_STYLE: { Rect2D rect; setBackgroundTransparency(0.0f); render2dScale9Impl(adorn, sBlackRound, Vector2int16(7,7), Vector2(14,14), image, rect, clippingObject); break; } case Frame::ROBLOX_DROPSHADOW_STYLE: { Rect2D rect; setBackgroundTransparency(0.0f); render2dScale9Impl(adorn, sNewSquare, Vector2int16(10,10), Vector2(40,40), image, rect, clippingObject); break; } } renderStudioSelectionBox(adorn); } }