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 }