Define new inPixels helper in BufferView

Length::inPixels(MetricsBase const &) and VSpace::inPixels(BufferView
const &) should be moved respectuvely to MetricsBase and BufferView:
core file are not supposed to use GUI files.
This commit is contained in:
Jean-Marc Lasgouttes 2017-04-28 15:06:30 +02:00
parent 4436431ea5
commit de990f72e1
4 changed files with 20 additions and 2 deletions

View File

@ -368,6 +368,13 @@ int BufferView::leftMargin() const
}
int BufferView::inPixels(Length const & len) const
{
Font const font = buffer().params().getFont();
return len.inPixels(workWidth(), theFontMetrics(font).em());
}
bool BufferView::isTopScreen() const
{
return 0 == d->scrollbarParameters_.min;

View File

@ -41,6 +41,7 @@ class FuncRequest;
class FuncStatus;
class Intl;
class Inset;
class Length;
class PainterInfo;
class ParIterator;
class ParagraphMetrics;
@ -105,6 +106,14 @@ public:
/// left margin
int leftMargin() const;
/// return the on-screen size of this length
/*
* This is a wrapper around Length::inPixels that uses the
* bufferview width as width and the EM value of the default
* document font.
*/
int inPixels(Length const & len) const;
/// \return true if the BufferView is at the top of the document.
bool isTopScreen() const;

View File

@ -97,9 +97,11 @@ public:
* FontMetrics::em() to get this value.
*/
int inPixels(int text_width, int em_width = 0) const;
/** return the on-screen size of this length
*
* This version of the function uses the right EM definition.
* This version of the function uses the current inset width as
* width and the EM value of the current font.
*/
int inPixels(MetricsBase const &) const;
/// return the value in Big Postscript points.

View File

@ -228,7 +228,7 @@ int VSpace::inPixels(BufferView const & bv) const
return 3 * default_height;
case LENGTH:
return len_.len().inPixels(bv.workWidth());
return bv.inPixels(len_.len());
default:
LATTEST(false);