aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/EditView.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/EditView.cxx')
-rw-r--r--src/EditView.cxx46
1 files changed, 24 insertions, 22 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx
index 293f7737a..f3df80dc9 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -339,7 +339,7 @@ LineLayout *EditView::RetrieveLineLayout(Sci::Line lineNumber, const EditModel &
PLATFORM_ASSERT(posLineEnd >= posLineStart);
const Sci::Line lineCaret = static_cast<Sci::Line>(model.pdoc->LineFromPosition(model.sel.MainCaret()));
return llc.Retrieve(lineNumber, lineCaret,
- posLineEnd - posLineStart, model.pdoc->GetStyleClock(),
+ static_cast<int>(posLineEnd - posLineStart), model.pdoc->GetStyleClock(),
model.LinesOnScreen() + 1, model.pdoc->LinesTotal());
}
@@ -410,19 +410,20 @@ void EditView::LayoutLine(const EditModel &model, Sci::Line line, Surface *surfa
ll->widthLine = LineLayout::wrapWidthInfinite;
ll->lines = 1;
if (vstyle.edgeState == EDGE_BACKGROUND) {
- ll->edgeColumn = model.pdoc->FindColumn(line, vstyle.theEdge.column);
- if (ll->edgeColumn >= posLineStart) {
- ll->edgeColumn -= posLineStart;
+ Sci::Position edgePosition = model.pdoc->FindColumn(line, vstyle.theEdge.column);
+ if (edgePosition >= posLineStart) {
+ edgePosition -= posLineStart;
}
+ ll->edgeColumn = static_cast<int>(edgePosition);
} else {
ll->edgeColumn = -1;
}
// Fill base line layout
- const int lineLength = posLineEnd - posLineStart;
+ const int lineLength = static_cast<int>(posLineEnd - posLineStart);
model.pdoc->GetCharRange(ll->chars.get(), posLineStart, lineLength);
model.pdoc->GetStyleRange(ll->styles.get(), posLineStart, lineLength);
- const int numCharsBeforeEOL = static_cast<Sci::Position>(model.pdoc->LineEnd(line)) - posLineStart;
+ const int numCharsBeforeEOL = static_cast<int>(model.pdoc->LineEnd(line) - posLineStart);
const int numCharsInLine = (vstyle.viewEOL) ? lineLength : numCharsBeforeEOL;
for (Sci::Position styleInLine = 0; styleInLine < numCharsInLine; styleInLine++) {
const unsigned char styleByte = ll->styles[styleInLine];
@@ -541,10 +542,10 @@ void EditView::LayoutLine(const EditModel &model, Sci::Line line, Surface *surfa
ll->wrapIndent = vstyle.aveCharWidth; // Indent to show start visual
ll->lines = 0;
// Calculate line start positions based upon width.
- int lastGoodBreak = 0;
- int lastLineStart = 0;
+ Sci::Position lastGoodBreak = 0;
+ Sci::Position lastLineStart = 0;
XYACCUMULATOR startOffset = 0;
- int p = 0;
+ Sci::Position p = 0;
while (p < ll->numCharsInLine) {
if ((ll->positions[p + 1] - startOffset) >= width) {
if (lastGoodBreak == lastLineStart) {
@@ -561,7 +562,7 @@ void EditView::LayoutLine(const EditModel &model, Sci::Line line, Surface *surfa
}
lastLineStart = lastGoodBreak;
ll->lines++;
- ll->SetLineStart(ll->lines, lastGoodBreak);
+ ll->SetLineStart(ll->lines, static_cast<int>(lastGoodBreak));
startOffset = ll->positions[lastGoodBreak];
// take into account the space for start wrap mark and indent
startOffset -= ll->wrapIndent;
@@ -604,7 +605,7 @@ Point EditView::LocationFromPosition(Surface *surface, const EditModel &model, S
AutoLineLayout ll(llc, RetrieveLineLayout(lineDoc, model));
if (surface && ll) {
LayoutLine(model, lineDoc, surface, vs, ll, model.wrapWidth);
- const int posInLine = pos.Position() - posLineStart;
+ const int posInLine = static_cast<int>(pos.Position() - posLineStart);
pt = ll->PointFromPosition(posInLine, vs.lineHeight, pe);
pt.y += (lineVisible - topLine) * vs.lineHeight;
pt.x += vs.textStart - model.xOffset;
@@ -624,7 +625,7 @@ Range EditView::RangeDisplayLine(Surface *surface, const EditModel &model, Sci::
if (surface && ll) {
LayoutLine(model, lineDoc, surface, vs, ll, model.wrapWidth);
const Sci::Line lineStartSet = model.cs.DisplayFromDoc(lineDoc);
- const int subLine = lineVisible - lineStartSet;
+ const int subLine = static_cast<int>(lineVisible - lineStartSet);
if (subLine < ll->lines) {
rangeSubLine = ll->SubLineRange(subLine);
if (subLine == ll->lines-1) {
@@ -654,7 +655,7 @@ SelectionPosition EditView::SPositionFromLocation(Surface *surface, const EditMo
if (surface && ll) {
LayoutLine(model, lineDoc, surface, vs, ll, model.wrapWidth);
const Sci::Line lineStartSet = model.cs.DisplayFromDoc(lineDoc);
- const int subLine = visibleLine - lineStartSet;
+ const int subLine = static_cast<int>(visibleLine - lineStartSet);
if (subLine < ll->lines) {
const Range rangeSubLine = ll->SubLineRange(subLine);
const XYPOSITION subLineStart = ll->positions[rangeSubLine.start];
@@ -787,7 +788,8 @@ static ColourDesired TextBackground(const EditModel &model, const ViewStyle &vsD
void EditView::DrawIndentGuide(Surface *surface, Sci::Line lineVisible, int lineHeight, Sci::Position start, PRectangle rcSegment, bool highlight) {
const Point from = Point::FromInts(0, ((lineVisible & 1) && (lineHeight & 1)) ? 1 : 0);
- const PRectangle rcCopyArea = PRectangle::FromInts(start + 1, static_cast<int>(rcSegment.top), start + 2, static_cast<int>(rcSegment.bottom));
+ const PRectangle rcCopyArea = PRectangle::FromInts(static_cast<int>(start + 1), static_cast<int>(rcSegment.top),
+ static_cast<int>(start + 2), static_cast<int>(rcSegment.bottom));
surface->Copy(rcCopyArea, from,
highlight ? *pixmapIndentGuideHighlight : *pixmapIndentGuide);
}
@@ -1305,7 +1307,7 @@ static void DrawBlockCaret(Surface *surface, const EditModel &model, const ViewS
FontAlias fontText = vsDraw.styles[styleMain].font;
surface->DrawTextClipped(rcCaret, fontText,
rcCaret.top + vsDraw.maxAscent, &ll->chars[offsetFirstChar],
- numCharsToDraw, vsDraw.styles[styleMain].back,
+ static_cast<int>(numCharsToDraw), vsDraw.styles[styleMain].back,
caretColour);
}
@@ -1326,7 +1328,7 @@ void EditView::DrawCarets(Surface *surface, const EditModel &model, const ViewSt
else
posCaret.SetPosition(model.pdoc->MovePositionOutsideChar(posCaret.Position()-1, -1));
}
- const int offset = posCaret.Position() - posLineStart;
+ const int offset = static_cast<int>(posCaret.Position() - posLineStart);
const XYPOSITION spaceWidth = vsDraw.styles[ll->EndLineStyle()].spaceWidth;
const XYPOSITION virtualOffset = posCaret.VirtualSpace() * spaceWidth;
if (ll->InLine(offset, subLine) && offset <= ll->numCharsBeforeEOL) {
@@ -1740,11 +1742,11 @@ void EditView::DrawForeground(Surface *surface, const EditModel &model, const Vi
if (phasesDraw != phasesOne) {
surface->DrawTextTransparent(rcSegment, textFont,
rcSegment.top + vsDraw.maxAscent, &ll->chars[ts.start],
- i - ts.start + 1, textFore);
+ static_cast<int>(i - ts.start + 1), textFore);
} else {
surface->DrawTextNoClip(rcSegment, textFont,
rcSegment.top + vsDraw.maxAscent, &ll->chars[ts.start],
- i - ts.start + 1, textFore, textBack);
+ static_cast<int>(i - ts.start + 1), textFore, textBack);
}
}
if (vsDraw.viewWhitespace != wsInvisible ||
@@ -1821,7 +1823,7 @@ void EditView::DrawIndentGuidesOverEmpty(Surface *surface, const EditModel &mode
// Find the most recent line with some text
Sci::Line lineLastWithText = line;
- while (lineLastWithText > std::max(line - 20, 0) && model.pdoc->IsWhiteLine(lineLastWithText)) {
+ while (lineLastWithText > std::max(line - 20, static_cast<Sci::Line>(0)) && model.pdoc->IsWhiteLine(lineLastWithText)) {
lineLastWithText--;
}
if (lineLastWithText < line) {
@@ -2038,7 +2040,7 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
// Only visible lines should be handled by the code within the loop
PLATFORM_ASSERT(model.cs.GetVisible(lineDoc));
const Sci::Line lineStartSet = model.cs.DisplayFromDoc(lineDoc);
- const int subLine = visibleLine - lineStartSet;
+ const int subLine = static_cast<int>(visibleLine - lineStartSet);
// Copy this line and its styles from the document into local arrays
// and determine the x position at which each character starts.
@@ -2189,7 +2191,7 @@ static ColourDesired InvertedLight(ColourDesired orig) {
return ColourDesired(std::min(r, 0xffu), std::min(g, 0xffu), std::min(b, 0xffu));
}
-long EditView::FormatRange(bool draw, Sci_RangeToFormat *pfr, Surface *surface, Surface *surfaceMeasure,
+Sci::Position EditView::FormatRange(bool draw, Sci_RangeToFormat *pfr, Surface *surface, Surface *surfaceMeasure,
const EditModel &model, const ViewStyle &vs) {
// Can't use measurements cached for screen
posCache.Clear();
@@ -2298,7 +2300,7 @@ long EditView::FormatRange(bool draw, Sci_RangeToFormat *pfr, Surface *surface,
// Copy this line and its styles from the document into local arrays
// and determine the x position at which each character starts.
- LineLayout ll(static_cast<Sci::Position>(model.pdoc->LineStart(lineDoc + 1) - model.pdoc->LineStart(lineDoc) + 1));
+ LineLayout ll(static_cast<int>(model.pdoc->LineStart(lineDoc + 1) - model.pdoc->LineStart(lineDoc) + 1));
LayoutLine(model, lineDoc, surfaceMeasure, vsPrint, &ll, widthPrint);
ll.containsCaret = false;