mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
fix the resize bug, make some more inset funcs const, cleanup in lyxscreen, painter, workarea
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@561 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
a0cf758d5a
commit
5ba861bb09
@ -1,3 +1,10 @@
|
||||
2000-02-18 Lars Gullik Bjønnes <larsbj@lyx.org>
|
||||
|
||||
* WorkArea, Painter, LyXScreen: Fixed the crash that occured on
|
||||
resize due to wrong pixmap beeing used. Also took the opurtunity
|
||||
to make the LyXScreen stateless on regard to WorkArea and some
|
||||
general cleanup in the same files.
|
||||
|
||||
2000-02-17 Lars Gullik Bjønnes <larsbj@lyx.org>
|
||||
|
||||
* src/Makefile.am: add missing direction.h
|
||||
|
@ -185,7 +185,7 @@ dnl Check the version of g++
|
||||
case $gxx_version in
|
||||
2.7*) CXXFLAGS="$lyx_opt";;
|
||||
2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti";;
|
||||
2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
|
||||
2.95.*) CXXFLAGS="-g $lyx_opt -Woverloaded-virtual -fno-rtti -fno-exceptions";;
|
||||
*2.91.*) CXXFLAGS="-g $lyx_opt -Wno-return-type -fno-exceptions -fno-rtti";;
|
||||
*) CXXFLAGS="-g $lyx_opt -fno-exceptions -fno-rtti";;
|
||||
esac
|
||||
|
@ -185,7 +185,7 @@ dnl Check the version of g++
|
||||
case $gxx_version in
|
||||
2.7*) CXXFLAGS="$lyx_opt";;
|
||||
2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti";;
|
||||
2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
|
||||
2.95.*) CXXFLAGS="-g $lyx_opt -Woverloaded-virtual -fno-rtti -fno-exceptions";;
|
||||
*2.91.*) CXXFLAGS="-g $lyx_opt -Wno-return-type -fno-exceptions -fno-rtti";;
|
||||
*) CXXFLAGS="-g $lyx_opt -fno-exceptions -fno-rtti";;
|
||||
esac
|
||||
|
@ -32,6 +32,7 @@ using std::for_each;
|
||||
#include "LyXView.h"
|
||||
#include "lyxfunc.h"
|
||||
#include "insets/lyxinset.h"
|
||||
#include "insets/insetbib.h"
|
||||
#include "minibuffer.h"
|
||||
#include "lyxscreen.h"
|
||||
|
||||
@ -70,8 +71,8 @@ BufferView::BufferView(LyXView * o, int xpos, int ypos,
|
||||
{
|
||||
buffer_ = 0;
|
||||
text = 0;
|
||||
screen = 0;
|
||||
workarea = new WorkArea(this, xpos, ypos, width, height);
|
||||
screen = 0;
|
||||
timer_cursor = 0;
|
||||
create_view();
|
||||
current_scrollbar_value = 0;
|
||||
@ -170,14 +171,7 @@ void BufferView::updateScreen()
|
||||
{
|
||||
// Regenerate the screen.
|
||||
delete screen;
|
||||
screen = new LyXScreen(this,
|
||||
workarea->getWin(),
|
||||
workarea->getPixmap(),
|
||||
workarea->workWidth(),
|
||||
workarea->height(),
|
||||
workarea->xpos(),
|
||||
workarea->ypos(),
|
||||
text);
|
||||
screen = new LyXScreen(*workarea, text);
|
||||
}
|
||||
|
||||
|
||||
|
@ -709,7 +709,7 @@ void BufferView::showLockedInsetCursor(long x, long y, int asc, int desc)
|
||||
void BufferView::hideLockedInsetCursor()
|
||||
{
|
||||
if (the_locking_inset && available()) {
|
||||
screen->HideManualCursor();
|
||||
screen->HideCursor();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "lyxfont.h"
|
||||
#include "support/LAssert.h"
|
||||
#include "support/lstrings.h"
|
||||
#include "WorkArea.h"
|
||||
|
||||
Painter::Painter(WorkArea & wa)
|
||||
: PainterBase(wa)
|
||||
@ -54,6 +55,12 @@ Painter::~Painter() {
|
||||
}
|
||||
|
||||
|
||||
Drawable Painter::drawable() const
|
||||
{
|
||||
return owner.getPixmap();
|
||||
}
|
||||
|
||||
|
||||
/* Basic drawing routines */
|
||||
|
||||
extern bool Lgb_bug_find_hack;
|
||||
@ -64,10 +71,10 @@ PainterBase & Painter::point(int x, int y, LColor::color c)
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "point not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr.debug() << "Painter drawable: " << drawable << endl;
|
||||
lyxerr.debug() << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
XDrawPoint(display, drawable, getGCForeground(c), x, y);
|
||||
XDrawPoint(display, drawable(), getGCForeground(c), x, y);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@ -81,10 +88,10 @@ PainterBase & Painter::line(int x1, int y1, int x2, int y2,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "line not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr.debug() << "Painter drawable: " << drawable << endl;
|
||||
lyxerr.debug() << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
XDrawLine(display, drawable,
|
||||
XDrawLine(display, drawable(),
|
||||
getGCLinepars(ls, lw, col), x1, y1, x2, y2);
|
||||
return *this;
|
||||
}
|
||||
@ -99,7 +106,7 @@ PainterBase & Painter::lines(int const * xp, int const * yp, int np,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "lines not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr.debug() << "Painter drawable: " << drawable << endl;
|
||||
lyxerr.debug() << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
#ifndef HAVE_AUTO_PTR
|
||||
@ -112,7 +119,7 @@ PainterBase & Painter::lines(int const * xp, int const * yp, int np,
|
||||
points[i].y = yp[i];
|
||||
}
|
||||
|
||||
XDrawLines(display, drawable, getGCLinepars(ls, lw, col),
|
||||
XDrawLines(display, drawable(), getGCLinepars(ls, lw, col),
|
||||
points, np, CoordModeOrigin);
|
||||
|
||||
#ifndef HAVE_AUTO_PTR
|
||||
@ -131,10 +138,10 @@ PainterBase & Painter::rectangle(int x, int y, int w, int h,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "rectangle not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
XDrawRectangle(display, drawable, getGCLinepars(ls, lw, col),
|
||||
XDrawRectangle(display, drawable(), getGCLinepars(ls, lw, col),
|
||||
x, y, w, h);
|
||||
return *this;
|
||||
}
|
||||
@ -147,10 +154,10 @@ PainterBase & Painter::fillRectangle(int x, int y, int w, int h,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "fillrectangle not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
XFillRectangle(display, drawable, getGCForeground(col), x, y, w, h);
|
||||
XFillRectangle(display, drawable(), getGCForeground(col), x, y, w, h);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@ -162,7 +169,7 @@ PainterBase & Painter::fillPolygon(int const * xp, int const * yp, int np,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr <<"fillpolygon not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
#ifndef HAVE_AUTO_PTR
|
||||
@ -175,7 +182,7 @@ PainterBase & Painter::fillPolygon(int const * xp, int const * yp, int np,
|
||||
points[i].y = yp[i];
|
||||
}
|
||||
|
||||
XFillPolygon(display, drawable, getGCForeground(col), points, np,
|
||||
XFillPolygon(display, drawable(), getGCForeground(col), points, np,
|
||||
Nonconvex, CoordModeOrigin);
|
||||
#ifndef HAVE_AUTO_PTR
|
||||
delete[] points;
|
||||
@ -192,10 +199,10 @@ PainterBase & Painter::arc(int x, int y,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "arc not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
XDrawArc(display, drawable, getGCForeground(col),
|
||||
XDrawArc(display, drawable(), getGCForeground(col),
|
||||
x, y, w, h, a1, a2);
|
||||
return *this;
|
||||
}
|
||||
@ -211,7 +218,7 @@ PainterBase & Painter::segments(int const * x1, int const * y1,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "segments not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
#ifndef HAVE_AUTO_PTR
|
||||
@ -225,7 +232,7 @@ PainterBase & Painter::segments(int const * x1, int const * y1,
|
||||
s[i].x2 = x2[i];
|
||||
s[i].y2 = y2[i];
|
||||
}
|
||||
XDrawSegments(display, drawable, getGCLinepars(ls, lw, col), s, ns);
|
||||
XDrawSegments(display, drawable(), getGCLinepars(ls, lw, col), s, ns);
|
||||
|
||||
#ifndef HAVE_AUTO_PTR
|
||||
delete [] s;
|
||||
@ -240,14 +247,14 @@ PainterBase & Painter::pixmap(int x, int y, int w, int h, Pixmap bitmap)
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "workAreaExpose not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
XGCValues val;
|
||||
val.function = GXcopy;
|
||||
GC gc = XCreateGC(display, drawable,
|
||||
GC gc = XCreateGC(display, drawable(),
|
||||
GCFunction, &val);
|
||||
XCopyArea(display, bitmap, drawable, gc,
|
||||
XCopyArea(display, bitmap, drawable(), gc,
|
||||
0, 0, w, h, x, y);
|
||||
XFreeGC(display, gc);
|
||||
return *this;
|
||||
@ -274,12 +281,12 @@ PainterBase & Painter::text(int x, int y, char const * s, int ls,
|
||||
if (!Lgb_bug_find_hack)
|
||||
lyxerr << "text not called from "
|
||||
"workarea::workhandler\n";
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
GC gc = getGCForeground(f.realColor());
|
||||
XSetFont(display, gc, f.getFontID());
|
||||
XDrawString(display, drawable, gc, x, y, s, ls);
|
||||
XDrawString(display, drawable(), gc, x, y, s, ls);
|
||||
underline(f, x, y, this->width(s, ls, f));
|
||||
return *this;
|
||||
}
|
||||
@ -303,7 +310,7 @@ void Painter::underline(LyXFont const & f, int x, int y, int width)
|
||||
GC Painter::getGCForeground(LColor::color c)
|
||||
{
|
||||
if (lyxerr.debugging()) {
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
if (colorGCcache[c] != 0) return colorGCcache[c];
|
||||
@ -387,7 +394,7 @@ GC Painter::getGCForeground(LColor::color c)
|
||||
}
|
||||
|
||||
val.function = GXcopy;
|
||||
return colorGCcache[c] = XCreateGC(display, drawable,
|
||||
return colorGCcache[c] = XCreateGC(display, drawable(),
|
||||
GCForeground | GCFunction, &val);
|
||||
}
|
||||
|
||||
@ -397,7 +404,7 @@ GC Painter::getGCLinepars(enum line_style ls,
|
||||
enum line_width lw, LColor::color c)
|
||||
{
|
||||
if (lyxerr.debugging()) {
|
||||
lyxerr << "Painter drawable: " << drawable << endl;
|
||||
lyxerr << "Painter drawable: " << drawable() << endl;
|
||||
}
|
||||
|
||||
int index = lw + (ls << 1) + (c << 3);
|
||||
@ -425,7 +432,7 @@ GC Painter::getGCLinepars(enum line_style ls,
|
||||
val.function = GXcopy;
|
||||
|
||||
return lineGCcache[index] =
|
||||
XCreateGC(display, drawable,
|
||||
XCreateGC(display, drawable(),
|
||||
GCForeground | GCLineStyle | GCLineWidth |
|
||||
GCCapStyle | GCJoinStyle | GCFunction, &val);
|
||||
}
|
||||
|
@ -109,9 +109,6 @@ protected:
|
||||
///
|
||||
PainterBase & setDisplay(Display * d) { display = d; return *this; }
|
||||
|
||||
///
|
||||
PainterBase & setDrawable(Drawable d) { drawable = d; return *this; }
|
||||
|
||||
/// Get foreground color in ordinary GC
|
||||
GC getGCForeground(LColor::color c);
|
||||
|
||||
@ -124,8 +121,10 @@ protected:
|
||||
/**@Low level X parameters */
|
||||
///
|
||||
Display * display;
|
||||
|
||||
///
|
||||
Drawable drawable;
|
||||
Drawable drawable() const;
|
||||
|
||||
///
|
||||
Colormap colormap;
|
||||
|
||||
|
@ -192,7 +192,7 @@ public:
|
||||
int & width = PainterBase::dummy1,
|
||||
int & ascent = PainterBase::dummy2,
|
||||
int & descent = PainterBase::dummy3);
|
||||
private:
|
||||
protected:
|
||||
WorkArea & owner;
|
||||
};
|
||||
|
||||
|
@ -164,7 +164,6 @@ WorkArea::WorkArea(BufferView * o, int xpos, int ypos, int width, int height)
|
||||
|
||||
// setup the painter
|
||||
painter_.setDisplay(fl_display);
|
||||
painter_.setDrawable(workareapixmap);
|
||||
|
||||
// We add this object as late as possible to avoit problems
|
||||
// with drawing.
|
||||
@ -223,9 +222,6 @@ void WorkArea::resize(int xpos, int ypos, int width, int height)
|
||||
// Create the workarea pixmap
|
||||
createPixmap(width - 15 - 2 * bw, height - 2 * bw);
|
||||
|
||||
// reset the painter
|
||||
painter_.setDrawable(workareapixmap);
|
||||
|
||||
// the free object
|
||||
fl_set_object_geometry(work_area, xpos + bw, ypos + bw,
|
||||
width - 15 - 2 * bw,
|
||||
|
@ -1097,7 +1097,7 @@ void InsetFig::draw(Painter & pain, LyXFont const & f,
|
||||
}
|
||||
|
||||
|
||||
void InsetFig::Write(ostream & os)
|
||||
void InsetFig::Write(ostream & os) const
|
||||
{
|
||||
Regenerate();
|
||||
os << "Figure size " << wid << " " << hgh << "\n";
|
||||
@ -1200,7 +1200,7 @@ void InsetFig::Read(LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
int InsetFig::Latex(ostream & os, signed char /* fragile*/ )
|
||||
int InsetFig::Latex(ostream & os, signed char /* fragile*/ ) const
|
||||
{
|
||||
Regenerate();
|
||||
if (!cmd.empty()) os << cmd << " ";
|
||||
@ -1208,7 +1208,7 @@ int InsetFig::Latex(ostream & os, signed char /* fragile*/ )
|
||||
}
|
||||
|
||||
|
||||
int InsetFig::Latex(string & file, signed char /* fragile*/ )
|
||||
int InsetFig::Latex(string & file, signed char /* fragile*/ ) const
|
||||
{
|
||||
Regenerate();
|
||||
file += cmd + ' ';
|
||||
@ -1216,13 +1216,13 @@ int InsetFig::Latex(string & file, signed char /* fragile*/ )
|
||||
}
|
||||
|
||||
|
||||
int InsetFig::Linuxdoc(string &/*file*/)
|
||||
int InsetFig::Linuxdoc(string &/*file*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetFig::DocBook(string & file)
|
||||
int InsetFig::DocBook(string & file) const
|
||||
{
|
||||
string figurename = fname;
|
||||
|
||||
@ -1330,7 +1330,7 @@ Inset::Code InsetFig::LyxCode() const
|
||||
}
|
||||
|
||||
|
||||
void InsetFig::Regenerate()
|
||||
void InsetFig::Regenerate() const
|
||||
{
|
||||
string cmdbuf;
|
||||
string resizeW, resizeH;
|
||||
|
@ -34,17 +34,17 @@ public:
|
||||
void draw(Painter &, LyXFont const & font,
|
||||
int baseline, float & x) const;
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
/// Updates needed features for this inset.
|
||||
void Validate(LaTeXFeatures & features) const;
|
||||
|
||||
@ -117,7 +117,7 @@ public:
|
||||
float angle;
|
||||
|
||||
/// graphics command, latex version
|
||||
string cmd;
|
||||
mutable string cmd;
|
||||
|
||||
/// Caption for subfigure package
|
||||
string subcaption;
|
||||
@ -139,7 +139,7 @@ private:
|
||||
/// recompute screen params
|
||||
void Recompute();
|
||||
/// regenerate \includegraphics{} command
|
||||
void Regenerate();
|
||||
void Regenerate() const;
|
||||
/// regenerate \inlcudegraphics{} command in temporary buffer
|
||||
void TempRegenerate();
|
||||
/// get sizes from .eps file
|
||||
|
@ -226,7 +226,7 @@ void InsetBibKey::setCounter(int c)
|
||||
// as a LyX 2.x command, and lyxlex is not enough smart to understand
|
||||
// real LaTeX commands. Yes, that could be fixed, but would be a waste
|
||||
// of time cause LyX3 won't use lyxlex anyway. (ale)
|
||||
void InsetBibKey::Write(ostream & os)
|
||||
void InsetBibKey::Write(ostream & os) const
|
||||
{
|
||||
string s;
|
||||
if (!options.empty()) {
|
||||
@ -296,7 +296,7 @@ string InsetBibtex::getScreenLabel() const
|
||||
}
|
||||
|
||||
|
||||
int InsetBibtex::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetBibtex::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
string bib;
|
||||
signed char dummy = 0;
|
||||
@ -306,7 +306,7 @@ int InsetBibtex::Latex(ostream & os, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetBibtex::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetBibtex::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
// this looks like an horrible hack and it is :) The problem
|
||||
// is that owner is not initialized correctly when the bib
|
||||
|
@ -64,7 +64,7 @@ public:
|
||||
///
|
||||
Inset * Clone() const { return new InsetBibKey(this); }
|
||||
/// Currently \bibitem is used as a LyX2.x command, so we need this method.
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
virtual string getScreenLabel() const;
|
||||
///
|
||||
@ -111,9 +111,9 @@ public:
|
||||
///
|
||||
void Edit(int, int);
|
||||
///
|
||||
int Latex(ostream &, signed char);
|
||||
int Latex(ostream &, signed char) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
string getKeys(char delim);
|
||||
///
|
||||
@ -128,7 +128,7 @@ public:
|
||||
bool display() const { return true; }
|
||||
private:
|
||||
///
|
||||
Buffer * owner;
|
||||
mutable Buffer * owner;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -164,7 +164,7 @@ void InsetCommand::draw(Painter & pain, LyXFont const &,
|
||||
|
||||
|
||||
// In lyxf3 this will be just LaTeX
|
||||
void InsetCommand::Write(ostream & os)
|
||||
void InsetCommand::Write(ostream & os) const
|
||||
{
|
||||
os << "LatexCommand " << getCommand() << "\n";
|
||||
}
|
||||
@ -244,27 +244,27 @@ void InsetCommand::Read(LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
int InsetCommand::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetCommand::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
os << getCommand();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetCommand::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetCommand::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
file += getCommand();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetCommand::Linuxdoc(string &/*file*/)
|
||||
int InsetCommand::Linuxdoc(string &/*file*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetCommand::DocBook(string &/*file*/)
|
||||
int InsetCommand::DocBook(string &/*file*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -41,19 +41,19 @@ public:
|
||||
///
|
||||
void draw(Painter &, LyXFont const &, int baseline, float & x) const;
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
/// Parse the command.
|
||||
void scanCommand(string const & cmd);
|
||||
/// Will not be used when lyxf3
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
virtual int Latex(ostream &, signed char fragile);
|
||||
virtual int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
virtual int Latex(string & file, signed char fragile);
|
||||
virtual int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
virtual int Linuxdoc(string & file);
|
||||
virtual int Linuxdoc(string & file) const;
|
||||
///
|
||||
virtual int DocBook(string & file);
|
||||
virtual int DocBook(string & file) const;
|
||||
///
|
||||
Inset * Clone() const;
|
||||
///
|
||||
|
@ -91,7 +91,7 @@ void InsetError::draw(Painter & pain, LyXFont const & font,
|
||||
}
|
||||
|
||||
|
||||
void InsetError::Write(ostream &)
|
||||
void InsetError::Write(ostream &) const
|
||||
{
|
||||
}
|
||||
|
||||
@ -101,25 +101,25 @@ void InsetError::Read(LyXLex &)
|
||||
}
|
||||
|
||||
|
||||
int InsetError::Latex(ostream &, signed char /*fragile*/)
|
||||
int InsetError::Latex(ostream &, signed char /*fragile*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetError::Latex(string &, signed char /*fragile*/)
|
||||
int InsetError::Latex(string &, signed char /*fragile*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetError::Linuxdoc(string &)
|
||||
int InsetError::Linuxdoc(string &) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetError::DocBook(string &)
|
||||
int InsetError::DocBook(string &) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -44,17 +44,17 @@ public:
|
||||
void draw(Painter &, LyXFont const & font,
|
||||
int baseline, float & x) const;
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
///
|
||||
bool AutoDelete() const;
|
||||
/// what appears in the minibuffer when opening
|
||||
|
@ -260,7 +260,7 @@ void InsetInclude::Edit(int, int)
|
||||
}
|
||||
|
||||
|
||||
void InsetInclude::Write(ostream & os)
|
||||
void InsetInclude::Write(ostream & os) const
|
||||
{
|
||||
os << "Include " << getCommand() << "\n";
|
||||
}
|
||||
@ -316,7 +316,7 @@ bool InsetInclude::loadIfNeeded() const
|
||||
}
|
||||
|
||||
|
||||
int InsetInclude::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetInclude::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
string include_file;
|
||||
signed char dummy = 0;
|
||||
@ -326,7 +326,7 @@ int InsetInclude::Latex(ostream & os, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetInclude::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetInclude::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
string writefile, incfile;
|
||||
|
||||
|
@ -54,13 +54,13 @@ public:
|
||||
return 1;
|
||||
}
|
||||
/// With lyx3 we won't overload these 3 methods
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
void Read(LyXLex &);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
|
||||
///
|
||||
void Validate(LaTeXFeatures &) const;
|
||||
|
@ -93,7 +93,7 @@ void InsetInfo::draw(Painter & pain, LyXFont const & f,
|
||||
}
|
||||
|
||||
|
||||
void InsetInfo::Write(ostream & os)
|
||||
void InsetInfo::Write(ostream & os) const
|
||||
{
|
||||
os << "Info " << contents;
|
||||
}
|
||||
@ -126,25 +126,25 @@ void InsetInfo::Read(LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
int InsetInfo::Latex(ostream &, signed char /*fragile*/)
|
||||
int InsetInfo::Latex(ostream &, signed char /*fragile*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetInfo::Latex(string &, signed char /*fragile*/)
|
||||
int InsetInfo::Latex(string &, signed char /*fragile*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetInfo::Linuxdoc(string &)
|
||||
int InsetInfo::Linuxdoc(string &) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetInfo::DocBook(string &)
|
||||
int InsetInfo::DocBook(string &) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -45,17 +45,17 @@ public:
|
||||
///
|
||||
void draw(Painter &, LyXFont const &, int baseline, float & x) const;
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
/// what appears in the minibuffer when opening
|
||||
char const * EditMessage() const {return _("Opened note");}
|
||||
///
|
||||
|
@ -43,28 +43,28 @@ string InsetLabel::getLabel(int) const
|
||||
}
|
||||
|
||||
|
||||
int InsetLabel::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetLabel::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
os << escape(getCommand());
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetLabel::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetLabel::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
file += escape(getCommand());
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetLabel::Linuxdoc(string & file)
|
||||
int InsetLabel::Linuxdoc(string & file) const
|
||||
{
|
||||
file += "<label id=\"" + getContents() +"\" >";
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetLabel::DocBook(string & file)
|
||||
int InsetLabel::DocBook(string & file) const
|
||||
{
|
||||
file += "<anchor id=\"" + getContents() +"\" >";
|
||||
return 0;
|
||||
|
@ -39,13 +39,13 @@ public:
|
||||
///
|
||||
unsigned char Editable() const { return 0; }
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
private:
|
||||
/// This function escapes 8-bit characters
|
||||
string escape(string const &) const;
|
||||
|
@ -731,7 +731,7 @@ void InsetLatexAccent::draw(Painter & pain, LyXFont const & font,
|
||||
}
|
||||
|
||||
|
||||
void InsetLatexAccent::Write(ostream & os)
|
||||
void InsetLatexAccent::Write(ostream & os) const
|
||||
{
|
||||
os << "\\i " << contents << "\n";
|
||||
}
|
||||
@ -745,28 +745,28 @@ void InsetLatexAccent::Read(LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
int InsetLatexAccent::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetLatexAccent::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
os << contents;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetLatexAccent::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetLatexAccent::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
file += contents;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetLatexAccent::Linuxdoc(string & file)
|
||||
int InsetLatexAccent::Linuxdoc(string & file) const
|
||||
{
|
||||
file += contents;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetLatexAccent::DocBook(string & file)
|
||||
int InsetLatexAccent::DocBook(string & file) const
|
||||
{
|
||||
file += contents;
|
||||
return 0;
|
||||
|
@ -49,17 +49,17 @@ public:
|
||||
bool DisplayISO8859_9(Painter &, LyXFont const & font,
|
||||
int baseline, float & x) const;
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
///
|
||||
bool Deletable() const;
|
||||
///
|
||||
|
@ -46,7 +46,7 @@ void InsetParent::Edit(int, int)
|
||||
|
||||
|
||||
// LaTeX must just ignore this command
|
||||
int InsetParent::Latex(ostream & os, signed char fragile)
|
||||
int InsetParent::Latex(ostream & os, signed char fragile) const
|
||||
{
|
||||
os << "%%#{lyx}";
|
||||
InsetCommand::Latex(os, fragile);
|
||||
@ -55,7 +55,7 @@ int InsetParent::Latex(ostream & os, signed char fragile)
|
||||
|
||||
|
||||
// LaTeX must just ignore this command
|
||||
int InsetParent::Latex(string & file, signed char fragile)
|
||||
int InsetParent::Latex(string & file, signed char fragile) const
|
||||
{
|
||||
file += "%%#{lyx}";
|
||||
InsetCommand::Latex(file, fragile);
|
||||
|
@ -31,9 +31,9 @@ public:
|
||||
///
|
||||
InsetParent(string const & fn, Buffer * owner = 0);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
Inset * Clone() const { return new InsetParent(getContents()); }
|
||||
///
|
||||
|
@ -204,7 +204,7 @@ void InsetQuotes::draw(Painter & pain, LyXFont const & font,
|
||||
}
|
||||
|
||||
|
||||
void InsetQuotes::Write(ostream & os)
|
||||
void InsetQuotes::Write(ostream & os) const
|
||||
{
|
||||
string text;
|
||||
text += language_char[language];
|
||||
@ -221,7 +221,7 @@ void InsetQuotes::Read(LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
int InsetQuotes::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetQuotes::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
string quote;
|
||||
int res = Latex(quote, 0);
|
||||
@ -230,7 +230,7 @@ int InsetQuotes::Latex(ostream & os, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetQuotes::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetQuotes::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
string doclang =
|
||||
current_view->buffer()->GetLanguage();
|
||||
@ -264,7 +264,7 @@ int InsetQuotes::Latex(string & file, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetQuotes::Linuxdoc(string & file)
|
||||
int InsetQuotes::Linuxdoc(string & file) const
|
||||
{
|
||||
file += "\"";
|
||||
|
||||
@ -272,7 +272,7 @@ int InsetQuotes::Linuxdoc(string & file)
|
||||
}
|
||||
|
||||
|
||||
int InsetQuotes::DocBook(string & file)
|
||||
int InsetQuotes::DocBook(string & file) const
|
||||
{
|
||||
if(times == InsetQuotes::DoubleQ) {
|
||||
if (side == InsetQuotes::LeftQ)
|
||||
|
@ -81,17 +81,17 @@ public:
|
||||
///
|
||||
LyXFont ConvertFont(LyXFont font);
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
///
|
||||
void Validate(LaTeXFeatures &) const;
|
||||
///
|
||||
|
@ -67,7 +67,7 @@ string InsetRef::getScreenLabel() const
|
||||
}
|
||||
|
||||
|
||||
int InsetRef::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetRef::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
if(getOptions().empty())
|
||||
os << escape(getCommand());
|
||||
@ -81,7 +81,7 @@ int InsetRef::Latex(ostream & os, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetRef::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetRef::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
if(getOptions().empty())
|
||||
file += escape(getCommand());
|
||||
@ -95,7 +95,7 @@ int InsetRef::Latex(string & file, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetRef::Linuxdoc(string & file)
|
||||
int InsetRef::Linuxdoc(string & file) const
|
||||
{
|
||||
file += "<ref id=\"" + getContents()
|
||||
+ "\" name=\""+ getOptions() +"\" >" ;
|
||||
@ -104,7 +104,7 @@ int InsetRef::Linuxdoc(string & file)
|
||||
}
|
||||
|
||||
|
||||
int InsetRef::DocBook(string & file)
|
||||
int InsetRef::DocBook(string & file) const
|
||||
{
|
||||
file += "<link linkend=\"" + getContents()
|
||||
+ "\">"+ getOptions() +"</link>" ;
|
||||
|
@ -61,13 +61,13 @@ public:
|
||||
///
|
||||
void gotoLabel();
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
private:
|
||||
/// This function escapes 8-bit characters
|
||||
string escape(string const &) const;
|
||||
|
@ -110,7 +110,7 @@ void InsetSpecialChar::draw(Painter & pain, LyXFont const & f,
|
||||
|
||||
|
||||
// In lyxf3 this will be just LaTeX
|
||||
void InsetSpecialChar::Write(ostream & os)
|
||||
void InsetSpecialChar::Write(ostream & os) const
|
||||
{
|
||||
string command;
|
||||
switch (kind) {
|
||||
@ -142,7 +142,7 @@ void InsetSpecialChar::Read(LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
int InsetSpecialChar::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetSpecialChar::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
string command;
|
||||
signed char dummy = 0;
|
||||
@ -152,7 +152,7 @@ int InsetSpecialChar::Latex(ostream & os, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetSpecialChar::Latex(string & file, signed char /*fragile*/)
|
||||
int InsetSpecialChar::Latex(string & file, signed char /*fragile*/) const
|
||||
{
|
||||
switch (kind) {
|
||||
case HYPHENATION: file += "\\-"; break;
|
||||
@ -164,7 +164,7 @@ int InsetSpecialChar::Latex(string & file, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetSpecialChar::Linuxdoc(string & file)
|
||||
int InsetSpecialChar::Linuxdoc(string & file) const
|
||||
{
|
||||
switch (kind) {
|
||||
case HYPHENATION: file += ""; break;
|
||||
@ -176,7 +176,7 @@ int InsetSpecialChar::Linuxdoc(string & file)
|
||||
}
|
||||
|
||||
|
||||
int InsetSpecialChar::DocBook(string & file)
|
||||
int InsetSpecialChar::DocBook(string & file) const
|
||||
{
|
||||
switch (kind) {
|
||||
case HYPHENATION: file += ""; break;
|
||||
|
@ -49,17 +49,17 @@ public:
|
||||
///
|
||||
void draw(Painter &, LyXFont const &, int baseline, float & x) const;
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
/// Will not be used when lyxf3
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
///
|
||||
Inset * Clone() const;
|
||||
///
|
||||
|
@ -162,7 +162,7 @@ string InsetUrl::getScreenLabel() const
|
||||
}
|
||||
|
||||
|
||||
int InsetUrl::Latex(ostream & os, signed char fragile)
|
||||
int InsetUrl::Latex(ostream & os, signed char fragile) const
|
||||
{
|
||||
string latex_output;
|
||||
int res = Latex(latex_output, fragile);
|
||||
@ -172,7 +172,7 @@ int InsetUrl::Latex(ostream & os, signed char fragile)
|
||||
}
|
||||
|
||||
|
||||
int InsetUrl::Latex(string & file, signed char fragile)
|
||||
int InsetUrl::Latex(string & file, signed char fragile) const
|
||||
{
|
||||
if (!getOptions().empty())
|
||||
file += getOptions() + ' ';
|
||||
@ -185,7 +185,7 @@ int InsetUrl::Latex(string & file, signed char fragile)
|
||||
}
|
||||
|
||||
|
||||
int InsetUrl::Linuxdoc(string & file)
|
||||
int InsetUrl::Linuxdoc(string & file) const
|
||||
{
|
||||
file += "<"+ getCmdName() +
|
||||
" url=\"" + getContents()+"\"" +
|
||||
@ -195,7 +195,7 @@ int InsetUrl::Linuxdoc(string & file)
|
||||
}
|
||||
|
||||
|
||||
int InsetUrl::DocBook(string & file)
|
||||
int InsetUrl::DocBook(string & file) const
|
||||
{
|
||||
file += "<ulink url=\"" + getContents() + "\">" +
|
||||
getOptions() +"</ulink>";
|
||||
|
@ -70,13 +70,13 @@ public:
|
||||
///
|
||||
void gotoLabel();
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
///
|
||||
static void CloseUrlCB(FL_OBJECT *, long data);
|
||||
private:
|
||||
|
@ -99,20 +99,20 @@ public:
|
||||
///
|
||||
virtual bool AutoDelete() const;
|
||||
///
|
||||
virtual void Write(ostream &) = 0;
|
||||
virtual void Write(ostream &) const = 0;
|
||||
///
|
||||
virtual void Read(LyXLex & lex) = 0;
|
||||
/** returns the number of rows (\n's) of generated tex code.
|
||||
fragile != 0 means, that the inset should take care about
|
||||
fragile commands by adding a \protect before.
|
||||
*/
|
||||
virtual int Latex(ostream &, signed char fragile) = 0;
|
||||
virtual int Latex(ostream &, signed char fragile) const = 0;
|
||||
///
|
||||
virtual int Latex(string & file, signed char fragile) = 0;
|
||||
virtual int Latex(string & file, signed char fragile) const = 0;
|
||||
///
|
||||
virtual int Linuxdoc(string & /*file*/) = 0;
|
||||
virtual int Linuxdoc(string & /*file*/) const = 0;
|
||||
///
|
||||
virtual int DocBook(string & /*file*/) = 0;
|
||||
virtual int DocBook(string & /*file*/) const = 0;
|
||||
/// Updates needed features for this inset.
|
||||
virtual void Validate(LaTeXFeatures & features) const;
|
||||
///
|
||||
|
@ -180,7 +180,7 @@ public:
|
||||
LyXFont(LyXFont::FONT_INIT3);
|
||||
|
||||
/// LyXFont x, y; x = y;
|
||||
LyXFont& operator=(LyXFont const & x);
|
||||
LyXFont & operator=(LyXFont const & x);
|
||||
|
||||
/// Decreases font size by one
|
||||
LyXFont & decSize();
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include <list>
|
||||
|
||||
#include "insets/lyxinset.h"
|
||||
#include "insets/insetbib.h"
|
||||
#include "table.h"
|
||||
#include "vspace.h"
|
||||
#include "layout.h"
|
||||
@ -31,6 +30,7 @@ class BufferParams;
|
||||
class LyXBuffer;
|
||||
class TexRow;
|
||||
struct LaTeXFeatures;
|
||||
class InsetBibKey;
|
||||
|
||||
using std::list;
|
||||
|
||||
|
@ -23,7 +23,7 @@ class LyXText;
|
||||
struct Row;
|
||||
typedef unsigned short Dimension;
|
||||
|
||||
class BufferView;
|
||||
class WorkArea;
|
||||
|
||||
/** The class LyXScreen is used for the main Textbody.
|
||||
Concretely, the screen is held in a pixmap. This pixmap is kept up to
|
||||
@ -33,15 +33,7 @@ class BufferView;
|
||||
class LyXScreen {
|
||||
public:
|
||||
///
|
||||
LyXScreen(BufferView *, Window window,
|
||||
Pixmap p,
|
||||
Dimension width,
|
||||
Dimension height,
|
||||
Dimension offset_x,
|
||||
Dimension offset_y,
|
||||
LyXText * text_ptr);
|
||||
///
|
||||
~LyXScreen();
|
||||
LyXScreen(WorkArea &, LyXText * text_ptr);
|
||||
|
||||
/** Draws the screen form textposition y. Uses as much of
|
||||
the already printed pixmap as possible */
|
||||
@ -62,8 +54,6 @@ public:
|
||||
void CursorToggle();
|
||||
///
|
||||
void ShowManualCursor(long x, long y, int asc, int desc);
|
||||
///
|
||||
void HideManualCursor();
|
||||
/// returns 1 if first has changed, otherwise 0
|
||||
int FitManualCursor(long, long, int, int);
|
||||
///
|
||||
@ -98,13 +88,11 @@ private:
|
||||
void DrawOneRow(Row * row, long & y_text);
|
||||
|
||||
///
|
||||
BufferView * owner;
|
||||
WorkArea & owner;
|
||||
|
||||
///
|
||||
LyXText * text;
|
||||
|
||||
///
|
||||
Pixmap foreground;
|
||||
///
|
||||
Pixmap cursor_pixmap;
|
||||
///
|
||||
@ -116,16 +104,6 @@ private:
|
||||
///
|
||||
int cursor_pixmap_h;
|
||||
///
|
||||
Window _window;
|
||||
///
|
||||
Dimension _width;
|
||||
///
|
||||
Dimension _height;
|
||||
///
|
||||
Dimension _offset_x;
|
||||
///
|
||||
Dimension _offset_y;
|
||||
///
|
||||
long screen_refresh_y;
|
||||
///
|
||||
Row * screen_refresh_row;
|
||||
|
@ -298,14 +298,14 @@ Inset * InsetFormula::Clone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetFormula::Write(ostream & os)
|
||||
void InsetFormula::Write(ostream & os) const
|
||||
{
|
||||
os << "Formula ";
|
||||
Latex(os, 0);
|
||||
}
|
||||
|
||||
|
||||
int InsetFormula::Latex(ostream & os, signed char fragile)
|
||||
int InsetFormula::Latex(ostream & os, signed char fragile) const
|
||||
{
|
||||
int ret = 0;
|
||||
//#warning Alejandro, the number of lines is not returned in this case
|
||||
@ -317,7 +317,7 @@ int InsetFormula::Latex(ostream & os, signed char fragile)
|
||||
}
|
||||
|
||||
|
||||
int InsetFormula::Latex(string & file, signed char fragile)
|
||||
int InsetFormula::Latex(string & file, signed char fragile) const
|
||||
{
|
||||
int ret = 0;
|
||||
//#warning Alejandro, the number of lines is not returned in this case
|
||||
@ -330,13 +330,13 @@ int InsetFormula::Latex(string & file, signed char fragile)
|
||||
}
|
||||
|
||||
|
||||
int InsetFormula::Linuxdoc(string &/*file*/)
|
||||
int InsetFormula::Linuxdoc(string &/*file*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetFormula::DocBook(string &/*file*/)
|
||||
int InsetFormula::DocBook(string &/*file*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -45,17 +45,17 @@ public:
|
||||
///
|
||||
void draw(Painter &, LyXFont const &, int baseline, float & x) const;
|
||||
///
|
||||
void Write(ostream &);
|
||||
void Write(ostream &) const;
|
||||
///
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
int Latex(ostream &, signed char fragile);
|
||||
int Latex(ostream &, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
///
|
||||
void Validate(LaTeXFeatures &) const;
|
||||
///
|
||||
|
@ -64,14 +64,14 @@ Inset * InsetFormulaMacro::Clone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetFormulaMacro::Write(ostream & os)
|
||||
void InsetFormulaMacro::Write(ostream & os) const
|
||||
{
|
||||
os << "FormulaMacro ";
|
||||
Latex(os, 0);
|
||||
}
|
||||
|
||||
|
||||
int InsetFormulaMacro::Latex(ostream & os, signed char /*fragile*/)
|
||||
int InsetFormulaMacro::Latex(ostream & os, signed char /*fragile*/) const
|
||||
{
|
||||
int ret = 1;
|
||||
tmacro->WriteDef(os);
|
||||
@ -79,7 +79,7 @@ int InsetFormulaMacro::Latex(ostream & os, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetFormulaMacro::Latex(string &file, signed char /*fragile*/)
|
||||
int InsetFormulaMacro::Latex(string &file, signed char /*fragile*/) const
|
||||
{
|
||||
int ret = 1;
|
||||
tmacro->WriteDef(file);
|
||||
@ -87,13 +87,13 @@ int InsetFormulaMacro::Latex(string &file, signed char /*fragile*/)
|
||||
}
|
||||
|
||||
|
||||
int InsetFormulaMacro::Linuxdoc(string &/*file*/)
|
||||
int InsetFormulaMacro::Linuxdoc(string &/*file*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int InsetFormulaMacro::DocBook(string &/*file*/)
|
||||
int InsetFormulaMacro::DocBook(string &/*file*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -46,15 +46,15 @@ public:
|
||||
///
|
||||
void Read(LyXLex & lex);
|
||||
///
|
||||
void Write(ostream & os);
|
||||
void Write(ostream & os) const;
|
||||
///
|
||||
int Latex(ostream & os, signed char fragile);
|
||||
int Latex(ostream & os, signed char fragile) const;
|
||||
///
|
||||
int Latex(string & file, signed char fragile);
|
||||
int Latex(string & file, signed char fragile) const;
|
||||
///
|
||||
int Linuxdoc(string & file);
|
||||
int Linuxdoc(string & file) const;
|
||||
///
|
||||
int DocBook(string & file);
|
||||
int DocBook(string & file) const;
|
||||
///
|
||||
Inset * Clone() const;
|
||||
|
||||
|
@ -29,6 +29,7 @@ using std::ios;
|
||||
#include "debug.h"
|
||||
#include "LaTeXFeatures.h"
|
||||
#include "insets/insetinclude.h"
|
||||
#include "insets/insetbib.h"
|
||||
#include "support/filetools.h"
|
||||
#include "lyx_gui_misc.h"
|
||||
#include "texrow.h"
|
||||
|
272
src/screen.C
272
src/screen.C
@ -14,12 +14,16 @@
|
||||
#pragma implementation "lyxscreen.h"
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "lyxscreen.h"
|
||||
#include "lyxtext.h"
|
||||
#include "lyxrow.h"
|
||||
#include "BufferView.h"
|
||||
#include "Painter.h"
|
||||
#include "WorkArea.h"
|
||||
|
||||
using std::max;
|
||||
using std::min;
|
||||
|
||||
static
|
||||
GC createGC()
|
||||
@ -39,16 +43,8 @@ GC createGC()
|
||||
|
||||
|
||||
// Constructor
|
||||
LyXScreen::LyXScreen(BufferView * o, Window window,
|
||||
Pixmap p,
|
||||
Dimension width,
|
||||
Dimension height,
|
||||
Dimension offset_x,
|
||||
Dimension offset_y,
|
||||
LyXText *text_ptr)
|
||||
: owner(o), text(text_ptr), _window(window),
|
||||
_width(width), _height(height),
|
||||
_offset_x(offset_x), _offset_y(offset_y)
|
||||
LyXScreen::LyXScreen(WorkArea & o, LyXText * text_ptr)
|
||||
: owner(o), text(text_ptr)
|
||||
{
|
||||
first = 0;
|
||||
|
||||
@ -56,9 +52,6 @@ LyXScreen::LyXScreen(BufferView * o, Window window,
|
||||
cursor_visible = false;
|
||||
screen_refresh_y = -1;
|
||||
|
||||
/* create the foreground pixmap */
|
||||
foreground = p;
|
||||
|
||||
cursor_pixmap = 0;
|
||||
cursor_pixmap_x = 0;
|
||||
cursor_pixmap_y = 0;
|
||||
@ -70,15 +63,11 @@ LyXScreen::LyXScreen(BufferView * o, Window window,
|
||||
}
|
||||
|
||||
|
||||
// Destructor
|
||||
LyXScreen::~LyXScreen() {}
|
||||
|
||||
|
||||
void LyXScreen::Redraw()
|
||||
{
|
||||
DrawFromTo(0, _height);
|
||||
DrawFromTo(0, owner.height());
|
||||
screen_refresh_y = -1;
|
||||
expose(0, 0, _width, _height);
|
||||
expose(0, 0, owner.workWidth(), owner.height());
|
||||
if (cursor_visible) {
|
||||
cursor_visible = false;
|
||||
ShowCursor();
|
||||
@ -89,12 +78,13 @@ void LyXScreen::Redraw()
|
||||
void LyXScreen::expose(int x, int y, int exp_width, int exp_height)
|
||||
{
|
||||
XCopyArea(fl_display,
|
||||
foreground,
|
||||
_window,
|
||||
owner.getPixmap(),
|
||||
owner.getWin(),
|
||||
gc_copy,
|
||||
x, y,
|
||||
exp_width, exp_height,
|
||||
x+_offset_x, y+_offset_y);
|
||||
x + owner.xpos(),
|
||||
y + owner.ypos());
|
||||
}
|
||||
|
||||
|
||||
@ -110,16 +100,16 @@ void LyXScreen::DrawFromTo(int y1, int y2)
|
||||
/* y1 is now the real beginning of row on the screen */
|
||||
|
||||
while (row != 0 && y < y2) {
|
||||
|
||||
text->GetVisibleRow(y, row, y + first);
|
||||
y += row->height;
|
||||
row = row -> next;
|
||||
|
||||
row = row->next;
|
||||
}
|
||||
|
||||
/* maybe we have to clear the screen at the bottom */
|
||||
if (y < y2) {
|
||||
owner->painter().fillRectangle(0, y, _width, y2 - y,
|
||||
owner.getPainter().fillRectangle(0, y,
|
||||
owner.workWidth(),
|
||||
y2 - y,
|
||||
LColor::bottomarea);
|
||||
}
|
||||
}
|
||||
@ -129,11 +119,11 @@ void LyXScreen::DrawOneRow(Row * row, long & y_text)
|
||||
{
|
||||
long y = y_text - first;
|
||||
|
||||
if (y + row->height > 0 && y - row->height <= _height) {
|
||||
if (y + row->height > 0 && y - row->height <= owner.height()) {
|
||||
/* ok there is something visible */
|
||||
text->GetVisibleRow(y, row, y + first);
|
||||
}
|
||||
y_text+= row->height;
|
||||
y_text += row->height;
|
||||
}
|
||||
|
||||
|
||||
@ -148,55 +138,63 @@ void LyXScreen::Draw(long y)
|
||||
first = y;
|
||||
|
||||
/* is any optimiziation possible? */
|
||||
if ((y - old_first) < _height
|
||||
&& (old_first - y) < _height) {
|
||||
if ((y - old_first) < owner.height()
|
||||
&& (old_first - y) < owner.height()) {
|
||||
if (first < old_first) {
|
||||
DrawFromTo(0, old_first - first);
|
||||
XCopyArea (fl_display,
|
||||
_window,
|
||||
_window,
|
||||
owner.getWin(),
|
||||
owner.getWin(),
|
||||
gc_copy,
|
||||
_offset_x, _offset_y,
|
||||
_width , _height - old_first + first,
|
||||
_offset_x, _offset_y + old_first - first);
|
||||
owner.xpos(),
|
||||
owner.ypos(),
|
||||
owner.workWidth(),
|
||||
owner.height() - old_first + first,
|
||||
owner.xpos(),
|
||||
owner.ypos() + old_first - first
|
||||
);
|
||||
// expose the area drawn
|
||||
expose(0, 0, _width, old_first - first);
|
||||
expose(0, 0,
|
||||
owner.workWidth(),
|
||||
old_first - first);
|
||||
} else {
|
||||
DrawFromTo(_height + old_first - first, _height);
|
||||
DrawFromTo(
|
||||
owner.height() + old_first - first,
|
||||
owner.height());
|
||||
XCopyArea (fl_display,
|
||||
_window,
|
||||
_window,
|
||||
owner.getWin(),
|
||||
owner.getWin(),
|
||||
gc_copy,
|
||||
_offset_x, _offset_y + first - old_first,
|
||||
_width , _height + old_first - first,
|
||||
_offset_x, _offset_y);
|
||||
owner.xpos(),
|
||||
owner.ypos() + first - old_first,
|
||||
owner.workWidth(),
|
||||
owner.height() + old_first - first,
|
||||
owner.xpos(),
|
||||
owner.ypos());
|
||||
// expose the area drawn
|
||||
expose(0, _height + old_first - first,
|
||||
_width, first - old_first);
|
||||
expose(0, owner.height() + old_first - first,
|
||||
owner.workWidth(), first - old_first);
|
||||
}
|
||||
} else {
|
||||
/* make a dumb new-draw */
|
||||
DrawFromTo(0, _height);
|
||||
expose(0, 0, _width, _height);
|
||||
DrawFromTo(0, owner.height());
|
||||
expose(0, 0, owner.workWidth(), owner.height());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void LyXScreen::ShowCursor()
|
||||
{
|
||||
long x = 0;
|
||||
long y1 = 0;
|
||||
long y2 = 0;
|
||||
|
||||
if (cursor_visible) return;
|
||||
|
||||
x = text->cursor.x;
|
||||
long x = text->cursor.x;
|
||||
|
||||
y1 = text->cursor.y - text->real_current_font.maxAscent() - first;
|
||||
if (y1 < 0) y1 = 0;
|
||||
long y1 = max(text->cursor.y -
|
||||
text->real_current_font.maxAscent() - first, 0L);
|
||||
|
||||
y2 = text->cursor.y + text->real_current_font.maxDescent() - first;
|
||||
if (y2 > _height) y2 = _height;
|
||||
long y2 = min(text->cursor.y +
|
||||
text->real_current_font.maxDescent() - first,
|
||||
long(owner.height()));
|
||||
|
||||
// Secure against very strange situations
|
||||
if (y2 < y1) y2 = y1;
|
||||
@ -206,7 +204,7 @@ void LyXScreen::ShowCursor()
|
||||
cursor_pixmap = 0;
|
||||
}
|
||||
|
||||
if (y2 > 0 && y1 < _height) {
|
||||
if (y2 > 0 && y1 < owner.height()) {
|
||||
cursor_pixmap_w = 1;
|
||||
cursor_pixmap_h = y2 - y1 + 1;
|
||||
cursor_pixmap_x = x;
|
||||
@ -218,19 +216,20 @@ void LyXScreen::ShowCursor()
|
||||
cursor_pixmap_h,
|
||||
fl_get_visual_depth());
|
||||
XCopyArea(fl_display,
|
||||
_window,
|
||||
owner.getWin(),
|
||||
cursor_pixmap,
|
||||
gc_copy,
|
||||
_offset_x + cursor_pixmap_x,
|
||||
_offset_y + cursor_pixmap_y,
|
||||
owner.xpos() + cursor_pixmap_x,
|
||||
owner.ypos() + cursor_pixmap_y,
|
||||
cursor_pixmap_w, cursor_pixmap_h,
|
||||
0, 0);
|
||||
XDrawLine(fl_display,
|
||||
_window, gc_copy,
|
||||
x + _offset_x,
|
||||
y1 + _offset_y,
|
||||
x + _offset_x,
|
||||
y2 + _offset_y);
|
||||
owner.getWin(),
|
||||
gc_copy,
|
||||
x + owner.xpos(),
|
||||
y1 + owner.ypos(),
|
||||
x + owner.xpos(),
|
||||
y2 + owner.ypos());
|
||||
cursor_visible = true;
|
||||
}
|
||||
}
|
||||
@ -241,11 +240,11 @@ int LyXScreen::FitManualCursor(long /*x*/, long y, int asc, int desc)
|
||||
{
|
||||
long newtop = first;
|
||||
|
||||
if (y + desc - first >= _height)
|
||||
newtop = y - 3*_height / 4; /* the scroll region must be so big!! */
|
||||
if (y + desc - first >= owner.height())
|
||||
newtop = y - 3 * owner.height() / 4; /* the scroll region must be so big!! */
|
||||
else if (y - asc < first
|
||||
&& first > 0) {
|
||||
newtop = y - _height / 4;
|
||||
newtop = y - owner.height() / 4;
|
||||
}
|
||||
if (newtop < 0)
|
||||
newtop = 0;
|
||||
@ -259,30 +258,18 @@ int LyXScreen::FitManualCursor(long /*x*/, long y, int asc, int desc)
|
||||
}
|
||||
|
||||
|
||||
void LyXScreen::HideManualCursor()
|
||||
{
|
||||
HideCursor();
|
||||
}
|
||||
|
||||
|
||||
void LyXScreen::ShowManualCursor(long x, long y, int asc, int desc)
|
||||
{
|
||||
long y1 = 0;
|
||||
long y2 = 0;
|
||||
|
||||
y1 = y - first - asc;
|
||||
if (y1 < 0)
|
||||
y1 = 0;
|
||||
y2 = y -first + desc;
|
||||
if (y2 > _height)
|
||||
y2 = _height;
|
||||
long y1 = max(y - first - asc, 0L);
|
||||
long y2 = min(y - first + desc, long(owner.height()));
|
||||
|
||||
if (cursor_pixmap){
|
||||
XFreePixmap(fl_display, cursor_pixmap);
|
||||
cursor_pixmap = 0;
|
||||
}
|
||||
|
||||
if (y2 > 0 && y1 < _height) {
|
||||
if (y2 > 0 && y1 <
|
||||
owner.height()) {
|
||||
cursor_pixmap_w = 1;
|
||||
cursor_pixmap_h = y2 - y1 + 1;
|
||||
cursor_pixmap_x = x,
|
||||
@ -294,20 +281,21 @@ void LyXScreen::ShowManualCursor(long x, long y, int asc, int desc)
|
||||
cursor_pixmap_h,
|
||||
fl_get_visual_depth());
|
||||
XCopyArea (fl_display,
|
||||
_window,
|
||||
owner.getWin(),
|
||||
cursor_pixmap,
|
||||
gc_copy,
|
||||
_offset_x + cursor_pixmap_x,
|
||||
_offset_y + cursor_pixmap_y,
|
||||
owner.xpos() + cursor_pixmap_x,
|
||||
owner.ypos() + cursor_pixmap_y,
|
||||
cursor_pixmap_w,
|
||||
cursor_pixmap_h,
|
||||
0, 0);
|
||||
XDrawLine(fl_display,
|
||||
_window, gc_copy,
|
||||
x+_offset_x,
|
||||
y1+_offset_y,
|
||||
x+_offset_x,
|
||||
y2+_offset_y);
|
||||
owner.getWin(),
|
||||
gc_copy,
|
||||
x + owner.xpos(),
|
||||
y1 + owner.ypos(),
|
||||
x + owner.xpos(),
|
||||
y2 + owner.ypos());
|
||||
}
|
||||
cursor_visible = true;
|
||||
}
|
||||
@ -320,12 +308,12 @@ void LyXScreen::HideCursor()
|
||||
if (cursor_pixmap){
|
||||
XCopyArea (fl_display,
|
||||
cursor_pixmap,
|
||||
_window,
|
||||
owner.getWin(),
|
||||
gc_copy,
|
||||
0, 0,
|
||||
cursor_pixmap_w, cursor_pixmap_h,
|
||||
cursor_pixmap_x + _offset_x,
|
||||
cursor_pixmap_y + _offset_y);
|
||||
cursor_pixmap_x + owner.xpos(),
|
||||
cursor_pixmap_y + owner.ypos());
|
||||
}
|
||||
cursor_visible = false;
|
||||
}
|
||||
@ -348,22 +336,22 @@ long LyXScreen::TopCursorVisible()
|
||||
if (text->cursor.y
|
||||
- text->cursor.row->baseline
|
||||
+ text->cursor.row->height
|
||||
- first >= _height) {
|
||||
if (text->cursor.row->height < _height
|
||||
&& text->cursor.row->height > _height/4)
|
||||
- first >= owner.height()) {
|
||||
if (text->cursor.row->height < owner.height()
|
||||
&& text->cursor.row->height > owner.height() / 4)
|
||||
newtop = text->cursor.y
|
||||
+ text->cursor.row->height
|
||||
- text->cursor.row->baseline - _height;
|
||||
- text->cursor.row->baseline - owner.height();
|
||||
else
|
||||
newtop = text->cursor.y
|
||||
- 3*_height / 4; /* the scroll region must be so big!! */
|
||||
- 3 * owner.height() / 4; /* the scroll region must be so big!! */
|
||||
} else if (text->cursor.y - text->cursor.row->baseline < first
|
||||
&& first > 0) {
|
||||
if (text->cursor.row->height < _height
|
||||
&& text->cursor.row->height > _height/4)
|
||||
if (text->cursor.row->height < owner.height()
|
||||
&& text->cursor.row->height > owner.height() / 4)
|
||||
newtop = text->cursor.y - text->cursor.row->baseline;
|
||||
else {
|
||||
newtop = text->cursor.y - _height / 4;
|
||||
newtop = text->cursor.y - owner.height() / 4;
|
||||
if (newtop > first)
|
||||
newtop = first;
|
||||
}
|
||||
@ -390,10 +378,9 @@ int LyXScreen::FitCursor()
|
||||
|
||||
void LyXScreen::Update()
|
||||
{
|
||||
long y = 0;
|
||||
|
||||
if (text->status == LyXText::NEED_MORE_REFRESH
|
||||
|| screen_refresh_y > -1 ) {
|
||||
long y = 0;
|
||||
if (screen_refresh_y > -1
|
||||
&& screen_refresh_y < text->refresh_y)
|
||||
y = screen_refresh_y;
|
||||
@ -402,40 +389,39 @@ void LyXScreen::Update()
|
||||
|
||||
if (y < first) y = first;
|
||||
|
||||
DrawFromTo(y - first, _height);
|
||||
DrawFromTo(y - first, owner.height());
|
||||
text->refresh_y = 0;
|
||||
text->status = LyXText::UNCHANGED;
|
||||
screen_refresh_y = -1;
|
||||
expose(0, y-first, _width, _height - (y - first));
|
||||
expose(0, y - first,
|
||||
owner.workWidth(), owner.height() - (y - first));
|
||||
} else if (text->status == LyXText::NEED_VERY_LITTLE_REFRESH) {
|
||||
/* ok I will update the current cursor row */
|
||||
y = text->refresh_y;
|
||||
long y = text->refresh_y;
|
||||
DrawOneRow(text->refresh_row, y);
|
||||
text->status = LyXText::UNCHANGED;
|
||||
expose(0, text->refresh_y-first,
|
||||
_width, text->refresh_row->height);
|
||||
expose(0, text->refresh_y - first,
|
||||
owner.workWidth(), text->refresh_row->height);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void LyXScreen::SmallUpdate()
|
||||
{
|
||||
Row * row = 0;
|
||||
long y = 0;
|
||||
long y2 = 0;
|
||||
|
||||
if (text->status == LyXText::NEED_MORE_REFRESH){
|
||||
if (text->status == LyXText::NEED_MORE_REFRESH) {
|
||||
/* ok I will update till the current cursor row */
|
||||
row = text->refresh_row;
|
||||
y = text->refresh_y;
|
||||
y2 = y;
|
||||
Row * row = text->refresh_row;
|
||||
long y = text->refresh_y;
|
||||
long y2 = y;
|
||||
|
||||
if (y > text->cursor.y) {
|
||||
Update();
|
||||
return;
|
||||
}
|
||||
|
||||
while (row && row != text->cursor.row && y < first + _height) {
|
||||
while (row
|
||||
&& row != text->cursor.row
|
||||
&& y < first + owner.height()) {
|
||||
DrawOneRow(row, y);
|
||||
row = row->next;
|
||||
}
|
||||
@ -445,15 +431,15 @@ void LyXScreen::SmallUpdate()
|
||||
screen_refresh_row = row->next;
|
||||
text->status = LyXText::UNCHANGED;
|
||||
// Is the right regin exposed?
|
||||
expose(0, y2-first, _width, y-y2);
|
||||
expose(0, y2 - first,
|
||||
owner.workWidth(), y - y2);
|
||||
} else if (text->status == LyXText::NEED_VERY_LITTLE_REFRESH) {
|
||||
/* ok I will update the current cursor row */
|
||||
row = text->refresh_row;
|
||||
y = text->refresh_y;
|
||||
DrawOneRow(row, y);
|
||||
long y = text->refresh_y;
|
||||
DrawOneRow(text->refresh_row, y);
|
||||
text->status = LyXText::UNCHANGED;
|
||||
expose(0, text->refresh_y - first,
|
||||
_width, row->height);
|
||||
owner.workWidth(), text->refresh_row->height);
|
||||
}
|
||||
}
|
||||
|
||||
@ -461,29 +447,30 @@ void LyXScreen::SmallUpdate()
|
||||
void LyXScreen::ToggleSelection(bool kill_selection)
|
||||
{
|
||||
/* only if there is a selection */
|
||||
if (!text->selection)
|
||||
return;
|
||||
if (!text->selection) return;
|
||||
|
||||
long top = text->sel_start_cursor.y
|
||||
- text->sel_start_cursor.row->baseline;
|
||||
long bottom = text->sel_end_cursor.y
|
||||
- text->sel_end_cursor.row->baseline
|
||||
+ text->sel_end_cursor.row->height;
|
||||
|
||||
if (top < first)
|
||||
top = max(top, first);
|
||||
if (bottom < first)
|
||||
bottom = max(bottom, first);
|
||||
|
||||
if (top - first < 0)
|
||||
top = first;
|
||||
if (bottom - first < 0)
|
||||
bottom = first;
|
||||
|
||||
if (bottom - first > _height)
|
||||
bottom = first + _height;
|
||||
if (top - first > _height)
|
||||
top = first + _height;
|
||||
|
||||
if (bottom > first + owner.height())
|
||||
bottom = first + owner.height();
|
||||
if (top > first + owner.height())
|
||||
top = first + owner.height();
|
||||
|
||||
if (kill_selection)
|
||||
text->selection = 0;
|
||||
DrawFromTo(top - first, bottom - first);
|
||||
expose(0, top - first, _width, bottom - first - (top - first));
|
||||
expose(0, top - first,
|
||||
owner.workWidth(),
|
||||
bottom - first - (top - first));
|
||||
}
|
||||
|
||||
|
||||
@ -504,11 +491,12 @@ void LyXScreen::ToggleToggle()
|
||||
if (bottom - first < 0)
|
||||
bottom = first;
|
||||
|
||||
if (bottom - first > _height)
|
||||
bottom = first + _height;
|
||||
if (top - first > _height)
|
||||
top = first + _height;
|
||||
if (bottom - first > owner.height())
|
||||
bottom = first + owner.height();
|
||||
if (top - first > owner.height())
|
||||
top = first + owner.height();
|
||||
|
||||
DrawFromTo(top - first, bottom - first);
|
||||
expose(0, top - first, _width, bottom - first - (top - first));
|
||||
expose(0, top - first, owner.workWidth(),
|
||||
bottom - first - (top - first));
|
||||
}
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "lyxparagraph.h"
|
||||
#include "lyxtext.h"
|
||||
#include "support/textutils.h"
|
||||
#include "insets/insetbib.h"
|
||||
#include "lyx_gui_misc.h"
|
||||
#include "gettext.h"
|
||||
#include "bufferparams.h"
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "LString.h"
|
||||
#include "lyxparagraph.h"
|
||||
#include "insets/inseterror.h"
|
||||
#include "insets/insetbib.h"
|
||||
#include "layout.h"
|
||||
#include "LyXView.h"
|
||||
#include "support/textutils.h"
|
||||
|
Loading…
Reference in New Issue
Block a user