Added a border above buttons on GuiMsgBox.

Reluctantly changed button font to FONT_SIZE_MEDIUM because FONT_SIZE_SMALL has messed up sizing for some unknown reason.
This commit is contained in:
Aloshi 2014-03-15 13:39:19 -05:00
parent 088b146fe9
commit 613787931a
3 changed files with 10 additions and 14 deletions

View file

@ -2,9 +2,11 @@
#include "../Renderer.h"
#include "../Window.h"
#include "../Util.h"
#include "../Log.h"
ButtonComponent::ButtonComponent(Window* window, const std::string& text, const std::string& helpText, const std::function<void()>& func) : GuiComponent(window),
mBox(window, ":/button.png"),
mFont(Font::get(FONT_SIZE_MEDIUM)),
mFocused(false),
mEnabled(true),
mTextColorFocused(0xFFFFFFFF), mTextColorUnfocused(0x777777FF)
@ -40,10 +42,9 @@ void ButtonComponent::setText(const std::string& text, const std::string& helpTe
mText = strToUpper(text);
mHelpText = helpText;
std::shared_ptr<Font> f = getFont();
mTextCache = std::unique_ptr<TextCache>(f->buildTextCache(mText, 0, 0, getCurTextColor()));
mTextCache = std::unique_ptr<TextCache>(mFont->buildTextCache(mText, 0, 0, getCurTextColor()));
setSize(mTextCache->metrics.size + Eigen::Vector2f(12, 12));
setSize(mTextCache->metrics.size + Eigen::Vector2f(12, 0));
updateHelpPrompts();
}
@ -94,18 +95,13 @@ void ButtonComponent::render(const Eigen::Affine3f& parentTrans)
Renderer::setMatrix(trans);
mTextCache->setColor(getCurTextColor());
getFont()->renderTextCache(mTextCache.get());
mFont->renderTextCache(mTextCache.get());
trans = trans.translate(-centerOffset);
}
renderChildren(trans);
}
std::shared_ptr<Font> ButtonComponent::getFont()
{
return Font::get(FONT_SIZE_SMALL);
}
unsigned int ButtonComponent::getCurTextColor() const
{
if(!mFocused)

View file

@ -26,7 +26,7 @@ public:
virtual std::vector<HelpPrompt> getHelpPrompts() override;
private:
std::shared_ptr<Font> getFont();
std::shared_ptr<Font> mFont;
std::function<void()> mPressedFunc;
bool mFocused;

View file

@ -4,7 +4,7 @@
#include "../components/ButtonComponent.h"
#include "../components/MenuComponent.h" // for makeButtonGrid
#define BUTTON_VERT_PADDING 16.0f
#define BUTTON_VERT_PADDING 32.0f
GuiMsgBox::GuiMsgBox(Window* window, const std::string& text,
const std::string& name1, const std::function<void()>& func1,
@ -28,7 +28,7 @@ GuiMsgBox::GuiMsgBox(Window* window, const std::string& text,
mButtonGrid = makeButtonGrid(mWindow, mButtons);
mGrid.setEntry(mMsg, Eigen::Vector2i(0, 0), false, true);
mGrid.setEntry(mButtonGrid, Eigen::Vector2i(0, 1), true, false);
mGrid.setEntry(mButtonGrid, Eigen::Vector2i(0, 1), true, false, Eigen::Vector2i(1, 1), GridFlags::BORDER_TOP);
if(mMsg->getSize().x() > width)
{
@ -55,7 +55,7 @@ GuiMsgBox::GuiMsgBox(Window* window, const std::string& text,
void GuiMsgBox::onSizeChanged()
{
mGrid.setSize(mSize);
mBackground.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-16, -32));
mBackground.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-32, -32));
mGrid.setRowHeightPerc(1, (mButtonGrid->getSize().y() + BUTTON_VERT_PADDING) / mSize.y());
}