Commit 93c2f87d authored by twanvl's avatar twanvl

don't include spacing in symbol font text drawing alignment&size calculations

parent 56dcf766
...@@ -283,10 +283,14 @@ void SymbolFont::drawSymbol(RotatedDC& dc, RealRect sym_rect, double font_size, ...@@ -283,10 +283,14 @@ void SymbolFont::drawSymbol(RotatedDC& dc, RealRect sym_rect, double font_size,
// find bitmap // find bitmap
Bitmap bmp = sym.getBitmap(*this, dc.trS(font_size)); Bitmap bmp = sym.getBitmap(*this, dc.trS(font_size));
// draw aligned in the rectangle // draw aligned in the rectangle
dc.DrawBitmap(bmp, align_in_rect(align, dc.trInvS(RealSize(bmp.GetWidth(), bmp.GetHeight())), sym_rect)); RealSize bmp_size = dc.trInvS(RealSize(bmp));
RealPoint bmp_pos = align_in_rect(align, bmp_size, sym_rect);
dc.DrawBitmap(bmp, bmp_pos);
// 2. draw text // 2. draw text
if (text.empty() || !sym.text_font) return; if (text.empty() || !sym.text_font) return;
// only use the bitmap rectangle
sym_rect = RealRect(bmp_pos, bmp_size);
// subtract margins from size // subtract margins from size
sym_rect.x += font_size * sym.text_margin_left; sym_rect.x += font_size * sym.text_margin_left;
sym_rect.y += font_size * sym.text_margin_top; sym_rect.y += font_size * sym.text_margin_top;
......
...@@ -101,10 +101,10 @@ class SymbolFont : public Packaged { ...@@ -101,10 +101,10 @@ class SymbolFont : public Packaged {
/// Draws a single symbol inside the given rectangle /// Draws a single symbol inside the given rectangle
void drawSymbol (RotatedDC& dc, RealRect sym_rect, double font_size, const Alignment& align, SymbolInFont& sym, const String& text); void drawSymbol (RotatedDC& dc, RealRect sym_rect, double font_size, const Alignment& align, SymbolInFont& sym, const String& text);
/// Size of a single symbol /// Size of a single symbol, including spacing
RealSize symbolSize (double font_size, const DrawableSymbol& sym); RealSize symbolSize (double font_size, const DrawableSymbol& sym);
public: public:
/// The default size of symbols /// The default size of symbols, including spacing
RealSize defaultSymbolSize(double font_size); RealSize defaultSymbolSize(double font_size);
DECLARE_REFLECTION(); DECLARE_REFLECTION();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment