#include "frontends/Alert.h"
#include "frontends/Dialogs.h"
#include "frontends/FileDialog.h"
+#include "frontends/font_metrics.h"
#include "frontends/LyXView.h"
#include "frontends/LyXScreenFactory.h"
#include "frontends/screen.h"
#include "graphics/Previews.h"
+#include "support/convert.h"
#include "support/filefilterlist.h"
#include "support/filetools.h"
#include "support/forkedcontr.h"
-#include "support/path_defines.h"
-#include "support/tostr.h"
+#include "support/package.h"
#include "support/types.h"
#include <boost/bind.hpp>
using lyx::support::IsDirWriteable;
using lyx::support::MakeDisplayPath;
using lyx::support::MakeAbsPath;
+using lyx::support::package;
using lyx::support::strToUnsignedInt;
-using lyx::support::system_lyxdir;
using std::endl;
using std::istringstream;
cursor_ = LCursor(*bv_);
anchor_ref_ = 0;
offset_ref_ = 0;
-
+
// if we're quitting lyx, don't bother updating stuff
if (quitting)
anchor_ref_ = int(t.paragraphs().size()) - 1;
offset_ref_ = 0;
}
-
+
lyxerr[Debug::GUI]
<< "Updating scrollbar: height: " << t.paragraphs().size()
<< " curr par: " << bv_->cursor().bottom().pit()
int const first = height;
int const last = workarea().workHeight() - height;
LCursor & cur = bv_->cursor();
-
+
bv_funcs::CurStatus st = bv_funcs::status(bv_, cur);
switch (st) {
bool BufferView::Pimpl::fitCursor()
{
if (bv_funcs::status(bv_, bv_->cursor()) == bv_funcs::CUR_INSIDE) {
- int asc, des;
- bv_->cursor().getDim(asc, des);
+ LyXFont const font = bv_->cursor().getFont();
+ int const asc = font_metrics::maxAscent(font);
+ int const des = font_metrics::maxDescent(font);
Point p = bv_funcs::getPos(bv_->cursor());
if (p.y_ - asc >= 0 && p.y_ + des < bv_->workHeight())
return false;
{
lyxerr << "BufferView::Pimpl::update(fc=" << fitcursor << ", fu="
<< forceupdate << ") buffer: " << buffer_ << endl;
-
+
// check needed to survive LyX startup
if (buffer_) {
// update macro store
bv_->cursor().paragraph().id(),
bv_->cursor().pos());
if (i > 0)
- owner_->message(bformat(_("Saved bookmark %1$s"), tostr(i)));
+ owner_->message(bformat(_("Saved bookmark %1$d"), i));
}
min(par->size(), saved_positions[i].par_pos));
if (i > 0)
- owner_->message(bformat(_("Moved to bookmark %1$s"), tostr(i)));
+ owner_->message(bformat(_("Moved to bookmark %1$d"), i));
}
make_pair(string(_("Documents|#o#O")),
string(lyxrc.document_path)),
make_pair(string(_("Examples|#E#e")),
- string(AddPath(system_lyxdir(), "examples"))));
+ string(AddPath(package().system_support(), "examples"))));
FileDialog::Result result =
fileDlg.open(initpath,
case LFUN_WORDS_COUNT:
flag.enabled(true);
break;
-
+
case LFUN_BOOKMARK_GOTO:
flag.enabled(bv_->isSavedPosition(strToUnsignedInt(cmd.argument)));
break;
string message;
if (count != 1) {
if (cur.selection())
- message = bformat(_("%1$s words in selection."),
- tostr(count));
+ message = bformat(_("%1$d words in selection."),
+ count);
else
- message = bformat(_("%1$s words in document."),
- tostr(count));
+ message = bformat(_("%1$d words in document."),
+ count);
}
else {
if (cur.selection())
message = _("One word in selection.");
- else
+ else
message = _("One word in document.");
}
int pit1 = pit;
int pit2 = pit;
size_t npit = text->paragraphs().size();
- lyxerr << "npit: " << npit << " pit1: " << pit1
+ lyxerr << "npit: " << npit << " pit1: " << pit1
<< " pit2: " << pit2 << endl;
- // rebreak anchor par
+ // rebreak anchor par
text->redoParagraph(pit);
int y0 = text->getPar(pit1).ascent() - offset_ref_;
-
+
// redo paragraphs above cursor if necessary
int y1 = y0;
while (y1 > 0 && pit1 > 0) {
y1 -= text->getPar(pit1).descent();
}
-
+
// take care of ascent of first line
y1 -= text->getPar(pit1).ascent();
y1 = 0;
anchor_ref_ = 0;
}
-
+
// redo paragraphs below cursor if necessary
int y2 = y0;
while (y2 < bv.workHeight() && pit2 < int(npit) - 1) {
y2 += text->getPar(pit2).ascent();
}
- // take care of descent of last line
+ // take care of descent of last line
y2 += text->getPar(pit2).descent();
// the coordinates of all these paragraphs are correct, cache them
theCoords.pars_[text][pit] = Point(0, y);
y += text->getPar(pit).descent();
}
-
+
lyxerr << "bv:metrics: y1: " << y1 << " y2: " << y2 << endl;
return ViewMetricsInfo(pit1, pit2, y1, y2);
}