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
37class vtkChart;
38class vtkPen;
39class vtkBrush;
40class vtkTextProperty;
41
42class VTKCHARTSCORE_EXPORT vtkChartLegend : public vtkContextItem
43{
44public:
46 virtual void PrintSelf(ostream &os, vtkIndent indent);
47
52
54
57 vtkSetVector2Macro(Point, float);
59
61
64 vtkGetVector2Macro(Point, float);
66
67 enum {
68 LEFT = 0,
73 CUSTOM
74 };
75
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
252
253protected:
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
291
294
296
301
306
310 bool Inline;
311
312 // Private storage class
313 class Private;
314 Private* Storage;
315
316private:
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
vtkBrush * GetBrush()
Get the brush used to draw the legend background.
Private * Storage
const vtkVector2f & GetPointVector()
Get point the legend box is anchored to.
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.
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?
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
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.
vtkPen * GetPen()
Get the pen used to draw the legend outline.
virtual int GetLabelSize()
Get the point size of the label text.
virtual vtkRectf GetBoundingRect(vtkContext2D *painter)
Request the space the legend requires to be drawn.
virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse)
Mouse move event.
static vtkChartLegend * New()
Creates a 2D Chart object.
vtkTextProperty * GetLabelProperties()
Get the vtkTextProperty for the legend's labels.
vtkChart * GetChart()
Get the chart that the legend belongs to and will draw the legend for.
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.
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.