/* QtRenderer.h * * Copyright (C) 2017 Jim Evins * * This file is part of glbarcode++. * * glbarcode++ is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * glbarcode++ is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with glbarcode++. If not, see . */ #ifndef glbarcode_QtRenderer_h #define glbarcode_QtRenderer_h #include "Renderer.h" #include namespace glbarcode { /** * @class QtRenderer QtRenderer.h glbarcode/QtRenderer.h * * Render to QPainter context */ class QtRenderer : public Renderer { public: /** * Default Constructor */ QtRenderer(); /** * Constructor with QPainter */ QtRenderer( QPainter* painter ); /** * Destructor */ ~QtRenderer() override; /** Get "painter" parameter * * @returns painter parameter */ QPainter* painter() const; /** Set "painter" parameter * * @param[in] painter pointer to QPainter * * @returns reference to this QtRenderer object for parameter chaining */ QtRenderer& setPainter( QPainter* painter ); private: /* * Virtual methods implemented by QtRenderer. */ void drawBegin( double w, double h ) override; void drawEnd() override; void drawLine( double x, double y, double w, double h ) override; void drawBox( double x, double y, double w, double h ) override; void drawText( double x, double y, double size, const std::string& text ) override; void drawRing( double x, double y, double r, double w ) override; void drawHexagon( double x, double y, double h ) override; /** * Private data */ struct PrivateData; PrivateData *d; }; } #endif // glbarcode_QtRenderer_h