X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetHFill.cpp;h=76af40d23f839be8b0dcc6e3162db23d927afde1;hb=06254d11dfdf670fab3548dc2a2674e7a261262c;hp=39d901dcacb2b8c2e37c83391e6fe5ce3f8009a0;hpb=e158e07c29a2066ac408d1b0038382623180da9c;p=lyx.git diff --git a/src/insets/InsetHFill.cpp b/src/insets/InsetHFill.cpp index 39d901dcac..76af40d23f 100644 --- a/src/insets/InsetHFill.cpp +++ b/src/insets/InsetHFill.cpp @@ -11,19 +11,33 @@ #include #include "InsetHFill.h" -#include "gettext.h" -#include "support/std_ostream.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(string const & /* cmdName */) +{ + static const char * const paramnames[] = {""}; + static const CommandInfo info = {0, paramnames, 0}; + return &info; +} + + Inset * InsetHFill::clone() const { return new InsetHFill; @@ -32,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); } @@ -60,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"; }