mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-30 05:12:40 +00:00
Show corners of mathed with mouse hover, details see bug 3825
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18701 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
5a7524ac9b
commit
8153ea8fa7
@ -280,37 +280,6 @@ void Inset::metricsMarkers2(Dimension & dim, int framesize) const
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
|
@ -130,10 +130,6 @@ public:
|
||||
/// 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
|
||||
|
@ -74,12 +74,13 @@ using std::istringstream;
|
||||
|
||||
|
||||
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)
|
||||
{}
|
||||
|
||||
|
||||
@ -87,6 +88,7 @@ InsetMathNest & InsetMathNest::operator=(InsetMathNest const & inset)
|
||||
{
|
||||
cells_ = inset.cells_;
|
||||
lock_ = inset.lock_;
|
||||
mouse_hover_ = false;
|
||||
InsetMath::operator=(inset);
|
||||
return *this;
|
||||
}
|
||||
@ -358,6 +360,44 @@ int InsetMathNest::latex(Buffer const &, odocstream & os,
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
|
@ -109,6 +109,13 @@ public:
|
||||
/// 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:
|
||||
///
|
||||
InsetMathNest(InsetMathNest const & inset);
|
||||
@ -156,6 +163,8 @@ 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.
|
||||
|
Loading…
Reference in New Issue
Block a user