Elaztek Developer Hub
Blamite Game Engine - Keystone  00390.07.02.23.1947.blamite
A library that enables the use of Qt in Blamite's editing tools.
qhexview.h
Go to the documentation of this file.
1 #ifndef QHEXVIEW_H
2 #define QHEXVIEW_H
3 
4 #define QHEXVIEW_VERSION 3.0
5 
6 #include <QAbstractScrollArea>
7 #include <QTimer>
10 
11 class QHexView : public QAbstractScrollArea
12 {
13  Q_OBJECT
14 
15  public:
16  explicit QHexView(QWidget *parent = nullptr);
19  void setReadOnly(bool b);
20 
21  protected:
22  virtual bool event(QEvent* e);
23  virtual void keyPressEvent(QKeyEvent *e);
24  virtual void mousePressEvent(QMouseEvent* e);
25  virtual void mouseMoveEvent(QMouseEvent* e);
26  virtual void mouseReleaseEvent(QMouseEvent* e);
27  virtual void focusInEvent(QFocusEvent* e);
28  virtual void focusOutEvent(QFocusEvent* e);
29  virtual void wheelEvent(QWheelEvent* e);
30  virtual void resizeEvent(QResizeEvent* e);
31  virtual void paintEvent(QPaintEvent* e);
32 
33  private slots:
34  void renderCurrentLine();
35  void moveToSelection();
36  void blinkCursor();
37 
38  private:
39  void moveNext(bool select = false);
40  void movePrevious(bool select = false);
41 
42  private:
43  bool processMove(QHexCursor* cur, QKeyEvent* e);
44  bool processTextInput(QHexCursor* cur, QKeyEvent* e);
45  bool processAction(QHexCursor* cur, QKeyEvent* e);
46  void adjustScrollBars();
47  void renderLine(quint64 line);
48  quint64 firstVisibleLine() const;
49  quint64 lastVisibleLine() const;
50  quint64 visibleLines() const;
51  bool isLineVisible(quint64 line) const;
52 
53  int documentSizeFactor() const;
54 
55  QPoint absolutePosition(const QPoint & pos) const;
56 
57  private:
58  QHexDocument* m_document;
59  QHexRenderer* m_renderer;
60  QTimer* m_blinktimer;
61  bool m_readonly;
62 };
63 
64 #endif // QHEXVIEW_H
QHexRenderer::blinkCursor
void blinkCursor()
Definition: qhexrenderer.cpp:170
QHexView
Definition: qhexview.h:11
QHexCursor::currentColumn
int currentColumn() const
Definition: qhexcursor.cpp:48
QHexCursor::moveTo
void moveTo(const QHexPosition &pos)
Definition: qhexcursor.cpp:76
QHexView::resizeEvent
virtual void resizeEvent(QResizeEvent *e)
Definition: qhexview.cpp:224
QHexRenderer::headerLineCount
int headerLineCount() const
Definition: qhexrenderer.cpp:137
QHexView::QHexView
QHexView(QWidget *parent=nullptr)
Definition: qhexview.cpp:15
QHexPosition
Definition: qhexcursor.h:9
QHexView::document
QHexDocument * document()
Definition: qhexview.cpp:39
QHexDocument::cut
void cut(bool hex=false)
Definition: qhexdocument.cpp:92
QHexCursor::position
const QHexPosition & position() const
Definition: qhexcursor.cpp:44
QHexRenderer::AsciiArea
@ AsciiArea
Definition: qhexrenderer.h:19
QHexDocument
Definition: qhexdocument.h:11
QHexCursor::insertionMode
InsertionMode insertionMode() const
Definition: qhexcursor.cpp:45
QHexView::setDocument
void setDocument(QHexDocument *document)
Definition: qhexview.cpp:41
QHexRenderer::documentLastColumn
int documentLastColumn() const
Definition: qhexrenderer.cpp:132
QHexDocument::atEnd
bool atEnd() const
Definition: qhexdocument.cpp:30
QHexRenderer::renderFrame
void renderFrame(QPainter *painter)
Definition: qhexrenderer.cpp:16
QHexRenderer::HexArea
@ HexArea
Definition: qhexrenderer.h:19
QHexPosition::offset
qint64 offset() const
Definition: qhexcursor.h:16
qhexrenderer.h
QHexView::mouseMoveEvent
virtual void mouseMoveEvent(QMouseEvent *e)
Definition: qhexview.cpp:146
QHexPosition::column
int column
Definition: qhexcursor.h:11
QHexRenderer::hitTest
bool hitTest(const QPoint &pt, QHexPosition *position, quint64 firstline) const
Definition: qhexrenderer.cpp:78
QHexView::keyPressEvent
virtual void keyPressEvent(QKeyEvent *e)
Definition: qhexview.cpp:98
QHexDocument::length
qint64 length() const
Definition: qhexdocument.cpp:33
QHexView::mouseReleaseEvent
virtual void mouseReleaseEvent(QMouseEvent *e)
Definition: qhexview.cpp:181
QHexCursor::setInsertionMode
void setInsertionMode(InsertionMode mode)
Definition: qhexcursor.cpp:111
QHexRenderer::documentWidth
int documentWidth() const
Definition: qhexrenderer.cpp:134
QHexRenderer::render
void render(QPainter *painter, quint64 start, quint64 end, quint64 firstline)
Definition: qhexrenderer.cpp:48
QHexRenderer::editableArea
bool editableArea(int area) const
Definition: qhexrenderer.cpp:130
QHexView::event
virtual bool event(QEvent *e)
Definition: qhexview.cpp:70
QHexView::paintEvent
virtual void paintEvent(QPaintEvent *e)
Definition: qhexview.cpp:230
QHexCursor::positionChanged
void positionChanged()
QHexDocument::paste
void paste(bool hex=false)
Definition: qhexdocument.cpp:115
QHexCursor::selectionStart
const QHexPosition & selectionStart() const
Definition: qhexcursor.cpp:16
QHexDocument::metadata
QHexMetadata * metadata() const
Definition: qhexdocument.cpp:47
QHexRenderer::hitTestArea
int hitTestArea(const QPoint &pt) const
Definition: qhexrenderer.cpp:112
QHexCursor
Definition: qhexcursor.h:22
QHexView::wheelEvent
virtual void wheelEvent(QWheelEvent *e)
Definition: qhexview.cpp:207
QHexDocument::removeSelection
void removeSelection()
Definition: qhexdocument.cpp:50
QHexRenderer::lineHeight
int lineHeight() const
Definition: qhexrenderer.cpp:135
QHexDocument::replace
void replace(qint64 offset, uchar b)
Definition: qhexdocument.cpp:139
QHexRenderer::selectedArea
int selectedArea() const
Definition: qhexrenderer.cpp:129
QHexRenderer::hexLineWidth
int hexLineWidth() const
Definition: qhexrenderer.cpp:145
QHexRenderer::enableCursor
void enableCursor(bool b=true)
Definition: qhexrenderer.cpp:68
QHexCursor::currentNibble
int currentNibble() const
Definition: qhexcursor.cpp:49
QHexView::mousePressEvent
virtual void mousePressEvent(QMouseEvent *e)
Definition: qhexview.cpp:125
QHexDocument::documentChanged
void documentChanged()
QHexView::setReadOnly
void setReadOnly(bool b)
Definition: qhexview.cpp:64
QHexDocument::redo
void redo()
Definition: qhexdocument.cpp:86
QHexDocument::at
char at(int offset) const
Definition: qhexdocument.cpp:67
qhexdocument.h
QHexCursor::switchInsertionMode
void switchInsertionMode()
Definition: qhexcursor.cpp:127
QHexRenderer::selectArea
void selectArea(const QPoint &pt)
Definition: qhexrenderer.cpp:70
qmemorybuffer.h
QHexPosition::line
quint64 line
Definition: qhexcursor.h:10
QHexRenderer::updateMetrics
void updateMetrics(const QFontMetricsF &fm)
Definition: qhexrenderer.cpp:67
QHexDocument::copy
void copy(bool hex=false)
Definition: qhexdocument.cpp:101
QHexRenderer
Definition: qhexrenderer.h:14
QHexCursor::insertionModeChanged
void insertionModeChanged()
QHexView::focusInEvent
virtual void focusInEvent(QFocusEvent *e)
Definition: qhexview.cpp:189
qhexview.h
QHexCursor::currentLine
quint64 currentLine() const
Definition: qhexcursor.cpp:47
QHexDocument::cursor
QHexCursor * cursor() const
Definition: qhexdocument.cpp:35
QHexCursor::select
void select(const QHexPosition &pos)
Definition: qhexcursor.cpp:77
QHexDocument::undo
void undo()
Definition: qhexdocument.cpp:80
DOCUMENT_WHEEL_LINES
#define DOCUMENT_WHEEL_LINES
Definition: qhexview.cpp:13
QHexRenderer::documentLastLine
quint64 documentLastLine() const
Definition: qhexrenderer.cpp:131
QHexCursor::InsertMode
@ InsertMode
Definition: qhexcursor.h:27
QHexMetadata::comments
QString comments(quint64 line, int column) const
Definition: qhexmetadata.cpp:11
QHexCursor::hasSelection
bool hasSelection() const
Definition: qhexcursor.cpp:68
QHexRenderer::documentLines
quint64 documentLines() const
Definition: qhexrenderer.cpp:133
QHexDocument::remove
void remove(qint64 offset, int len)
Definition: qhexdocument.cpp:156
CURSOR_BLINK_INTERVAL
#define CURSOR_BLINK_INTERVAL
Definition: qhexview.cpp:12
QHexCursor::OverwriteMode
@ OverwriteMode
Definition: qhexcursor.h:27
QHexView::focusOutEvent
virtual void focusOutEvent(QFocusEvent *e)
Definition: qhexview.cpp:198
QHexDocument::insert
void insert(qint64 offset, uchar b)
Definition: qhexdocument.cpp:134