mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-04 08:37:52 +00:00
make the new code from Juergen compile and some small fixes to the same code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@572 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d6fa7c567c
commit
9cdcc41498
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2000-02-25 Lars Gullik Bjønnes <larsbj@lyx.org>
|
||||||
|
|
||||||
|
* src/insets/insettext.h: small change to get the new files from
|
||||||
|
Juergen to compile (use "string", not "class string").
|
||||||
|
|
||||||
|
* src/insets/insettext.[Ch], src/insets/insertert.[Ch]: use string
|
||||||
|
const & as parameter to LocalDispatch, use LyXFont const & as
|
||||||
|
paramter to some other func. This also had impacto on lyxinsets.h
|
||||||
|
and the two mathed insets.
|
||||||
|
|
||||||
2000-02-24 Juergen Vigna <jug@sad.it>
|
2000-02-24 Juergen Vigna <jug@sad.it>
|
||||||
|
|
||||||
* src/buffer.C:
|
* src/buffer.C:
|
||||||
|
@ -133,10 +133,12 @@ void UpdatableInset::SetFont(LyXFont const &, bool )
|
|||||||
|
|
||||||
/// An updatable inset could handle lyx editing commands
|
/// An updatable inset could handle lyx editing commands
|
||||||
#ifdef SCROLL_INSET
|
#ifdef SCROLL_INSET
|
||||||
UpdatableInset::RESULT UpdatableInset::LocalDispatch(BufferView *,
|
UpdatableInset::RESULT
|
||||||
int action, string arg)
|
UpdatableInset::LocalDispatch(BufferView *,
|
||||||
|
int action, string const & arg)
|
||||||
#else
|
#else
|
||||||
UpdatableInset::RESULT UpdatableInset::LocalDispatch(BufferView *, int, string)
|
UpdatableInset::RESULT
|
||||||
|
UpdatableInset::LocalDispatch(BufferView *, int, string const &)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifdef SCROLL_INSET
|
#ifdef SCROLL_INSET
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* LyX, The Document Processor
|
* LyX, The Document Processor
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 The LyX Team.
|
* Copyright 1998 The LyX Team.
|
||||||
*
|
*
|
||||||
*======================================================*/
|
*======================================================*/
|
||||||
|
|
||||||
@ -20,7 +20,8 @@
|
|||||||
#include "lyx_gui_misc.h"
|
#include "lyx_gui_misc.h"
|
||||||
|
|
||||||
|
|
||||||
InsetERT::InsetERT(Buffer * bf): InsetText(bf)
|
InsetERT::InsetERT(Buffer * bf)
|
||||||
|
: InsetText(bf)
|
||||||
{
|
{
|
||||||
closed = true;
|
closed = true;
|
||||||
nomotion = false;
|
nomotion = false;
|
||||||
@ -121,7 +122,8 @@ void InsetERT::draw_closed(Painter & pain, LyXFont const & f,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetERT::draw(Painter & pain, LyXFont const & f, int baseline, float & x) const
|
void InsetERT::draw(Painter & pain, LyXFont const & f,
|
||||||
|
int baseline, float & x) const
|
||||||
{
|
{
|
||||||
if (closed) {
|
if (closed) {
|
||||||
top_x = int(x);
|
top_x = int(x);
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* LyX, The Document Processor
|
* LyX, The Document Processor
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 The LyX Team.
|
* Copyright 1998 The LyX Team.
|
||||||
*
|
*
|
||||||
*======================================================
|
*======================================================
|
||||||
*/
|
*/
|
||||||
@ -74,13 +74,13 @@ protected:
|
|||||||
///
|
///
|
||||||
int width_closed(Painter &, LyXFont const & f) const;
|
int width_closed(Painter &, LyXFont const & f) const;
|
||||||
///
|
///
|
||||||
void draw_closed(Painter & pain, const LyXFont &, int , float &) const;
|
void draw_closed(Painter & pain, LyXFont const &, int , float &) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
bool
|
bool closed;
|
||||||
closed,
|
///
|
||||||
nomotion;
|
bool nomotion;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* LyX, The Document Processor
|
* LyX, The Document Processor
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 The LyX Team.
|
* Copyright 1998 The LyX Team.
|
||||||
*
|
*
|
||||||
* ======================================================
|
* ======================================================
|
||||||
*/
|
*/
|
||||||
@ -100,7 +100,7 @@ void InsetText::Write(ostream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::WriteParagraphData(ostream &os) const
|
void InsetText::WriteParagraphData(ostream & os) const
|
||||||
{
|
{
|
||||||
LyXFont font1 = LyXFont(LyXFont::ALL_INHERIT);
|
LyXFont font1 = LyXFont(LyXFont::ALL_INHERIT);
|
||||||
LyXFont font2;
|
LyXFont font2;
|
||||||
@ -127,7 +127,7 @@ void InsetText::WriteParagraphData(ostream &os) const
|
|||||||
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case LyXParagraph::META_INSET: {
|
case LyXParagraph::META_INSET: {
|
||||||
Inset *inset = par->GetInset(i);
|
Inset * inset = par->GetInset(i);
|
||||||
if (inset) {
|
if (inset) {
|
||||||
os << "\n\\begin_inset ";
|
os << "\n\\begin_inset ";
|
||||||
inset->Write(os);
|
inset->Write(os);
|
||||||
@ -187,7 +187,7 @@ void InsetText::Read(LyXLex & lex)
|
|||||||
continue;
|
continue;
|
||||||
else if (token[0] != '\\') {
|
else if (token[0] != '\\') {
|
||||||
int n = token.length();
|
int n = token.length();
|
||||||
for (int i=0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
par->InsertChar(pos, token[i]);
|
par->InsertChar(pos, token[i]);
|
||||||
par->SetFont(pos, font);
|
par->SetFont(pos, font);
|
||||||
++pos;
|
++pos;
|
||||||
@ -313,7 +313,9 @@ void InsetText::Read(LyXLex & lex)
|
|||||||
} else if (inscmd.getCmdName() == "ref" ||
|
} else if (inscmd.getCmdName() == "ref" ||
|
||||||
inscmd.getCmdName() == "pageref") {
|
inscmd.getCmdName() == "pageref") {
|
||||||
inset = new InsetRef(inscmd, buffer);
|
inset = new InsetRef(inscmd, buffer);
|
||||||
} else
|
}
|
||||||
|
#if 0 // Is this compatibility code needed (Lgb)
|
||||||
|
else
|
||||||
// The following three are only for compatibility
|
// The following three are only for compatibility
|
||||||
if (inscmd.getCmdName()=="-") {
|
if (inscmd.getCmdName()=="-") {
|
||||||
inset = new InsetSpecialChar(InsetSpecialChar::HYPHENATION);
|
inset = new InsetSpecialChar(InsetSpecialChar::HYPHENATION);
|
||||||
@ -323,6 +325,7 @@ void InsetText::Read(LyXLex & lex)
|
|||||||
inset = new InsetSpecialChar(InsetSpecialChar::LDOTS);
|
inset = new InsetSpecialChar(InsetSpecialChar::LDOTS);
|
||||||
} else
|
} else
|
||||||
inset = inscmd.Clone();
|
inset = inscmd.Clone();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (inset) {
|
if (inset) {
|
||||||
par->InsertChar(pos, LyXParagraph::META_INSET);
|
par->InsertChar(pos, LyXParagraph::META_INSET);
|
||||||
@ -410,19 +413,16 @@ int InsetText::getMaxWidth(UpdatableInset * inset) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::draw(Painter & pain,const LyXFont & f,int baseline,float & x) const
|
void InsetText::draw(Painter & pain, LyXFont const & f,
|
||||||
|
int baseline, float & x) const
|
||||||
{
|
{
|
||||||
unsigned int
|
|
||||||
r;
|
|
||||||
bool
|
|
||||||
do_reset_pos;
|
|
||||||
|
|
||||||
UpdatableInset::draw(pain, f, baseline, x);
|
UpdatableInset::draw(pain, f, baseline, x);
|
||||||
do_reset_pos = (x != top_x) || (baseline != top_baseline);
|
|
||||||
|
bool do_reset_pos = (x != top_x) || (baseline != top_baseline);
|
||||||
top_x = int(x);
|
top_x = int(x);
|
||||||
top_baseline = baseline;
|
top_baseline = baseline;
|
||||||
computeBaselines(baseline);
|
computeBaselines(baseline);
|
||||||
for(r=0; r<rows.size()-1; ++r) {
|
for(unsigned int r = 0; r < rows.size() - 1; ++r) {
|
||||||
drawRowSelection(pain, rows[r].pos, rows[r+1].pos, r,
|
drawRowSelection(pain, rows[r].pos, rows[r+1].pos, r,
|
||||||
rows[r].baseline, x);
|
rows[r].baseline, x);
|
||||||
drawRowText(pain, rows[r].pos, rows[r+1].pos, rows[r].baseline, x);
|
drawRowText(pain, rows[r].pos, rows[r+1].pos, rows[r].baseline, x);
|
||||||
@ -441,15 +441,8 @@ void InsetText::drawRowSelection(Painter & pain, int startpos, int endpos,
|
|||||||
{
|
{
|
||||||
if (!hasSelection())
|
if (!hasSelection())
|
||||||
return;
|
return;
|
||||||
int
|
|
||||||
p,
|
|
||||||
ssel_x, esel_x,
|
|
||||||
s_start, s_end;
|
|
||||||
LyXFont
|
|
||||||
font;
|
|
||||||
char
|
|
||||||
ch;
|
|
||||||
|
|
||||||
|
int s_start, s_end;
|
||||||
if (selection_start > selection_end) {
|
if (selection_start > selection_end) {
|
||||||
s_start = selection_end;
|
s_start = selection_end;
|
||||||
s_end = selection_start;
|
s_end = selection_start;
|
||||||
@ -459,13 +452,17 @@ void InsetText::drawRowSelection(Painter & pain, int startpos, int endpos,
|
|||||||
}
|
}
|
||||||
if ((s_start > endpos) || (s_end < startpos))
|
if ((s_start > endpos) || (s_end < startpos))
|
||||||
return;
|
return;
|
||||||
ssel_x = esel_x = int(x);
|
|
||||||
for(p=startpos; p < endpos; ++p) {
|
int esel_x;
|
||||||
|
int ssel_x = esel_x = int(x);
|
||||||
|
LyXFont font;
|
||||||
|
int p = startpos;
|
||||||
|
for(; p < endpos; ++p) {
|
||||||
if (p == s_start)
|
if (p == s_start)
|
||||||
ssel_x = int(x);
|
ssel_x = int(x);
|
||||||
if ((p >= s_start) && (p <= s_end))
|
if ((p >= s_start) && (p <= s_end))
|
||||||
esel_x = int(x);
|
esel_x = int(x);
|
||||||
ch = par->GetChar(p);
|
char ch = par->GetChar(p);
|
||||||
font = GetFont(par,p);
|
font = GetFont(par,p);
|
||||||
if (IsFloatChar(ch)) {
|
if (IsFloatChar(ch)) {
|
||||||
// skip for now
|
// skip for now
|
||||||
@ -493,15 +490,10 @@ void InsetText::drawRowText(Painter & pain, int startpos, int endpos,
|
|||||||
int baseline, float x) const
|
int baseline, float x) const
|
||||||
{
|
{
|
||||||
Assert(endpos <= par->Last());
|
Assert(endpos <= par->Last());
|
||||||
int
|
|
||||||
p;
|
for(int p = startpos; p < endpos; ++p) {
|
||||||
char
|
char ch = par->GetChar(p);
|
||||||
ch;
|
LyXFont font = GetFont(par,p);
|
||||||
LyXFont
|
|
||||||
font;
|
|
||||||
for(p=startpos; p < endpos; ++p) {
|
|
||||||
ch = par->GetChar(p);
|
|
||||||
font = GetFont(par,p);
|
|
||||||
if (IsFloatChar(ch)) {
|
if (IsFloatChar(ch)) {
|
||||||
// skip for now
|
// skip for now
|
||||||
} else if (ch == LyXParagraph::META_INSET) {
|
} else if (ch == LyXParagraph::META_INSET) {
|
||||||
@ -516,7 +508,7 @@ void InsetText::drawRowText(Painter & pain, int startpos, int endpos,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const char * InsetText::EditMessage() const
|
char const * InsetText::EditMessage() const
|
||||||
{
|
{
|
||||||
return _("Opened Text Inset");
|
return _("Opened Text Inset");
|
||||||
}
|
}
|
||||||
@ -536,7 +528,7 @@ void InsetText::Edit(BufferView * bv, int x, int y, unsigned int button)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::InsetUnlock(BufferView *bv)
|
void InsetText::InsetUnlock(BufferView * bv)
|
||||||
{
|
{
|
||||||
if (the_locking_inset)
|
if (the_locking_inset)
|
||||||
the_locking_inset->InsetUnlock(bv);
|
the_locking_inset->InsetUnlock(bv);
|
||||||
@ -564,6 +556,7 @@ bool InsetText::UnlockInsetInInset(BufferView * bv, Inset * inset, bool lr)
|
|||||||
return the_locking_inset->UnlockInsetInInset(bv, inset,lr);
|
return the_locking_inset->UnlockInsetInInset(bv, inset,lr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetText::UpdateInsetInInset(BufferView * bv, Inset * inset)
|
bool InsetText::UpdateInsetInInset(BufferView * bv, Inset * inset)
|
||||||
{
|
{
|
||||||
if (!the_locking_inset)
|
if (!the_locking_inset)
|
||||||
@ -628,12 +621,12 @@ void InsetText::InsetButtonPress(BufferView * bv, int x, int y, int button)
|
|||||||
void InsetText::InsetMotionNotify(BufferView * bv, int x, int y, int button)
|
void InsetText::InsetMotionNotify(BufferView * bv, int x, int y, int button)
|
||||||
{
|
{
|
||||||
if (the_locking_inset) {
|
if (the_locking_inset) {
|
||||||
the_locking_inset->InsetMotionNotify(bv, x-inset_x, y-inset_y,button);
|
the_locking_inset->InsetMotionNotify(bv, x - inset_x,
|
||||||
|
y - inset_y,button);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!no_selection) {
|
if (!no_selection) {
|
||||||
int
|
int old = selection_end;
|
||||||
old = selection_end;
|
|
||||||
setPos(bv, x, y, false);
|
setPos(bv, x, y, false);
|
||||||
selection_end = actpos;
|
selection_end = actpos;
|
||||||
if (old != selection_end)
|
if (old != selection_end)
|
||||||
@ -653,7 +646,7 @@ void InsetText::InsetKeyPress(XKeyEvent * xke)
|
|||||||
|
|
||||||
|
|
||||||
UpdatableInset::RESULT InsetText::LocalDispatch(BufferView * bv,
|
UpdatableInset::RESULT InsetText::LocalDispatch(BufferView * bv,
|
||||||
int action, string arg)
|
int action, string const & arg)
|
||||||
{
|
{
|
||||||
no_selection = false;
|
no_selection = false;
|
||||||
if (UpdatableInset::LocalDispatch(bv, action, arg)) {
|
if (UpdatableInset::LocalDispatch(bv, action, arg)) {
|
||||||
@ -775,7 +768,7 @@ UpdatableInset::RESULT InsetText::LocalDispatch(BufferView * bv,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case LFUN_HOME:
|
case LFUN_HOME:
|
||||||
for(;actpos > rows[actrow].pos;--actpos)
|
for(; actpos > rows[actrow].pos; --actpos)
|
||||||
cx -= SingleWidth(bv, par, actpos);
|
cx -= SingleWidth(bv, par, actpos);
|
||||||
cx -= SingleWidth(bv, par, actpos);
|
cx -= SingleWidth(bv, par, actpos);
|
||||||
if (hasSelection()) {
|
if (hasSelection()) {
|
||||||
@ -786,7 +779,7 @@ UpdatableInset::RESULT InsetText::LocalDispatch(BufferView * bv,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case LFUN_END:
|
case LFUN_END:
|
||||||
for(;actpos < rows[actrow+1].pos;++actpos)
|
for(; actpos < rows[actrow + 1].pos; ++actpos)
|
||||||
cx += SingleWidth(bv, par, actpos);
|
cx += SingleWidth(bv, par, actpos);
|
||||||
if (hasSelection()) {
|
if (hasSelection()) {
|
||||||
selection_start = selection_end = actpos;
|
selection_start = selection_end = actpos;
|
||||||
@ -820,21 +813,17 @@ UpdatableInset::RESULT InsetText::LocalDispatch(BufferView * bv,
|
|||||||
|
|
||||||
int InsetText::Latex(ostream &os, signed char fragile) const
|
int InsetText::Latex(ostream &os, signed char fragile) const
|
||||||
{
|
{
|
||||||
string
|
string fstr;
|
||||||
fstr;
|
|
||||||
int
|
|
||||||
i;
|
|
||||||
|
|
||||||
i = Latex(fstr, fragile);
|
int i = Latex(fstr, fragile);
|
||||||
os << fstr.c_str();
|
os << fstr;
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int InsetText::Latex(string & file, signed char /* fragile */) const
|
int InsetText::Latex(string & file, signed char /* fragile */) const
|
||||||
{
|
{
|
||||||
TexRow
|
TexRow texrow;
|
||||||
texrow;
|
|
||||||
|
|
||||||
return par->SimpleTeXOnePar(file, texrow);
|
return par->SimpleTeXOnePar(file, texrow);
|
||||||
}
|
}
|
||||||
@ -847,12 +836,10 @@ void InsetText::Validate(LaTeXFeatures & features) const
|
|||||||
|
|
||||||
|
|
||||||
// Returns the width of a character at a certain spot
|
// Returns the width of a character at a certain spot
|
||||||
int InsetText::SingleWidth(BufferView *bv, LyXParagraph * par, int pos)
|
int InsetText::SingleWidth(BufferView * bv, LyXParagraph * par, int pos)
|
||||||
{
|
{
|
||||||
LyXFont
|
LyXFont font = GetFont(par, pos);
|
||||||
font = GetFont(par, pos);
|
char c = par->GetChar(pos);
|
||||||
char
|
|
||||||
c = par->GetChar(pos);
|
|
||||||
|
|
||||||
// The most common case is handled first (Asger)
|
// The most common case is handled first (Asger)
|
||||||
if (IsPrintable(c)) {
|
if (IsPrintable(c)) {
|
||||||
@ -875,10 +862,8 @@ int InsetText::SingleWidth(BufferView *bv, LyXParagraph * par, int pos)
|
|||||||
void InsetText::SingleHeight(BufferView * bv, LyXParagraph * par,int pos,
|
void InsetText::SingleHeight(BufferView * bv, LyXParagraph * par,int pos,
|
||||||
int & asc, int & desc)
|
int & asc, int & desc)
|
||||||
{
|
{
|
||||||
LyXFont
|
LyXFont font = GetFont(par, pos);
|
||||||
font = GetFont(par, pos);
|
char c = par->GetChar(pos);
|
||||||
char
|
|
||||||
c = par->GetChar(pos);
|
|
||||||
|
|
||||||
asc = desc = 0;
|
asc = desc = 0;
|
||||||
// The most common case is handled first (Asger)
|
// The most common case is handled first (Asger)
|
||||||
@ -1003,13 +988,11 @@ void InsetText::ToggleInsetCursor(BufferView * bv)
|
|||||||
the_locking_inset->ToggleInsetCursor(bv);
|
the_locking_inset->ToggleInsetCursor(bv);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int
|
|
||||||
asc,desc;
|
|
||||||
LyXFont
|
|
||||||
font = GetFont(par, actpos);
|
|
||||||
|
|
||||||
asc = font.maxAscent();
|
LyXFont font = GetFont(par, actpos);
|
||||||
desc = font.maxDescent();
|
|
||||||
|
int asc = font.maxAscent();
|
||||||
|
int desc = font.maxDescent();
|
||||||
|
|
||||||
if (cursor_visible)
|
if (cursor_visible)
|
||||||
bv->hideLockedInsetCursor();
|
bv->hideLockedInsetCursor();
|
||||||
@ -1022,13 +1005,10 @@ void InsetText::ToggleInsetCursor(BufferView * bv)
|
|||||||
void InsetText::ShowInsetCursor(BufferView * bv)
|
void InsetText::ShowInsetCursor(BufferView * bv)
|
||||||
{
|
{
|
||||||
if (!cursor_visible) {
|
if (!cursor_visible) {
|
||||||
int
|
LyXFont font = GetFont(par, actpos);
|
||||||
asc,desc;
|
|
||||||
LyXFont
|
|
||||||
font = GetFont(par, actpos);
|
|
||||||
|
|
||||||
asc = font.maxAscent();
|
int asc = font.maxAscent();
|
||||||
desc = font.maxDescent();
|
int desc = font.maxDescent();
|
||||||
bv->fitLockedInsetCursor(cx, cy, asc, desc);
|
bv->fitLockedInsetCursor(cx, cy, asc, desc);
|
||||||
bv->showLockedInsetCursor(cx, cy, asc, desc);
|
bv->showLockedInsetCursor(cx, cy, asc, desc);
|
||||||
cursor_visible = true;
|
cursor_visible = true;
|
||||||
@ -1045,15 +1025,14 @@ void InsetText::HideInsetCursor(BufferView * bv)
|
|||||||
|
|
||||||
void InsetText::setPos(BufferView * bv, int x, int y, bool activate_inset)
|
void InsetText::setPos(BufferView * bv, int x, int y, bool activate_inset)
|
||||||
{
|
{
|
||||||
int
|
int ox = x,
|
||||||
ox = x,
|
|
||||||
oy = y;
|
oy = y;
|
||||||
// search right X-pos x==0 -> top_x
|
// search right X-pos x==0 -> top_x
|
||||||
actpos = actrow = 0;
|
actpos = actrow = 0;
|
||||||
cy = top_baseline;
|
cy = top_baseline;
|
||||||
y += cy;
|
y += cy;
|
||||||
for(unsigned int i=1;
|
for(unsigned int i = 1;
|
||||||
((cy+rows[i-1].desc) < y) && (i < rows.size()-1); ++i) {
|
((cy + rows[i - 1].desc) < y) && (i < rows.size() - 1); ++i) {
|
||||||
cy = rows[i].baseline;
|
cy = rows[i].baseline;
|
||||||
actpos = rows[i].pos;
|
actpos = rows[i].pos;
|
||||||
actrow = i;
|
actrow = i;
|
||||||
@ -1061,13 +1040,12 @@ void InsetText::setPos(BufferView * bv, int x, int y, bool activate_inset)
|
|||||||
cy -= top_baseline;
|
cy -= top_baseline;
|
||||||
cx = top_x;
|
cx = top_x;
|
||||||
x += top_x;
|
x += top_x;
|
||||||
int
|
|
||||||
sw, swh;
|
|
||||||
|
|
||||||
sw = swh = SingleWidth(bv, par,actpos);
|
int swh;
|
||||||
|
int sw = swh = SingleWidth(bv, par,actpos);
|
||||||
if (par->GetChar(actpos)!=LyXParagraph::META_INSET)
|
if (par->GetChar(actpos)!=LyXParagraph::META_INSET)
|
||||||
swh /= 2;
|
swh /= 2;
|
||||||
while ((actpos < (rows[actrow+1].pos-1)) && ((cx+swh) < x)) {
|
while ((actpos < (rows[actrow + 1].pos - 1)) && ((cx + swh) < x)) {
|
||||||
cx += sw;
|
cx += sw;
|
||||||
++actpos;
|
++actpos;
|
||||||
sw = swh = SingleWidth(bv, par,actpos);
|
sw = swh = SingleWidth(bv, par,actpos);
|
||||||
@ -1075,8 +1053,9 @@ void InsetText::setPos(BufferView * bv, int x, int y, bool activate_inset)
|
|||||||
swh /= 2;
|
swh /= 2;
|
||||||
}
|
}
|
||||||
if (activate_inset && par->GetChar(actpos)==LyXParagraph::META_INSET) {
|
if (activate_inset && par->GetChar(actpos)==LyXParagraph::META_INSET) {
|
||||||
the_locking_inset=(UpdatableInset*)par->GetInset(actpos);
|
the_locking_inset =
|
||||||
inset_x = cx-top_x;
|
static_cast<UpdatableInset*>(par->GetInset(actpos));
|
||||||
|
inset_x = cx - top_x;
|
||||||
inset_y = cy;
|
inset_y = cy;
|
||||||
inset_pos = actpos;
|
inset_pos = actpos;
|
||||||
the_locking_inset->Edit(bv, ox - inset_x, oy - inset_y, 0);
|
the_locking_inset->Edit(bv, ox - inset_x, oy - inset_y, 0);
|
||||||
@ -1089,8 +1068,9 @@ bool InsetText::moveRight(BufferView * bv, bool activate_inset)
|
|||||||
if (actpos >= par->Last())
|
if (actpos >= par->Last())
|
||||||
return false;
|
return false;
|
||||||
if (activate_inset && par->GetChar(actpos)==LyXParagraph::META_INSET) {
|
if (activate_inset && par->GetChar(actpos)==LyXParagraph::META_INSET) {
|
||||||
the_locking_inset=(UpdatableInset*)par->GetInset(actpos);
|
the_locking_inset =
|
||||||
inset_x = cx-top_x;
|
static_cast<UpdatableInset*>(par->GetInset(actpos));
|
||||||
|
inset_x = cx - top_x;
|
||||||
inset_y = cy;
|
inset_y = cy;
|
||||||
inset_pos = actpos;
|
inset_pos = actpos;
|
||||||
the_locking_inset->Edit(bv, 0, 0, 0);
|
the_locking_inset->Edit(bv, 0, 0, 0);
|
||||||
@ -1108,13 +1088,14 @@ bool InsetText::moveLeft(BufferView * bv, bool activate_inset)
|
|||||||
return false;
|
return false;
|
||||||
--actpos;
|
--actpos;
|
||||||
if (activate_inset && par->GetChar(actpos)==LyXParagraph::META_INSET) {
|
if (activate_inset && par->GetChar(actpos)==LyXParagraph::META_INSET) {
|
||||||
the_locking_inset=(UpdatableInset*)par->GetInset(actpos);
|
the_locking_inset =
|
||||||
|
static_cast<UpdatableInset*>(par->GetInset(actpos));
|
||||||
resetPos(bv);
|
resetPos(bv);
|
||||||
inset_x = cx-top_x;
|
inset_x = cx - top_x;
|
||||||
inset_y = cy;
|
inset_y = cy;
|
||||||
inset_pos = actpos;
|
inset_pos = actpos;
|
||||||
the_locking_inset->Edit(bv, the_locking_inset->
|
the_locking_inset->Edit(bv, the_locking_inset->
|
||||||
width(bv->getPainter(),GetFont(par,actpos)),
|
width(bv->getPainter(), GetFont(par,actpos)),
|
||||||
0, 0);
|
0, 0);
|
||||||
} else {
|
} else {
|
||||||
resetPos(bv);
|
resetPos(bv);
|
||||||
@ -1127,31 +1108,29 @@ bool InsetText::moveUp(BufferView * bv, bool activate_inset)
|
|||||||
{
|
{
|
||||||
if (!actrow)
|
if (!actrow)
|
||||||
return false;
|
return false;
|
||||||
cy = rows[actrow-1].baseline - top_baseline;
|
cy = rows[actrow - 1].baseline - top_baseline;
|
||||||
setPos(bv, cx-top_x, cy, activate_inset);
|
setPos(bv, cx - top_x, cy, activate_inset);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetText::moveDown(BufferView * bv, bool activate_inset)
|
bool InsetText::moveDown(BufferView * bv, bool activate_inset)
|
||||||
{
|
{
|
||||||
if (actrow >= int(rows.size()-2))
|
if (actrow >= int(rows.size() - 2))
|
||||||
return false;
|
return false;
|
||||||
cy = rows[actrow+1].baseline - top_baseline;
|
cy = rows[actrow + 1].baseline - top_baseline;
|
||||||
setPos(bv, cx-top_x, cy, activate_inset);
|
setPos(bv, cx - top_x, cy, activate_inset);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::resetPos(BufferView * bv)
|
void InsetText::resetPos(BufferView * bv)
|
||||||
{
|
{
|
||||||
int
|
int old_pos = actpos;
|
||||||
i,
|
|
||||||
old_pos = actpos;
|
|
||||||
|
|
||||||
cy = top_baseline;
|
cy = top_baseline;
|
||||||
actrow = 0;
|
actrow = 0;
|
||||||
for(i=0; rows[i].pos <= actpos; ++i) {
|
for(int i = 0; rows[i].pos <= actpos; ++i) {
|
||||||
cy = rows[i].baseline;
|
cy = rows[i].baseline;
|
||||||
actrow = i;
|
actrow = i;
|
||||||
}
|
}
|
||||||
@ -1189,8 +1168,8 @@ bool InsetText::InsertInset(BufferView * bv, Inset * inset)
|
|||||||
par->InsertInset(actpos, inset);
|
par->InsertInset(actpos, inset);
|
||||||
computeTextRows(bv);
|
computeTextRows(bv);
|
||||||
bv->updateInset(this, true);
|
bv->updateInset(this, true);
|
||||||
the_locking_inset = (UpdatableInset*)inset;
|
the_locking_inset = static_cast<UpdatableInset*>(inset);
|
||||||
inset_x = cx-top_x;
|
inset_x = cx - top_x;
|
||||||
inset_y = cy;
|
inset_y = cy;
|
||||||
inset_pos = actpos;
|
inset_pos = actpos;
|
||||||
inset->Edit(bv, 0, 0, 0);
|
inset->Edit(bv, 0, 0, 0);
|
||||||
@ -1204,7 +1183,7 @@ UpdatableInset * InsetText::GetLockingInset()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::SetFont(BufferView * bv, LyXFont const & font,bool toggleall)
|
void InsetText::SetFont(BufferView * bv, LyXFont const & font, bool toggleall)
|
||||||
{
|
{
|
||||||
// if there is no selection just set the current_font
|
// if there is no selection just set the current_font
|
||||||
if (!hasSelection()) {
|
if (!hasSelection()) {
|
||||||
@ -1225,9 +1204,8 @@ void InsetText::SetFont(BufferView * bv, LyXFont const & font,bool toggleall)
|
|||||||
real_current_font.realize(layoutfont);
|
real_current_font.realize(layoutfont);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int
|
|
||||||
s_start, s_end;
|
int s_start, s_end;
|
||||||
|
|
||||||
if (selection_start > selection_end) {
|
if (selection_start > selection_end) {
|
||||||
s_start = selection_end;
|
s_start = selection_end;
|
||||||
s_end = selection_start;
|
s_end = selection_start;
|
||||||
@ -1235,8 +1213,7 @@ void InsetText::SetFont(BufferView * bv, LyXFont const & font,bool toggleall)
|
|||||||
s_start = selection_start;
|
s_start = selection_start;
|
||||||
s_end = selection_end;
|
s_end = selection_end;
|
||||||
}
|
}
|
||||||
LyXFont
|
LyXFont newfont;
|
||||||
newfont;
|
|
||||||
while(s_start < s_end) {
|
while(s_start < s_end) {
|
||||||
newfont = GetFont(par,s_start);
|
newfont = GetFont(par,s_start);
|
||||||
newfont.update(font, toggleall);
|
newfont.update(font, toggleall);
|
||||||
@ -1248,9 +1225,11 @@ void InsetText::SetFont(BufferView * bv, LyXFont const & font,bool toggleall)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::SetCharFont(int pos, LyXFont font)
|
void InsetText::SetCharFont(int pos, LyXFont const & f)
|
||||||
{
|
{
|
||||||
/* let the insets convert their font */
|
/* let the insets convert their font */
|
||||||
|
LyXFont font(f);
|
||||||
|
|
||||||
if (par->GetChar(pos) == LyXParagraph::META_INSET) {
|
if (par->GetChar(pos) == LyXParagraph::META_INSET) {
|
||||||
if (par->GetInset(pos))
|
if (par->GetInset(pos))
|
||||||
font = par->GetInset(pos)->ConvertFont(font);
|
font = par->GetInset(pos)->ConvertFont(font);
|
||||||
@ -1279,23 +1258,20 @@ void InsetText::SetCharFont(int pos, LyXFont font)
|
|||||||
|
|
||||||
void InsetText::computeTextRows(BufferView * bv)
|
void InsetText::computeTextRows(BufferView * bv)
|
||||||
{
|
{
|
||||||
int
|
int p,
|
||||||
p,
|
|
||||||
nwp = 0,
|
nwp = 0,
|
||||||
asc = 0,
|
asc = 0,
|
||||||
desc = 0,
|
desc = 0,
|
||||||
oasc = 0,
|
oasc = 0,
|
||||||
odesc = 0,
|
odesc = 0,
|
||||||
owidth = 0,
|
owidth = 0,
|
||||||
width,
|
|
||||||
wordAscent,
|
wordAscent,
|
||||||
wordDescent;
|
wordDescent;
|
||||||
row_struct
|
row_struct row;
|
||||||
row;
|
|
||||||
|
|
||||||
if (rows.size())
|
if (rows.size())
|
||||||
rows.erase(rows.begin(),rows.end());
|
rows.erase(rows.begin(),rows.end());
|
||||||
width = wordAscent = wordDescent = 0;
|
int width = wordAscent = wordDescent = 0;
|
||||||
insetWidth = maxAscent = maxDescent = 0;
|
insetWidth = maxAscent = maxDescent = 0;
|
||||||
row.asc = 0;
|
row.asc = 0;
|
||||||
row.desc = 0;
|
row.desc = 0;
|
||||||
@ -1318,11 +1294,9 @@ void InsetText::computeTextRows(BufferView * bv)
|
|||||||
rows.push_back(row);
|
rows.push_back(row);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bool
|
bool is_first_word_in_row = true;
|
||||||
is_first_word_in_row = true;
|
|
||||||
|
|
||||||
int
|
int cw,
|
||||||
cw,
|
|
||||||
lastWordWidth=0;
|
lastWordWidth=0;
|
||||||
|
|
||||||
for(p = 0; p < par->Last(); ++p) {
|
for(p = 0; p < par->Last(); ++p) {
|
||||||
@ -1447,6 +1421,7 @@ void InsetText::computeTextRows(BufferView * bv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::computeBaselines(int baseline) const
|
void InsetText::computeBaselines(int baseline) const
|
||||||
{
|
{
|
||||||
rows[0].baseline = baseline;
|
rows[0].baseline = baseline;
|
||||||
@ -1456,6 +1431,7 @@ void InsetText::computeBaselines(int baseline) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::init(BufferView * bv)
|
void InsetText::init(BufferView * bv)
|
||||||
{
|
{
|
||||||
// if (init_inset)
|
// if (init_inset)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* LyX, The Document Processor
|
* LyX, The Document Processor
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 The LyX Team.
|
* Copyright 1998 The LyX Team.
|
||||||
*
|
*
|
||||||
*======================================================
|
*======================================================
|
||||||
*/
|
*/
|
||||||
@ -56,15 +56,15 @@ public:
|
|||||||
///
|
///
|
||||||
int getMaxWidth(UpdatableInset *) const;
|
int getMaxWidth(UpdatableInset *) const;
|
||||||
///
|
///
|
||||||
void draw(Painter & pain, const LyXFont &, int , float &) const;
|
void draw(Painter & pain, LyXFont const &, int , float &) const;
|
||||||
///
|
///
|
||||||
const char * EditMessage() const;
|
char const * EditMessage() const;
|
||||||
///
|
///
|
||||||
void Edit(BufferView *, int, int, unsigned int);
|
void Edit(BufferView *, int, int, unsigned int);
|
||||||
///
|
///
|
||||||
void InsetUnlock(BufferView *);
|
void InsetUnlock(BufferView *);
|
||||||
///
|
///
|
||||||
bool UnlockInsetInInset(BufferView *, Inset *, bool lr=false);
|
bool UnlockInsetInInset(BufferView *, Inset *, bool lr = false);
|
||||||
///
|
///
|
||||||
//void UpdateLocal(bool flag=true);
|
//void UpdateLocal(bool flag=true);
|
||||||
///
|
///
|
||||||
@ -78,15 +78,15 @@ public:
|
|||||||
///
|
///
|
||||||
void InsetKeyPress(XKeyEvent *);
|
void InsetKeyPress(XKeyEvent *);
|
||||||
///
|
///
|
||||||
UpdatableInset::RESULT LocalDispatch(BufferView *, int, string);
|
UpdatableInset::RESULT LocalDispatch(BufferView *, int, string const &);
|
||||||
///
|
///
|
||||||
int Latex(ostream &, signed char) const;
|
int Latex(ostream &, signed char) const;
|
||||||
///
|
///
|
||||||
int Latex(string &, signed char) const;
|
int Latex(string &, signed char) const;
|
||||||
///
|
///
|
||||||
int Linuxdoc(class string &) const { return true; }
|
int Linuxdoc(string &) const { return 0; }
|
||||||
///
|
///
|
||||||
int DocBook(class string &) const { return true; }
|
int DocBook(string &) const { return 0; }
|
||||||
///
|
///
|
||||||
void Validate(LaTeXFeatures & features) const;
|
void Validate(LaTeXFeatures & features) const;
|
||||||
///
|
///
|
||||||
@ -155,7 +155,7 @@ private:
|
|||||||
///
|
///
|
||||||
void HideInsetCursor(BufferView *);
|
void HideInsetCursor(BufferView *);
|
||||||
///
|
///
|
||||||
void setPos(BufferView *, int x, int y, bool activate_inset=true);
|
void setPos(BufferView *, int x, int y, bool activate_inset = true);
|
||||||
///
|
///
|
||||||
bool moveRight(BufferView *, bool activate_inset = true);
|
bool moveRight(BufferView *, bool activate_inset = true);
|
||||||
bool moveLeft(BufferView *, bool activate_inset = true);
|
bool moveLeft(BufferView *, bool activate_inset = true);
|
||||||
@ -163,9 +163,9 @@ private:
|
|||||||
bool moveDown(BufferView *, bool activate_inset = true);
|
bool moveDown(BufferView *, bool activate_inset = true);
|
||||||
bool Delete();
|
bool Delete();
|
||||||
///
|
///
|
||||||
bool hasSelection() const {return (selection_start != selection_end);}
|
bool hasSelection() const { return selection_start != selection_end; }
|
||||||
///
|
///
|
||||||
void SetCharFont(int pos, LyXFont font);
|
void SetCharFont(int pos, LyXFont const & font);
|
||||||
///
|
///
|
||||||
string getText(int);
|
string getText(int);
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ public:
|
|||||||
dispatched by lower level insets
|
dispatched by lower level insets
|
||||||
*/
|
*/
|
||||||
enum RESULT {
|
enum RESULT {
|
||||||
UNDISPATCHED=0,
|
UNDISPATCHED = 0,
|
||||||
DISPATCHED,
|
DISPATCHED,
|
||||||
FINISHED
|
FINISHED
|
||||||
};
|
};
|
||||||
@ -234,17 +234,18 @@ public:
|
|||||||
///
|
///
|
||||||
virtual int InsetInInsetY() { return 0; }
|
virtual int InsetInInsetY() { return 0; }
|
||||||
///
|
///
|
||||||
virtual bool UpdateInsetInInset(BufferView *, Inset *) {return false;}
|
virtual bool UpdateInsetInInset(BufferView *, Inset *)
|
||||||
|
{ return false; }
|
||||||
///
|
///
|
||||||
virtual bool UnlockInsetInInset(BufferView *,Inset *,bool /*lr*/=false)
|
virtual bool UnlockInsetInInset(BufferView *, Inset *,
|
||||||
{return false;}
|
bool /*lr*/=false)
|
||||||
|
{ return false; }
|
||||||
/// An updatable inset could handle lyx editing commands
|
/// An updatable inset could handle lyx editing commands
|
||||||
virtual RESULT LocalDispatch(BufferView *, int, string);
|
virtual RESULT LocalDispatch(BufferView *, int, string const &);
|
||||||
///
|
///
|
||||||
virtual bool isCursorVisible() const { return cursor_visible; }
|
virtual bool isCursorVisible() const { return cursor_visible; }
|
||||||
///
|
///
|
||||||
virtual int getMaxWidth(UpdatableInset *) const { return -1; }
|
virtual int getMaxWidth(UpdatableInset *) const { return -1; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
///
|
///
|
||||||
// virtual void UpdateLocal(bool flag=true);
|
// virtual void UpdateLocal(bool flag=true);
|
||||||
|
@ -548,7 +548,7 @@ string LyXFunc::Dispatch(int ac,
|
|||||||
inset->Edit(owner->view(),slx,sly,0);
|
inset->Edit(owner->view(),slx,sly,0);
|
||||||
return string();
|
return string();
|
||||||
} else if (owner->view()->the_locking_inset->
|
} else if (owner->view()->the_locking_inset->
|
||||||
LocalDispatch(owner->view(),action,
|
LocalDispatch(owner->view(), action,
|
||||||
argument) ==
|
argument) ==
|
||||||
UpdatableInset::DISPATCHED)
|
UpdatableInset::DISPATCHED)
|
||||||
return string();
|
return string();
|
||||||
@ -2128,10 +2128,11 @@ string LyXFunc::Dispatch(int ac,
|
|||||||
if (owner->view()->available()) {
|
if (owner->view()->available()) {
|
||||||
owner->view()->
|
owner->view()->
|
||||||
open_new_inset(new InsetFormula(false));
|
open_new_inset(new InsetFormula(false));
|
||||||
owner->view()->
|
owner->view()
|
||||||
the_locking_inset->LocalDispatch(owner->view(),
|
->the_locking_inset
|
||||||
action,
|
->LocalDispatch(owner->view(),
|
||||||
argument.c_str());
|
action,
|
||||||
|
argument);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -712,8 +712,9 @@ bool InsetFormula::SetNumber(bool numbf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
UpdatableInset::RESULT InsetFormula::LocalDispatch(BufferView * bv,
|
UpdatableInset::RESULT
|
||||||
int action, string arg)
|
InsetFormula::LocalDispatch(BufferView * bv,
|
||||||
|
int action, string const & arg)
|
||||||
{
|
{
|
||||||
// extern char *dispatch_result;
|
// extern char *dispatch_result;
|
||||||
MathedTextCodes varcode = LM_TC_MIN;
|
MathedTextCodes varcode = LM_TC_MIN;
|
||||||
|
@ -99,7 +99,7 @@ public:
|
|||||||
void InsetUnlock(BufferView *);
|
void InsetUnlock(BufferView *);
|
||||||
|
|
||||||
/// To allow transparent use of math editing functions
|
/// To allow transparent use of math editing functions
|
||||||
virtual RESULT LocalDispatch(BufferView *, int, string);
|
virtual RESULT LocalDispatch(BufferView *, int, string const &);
|
||||||
|
|
||||||
///
|
///
|
||||||
void InsertSymbol(BufferView *, char const *);
|
void InsertSymbol(BufferView *, char const *);
|
||||||
|
@ -193,8 +193,9 @@ void InsetFormulaMacro::InsetUnlock(BufferView * bv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
UpdatableInset::RESULT InsetFormulaMacro::LocalDispatch(BufferView * bv,
|
UpdatableInset::RESULT
|
||||||
int action, string arg)
|
InsetFormulaMacro::LocalDispatch(BufferView * bv,
|
||||||
|
int action, string const & arg)
|
||||||
{
|
{
|
||||||
if (action == LFUN_MATH_MACROARG) {
|
if (action == LFUN_MATH_MACROARG) {
|
||||||
int i = atoi(arg.c_str()) - 1;
|
int i = atoi(arg.c_str()) - 1;
|
||||||
|
@ -65,7 +65,7 @@ public:
|
|||||||
///
|
///
|
||||||
void InsetUnlock(BufferView *);
|
void InsetUnlock(BufferView *);
|
||||||
///
|
///
|
||||||
RESULT LocalDispatch(BufferView *, int, string);
|
RESULT LocalDispatch(BufferView *, int, string const &);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user