X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcollapsable.C;h=3bc130945558ae3f71fca171c33886faac1d035e;hb=ee72ce87743857b4317da00e6e09cb6842095664;hp=24457fba6dd235230d5a6f2fbbf0343e7034ba11;hpb=b744c6ed9f4dab51e47e4a9bb0331f1740aad335;p=lyx.git diff --git a/src/insets/insetcollapsable.C b/src/insets/insetcollapsable.C index 24457fba6d..3bc1309455 100644 --- a/src/insets/insetcollapsable.C +++ b/src/insets/insetcollapsable.C @@ -19,6 +19,7 @@ #include "BufferView.h" #include "Painter.h" #include "support/LOstream.h" +#include "support/lstrings.h" using std::ostream; @@ -29,7 +30,7 @@ InsetCollapsable::InsetCollapsable() : InsetText() autocollapse = true; autoBreakRows = true; framecolor = LColor::footnoteframe; - widthOffset = 6; // 2+2 (behind+back), 1+1 (frame) + widthOffset = 2 * TEXT_TO_INSET_OFFSET + 2; // 1+1 (frame) button_length = button_top_y = button_bottom_y = 0; setInsetName("Collapsable"); } @@ -44,14 +45,11 @@ Inset * InsetCollapsable::Clone() const return result; } + void InsetCollapsable::Write(Buffer const * buf, ostream & os) const { - os << getInsetName() << "\n\ncollapsed "; - if (display()) - os << "false\n"; - else - os << "true\n"; - WriteParagraphData(buf, os); + os << "collapsed " << tostr(!display()) << "\n"; + WriteParagraphData(buf, os); } @@ -153,11 +151,10 @@ void InsetCollapsable::draw(BufferView * bv, LyXFont const & f, draw_collapsed(pain, f, baseline, x); x -= TEXT_TO_INSET_OFFSET; - int w = InsetText::width(pain, f) + 2 * TEXT_TO_INSET_OFFSET; + int w = InsetText::width(pain, f) + (2 * TEXT_TO_INSET_OFFSET); int h = ascent(pain,f) + descent(pain, f); int save_x = static_cast(x); x += TEXT_TO_INSET_OFFSET; - drawTextXOffset = int(x) - top_x; InsetText::draw(bv, f, baseline, x, cleared); pain.rectangle(save_x, baseline - ascent(pain, f), w, h, framecolor); } @@ -251,3 +248,11 @@ int InsetCollapsable::getMaxTextWidth(Painter & pain, return getMaxWidth(pain, inset) - width_collapsed(pain, labelfont) - widthOffset; } + + +void InsetCollapsable::update(BufferView * bv, + LyXFont const & font, bool dodraw) +{ + drawTextXOffset = width_collapsed(bv->painter(), font); + InsetText::update(bv, font, dodraw); +}