geany  1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
  Fossies Dox: geany-1.38.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

Scintilla::EditView Class Reference

EditView draws the main text area. More...

#include <EditView.h>

Collaboration diagram for Scintilla::EditView:
[legend]

Public Types

enum  PhasesDraw { phasesOne , phasesTwo , phasesMultiple }
 In phasesTwo mode, drawing is performed in two phases, first the background and then the foreground. More...
 

Public Member Functions

 EditView ()
 
 EditView (const EditView &)=delete
 
 EditView (EditView &&)=delete
 
void operator= (const EditView &)=delete
 
void operator= (EditView &&)=delete
 
virtual ~EditView ()
 
bool SetTwoPhaseDraw (bool twoPhaseDraw) noexcept
 
bool SetPhasesDraw (int phases) noexcept
 
bool LinesOverlap () const noexcept
 
void ClearAllTabstops () noexcept
 
XYPOSITION NextTabstopPos (Sci::Line line, XYPOSITION x, XYPOSITION tabWidth) const noexcept
 
bool ClearTabstops (Sci::Line line) noexcept
 
bool AddTabstop (Sci::Line line, int x)
 
int GetNextTabstop (Sci::Line line, int x) const noexcept
 
void LinesAddedOrRemoved (Sci::Line lineOfPos, Sci::Line linesAdded)
 
void DropGraphics (bool freeObjects)
 
void AllocateGraphics (const ViewStyle &vsDraw)
 
void RefreshPixMaps (Surface *surfaceWindow, WindowID wid, const ViewStyle &vsDraw)
 
LineLayoutRetrieveLineLayout (Sci::Line lineNumber, const EditModel &model)
 
void LayoutLine (const EditModel &model, Sci::Line line, Surface *surface, const ViewStyle &vstyle, LineLayout *ll, int width=LineLayout::wrapWidthInfinite)
 Fill in the LineLayout data for the given line. More...
 
Point LocationFromPosition (Surface *surface, const EditModel &model, SelectionPosition pos, Sci::Line topLine, const ViewStyle &vs, PointEnd pe)
 
Range RangeDisplayLine (Surface *surface, const EditModel &model, Sci::Line lineVisible, const ViewStyle &vs)
 
SelectionPosition SPositionFromLocation (Surface *surface, const EditModel &model, PointDocument pt, bool canReturnInvalid, bool charPosition, bool virtualSpace, const ViewStyle &vs)
 
SelectionPosition SPositionFromLineX (Surface *surface, const EditModel &model, Sci::Line lineDoc, int x, const ViewStyle &vs)
 Find the document position corresponding to an x coordinate on a particular document line. More...
 
Sci::Line DisplayFromPosition (Surface *surface, const EditModel &model, Sci::Position pos, const ViewStyle &vs)
 
Sci::Position StartEndDisplayLine (Surface *surface, const EditModel &model, Sci::Position pos, bool start, const ViewStyle &vs)
 
void DrawIndentGuide (Surface *surface, Sci::Line lineVisible, int lineHeight, XYPOSITION start, PRectangle rcSegment, bool highlight)
 
void DrawEOL (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, PRectangle rcLine, Sci::Line line, Sci::Position lineEnd, int xStart, int subLine, XYACCUMULATOR subLineStart, ColourOptional background)
 
void DrawFoldDisplayText (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line line, int xStart, PRectangle rcLine, int subLine, XYACCUMULATOR subLineStart, DrawPhase phase)
 
void DrawEOLAnnotationText (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line line, int xStart, PRectangle rcLine, int subLine, XYACCUMULATOR subLineStart, DrawPhase phase)
 
void DrawAnnotation (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line line, int xStart, PRectangle rcLine, int subLine, DrawPhase phase)
 
void DrawCarets (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line lineDoc, int xStart, PRectangle rcLine, int subLine) const
 
void DrawBackground (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, PRectangle rcLine, Range lineRange, Sci::Position posLineStart, int xStart, int subLine, ColourOptional background) const
 
void DrawForeground (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line lineVisible, PRectangle rcLine, Range lineRange, Sci::Position posLineStart, int xStart, int subLine, ColourOptional background)
 
void DrawIndentGuidesOverEmpty (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line line, Sci::Line lineVisible, PRectangle rcLine, int xStart, int subLine)
 
void DrawLine (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line line, Sci::Line lineVisible, int xStart, PRectangle rcLine, int subLine, DrawPhase phase)
 
void PaintText (Surface *surfaceWindow, const EditModel &model, PRectangle rcArea, PRectangle rcClient, const ViewStyle &vsDraw)
 
void FillLineRemainder (Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll, Sci::Line line, PRectangle rcArea, int subLine) const
 
Sci::Position FormatRange (bool draw, const Sci_RangeToFormat *pfr, Surface *surface, Surface *surfaceMeasure, const EditModel &model, const ViewStyle &vs)
 

Public Attributes

PrintParameters printParameters
 
std::unique_ptr< LineTabstopsldTabstops
 
int tabWidthMinimumPixels
 
bool hideSelection
 
bool drawOverstrikeCaret
 
bool bufferedDraw
 In bufferedDraw mode, graphics operations are drawn to a pixmap and then copied to the screen. More...
 
PhasesDraw phasesDraw
 
int lineWidthMaxSeen
 
bool additionalCaretsBlink
 
bool additionalCaretsVisible
 
bool imeCaretBlockOverride
 
std::unique_ptr< SurfacepixmapLine
 
std::unique_ptr< SurfacepixmapIndentGuide
 
std::unique_ptr< SurfacepixmapIndentGuideHighlight
 
LineLayoutCache llc
 
PositionCache posCache
 
int tabArrowHeight
 
DrawTabArrowFn customDrawTabArrow
 Some platforms, notably PLAT_CURSES, do not support Scintilla's native DrawTabArrow function for drawing tab characters. More...
 
DrawWrapMarkerFn customDrawWrapMarker
 

Detailed Description

EditView draws the main text area.

Definition at line 50 of file EditView.h.

Member Enumeration Documentation

◆ PhasesDraw

In phasesTwo mode, drawing is performed in two phases, first the background and then the foreground.

This avoids chopping off characters that overlap the next run. In multiPhaseDraw mode, drawing is performed in multiple phases with each phase drawing one feature over the whole drawing area, instead of within one line. This allows text to overlap from one line to the next.

Enumerator
phasesOne 
phasesTwo 
phasesMultiple 

Definition at line 67 of file EditView.h.

Constructor & Destructor Documentation

◆ EditView() [1/3]

◆ EditView() [2/3]

Scintilla::EditView::EditView ( const EditView )
delete

◆ EditView() [3/3]

Scintilla::EditView::EditView ( EditView &&  )
delete

◆ ~EditView()

EditView::~EditView ( )
virtual

Definition at line 186 of file EditView.cxx.

Member Function Documentation

◆ AddTabstop()

bool EditView::AddTabstop ( Sci::Line  line,
int  x 
)

Definition at line 222 of file EditView.cxx.

References ldTabstops, and line.

Referenced by Scintilla::Editor::WndProc().

◆ AllocateGraphics()

void EditView::AllocateGraphics ( const ViewStyle vsDraw)

◆ ClearAllTabstops()

void EditView::ClearAllTabstops ( )
noexcept

Definition at line 207 of file EditView.cxx.

References ldTabstops.

Referenced by Scintilla::Editor::ClearAll(), and Scintilla::Editor::SetDocPointer().

◆ ClearTabstops()

bool EditView::ClearTabstops ( Sci::Line  line)
noexcept

Definition at line 218 of file EditView.cxx.

References line.

Referenced by Scintilla::Editor::WndProc().

◆ DisplayFromPosition()

◆ DrawAnnotation()

◆ DrawBackground()

◆ DrawCarets()

void EditView::DrawCarets ( Surface surface,
const EditModel model,
const ViewStyle vsDraw,
const LineLayout ll,
Sci::Line  lineDoc,
int  xStart,
PRectangle  rcLine,
int  subLine 
) const

Definition at line 1409 of file EditView.cxx.

References Scintilla::Caret::active, Scintilla::ViewStyle::additionalCaretColour, additionalCaretsBlink, additionalCaretsVisible, Scintilla::SelectionRange::anchor, Scintilla::ViewStyle::aveCharWidth, Scintilla::ViewStyle::bar, Scintilla::ViewStyle::block, Scintilla::PRectangle::bottom, Scintilla::EditModel::caret, Scintilla::SelectionRange::caret, Scintilla::ViewStyle::caretcolour, Scintilla::ViewStyle::CaretShapeForMode(), Scintilla::ViewStyle::caretWidth, Scintilla::LineLayout::chars, Scintilla::Selection::Count(), DrawBlockCaret(), Scintilla::ViewStyle::DrawCaretInsideSelection(), drawOverstrikeCaret, Scintilla::LineLayout::EndLineStyle(), Scintilla::Surface::FillRectangle(), hideSelection, imeCaretBlockOverride, Scintilla::LineLayout::InLine(), Scintilla::EditModel::inOverstrike, Scintilla::ViewStyle::IsCaretVisible(), Scintilla::SelectionPosition::IsValid(), Scintilla::PRectangle::left, Scintilla::Document::LenChar(), Scintilla::Document::Length(), Scintilla::ViewStyle::line, Scintilla::LineLayout::LineStart(), Scintilla::Document::LineStart(), Scintilla::Selection::Main(), Scintilla::Document::MovePositionOutsideChar(), Scintilla::LineLayout::numCharsBeforeEOL, Scintilla::LineLayout::numCharsInLine, Scintilla::Caret::on, Scintilla::EditModel::pdoc, Scintilla::EditModel::posDrag, Scintilla::SelectionPosition::Position(), Scintilla::LineLayout::positions, Scintilla::Selection::Range(), Scintilla::PRectangle::right, Scintilla::EditModel::sel, Scintilla::SelectionPosition::SetPosition(), Scintilla::SelectionPosition::SetVirtualSpace(), Scintilla::ViewStyle::styles, Scintilla::PRectangle::top, Scintilla::SelectionPosition::VirtualSpace(), and Scintilla::LineLayout::wrapIndent.

Referenced by PaintText().

◆ DrawEOL()

void EditView::DrawEOL ( Surface surface,
const EditModel model,
const ViewStyle vsDraw,
const LineLayout ll,
PRectangle  rcLine,
Sci::Line  line,
Sci::Position  lineEnd,
int  xStart,
int  subLine,
XYACCUMULATOR  subLineStart,
ColourOptional  background 
)

Definition at line 864 of file EditView.cxx.

References Scintilla::Caret::active, Scintilla::ViewStyle::aveCharWidth, Scintilla::ForeBackColours::back, Scintilla::PRectangle::bottom, Scintilla::EditModel::caret, Scintilla::ViewStyle::caretLineAlpha, Scintilla::ViewStyle::caretLineBackground, Scintilla::LineLayout::chars, Scintilla::LineLayout::containsCaret, ControlCharacterString(), Scintilla::Selection::Count(), customDrawWrapMarker, DrawFrame(), DrawTextBlob(), Scintilla::DrawWrapMarker(), Scintilla::SelectionSegment::Empty(), Scintilla::SelectionSegment::end, Scintilla::LineLayout::EndLineStyle(), EOLANNOTATION_HIDDEN, Scintilla::Document::EOLAnnotationStyledText(), Scintilla::ViewStyle::eolAnnotationVisible, FillLineRemainder(), Scintilla::Surface::FillRectangle(), Scintilla::ForeBackColours::fore, Scintilla::EditModel::GetFoldDisplayText(), Scintilla::ViewStyle::GetFrameWidth(), hideSelection, if(), Scintilla::Selection::InSelectionForEOL(), Scintilla::SelectionRange::Intersect(), Scintilla::ViewStyle::IsLineFrameOpaque(), Scintilla::ColourOptional::isSet, Scintilla::PRectangle::left, line, Scintilla::Document::LineEnd(), Scintilla::LineLayout::lines, Scintilla::LineLayout::LineStart(), Scintilla::Document::LineStart(), Scintilla::Selection::Main(), Scintilla::LineLayout::numCharsBeforeEOL, Scintilla::LineLayout::numCharsInLine, Scintilla::EditModel::pdoc, phasesDraw, phasesOne, Scintilla::SelectionPosition::Position(), Scintilla::LineLayout::positions, Scintilla::EditModel::primarySelection, Scintilla::Selection::Range(), Scintilla::SpecialRepresentations::RepresentationFromCharacter(), Scintilla::EditModel::reprs, Scintilla::PRectangle::right, SC_ALPHA_NOALPHA, SC_WRAPVISUALFLAG_END, SC_WRAPVISUALFLAGLOC_END_BY_TEXT, Scintilla::EditModel::sel, Scintilla::ViewStyle::selAdditionalAlpha, Scintilla::ViewStyle::selAdditionalForeground, Scintilla::ViewStyle::selAlpha, Scintilla::ViewStyle::selColours, SelectionBackground(), SimpleAlphaRectangle(), Scintilla::SelectionSegment::start, Scintilla::Representation::stringRep, STYLE_DEFAULT, Scintilla::LineLayout::styles, Scintilla::ViewStyle::styles, Scintilla::StyledText::text, TextBackground(), Scintilla::PRectangle::top, Scintilla::UTF8IsAscii(), Scintilla::SelectionPosition::VirtualSpace(), Scintilla::Selection::VirtualSpaceFor(), Scintilla::PRectangle::Width(), Scintilla::ViewStyle::WrapColour(), Scintilla::ViewStyle::wrapVisualFlags, and Scintilla::ViewStyle::wrapVisualFlagsLocation.

Referenced by DrawLine().

◆ DrawEOLAnnotationText()

void EditView::DrawEOLAnnotationText ( Surface surface,
const EditModel model,
const ViewStyle vsDraw,
const LineLayout ll,
Sci::Line  line,
int  xStart,
PRectangle  rcLine,
int  subLine,
XYACCUMULATOR  subLineStart,
DrawPhase  phase 
)

Definition at line 1194 of file EditView.cxx.

References Scintilla::Caret::active, Scintilla::ViewStyle::aveCharWidth, Scintilla::ViewStyle::Background(), Scintilla::IntegerRectangle::bottom, Scintilla::EditModel::caret, Scintilla::LineLayout::containsCaret, Scintilla::drawBack, Scintilla::drawIndicatorsFore, Scintilla::drawText, Scintilla::Surface::DrawTextNoClip(), Scintilla::Surface::DrawTextTransparent(), Scintilla::LineLayout::EndLineStyle(), EOLANNOTATION_BOXED, EOLANNOTATION_HIDDEN, Scintilla::Document::EOLAnnotationStyledText(), Scintilla::ViewStyle::eolAnnotationStyleOffset, Scintilla::ViewStyle::eolAnnotationVisible, FillLineRemainder(), Scintilla::Surface::FillRectangle(), Scintilla::EditModel::GetFoldDisplayText(), Scintilla::Document::GetMark(), Scintilla::PRectangle::left, Scintilla::IntegerRectangle::left, Scintilla::StyledText::length, line, Scintilla::Document::LineEnd(), Scintilla::LineLayout::lines, Scintilla::Surface::LineTo(), lineWidthMaxSeen, Scintilla::ViewStyle::maxAscent, Scintilla::Surface::MoveTo(), Scintilla::LineLayout::numCharsInLine, Scintilla::EditModel::pdoc, Scintilla::Surface::PenColour(), phasesDraw, phasesOne, Scintilla::LineLayout::positions, Scintilla::PRectangle::right, Scintilla::IntegerRectangle::right, Scintilla::EditModel::sel, Scintilla::StyledText::style, Scintilla::ViewStyle::styles, Scintilla::StyledText::text, TextBackground(), Scintilla::PRectangle::top, Scintilla::IntegerRectangle::top, Scintilla::EditModel::trackLineWidth, Scintilla::ValidStyledText(), Scintilla::Selection::VirtualSpaceFor(), and Scintilla::Surface::WidthText().

Referenced by DrawLine().

◆ DrawFoldDisplayText()

void EditView::DrawFoldDisplayText ( Surface surface,
const EditModel model,
const ViewStyle vsDraw,
const LineLayout ll,
Sci::Line  line,
int  xStart,
PRectangle  rcLine,
int  subLine,
XYACCUMULATOR  subLineStart,
DrawPhase  phase 
)

Definition at line 1100 of file EditView.cxx.

References Scintilla::Caret::active, Scintilla::ViewStyle::aveCharWidth, Scintilla::ForeBackColours::back, Scintilla::ViewStyle::Background(), Scintilla::IntegerRectangle::bottom, Scintilla::EditModel::caret, Scintilla::LineLayout::containsCaret, Scintilla::drawBack, Scintilla::drawIndicatorsFore, Scintilla::drawSelectionTranslucent, Scintilla::drawText, Scintilla::Surface::DrawTextNoClip(), Scintilla::Surface::DrawTextTransparent(), Scintilla::LineLayout::EndLineStyle(), FillLineRemainder(), Scintilla::Surface::FillRectangle(), Scintilla::EditModel::foldDisplayTextStyle, Scintilla::ForeBackColours::fore, Scintilla::EditModel::GetFoldDisplayText(), Scintilla::Document::GetMark(), hideSelection, Scintilla::Selection::InSelectionForEOL(), Scintilla::ColourOptional::isSet, Scintilla::PRectangle::left, Scintilla::IntegerRectangle::left, line, Scintilla::Document::LineEnd(), Scintilla::LineLayout::lines, Scintilla::Document::LineStart(), Scintilla::Surface::LineTo(), lineWidthMaxSeen, Scintilla::ViewStyle::maxAscent, Scintilla::Surface::MoveTo(), Scintilla::LineLayout::numCharsInLine, Scintilla::EditModel::pdoc, Scintilla::Surface::PenColour(), phasesDraw, phasesOne, Scintilla::LineLayout::positions, Scintilla::EditModel::primarySelection, Scintilla::PRectangle::right, Scintilla::IntegerRectangle::right, SC_ALPHA_NOALPHA, SC_FOLDDISPLAYTEXT_BOXED, Scintilla::EditModel::sel, Scintilla::ViewStyle::selAdditionalAlpha, Scintilla::ViewStyle::selAdditionalForeground, Scintilla::ViewStyle::selAlpha, Scintilla::ViewStyle::selColours, SelectionBackground(), SimpleAlphaRectangle(), STYLE_FOLDDISPLAYTEXT, Scintilla::ViewStyle::styles, text, TextBackground(), Scintilla::PRectangle::top, Scintilla::IntegerRectangle::top, Scintilla::EditModel::trackLineWidth, Scintilla::Selection::VirtualSpaceFor(), and Scintilla::Surface::WidthText().

Referenced by DrawLine().

◆ DrawForeground()

void EditView::DrawForeground ( Surface surface,
const EditModel model,
const ViewStyle vsDraw,
const LineLayout ll,
Sci::Line  lineVisible,
PRectangle  rcLine,
Range  lineRange,
Sci::Position  posLineStart,
int  xStart,
int  subLine,
ColourOptional  background 
)

Definition at line 1721 of file EditView.cxx.

References Scintilla::ForeBackColours::back, Scintilla::PRectangle::bottom, Scintilla::Selection::CharacterInSelection(), Scintilla::LineLayout::chars, Scintilla::Range::ContainsCharacter(), Scintilla::ViewStyle::controlCharSymbol, customDrawTabArrow, Scintilla::Document::decorations, DrawIndentGuide(), DrawTabArrow(), DrawTextBlob(), Scintilla::Surface::DrawTextNoClip(), Scintilla::Surface::DrawTextTransparent(), Scintilla::TextSegment::end(), Scintilla::Surface::FillRectangle(), Scintilla::Indicator::Flags(), Scintilla::StyleAndColour::fore, Scintilla::ForeBackColours::fore, hideSelection, Scintilla::LineLayout::hotspot, Scintilla::ViewStyle::hotspotColours, Scintilla::ViewStyle::hotspotUnderline, Scintilla::EditModel::hoverIndicatorPos, Scintilla::Document::IndentSize(), INDIC_TEXTFORE, Scintilla::ViewStyle::indicators, Scintilla::ViewStyle::indicatorsSetFore, Scintilla::PRectangle::Intersects(), Scintilla::Indicator::IsDynamic(), Scintilla::ColourOptional::isSet, Scintilla::ivNone, Scintilla::ivReal, Scintilla::PRectangle::left, Scintilla::ViewStyle::lineHeight, Scintilla::ViewStyle::maxAscent, Scintilla::ViewStyle::maxDescent, Scintilla::BreakFinder::More(), Scintilla::BreakFinder::Next(), Scintilla::EditModel::pdoc, Scintilla::Surface::PenColour(), phasesDraw, phasesOne, Scintilla::LineLayout::positions, Scintilla::TextSegment::representation, Scintilla::EditModel::reprs, Scintilla::PRectangle::right, Scintilla::Indicator::sacHover, Scintilla::Indicator::sacNormal, SC_INDICFLAG_VALUEFORE, SC_INDICVALUEMASK, Scintilla::EditModel::sel, Scintilla::ViewStyle::selAdditionalForeground, Scintilla::ViewStyle::selColours, Scintilla::ViewStyle::SelectionBackgroundDrawn(), Scintilla::ViewStyle::spaceWidth, Scintilla::Range::start, Scintilla::TextSegment::start, Scintilla::Representation::stringRep, Scintilla::StyleAndColour::style, STYLE_CONTROLCHAR, Scintilla::LineLayout::styles, Scintilla::ViewStyle::styles, tabArrowHeight, TextBackground(), Scintilla::PRectangle::top, Scintilla::Range::Valid(), Scintilla::ViewStyle::viewIndentationGuides, Scintilla::ViewStyle::viewWhitespace, Scintilla::ViewStyle::WhitespaceBackgroundDrawn(), Scintilla::ViewStyle::whitespaceColours, Scintilla::ViewStyle::whitespaceSize, Scintilla::ViewStyle::WhiteSpaceVisible(), Scintilla::wsInvisible, and Scintilla::LineLayout::xHighlightGuide.

Referenced by DrawLine().

◆ DrawIndentGuide()

void EditView::DrawIndentGuide ( Surface surface,
Sci::Line  lineVisible,
int  lineHeight,
XYPOSITION  start,
PRectangle  rcSegment,
bool  highlight 
)

◆ DrawIndentGuidesOverEmpty()

◆ DrawLine()

◆ DropGraphics()

void EditView::DropGraphics ( bool  freeObjects)

Definition at line 251 of file EditView.cxx.

References pixmapIndentGuide, pixmapIndentGuideHighlight, and pixmapLine.

Referenced by Scintilla::Editor::DropGraphics().

◆ FillLineRemainder()

◆ FormatRange()

Sci::Position EditView::FormatRange ( bool  draw,
const Sci_RangeToFormat pfr,
Surface surface,
Surface surfaceMeasure,
const EditModel model,
const ViewStyle vs 
)

Definition at line 2308 of file EditView.cxx.

References Scintilla::ViewStyle::alwaysShowCaretLineBackground, Scintilla::ForeBackColours::back, Scintilla::PRectangle::bottom, Sci_Rectangle::bottom, Scintilla::ViewStyle::braceBadLightIndicatorSet, Scintilla::ViewStyle::braceHighlightIndicatorSet, Sci_RangeToFormat::chrg, Scintilla::PositionCache::Clear(), Scintilla::PrintParameters::colourMode, Scintilla::LineLayout::containsCaret, Sci_CharacterRange::cpMax, Sci_CharacterRange::cpMin, Scintilla::drawAll, DrawLine(), Scintilla::Surface::DrawTextNoClip(), Scintilla::Document::EnsureStyledTo(), Scintilla::ViewStyle::fixedColumnWidth, Scintilla::Surface::FlushCachedState(), Scintilla::ForeBackColours::fore, Scintilla::PRectangle::FromInts(), if(), InvertedLight(), Scintilla::ColourOptional::isSet, Scintilla::ivNone, LayoutLine(), Scintilla::PRectangle::left, Sci_Rectangle::left, Scintilla::ViewStyle::leftMarginWidth, Scintilla::Document::Length(), Scintilla::ViewStyle::lineHeight, lineNumberPrintSpace, Scintilla::LineLayout::lines, Scintilla::LineLayout::LineStart(), Scintilla::Document::LineStart(), Scintilla::PrintParameters::magnification, Scintilla::ViewStyle::maxAscent, Scintilla::ViewStyle::ms, Scintilla::none, Scintilla::EditModel::pdoc, posCache, printParameters, Sci_RangeToFormat::rc, Scintilla::ViewStyle::Refresh(), Scintilla::PRectangle::right, Sci_Rectangle::right, Scintilla::ViewStyle::rightMarginWidth, SC_ALPHA_NOALPHA, SC_MARGIN_NUMBER, SC_PRINT_BLACKONWHITE, SC_PRINT_COLOURONWHITE, SC_PRINT_COLOURONWHITEDEFAULTBG, SC_PRINT_INVERTLIGHT, SC_PRINT_SCREENCOLOURS, SC_TECHNOLOGY_DEFAULT, Scintilla::Document::SciLineFromPosition(), Scintilla::ViewStyle::selAdditionalAlpha, Scintilla::ViewStyle::selAlpha, Scintilla::ViewStyle::selColours, Scintilla::ViewStyle::showCaretLineBackground, STYLE_DEFAULT, STYLE_LINENUMBER, Scintilla::ViewStyle::styles, Scintilla::Document::tabInChars, Scintilla::ViewStyle::technology, Scintilla::PRectangle::top, Sci_Rectangle::top, Scintilla::ViewStyle::viewIndentationGuides, Scintilla::ViewStyle::whitespaceColours, Scintilla::Surface::WidthText(), Scintilla::PrintParameters::wrapState, Scintilla::LineLayout::wrapWidthInfinite, and Scintilla::ViewStyle::zoomLevel.

Referenced by Scintilla::Editor::FormatRange().

◆ GetNextTabstop()

int EditView::GetNextTabstop ( Sci::Line  line,
int  x 
) const
noexcept

Definition at line 229 of file EditView.cxx.

References line.

Referenced by Scintilla::Editor::WndProc().

◆ LayoutLine()

void EditView::LayoutLine ( const EditModel model,
Sci::Line  line,
Surface surface,
const ViewStyle vstyle,
LineLayout ll,
int  width = LineLayout::wrapWidthInfinite 
)

Fill in the LineLayout data for the given line.

Copy the given line and its styles from the document into local arrays. Also determine the x position at which each character starts.

Definition at line 378 of file EditView.cxx.

References Scintilla::ViewStyle::aveCharWidth, Scintilla::character, Scintilla::Document::CharAt(), Scintilla::LineLayout::chars, Scintilla::LineLayout::checkTextAndStyle, Scintilla::EdgeProperties::column, Scintilla::ViewStyle::controlCharWidth, Scintilla::ViewStyle::ctrlCharPadding, EDGE_BACKGROUND, Scintilla::LineLayout::edgeColumn, Scintilla::ViewStyle::edgeState, Scintilla::TextSegment::end(), fill, Scintilla::Document::FindColumn(), Scintilla::Document::GetCharRange(), Scintilla::Document::GetStyleRange(), if(), Scintilla::Document::IndentSize(), Scintilla::LineLayout::invalid, Scintilla::IsSpaceOrTab(), Scintilla::ViewStyle::lastSegItalicsOffset, Scintilla::TextSegment::length, line, Scintilla::Document::LineEnd(), Scintilla::LineLayout::lines, Scintilla::Document::LineStart(), max, Scintilla::LineLayout::maxLineLength, Scintilla::PositionCache::MeasureWidths(), Scintilla::BreakFinder::More(), Scintilla::Document::MovePositionOutsideChar(), Scintilla::BreakFinder::Next(), NextTabstopPos(), NULL, Scintilla::LineLayout::numCharsBeforeEOL, Scintilla::LineLayout::numCharsInLine, Scintilla::EditModel::pdoc, PLATFORM_ASSERT, posCache, Scintilla::LineLayout::positions, Scintilla::TextSegment::representation, Scintilla::EditModel::reprs, SC_WRAPINDENT_DEEPINDENT, SC_WRAPINDENT_FIXED, SC_WRAPINDENT_INDENT, SC_WRAPVISUALFLAG_END, SC_WRAPVISUALFLAG_START, Scintilla::LineLayout::SetLineStart(), Scintilla::ViewStyle::someStylesForceCase, Scintilla::ViewStyle::spaceWidth, Scintilla::TextSegment::start, Scintilla::Representation::stringRep, STYLE_CONTROLCHAR, Scintilla::Document::StyleIndexAt(), Scintilla::LineLayout::styles, Scintilla::ViewStyle::styles, Scintilla::ViewStyle::tabWidth, Scintilla::ViewStyle::theEdge, Scintilla::LineLayout::validity, Scintilla::ViewStyle::viewEOL, Scintilla::LineLayout::widthLine, Scintilla::word, Scintilla::LineLayout::wrapIndent, Scintilla::ViewStyle::wrapIndentMode, Scintilla::ViewStyle::wrapState, Scintilla::ViewStyle::wrapVisualFlags, Scintilla::ViewStyle::wrapVisualStartIndent, Scintilla::LineLayout::wrapWidthInfinite, and Scintilla::LineLayout::xHighlightGuide.

Referenced by DisplayFromPosition(), FormatRange(), Scintilla::Editor::LinesSplit(), LocationFromPosition(), PaintText(), RangeDisplayLine(), Scintilla::Editor::SetAnnotationHeights(), SPositionFromLineX(), SPositionFromLocation(), StartEndDisplayLine(), Scintilla::Editor::WrapCount(), and Scintilla::Editor::WrapOneLine().

◆ LinesAddedOrRemoved()

void EditView::LinesAddedOrRemoved ( Sci::Line  lineOfPos,
Sci::Line  linesAdded 
)

Definition at line 237 of file EditView.cxx.

References ldTabstops, and line.

Referenced by Scintilla::Editor::NotifyModified().

◆ LinesOverlap()

bool EditView::LinesOverlap ( ) const
noexcept

Definition at line 203 of file EditView.cxx.

References phasesDraw, and phasesMultiple.

Referenced by Scintilla::Editor::InvalidateRange().

◆ LocationFromPosition()

◆ NextTabstopPos()

XYPOSITION EditView::NextTabstopPos ( Sci::Line  line,
XYPOSITION  x,
XYPOSITION  tabWidth 
) const
noexcept

Definition at line 211 of file EditView.cxx.

References line.

Referenced by LayoutLine().

◆ operator=() [1/2]

void Scintilla::EditView::operator= ( const EditView )
delete

◆ operator=() [2/2]

void Scintilla::EditView::operator= ( EditView &&  )
delete

◆ PaintText()

void EditView::PaintText ( Surface surfaceWindow,
const EditModel model,
PRectangle  rcArea,
PRectangle  rcClient,
const ViewStyle vsDraw 
)

Definition at line 2074 of file EditView.cxx.

References Scintilla::PRectangle::bottom, Scintilla::ViewStyle::braceBadLightIndicatorSet, Scintilla::ViewStyle::braceHighlightIndicatorSet, Scintilla::EditModel::braces, Scintilla::EditModel::bracesMatchStyle, bufferedDraw, Scintilla::SelectionRange::caret, Scintilla::EdgeProperties::colour, Scintilla::EdgeProperties::column, Scintilla::LineLayout::containsCaret, Scintilla::Surface::Copy(), Scintilla::Document::dbcsCodePage, Scintilla::Platform::DebugPrintf(), Scintilla::drawAll, Scintilla::drawBack, Scintilla::drawCarets, DrawCarets(), DrawFoldLines(), Scintilla::drawFoldLines, DrawLine(), Scintilla::ElapsedPeriod::Duration(), EDGE_LINE, EDGE_MULTILINE, Scintilla::ViewStyle::edgeState, Scintilla::Surface::FillRectangle(), Scintilla::PRectangle::FromInts(), Scintilla::Point::FromInts(), Scintilla::EditModel::GetHotSpotRange(), Scintilla::EditModel::GetVisibleOriginInMain(), hideSelection, Scintilla::EditModel::highlightGuideColumn, Scintilla::LineLayout::hotspot, Scintilla::SelectionPosition::IsValid(), LayoutLine(), Scintilla::PRectangle::left, Scintilla::ViewStyle::leftMarginWidth, Scintilla::ViewStyle::lineHeight, Scintilla::Document::LineStart(), lineWidthMaxSeen, llc, Scintilla::ViewStyle::marginInside, max, Scintilla::LineLayout::numCharsInLine, Scintilla::EditModel::pcs, Scintilla::EditModel::pdoc, phasesDraw, phasesMultiple, pixmapLine, PLATFORM_ASSERT, Scintilla::EditModel::posDrag, Scintilla::SelectionPosition::Position(), Scintilla::LineLayout::positions, Scintilla::Selection::RangeMain(), Scintilla::LineLayout::RestoreBracesHighlight(), RetrieveLineLayout(), Scintilla::PRectangle::right, Scintilla::ViewStyle::rightMarginWidth, SC_CP_UTF8, Scintilla::Document::SciLineFromPosition(), Scintilla::EditModel::sel, Scintilla::AutoLineLayout::Set(), Scintilla::LineLayout::SetBracesHighlight(), Scintilla::Surface::SetClip(), Scintilla::Surface::SetDBCSMode(), Scintilla::Surface::SetUnicodeMode(), Scintilla::ViewStyle::spaceWidth, STYLE_BRACEBAD, STYLE_BRACELIGHT, STYLE_DEFAULT, Scintilla::ViewStyle::styles, Scintilla::ViewStyle::textStart, Scintilla::ViewStyle::theEdge, Scintilla::ViewStyle::theMultiEdge, Scintilla::PRectangle::top, Scintilla::EditModel::TopLineOfMain(), Scintilla::EditModel::wrapWidth, Scintilla::Point::x, and Scintilla::EditModel::xOffset.

Referenced by Scintilla::Editor::Paint().

◆ RangeDisplayLine()

◆ RefreshPixMaps()

◆ RetrieveLineLayout()

◆ SetPhasesDraw()

bool EditView::SetPhasesDraw ( int  phases)
noexcept

Definition at line 196 of file EditView.cxx.

Referenced by Scintilla::Editor::WndProc().

◆ SetTwoPhaseDraw()

bool EditView::SetTwoPhaseDraw ( bool  twoPhaseDraw)
noexcept

Definition at line 189 of file EditView.cxx.

Referenced by Scintilla::Editor::WndProc().

◆ SPositionFromLineX()

SelectionPosition EditView::SPositionFromLineX ( Surface surface,
const EditModel model,
Sci::Line  lineDoc,
int  x,
const ViewStyle vs 
)

Find the document position corresponding to an x coordinate on a particular document line.

Ensure is between whole characters when document is in multi-byte or UTF-8 mode. This method is used for rectangular selections and does not work on wrapped lines.

Definition at line 698 of file EditView.cxx.

References Scintilla::Range::end, Scintilla::LineLayout::EndLineStyle(), Scintilla::LineLayout::FindPositionFromX(), LayoutLine(), Scintilla::Document::LineStart(), llc, Scintilla::Document::MovePositionOutsideChar(), Scintilla::EditModel::pdoc, Scintilla::LineLayout::positions, RetrieveLineLayout(), Scintilla::Range::start, Scintilla::ViewStyle::styles, Scintilla::LineLayout::SubLineRange(), Scintilla::LineLayout::visibleOnly, and Scintilla::EditModel::wrapWidth.

Referenced by Scintilla::Editor::SetRectangularRange(), and Scintilla::Editor::SPositionFromLineX().

◆ SPositionFromLocation()

◆ StartEndDisplayLine()

Member Data Documentation

◆ additionalCaretsBlink

bool Scintilla::EditView::additionalCaretsBlink

Definition at line 72 of file EditView.h.

Referenced by DrawCarets(), EditView(), and Scintilla::Editor::WndProc().

◆ additionalCaretsVisible

bool Scintilla::EditView::additionalCaretsVisible

Definition at line 73 of file EditView.h.

Referenced by DrawCarets(), EditView(), and Scintilla::Editor::WndProc().

◆ bufferedDraw

bool Scintilla::EditView::bufferedDraw

In bufferedDraw mode, graphics operations are drawn to a pixmap and then copied to the screen.

This avoids flashing but is about 30% slower.

Definition at line 61 of file EditView.h.

Referenced by EditView(), Scintilla::Editor::Paint(), Scintilla::Editor::PaintSelMargin(), PaintText(), Scintilla::Editor::RefreshPixMaps(), and Scintilla::Editor::WndProc().

◆ customDrawTabArrow

DrawTabArrowFn Scintilla::EditView::customDrawTabArrow

Some platforms, notably PLAT_CURSES, do not support Scintilla's native DrawTabArrow function for drawing tab characters.

Allow those platforms to override it instead of creating a new method in the Surface class that existing platforms must implement as empty.

Definition at line 89 of file EditView.h.

Referenced by DrawForeground(), and EditView().

◆ customDrawWrapMarker

DrawWrapMarkerFn Scintilla::EditView::customDrawWrapMarker

Definition at line 90 of file EditView.h.

Referenced by DrawEOL(), DrawLine(), and EditView().

◆ drawOverstrikeCaret

bool Scintilla::EditView::drawOverstrikeCaret

Definition at line 57 of file EditView.h.

Referenced by DrawCarets(), and EditView().

◆ hideSelection

◆ imeCaretBlockOverride

◆ ldTabstops

std::unique_ptr<LineTabstops> Scintilla::EditView::ldTabstops

Definition at line 53 of file EditView.h.

Referenced by AddTabstop(), ClearAllTabstops(), and LinesAddedOrRemoved().

◆ lineWidthMaxSeen

int Scintilla::EditView::lineWidthMaxSeen

◆ llc

◆ phasesDraw

◆ pixmapIndentGuide

std::unique_ptr<Surface> Scintilla::EditView::pixmapIndentGuide

Definition at line 78 of file EditView.h.

Referenced by AllocateGraphics(), DrawIndentGuide(), DropGraphics(), and RefreshPixMaps().

◆ pixmapIndentGuideHighlight

std::unique_ptr<Surface> Scintilla::EditView::pixmapIndentGuideHighlight

Definition at line 79 of file EditView.h.

Referenced by AllocateGraphics(), DrawIndentGuide(), DropGraphics(), and RefreshPixMaps().

◆ pixmapLine

std::unique_ptr<Surface> Scintilla::EditView::pixmapLine

◆ posCache

PositionCache Scintilla::EditView::posCache

◆ printParameters

PrintParameters Scintilla::EditView::printParameters

Definition at line 52 of file EditView.h.

Referenced by FormatRange(), and Scintilla::Editor::WndProc().

◆ tabArrowHeight

int Scintilla::EditView::tabArrowHeight

Definition at line 84 of file EditView.h.

Referenced by DrawForeground(), and EditView().

◆ tabWidthMinimumPixels

int Scintilla::EditView::tabWidthMinimumPixels

Definition at line 54 of file EditView.h.

Referenced by EditView(), and Scintilla::Editor::WndProc().


The documentation for this class was generated from the following files: