/usr/include/KChart/KChartAbstractArea.h is in libkchart-dev 2.6.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /**
* Copyright (C) 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved.
*
* This file is part of the KD Chart library.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef KCHARTABSTRACTAREA_H
#define KCHARTABSTRACTAREA_H
#include <QObject>
#include "KChartGlobal.h"
#include "KChartAbstractAreaBase.h"
#include "KChartLayoutItems.h"
namespace KChart {
/**
* @class AbstractArea KChartAbstractArea.h
* @brief An area in the chart with a background, a frame, etc.
*
* AbstractArea is the base class for all non-widget chart elements that have
* a set of background attributes and frame attributes, such as
* coordinate planes or axes.
*
* @note This class inherits from AbstractAreaBase, AbstractLayoutItem, QObject.
* The reason for this triple inheritance is that neither AbstractAreaBase nor
* AbstractLayoutItem are QObject.
*/
class KCHART_EXPORT AbstractArea : public QObject,
public AbstractAreaBase,
public AbstractLayoutItem
{
Q_OBJECT
Q_DISABLE_COPY( AbstractArea )
KCHART_DECLARE_PRIVATE_DERIVED( AbstractArea )
public:
virtual ~AbstractArea() ;
/**
* @brief Draws the background and frame, then calls paint().
*
* In most cases there is no need to overwrite this method in a derived
* class, but you would overwrite AbstractLayoutItem::paint() instead.
*/
virtual void paintIntoRect( QPainter& painter, const QRect& rect );
/**
* Call paintAll, if you want the background and the frame to be drawn
* before the normal paint() is invoked automatically.
*/
virtual void paintAll( QPainter& painter );
/**
* This is called at layout time by KChart::AutoSpacerLayoutItem::sizeHint().
*
* The method triggers AbstractArea::sizeHint() to find out the
* amount of overlap at the left edge of the area.
*
* \note The default implementation is not using any caching,
* it might make sense to implement a more sophisticated solution
* for derived classes that have complex work to do in sizeHint().
* All we have here is a primitive flag to be set by the caller
* if it is sure that no sizeHint() needs to be called.
*/
virtual int leftOverlap( bool doNotRecalculate=false ) const;
/**
* This is called at layout time by KChart::AutoSpacerLayoutItem::sizeHint().
*
* The method triggers AbstractArea::sizeHint() to find out the
* amount of overlap at the right edge of the area.
*
* \note The default implementation is not using any caching,
* it might make sense to implement a more sophisticated solution
* for derived classes that have complex work to do in sizeHint().
* All we have here is a primitive flag to be set by the caller
* if it is sure that no sizeHint() needs to be called.
*/
virtual int rightOverlap( bool doNotRecalculate=false ) const;
/**
* This is called at layout time by KChart::AutoSpacerLayoutItem::sizeHint().
*
* The method triggers AbstractArea::sizeHint() to find out the
* amount of overlap at the top edge of the area.
*
* \note The default implementation is not using any caching,
* it might make sense to implement a more sophisticated solution
* for derived classes that have complex work to do in sizeHint().
* All we have here is a primitive flag to be set by the caller
* if it is sure that no sizeHint() needs to be called.
*/
virtual int topOverlap( bool doNotRecalculate=false ) const;
/**
* This is called at layout time by KChart:AutoSpacerLayoutItem::sizeHint().
*
* The method triggers AbstractArea::sizeHint() to find out the
* amount of overlap at the bottom edge of the area.
*
* \note The default implementation is not using any caching,
* it might make sense to implement a more sophisticated solution
* for derived classes that have complex work to do in sizeHint().
* All we have here is a primitive flag to be set by the caller
* if it is sure that no sizeHint() needs to be called.
*/
virtual int bottomOverlap( bool doNotRecalculate=false ) const;
protected:
AbstractArea();
virtual QRect areaGeometry() const;
virtual void positionHasChanged();
Q_SIGNALS:
void positionChanged( AbstractArea * );
}; // End of class AbstractArea
}
#endif // KCHARTABSTRACTAREA_H
|