X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetHFill.cpp;h=76af40d23f839be8b0dcc6e3162db23d927afde1;hb=06254d11dfdf670fab3548dc2a2674e7a261262c;hp=c9f392c2590e4725a9b542a1d5977c6cf197585a;hpb=9d0ea8aeff32833a90b3fe64df0c5518a9e241be;p=lyx.git diff --git a/src/insets/InsetHFill.cpp b/src/insets/InsetHFill.cpp index c9f392c259..76af40d23f 100644 --- a/src/insets/InsetHFill.cpp +++ b/src/insets/InsetHFill.cpp @@ -11,20 +11,26 @@ #include #include "InsetHFill.h" + +#include "MetricsInfo.h" + +#include "frontends/Painter.h" + #include "support/gettext.h" #include +using namespace std; namespace lyx { InsetHFill::InsetHFill() - : InsetCommand(InsetCommandParams(HFILL_CODE), std::string()) + : InsetCommand(InsetCommandParams(HFILL_CODE), string()) {} -CommandInfo const * InsetHFill::findInfo(std::string const & /* cmdName */) +CommandInfo const * InsetHFill::findInfo(string const & /* cmdName */) { static const char * const paramnames[] = {""}; static const CommandInfo info = {0, paramnames, 0}; @@ -40,9 +46,24 @@ Inset * InsetHFill::clone() const void InsetHFill::metrics(MetricsInfo &, Dimension & dim) const { - dim.wid = 3; - dim.asc = 3; - dim.des = 3; + // The metrics for this inset are calculated externally in + // \c TextMetrics::computeRowMetrics. Those are dummy value: + dim = Dimension(10, 10, 10); +} + + +void InsetHFill::draw(PainterInfo & pi, int x, int y) const +{ + Dimension const dim = Inset::dimension(*pi.base.bv); + int const x0 = x + 1; + int const x1 = x + dim.wid - 2; + int const y0 = y + dim.des - 1; + int const y1 = y - dim.asc + 1; + + pi.pain.line(x0, y1, x0, y0, Color_added_space); + pi.pain.line(x0, y, x1, y, Color_added_space, + frontend::Painter::line_onoffdash); + pi.pain.line(x1, y1, x1, y0, Color_added_space); } @@ -68,7 +89,7 @@ int InsetHFill::docbook(Buffer const &, odocstream & os, } -void InsetHFill::write(Buffer const &, std::ostream & os) const +void InsetHFill::write(Buffer const &, ostream & os) const { os << "\n\\hfill\n"; }