This file is indexed.

/usr/include/qwt-qt4/qwt_plot.h is in libqwt5-qt4-dev 5.2.3-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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 * Qwt Widget Library
 * Copyright (C) 1997   Josef Wilgen
 * Copyright (C) 2002   Uwe Rathmann
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the Qwt License, Version 1.0
 *****************************************************************************/

#ifndef QWT_PLOT_H
#define QWT_PLOT_H

#include <qframe.h>
#include "qwt_global.h"
#include "qwt_array.h"
#include "qwt_text.h"
#include "qwt_plot_dict.h"
#include "qwt_scale_map.h"
#include "qwt_plot_printfilter.h"

class QwtPlotLayout;
class QwtLegend;
class QwtScaleWidget;
class QwtScaleEngine;
class QwtScaleDiv;
class QwtScaleDraw;
class QwtTextLabel;
class QwtPlotCanvas;
class QwtPlotPrintFilter;

/*!
  \brief A 2-D plotting widget

  QwtPlot is a widget for plotting two-dimensional graphs.
  An unlimited number of plot items can be displayed on 
  its canvas. Plot items might be curves (QwtPlotCurve), markers 
  (QwtPlotMarker), the grid (QwtPlotGrid), or anything else derived 
  from QwtPlotItem.
  A plot can have up to four axes, with each plot item attached to an x- and
  a y axis. The scales at the axes can be explicitely set (QwtScaleDiv), or
  are calculated from the plot items, using algorithms (QwtScaleEngine) which 
  can be configured separately for each axis. 

  \image html plot.png

  \par Example
  The following example shows (schematically) the most simple
  way to use QwtPlot. By default, only the left and bottom axes are
  visible and their scales are computed automatically.
  \verbatim
#include <qwt_plot.h>
#include <qwt_plot_curve.h>

QwtPlot *myPlot = new QwtPlot("Two Curves", parent);

// add curves
QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1");
QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2");

// copy the data into the curves
curve1->setData(...);
curve2->setData(...);

curve1->attach(myPlot);
curve2->attach(myPlot);

// finally, refresh the plot
myPlot->replot();
\endverbatim
*/

class QWT_EXPORT QwtPlot: public QFrame, public QwtPlotDict
{
    Q_OBJECT
    Q_PROPERTY( QString propertiesDocument 
        READ grabProperties WRITE applyProperties )

public:
    /*! 
      Axis index

      - yLeft\n
      - yRight\n
      - xBottom\n
      - xTop\n
     */
    enum Axis 
    { 
        yLeft, 
        yRight, 
        xBottom, 
        xTop, 

        axisCnt 
    };

    /*! 
        Position of the legend, relative to the canvas.

        - LeftLegend\n
          The legend will be left from the yLeft axis.
        - RightLegend\n
          The legend will be right from the yLeft axis.
        - BottomLegend\n
          The legend will be right below the xBottom axis.
        - TopLegend\n
          The legend will be between xTop axis and the title.
        - ExternalLegend\n
          External means that only the content of the legend 
          will be handled by QwtPlot, but not its geometry. 
          This might be interesting if an application wants to
          have a legend in an external window ( or on the canvas ).

        \note In case of ExternalLegend, the legend is not 
              printed by print().

        \sa insertLegend()
     */
    enum LegendPosition 
    {
        LeftLegend,
        RightLegend,
        BottomLegend,
        TopLegend,
        
        ExternalLegend
    };

    explicit QwtPlot(QWidget * = NULL);
    explicit QwtPlot(const QwtText &title, QWidget *p = NULL);
#if QT_VERSION < 0x040000
    explicit QwtPlot(QWidget *, const char* name);
#endif

    virtual ~QwtPlot();

    void applyProperties(const QString &);
    QString grabProperties() const;

    void setAutoReplot(bool tf = true);
    bool autoReplot() const;

    void print(QPaintDevice &p,
        const QwtPlotPrintFilter & = QwtPlotPrintFilter()) const;
    virtual void print(QPainter *, const QRect &rect,
        const QwtPlotPrintFilter & = QwtPlotPrintFilter()) const;

    // Layout

    QwtPlotLayout *plotLayout();
    const QwtPlotLayout *plotLayout() const;

    void setMargin(int margin);
    int margin() const;

    // Title

    void setTitle(const QString &);
    void setTitle(const QwtText &t);
    QwtText title() const;

    QwtTextLabel *titleLabel();
    const QwtTextLabel *titleLabel() const;

    // Canvas

    QwtPlotCanvas *canvas();
    const QwtPlotCanvas *canvas() const;

    void setCanvasBackground (const QColor &c);
    const QColor& canvasBackground() const;

    void setCanvasLineWidth(int w);
    int canvasLineWidth() const;

    virtual QwtScaleMap canvasMap(int axisId) const;

    double invTransform(int axisId, int pos) const;
    int transform(int axisId, double value) const;

    // Axes

    QwtScaleEngine *axisScaleEngine(int axisId);
    const QwtScaleEngine *axisScaleEngine(int axisId) const;
    void setAxisScaleEngine(int axisId, QwtScaleEngine *);

    void setAxisAutoScale(int axisId);
    bool axisAutoScale(int axisId) const;

    void enableAxis(int axisId, bool tf = true);
    bool axisEnabled(int axisId) const;

    void setAxisFont(int axisId, const QFont &f);
    QFont axisFont(int axisId) const;

    void setAxisScale(int axisId, double min, double max, double step = 0);
    void setAxisScaleDiv(int axisId, const QwtScaleDiv &);
    void setAxisScaleDraw(int axisId, QwtScaleDraw *);

    double axisStepSize(int axisId) const;

    const QwtScaleDiv *axisScaleDiv(int axisId) const;
    QwtScaleDiv *axisScaleDiv(int axisId);

    const QwtScaleDraw *axisScaleDraw(int axisId) const;
    QwtScaleDraw *axisScaleDraw(int axisId);

    const QwtScaleWidget *axisWidget(int axisId) const;
    QwtScaleWidget *axisWidget(int axisId);

#if QT_VERSION < 0x040000
    void setAxisLabelAlignment(int axisId, int);
#else
    void setAxisLabelAlignment(int axisId, Qt::Alignment);
#endif
    void setAxisLabelRotation(int axisId, double rotation);

    void setAxisTitle(int axisId, const QString &);
    void setAxisTitle(int axisId, const QwtText &);
    QwtText axisTitle(int axisId) const;

    void setAxisMaxMinor(int axisId, int maxMinor);
    int axisMaxMajor(int axisId) const;
    void setAxisMaxMajor(int axisId, int maxMajor);
    int axisMaxMinor(int axisId) const;

    // Legend 

    void insertLegend(QwtLegend *, LegendPosition = QwtPlot::RightLegend,
        double ratio = -1.0);

    QwtLegend *legend();
    const QwtLegend *legend() const;

    // Misc

    virtual void polish();
    virtual QSize sizeHint() const;
    virtual QSize minimumSizeHint() const;

    virtual void updateLayout();
    virtual void drawCanvas(QPainter *);

    void updateAxes();

    virtual bool event(QEvent *);

signals:
    /*!
      A signal which is emitted when the user has clicked on 
      a legend item, which is in QwtLegend::ClickableItem mode. 

      \param plotItem Corresponding plot item of the
                 selected legend item

      \note clicks are disabled as default
      \sa QwtLegend::setItemMode(), QwtLegend::itemMode()
     */
    void legendClicked(QwtPlotItem *plotItem);

    /*!
      A signal which is emitted when the user has clicked on 
      a legend item, which is in QwtLegend::CheckableItem mode

      \param plotItem Corresponding plot item of the
                 selected legend item
      \param on True when the legen item is checked

      \note clicks are disabled as default
      \sa QwtLegend::setItemMode(), QwtLegend::itemMode()
     */

    void legendChecked(QwtPlotItem *plotItem, bool on);

public slots:
    virtual void clear();

    virtual void replot();
    void autoRefresh();

protected slots:
    virtual void legendItemClicked();
    virtual void legendItemChecked(bool);

protected:
    static bool axisValid(int axisId);

    virtual void drawItems(QPainter *, const QRect &,
        const QwtScaleMap maps[axisCnt],
        const QwtPlotPrintFilter &) const;

    virtual void updateTabOrder();

    virtual void resizeEvent(QResizeEvent *e);

    virtual void printLegendItem(QPainter *, 
        const QWidget *, const QRect &) const;

    virtual void printTitle(QPainter *, const QRect &) const;

    virtual void printScale(QPainter *, int axisId, int startDist, int endDist,
        int baseDist, const QRect &) const;

    virtual void printCanvas(QPainter *, 
        const QRect &boundingRect, const QRect &canvasRect,
        const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const;

    virtual void printLegend(QPainter *, const QRect &) const;

private:
    void initAxesData();
    void deleteAxesData();
    void updateScaleDiv();

    void initPlot(const QwtText &title);

    class AxisData;
    AxisData *d_axisData[axisCnt];

    class PrivateData;
    PrivateData *d_data;
};

#endif