okteta
abstractbytearraycolumnrenderer.cpp
Go to the documentation of this file.
48 AbstractByteArrayColumnRenderer::AbstractByteArrayColumnRenderer( AbstractColumnStylist* stylist,
49 AbstractByteArrayModel* byteArrayModel, ByteArrayTableLayout* layout, ByteArrayTableRanges* ranges )
106 bool AbstractByteArrayColumnRenderer::setSpacing( PixelX byteSpacingWidth, int NoGB, PixelX groupSpacingWidth )
109 if( mByteSpacingWidth == byteSpacingWidth && mNoOfGroupedBytes == NoGB && mGroupSpacingWidth == groupSpacingWidth )
178 mSpacingTrigger = noOfGroupedBytes() > 0 ? noOfGroupedBytes()-1 : mLastLinePos+1; // last ensures to never trigger the spacing
243 LinePositionRange AbstractByteArrayColumnRenderer::linePositionsOfX( PixelX PX, PixelX PW ) const
296 LinePositionRange AbstractByteArrayColumnRenderer::linePositionsOfColumnXs( PixelX pixelX, PixelX pixelWidth ) const
323 PixelX AbstractByteArrayColumnRenderer::columnXOfLinePosition( LinePosition linePosition ) const
328 PixelX AbstractByteArrayColumnRenderer::columnRightXOfLinePosition( LinePosition linePosition ) const
334 PixelXRange AbstractByteArrayColumnRenderer::xsOfLinePositionsInclSpaces( const LinePositionRange& linePositions ) const
336 const PixelX x = (linePositions.start()>0) ? rightXOfLinePosition( linePositions.nextBeforeStart() ) + 1 :
338 const PixelX rightX = (linePositions.end()<mLastLinePos) ? xOfLinePosition( linePositions.nextBehindEnd() ) - 1 :
344 PixelXRange AbstractByteArrayColumnRenderer::columnXsOfLinePositionsInclSpaces( const LinePositionRange& linePositions ) const
346 const PixelX x = (linePositions.start()>0) ? columnRightXOfLinePosition( linePositions.nextBeforeStart() ) + 1 :
348 const PixelX rightX = (linePositions.end()<mLastLinePos) ? columnXOfLinePosition( linePositions.nextBehindEnd() ) - 1 :
384 void AbstractByteArrayColumnRenderer::renderFirstLine( QPainter* painter, const PixelXRange& Xs, Line firstLineIndex )
400 void AbstractByteArrayColumnRenderer::renderLinePositions( QPainter* painter, Line lineIndex, const LinePositionRange& _linePositions )
423 AddressRange::fromWidth( mLayout->indexAtCoord(Coord( linePositions.start(), lineIndex )), linePositions.width() );
432 //kDebug() << QString("painting linePositions (painter%1-%2L%3): ").arg(linePositions.start()).arg(linePositions.end()).arg(lineIndex)
453 else if( positionsPart.start() == firstLinePosition && selectedRange.includes(byteIndizesPart.start()) )
458 else if( positionsPart.end() == linePositions.end() && selectedRange.includes(byteIndizesPart.end()) )
468 const bool hasMarkingBeforeSelectionEnd = ( hasMarking && markedRange.start() <= selectedRange.end() );
470 byteIndizesPart.setEnd( hasMarkingBeforeSelectionEnd ? markedRange.nextBeforeStart() : selectedRange.end() );
499 void AbstractByteArrayColumnRenderer::renderPlain( QPainter* painter, const LinePositionRange& linePositions, Address byteIndex )
516 for( LinePosition linePosition=linePositions.start(); linePosition<=linePositions.end(); ++linePosition,++byteIndex )
527 nextBookmarkOffset = bit.hasNext() ? bit.next().offset() : -1;//TODO )&& ( bit->offset() <= LastIndex );
544 void AbstractByteArrayColumnRenderer::renderSelection( QPainter* painter, const LinePositionRange& linePositions, Address byteIndex, int flag )
563 for( LinePosition linePosition=linePositions.start(); linePosition<=linePositions.end(); ++linePosition,++byteIndex )
574 nextBookmarkOffset = bit.hasNext() ? bit.next().offset() : -1;//TODO )&& ( bit->offset() <= LastIndex );
590 void AbstractByteArrayColumnRenderer::renderSelectionSpaceBehind( QPainter* painter, LinePosition linePosition )
599 void AbstractByteArrayColumnRenderer::renderMarking( QPainter* painter, const LinePositionRange& linePositions, Address byteIndex, int flag )
629 void AbstractByteArrayColumnRenderer::renderRange( QPainter* painter, const QBrush& brush, const LinePositionRange& linePositions, int flag )
642 void AbstractByteArrayColumnRenderer::renderSpaceBehind( QPainter* painter, const QBrush& brush, LinePosition linePosition )
689 void AbstractByteArrayColumnRenderer::renderFramedByte( QPainter* painter, Address byteIndex, FrameStyle frameStyle )
697 const KColorScheme::ColorSet colorSet = isInSelection ? KColorScheme::Selection : KColorScheme::View;
721 const KColorScheme::ColorSet colorSet = isInSelection ? KColorScheme::Selection : KColorScheme::View;
732 bool AbstractByteArrayColumnRenderer::getNextSelectedAddressRange( AddressRange* _selection, unsigned int* _flag,
762 bool AbstractByteArrayColumnRenderer::getNextMarkedAddressRange( AddressRange* _markedSection, unsigned int* _flag,
AbstractByteArrayColumnRenderer(AbstractColumnStylist *stylist, AbstractByteArrayModel *byteArrayModel, ByteArrayTableLayout *layout, ByteArrayTableRanges *ranges)
Definition: abstractbytearraycolumnrenderer.cpp:48
void renderByte(QPainter *painter, Address byteIndex)
paints the byte with background.
Definition: abstractbytearraycolumnrenderer.cpp:651
void renderBookmark(QPainter *painter, const QBrush &brush)
Definition: abstractbytearraycolumnrenderer.cpp:622
bool mByteTypeColored
Definition: abstractbytearraycolumnrenderer.h:237
PixelX * mLinePosLeftPixelX
pointer to array with buffered linePositions (relative to column position) a spacing gets assigned to...
Definition: abstractbytearraycolumnrenderer.h:231
could it be useful to hide the data access behind an iterator? * class KDataBufferIterator { public: ...
Definition: abstractbytearraymodel.h:79
virtual void recalcByteWidth()
default implementation sets byte width to one digit width
Definition: abstractbytearraycolumnrenderer.cpp:170
void restrictToXSpan(PixelXRange *xSpan) const
Definition: abstractcolumnrenderer.cpp:54
void renderFramedByte(QPainter *painter, Address byteIndex, FrameStyle style)
paints the byte with background and a frame around.
Definition: abstractbytearraycolumnrenderer.cpp:689
KDE::NumberRange< LinePosition, LinePositionSize > LinePositionRange
Definition: linepositionrange.h:34
const AddressRange * overlappingMarking(const AddressRange &range) const
Definition: bytearraytableranges.cpp:203
a class to control all the ranges like marking and selections holds also all modified ranges and merg...
Definition: bytearraytableranges.h:45
Size noOfBytesPerLine() const
returns number of bytes per line
Definition: bytearraytablelayout.h:209
LinePosition linePositionOfColumnX(PixelX x) const
returns byte pos at pixel with relative x-coord x
Definition: abstractbytearraycolumnrenderer.cpp:282
void prepareRendering(const PixelXRange &Xs)
Definition: abstractbytearraycolumnrenderer.cpp:368
PixelX mDigitWidth
Definition: abstractbytearraycolumnrenderer.h:209
void renderPlain(QPainter *painter, const LinePositionRange &linePositions, Address byteIndex)
Definition: abstractbytearraycolumnrenderer.cpp:499
static const PixelX DefaultByteSpacingWidth
Definition: oktetagui.h:46
void renderRange(QPainter *painter, const QBrush &brush, const LinePositionRange &linePositions, int flag)
Definition: abstractbytearraycolumnrenderer.cpp:629
void resetXBuffer()
creates new buffer for x-values; to be called on any change of NoOfBytesPerLine or metrics ...
Definition: abstractbytearraycolumnrenderer.cpp:77
const CharCodec * mCharCodec
Definition: abstractbytearraycolumnrenderer.h:206
PixelX xOfLinePosition(LinePosition posInLine) const
returns absolute x-coord of byte at position posInLine
Definition: abstractbytearraycolumnrenderer.cpp:271
void renderSelection(QPainter *painter, const LinePositionRange &linePositions, Address byteIndex, int flag)
Definition: abstractbytearraycolumnrenderer.cpp:544
virtual Character decode(Byte byte) const =0
PixelX groupSpacingWidth() const
Definition: abstractbytearraycolumnrenderer.h:252
bool selectionIncludes(Address index) const
Definition: bytearraytableranges.h:141
LinePositionRange linePositions(Line line) const
returns the used positions in line
Definition: bytearraytablelayout.cpp:267
virtual void renderByteText(QPainter *painter, Byte byte, Character charByte, const QColor &color) const =0
const AddressRange * firstOverlappingSelection(const AddressRange &range) const
Definition: bytearraytableranges.cpp:197
static const PixelX DefaultGroupSpacingWidth
Definition: oktetagui.h:47
Definition: bookmarkable.h:39
LinePositionRange linePositionsOfColumnXs(PixelX x, PixelX width) const
returns byte linePositions covered by pixels with relative x-coord x
Definition: abstractbytearraycolumnrenderer.cpp:296
virtual Okteta::BookmarksConstIterator createBookmarksConstIterator() const =0
QFontMetrics mFontMetrics
Definition: abstractbytearraycolumnrenderer.h:213
the logical layout of a byte array table for a view
Definition: bytearraytablelayout.h:61
int mSpacingTrigger
Definition: abstractbytearraycolumnrenderer.h:245
Bookmarkable * mBookmarks
Definition: abstractbytearraycolumnrenderer.h:204
void setByteWidth(int byteWidth)
Definition: abstractbytearraycolumnrenderer.h:273
bool hasContent(Line line) const
returns true if the line has content
Definition: bytearraytablelayout.cpp:293
LinePositionRange mRenderLinePositions
Definition: abstractbytearraycolumnrenderer.h:241
PixelX rightXOfLinePosition(LinePosition posInLine) const
returns right absolute x-coord of byte at position posInLine
Definition: abstractbytearraycolumnrenderer.cpp:276
PixelX mRenderWidth
Definition: abstractbytearraycolumnrenderer.h:244
bool hasSelection() const
Definition: bytearraytableranges.h:136
PixelXRange xsOfLinePositionsInclSpaces(const LinePositionRange &linePositions) const
returns the
Definition: abstractbytearraycolumnrenderer.cpp:334
PixelX mByteSpacingWidth
width of inserting cursor in pixel
Definition: abstractbytearraycolumnrenderer.h:221
LinePosition magneticLinePositionOfX(PixelX x) const
returns byte pos at pixel with absolute x-coord x, and sets the flag to true if we are closer to the ...
Definition: abstractbytearraycolumnrenderer.cpp:222
void recalcX()
Definition: abstractbytearraycolumnrenderer.cpp:176
static NumberRange fromWidth(AddressstartIndex, Sizewidth)
constructs a range by width
PixelX mRenderX
Definition: abstractbytearraycolumnrenderer.h:243
PixelXRange columnXsOfLinePositionsInclSpaces(const LinePositionRange &linePositions) const
Definition: abstractbytearraycolumnrenderer.cpp:344
void renderCursor(QPainter *painter, Address byteIndex)
paints a cursor based on the type of the byte.
Definition: abstractbytearraycolumnrenderer.cpp:715
bool endsBehind(T Value) const
returns true if the range ends later than index.
Definition: range.h:101
AbstractByteArrayModel * mByteArrayModel
pointer to the buffer
Definition: abstractbytearraycolumnrenderer.h:198
virtual void renderNextLine(QPainter *painter)
the actual painting call for a column's line.
Definition: abstractbytearraycolumnrenderer.cpp:394
bool setNoOfGroupedBytes(int noOfGroupedBytes)
sets the number of grouped bytes in the hex column
Definition: abstractbytearraycolumnrenderer.cpp:140
PixelX mByteWidth
total width of byte display in pixel
Definition: abstractbytearraycolumnrenderer.h:217
virtual Byte byte(Address offset) const =0
locates working range The idea behind is to tell buffer which range will be requested in the followin...
bool setGroupSpacingWidth(PixelX groupSpacingWidth)
sets the spacing between the groups of bytes in the hex column
Definition: abstractbytearraycolumnrenderer.cpp:154
void setEndByWidth(S width)
sets the last index of the range's range to be width-1 behind the start If the range is invalid the b...
Definition: numberrange.h:152
void setStartNextBehind(const NumberRange &other)
sets the first index of the range's range one behind the other's end If one of both is invalid the be...
Definition: numberrange.h:154
bool setSpacing(PixelX byteSpacingWidth, int noOfGroupedBytes=0, PixelX groupSpacingWidth=0)
sets the spacing in the hex column
Definition: abstractbytearraycolumnrenderer.cpp:106
LinePositionRange linePositionsOfX(PixelX x, PixelX width) const
returns byte linePositions covered by pixels with absolute x-coord x
Definition: abstractbytearraycolumnrenderer.cpp:243
PixelX * mLinePosRightPixelX
Definition: abstractbytearraycolumnrenderer.h:232
const Okteta::Bookmark & next()
Definition: bookmarksconstiterator.h:78
QRect byteRect(const Coord &coord) const
Definition: abstractbytearraycolumnrenderer.cpp:354
bool hasMarking() const
Definition: bytearraytableranges.h:140
bool getNextSelectedAddressRange(AddressRange *selectedRange, unsigned int *flag, const AddressRange &range) const
Definition: abstractbytearraycolumnrenderer.cpp:732
void set(AbstractByteArrayModel *byteArrayModel)
Definition: abstractbytearraycolumnrenderer.cpp:70
LinePosition linePositionOfX(PixelX x) const
returns byte pos at pixel with absolute x-coord x
Definition: abstractbytearraycolumnrenderer.cpp:206
virtual ~AbstractByteArrayColumnRenderer()
Definition: abstractbytearraycolumnrenderer.cpp:790
static KColorScheme::ForegroundRole foregroundRoleForChar(const Okteta::Character byteChar)
Definition: helper.h:46
AbstractColumnStylist * stylist() const
Definition: abstractcolumnrenderer.cpp:40
Address indexAtCoord(const Coord &coord) const
calculates the index of coord.
Definition: bytearraytablelayout.cpp:213
void renderSelectionSpaceBehind(QPainter *painter, LinePosition linePosition)
Definition: abstractbytearraycolumnrenderer.cpp:590
ByteArrayTableRanges * mRanges
pointer to the ranges
Definition: abstractbytearraycolumnrenderer.h:202
virtual void renderFirstLine(QPainter *painter, const PixelXRange &Xs, Line firstLineIndex)
Definition: abstractbytearraycolumnrenderer.cpp:384
bool startsBefore(T Value) const
returns true is the range starts before index.
Definition: range.h:99
PixelY lineHeight() const
Definition: abstractcolumnrenderer.cpp:47
base class for columns of the ColumnsView
Definition: abstractcolumnrenderer.h:46
bool getNextMarkedAddressRange(AddressRange *markedRange, unsigned int *flag, const AddressRange &range) const
Definition: abstractbytearraycolumnrenderer.cpp:762
virtual const QPalette & palette() const =0
Line mRenderLine
Definition: abstractbytearraycolumnrenderer.h:242
bool findNextFrom(unsigned int offset)
Definition: bookmarksconstiterator.h:76
PixelX mGroupSpacingWidth
width of spacing in pixel
Definition: abstractbytearraycolumnrenderer.h:223
void renderLinePositions(QPainter *painter, Line lineIndex, const LineRange &linePositions)
Definition: abstractbytearraycolumnrenderer.cpp:400
void renderMarking(QPainter *painter, const LinePositionRange &linePositions, Address byteIndex, int flag)
Definition: abstractbytearraycolumnrenderer.cpp:599
void setFontMetrics(const QFontMetrics &fontMetrics)
sets the metrics of the used font
Definition: abstractbytearraycolumnrenderer.cpp:91
int noOfGroupedBytes() const
Definition: abstractbytearraycolumnrenderer.h:254
virtual bool containsBookmarkFor(int offset) const =0
Definition: character.h:35
bool setByteSpacingWidth(PixelX byteSpacingWidth)
sets the spacing between the bytes in the hex column
Definition: abstractbytearraycolumnrenderer.cpp:124
void renderSpaceBehind(QPainter *painter, const QBrush &brush, LinePosition linePosition)
Definition: abstractbytearraycolumnrenderer.cpp:642
const ByteArrayTableLayout * mLayout
pointer to the layout
Definition: abstractbytearraycolumnrenderer.h:200
PixelX columnRightXOfLinePosition(LinePosition posInLine) const
returns right relative x-coord of byte at position posInLine
Definition: abstractbytearraycolumnrenderer.cpp:328
PixelX byteSpacingWidth() const
Definition: abstractbytearraycolumnrenderer.h:251
PixelX columnXOfLinePosition(LinePosition posInLine) const
returns relative x-coord of byte at position posInLine
Definition: abstractbytearraycolumnrenderer.cpp:323
PixelY mDigitBaseLine
Definition: abstractbytearraycolumnrenderer.h:211
FrameStyle
Definition: abstractbytearraycolumnrenderer.h:63
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:06 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:06 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.