• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • applications API Reference
  • KDE Home
  • Contact Us
 

Kate

Public Types | Public Member Functions | List of all members
KateRenderer Class Reference

#include <katerenderer.h>

Public Types

enum  caretStyles { Line, Block, Underline, Half }
 

Public Member Functions

 KateRenderer (KateDocument *doc, Kate::TextFolding &folding, KateView *view=0)
 
 ~KateRenderer ()
 
KTextEditor::Attribute::Ptr attribute (uint pos) const
 
KateRenderer::caretStyles caretStyle () const
 
KateRendererConfig * config () const
 
const QFont & currentFont () const
 
const QFontMetricsF & currentFontMetrics () const
 
int cursorToX (const KateTextLayout &range, int col, bool returnPastLine=false) const
 
int cursorToX (const KateTextLayout &range, const KTextEditor::Cursor &pos, bool returnPastLine=false) const
 
QList< QTextLayout::FormatRange > decorationsForLine (const Kate::TextLine &textLine, int line, bool selectionsOnly=false, KateRenderRange *completionHighlight=0L, bool completionSelected=false) const
 
void decreaseFontSizes ()
 
KateDocument * doc () const
 
uint documentHeight () const
 
bool drawCaret () const
 
Kate::TextFolding & folding () const
 
uint fontHeight () const
 
bool getSelectionBounds (int line, int lineLength, int &start, int &end) const
 
void increaseFontSizes ()
 
bool isLineRightToLeft (KateLineLayoutPtr lineLayout) const
 
bool isPrinterFriendly () const
 
void layoutLine (KateLineLayoutPtr line, int maxwidth=-1, bool cacheLayout=false) const
 
int lineHeight () const
 
void paintTextLine (QPainter &paint, KateLineLayoutPtr range, int xStart, int xEnd, const KTextEditor::Cursor *cursor=0L)
 
void paintTextLineBackground (QPainter &paint, KateLineLayoutPtr layout, int currentViewLine, int xStart, int xEnd)
 
void setCaretOverrideColor (const QColor &color)
 
void setCaretStyle (KateRenderer::caretStyles style)
 
void setDrawCaret (bool drawCaret)
 
void setIndentWidth (int indentWidth)
 
void setPrinterFriendly (bool printerFriendly)
 
void setShowIndentLines (bool showLines)
 
void setShowSelections (bool showSelections)
 
void setShowTabs (bool showTabs)
 
void setShowTrailingSpaces (bool showSpaces)
 
void setTabWidth (int tabWidth)
 
bool showIndentLines () const
 
bool showSelections () const
 
bool showTabs () const
 
bool showTrailingSpaces () const
 
qreal spaceWidth () const
 
KTextEditor::Attribute::Ptr specificAttribute (int context) const
 
void updateAttributes ()
 
void updateConfig ()
 
KateView * view () const
 
KTextEditor::Cursor xToCursor (const KateTextLayout &range, int x, bool returnPastLine=false) const
 

Detailed Description

Handles all of the work of rendering the text (used for the views and printing)

Definition at line 50 of file katerenderer.h.

Member Enumeration Documentation

enum KateRenderer::caretStyles

Style of Caret.

The caret is displayed as a vertical bar (Line), a filled box (Block), a horizontal bar (Underline), or a half-height filled box (Half). The default is Line.

Line           Block          Underline           Half

_ ######### _ _

__| | #####| |# __| | __| |

/ _' | ##/ _' |# / _' | / _' |

| (_| | #| (#| |# | (_| | #| (#| |

__,_| ##__,_|# __,_| ##__,_|

Enumerator
Line 
Block 
Underline 
Half 

Definition at line 69 of file katerenderer.h.

Constructor & Destructor Documentation

KateRenderer::KateRenderer ( KateDocument *  doc,
Kate::TextFolding &  folding,
KateView *  view = 0 
)
explicit

Constructor.

Parameters
docdocument to render
foldingfolding information
viewview which is output (0 for example for rendering to print)

Definition at line 49 of file katerenderer.cpp.

KateRenderer::~KateRenderer ( )

Destructor.

Definition at line 69 of file katerenderer.cpp.

Member Function Documentation

KTextEditor::Attribute::Ptr KateRenderer::attribute ( uint  pos) const

This takes an in index, and returns all the attributes for it.

For example, if you have a ktextline, and want the KTextEditor::Attribute for a given position, do:

attribute(myktextline->attribute(position));

Definition at line 79 of file katerenderer.cpp.

KateRenderer::caretStyles KateRenderer::caretStyle ( ) const
inline

The style of the caret (text cursor) to be painted.

Returns
caretStyle

Definition at line 127 of file katerenderer.h.

KateRendererConfig* KateRenderer::config ( ) const
inline

Configuration.

Definition at line 362 of file katerenderer.h.

const QFont & KateRenderer::currentFont ( ) const

Definition at line 805 of file katerenderer.cpp.

const QFontMetricsF & KateRenderer::currentFontMetrics ( ) const

Definition at line 810 of file katerenderer.cpp.

int KateRenderer::cursorToX ( const KateTextLayout &  range,
int  col,
bool  returnPastLine = false 
) const

Returns the x position of cursor col on the line range.

Definition at line 1048 of file katerenderer.cpp.

int KateRenderer::cursorToX ( const KateTextLayout &  range,
const KTextEditor::Cursor &  pos,
bool  returnPastLine = false 
) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 1053 of file katerenderer.cpp.

QList< QTextLayout::FormatRange > KateRenderer::decorationsForLine ( const Kate::TextLine &  textLine,
int  line,
bool  selectionsOnly = false,
KateRenderRange *  completionHighlight = 0L,
bool  completionSelected = false 
) const

The ultimate decoration creation function.

Parameters
rangeline to return decoration for
selectionsOnlyreturn decorations for selections and/or dynamic highlighting.

Definition at line 340 of file katerenderer.cpp.

void KateRenderer::decreaseFontSizes ( )

Definition at line 148 of file katerenderer.cpp.

KateDocument* KateRenderer::doc ( ) const
inline

Returns the document to which this renderer is bound.

Definition at line 92 of file katerenderer.h.

uint KateRenderer::documentHeight ( ) const

Definition at line 820 of file katerenderer.cpp.

bool KateRenderer::drawCaret ( ) const
inline

Determine whether the caret (text cursor) will be drawn.

Returns
should it be drawn?

Definition at line 115 of file katerenderer.h.

Kate::TextFolding& KateRenderer::folding ( ) const
inline

Returns the folding info to which this renderer is bound.

Returns
folding info

Definition at line 98 of file katerenderer.h.

uint KateRenderer::fontHeight ( ) const

Definition at line 815 of file katerenderer.cpp.

bool KateRenderer::getSelectionBounds ( int  line,
int  lineLength,
int &  start,
int &  end 
) const

Definition at line 830 of file katerenderer.cpp.

void KateRenderer::increaseFontSizes ( )

Change to a different font (soon to be font set?)

Definition at line 140 of file katerenderer.cpp.

bool KateRenderer::isLineRightToLeft ( KateLineLayoutPtr  lineLayout) const

This is a smaller QString::isRightToLeft().

It's also marked as internal to kate instead of internal to Qt, so we can modify. This method searches for the first strong character in the paragraph and then returns its direction. In case of a line without any strong characters, the direction is forced to be LTR.

Back in KDE 4.1 this method counted chars, which lead to unwanted side effects. (see https://bugs.kde.org/show_bug.cgi?id=178594). As this function is internal the way it work will probably change between releases. Be warned!

Definition at line 1010 of file katerenderer.cpp.

bool KateRenderer::isPrinterFriendly ( ) const
Returns
whether the renderer is configured to paint in a printer-friendly fashion.

Definition at line 158 of file katerenderer.cpp.

void KateRenderer::layoutLine ( KateLineLayoutPtr  line,
int  maxwidth = -1,
bool  cacheLayout = false 
) const

Text width & height calculation functions...

Definition at line 912 of file katerenderer.cpp.

int KateRenderer::lineHeight ( ) const

Definition at line 825 of file katerenderer.cpp.

void KateRenderer::paintTextLine ( QPainter &  paint,
KateLineLayoutPtr  range,
int  xStart,
int  xEnd,
const KTextEditor::Cursor *  cursor = 0L 
)

This is the ultimate function to perform painting of a text line.

The text line is painted from the upper limit of (0,0). To move that, apply a transform to your painter.

Parameters
paintpainter to use
rangelayout to use in painting this line
xStartstarting width in pixels.
xEndending width in pixels.
cursorposition of the caret, if placed on the current line.

Definition at line 506 of file katerenderer.cpp.

void KateRenderer::paintTextLineBackground ( QPainter &  paint,
KateLineLayoutPtr  layout,
int  currentViewLine,
int  xStart,
int  xEnd 
)

Paint the background of a line.

Split off from the main paintTextLine method to make it smaller. As it's being called only once per line it shouldn't noticably affect performance and it helps readability a LOT.

Parameters
paintpainter to use
layoutlayout to use in painting this line
currentViewLineif one of the view lines is the current line, set this to the index; otherwise -1.
xStartstarting width in pixels.
xEndending width in pixels.

Definition at line 172 of file katerenderer.cpp.

void KateRenderer::setCaretOverrideColor ( const QColor &  color)

Set a brush with which to override drawing of the caret.

Set to QColor() to clear.

Definition at line 1083 of file katerenderer.cpp.

void KateRenderer::setCaretStyle ( KateRenderer::caretStyles  style)

Set the style of caret to be painted.

Parameters
stylestyle to set

Definition at line 100 of file katerenderer.cpp.

void KateRenderer::setDrawCaret ( bool  drawCaret)

Set whether the caret (text cursor) will be drawn.

Parameters
drawCaretshould caret be drawn?

Definition at line 95 of file katerenderer.cpp.

void KateRenderer::setIndentWidth ( int  indentWidth)

Sets the width of the tab.

Helps performance.

Parameters
indentWidthnew indent width

Definition at line 130 of file katerenderer.cpp.

void KateRenderer::setPrinterFriendly ( bool  printerFriendly)

Configure this renderer to paint in a printer-friendly fashion.

Sets the other options appropriately if true.

Definition at line 163 of file katerenderer.cpp.

void KateRenderer::setShowIndentLines ( bool  showLines)

Set whether a guide should be painted to help identifying indent lines.

Parameters
showLinesshow the indent lines?

Definition at line 125 of file katerenderer.cpp.

void KateRenderer::setShowSelections ( bool  showSelections)

Set whether the view's selections should be shown.

The default is true.

Parameters
showSelectionsshow the selections?

Definition at line 135 of file katerenderer.cpp.

void KateRenderer::setShowTabs ( bool  showTabs)

Set whether a mark should be painted to help identifying tabs.

Parameters
showTabsshow the tabs?

Definition at line 105 of file katerenderer.cpp.

void KateRenderer::setShowTrailingSpaces ( bool  showSpaces)

Set whether a mark should be painted for trailing spaces.

Definition at line 110 of file katerenderer.cpp.

void KateRenderer::setTabWidth ( int  tabWidth)

Sets the width of the tab.

Helps performance.

Parameters
tabWidthnew tab width

Definition at line 115 of file katerenderer.cpp.

bool KateRenderer::showIndentLines ( ) const
Returns
whether indent lines should be shown
indent lines should be shown

Definition at line 120 of file katerenderer.cpp.

bool KateRenderer::showSelections ( ) const
inline

Show the view's selection?

Returns
show sels?

Definition at line 191 of file katerenderer.h.

bool KateRenderer::showTabs ( ) const
inline
Returns
whether tabs should be shown (ie. a small mark drawn to identify a tab)
tabs should be shown

Definition at line 145 of file katerenderer.h.

bool KateRenderer::showTrailingSpaces ( ) const
inline
Returns
whether trailing spaces should be shown.

Definition at line 156 of file katerenderer.h.

qreal KateRenderer::spaceWidth ( ) const

Definition at line 907 of file katerenderer.cpp.

KTextEditor::Attribute::Ptr KateRenderer::specificAttribute ( int  context) const

Definition at line 87 of file katerenderer.cpp.

void KateRenderer::updateAttributes ( )

update the highlighting attributes (for example after an hl change or after hl config changed)

Definition at line 74 of file katerenderer.cpp.

void KateRenderer::updateConfig ( )

Definition at line 877 of file katerenderer.cpp.

KateView* KateRenderer::view ( ) const
inline

Returns the view to which this renderer is bound.

Definition at line 103 of file katerenderer.h.

KTextEditor::Cursor KateRenderer::xToCursor ( const KateTextLayout &  range,
int  x,
bool  returnPastLine = false 
) const

Returns the real cursor which is occupied by the specified x value, or that closest to it.

If returnPastLine is true, the column will be extrapolated out with the assumption that the extra characters are spaces.

Definition at line 1071 of file katerenderer.cpp.


The documentation for this class was generated from the following files:
  • katerenderer.h
  • katerenderer.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat May 9 2020 03:57:01 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Kate

Skip menu "Kate"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

applications API Reference

Skip menu "applications API Reference"
  •   kate
  •       kate
  •   KTextEditor
  •   Kate
  • Konsole

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal