OpenMS  2.4.0
Annotation1DItem.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2018.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Johannes Veit $
32 // $Authors: Johannes Junker $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
38 
39 #include <QtCore/QRectF>
40 #include <QtCore/QString>
41 
42 class QPainter;
43 
44 namespace OpenMS
45 {
46  class Spectrum1DCanvas;
47 
60  {
61 
62 public:
65 
67  typedef float IntensityType;
68 
70  typedef double CoordinateType;
71 
73  virtual ~Annotation1DItem();
74 
76  const QRectF & boundingBox() const;
77 
79  bool isSelected() const;
80 
82  void setSelected(bool selected);
83 
85  void setText(const QString & text);
86 
88  const QString & getText() const;
89 
92  bool editText();
93 
95  virtual void ensureWithinDataRange(Spectrum1DCanvas * const canvas) = 0;
96 
98  virtual void draw(Spectrum1DCanvas * const canvas, QPainter & painter, bool flipped = false) = 0;
99 
101  virtual void move(const PointType & delta) = 0;
102 
103 protected:
105  Annotation1DItem(const QString & text);
106 
108  Annotation1DItem(const Annotation1DItem & rhs);
109 
111  void drawBoundingBox_(QPainter & painter);
112 
115 
117  bool selected_;
118 
120  QString text_;
121  };
122 } // namespace OpenMS
const QString & getText() const
Returns the text of the item.
virtual ~Annotation1DItem()
Destructor.
const QRectF & boundingBox() const
Returns the current bounding box of this item on the canvas where it has last been drawn...
bool isSelected() const
Returns true if this item is currently selected on the canvas, else false.
QString text_
The displayed text.
Definition: Annotation1DItem.h:120
virtual void draw(Spectrum1DCanvas *const canvas, QPainter &painter, bool flipped=false)=0
Draws the item on painter.
virtual void ensureWithinDataRange(Spectrum1DCanvas *const canvas)=0
Ensures that the item has coordinates within the visible area of the canvas.
void setSelected(bool selected)
Sets whether this item is currently selected on the canvas or not.
DPosition< 2 > PointType
Type of the Points.
Definition: Annotation1DItem.h:64
void setText(const QString &text)
Sets the text of the item.
QRectF bounding_box_
The current bounding box of this item on the canvas where it has last been drawn. ...
Definition: Annotation1DItem.h:114
Canvas for visualization of one or several spectra.
Definition: Spectrum1DCanvas.h:67
An abstract class acting as an interface for the different 1D annotation items.
Definition: Annotation1DItem.h:59
bool selected_
Determines whether this item is currently selected on the canvas.
Definition: Annotation1DItem.h:117
Annotation1DItem(const QString &text)
Constructor.
double CoordinateType
Coordinate type.
Definition: Annotation1DItem.h:70
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:46
float IntensityType
Intensity type.
Definition: Annotation1DItem.h:67
virtual void move(const PointType &delta)=0
Moves the item; behaviour depends on item type and is implemented in the subclasses.
void drawBoundingBox_(QPainter &painter)
Draws the bounding_box_.