Hi, Jurgen, I do not know the result of the lengthy InsetCharStyle discussion. Is the attached patch still OK for the branch? (You approved it before.)
Cheers, Bo
Index: src/insets/InsetCharStyle.h =================================================================== --- src/insets/InsetCharStyle.h (revision 20956) +++ src/insets/InsetCharStyle.h (working copy) @@ -96,6 +96,8 @@ /// should paragraph indendation be ommitted in any case? bool neverIndent(Buffer const &) const { return true; } + /// + bool setMouseHover(bool mouse_hover); protected: InsetCharStyle(InsetCharStyle const &); @@ -112,6 +114,8 @@ void init(); /// InsetCharStyleParams params_; + /// show inset type when mouse enters this inset + bool mouse_hover_; }; Index: src/insets/InsetCharStyle.cpp =================================================================== --- src/insets/InsetCharStyle.cpp (revision 20956) +++ src/insets/InsetCharStyle.cpp (working copy) @@ -57,7 +57,7 @@ InsetCharStyle::InsetCharStyle(BufferParams const & bp, string const s) - : InsetCollapsable(bp) + : InsetCollapsable(bp), mouse_hover_(false) { params_.type = s; setUndefined(); @@ -67,7 +67,7 @@ InsetCharStyle::InsetCharStyle(BufferParams const & bp, CharStyles::iterator cs) - : InsetCollapsable(bp) + : InsetCollapsable(bp), mouse_hover_(false) { params_.type = cs->name; setDefined(cs); @@ -102,7 +102,7 @@ params_.font = Font(Font::ALL_INHERIT); params_.labelfont = Font(Font::ALL_INHERIT); params_.labelfont.setColor(Color::error); - params_.show_label = true; + params_.show_label = false; } @@ -113,7 +113,7 @@ params_.latexparam = cs->latexparam; params_.font = cs->font; params_.labelfont = cs->labelfont; - params_.show_label = true; + params_.show_label = false; } @@ -163,8 +163,6 @@ theFontMetrics(font).rectText(s, w, a, d); dim.wid = max(dim.wid, w); } - dim.asc += TEXT_TO_INSET_OFFSET; - dim.des += TEXT_TO_INSET_OFFSET; dim.wid += 2 * TEXT_TO_INSET_OFFSET; mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET; if (params_.show_label) @@ -197,6 +195,9 @@ params_.labelfont.color()); // the name of the charstyle. Can be toggled. + docstring s(from_utf8(params_.type)); + if (undefined()) + s = _("Undef: ") + s; if (params_.show_label) { Font font(params_.labelfont); font.realize(Font(Font::ALL_SANE)); @@ -205,10 +206,6 @@ int w = 0; int a = 0; int d = 0; - // FIXME UNICODE - docstring s(from_utf8(params_.type)); - if (undefined()) - s = _("Undef: ") + s; theFontMetrics(font).rectText(s, w, a, d); pi.pain.rectText(x + (dim_.wid - w) / 2, y + desc + a, s, font, Color::none, Color::none); @@ -216,7 +213,7 @@ // a visual clue when the cursor is inside the inset Cursor & cur = pi.base.bv->cursor(); - if (cur.isInside(this)) { + if (mouse_hover_ || cur.isInside(this)) { y -= ascent(); pi.pain.line(x, y + 4, x, y, params_.labelfont.color()); pi.pain.line(x + 4, y, x, y, params_.labelfont.color()); @@ -224,6 +221,8 @@ params_.labelfont.color()); pi.pain.line(x + dim_.wid - 7, y, x + dim_.wid - 3, y, params_.labelfont.color()); + + pi.base.bv->message(_("CharStyle: ") + s); } } @@ -345,6 +344,13 @@ } +bool InsetCharStyle::setMouseHover(bool mouse_hover) +{ + mouse_hover_ = mouse_hover; + return true; +} + + void InsetCharStyleParams::write(ostream & os) const { os << "CharStyle " << type << "\n"; Index: status.15x =================================================================== --- status.15x (revision 20966) +++ status.15x (working copy) @@ -58,6 +58,9 @@ - Check and show proper error message if configure.py fails (part of buf 2829). +- Does not display the type of charstyle insets by default. Display type of + an charstyle inset under mouse in the status line. + * DOCUMENTATION - Fix wrong character in the User's Guide (including the translations)