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