mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
move things around, fix bug in ~MathArray.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2297 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
7c0dad35b3
commit
abaa02466a
@ -20,7 +20,7 @@ MathArray::MathArray()
|
||||
MathArray::~MathArray()
|
||||
{
|
||||
for (int pos = 0; pos < size(); next(pos))
|
||||
if (MathIsInset(pos))
|
||||
if (isInset(pos))
|
||||
delete nextInset(pos);
|
||||
}
|
||||
|
||||
@ -240,7 +240,7 @@ bool MathArray::isInset(int pos) const
|
||||
{
|
||||
if (pos >= size())
|
||||
return false;
|
||||
return MathIsInset(bf_[pos]);
|
||||
return MathIsInset(static_cast<MathTextCodes>(bf_[pos]));
|
||||
}
|
||||
|
||||
|
||||
|
@ -51,7 +51,6 @@ extern char const * latex_special_chars;
|
||||
|
||||
int greek_kb_flag = 0;
|
||||
extern char const * latex_mathenv[];
|
||||
LyXFont * Math_Fonts = 0;
|
||||
MathCursor * mathcursor = 0;
|
||||
|
||||
|
||||
@ -108,120 +107,8 @@ bool openNewInset(BufferView * bv, UpdatableInset * new_inset)
|
||||
|
||||
|
||||
|
||||
LyXFont WhichFont(short type, int size)
|
||||
{
|
||||
LyXFont f;
|
||||
|
||||
if (!Math_Fonts)
|
||||
mathed_init_fonts();
|
||||
|
||||
switch (type) {
|
||||
case LM_TC_SYMB:
|
||||
f = Math_Fonts[2];
|
||||
break;
|
||||
|
||||
case LM_TC_BSYM:
|
||||
f = Math_Fonts[2];
|
||||
break;
|
||||
|
||||
case LM_TC_VAR:
|
||||
case LM_TC_IT:
|
||||
f = Math_Fonts[0];
|
||||
break;
|
||||
|
||||
case LM_TC_BF:
|
||||
f = Math_Fonts[3];
|
||||
break;
|
||||
|
||||
case LM_TC_SF:
|
||||
f = Math_Fonts[7];
|
||||
break;
|
||||
|
||||
case LM_TC_CAL:
|
||||
f = Math_Fonts[4];
|
||||
break;
|
||||
|
||||
case LM_TC_TT:
|
||||
f = Math_Fonts[5];
|
||||
break;
|
||||
|
||||
case LM_TC_SPECIAL: //f = Math_Fonts[0]; break;
|
||||
case LM_TC_TEXTRM:
|
||||
case LM_TC_TEX:
|
||||
case LM_TC_RM:
|
||||
f = Math_Fonts[6];
|
||||
break;
|
||||
|
||||
default:
|
||||
f = Math_Fonts[1];
|
||||
break;
|
||||
}
|
||||
|
||||
switch (size) {
|
||||
case LM_ST_DISPLAY:
|
||||
if (type == LM_TC_BSYM) {
|
||||
f.incSize();
|
||||
f.incSize();
|
||||
}
|
||||
break;
|
||||
|
||||
case LM_ST_TEXT:
|
||||
break;
|
||||
|
||||
case LM_ST_SCRIPT:
|
||||
f.decSize();
|
||||
break;
|
||||
|
||||
case LM_ST_SCRIPTSCRIPT:
|
||||
f.decSize();
|
||||
f.decSize();
|
||||
break;
|
||||
|
||||
default:
|
||||
lyxerr << "Math Error: wrong font size: " << size << endl;
|
||||
break;
|
||||
}
|
||||
|
||||
if (type != LM_TC_TEXTRM)
|
||||
f.setColor(LColor::math);
|
||||
|
||||
if (type == LM_TC_TEX)
|
||||
f.setColor(LColor::latex);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
void mathed_init_fonts()
|
||||
{
|
||||
Math_Fonts = new LyXFont[8]; //DEC cxx cannot initialize all fonts
|
||||
//at once (JMarc) rc
|
||||
|
||||
for (int i = 0 ; i < 8 ; ++i) {
|
||||
Math_Fonts[i] = LyXFont(LyXFont::ALL_SANE);
|
||||
}
|
||||
|
||||
Math_Fonts[0].setShape(LyXFont::ITALIC_SHAPE);
|
||||
|
||||
Math_Fonts[1].setFamily(LyXFont::SYMBOL_FAMILY);
|
||||
|
||||
Math_Fonts[2].setFamily(LyXFont::SYMBOL_FAMILY);
|
||||
Math_Fonts[2].setShape(LyXFont::ITALIC_SHAPE);
|
||||
|
||||
Math_Fonts[3].setSeries(LyXFont::BOLD_SERIES);
|
||||
|
||||
Math_Fonts[4].setFamily(LyXFont::SANS_FAMILY);
|
||||
Math_Fonts[4].setShape(LyXFont::ITALIC_SHAPE);
|
||||
|
||||
Math_Fonts[5].setFamily(LyXFont::TYPEWRITER_FAMILY);
|
||||
|
||||
Math_Fonts[6].setFamily(LyXFont::ROMAN_FAMILY);
|
||||
|
||||
Math_Fonts[7].setFamily(LyXFont::SANS_FAMILY);
|
||||
}
|
||||
|
||||
|
||||
// returns the nearest enclosing matrix
|
||||
MathArrayInset * matrixpar(int & idx)
|
||||
@ -360,11 +247,9 @@ void InsetFormulaBase::toggleInsetCursor(BufferView * bv)
|
||||
mathcursor->GetPos(x, y);
|
||||
//x -= par_->xo();
|
||||
y -= par_->yo();
|
||||
|
||||
LyXFont font = WhichFont(LM_TC_TEXTRM, LM_ST_TEXT);
|
||||
int const asc = lyxfont::maxAscent(font);
|
||||
int const desc = lyxfont::maxDescent(font);
|
||||
|
||||
int asc;
|
||||
int desc;
|
||||
math_font_max_dim(LM_TC_TEXTRM, LM_ST_TEXT, asc, desc);
|
||||
bv->showLockedInsetCursor(x, y, asc, desc);
|
||||
}
|
||||
|
||||
@ -381,9 +266,9 @@ void InsetFormulaBase::showInsetCursor(BufferView * bv, bool)
|
||||
mathcursor->GetPos(x, y);
|
||||
x -= par_->xo();
|
||||
y -= par_->yo();
|
||||
LyXFont font = WhichFont(LM_TC_TEXTRM, LM_ST_TEXT);
|
||||
int const asc = lyxfont::maxAscent(font);
|
||||
int const desc = lyxfont::maxDescent(font);
|
||||
int asc;
|
||||
int desc;
|
||||
math_font_max_dim(LM_TC_TEXTRM, LM_ST_TEXT, asc, desc);
|
||||
bv->fitLockedInsetCursor(x, y, asc, desc);
|
||||
}
|
||||
toggleInsetCursor(bv);
|
||||
@ -882,7 +767,7 @@ InsetFormulaBase::localDispatch(BufferView * bv, kb_action action,
|
||||
mathcursor->clearLastCode();
|
||||
varcode = LM_TC_MIN;
|
||||
} else if (!varcode) {
|
||||
short f = mathcursor->getLastCode() ?
|
||||
MathTextCodes f = mathcursor->getLastCode() ?
|
||||
mathcursor->getLastCode() :
|
||||
mathcursor->nextCode();
|
||||
varcode = MathIsAlphaFont(f) ?
|
||||
|
@ -117,7 +117,7 @@ void MathBigopInset::draw(Painter & pain, int x, int y)
|
||||
xo(x);
|
||||
yo(y);
|
||||
|
||||
pain.text(x + dxx_, y, ssym_, mathed_get_font(code_, size()));
|
||||
drawStr(pain, code_, size_, x + dxx_, y, ssym_);
|
||||
|
||||
if (up())
|
||||
xcell(0).draw(pain, x + dx0_, y + dy0_);
|
||||
|
@ -33,7 +33,7 @@ private:
|
||||
///
|
||||
string ssym_;
|
||||
///
|
||||
short code_;
|
||||
MathTextCodes code_;
|
||||
/// 1: \limits, -1: \nolimits, 0: use default
|
||||
int limits_;
|
||||
/// x offset for drawing the superscript
|
||||
|
@ -719,12 +719,14 @@ in_word_set(s) << " \n";
|
||||
p = new MathBigopInset(l->name, l->id);
|
||||
break;
|
||||
|
||||
case LM_TK_SYM:
|
||||
if (l->id < 255)
|
||||
insert(l->id, MathIsBOPS(l->id) ? LM_TC_BOPS : LM_TC_SYMB);
|
||||
case LM_TK_SYM: {
|
||||
MathTextCodes code = static_cast<MathTextCodes>(l->id);
|
||||
if (code < 255)
|
||||
insert(l->id, MathIsBOPS(code) ? LM_TC_BOPS : LM_TC_SYMB);
|
||||
else
|
||||
p = new MathFuncInset(l->name);
|
||||
break;
|
||||
}
|
||||
|
||||
case LM_TK_STACK:
|
||||
p = new MathFracInset("stackrel");
|
||||
|
@ -27,19 +27,6 @@ MathInset * MathFuncInset::clone() const
|
||||
}
|
||||
|
||||
|
||||
void MathFuncInset::draw(Painter & pain, int x, int y)
|
||||
{
|
||||
if (!name_.empty() && name_[0] > ' ') {
|
||||
LyXFont font = WhichFont(LM_TC_TEXTRM, size());
|
||||
#ifndef NO_LATEX
|
||||
font.setLatex(LyXFont::ON);
|
||||
#endif
|
||||
x += (lyxfont::width('I', font) + 3) / 4;
|
||||
pain.text(x, y, name_, font);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MathFuncInset::Write(std::ostream & os, bool /* fragile */) const
|
||||
{
|
||||
os << "\\" << name_ << ' ';
|
||||
@ -54,17 +41,20 @@ void MathFuncInset::WriteNormal(std::ostream & os) const
|
||||
|
||||
void MathFuncInset::Metrics(MathStyles st, int, int)
|
||||
{
|
||||
LyXFont font = WhichFont(LM_TC_TEXTRM, size());
|
||||
#ifndef NO_LATEX
|
||||
font.setLatex(LyXFont::ON);
|
||||
#endif
|
||||
size_ = st;
|
||||
if (name_.empty()) {
|
||||
width_ = lyxfont::width('M', font);
|
||||
ascent_ = lyxfont::ascent('M', font);
|
||||
descent_ = 0;
|
||||
} else {
|
||||
width_ = lyxfont::width(name_, font) + lyxfont::width('I', font) / 2;
|
||||
mathed_string_height(LM_TC_TEXTRM, size_, name_, ascent_, descent_);
|
||||
}
|
||||
if (name_.empty())
|
||||
mathed_char_dim(LM_TC_TEXTRM, size_, 'I', ascent_, descent_, width_);
|
||||
else
|
||||
mathed_string_dim(LM_TC_TEXTRM, size_, name_, ascent_, descent_, width_);
|
||||
}
|
||||
|
||||
|
||||
void MathFuncInset::draw(Painter & pain, int x, int y)
|
||||
{
|
||||
xo(x);
|
||||
yo(y);
|
||||
if (name_.empty())
|
||||
drawChar(pain, LM_TC_TEXTRM, size_, x, y, ' ');
|
||||
else
|
||||
drawStr(pain, LM_TC_TEXTRM, size_, x, y, name_);
|
||||
}
|
||||
|
@ -11,8 +11,6 @@
|
||||
#include "LaTeXFeatures.h"
|
||||
|
||||
|
||||
LyXFont WhichFont(short type, int size);
|
||||
|
||||
namespace {
|
||||
|
||||
string const getAlign(short int type, int cols)
|
||||
@ -98,9 +96,6 @@ void MathMatrixInset::Metrics(MathStyles /* st */, int, int)
|
||||
{
|
||||
size_ = (GetType() == LM_OT_SIMPLE) ? LM_ST_TEXT : LM_ST_DISPLAY;
|
||||
|
||||
//LyXFont wfont = WhichFont(LM_TC_BF, size());
|
||||
//wfont.setLatex(LyXFont::OFF);
|
||||
|
||||
// let the cells adjust themselves
|
||||
MathGridInset::Metrics(size_);
|
||||
|
||||
@ -112,7 +107,7 @@ void MathMatrixInset::Metrics(MathStyles /* st */, int, int)
|
||||
if (numberedType()) {
|
||||
int l = 0;
|
||||
for (int row = 0; row < nrows(); ++row)
|
||||
l = std::max(l, mathed_string_width(LM_TC_TEXTRM, size(), nicelabel(row)));
|
||||
l = std::max(l, mathed_string_width(LM_TC_BF, size(), nicelabel(row)));
|
||||
|
||||
if (l)
|
||||
width_ += 30 + l;
|
||||
@ -128,13 +123,11 @@ void MathMatrixInset::draw(Painter & pain, int x, int y)
|
||||
MathGridInset::draw(pain, x, y);
|
||||
|
||||
if (numberedType()) {
|
||||
LyXFont wfont = WhichFont(LM_TC_BF, size());
|
||||
#ifndef NO_LATEX
|
||||
wfont.setLatex(LyXFont::OFF);
|
||||
#endif
|
||||
int xx = x + colinfo_.back().offset_ + colinfo_.back().width_ + 20;
|
||||
for (int row = 0; row < nrows(); ++row)
|
||||
pain.text(xx, y + rowinfo_[row].offset_, nicelabel(row), wfont);
|
||||
for (int row = 0; row < nrows(); ++row) {
|
||||
int yy = y + rowinfo_[row].offset_;
|
||||
drawStr(pain, LM_TC_BF, size(), xx, yy, nicelabel(row));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -630,7 +630,8 @@ void mathed_parse(MathArray & array, unsigned flags)
|
||||
|
||||
case LM_TK_SYM:
|
||||
if (yylval.l->id < 256) {
|
||||
MathTextCodes tc = MathIsBOPS(yylval.l->id) ? LM_TC_BOPS : LM_TC_SYMB;
|
||||
MathTextCodes c = static_cast<MathTextCodes>(yylval.l->id);
|
||||
MathTextCodes tc = MathIsBOPS(c) ? LM_TC_BOPS : LM_TC_SYMB;
|
||||
array.push_back(yylval.l->id, tc);
|
||||
} else
|
||||
array.push_back(new MathFuncInset(yylval.l->name));
|
||||
|
@ -64,11 +64,11 @@ binary_op_pair binary_op_table[] = {
|
||||
};
|
||||
|
||||
|
||||
struct compara {
|
||||
struct comparator {
|
||||
// used by sort and lower_bound
|
||||
inline
|
||||
int operator()(binary_op_pair const & a,
|
||||
binary_op_pair const & b) const {
|
||||
int operator()(binary_op_pair const & a, binary_op_pair const & b) const
|
||||
{
|
||||
return a.id < b.id;
|
||||
}
|
||||
};
|
||||
@ -83,7 +83,7 @@ int MathLookupBOP(short id)
|
||||
static bool issorted = false;
|
||||
|
||||
if (!issorted) {
|
||||
sort(binary_op_table, binary_op_table + bopCount, compara());
|
||||
sort(binary_op_table, binary_op_table + bopCount, comparator());
|
||||
issorted = true;
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ int MathLookupBOP(short id)
|
||||
|
||||
binary_op_pair * res = lower_bound(binary_op_table,
|
||||
binary_op_table + bopCount,
|
||||
search_elem, compara());
|
||||
search_elem, comparator());
|
||||
if (res != binary_op_table + bopCount && res->id == id)
|
||||
return res->isrel;
|
||||
else
|
||||
|
@ -3,7 +3,6 @@
|
||||
#ifndef MATHUTILS_H
|
||||
#define MATHUTILS_H
|
||||
|
||||
extern
|
||||
int MathLookupBOP(short id);
|
||||
|
||||
#endif
|
||||
|
@ -8,7 +8,6 @@
|
||||
#include "math_defs.h"
|
||||
#include "math_parser.h"
|
||||
#include "Painter.h"
|
||||
#include "symbol_def.h"
|
||||
#include "debug.h"
|
||||
#include "math_utils.h"
|
||||
|
||||
@ -18,31 +17,31 @@ using std::endl;
|
||||
using std::max;
|
||||
|
||||
|
||||
bool MathIsInset(short x)
|
||||
bool MathIsInset(MathTextCodes x)
|
||||
{
|
||||
return LM_TC_INSET == x;
|
||||
}
|
||||
|
||||
|
||||
bool MathIsAlphaFont(short x)
|
||||
bool MathIsAlphaFont(MathTextCodes x)
|
||||
{
|
||||
return LM_TC_VAR <= x && x <= LM_TC_TEXTRM;
|
||||
}
|
||||
|
||||
|
||||
bool MathIsBOPS(short x)
|
||||
bool MathIsBOPS(MathTextCodes x)
|
||||
{
|
||||
return MathLookupBOP(x) > LMB_NONE;
|
||||
return MathLookupBOP(x) != LMB_NONE;
|
||||
}
|
||||
|
||||
|
||||
bool MathIsBinary(short x)
|
||||
bool MathIsBinary(MathTextCodes x)
|
||||
{
|
||||
return x == LM_TC_BOP || x == LM_TC_BOPS;
|
||||
}
|
||||
|
||||
|
||||
bool MathIsSymbol(short x)
|
||||
bool MathIsSymbol(MathTextCodes x)
|
||||
{
|
||||
return x == LM_TC_SYMB || x == LM_TC_BOPS || x == LM_TC_BSYM;
|
||||
}
|
||||
@ -123,8 +122,123 @@ void Matrix::transform(float xp, float yp, float & x, float & y)
|
||||
}
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
extern LyXFont WhichFont(short type, int size);
|
||||
LyXFont * Math_Fonts = 0;
|
||||
|
||||
void mathed_init_fonts()
|
||||
{
|
||||
Math_Fonts = new LyXFont[8]; //DEC cxx cannot initialize all fonts
|
||||
//at once (JMarc) rc
|
||||
|
||||
for (int i = 0 ; i < 8 ; ++i) {
|
||||
Math_Fonts[i] = LyXFont(LyXFont::ALL_SANE);
|
||||
}
|
||||
|
||||
Math_Fonts[0].setShape(LyXFont::ITALIC_SHAPE);
|
||||
|
||||
Math_Fonts[1].setFamily(LyXFont::SYMBOL_FAMILY);
|
||||
|
||||
Math_Fonts[2].setFamily(LyXFont::SYMBOL_FAMILY);
|
||||
Math_Fonts[2].setShape(LyXFont::ITALIC_SHAPE);
|
||||
|
||||
Math_Fonts[3].setSeries(LyXFont::BOLD_SERIES);
|
||||
|
||||
Math_Fonts[4].setFamily(LyXFont::SANS_FAMILY);
|
||||
Math_Fonts[4].setShape(LyXFont::ITALIC_SHAPE);
|
||||
|
||||
Math_Fonts[5].setFamily(LyXFont::TYPEWRITER_FAMILY);
|
||||
|
||||
Math_Fonts[6].setFamily(LyXFont::ROMAN_FAMILY);
|
||||
|
||||
Math_Fonts[7].setFamily(LyXFont::SANS_FAMILY);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
LyXFont WhichFont(MathTextCodes type, MathStyles size)
|
||||
{
|
||||
LyXFont f;
|
||||
|
||||
if (!Math_Fonts)
|
||||
mathed_init_fonts();
|
||||
|
||||
switch (type) {
|
||||
case LM_TC_SYMB:
|
||||
f = Math_Fonts[2];
|
||||
break;
|
||||
|
||||
case LM_TC_BSYM:
|
||||
f = Math_Fonts[2];
|
||||
break;
|
||||
|
||||
case LM_TC_VAR:
|
||||
case LM_TC_IT:
|
||||
f = Math_Fonts[0];
|
||||
break;
|
||||
|
||||
case LM_TC_BF:
|
||||
f = Math_Fonts[3];
|
||||
break;
|
||||
|
||||
case LM_TC_SF:
|
||||
f = Math_Fonts[7];
|
||||
break;
|
||||
|
||||
case LM_TC_CAL:
|
||||
f = Math_Fonts[4];
|
||||
break;
|
||||
|
||||
case LM_TC_TT:
|
||||
f = Math_Fonts[5];
|
||||
break;
|
||||
|
||||
case LM_TC_SPECIAL: //f = Math_Fonts[0]; break;
|
||||
case LM_TC_TEXTRM:
|
||||
case LM_TC_TEX:
|
||||
case LM_TC_RM:
|
||||
f = Math_Fonts[6];
|
||||
break;
|
||||
|
||||
default:
|
||||
f = Math_Fonts[1];
|
||||
break;
|
||||
}
|
||||
|
||||
switch (size) {
|
||||
case LM_ST_DISPLAY:
|
||||
if (type == LM_TC_BSYM) {
|
||||
f.incSize();
|
||||
f.incSize();
|
||||
}
|
||||
break;
|
||||
|
||||
case LM_ST_TEXT:
|
||||
break;
|
||||
|
||||
case LM_ST_SCRIPT:
|
||||
f.decSize();
|
||||
break;
|
||||
|
||||
case LM_ST_SCRIPTSCRIPT:
|
||||
f.decSize();
|
||||
f.decSize();
|
||||
break;
|
||||
|
||||
default:
|
||||
lyxerr << "Math Error: wrong font size: " << size << endl;
|
||||
break;
|
||||
}
|
||||
|
||||
if (type != LM_TC_TEXTRM)
|
||||
f.setColor(LColor::math);
|
||||
|
||||
if (type == LM_TC_TEX)
|
||||
f.setColor(LColor::latex);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
char const * math_font_name[] = {
|
||||
"mathrm",
|
||||
@ -407,7 +521,7 @@ static init_deco_table idt;
|
||||
|
||||
} // namespace anon
|
||||
|
||||
void mathed_char_dim (short type, int size, unsigned char c,
|
||||
void mathed_char_dim (MathTextCodes type, MathStyles size, unsigned char c,
|
||||
int & asc, int & des, int & wid)
|
||||
{
|
||||
LyXFont const font = WhichFont(type, size);
|
||||
@ -416,7 +530,7 @@ void mathed_char_dim (short type, int size, unsigned char c,
|
||||
wid = mathed_char_width(type, size, c);
|
||||
}
|
||||
|
||||
int mathed_char_height(short type, int size, unsigned char c,
|
||||
int mathed_char_height(MathTextCodes type, MathStyles size, unsigned char c,
|
||||
int & asc, int & des)
|
||||
{
|
||||
LyXFont const font = WhichFont(type, size);
|
||||
@ -426,7 +540,7 @@ int mathed_char_height(short type, int size, unsigned char c,
|
||||
}
|
||||
|
||||
|
||||
int mathed_char_width(short type, int size, unsigned char c)
|
||||
int mathed_char_width(MathTextCodes type, MathStyles size, unsigned char c)
|
||||
{
|
||||
if (MathIsBinary(type)) {
|
||||
string s;
|
||||
@ -437,14 +551,14 @@ int mathed_char_width(short type, int size, unsigned char c)
|
||||
}
|
||||
|
||||
|
||||
void mathed_string_dim(short type, int size, string const & s,
|
||||
void mathed_string_dim(MathTextCodes type, MathStyles size, string const & s,
|
||||
int & asc, int & des, int & wid)
|
||||
{
|
||||
mathed_string_height(type, size, s, asc, des);
|
||||
wid = mathed_string_width(type, size, s);
|
||||
}
|
||||
|
||||
int mathed_string_height(short type, int size, string const & s,
|
||||
int mathed_string_height(MathTextCodes type, MathStyles size, string const & s,
|
||||
int & asc, int & des)
|
||||
{
|
||||
LyXFont const font = WhichFont(type, size);
|
||||
@ -457,7 +571,7 @@ int mathed_string_height(short type, int size, string const & s,
|
||||
}
|
||||
|
||||
|
||||
int mathed_string_width(short type, int size, string const & s)
|
||||
int mathed_string_width(MathTextCodes type, MathStyles size, string const & s)
|
||||
{
|
||||
string st;
|
||||
if (MathIsBinary(type))
|
||||
@ -470,20 +584,7 @@ int mathed_string_width(short type, int size, string const & s)
|
||||
else
|
||||
st = s;
|
||||
|
||||
LyXFont const f = WhichFont(type, size);
|
||||
return lyxfont::width(st, f);
|
||||
}
|
||||
|
||||
|
||||
LyXFont mathed_get_font(short type, int size)
|
||||
{
|
||||
LyXFont f = WhichFont(type, size);
|
||||
#ifndef NO_LATEX
|
||||
if (type == LM_TC_TEX) {
|
||||
f.setLatex(LyXFont::ON);
|
||||
}
|
||||
#endif
|
||||
return f;
|
||||
return lyxfont::width(st, WhichFont(type, size));
|
||||
}
|
||||
|
||||
|
||||
@ -581,7 +682,7 @@ void mathed_draw_deco(Painter & pain, int x, int y, int w, int h, int code)
|
||||
|
||||
|
||||
// In a near future maybe we use a better fonts renderer
|
||||
void drawStr(Painter & pain, short type, int siz,
|
||||
void drawStr(Painter & pain, MathTextCodes type, MathStyles siz,
|
||||
int x, int y, string const & s)
|
||||
{
|
||||
string st;
|
||||
@ -595,11 +696,10 @@ void drawStr(Painter & pain, short type, int siz,
|
||||
else
|
||||
st = s;
|
||||
|
||||
LyXFont const mf = mathed_get_font(type, siz);
|
||||
pain.text(x, y, st, mf);
|
||||
pain.text(x, y, st, WhichFont(type, siz));
|
||||
}
|
||||
|
||||
void drawChar(Painter & pain, short type, int siz, int x, int y, char c)
|
||||
void drawChar(Painter & pain, MathTextCodes type, MathStyles siz, int x, int y, char c)
|
||||
{
|
||||
string s;
|
||||
s += c;
|
||||
@ -639,3 +739,12 @@ bool MathIsRelOp(unsigned char c, MathTextCodes f)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void math_font_max_dim(MathTextCodes code, MathStyles siz, int & asc, int & des)
|
||||
{
|
||||
LyXFont font = WhichFont(code, siz);
|
||||
asc = lyxfont::maxAscent(font);
|
||||
des = lyxfont::maxDescent(font);
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,8 @@
|
||||
#ifndef MATH_SUPPORT_H
|
||||
#define MATH_SUPPORT_H
|
||||
|
||||
#include "lyxfont.h"
|
||||
#include "math_defs.h"
|
||||
#include "LString.h"
|
||||
|
||||
class Painter;
|
||||
class MathArray;
|
||||
@ -13,31 +13,32 @@ class MathMatrixInset;
|
||||
extern char const * math_font_name[];
|
||||
extern char const * latex_mathspace[];
|
||||
|
||||
int mathed_char_height(short type, int size, unsigned char c,
|
||||
int mathed_char_height(MathTextCodes type, MathStyles size, unsigned char c,
|
||||
int & asc, int & des);
|
||||
int mathed_char_width(short type, int size, unsigned char c);
|
||||
void mathed_char_dim(short type, int size, unsigned char c,
|
||||
int mathed_char_width(MathTextCodes type, MathStyles size, unsigned char c);
|
||||
void mathed_char_dim(MathTextCodes type, MathStyles size, unsigned char c,
|
||||
int & asc, int & des, int & wid);
|
||||
|
||||
void mathed_draw_deco(Painter & pain, int x, int y, int w, int h, int code);
|
||||
|
||||
LyXFont mathed_get_font(short type, int size);
|
||||
|
||||
void mathed_string_dim(short type, int size, string const & s,
|
||||
void mathed_string_dim(MathTextCodes type, MathStyles size, string const & s,
|
||||
int & asc, int & des, int & wid);
|
||||
int mathed_string_height(short type, int size, string const & s,
|
||||
int mathed_string_height(MathTextCodes type, MathStyles size, string const & s,
|
||||
int & asc, int & des);
|
||||
int mathed_string_width(short type, int size, string const & s);
|
||||
int mathed_string_width(MathTextCodes type, MathStyles size, string const & s);
|
||||
|
||||
bool MathIsInset(short x);
|
||||
bool MathIsAlphaFont(short x);
|
||||
bool MathIsBOPS(short x);
|
||||
bool MathIsSymbol(short x);
|
||||
bool MathIsInset(MathTextCodes x);
|
||||
bool MathIsAlphaFont(MathTextCodes x);
|
||||
bool MathIsBOPS(MathTextCodes x);
|
||||
bool MathIsSymbol(MathTextCodes x);
|
||||
bool MathIsRelOp(unsigned char c, MathTextCodes f);
|
||||
|
||||
void drawStr(Painter & pain, short type, int siz,
|
||||
void drawStr(Painter & pain, MathTextCodes type, MathStyles siz,
|
||||
int x, int y, string const & s);
|
||||
void drawChar(Painter & pain, short type, int siz,
|
||||
void drawChar(Painter & pain, MathTextCodes type, MathStyles siz,
|
||||
int x, int y, char c);
|
||||
|
||||
void math_font_max_dim
|
||||
(MathTextCodes code, MathStyles siz, int & asc, int & desc);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user