MCPcopy Create free account
hub / github.com/cxasm/notepad-- / DrawTranslucentLineState

Function DrawTranslucentLineState

src/qscint/scintilla/src/EditView.cpp:1611–1645  ·  view source on GitHub ↗

Draw any translucent whole line states

Source from the content-addressed store, hash-verified

1609
1610// Draw any translucent whole line states
1611static void DrawTranslucentLineState(Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll,
1612 Sci::Line line, PRectangle rcLine, int subLine) {
1613 if ((model.caret.active || vsDraw.alwaysShowCaretLineBackground) && vsDraw.showCaretLineBackground && ll->containsCaret &&
1614 vsDraw.caretLineAlpha != SC_ALPHA_NOALPHA) {
1615 if (vsDraw.caretLineFrame) {
1616 DrawCaretLineFramed(surface, vsDraw, ll, rcLine, subLine);
1617 } else {
1618 SimpleAlphaRectangle(surface, rcLine, vsDraw.caretLineBackground, vsDraw.caretLineAlpha);
1619 }
1620 }
1621 const int marksOfLine = model.pdoc->GetMark(line);
1622 int marksDrawnInText = marksOfLine & vsDraw.maskDrawInText;
1623 for (int markBit = 0; (markBit < 32) && marksDrawnInText; markBit++) {
1624 if (marksDrawnInText & 1) {
1625 if (vsDraw.markers[markBit].markType == SC_MARK_BACKGROUND) {
1626 SimpleAlphaRectangle(surface, rcLine, vsDraw.markers[markBit].back, vsDraw.markers[markBit].alpha);
1627 } else if (vsDraw.markers[markBit].markType == SC_MARK_UNDERLINE) {
1628 PRectangle rcUnderline = rcLine;
1629 rcUnderline.top = rcUnderline.bottom - 2;
1630 SimpleAlphaRectangle(surface, rcUnderline, vsDraw.markers[markBit].back, vsDraw.markers[markBit].alpha);
1631
1632 }else if (vsDraw.markers[markBit].markType == SC_MARK_AVAILABLE) {
1633 SimpleAlphaRectangle(surface, rcLine, vsDraw.markers[markBit].alpha);
1634 }
1635 }
1636 marksDrawnInText >>= 1;
1637 }
1638 int marksDrawnInLine = marksOfLine & vsDraw.maskInLine;
1639 for (int markBit = 0; (markBit < 32) && marksDrawnInLine; markBit++) {
1640 if (marksDrawnInLine & 1) {
1641 SimpleAlphaRectangle(surface, rcLine, vsDraw.markers[markBit].back, vsDraw.markers[markBit].alpha);
1642 }
1643 marksDrawnInLine >>= 1;
1644 }
1645}
1646
1647void EditView::DrawForeground(Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll,
1648 Sci::Line lineVisible, PRectangle rcLine, Range lineRange, Sci::Position posLineStart, int xStart,

Callers 1

DrawLineMethod · 0.85

Calls 3

DrawCaretLineFramedFunction · 0.85
SimpleAlphaRectangleFunction · 0.85
GetMarkMethod · 0.80

Tested by

no test coverage detected