okteta
abstractcolumnrenderer.h
Go to the documentation of this file.00001 /* 00002 This file is part of the Okteta Kakao module, part of the KDE project. 00003 00004 Copyright 2003,2007-2008 Friedrich W. H. Kossebau <kossebau@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Lesser General Public 00008 License as published by the Free Software Foundation; either 00009 version 2.1 of the License, or (at your option) version 3, or any 00010 later version accepted by the membership of KDE e.V. (or its 00011 successor approved by the membership of KDE e.V.), which shall 00012 act as a proxy defined in Section 6 of version 3 of the license. 00013 00014 This library is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public 00020 License along with this library. If not, see <http://www.gnu.org/licenses/>. 00021 */ 00022 00023 #ifndef ABSTRACTCOLUMNRENDERER_H 00024 #define ABSTRACTCOLUMNRENDERER_H 00025 00026 // Okteta ui 00027 #include <kadds.h> 00028 // Okteta core 00029 #include <ksection.h> 00030 00031 class QPainter; 00032 using namespace KHEUI; 00033 00034 class AbstractColumnFrameRenderer; 00035 00036 namespace KHEPrint 00037 { 00038 00039 class AbstractColumnRendererPrivate; 00040 00047 class AbstractColumnRenderer 00048 { 00049 public: 00050 explicit AbstractColumnRenderer( AbstractColumnFrameRenderer *columnframeRenderer ); 00051 virtual ~AbstractColumnRenderer(); 00052 00053 public: // API to be reimplemented in the subclasses 00064 virtual void renderFirstLine( QPainter *painter, const KPixelXs &Xs, int firstLine ); 00068 virtual void renderNextLine( QPainter *painter ); 00069 00071 virtual void renderColumn( QPainter *painter, const KPixelXs &Xs, const KPixelYs &Ys ); 00073 virtual void renderEmptyColumn( QPainter *painter, const KPixelXs &Xs, const KPixelYs &Ys ); 00074 00075 public: // modification access 00077 void setX( KPixelX NewX ); 00079 void setVisible( bool V ); 00081 void setLineHeight( KPixelY H ); 00082 00083 public: // value access 00085 AbstractColumnFrameRenderer *columnFrameRenderer() const; 00087 KPixelX x() const; 00089 KPixelX width() const; 00091 KPixelX rightX() const; 00093 bool isVisible() const; 00095 KPixelX visibleWidth() const; 00097 KPixelY lineHeight() const; 00098 00099 public: // functional logic 00101 bool overlaps( const KPixelXs &Xs ) const; 00102 00103 protected: 00105 void setWidth( KPixelX W ); 00107 void restrictToXSpan( KPixelXs *Xs ) const; 00109 void renderBlankLine( QPainter *painter ) const; 00110 00111 private: 00112 AbstractColumnRendererPrivate * const d; 00113 }; 00114 00115 } 00116 00117 #endif
KDE 4.2 API Reference