/usr/include/OpenMS/VISUAL/AxisWidget.h is in libopenms-dev 1.11.1-5.
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 | // --------------------------------------------------------------------------
// OpenMS -- Open-Source Mass Spectrometry
// --------------------------------------------------------------------------
// Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
// ETH Zurich, and Freie Universitaet Berlin 2002-2013.
//
// This software is released under a three-clause BSD license:
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// * Neither the name of any author or any participating institution
// may be used to endorse or promote products derived from this software
// without specific prior written permission.
// For a full list of authors, refer to the file AUTHORS.
// --------------------------------------------------------------------------
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
// INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// --------------------------------------------------------------------------
// $Maintainer: Timo Sachsenberg$
// $Authors: Marc Sturm $
// --------------------------------------------------------------------------
#ifndef OPENMS_VISUAL_AXISWIDGET_H
#define OPENMS_VISUAL_AXISWIDGET_H
// QT
#include <QtGui/QWidget>
class QPaintEvent;
// OpenMS
#include <OpenMS/CONCEPT/Types.h>
#include <OpenMS/DATASTRUCTURES/String.h>
#include <OpenMS/MATH/MISC/MathFunctions.h>
#include <OpenMS/VISUAL/AxisPainter.h>
namespace OpenMS
{
/**
@brief Widget that represents an axis of a graph.
Additional to ticks and tick values a label e.g. the unit can be displayed.
It supports both linear and logarithmic scale.
@image html AxisWidget.png
The above image shows a horizontal example axis.
@ingroup Visual
*/
class OPENMS_GUI_DLLAPI AxisWidget :
public QWidget
{
Q_OBJECT
public:
///Type definitions
//@{
///Vector of vector of doubles that defines the grid
typedef std::vector<std::vector<DoubleReal> > GridVector;
/// constructor
AxisWidget(AxisPainter::Alignment alignment, const char * legend = "", QWidget * parent = 0);
/// destructor
virtual ~AxisWidget();
/// sets the margin on the top/right side (default is 0)
void setMargin(UInt size);
/// returns the margin
UInt margin();
/// enable the display of the legend (default true)
void showLegend(bool show_legend);
/// returns true if legend is shown
bool isLegendShown() const;
/// sets the legend text
void setLegend(const String & legend);
/// returns the actual legend text
const String & getLegend();
/// returns the currently used grid lines
const GridVector & gridLines();
/// sets the axis to logarithmic scale
void setLogScale(bool is_log);
/// returns true if the axis has logarithmic scale
bool isLogScale();
/// set true to display the axis label in inverse order (left to right or bottom to top)
void setInverseOrientation(bool inverse_orientation);
/// returns if the axis label is displayed in inverse order
bool hasInverseOrientation();
/// set true to allow for shortened numbers (with k/M/G units) on the axis label
void setAllowShortNumbers(bool short_nums);
/// returns the minimum value displayed on the axis
DoubleReal getAxisMinimum() const;
/// returns the maximum value displayed on the axis
DoubleReal getAxisMaximum() const;
/// Actual painting takes place here
void paint(QPainter * painter, QPaintEvent * e);
public slots:
///sets min/max of the axis
void setAxisBounds(DoubleReal min, DoubleReal max);
/// set maximum number of tick levels ('1' or '2', default: '2')
void setTickLevel(UInt level);
protected:
/// Vector that defines the position of the ticks/gridlines and the shown values on axis
GridVector grid_line_;
/// format of axis scale (linear or logarithmic)
bool is_log_;
/// display of legend enabled or not
bool show_legend_;
/// Position of the axis (right, left, top, down as defined in ALIGNMENT_ENUM)
AxisPainter::Alignment alignment_;
/// true if axis label are displayed in inverse order (left to right or bottom to top)
bool is_inverse_orientation_;
/// margin of axis
UInt margin_;
/// minimum value on the axis
DoubleReal min_;
/// maximum value on the axis
DoubleReal max_;
/// text/unit on axis
String legend_;
/// maximum number of tick levels (default=2)
UInt tick_level_;
/// true if k/M/G units can be used
bool allow_short_numbers_;
/// Reimplemented Qt event (calls paint with "this")
void paintEvent(QPaintEvent *);
};
} // namespace OpenMS
#endif
|