File indexing completed on 2024-03-24 17:26:45

0001 /*
0002     This file is part of the Okteta Gui library, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2019 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef OKTETA_BORDERCOLUMNRENDERER_P_HPP
0010 #define OKTETA_BORDERCOLUMNRENDERER_P_HPP
0011 
0012 // lib
0013 #include "bordercolumnrenderer.hpp"
0014 #include "abstractcolumnrenderer_p.hpp"
0015 
0016 namespace Okteta {
0017 
0018 class BorderColumnRendererPrivate : public AbstractColumnRendererPrivate
0019 {
0020 public:
0021     BorderColumnRendererPrivate(BorderColumnRenderer* q, AbstractColumnStylist* stylist,
0022                                 bool lineDrawn, bool inEmpty);
0023     ~BorderColumnRendererPrivate() override;
0024 
0025 public:
0026     void init();
0027 
0028 public: // AbstractColumnRenderer-API
0029     void renderColumn(QPainter* painter, const PixelXRange& Xs, const PixelYRange& Ys);
0030     void renderEmptyColumn(QPainter* painter, const PixelXRange& Xs, const PixelYRange& Ys);
0031 
0032 private:
0033     void renderBorderLine(QPainter* painter, const PixelXRange& Xs, const PixelYRange& Ys);
0034 
0035 private:
0036     /** true if we are between two columns and should show a line */
0037     bool m_lineDrawn : 1;
0038     /** true if the line is also drawn in empty space */
0039     bool m_inEmpty : 1;
0040 
0041 private:
0042     BorderColumnRenderer* const q_ptr;
0043     Q_DECLARE_PUBLIC(BorderColumnRenderer)
0044 };
0045 
0046 
0047 inline BorderColumnRendererPrivate::BorderColumnRendererPrivate(BorderColumnRenderer* q,
0048                                                                 AbstractColumnStylist* stylist,
0049                                                                 bool lineDrawn, bool inEmpty)
0050     : AbstractColumnRendererPrivate(stylist)
0051     , m_lineDrawn(lineDrawn)
0052     , m_inEmpty(inEmpty)
0053     , q_ptr(q)
0054 {
0055 }
0056 
0057 inline BorderColumnRendererPrivate::~BorderColumnRendererPrivate() = default;
0058 
0059 }
0060 
0061 #endif