LibreWeb-Browser/src/qt-renderer.h

56 lines
1.3 KiB
C++

#ifndef QT_RENDER_H
#define QT_RENDER_H
#include <cmark-gfm.h>
#include <render.h>
#include <QtGlobal>
#include <QString>
#include "renderer-interface.h"
class Scene;
class QRectF;
class QFont;
/**
* \class QtRenderer Class will use Qt to render AST object to a QGraphicsScene
*/
class QtRenderer : public RendererI
{
public:
explicit QtRenderer();
void setScene(Scene *scene) override;
void setUnknownYet() override {}; // No implementation
void renderDocument(cmark_node *root, int width = 0) override;
private:
Scene *scene;
QFont *font;
int defaultFontSize;
qreal sceneMarginX;
qreal sceneMarginY;
bool bold;
bool italic;
int headingLevel;
int listLevel;
qreal currentX;
qreal currentY;
QString fontFamilty;
qreal wordSpacing;
qreal heighestHigh;
qreal paragraphHeightOffset;
qreal headingHeightOffset;
qreal listXOffset;
qreal bulletWithTemp;
// Copy contructor (not used/non-copyable)
QtRenderer(const QtRenderer& _);
// Copy assignment (not used/not assignable)
QtRenderer& operator=(const QtRenderer& _);
void renderNode(cmark_node *node, cmark_event_type ev_type);
QRectF const drawText(const QString& text);
QRectF const drawBullet();
};
#endif