some inline fix + mathed16.diff

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1496 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2001-02-13 15:27:03 +00:00
parent b906c06db6
commit ac7b713ef7
7 changed files with 145 additions and 151 deletions

View File

@ -1,5 +1,7 @@
2001-02-13 Lars Gullik Bjønnes <larsbj@lyx.org>
* math_xiter.h: remove a couple of "inline"
* array.C (strange_copy): fix bug (hopefully)
* many files: add a lot of new files and move methods to the class
files they belong to. Only first attempt at cleanup more will

View File

@ -27,16 +27,22 @@
#include "symbol_def.h"
#include "support/lstrings.h"
#include "debug.h"
#include "mathed/support.h"
using std::endl;
const int SizeInset = sizeof(char*) + 2;
extern int mathed_char_width(short type, int style, byte c);
extern int mathed_string_width(short type, int style, string const & s);
extern int mathed_char_height(short, int, byte, int &, int &);
//extern int mathed_char_width(short type, int style, byte c);
//extern int mathed_string_width(short type, int style, string const & s);
//extern int mathed_char_height(short, int, byte, int &, int &);
MathedIter::MathedIter()
: flags(0), fcode(0), pos(0), row(0), col(0), ncols(0), array(0)
{}
void MathedIter::SetData(MathedArray * a)
{
array = a; Reset();

View File

@ -30,10 +30,10 @@ class MathedInset;
///
enum mathIterFlags {
/// Allow newlines
MthIF_CR = 1,
/// Allow tabs
MthIF_Tabs = 2
/// Allow newlines
MthIF_CR = 1,
/// Allow tabs
MthIF_Tabs = 2
};
@ -43,13 +43,7 @@ enum mathIterFlags {
class MathedIter {
public:
///
MathedIter() {
pos = 0;
fcode = 0;
array = 0;
flags = 0;
ncols = row = col = 0;
}
MathedIter();
///
explicit
MathedIter(MathedArray *);
@ -131,7 +125,11 @@ protected:
///
mutable int pos;
///
int row, col, ncols;
int row;
///
int col;
///
int ncols;
///
MathedArray * array;
// one element stack
@ -139,9 +137,15 @@ protected:
///
short fcode;
///
int x, y;
int x;
///
int pos, row, col;
int y;
///
int pos;
///
int row;
///
int col;
};
///
MIState stck;
@ -152,8 +156,8 @@ protected:
};
///
#define MX_WAS_SUB 1
//#define MX_WAS_SUB 1
///
#define MX_WAS_SUPER 2
//#define MX_WAS_SUPER 2
#endif

View File

@ -406,37 +406,20 @@ void MathMacroTemplate::SetMacroFocus(int &idx, int x, int y)
/* -------------------------- MathMacroTable -----------------------*/
MathMacroTable::MathMacroTable(int n) : max_macros(n)
{
macro_table = new MathMacroTemplateP[max_macros];
num_macros = 0;
}
MathMacroTable::~MathMacroTable()
{
delete[] macro_table;
}
// The search is currently linear but will be binary or hash, later.
MathMacroTemplate * MathMacroTable::getTemplate(string const & name) const
{
for (int i = 0; i < num_macros; ++i) {
if (name == macro_table[i]->GetName())
return macro_table[i];
}
return 0;
for (size_type i = 0; i < macro_table.size(); ++i) {
if (name == macro_table[i]->GetName())
return macro_table[i];
}
return 0;
}
void MathMacroTable::addTemplate(MathMacroTemplate * m)
{
if (num_macros < max_macros)
macro_table[num_macros++] = m;
else
lyxerr << "Error (MathMacroTable::addTemplate): "
"Macro table exhausted!" << endl;
macro_table.push_back(m);
}
@ -531,5 +514,5 @@ void MathMacroTable::builtinMacros()
}
MathMacroTable MathMacroTable::mathMTable(255);
MathMacroTable MathMacroTable::mathMTable;
bool MathMacroTable::built = false;

View File

@ -190,11 +190,6 @@ typedef MathMacroTemplate * MathMacroTemplateP;
///
class MathMacroTable {
public:
///
explicit
MathMacroTable(int);
///
~MathMacroTable();
///
void addTemplate(MathMacroTemplate *);
///
@ -210,11 +205,11 @@ public:
private:
///
const int max_macros;
typedef std::vector<MathMacroTemplateP> table_type;
///
typedef table_type::size_type size_type;
///
int num_macros;
///
MathMacroTemplateP * macro_table;
table_type macro_table;
};

View File

@ -16,6 +16,12 @@ MathedXIter::MathedXIter()
}
MathParInset * MathedXIter::getPar() const
{
return p;
}
void MathedXIter::GetPos(int & xx, int & yy) const
{
if (p)

View File

@ -7,107 +7,105 @@
struct MathedRowSt;
/**
A graphic iterator (updates position.) Used for
metrics and updating cursor position
*/
A graphic iterator (updates position.) Used for
metrics and updating cursor position
*/
class MathedXIter: public MathedIter {
public:
///
MathedXIter();
//
MathedXIter(MathParInset *);
///
void SetData(MathParInset *);
///
MathParInset * getPar() const { return p; }
///
bool Next();
///
bool Prev();
///
bool Up();
///
bool Down();
///
bool goNextColumn();
///
void GoLast();
///
void GoBegin();
///
void Adjust();
///
inline
void GetPos(int &, int &) const;
///
inline
void GetIncPos(int &, int &) const;
///
string const GetString() const;
///
int GetX() const;
///
int GetY() const;
///
void subMetrics(int, int);
///
void fitCoord(int, int);
///
void getAD(int & a, int & d) const;
/// Create a new row and insert #ncols# tabs.
void addRow();
///
void delRow();
///
bool setLabel(string const & label);
///
static string error_label;
///
string const & getLabel() const;
///
bool setNumbered(bool);
public:
///
MathedXIter();
//
MathedXIter(MathParInset *);
///
void SetData(MathParInset *);
///
MathParInset * getPar() const;
///
bool Next();
///
bool Prev();
///
bool Up();
///
bool Down();
///
bool goNextColumn();
///
void GoLast();
///
void GoBegin();
///
void Adjust();
///
void GetPos(int &, int &) const;
///
void GetIncPos(int &, int &) const;
///
string const GetString() const;
///
int GetX() const;
///
int GetY() const;
///
void subMetrics(int, int);
///
void fitCoord(int, int);
///
void getAD(int & a, int & d) const;
///
void setTab(int, int);
/// Merge the array at current position
void Merge(MathedArray *);
/// Delete every object from current position to pos2
void Clean(int pos2);
///
MathedRowSt * adjustVerticalSt();
/// Create a new row and insert #ncols# tabs.
void addRow();
///
void delRow();
///
bool setLabel(string const & label);
///
static string error_label;
///
string const & getLabel() const;
///
bool setNumbered(bool);
///
void setTab(int, int);
/// Merge the array at current position
void Merge(MathedArray *);
/// Delete every object from current position to pos2
void Clean(int pos2);
///
MathedRowSt * adjustVerticalSt();
private:
/// This function is not recursive, as MathPar::Metrics is
void IMetrics(int, int &, int &, int &);
/// Font size (display, text, script, script2)
int size;
/// current position
mutable int x;
///
int y;
///
MathParInset * p;
// Limits auxiliary variables
/// Position and max width of a script
int sx, sw;
/// true= center, false= left align (default)
bool limits;
/// Type of previous script
short s_type;
///
void ipush();
///
void ipop();
/// This function is not recursive, as MathPar::Metrics is
void IMetrics(int, int &, int &, int &);
/// Font size (display, text, script, script2)
int size;
/// current position
mutable int x;
///
int y;
///
MathParInset * p;
// Limits auxiliary variables
/// Position and max width of a script
int sx;
///
int sw;
/// true= center, false= left align (default)
bool limits;
/// Type of previous script
short s_type;
///
void ipush();
///
void ipop();
protected:
///
MathedRowSt * crow;
///
MathedRowSt * crow;
private:
///
friend class MathedCursor;
///
friend class MathedCursor;
};
#endif