}
+void Inset::drawMarkers(PainterInfo & pi, int x, int y) const
+{
+ Color::color pen_color = mouseHovered() || editing(pi.base.bv)?
+ Color::mathframe : Color::mathcorners;
+
+ int const t = x + width() - 1;
+ int const d = y + descent();
+ pi.pain.line(x, d - 3, x, d, pen_color);
+ pi.pain.line(t, d - 3, t, d, pen_color);
+ pi.pain.line(x, d, x + 3, d, pen_color);
+ pi.pain.line(t - 3, d, t, d, pen_color);
+ setPosCache(pi, x, y);
+}
+
+
+void Inset::drawMarkers2(PainterInfo & pi, int x, int y) const
+{
+ Color::color pen_color = mouseHovered() || editing(pi.base.bv)?
+ Color::mathframe : Color::mathcorners;
+
+ drawMarkers(pi, x, y);
+ int const t = x + width() - 1;
+ int const a = y - ascent();
+ pi.pain.line(x, a + 3, x, a, pen_color);
+ pi.pain.line(t, a + 3, t, a, pen_color);
+ pi.pain.line(x, a, x + 3, a, pen_color);
+ pi.pain.line(t - 3, a, t, a, pen_color);
+ setPosCache(pi, x, y);
+}
+
+
bool Inset::editing(BufferView * bv) const
{
return bv->cursor().isInside(this);
/// draw inset decoration if necessary.
/// This can use \c drawMarkers() for example.
virtual void drawDecoration(PainterInfo &, int, int) const {}
+ /// draw four angular markers
+ void drawMarkers(PainterInfo & pi, int x, int y) const;
+ /// draw two angular markers
+ void drawMarkers2(PainterInfo & pi, int x, int y) const;
/// add space for markers
void metricsMarkers(Dimension & dim, int framesize = 1) const;
/// add space for markers
/// is called when the mouse enter or leave this inset
/// return true if this inset needs repaint
virtual bool setMouseHover(bool) { return false; }
+ /// return true if this inset is hovered (under mouse)
+ /// This is by now only used by mathed to draw corners
+ /// (Inset::drawMarkers() and Inset::drawMarkers2()).
+ /// Other insets do not have to redefine this function to
+ /// return the correct status of mouseHovered.
+ virtual bool mouseHovered() const { return false; }
/// request "external features"
virtual void validate(LaTeXFeatures &) const {}
}
-void InsetMathNest::drawMarkers(PainterInfo & pi, int x, int y) const
-{
- Color::color pen_color = mouse_hover_ || editing(pi.base.bv) ?
- Color::mathframe : Color::mathcorners;
-
- int const t = x + width() - 1;
- int const d = y + descent();
- pi.pain.line(x, d - 3, x, d, pen_color);
- pi.pain.line(t, d - 3, t, d, pen_color);
- pi.pain.line(x, d, x + 3, d, pen_color);
- pi.pain.line(t - 3, d, t, d, pen_color);
- setPosCache(pi, x, y);
-}
-
-
-void InsetMathNest::drawMarkers2(PainterInfo & pi, int x, int y) const
-{
- Color::color pen_color = mouse_hover_ || editing(pi.base.bv)?
- Color::mathframe : Color::mathcorners;
-
- drawMarkers(pi, x, y);
- int const t = x + width() - 1;
- int const a = y - ascent();
- pi.pain.line(x, a + 3, x, a, pen_color);
- pi.pain.line(t, a + 3, t, a, pen_color);
- pi.pain.line(x, a, x + 3, a, pen_color);
- pi.pain.line(t - 3, a, t, a, pen_color);
- setPosCache(pi, x, y);
-}
-
-
bool InsetMathNest::setMouseHover(bool mouse_hover)
{
mouse_hover_ = mouse_hover;
/// This signal is emitted when the inset is destroyed.
boost::signal<void()> * destroyedSignal() { return &destroyed; }
- /// draw four angular markers
- void drawMarkers(PainterInfo & pi, int x, int y) const;
- /// draw two angular markers
- void drawMarkers2(PainterInfo & pi, int x, int y) const;
///
bool setMouseHover(bool mouse_hover);
+ ///
+ bool mouseHovered() const { return mouse_hover_; }
protected:
///