Draw any translucent whole line states
| 1609 | |
| 1610 | // Draw any translucent whole line states |
| 1611 | static 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 | |
| 1647 | void 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, |
no test coverage detected