Commit ef48e7bf authored by Jeff Baumes's avatar Jeff Baumes

ENH: Adding theme parameters, other enhancements

 - Scale*LookupTable sets whether to scale the lookup table range to
   the data range.

 - *TextProperty sets the point/cell (or vertex/edge) text property
   for labels. This replaces the functionality of Set*LabelColor.

 - Updated ClientTreeAreaView and ClientGraphView to use these new
   theme parameters, in addition to lookup tables that were added
   previously. No changes were made to the display panel to incorporate
   this, just XML and the view itself.

 - Changing the shape of the color swatches on vtkQt*View from
   square to circle.

 - Fixing label placement in ClientGraphView so labels appear just over
   the vertex (or icon if icons are used).

 - Remove "Selecting" flag in vtkQtTreeView since it seems to hinder
   updating the selection color when selecting in that view.
parent 67aacfe6
......@@ -34,6 +34,7 @@
#include <QColor>
#include <QIcon>
#include <QPainter>
#include <QPixmap>
#include <QHash>
#include <QMap>
......@@ -554,7 +555,12 @@ QVariant vtkQtTableModelAdapter::headerData(int section, Qt::Orientation orienta
rgb[2] = static_cast<int>(0x0ff & rgba[2]);
QPixmap pixmap(16, 16);
pixmap.fill(QColor(rgb[0],rgb[1],rgb[2]));
pixmap.fill(QColor(0, 0, 0, 0));
QPainter painter(&pixmap);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(QColor(rgb[0], rgb[1], rgb[2])));
painter.drawEllipse(4, 4, 7, 7);
return QVariant(pixmap);
}
}
......
......@@ -39,6 +39,9 @@
#include <vtkstd/algorithm>
#include <QIcon>
#include <QPainter>
#include <QBrush>
#include <QPen>
#include <QPixmap>
#include <QMimeData>
......@@ -334,7 +337,19 @@ QVariant vtkQtTreeModelAdapter::data(const QModelIndex &idx, int role) const
if(role == Qt::DecorationRole)
{
QPixmap pixmap(12, 12);
pixmap.fill(QColor(rgb[0],rgb[1],rgb[2]));
pixmap.fill(QColor(0, 0, 0, 0));
QPainter painter(&pixmap);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(QColor(rgb[0],rgb[1],rgb[2])));
if (this->rowCount(idx) > 0)
{
painter.drawEllipse(0, 0, 11, 11);
}
else
{
painter.drawEllipse(2, 2, 7, 7);
}
return QVariant(pixmap);
}
else if(role == Qt::TextColorRole)
......
......@@ -44,7 +44,7 @@
#include "vtkTree.h"
#include "vtkViewTheme.h"
vtkCxxRevisionMacro(vtkQtTreeView, "1.26");
vtkCxxRevisionMacro(vtkQtTreeView, "1.27");
vtkStandardNewMacro(vtkQtTreeView);
//----------------------------------------------------------------------------
......@@ -74,7 +74,6 @@ vtkQtTreeView::vtkQtTreeView()
this->SetUseColumnView(false);
this->SetAlternatingRowColors(false);
this->SetShowRootNode(false);
this->Selecting = false;
this->CurrentSelectionMTime = 0;
this->ColorArrayNameInternal = 0;
double defCol[3] = {0.827,0.827,0.827};
......@@ -300,8 +299,6 @@ void vtkQtTreeView::slotQtSelectionChanged(const QItemSelection& vtkNotUsed(s1),
// Store the selection mtime
this->CurrentSelectionMTime = rep->GetAnnotationLink()->GetCurrentSelection()->GetMTime();
this->Selecting = true;
}
//----------------------------------------------------------------------------
......@@ -349,13 +346,6 @@ void vtkQtTreeView::SetVTKSelection()
//----------------------------------------------------------------------------
void vtkQtTreeView::Update()
{
// If we initiated the selection, do nothing.
if(this->Selecting)
{
this->Selecting = false;
return;
}
vtkDataRepresentation* rep = this->GetRepresentation();
if (!rep)
{
......@@ -438,6 +428,8 @@ void vtkQtTreeView::ApplyViewTheme(vtkViewTheme* theme)
this->ApplyColors->SetSelectedPointOpacity(theme->GetSelectedPointOpacity());
this->ApplyColors->SetSelectedCellColor(theme->GetSelectedCellColor());
this->ApplyColors->SetSelectedCellOpacity(theme->GetSelectedCellOpacity());
this->ApplyColors->SetScalePointLookupTable(theme->GetScalePointLookupTable());
this->ApplyColors->SetScaleCellLookupTable(theme->GetScaleCellLookupTable());
}
//----------------------------------------------------------------------------
......
......@@ -140,7 +140,6 @@ private:
QPointer<QVBoxLayout> Layout;
vtkQtTreeModelAdapter* TreeAdapter;
QAbstractItemView* View;
bool Selecting;
char* ColorArrayNameInternal;
//BTX
......
......@@ -22,11 +22,14 @@
#include "vtkLookupTable.h"
#include "vtkObjectFactory.h"
#include "vtkTextProperty.h"
vtkCxxRevisionMacro(vtkViewTheme, "1.7");
vtkCxxRevisionMacro(vtkViewTheme, "1.8");
vtkStandardNewMacro(vtkViewTheme);
vtkCxxSetObjectMacro(vtkViewTheme, PointLookupTable, vtkScalarsToColors);
vtkCxxSetObjectMacro(vtkViewTheme, CellLookupTable, vtkScalarsToColors);
vtkCxxSetObjectMacro(vtkViewTheme, PointTextProperty, vtkTextProperty);
vtkCxxSetObjectMacro(vtkViewTheme, CellTextProperty, vtkTextProperty);
vtkViewTheme::vtkViewTheme()
{
......@@ -66,10 +69,22 @@ vtkViewTheme::vtkViewTheme()
this->BackgroundColor[2] = 0.0;
this->BackgroundColor2[0] = this->BackgroundColor2[1] =
this->BackgroundColor2[2] = 0.3;
this->VertexLabelColor[0] = this->VertexLabelColor[1] =
this->VertexLabelColor[2] = 1;
this->EdgeLabelColor[0] = this->EdgeLabelColor[1] =
this->EdgeLabelColor[2] = 0.7;
this->ScalePointLookupTable = true;
this->ScaleCellLookupTable = true;
this->PointTextProperty = vtkTextProperty::New();
this->PointTextProperty->SetColor(1, 1, 1);
this->PointTextProperty->BoldOn();
this->PointTextProperty->SetJustificationToCentered();
this->PointTextProperty->SetVerticalJustificationToCentered();
this->PointTextProperty->SetFontSize(12);
this->CellTextProperty = vtkTextProperty::New();
this->CellTextProperty->SetColor(0.7, 0.7, 0.7);
this->CellTextProperty->BoldOn();
this->CellTextProperty->SetJustificationToCentered();
this->CellTextProperty->SetVerticalJustificationToCentered();
this->CellTextProperty->SetFontSize(10);
}
vtkViewTheme::~vtkViewTheme()
......@@ -82,6 +97,14 @@ vtkViewTheme::~vtkViewTheme()
{
this->PointLookupTable->Delete();
}
if (this->CellTextProperty)
{
this->CellTextProperty->Delete();
}
if (this->PointTextProperty)
{
this->PointTextProperty->Delete();
}
}
//---------------------------------------------------------------------------
......@@ -436,6 +459,32 @@ void vtkViewTheme::GetCellAlphaRange(double rng[2])
}
}
void vtkViewTheme::SetVertexLabelColor(double r, double g, double b)
{
if (this->PointTextProperty)
{
this->PointTextProperty->SetColor(r, g, b);
}
}
double *vtkViewTheme::GetVertexLabelColor()
{
return this->PointTextProperty ? this->PointTextProperty->GetColor() : 0;
}
void vtkViewTheme::SetEdgeLabelColor(double r, double g, double b)
{
if (this->CellTextProperty)
{
this->CellTextProperty->SetColor(r, g, b);
}
}
double *vtkViewTheme::GetEdgeLabelColor()
{
return this->CellTextProperty ? this->CellTextProperty->GetColor() : 0;
}
vtkViewTheme* vtkViewTheme::CreateOceanTheme()
{
vtkViewTheme* theme = vtkViewTheme::New();
......@@ -445,8 +494,8 @@ vtkViewTheme* vtkViewTheme::CreateOceanTheme()
theme->SetBackgroundColor(.8, .8, .8);
theme->SetBackgroundColor2(1, 1, 1);
theme->SetVertexLabelColor(0, 0, 0);
theme->SetEdgeLabelColor(.2, .2, .2);
theme->GetPointTextProperty()->SetColor(0, 0, 0);
theme->GetCellTextProperty()->SetColor(.2, .2, .2);
theme->SetPointColor(0.5, 0.5, 0.5);
theme->SetPointHueRange(0.667, 0);
......@@ -477,8 +526,8 @@ vtkViewTheme* vtkViewTheme::CreateNeonTheme()
theme->SetBackgroundColor(.2,.2,.4);
theme->SetBackgroundColor2(.1,.1,.2);
theme->SetVertexLabelColor(1, 1, 1);
theme->SetEdgeLabelColor(.7, .7, .7);
theme->GetPointTextProperty()->SetColor(1, 1, 1);
theme->GetCellTextProperty()->SetColor(.7, .7, .7);
theme->SetPointColor(0.5, 0.5, 0.6);
theme->SetPointHueRange(0.6, 0);
......@@ -509,8 +558,8 @@ vtkViewTheme* vtkViewTheme::CreateMellowTheme()
theme->SetBackgroundColor(0.3, 0.3, 0.25); // Darker Tan
theme->SetBackgroundColor2(0.6, 0.6, 0.5); // Tan
theme->SetVertexLabelColor(1, 1, 1);
theme->SetEdgeLabelColor(.7, .7, 1);
theme->GetPointTextProperty()->SetColor(1, 1, 1);
theme->GetCellTextProperty()->SetColor(.7, .7, 1);
theme->SetPointColor(0.0, 0.0, 1.0);
theme->SetPointHueRange(0.667, 0);
......@@ -619,14 +668,6 @@ void vtkViewTheme::PrintSelf(ostream& os, vtkIndent indent)
<< this->BackgroundColor2[0] << ","
<< this->BackgroundColor2[1] << ","
<< this->BackgroundColor2[2] << endl;
os << indent << "VertexLabelColor: "
<< this->VertexLabelColor[0] << ","
<< this->VertexLabelColor[1] << ","
<< this->VertexLabelColor[2] << endl;
os << indent << "EdgeLabelColor: "
<< this->EdgeLabelColor[0] << ","
<< this->EdgeLabelColor[1] << ","
<< this->EdgeLabelColor[2] << endl;
os << indent << "PointLookupTable: " << (this->PointLookupTable ? "" : "(none)") << endl;
if (this->PointLookupTable)
{
......@@ -637,5 +678,25 @@ void vtkViewTheme::PrintSelf(ostream& os, vtkIndent indent)
{
this->CellLookupTable->PrintSelf(os, indent.GetNextIndent());
}
os << indent << "PointTextProperty: " << (this->PointTextProperty ? "" : "(none)") << endl;
if (this->PointTextProperty)
{
this->PointTextProperty->PrintSelf(os, indent.GetNextIndent());
os << indent << "VertexLabelColor: "
<< this->PointTextProperty->GetColor()[0] << ","
<< this->PointTextProperty->GetColor()[1] << ","
<< this->PointTextProperty->GetColor()[2] << endl;
}
os << indent << "CellTextProperty: " << (this->CellTextProperty ? "" : "(none)") << endl;
if (this->CellTextProperty)
{
this->CellTextProperty->PrintSelf(os, indent.GetNextIndent());
os << indent << "EdgeLabelColor: "
<< this->CellTextProperty->GetColor()[0] << ","
<< this->CellTextProperty->GetColor()[1] << ","
<< this->CellTextProperty->GetColor()[2] << endl;
}
os << indent << "ScalePointLookupTable: " << this->ScalePointLookupTable << endl;
os << indent << "ScaleCellLookupTable: " << this->ScaleCellLookupTable << endl;
}
......@@ -33,6 +33,7 @@
#include "vtkObject.h"
class vtkScalarsToColors;
class vtkTextProperty;
class VTK_RENDERING_EXPORT vtkViewTheme : public vtkObject
{
......@@ -88,9 +89,15 @@ public:
virtual void GetPointAlphaRange(double rng[2]);
// Description:
// Set/Get the cell lookup table.
vtkGetObjectMacro(CellLookupTable, vtkScalarsToColors);
virtual void SetCellLookupTable(vtkScalarsToColors* lut);
// Set/Get the point lookup table.
vtkGetObjectMacro(PointLookupTable, vtkScalarsToColors);
virtual void SetPointLookupTable(vtkScalarsToColors* lut);
// Description:
// Whether to scale the lookup table to fit the range of the data.
vtkSetMacro(ScalePointLookupTable, bool);
vtkGetMacro(ScalePointLookupTable, bool);
vtkBooleanMacro(ScalePointLookupTable, bool);
// Description:
// The color and opacity of cells or edges when not mapped through
......@@ -129,9 +136,15 @@ public:
virtual void GetCellAlphaRange(double rng[2]);
// Description:
// Set/Get the point lookup table.
vtkGetObjectMacro(PointLookupTable, vtkScalarsToColors);
virtual void SetPointLookupTable(vtkScalarsToColors* lut);
// Set/Get the cell lookup table.
vtkGetObjectMacro(CellLookupTable, vtkScalarsToColors);
virtual void SetCellLookupTable(vtkScalarsToColors* lut);
// Description:
// Whether to scale the lookup table to fit the range of the data.
vtkSetMacro(ScaleCellLookupTable, bool);
vtkGetMacro(ScaleCellLookupTable, bool);
vtkBooleanMacro(ScaleCellLookupTable, bool);
// Description:
// The color of any outlines in the view.
......@@ -162,15 +175,39 @@ public:
vtkSetVector3Macro(BackgroundColor2, double);
vtkGetVector3Macro(BackgroundColor2, double);
// Description:
// The text property to use for labelling points/vertices.
virtual void SetPointTextProperty(vtkTextProperty* tprop);
vtkGetObjectMacro(PointTextProperty, vtkTextProperty);
// Description:
// The text property to use for labelling edges/cells.
virtual void SetCellTextProperty(vtkTextProperty* tprop);
vtkGetObjectMacro(CellTextProperty, vtkTextProperty);
// Description:
// The color to use for labelling graph vertices.
vtkSetVector3Macro(VertexLabelColor, double);
vtkGetVector3Macro(VertexLabelColor, double);
// This is deprecated. Use GetPointTextProperty()->SetColor() instead.
virtual void SetVertexLabelColor(double r, double g, double b);
virtual void SetVertexLabelColor(double c[3])
{ this->SetVertexLabelColor(c[0], c[1], c[2]); }
virtual double *GetVertexLabelColor();
virtual void GetVertexLabelColor(double &r, double &g, double &b)
{ double* c = this->GetVertexLabelColor(); if (c) { r = c[0]; g = c[1]; b = c[2]; } }
virtual void GetVertexLabelColor(double c[3])
{ this->GetVertexLabelColor(c[0], c[1], c[2]); }
// Description:
// The color to use for labelling graph edges.
vtkSetVector3Macro(EdgeLabelColor, double);
vtkGetVector3Macro(EdgeLabelColor, double);
// This is deprecated. Use GetCellTextProperty()->SetColor() instead.
virtual void SetEdgeLabelColor(double r, double g, double b);
virtual void SetEdgeLabelColor(double c[3])
{ this->SetEdgeLabelColor(c[0], c[1], c[2]); }
virtual double *GetEdgeLabelColor();
virtual void GetEdgeLabelColor(double &r, double &g, double &b)
{ double* c = this->GetEdgeLabelColor(); if (c) { r = c[0]; g = c[1]; b = c[2]; } }
virtual void GetEdgeLabelColor(double c[3])
{ this->GetEdgeLabelColor(c[0], c[1], c[2]); }
// Description:
// Convenience methods for creating some default view themes.
......@@ -208,12 +245,16 @@ protected:
double BackgroundColor[3];
double BackgroundColor2[3];
double VertexLabelColor[3];
double EdgeLabelColor[3];
vtkScalarsToColors* PointLookupTable;
vtkScalarsToColors* CellLookupTable;
bool ScalePointLookupTable;
bool ScaleCellLookupTable;
vtkTextProperty* PointTextProperty;
vtkTextProperty* CellTextProperty;
private:
vtkViewTheme(const vtkViewTheme&); // Not implemented.
void operator=(const vtkViewTheme&); // Not implemented.
......
......@@ -27,6 +27,7 @@
#include "vtkRenderWindowInteractor.h"
#include "vtkStringToNumeric.h"
#include "vtkTestUtilities.h"
#include "vtkTextProperty.h"
#include "vtkViewTheme.h"
#include "vtkXMLTreeReader.h"
......@@ -61,6 +62,7 @@ int TestIcicleView(int argc, char* argv[])
// Apply a theme to the views
vtkViewTheme* const theme = vtkViewTheme::CreateMellowTheme();
theme->GetPointTextProperty()->ShadowOn();
view->ApplyViewTheme(theme);
theme->Delete();
......
......@@ -25,6 +25,7 @@
#include "vtkRenderWindowInteractor.h"
#include "vtkSQLDatabaseTableSource.h"
#include "vtkTableToGraph.h"
#include "vtkTextProperty.h"
#include "vtkTreeRingView.h"
#include "vtkVertexDegree.h"
#include "vtkViewTheme.h"
......@@ -84,6 +85,7 @@ int TestNetworkViews(int argc, char* argv[])
// Apply a theme to the views
vtkViewTheme* const theme = vtkViewTheme::CreateMellowTheme();
theme->GetPointTextProperty()->ShadowOn();
view1->ApplyViewTheme(theme);
theme->Delete();
......
......@@ -25,6 +25,7 @@
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkTestUtilities.h"
#include "vtkTextProperty.h"
#include "vtkTreeRingView.h"
#include "vtkViewTheme.h"
#include "vtkXMLTreeReader.h"
......@@ -81,6 +82,7 @@ int TestTreeRingView(int argc, char* argv[])
// Apply a theme to the views
vtkViewTheme* const theme = vtkViewTheme::CreateMellowTheme();
theme->SetLineWidth(1);
theme->GetPointTextProperty()->ShadowOn();
view->ApplyViewTheme(theme);
theme->Delete();
......
......@@ -42,7 +42,7 @@
#include "vtkTextProperty.h"
#include "vtkViewTheme.h"
vtkCxxRevisionMacro(vtkHierarchicalGraphPipeline, "1.11");
vtkCxxRevisionMacro(vtkHierarchicalGraphPipeline, "1.12");
vtkStandardNewMacro(vtkHierarchicalGraphPipeline);
vtkHierarchicalGraphPipeline::vtkHierarchicalGraphPipeline()
......@@ -243,7 +243,7 @@ void vtkHierarchicalGraphPipeline::ApplyViewTheme(vtkViewTheme* theme)
this->ApplyColors->SetCellLookupTable(theme->GetCellLookupTable());
this->TextProperty->SetColor(theme->GetEdgeLabelColor());
this->TextProperty->ShallowCopy(theme->GetCellTextProperty());
this->Actor->GetProperty()->SetLineWidth(theme->GetLineWidth());
}
......
......@@ -95,7 +95,7 @@
vtkCxxRevisionMacro(vtkRenderedGraphRepresentation, "1.27");
vtkCxxRevisionMacro(vtkRenderedGraphRepresentation, "1.28");
vtkStandardNewMacro(vtkRenderedGraphRepresentation);
vtkRenderedGraphRepresentation::vtkRenderedGraphRepresentation()
......@@ -230,15 +230,6 @@ vtkRenderedGraphRepresentation::vtkRenderedGraphRepresentation()
this->EdgeMapper->SetScalarVisibility(true);
this->EdgeActor->SetPosition(0, 0, -0.003);
this->GetVertexLabelTextProperty()->BoldOn();
this->GetVertexLabelTextProperty()->SetJustificationToCentered();
this->GetVertexLabelTextProperty()->SetVerticalJustificationToCentered();
this->GetVertexLabelTextProperty()->SetFontSize(12);
this->GetEdgeLabelTextProperty()->BoldOn();
this->GetEdgeLabelTextProperty()->SetJustificationToCentered();
this->GetEdgeLabelTextProperty()->SetVerticalJustificationToCentered();
this->GetEdgeLabelTextProperty()->SetFontSize(10);
this->VertexScalarBar->GetScalarBarActor()->VisibilityOff();
this->EdgeScalarBar->GetScalarBarActor()->VisibilityOff();
......@@ -1243,6 +1234,8 @@ void vtkRenderedGraphRepresentation::ApplyViewTheme(vtkViewTheme* theme)
this->ApplyColors->SetSelectedPointOpacity(theme->GetSelectedPointOpacity());
this->ApplyColors->SetSelectedCellColor(theme->GetSelectedCellColor());
this->ApplyColors->SetSelectedCellOpacity(theme->GetSelectedCellOpacity());
this->ApplyColors->SetScalePointLookupTable(theme->GetScalePointLookupTable());
this->ApplyColors->SetScaleCellLookupTable(theme->GetScaleCellLookupTable());
float baseSize = static_cast<float>(theme->GetPointSize());
float lineWidth = static_cast<float>(theme->GetLineWidth());
......@@ -1263,9 +1256,9 @@ void vtkRenderedGraphRepresentation::ApplyViewTheme(vtkViewTheme* theme)
this->OutlineActor->VisibilityOff();
}
this->GetVertexLabelTextProperty()->SetColor(theme->GetVertexLabelColor());
this->GetVertexLabelTextProperty()->ShallowCopy(theme->GetPointTextProperty());
this->GetVertexLabelTextProperty()->SetLineOffset(-2*baseSize);
this->GetEdgeLabelTextProperty()->SetColor(theme->GetEdgeLabelColor());
this->GetEdgeLabelTextProperty()->ShallowCopy(theme->GetCellTextProperty());
// Moronic hack.. the circles seem to be really small so make them bigger
if (this->VertexGlyph->GetGlyphType() == vtkGraphToGlyphs::CIRCLE)
......
......@@ -43,7 +43,7 @@
#include "vtkTransformFilter.h"
#include "vtkViewTheme.h"
vtkCxxRevisionMacro(vtkRenderedSurfaceRepresentation, "1.6");
vtkCxxRevisionMacro(vtkRenderedSurfaceRepresentation, "1.7");
vtkStandardNewMacro(vtkRenderedSurfaceRepresentation);
//----------------------------------------------------------------------------
vtkRenderedSurfaceRepresentation::vtkRenderedSurfaceRepresentation()
......@@ -211,6 +211,8 @@ void vtkRenderedSurfaceRepresentation::ApplyViewTheme(vtkViewTheme* theme)
//this->ApplyColors->SetSelectedPointOpacity(theme->GetSelectedPointOpacity());
this->ApplyColors->SetSelectedCellColor(theme->GetSelectedCellColor());
//this->ApplyColors->SetSelectedCellOpacity(theme->GetSelectedCellOpacity());
this->ApplyColors->SetScalePointLookupTable(theme->GetScalePointLookupTable());
this->ApplyColors->SetScaleCellLookupTable(theme->GetScaleCellLookupTable());
float baseSize = static_cast<float>(theme->GetPointSize());
float lineWidth = static_cast<float>(theme->GetLineWidth());
......
......@@ -81,7 +81,7 @@ public:
vtkstd::vector<vtkSmartPointer<vtkHierarchicalGraphPipeline> > Graphs;
};
vtkCxxRevisionMacro(vtkRenderedTreeAreaRepresentation, "1.14");
vtkCxxRevisionMacro(vtkRenderedTreeAreaRepresentation, "1.15");
vtkStandardNewMacro(vtkRenderedTreeAreaRepresentation);
vtkRenderedTreeAreaRepresentation::vtkRenderedTreeAreaRepresentation()
......@@ -938,6 +938,10 @@ void vtkRenderedTreeAreaRepresentation::ApplyViewTheme(vtkViewTheme* theme)
this->ApplyColors->SetSelectedPointOpacity(theme->GetSelectedPointOpacity());
this->ApplyColors->SetSelectedCellColor(theme->GetSelectedCellColor());
this->ApplyColors->SetSelectedCellOpacity(theme->GetSelectedCellOpacity());
this->ApplyColors->SetScalePointLookupTable(theme->GetScalePointLookupTable());
this->ApplyColors->SetScaleCellLookupTable(theme->GetScaleCellLookupTable());
this->GetAreaLabelTextProperty()->ShallowCopy(theme->GetPointTextProperty());
// Make sure we have the right number of graphs
if (this->GetNumberOfInputConnections(1) !=
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment