File indexing completed on 2024-05-12 15:54:10

0001 /*
0002  * Copyright (C) 2001-2015 Klaralvdalens Datakonsult AB.  All rights reserved.
0003  *
0004  * This file is part of the KD Chart library.
0005  *
0006  * This program is free software; you can redistribute it and/or
0007  * modify it under the terms of the GNU General Public License as
0008  * published by the Free Software Foundation; either version 2 of
0009  * the License, or (at your option) any later version.
0010  *
0011  * This program is distributed in the hope that it will be useful,
0012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014  * GNU General Public License for more details.
0015  *
0016  * You should have received a copy of the GNU General Public License
0017  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
0018  */
0019 
0020 #ifndef KCHARTABSTRACTAREABASE_P_H
0021 #define KCHARTABSTRACTAREABASE_P_H
0022 
0023 //
0024 //  W A R N I N G
0025 //  -------------
0026 //
0027 // This file is not part of the KD Chart API.  It exists purely as an
0028 // implementation detail.  This header file may change from version to
0029 // version without notice, or even be removed.
0030 //
0031 // We mean it.
0032 //
0033 
0034 /** \file KChartAbstractAreaBase_p.h
0035  *  \internal
0036  */
0037 
0038 #include "KChartAbstractAreaBase.h"
0039 #include "KChartTextAttributes.h"
0040 #include "KChartFrameAttributes.h"
0041 #include "KChartBackgroundAttributes.h"
0042 #include "KChartMath_p.h"
0043 
0044 
0045 namespace KChart {
0046 
0047 /**
0048  * \internal
0049  */
0050     class Q_DECL_HIDDEN AbstractAreaBase::Private
0051     {
0052         friend class AbstractAreaBase;
0053     public:
0054         explicit Private();
0055         virtual ~Private();
0056 
0057         Private( const Private& rhs ) :
0058             amountOfLeftOverlap( 0 ),
0059             amountOfRightOverlap( 0 ),
0060             amountOfTopOverlap( 0 ),
0061             amountOfBottomOverlap( 0 ),
0062             visible( rhs.visible ),
0063             frameAttributes( rhs.frameAttributes ),
0064             backgroundAttributes( rhs.backgroundAttributes )
0065             {
0066             }
0067 
0068     protected:
0069         void init();
0070 
0071         // These are set each time the area's sizeHint()
0072         // (or the maximumSize(), resp.) is calculated:
0073         // They store additional layout-information about
0074         // space needed around the area.
0075         // Other classes (e.g. KChart::AutoSpacer) can use
0076         // these data to determine how much space has to
0077         // be added additionally ...
0078         mutable int amountOfLeftOverlap;
0079         mutable int amountOfRightOverlap;
0080         mutable int amountOfTopOverlap;
0081         mutable int amountOfBottomOverlap;
0082 
0083     private:
0084         bool visible;
0085         KChart::FrameAttributes frameAttributes;
0086         KChart::BackgroundAttributes backgroundAttributes;
0087     };
0088 
0089     inline AbstractAreaBase::AbstractAreaBase( AbstractAreaBase::Private * p ) :
0090         _d( p ) { init(); }
0091 
0092 }
0093 #endif /* KCHARTABSTRACTAREABASE_P_H */