}
-void Inset::drawMarkers(PainterInfo & pi, int x, int y) const
-{
- Color::color pen_color = 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 = 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
InsetMathNest::InsetMathNest(idx_type nargs)
- : cells_(nargs), lock_(false)
+ : cells_(nargs), lock_(false), mouse_hover_(false)
{}
InsetMathNest::InsetMathNest(InsetMathNest const & inset)
- : InsetMath(inset), cells_(inset.cells_), lock_(inset.lock_)
+ : InsetMath(inset), cells_(inset.cells_), lock_(inset.lock_),
+ mouse_hover_(false)
{}
{
cells_ = inset.cells_;
lock_ = inset.lock_;
+ mouse_hover_ = false;
InsetMath::operator=(inset);
return *this;
}
}
+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;
+ return true;
+}
+
+
bool InsetMathNest::notifyCursorLeaves(Cursor & /*cur*/)
{
#ifdef WITH_WARNINGS
/// 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);
protected:
///
cells_type cells_;
/// if the inset is locked, it can't be entered with the cursor
bool lock_;
+ ///
+ bool mouse_hover_;
private:
/// This signal is emitted when the inset is destroyed.