File indexing completed on 2024-04-28 05:52:37
0001 /* 0002 This file is part of the Okteta Gui library, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2003, 2007-2009 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 #include "abstractcolumnrenderer.hpp" 0010 #include "abstractcolumnrenderer_p.hpp" 0011 0012 // lib 0013 #include "columnsview.hpp" 0014 // Qt 0015 #include <QPainter> 0016 0017 namespace Okteta { 0018 0019 AbstractColumnRenderer::AbstractColumnRenderer(AbstractColumnRendererPrivate* d) 0020 : d_ptr(d) 0021 { 0022 } 0023 0024 AbstractColumnRenderer::AbstractColumnRenderer(AbstractColumnStylist* stylist) 0025 : d_ptr(new AbstractColumnRendererPrivate(stylist)) 0026 { 0027 } 0028 0029 AbstractColumnRenderer::~AbstractColumnRenderer() = default; 0030 0031 AbstractColumnStylist* AbstractColumnRenderer::stylist() const 0032 { 0033 Q_D(const AbstractColumnRenderer); 0034 0035 return d->mStylist; 0036 } 0037 0038 PixelX AbstractColumnRenderer::x() const 0039 { 0040 Q_D(const AbstractColumnRenderer); 0041 0042 return d->mXSpan.start(); 0043 } 0044 0045 PixelX AbstractColumnRenderer::rightX() const 0046 { 0047 Q_D(const AbstractColumnRenderer); 0048 0049 return d->mXSpan.end(); 0050 } 0051 0052 PixelX AbstractColumnRenderer::width() const 0053 { 0054 Q_D(const AbstractColumnRenderer); 0055 0056 return d->mXSpan.width(); 0057 } 0058 0059 bool AbstractColumnRenderer::isVisible() const 0060 { 0061 Q_D(const AbstractColumnRenderer); 0062 0063 return d->mIsVisible; 0064 } 0065 0066 PixelX AbstractColumnRenderer::visibleWidth() const 0067 { 0068 Q_D(const AbstractColumnRenderer); 0069 0070 return d->mIsVisible ? d->mXSpan.width() : 0; 0071 } 0072 0073 PixelY AbstractColumnRenderer::lineHeight() const 0074 { 0075 Q_D(const AbstractColumnRenderer); 0076 0077 return d->mLineHeight; 0078 } 0079 0080 void AbstractColumnRenderer::setX(PixelX x) 0081 { 0082 Q_D(AbstractColumnRenderer); 0083 0084 d->mXSpan.moveToStart(x); 0085 } 0086 0087 void AbstractColumnRenderer::setWidth(PixelX width) 0088 { 0089 Q_D(AbstractColumnRenderer); 0090 0091 d->mXSpan.setEndByWidth(width); 0092 } 0093 0094 void AbstractColumnRenderer::setVisible(bool isVisible) 0095 { 0096 Q_D(AbstractColumnRenderer); 0097 0098 d->mIsVisible = isVisible; 0099 } 0100 0101 void AbstractColumnRenderer::setLineHeight(PixelY lineHeight) 0102 { 0103 Q_D(AbstractColumnRenderer); 0104 0105 d->mLineHeight = lineHeight; 0106 } 0107 0108 void AbstractColumnRenderer::restrictToXSpan(PixelXRange* xSpan) const 0109 { 0110 Q_D(const AbstractColumnRenderer); 0111 0112 xSpan->restrictTo(d->mXSpan); 0113 } 0114 0115 bool AbstractColumnRenderer::overlaps(const PixelXRange& xSpan) const 0116 { 0117 Q_D(const AbstractColumnRenderer); 0118 0119 return d->mXSpan.overlaps(xSpan); 0120 } 0121 0122 void AbstractColumnRenderer::renderFirstLine(QPainter* painter, const PixelXRange& xSpan, int firstLineIndex) 0123 { 0124 Q_UNUSED(xSpan) 0125 Q_UNUSED(firstLineIndex) 0126 Q_UNUSED(painter) 0127 // d->renderBlankLine( painter ); 0128 } 0129 0130 void AbstractColumnRenderer::renderNextLine(QPainter* painter) 0131 { 0132 Q_UNUSED(painter) 0133 // d->renderBlankLine( painter ); 0134 } 0135 0136 void AbstractColumnRenderer::renderBlankLine(QPainter* painter) const 0137 { 0138 Q_D(const AbstractColumnRenderer); 0139 0140 d->renderBlankLine(painter); 0141 } 0142 0143 void AbstractColumnRenderer::renderColumn(QPainter* painter, const PixelXRange& xSpan, const PixelYRange& ySpan) 0144 { 0145 Q_D(AbstractColumnRenderer); 0146 0147 d->renderEmptyColumn(painter, xSpan, ySpan); 0148 } 0149 0150 void AbstractColumnRenderer::renderEmptyColumn(QPainter* painter, const PixelXRange& xSpan, const PixelYRange& ySpan) 0151 { 0152 Q_D(AbstractColumnRenderer); 0153 0154 d->renderEmptyColumn(painter, xSpan, ySpan); 0155 } 0156 0157 }