mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-20 15:01:58 +00:00
move things around
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4799 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
11398a3316
commit
4d51fc96b4
@ -416,6 +416,7 @@ InsetFormulaBase::localDispatch(BufferView * bv, kb_action action,
|
|||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
|
|
||||||
|
case LFUN_WORDRIGHTSEL:
|
||||||
case LFUN_RIGHTSEL:
|
case LFUN_RIGHTSEL:
|
||||||
sel = true; // fall through...
|
sel = true; // fall through...
|
||||||
case LFUN_RIGHT:
|
case LFUN_RIGHT:
|
||||||
@ -427,6 +428,7 @@ InsetFormulaBase::localDispatch(BufferView * bv, kb_action action,
|
|||||||
//bv->owner()->message(mathcursor->info());
|
//bv->owner()->message(mathcursor->info());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LFUN_WORDLEFTSEL:
|
||||||
case LFUN_LEFTSEL:
|
case LFUN_LEFTSEL:
|
||||||
sel = true; // fall through
|
sel = true; // fall through
|
||||||
case LFUN_LEFT:
|
case LFUN_LEFT:
|
||||||
@ -543,9 +545,6 @@ InsetFormulaBase::localDispatch(BufferView * bv, kb_action action,
|
|||||||
mathcursor->selCopy();
|
mathcursor->selCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_WORDRIGHTSEL:
|
|
||||||
case LFUN_WORDLEFTSEL:
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Special casing for superscript in case of LyX handling
|
// Special casing for superscript in case of LyX handling
|
||||||
// dead-keys:
|
// dead-keys:
|
||||||
|
@ -660,46 +660,14 @@ void MathCursor::selGet(MathArray & ar)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void MathCursor::drawSelection(MathPainterInfo & pain) const
|
void MathCursor::drawSelection(MathPainterInfo & pi) const
|
||||||
{
|
{
|
||||||
if (!selection_)
|
if (!selection_)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
MathCursorPos i1;
|
MathCursorPos i1;
|
||||||
MathCursorPos i2;
|
MathCursorPos i2;
|
||||||
getSelection(i1, i2);
|
getSelection(i1, i2);
|
||||||
|
i1.par_->drawSelection(pi, i1.idx_, i1.pos_, i2.idx_, i2.pos_);
|
||||||
if (i1.idx_ == i2.idx_) {
|
|
||||||
MathXArray & c = i1.xcell();
|
|
||||||
int x1 = c.xo() + c.pos2x(i1.pos_);
|
|
||||||
int y1 = c.yo() - c.ascent();
|
|
||||||
int x2 = c.xo() + c.pos2x(i2.pos_);
|
|
||||||
int y2 = c.yo() + c.descent();
|
|
||||||
pain.pain.fillRectangle(x1, y1, x2 - x1, y2 - y1, LColor::selection);
|
|
||||||
} else {
|
|
||||||
vector<MathInset::idx_type> indices
|
|
||||||
= i1.par_->idxBetween(i1.idx_, i2.idx_);
|
|
||||||
for (unsigned i = 0; i < indices.size(); ++i) {
|
|
||||||
MathXArray & c = i1.xcell(indices[i]);
|
|
||||||
int x1 = c.xo();
|
|
||||||
int y1 = c.yo() - c.ascent();
|
|
||||||
int x2 = c.xo() + c.width();
|
|
||||||
int y2 = c.yo() + c.descent();
|
|
||||||
pain.pain.fillRectangle(x1, y1, x2 - x1, y2 - y1, LColor::selection);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
// draw anchor if different from selection boundary
|
|
||||||
MathCursorPos anc = Anchor_.back();
|
|
||||||
if (anc != i1 && anc != i2) {
|
|
||||||
MathXArray & c = anc.xcell();
|
|
||||||
int x = c.xo() + c.pos2x(anc.pos_);
|
|
||||||
int y1 = c.yo() - c.ascent();
|
|
||||||
int y2 = c.yo() + c.descent();
|
|
||||||
pain.line(x, y1, x, y2, LColor::math);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -224,6 +224,13 @@ void MathInset::draw(MathPainterInfo &, int, int) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MathInset::drawSelection(MathPainterInfo &,
|
||||||
|
idx_type, pos_type, idx_type, pos_type) const
|
||||||
|
{
|
||||||
|
lyxerr << "MathInset::drawSelection() called directly!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MathInset::metricsT(TextMetricsInfo const &) const
|
void MathInset::metricsT(TextMetricsInfo const &) const
|
||||||
{
|
{
|
||||||
#ifdef WITH_WARNINGS
|
#ifdef WITH_WARNINGS
|
||||||
|
@ -110,9 +110,12 @@ public:
|
|||||||
virtual void substitute(MathMacro const & macro);
|
virtual void substitute(MathMacro const & macro);
|
||||||
/// compute the size of the object, sets ascend_, descend_ and width_
|
/// compute the size of the object, sets ascend_, descend_ and width_
|
||||||
// updates the (xo,yo)-caches of all contained cells
|
// updates the (xo,yo)-caches of all contained cells
|
||||||
virtual void metrics(MathMetricsInfo & st) const;
|
virtual void metrics(MathMetricsInfo & mi) const;
|
||||||
/// draw the object
|
/// draw the object
|
||||||
virtual void draw(MathPainterInfo &, int x, int y) const;
|
virtual void draw(MathPainterInfo & pi, int x, int y) const;
|
||||||
|
/// draw selection between two positions
|
||||||
|
virtual void drawSelection(MathPainterInfo & pi,
|
||||||
|
idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const;
|
||||||
/// the ascent of the inset above the baseline
|
/// the ascent of the inset above the baseline
|
||||||
/// compute the size of the object for text based drawing
|
/// compute the size of the object for text based drawing
|
||||||
virtual void metricsT(TextMetricsInfo const & st) const;
|
virtual void metricsT(TextMetricsInfo const & st) const;
|
||||||
|
@ -182,6 +182,30 @@ void MathNestInset::draw(MathPainterInfo &, int, int) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MathNestInset::drawSelection(MathPainterInfo & pi,
|
||||||
|
idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const
|
||||||
|
{
|
||||||
|
if (idx1 == idx2) {
|
||||||
|
MathXArray const & c = xcell(idx1);
|
||||||
|
int x1 = c.xo() + c.pos2x(pos1);
|
||||||
|
int y1 = c.yo() - c.ascent();
|
||||||
|
int x2 = c.xo() + c.pos2x(pos2);
|
||||||
|
int y2 = c.yo() + c.descent();
|
||||||
|
pi.pain.fillRectangle(x1, y1, x2 - x1, y2 - y1, LColor::selection);
|
||||||
|
} else {
|
||||||
|
vector<MathInset::idx_type> indices = idxBetween(idx1, idx2);
|
||||||
|
for (unsigned i = 0; i < indices.size(); ++i) {
|
||||||
|
MathXArray const & c = xcell(indices[i]);
|
||||||
|
int x1 = c.xo();
|
||||||
|
int y1 = c.yo() - c.ascent();
|
||||||
|
int x2 = c.xo() + c.width();
|
||||||
|
int y2 = c.yo() + c.descent();
|
||||||
|
pi.pain.fillRectangle(x1, y1, x2 - x1, y2 - y1, LColor::selection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MathNestInset::drawMarkers(MathPainterInfo & pi, int x, int y) const
|
void MathNestInset::drawMarkers(MathPainterInfo & pi, int x, int y) const
|
||||||
{
|
{
|
||||||
if (!editing())
|
if (!editing())
|
||||||
|
@ -28,7 +28,9 @@ public:
|
|||||||
void metricsMarkers2(int frame = 1) const;
|
void metricsMarkers2(int frame = 1) const;
|
||||||
/// draw background if locked
|
/// draw background if locked
|
||||||
void draw(MathPainterInfo & pi, int x, int y) const;
|
void draw(MathPainterInfo & pi, int x, int y) const;
|
||||||
/// draw two angular markers
|
/// draw selection background
|
||||||
|
void drawSelection(MathPainterInfo & pi,
|
||||||
|
idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const;
|
||||||
void drawMarkers(MathPainterInfo & pi, int x, int y) const;
|
void drawMarkers(MathPainterInfo & pi, int x, int y) const;
|
||||||
/// draw four angular markers
|
/// draw four angular markers
|
||||||
void drawMarkers2(MathPainterInfo & pi, int x, int y) const;
|
void drawMarkers2(MathPainterInfo & pi, int x, int y) const;
|
||||||
|
@ -207,6 +207,34 @@ void MathParboxInset::draw(MathPainterInfo & pi, int x, int y) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MathParboxInset::drawSelection(MathPainterInfo & pi,
|
||||||
|
idx_type, pos_type pos1, idx_type, pos_type pos2) const
|
||||||
|
{
|
||||||
|
int row1 = pos2row(pos1);
|
||||||
|
int row2 = pos2row(pos2);
|
||||||
|
if (row1 == row2) {
|
||||||
|
/*
|
||||||
|
MathXArray & c = xcell(0);
|
||||||
|
int x1 = c.xo() + c.pos2x(i1.pos_);
|
||||||
|
int y1 = c.yo() - c.ascent();
|
||||||
|
int x2 = c.xo() + c.pos2x(i2.pos_);
|
||||||
|
int y2 = c.yo() + c.descent();
|
||||||
|
pi.pain.fillRectangle(x1, y1, x2 - x1, y2 - y1, LColor::selection);
|
||||||
|
} else {
|
||||||
|
vector<MathInset::idx_type> indices = idxBetween(idx1, idx2);
|
||||||
|
for (unsigned i = 0; i < indices.size(); ++i) {
|
||||||
|
MathXArray & c = i1.xcell(indices[i]);
|
||||||
|
int x1 = c.xo();
|
||||||
|
int y1 = c.yo() - c.ascent();
|
||||||
|
int x2 = c.xo() + c.width();
|
||||||
|
int y2 = c.yo() + c.descent();
|
||||||
|
pi.pain.fillRectangle(x1, y1, x2 - x1, y2 - y1, LColor::selection);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MathParboxInset::write(WriteStream & os) const
|
void MathParboxInset::write(WriteStream & os) const
|
||||||
{
|
{
|
||||||
os << "\\parbox";
|
os << "\\parbox";
|
||||||
|
@ -19,6 +19,9 @@ public:
|
|||||||
void metrics(MathMetricsInfo & mi) const;
|
void metrics(MathMetricsInfo & mi) const;
|
||||||
///
|
///
|
||||||
void draw(MathPainterInfo &, int x, int y) const;
|
void draw(MathPainterInfo &, int x, int y) const;
|
||||||
|
/// draw selection background
|
||||||
|
void drawSelection(MathPainterInfo & pi,
|
||||||
|
idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const;
|
||||||
///
|
///
|
||||||
void infoize(std::ostream & os) const;
|
void infoize(std::ostream & os) const;
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user