/*************************************************************************** kvaluecolumn.h - description ------------------- begin : Mit Sep 3 2003 copyright : (C) 2003 by Friedrich W. H. Kossebau email : Friedrich.W.H@Kossebau.de ***************************************************************************/ /*************************************************************************** * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Library General Public * * License version 2 as published by the Free Software Foundation. * * * ***************************************************************************/ #ifndef KHE_KVALUECOLUMN_H #define KHE_KVALUECOLUMN_H // lib specific #include "kbytecodec.h" #include "kbuffercolumn.h" namespace KHE { class TDEBufferRanges; /** buffer column which displays the numerical values of the bytes * *@author Friedrich W. H. Kossebau */ class KValueColumn : public TDEBufferColumn { public: KValueColumn( KColumnsView *CV, KDataBuffer *B, TDEBufferLayout *L, TDEBufferRanges *R ); virtual ~KValueColumn(); public: void paintEditedByte( TQPainter *P, char Byte, const TQString &EditBuffer ); public: // modification access /** * returns true if there was a change */ bool setCoding( KCoding C ); /** sets the spacing in the middle of a binary byte in the value column * @param BinaryGapW spacing in the middle of a binary in pixels * returns true if there was a change */ bool setBinaryGapWidth( KPixelX BGW ); public: // value access KPixelX binaryGapWidth() const; KCoding coding() const; const KByteCodec *byteCodec() const; protected: // TDEBufferColumn API virtual void drawByte( TQPainter *P, char Byte, KHEChar B, const TQColor &Color ) const; virtual void recalcByteWidth(); protected: void drawCode( TQPainter *P, const TQString &Code, const TQColor &Color ) const; protected: // set data /** */ KCoding Coding; /** */ KByteCodec *ByteCodec; /** */ KPixelX BinaryGapWidth; protected: // buffered data /** buffer to hold the formatted coding */ mutable TQString CodedByte; /** calculated: Offset in pixels of the second half of the binary */ KPixelX BinaryHalfOffset; }; inline KPixelX KValueColumn::binaryGapWidth() const { return BinaryGapWidth; } inline KCoding KValueColumn::coding() const { return Coding; } inline const KByteCodec *KValueColumn::byteCodec() const { return ByteCodec; } } #endif