lyx_mirror/src/insets/RenderButton.cpp
Abdelrazak Younes 5ddc612b73 Splitup Font in saner bits:
* Font::FontBits -> FontInfo
* Font::FONT_XXX -> all enums transfered to FontEnums.h and renamed to FontXxx

I've replaced Font uses with FontInfo were the language() member was not needed, basically all draw() and metrics methods. There's one problematic cases with InsetQuotes which I solved by taking the Buffer main language.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21240 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-28 18:51:54 +00:00

76 lines
1.3 KiB
C++

/**
* \file RenderButton.cpp
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Angus Leeming
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "RenderButton.h"
#include "MetricsInfo.h"
#include "frontends/FontMetrics.h"
#include "frontends/Painter.h"
namespace lyx {
RenderButton::RenderButton()
: editable_(false)
{}
RenderBase * RenderButton::clone(Inset const *) const
{
return new RenderButton(*this);
}
void RenderButton::update(docstring const & text, bool editable)
{
text_ = text;
editable_ = editable;
}
void RenderButton::metrics(MetricsInfo &, Dimension & dim) const
{
FontInfo font = sane_font;
font.decSize();
frontend::FontMetrics const & fm =
theFontMetrics(font);
if (editable_)
fm.buttonText(text_, dim.wid, dim.asc, dim.des);
else
fm.rectText(text_, dim.wid, dim.asc, dim.des);
dim.wid += 4;
dim_ = dim;
}
void RenderButton::draw(PainterInfo & pi, int x, int y) const
{
// Draw it as a box with the LaTeX text
FontInfo font = sane_font;
font.setColor(Color_command);
font.decSize();
if (editable_) {
pi.pain.buttonText(x + 2, y, text_, font, renderState());
} else {
pi.pain.rectText(x + 2, y, text_, font,
Color_commandbg, Color_commandframe);
}
}
} // namespace lyx