aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2022-07-31 08:16:54 +1000
committerNeil <nyamatongwe@gmail.com>2022-07-31 08:16:54 +1000
commit535e20189d5a2dd9b43a6ea0a74749a50678d631 (patch)
tree6ddecde2fbdb77a2657a4662d4744483df4ac4d4
parent83d8151122916867367b75ac38d0cf32ba0ac932 (diff)
downloadscintilla-mirror-535e20189d5a2dd9b43a6ea0a74749a50678d631.tar.gz
Move main access to active marker bit set to model. This will allow merging in
change history markers and simplifies calls.
-rw-r--r--src/EditModel.cxx4
-rw-r--r--src/EditModel.h1
-rw-r--r--src/EditView.cxx12
-rw-r--r--src/Editor.cxx4
-rw-r--r--src/MarginView.cxx2
5 files changed, 14 insertions, 9 deletions
diff --git a/src/EditModel.cxx b/src/EditModel.cxx
index 50aa88b06..e8e5e5d1e 100644
--- a/src/EditModel.cxx
+++ b/src/EditModel.cxx
@@ -126,3 +126,7 @@ InSelection EditModel::LineEndInSelection(Sci::Line lineDoc) const {
const Sci::Position posAfterLineEnd = pdoc->LineStart(lineDoc + 1);
return sel.InSelectionForEOL(posAfterLineEnd);
}
+
+int EditModel::GetMark(Sci::Line line) const {
+ return pdoc->GetMark(line);
+}
diff --git a/src/EditModel.h b/src/EditModel.h
index 64005a504..48c230f84 100644
--- a/src/EditModel.h
+++ b/src/EditModel.h
@@ -71,6 +71,7 @@ public:
const char *GetDefaultFoldDisplayText() const noexcept;
const char *GetFoldDisplayText(Sci::Line lineDoc) const noexcept;
InSelection LineEndInSelection(Sci::Line lineDoc) const;
+ [[nodiscard]] int GetMark(Sci::Line line) const;
};
}
diff --git a/src/EditView.cxx b/src/EditView.cxx
index c87d88481..c3709f25b 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -1354,7 +1354,7 @@ void EditView::DrawFoldDisplayText(Surface *surface, const EditModel &model, con
rcSegment.left = xStart + static_cast<XYPOSITION>(ll->positions[ll->numCharsInLine] - subLineStart) + virtualSpace + vsDraw.aveCharWidth;
rcSegment.right = rcSegment.left + static_cast<XYPOSITION>(widthFoldDisplayText);
- const std::optional<ColourRGBA> background = vsDraw.Background(model.pdoc->GetMark(line), model.caret.active, ll->containsCaret);
+ const std::optional<ColourRGBA> background = vsDraw.Background(model.GetMark(line), model.caret.active, ll->containsCaret);
const std::optional<ColourRGBA> selectionFore = SelectionForeground(model, vsDraw, eolInSelection);
const ColourRGBA textFore = selectionFore.value_or(vsDraw.styles[StyleFoldDisplayText].fore);
const ColourRGBA textBack = TextBackground(model, vsDraw, ll, background, eolInSelection,
@@ -1481,7 +1481,7 @@ void EditView::DrawEOLAnnotationText(Surface *surface, const EditModel &model, c
}
rcSegment.right = rcSegment.left + static_cast<XYPOSITION>(widthEOLAnnotationText);
- const std::optional<ColourRGBA> background = vsDraw.Background(model.pdoc->GetMark(line), model.caret.active, ll->containsCaret);
+ const std::optional<ColourRGBA> background = vsDraw.Background(model.GetMark(line), model.caret.active, ll->containsCaret);
const ColourRGBA textFore = vsDraw.styles[style].fore;
const ColourRGBA textBack = TextBackground(model, vsDraw, ll, background, InSelection::inNone,
false, static_cast<int>(style), -1);
@@ -1932,7 +1932,7 @@ static void DrawEdgeLine(Surface *surface, const ViewStyle &vsDraw, const LineLa
// Draw underline mark as part of background if on base layer
static void DrawMarkUnderline(Surface *surface, const EditModel &model, const ViewStyle &vsDraw,
Sci::Line line, PRectangle rcLine) {
- int marks = model.pdoc->GetMark(line);
+ int marks = model.GetMark(line);
for (int markBit = 0; (markBit < 32) && marks; markBit++) {
if ((marks & 1) && (vsDraw.markers[markBit].markType == MarkerSymbol::Underline) &&
(vsDraw.markers[markBit].layer == Layer::Base)) {
@@ -2019,7 +2019,7 @@ static void DrawTranslucentLineState(Surface *surface, const EditModel &model, c
surface->FillRectangleAligned(rcLine, *vsDraw.ElementColour(Element::CaretLineBack));
}
}
- const int marksOfLine = model.pdoc->GetMark(line);
+ const int marksOfLine = model.GetMark(line);
int marksDrawnInText = marksOfLine & vsDraw.maskDrawInText;
for (int markBit = 0; (markBit < 32) && marksDrawnInText; markBit++) {
if ((marksDrawnInText & 1) && (vsDraw.markers[markBit].layer == layer)) {
@@ -2309,7 +2309,7 @@ void EditView::DrawLine(Surface *surface, const EditModel &model, const ViewStyl
}
// See if something overrides the line background colour.
- const std::optional<ColourRGBA> background = vsDraw.Background(model.pdoc->GetMark(line), model.caret.active, ll->containsCaret);
+ const std::optional<ColourRGBA> background = vsDraw.Background(model.GetMark(line), model.caret.active, ll->containsCaret);
const Sci::Position posLineStart = model.pdoc->LineStart(line);
@@ -2627,7 +2627,7 @@ void EditView::FillLineRemainder(Surface *surface, const EditModel &model, const
eolInSelection = model.LineEndInSelection(line);
}
- const std::optional<ColourRGBA> background = vsDraw.Background(model.pdoc->GetMark(line), model.caret.active, ll->containsCaret);
+ const std::optional<ColourRGBA> background = vsDraw.Background(model.GetMark(line), model.caret.active, ll->containsCaret);
if (eolInSelection && vsDraw.selection.eolFilled && (line < model.pdoc->LinesTotal() - 1) && (vsDraw.selection.layer == Layer::Base)) {
surface->FillRectangleAligned(rcArea, Fill(SelectionBackground(model, vsDraw, eolInSelection).Opaque()));
diff --git a/src/Editor.cxx b/src/Editor.cxx
index a4e2cc732..ccf187c65 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -7171,14 +7171,14 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) {
break;
case Message::MarkerGet:
- return pdoc->GetMark(LineFromUPtr(wParam));
+ return GetMark(LineFromUPtr(wParam));
case Message::MarkerNext:
return pdoc->MarkerNext(LineFromUPtr(wParam), static_cast<int>(lParam));
case Message::MarkerPrevious: {
for (Sci::Line iLine = LineFromUPtr(wParam); iLine >= 0; iLine--) {
- if ((pdoc->GetMark(iLine) & lParam) != 0)
+ if ((GetMark(iLine) & lParam) != 0)
return iLine;
}
}
diff --git a/src/MarginView.cxx b/src/MarginView.cxx
index cc243f41f..7d2f4a8cd 100644
--- a/src/MarginView.cxx
+++ b/src/MarginView.cxx
@@ -283,7 +283,7 @@ void MarginView::PaintOneMargin(Surface *surface, PRectangle rc, PRectangle rcOn
const bool firstSubLine = visibleLine == firstVisibleLine;
const bool lastSubLine = visibleLine == lastVisibleLine;
- int marks = firstSubLine ? model.pdoc->GetMark(lineDoc) : 0;
+ int marks = firstSubLine ? model.GetMark(lineDoc) : 0;
bool headWithTail = false;