VTK
vtkChartLegend.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkChartLegend.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
29 #ifndef vtkChartLegend_h
30 #define vtkChartLegend_h
31 
32 #include "vtkChartsCoreModule.h" // For export macro
33 #include "vtkContextItem.h"
34 #include "vtkNew.h" // For vtkNew
35 #include "vtkRect.h" // For vtkRectf return value
36 
37 class vtkChart;
38 class vtkPen;
39 class vtkBrush;
40 class vtkTextProperty;
41 
42 class VTKCHARTSCORE_EXPORT vtkChartLegend : public vtkContextItem
43 {
44 public:
46  virtual void PrintSelf(ostream &os, vtkIndent indent);
47 
51  static vtkChartLegend *New();
52 
54 
57  vtkSetVector2Macro(Point, float);
59 
61 
64  vtkGetVector2Macro(Point, float);
66 
67  enum {
68  LEFT = 0,
71  TOP,
73  CUSTOM
74  };
75 
79  void SetPoint(const vtkVector2f &point);
80 
85 
87 
91  vtkSetMacro(HorizontalAlignment, int);
93 
95 
98  vtkGetMacro(HorizontalAlignment, int);
100 
102 
106  vtkSetMacro(VerticalAlignment, int);
108 
110 
113  vtkGetMacro(VerticalAlignment, int);
115 
117 
120  vtkSetMacro(Padding, int);
122 
124 
127  vtkGetMacro(Padding, int);
129 
131 
134  vtkSetMacro(SymbolWidth, int);
136 
138 
141  vtkGetMacro(SymbolWidth, int);
143 
147  virtual void SetLabelSize(int size);
148 
152  virtual int GetLabelSize();
153 
155 
161  vtkGetMacro(Inline, bool);
163 
165 
171  vtkSetMacro(DragEnabled, bool);
172  vtkGetMacro(DragEnabled, bool);
174 
178  void SetChart(vtkChart* chart);
179 
184 
189  virtual void Update();
190 
194  virtual bool Paint(vtkContext2D *painter);
195 
203 
208 
213 
218 
220 
228  vtkSetMacro(CacheBounds, bool);
229  vtkGetMacro(CacheBounds, bool);
230  vtkBooleanMacro(CacheBounds, bool);
232 
236  virtual bool Hit(const vtkContextMouseEvent &mouse);
237 
241  virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse);
242 
246  virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse);
247 
251  virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse);
252 
253 protected:
256 
257  float* Point; // The point the legend is anchored to.
258  int HorizontalAlignment; // Alignment of the legend to the point it is anchored to.
259  int VerticalAlignment; // Alignment of the legend to the point it is anchored to.
260 
265 
270 
275 
280 
286 
290  int Button;
291 
294 
296 
300  int Padding;
301 
306 
310  bool Inline;
311 
312  // Private storage class
313  class Private;
314  Private* Storage;
315 
316 private:
317  vtkChartLegend(const vtkChartLegend &) VTK_DELETE_FUNCTION;
318  void operator=(const vtkChartLegend &) VTK_DELETE_FUNCTION;
319 };
320 
321 #endif //vtkChartLegend_h
provides a brush that fills shapes drawn by vtkContext2D.
Definition: vtkBrush.h:38
draw the chart legend
Private * Storage
bool DragEnabled
Should we move the legend box around in response to the mouse drag?
int SymbolWidth
Width of the symbols in pixels in the legend.
int Button
Last button to be pressed.
vtkChart * GetChart()
Get the chart that the legend belongs to and will draw the legend for.
vtkNew< vtkBrush > Brush
The brush used to render the background of the legend.
bool CacheBounds
Should the legend attempt to avoid recalculating its position & bounds unnecessarily?
const vtkVector2f & GetPointVector()
Get point the legend box is anchored to.
bool Inline
Should the legend be drawn inline in its chart?
virtual void Update()
Update the geometry of the axis.
vtkNew< vtkTextProperty > LabelProperties
The text properties of the labels used in the legend.
virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse)
Mouse button release event.
int Padding
Padding between symbol and text.
vtkNew< vtkPen > Pen
The pen used to draw the legend box.
virtual void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkTimeStamp PlotTime
virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse)
Mouse button down event.
vtkTimeStamp RectTime
vtkBrush * GetBrush()
Get the brush used to draw the legend background.
virtual bool Hit(const vtkContextMouseEvent &mouse)
Return true if the supplied x, y coordinate is inside the item.
void SetChart(vtkChart *chart)
Set the chart that the legend belongs to and will draw the legend for.
virtual int GetLabelSize()
Get the point size of the label text.
vtkTextProperty * GetLabelProperties()
Get the vtkTextProperty for the legend's labels.
virtual vtkRectf GetBoundingRect(vtkContext2D *painter)
Request the space the legend requires to be drawn.
virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse)
Mouse move event.
vtkPen * GetPen()
Get the pen used to draw the legend outline.
virtual void SetLabelSize(int size)
Set the point size of the label text.
void SetPoint(const vtkVector2f &point)
Set point the legend box is anchored to.
static vtkChartLegend * New()
Creates a 2D Chart object.
virtual bool Paint(vtkContext2D *painter)
Paint event for the axis, called whenever the axis needs to be drawn.
Factory class for drawing 2D charts.
Definition: vtkChart.h:51
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:58
base class for items that are part of a vtkContextScene.
data structure to represent mouse events.
a simple class to control print indentation
Definition: vtkIndent.h:40
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition: vtkPen.h:40
represent text properties.
record modification and/or execution time
Definition: vtkTimeStamp.h:36
@ Inline
Definition: vtkX3D.h:113
@ point
Definition: vtkX3D.h:236
@ size
Definition: vtkX3D.h:253
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.