mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
fix the matrix reading other small cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1642 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
7f6bd7f12d
commit
4203d759ad
@ -1,5 +1,37 @@
|
|||||||
2001-02-28 Lars Gullik Bjønnes <larsbj@trylle.birdstep.com>
|
2001-02-28 Lars Gullik Bjønnes <larsbj@trylle.birdstep.com>
|
||||||
|
|
||||||
|
* formulamacro.C (Read): add comment.
|
||||||
|
|
||||||
|
* math_parser.C (mathed_parse): fix another potential problem by
|
||||||
|
passing a freestanding mathedarray.
|
||||||
|
|
||||||
|
* math_root.C (GetData): add const version
|
||||||
|
|
||||||
|
* math_parinset.C (~MathParInset): delete
|
||||||
|
(GetData): add const version
|
||||||
|
|
||||||
|
* math_matrixinset.C (MathMatrixInset): delete pointer version,
|
||||||
|
make it a proper copy constructor instead
|
||||||
|
(Clone): change acc.
|
||||||
|
(MathMatrixInset): remvoe default val for m and n
|
||||||
|
|
||||||
|
* math_macro.C (GetData): add const version
|
||||||
|
|
||||||
|
* math_fracinset.C (GetData): add const version
|
||||||
|
|
||||||
|
* math_cursor.C (SelCopy): make p1 and p2 const
|
||||||
|
(SelCut): make p1 and p2 const
|
||||||
|
|
||||||
|
* formula.h: add '_' on priv vars. Cnages in formula.C acc. to this
|
||||||
|
(LyxCode): move inline out of class
|
||||||
|
(ConvertFont): ditto
|
||||||
|
(display): ditto
|
||||||
|
|
||||||
|
* array.[Ch] (dump): method added for debugging purposes
|
||||||
|
|
||||||
|
* math_parser.C (mathed_parse): pass a freestanding mathedarray to
|
||||||
|
mathed_parse when reading a matrix.
|
||||||
|
|
||||||
* math_spaceinset.[Ch]: add pragma, make variables private add
|
* math_spaceinset.[Ch]: add pragma, make variables private add
|
||||||
'_', change order of method definitions.
|
'_', change order of method definitions.
|
||||||
|
|
||||||
|
@ -280,3 +280,16 @@ byte & MathedArray::operator[](int i)
|
|||||||
{
|
{
|
||||||
return bf_[i];
|
return bf_[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MathedArray::dump(ostream & os) const
|
||||||
|
{
|
||||||
|
buffer_type::const_iterator cit = bf_.begin();
|
||||||
|
buffer_type::const_iterator end = bf_.end();
|
||||||
|
for (; cit != end; ++cit) {
|
||||||
|
os << (*cit);
|
||||||
|
}
|
||||||
|
os << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#define MATHEDARRAY_H
|
#define MATHEDARRAY_H
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <iosfwd>
|
||||||
|
|
||||||
#include "mathed/support.h"
|
#include "mathed/support.h"
|
||||||
|
|
||||||
@ -110,6 +111,8 @@ public:
|
|||||||
void resize(int newsize);
|
void resize(int newsize);
|
||||||
/// Make sure we can access at least \a needed elements
|
/// Make sure we can access at least \a needed elements
|
||||||
void need_size(int needed);
|
void need_size(int needed);
|
||||||
|
///
|
||||||
|
void dump(ostream &) const;
|
||||||
private:
|
private:
|
||||||
/// Buffer
|
/// Buffer
|
||||||
buffer_type bf_;
|
buffer_type bf_;
|
||||||
|
@ -211,9 +211,8 @@ InsetFormula::InsetFormula(bool display)
|
|||||||
{
|
{
|
||||||
par = new MathParInset; // this leaks
|
par = new MathParInset; // this leaks
|
||||||
// mathcursor = 0;
|
// mathcursor = 0;
|
||||||
disp_flag = display;
|
disp_flag_ = display;
|
||||||
//label = 0;
|
if (disp_flag_) {
|
||||||
if (disp_flag) {
|
|
||||||
par->SetType(LM_OT_PAR);
|
par->SetType(LM_OT_PAR);
|
||||||
par->SetStyle(LM_ST_DISPLAY);
|
par->SetStyle(LM_ST_DISPLAY);
|
||||||
}
|
}
|
||||||
@ -226,12 +225,11 @@ InsetFormula::InsetFormula(MathParInset * p)
|
|||||||
lyxerr << "InsetFormula::InsetFormula: This shouldn't happen" << endl;
|
lyxerr << "InsetFormula::InsetFormula: This shouldn't happen" << endl;
|
||||||
|
|
||||||
par = is_multiline(p->GetType()) ?
|
par = is_multiline(p->GetType()) ?
|
||||||
new MathMatrixInset(static_cast<MathMatrixInset*>(p)):
|
new MathMatrixInset(*static_cast<MathMatrixInset*>(p)):
|
||||||
new MathParInset(*p);
|
new MathParInset(*p);
|
||||||
// mathcursor = 0;
|
// mathcursor = 0;
|
||||||
|
|
||||||
disp_flag = (par->GetType()>0);
|
disp_flag_ = (par->GetType()>0);
|
||||||
//label = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -244,7 +242,7 @@ InsetFormula::~InsetFormula()
|
|||||||
Inset * InsetFormula::Clone(Buffer const &) const
|
Inset * InsetFormula::Clone(Buffer const &) const
|
||||||
{
|
{
|
||||||
InsetFormula * f = new InsetFormula(par);
|
InsetFormula * f = new InsetFormula(par);
|
||||||
f->label = label;
|
f->label_ = label_;
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,7 +258,7 @@ int InsetFormula::Latex(Buffer const *, ostream & os, bool fragile, bool) const
|
|||||||
{
|
{
|
||||||
//#warning Alejandro, the number of lines is not returned in this case
|
//#warning Alejandro, the number of lines is not returned in this case
|
||||||
// This problem will disapear at 0.13.
|
// This problem will disapear at 0.13.
|
||||||
return mathed_write(par, os, fragile, label);
|
return mathed_write(par, os, fragile, label_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -308,13 +306,13 @@ void InsetFormula::Read(Buffer const *, LyXLex & lex)
|
|||||||
MathedArray ar;
|
MathedArray ar;
|
||||||
mathed_parse(ar, 0, &par);
|
mathed_parse(ar, 0, &par);
|
||||||
par->Metrics();
|
par->Metrics();
|
||||||
disp_flag = (par->GetType() > 0);
|
disp_flag_ = (par->GetType() > 0);
|
||||||
|
|
||||||
// Update line number
|
// Update line number
|
||||||
lex.setLineNo(mathed_parser_lineno());
|
lex.setLineNo(mathed_parser_lineno());
|
||||||
|
|
||||||
if (!mathed_label.empty()) {
|
if (!mathed_label.empty()) {
|
||||||
label = mathed_label;
|
label_ = mathed_label;
|
||||||
mathed_label.erase();
|
mathed_label.erase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,13 +333,13 @@ void InsetFormula::Read(Buffer const *, LyXLex & lex)
|
|||||||
|
|
||||||
int InsetFormula::ascent(BufferView *, LyXFont const &) const
|
int InsetFormula::ascent(BufferView *, LyXFont const &) const
|
||||||
{
|
{
|
||||||
return par->Ascent() + (disp_flag ? 8 : 1);
|
return par->Ascent() + (disp_flag_ ? 8 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int InsetFormula::descent(BufferView *, LyXFont const &) const
|
int InsetFormula::descent(BufferView *, LyXFont const &) const
|
||||||
{
|
{
|
||||||
return par->Descent() + (disp_flag ? 8 : 1);
|
return par->Descent() + (disp_flag_ ? 8 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -388,18 +386,17 @@ void InsetFormula::draw(BufferView * bv, LyXFont const & f,
|
|||||||
|
|
||||||
if (is_singlely_numbered(par->GetType())) {
|
if (is_singlely_numbered(par->GetType())) {
|
||||||
string str;
|
string str;
|
||||||
if (!label.empty())
|
if (!label_.empty())
|
||||||
str = string("(") + label + ")";
|
str = string("(") + label_ + ")";
|
||||||
else
|
else
|
||||||
str = string("(#)");
|
str = string("(#)");
|
||||||
pain.text(int(x + 20), baseline, str, wfont);
|
pain.text(int(x + 20), baseline, str, wfont);
|
||||||
} else {
|
} else {
|
||||||
MathMatrixInset * mt =
|
MathMatrixInset * mt =
|
||||||
static_cast<MathMatrixInset*>(par);
|
static_cast<MathMatrixInset*>(par);
|
||||||
int y;
|
|
||||||
MathedRowSt const * crow = mt->getRowSt();
|
MathedRowSt const * crow = mt->getRowSt();
|
||||||
while (crow) {
|
while (crow) {
|
||||||
y = baseline + crow->getBaseline();
|
int const y = baseline + crow->getBaseline();
|
||||||
if (crow->isNumbered()) {
|
if (crow->isNumbered()) {
|
||||||
string str;
|
string str;
|
||||||
if (!crow->getLabel().empty())
|
if (!crow->getLabel().empty())
|
||||||
@ -532,7 +529,7 @@ void InsetFormula::ToggleInsetSelection(BufferView * bv)
|
|||||||
|
|
||||||
void InsetFormula::display(bool dspf)
|
void InsetFormula::display(bool dspf)
|
||||||
{
|
{
|
||||||
if (dspf != disp_flag) {
|
if (dspf != disp_flag_) {
|
||||||
if (dspf) {
|
if (dspf) {
|
||||||
par->SetType(LM_OT_PAR);
|
par->SetType(LM_OT_PAR);
|
||||||
par->SetStyle(LM_ST_DISPLAY);
|
par->SetStyle(LM_ST_DISPLAY);
|
||||||
@ -543,11 +540,11 @@ void InsetFormula::display(bool dspf)
|
|||||||
}
|
}
|
||||||
par->SetType(LM_OT_MIN);
|
par->SetType(LM_OT_MIN);
|
||||||
par->SetStyle(LM_ST_TEXT);
|
par->SetStyle(LM_ST_TEXT);
|
||||||
if (!label.empty()) {
|
if (!label_.empty()) {
|
||||||
label.erase();
|
label_.erase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
disp_flag = dspf;
|
disp_flag_ = dspf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,8 +564,8 @@ vector<string> const InsetFormula::getLabelList() const
|
|||||||
label_list.push_back(crow->getLabel());
|
label_list.push_back(crow->getLabel());
|
||||||
crow = crow->getNext();
|
crow = crow->getNext();
|
||||||
}
|
}
|
||||||
} else if (!label.empty())
|
} else if (!label_.empty())
|
||||||
label_list.push_back(label);
|
label_list.push_back(label_);
|
||||||
|
|
||||||
return label_list;
|
return label_list;
|
||||||
}
|
}
|
||||||
@ -604,7 +601,8 @@ void InsetFormula::InsetButtonPress(BufferView * bv, int x, int y,
|
|||||||
int /*button*/)
|
int /*button*/)
|
||||||
{
|
{
|
||||||
sel_flag = false;
|
sel_flag = false;
|
||||||
sel_x = x; sel_y = y;
|
sel_x = x;
|
||||||
|
sel_y = y;
|
||||||
if (mathcursor && mathcursor->Selection()) {
|
if (mathcursor && mathcursor->Selection()) {
|
||||||
mathcursor->SelClear();
|
mathcursor->SelClear();
|
||||||
bv->updateInset(this, false);
|
bv->updateInset(this, false);
|
||||||
@ -646,7 +644,7 @@ void InsetFormula::InsetKeyPress(XKeyEvent *)
|
|||||||
// Special Mathed functions
|
// Special Mathed functions
|
||||||
bool InsetFormula::SetNumber(bool numbf)
|
bool InsetFormula::SetNumber(bool numbf)
|
||||||
{
|
{
|
||||||
if (disp_flag) {
|
if (disp_flag_) {
|
||||||
short type = par->GetType();
|
short type = par->GetType();
|
||||||
bool const oldf = is_numbered(type);
|
bool const oldf = is_numbered(type);
|
||||||
if (numbf && !oldf)
|
if (numbf && !oldf)
|
||||||
@ -742,9 +740,9 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
bv->lockedInsetStoreUndo(Undo::INSERT);
|
bv->lockedInsetStoreUndo(Undo::INSERT);
|
||||||
byte c = arg.empty() ? '1' : arg[0];
|
byte c = arg.empty() ? '1' : arg[0];
|
||||||
mathcursor->Insert(c, LM_TC_CR);
|
mathcursor->Insert(c, LM_TC_CR);
|
||||||
if (!label.empty()) {
|
if (!label_.empty()) {
|
||||||
mathcursor->setLabel(label);
|
mathcursor->setLabel(label_);
|
||||||
label.erase();
|
label_.erase();
|
||||||
}
|
}
|
||||||
par = mathcursor->GetPar();
|
par = mathcursor->GetPar();
|
||||||
UpdateLocal(bv);
|
UpdateLocal(bv);
|
||||||
@ -869,12 +867,12 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
|
|
||||||
case LFUN_MATH_NUMBER:
|
case LFUN_MATH_NUMBER:
|
||||||
bv->lockedInsetStoreUndo(Undo::INSERT);
|
bv->lockedInsetStoreUndo(Undo::INSERT);
|
||||||
if (disp_flag) {
|
if (disp_flag_) {
|
||||||
short type = par->GetType();
|
short type = par->GetType();
|
||||||
if (is_numbered(type)) {
|
if (is_numbered(type)) {
|
||||||
--type;
|
--type;
|
||||||
if (!label.empty()) {
|
if (!label_.empty()) {
|
||||||
label.erase();
|
label_.erase();
|
||||||
}
|
}
|
||||||
bv->owner()->getMiniBuffer()->Set(_("No number"));
|
bv->owner()->getMiniBuffer()->Set(_("No number"));
|
||||||
} else {
|
} else {
|
||||||
@ -911,7 +909,7 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
case LFUN_MATH_SIZE:
|
case LFUN_MATH_SIZE:
|
||||||
if (!arg.empty()) {
|
if (!arg.empty()) {
|
||||||
latexkeys const * l = in_word_set(arg);
|
latexkeys const * l = in_word_set(arg);
|
||||||
int sz = (l) ? l->id: -1;
|
int const sz = (l) ? l->id: -1;
|
||||||
mathcursor->SetSize(sz);
|
mathcursor->SetSize(sz);
|
||||||
UpdateLocal(bv);
|
UpdateLocal(bv);
|
||||||
break;
|
break;
|
||||||
@ -927,11 +925,14 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
case LFUN_INSERT_MATRIX:
|
case LFUN_INSERT_MATRIX:
|
||||||
{
|
{
|
||||||
bv->lockedInsetStoreUndo(Undo::INSERT);
|
bv->lockedInsetStoreUndo(Undo::INSERT);
|
||||||
int k, m, n;
|
char s[80];
|
||||||
char s[80], arg2[80];
|
char arg2[80];
|
||||||
// This is just so that too long args won't ooze out of s.
|
// This is just so that too long args won't ooze out of s.
|
||||||
strncpy(arg2, arg.c_str(), 80); arg2[79]= '\0';
|
strncpy(arg2, arg.c_str(), 80);
|
||||||
k = sscanf(arg2, "%d %d %s", &m, &n, s);
|
arg2[79]= '\0';
|
||||||
|
int m;
|
||||||
|
int n;
|
||||||
|
int const k = sscanf(arg2, "%d %d %s", &m, &n, s);
|
||||||
s[79] = '\0';
|
s[79] = '\0';
|
||||||
|
|
||||||
if (k < 1) {
|
if (k < 1) {
|
||||||
@ -953,8 +954,11 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
case LFUN_MATH_DELIM:
|
case LFUN_MATH_DELIM:
|
||||||
{
|
{
|
||||||
bv->lockedInsetStoreUndo(Undo::INSERT);
|
bv->lockedInsetStoreUndo(Undo::INSERT);
|
||||||
char lf[40], rg[40], arg2[40];
|
char lf[40];
|
||||||
int ilf = '(', irg = '.';
|
char rg[40];
|
||||||
|
char arg2[40];
|
||||||
|
int ilf = '(';
|
||||||
|
int irg = '.';
|
||||||
latexkeys const * l;
|
latexkeys const * l;
|
||||||
string vdelim("(){}[]./|");
|
string vdelim("(){}[]./|");
|
||||||
|
|
||||||
@ -962,7 +966,7 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
break;
|
break;
|
||||||
::strncpy(arg2, arg.c_str(), 40);
|
::strncpy(arg2, arg.c_str(), 40);
|
||||||
arg2[39]= '\0';
|
arg2[39]= '\0';
|
||||||
int n = sscanf(arg2, "%s %s", lf, rg);
|
int const n = sscanf(arg2, "%s %s", lf, rg);
|
||||||
lf[39] = '\0';
|
lf[39] = '\0';
|
||||||
rg[39] = '\0';
|
rg[39] = '\0';
|
||||||
|
|
||||||
@ -1012,7 +1016,7 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
string old_label = is_multiline(par->GetType())
|
string old_label = is_multiline(par->GetType())
|
||||||
? mathcursor->getLabel() : label;
|
? mathcursor->getLabel() : label_;
|
||||||
|
|
||||||
#warning This is a terrible hack! We should find a better solution.
|
#warning This is a terrible hack! We should find a better solution.
|
||||||
// This is needed because in some positions
|
// This is needed because in some positions
|
||||||
@ -1051,7 +1055,7 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
// MathMatrixInset *mt = (MathMatrixInset*)par;
|
// MathMatrixInset *mt = (MathMatrixInset*)par;
|
||||||
// mt->SetLabel(new_label);
|
// mt->SetLabel(new_label);
|
||||||
} else
|
} else
|
||||||
label = new_label;
|
label_ = new_label;
|
||||||
|
|
||||||
UpdateLocal(bv);
|
UpdateLocal(bv);
|
||||||
break;
|
break;
|
||||||
@ -1059,7 +1063,7 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
|
|
||||||
case LFUN_MATH_DISPLAY:
|
case LFUN_MATH_DISPLAY:
|
||||||
bv->lockedInsetStoreUndo(Undo::EDIT);
|
bv->lockedInsetStoreUndo(Undo::EDIT);
|
||||||
display(!disp_flag);
|
display(!disp_flag_);
|
||||||
UpdateLocal(bv);
|
UpdateLocal(bv);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1134,7 +1138,7 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
|
|||||||
|
|
||||||
varcode = LM_TC_MIN;
|
varcode = LM_TC_MIN;
|
||||||
|
|
||||||
if (greek_kb_flag<2)
|
if (greek_kb_flag < 2)
|
||||||
greek_kb_flag = 0;
|
greek_kb_flag = 0;
|
||||||
|
|
||||||
} else if (strchr("!,:;{}", c) && (varcode == LM_TC_TEX||was_macro)) {
|
} else if (strchr("!,:;{}", c) && (varcode == LM_TC_TEX||was_macro)) {
|
||||||
|
@ -66,27 +66,21 @@ public:
|
|||||||
///
|
///
|
||||||
Inset * Clone(Buffer const &) const;
|
Inset * Clone(Buffer const &) const;
|
||||||
///
|
///
|
||||||
Inset::Code LyxCode() const { return Inset::MATH_CODE; }
|
Inset::Code LyxCode() const;
|
||||||
///
|
///
|
||||||
LyXFont const ConvertFont(LyXFont const & f) const {
|
LyXFont const ConvertFont(LyXFont const & f) const;
|
||||||
// We have already discussed what was here
|
|
||||||
LyXFont font(f);
|
|
||||||
font.setLatex(LyXFont::OFF);
|
|
||||||
return font;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// what appears in the minibuffer when opening
|
/// what appears in the minibuffer when opening
|
||||||
string const EditMessage() const;
|
string const EditMessage() const;
|
||||||
///
|
///
|
||||||
void Edit(BufferView *, int x, int y, unsigned int button);
|
void Edit(BufferView *, int x, int y, unsigned int button);
|
||||||
///
|
///
|
||||||
bool display() const { return (disp_flag) ? true: false; }
|
bool display() const;
|
||||||
///
|
///
|
||||||
void display(bool);
|
void display(bool);
|
||||||
///
|
///
|
||||||
void ToggleInsetCursor(BufferView *);
|
void ToggleInsetCursor(BufferView *);
|
||||||
///
|
///
|
||||||
void ShowInsetCursor(BufferView *, bool show=true);
|
void ShowInsetCursor(BufferView *, bool show = true);
|
||||||
///
|
///
|
||||||
void HideInsetCursor(BufferView *);
|
void HideInsetCursor(BufferView *);
|
||||||
///
|
///
|
||||||
@ -124,8 +118,32 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
bool disp_flag;
|
bool disp_flag_;
|
||||||
///
|
///
|
||||||
string label;
|
string label_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
inline
|
||||||
|
Inset::Code InsetFormula::LyxCode() const
|
||||||
|
{
|
||||||
|
return Inset::MATH_CODE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline
|
||||||
|
LyXFont const InsetFormula::ConvertFont(LyXFont const & f) const
|
||||||
|
{
|
||||||
|
// We have already discussed what was here
|
||||||
|
LyXFont font(f);
|
||||||
|
font.setLatex(LyXFont::OFF);
|
||||||
|
return font;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool InsetFormula::display() const
|
||||||
|
{
|
||||||
|
return (disp_flag_) ? true : false;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -105,7 +105,8 @@ void InsetFormulaMacro::Read(Buffer const *, LyXLex & lex)
|
|||||||
MathedArray ar;
|
MathedArray ar;
|
||||||
|
|
||||||
mathed_parse(ar, 0, reinterpret_cast<MathParInset **>(&tmacro_));
|
mathed_parse(ar, 0, reinterpret_cast<MathParInset **>(&tmacro_));
|
||||||
|
// since tmacro_ == 0 when mathed_parse is called we need to sett
|
||||||
|
// its contents explicitly afterwards (Lgb)
|
||||||
tmacro_->setData(ar);
|
tmacro_->setData(ar);
|
||||||
|
|
||||||
// Update line number
|
// Update line number
|
||||||
|
@ -899,8 +899,9 @@ void MathedCursor::MacroModeClose()
|
|||||||
void MathedCursor::SelCopy()
|
void MathedCursor::SelCopy()
|
||||||
{
|
{
|
||||||
if (selection) {
|
if (selection) {
|
||||||
int p1 = (cursor->getPos() < selpos) ? cursor->getPos() : selpos;
|
int const p1 = (cursor->getPos() < selpos) ?
|
||||||
int p2 = (cursor->getPos() > selpos) ?
|
cursor->getPos() : selpos;
|
||||||
|
int const p2 = (cursor->getPos() > selpos) ?
|
||||||
cursor->getPos() : selpos;
|
cursor->getPos() : selpos;
|
||||||
selarray = *(cursor->GetData());
|
selarray = *(cursor->GetData());
|
||||||
selarray.shrink(p1, p2);
|
selarray.shrink(p1, p2);
|
||||||
@ -916,8 +917,10 @@ void MathedCursor::SelCut()
|
|||||||
if (cursor->getPos() == selpos)
|
if (cursor->getPos() == selpos)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int p1 = (cursor->getPos() < selpos) ? cursor->getPos() : selpos;
|
int const p1 = (cursor->getPos() < selpos) ?
|
||||||
int p2 = (cursor->getPos() > selpos) ? cursor->getPos() : selpos;
|
cursor->getPos() : selpos;
|
||||||
|
int const p2 = (cursor->getPos() > selpos) ?
|
||||||
|
cursor->getPos() : selpos;
|
||||||
selarray = *(cursor->GetData());
|
selarray = *(cursor->GetData());
|
||||||
selarray.shrink(p1, p2);
|
selarray.shrink(p1, p2);
|
||||||
cursor->Clean(selpos);
|
cursor->Clean(selpos);
|
||||||
|
@ -87,6 +87,15 @@ MathedArray & MathFracInset::GetData()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MathedArray const & MathFracInset::GetData() const
|
||||||
|
{
|
||||||
|
if (idx_ == 0)
|
||||||
|
return array;
|
||||||
|
else
|
||||||
|
return den_.GetData();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool MathFracInset::Inside(int x, int y)
|
bool MathFracInset::Inside(int x, int y)
|
||||||
{
|
{
|
||||||
int const xx = xo() - (width - w0_) / 2;
|
int const xx = xo() - (width - w0_) / 2;
|
||||||
|
@ -39,6 +39,8 @@ public:
|
|||||||
///
|
///
|
||||||
MathedArray & GetData();
|
MathedArray & GetData();
|
||||||
///
|
///
|
||||||
|
MathedArray const & GetData() const;
|
||||||
|
///
|
||||||
bool setArgumentIdx(int i); // was bool Up/down(void);
|
bool setArgumentIdx(int i); // was bool Up/down(void);
|
||||||
///
|
///
|
||||||
int getArgumentIdx() const;
|
int getArgumentIdx() const;
|
||||||
|
@ -43,17 +43,18 @@ MathedIter::MathedIter()
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MathedArray * MathedIter::GetData() const
|
MathedArray * MathedIter::GetData() const
|
||||||
{
|
{
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
short MathedIter::fcode() const
|
short MathedIter::fcode() const
|
||||||
{
|
{
|
||||||
return fcode_;
|
return fcode_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MathedIter::fcode(short c) const
|
void MathedIter::fcode(short c) const
|
||||||
{
|
{
|
||||||
fcode_ = c;
|
fcode_ = c;
|
||||||
|
@ -140,6 +140,12 @@ MathedArray & MathMacro::GetData()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MathedArray const & MathMacro::GetData() const
|
||||||
|
{
|
||||||
|
return args_[idx_].array;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int MathMacro::GetColumns() const
|
int MathMacro::GetColumns() const
|
||||||
{
|
{
|
||||||
return tmplate_->getMacroPar(idx_)->GetColumns();
|
return tmplate_->getMacroPar(idx_)->GetColumns();
|
||||||
|
@ -62,6 +62,8 @@ public:
|
|||||||
///
|
///
|
||||||
MathedArray & GetData();
|
MathedArray & GetData();
|
||||||
///
|
///
|
||||||
|
MathedArray const & GetData() const;
|
||||||
|
///
|
||||||
MathedRowSt * getRowSt() const;
|
MathedRowSt * getRowSt() const;
|
||||||
///
|
///
|
||||||
void setData(MathedArray const &);
|
void setData(MathedArray const &);
|
||||||
|
@ -34,15 +34,15 @@ MathMatrixInset::MathMatrixInset(int m, int n, short st)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MathMatrixInset::MathMatrixInset(MathMatrixInset * mt)
|
MathMatrixInset::MathMatrixInset(MathMatrixInset const & mt)
|
||||||
: MathParInset(mt->GetStyle(), mt->GetName(), mt->GetType()),
|
: MathParInset(mt.GetStyle(), mt.GetName(), mt.GetType()),
|
||||||
nc_(mt->nc_), nr_(0), ws_(mt->nc_),
|
nc_(mt.nc_), nr_(0), ws_(mt.nc_),
|
||||||
v_align_(mt->v_align_), h_align_(mt->h_align_)
|
v_align_(mt.v_align_), h_align_(mt.h_align_)
|
||||||
{
|
{
|
||||||
array = mt->GetData();
|
array = mt.GetData();
|
||||||
if (mt->row_ != 0) {
|
if (mt.row_ != 0) {
|
||||||
MathedRowSt * ro = 0;
|
MathedRowSt * ro = 0;
|
||||||
MathedRowSt * mrow = mt->row_;
|
MathedRowSt * mrow = mt.row_;
|
||||||
|
|
||||||
while (mrow) {
|
while (mrow) {
|
||||||
MathedRowSt * r = new MathedRowSt(nc_ + 1);
|
MathedRowSt * r = new MathedRowSt(nc_ + 1);
|
||||||
@ -59,7 +59,7 @@ MathMatrixInset::MathMatrixInset(MathMatrixInset * mt)
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
row_ = 0;
|
row_ = 0;
|
||||||
flag = mt->flag;
|
flag = mt.flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ MathMatrixInset::~MathMatrixInset()
|
|||||||
|
|
||||||
MathedInset * MathMatrixInset::Clone()
|
MathedInset * MathMatrixInset::Clone()
|
||||||
{
|
{
|
||||||
return new MathMatrixInset(this);
|
return new MathMatrixInset(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,10 +19,10 @@ class MathMatrixInset : public MathParInset {
|
|||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
explicit
|
explicit
|
||||||
MathMatrixInset(int m = 1, int n = 1, short st = LM_ST_TEXT);
|
MathMatrixInset(int m, int n, short st = LM_ST_TEXT);
|
||||||
///
|
///
|
||||||
explicit
|
explicit
|
||||||
MathMatrixInset(MathMatrixInset *);
|
MathMatrixInset(MathMatrixInset const &);
|
||||||
///
|
///
|
||||||
~MathMatrixInset();
|
~MathMatrixInset();
|
||||||
///
|
///
|
||||||
|
@ -35,12 +35,6 @@ MathParInset::MathParInset(short st, string const & nm, short ot)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// This is virtual and needed.
|
|
||||||
MathParInset::~MathParInset()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
MathedInset * MathParInset::Clone()
|
MathedInset * MathParInset::Clone()
|
||||||
{
|
{
|
||||||
return new MathParInset(*this);
|
return new MathParInset(*this);
|
||||||
@ -436,6 +430,12 @@ MathedArray & MathParInset::GetData()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MathedArray const & MathParInset::GetData() const
|
||||||
|
{
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MathParInset::setXY(int x, int y)
|
void MathParInset::setXY(int x, int y)
|
||||||
{
|
{
|
||||||
xo_ = x;
|
xo_ = x;
|
||||||
|
@ -19,8 +19,6 @@ public:
|
|||||||
MathParInset(short st = LM_ST_TEXT, string const & nm = string(),
|
MathParInset(short st = LM_ST_TEXT, string const & nm = string(),
|
||||||
short ot = LM_OT_MIN);
|
short ot = LM_OT_MIN);
|
||||||
///
|
///
|
||||||
virtual ~MathParInset();
|
|
||||||
///
|
|
||||||
virtual MathedInset * Clone();
|
virtual MathedInset * Clone();
|
||||||
/// Draw the object on a drawable
|
/// Draw the object on a drawable
|
||||||
virtual void draw(Painter &, int x, int baseline);
|
virtual void draw(Painter &, int x, int baseline);
|
||||||
@ -34,6 +32,8 @@ public:
|
|||||||
virtual void setData(MathedArray const &);
|
virtual void setData(MathedArray const &);
|
||||||
///
|
///
|
||||||
virtual MathedArray & GetData();
|
virtual MathedArray & GetData();
|
||||||
|
///
|
||||||
|
virtual MathedArray const & GetData() const;
|
||||||
/// Paragraph position
|
/// Paragraph position
|
||||||
virtual void GetXY(int &, int &) const;
|
virtual void GetXY(int &, int &) const;
|
||||||
///
|
///
|
||||||
|
@ -693,7 +693,7 @@ void mathed_parse(MathedArray & array, unsigned flags = 0,
|
|||||||
rt->setArgumentIdx(0);
|
rt->setArgumentIdx(0);
|
||||||
MathedArray ar;
|
MathedArray ar;
|
||||||
mathed_parse(ar, FLAG_BRACK_END, &rt);
|
mathed_parse(ar, FLAG_BRACK_END, &rt);
|
||||||
rt->setData(ar);
|
rt->setData(ar); // I belive that line is not needed (Lgb)
|
||||||
rt->setArgumentIdx(1);
|
rt->setArgumentIdx(1);
|
||||||
} else {
|
} else {
|
||||||
yyis->putback(c);
|
yyis->putback(c);
|
||||||
@ -701,7 +701,7 @@ void mathed_parse(MathedArray & array, unsigned flags = 0,
|
|||||||
}
|
}
|
||||||
MathedArray ar;
|
MathedArray ar;
|
||||||
mathed_parse(ar, FLAG_BRACE|FLAG_BRACE_LAST, &rt);
|
mathed_parse(ar, FLAG_BRACE|FLAG_BRACE_LAST, &rt);
|
||||||
rt->setData(ar);
|
rt->setData(ar); // I belive that this line is not needed (Lgb)
|
||||||
data.insertInset(rt, LM_TC_ACTIVE_INSET);
|
data.insertInset(rt, LM_TC_ACTIVE_INSET);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -833,7 +833,8 @@ void mathed_parse(MathedArray & array, unsigned flags = 0,
|
|||||||
MathParInset * mm = new MathMatrixInset(nc, 0);
|
MathParInset * mm = new MathMatrixInset(nc, 0);
|
||||||
mm->SetAlign(ar2[0], ar);
|
mm->SetAlign(ar2[0], ar);
|
||||||
data.insertInset(mm, LM_TC_ACTIVE_INSET);
|
data.insertInset(mm, LM_TC_ACTIVE_INSET);
|
||||||
mathed_parse(mm->GetData(), FLAG_END, &mm);
|
MathedArray dat;
|
||||||
|
mathed_parse(dat, FLAG_END, &mm);
|
||||||
} else if (is_eqn_type(yylval.i)) {
|
} else if (is_eqn_type(yylval.i)) {
|
||||||
if (plevel!= 0) {
|
if (plevel!= 0) {
|
||||||
mathPrintError("Misplaced environment");
|
mathPrintError("Misplaced environment");
|
||||||
@ -884,7 +885,9 @@ void mathed_parse(MathedArray & array, unsigned flags = 0,
|
|||||||
if (p) {
|
if (p) {
|
||||||
data.insertInset(p, p->getTCode());
|
data.insertInset(p, p->getTCode());
|
||||||
p->setArgumentIdx(0);
|
p->setArgumentIdx(0);
|
||||||
mathed_parse(p->GetData(), FLAG_END, reinterpret_cast<MathParInset**>(&p));
|
//mathed_parse(p->GetData(), FLAG_END, reinterpret_cast<MathParInset**>(&p));
|
||||||
|
MathedArray dat;
|
||||||
|
mathed_parse(dat, FLAG_END, reinterpret_cast<MathParInset**>(&p));
|
||||||
// for (int i = 0; p->setArgumentIdx(i); ++i)
|
// for (int i = 0; p->setArgumentIdx(i); ++i)
|
||||||
// p->SetData(mathed_parse(FLAG_BRACE|FLAG_BRACE_LAST));
|
// p->SetData(mathed_parse(FLAG_BRACE|FLAG_BRACE_LAST));
|
||||||
} else
|
} else
|
||||||
|
@ -75,6 +75,15 @@ MathedArray & MathRootInset::GetData()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MathedArray const & MathRootInset::GetData() const
|
||||||
|
{
|
||||||
|
if (idx_ == 1)
|
||||||
|
return array;
|
||||||
|
else
|
||||||
|
return uroot_.GetData();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool MathRootInset::Inside(int x, int y)
|
bool MathRootInset::Inside(int x, int y)
|
||||||
{
|
{
|
||||||
return (uroot_.Inside(x, y) || MathSqrtInset::Inside(x, y));
|
return (uroot_.Inside(x, y) || MathSqrtInset::Inside(x, y));
|
||||||
|
@ -50,6 +50,8 @@ public:
|
|||||||
///
|
///
|
||||||
MathedArray & GetData();
|
MathedArray & GetData();
|
||||||
///
|
///
|
||||||
|
MathedArray const & GetData() const;
|
||||||
|
///
|
||||||
bool setArgumentIdx(int i);
|
bool setArgumentIdx(int i);
|
||||||
///
|
///
|
||||||
int getArgumentIdx() const;
|
int getArgumentIdx() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user