LibreWeb-Browser/src/qt-renderer.h

56 lines
1.3 KiB
C
Raw Normal View History

#ifndef QT_RENDER_H
#define QT_RENDER_H
2020-11-16 10:31:58 -08:00
#include <cmark-gfm.h>
#include <render.h>
2020-11-18 14:03:19 -08:00
#include <QtGlobal>
#include <QString>
#include "renderer-interface.h"
2020-11-16 10:31:58 -08:00
class Scene;
2020-11-18 14:03:19 -08:00
class QRectF;
class QFont;
/**
* \class QtRenderer Class will use Qt to render AST object to a QGraphicsScene
*/
class QtRenderer : public RendererI
2020-11-16 10:31:58 -08:00
{
public:
explicit QtRenderer();
void setScene(Scene *scene) override;
void setUnknownYet() override {}; // No implementation
void renderDocument(cmark_node *root, int width = 0) override;
2020-11-16 10:31:58 -08:00
private:
Scene *scene;
QFont *font;
int defaultFontSize;
2020-11-18 15:05:08 -08:00
qreal sceneMarginX;
qreal sceneMarginY;
2020-11-18 14:03:19 -08:00
bool bold;
bool italic;
int headingLevel;
int listLevel;
2020-11-18 14:03:19 -08:00
qreal currentX;
qreal currentY;
QString fontFamilty;
qreal wordSpacing;
2020-11-18 14:03:19 -08:00
qreal heighestHigh;
qreal paragraphHeightOffset;
qreal headingHeightOffset;
qreal listXOffset;
qreal bulletWithTemp;
2020-11-16 10:31:58 -08:00
// 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();
2020-11-16 10:31:58 -08:00
};
#endif