summaryrefslogtreecommitdiff
path: root/src/pmview/metriclist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmview/metriclist.h')
-rw-r--r--src/pmview/metriclist.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/pmview/metriclist.h b/src/pmview/metriclist.h
new file mode 100644
index 0000000..8ef1eee
--- /dev/null
+++ b/src/pmview/metriclist.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 1997 Silicon Graphics, Inc. All Rights Reserved.
+ * Copyright (c) 2009 Aconex. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+#ifndef _METRICLIST_H_
+#define _METRICLIST_H_
+
+#include <sys/types.h>
+#include <Inventor/SbColor.h>
+#include "qmc_metric.h"
+#include "qmc_source.h"
+
+typedef QList<QmcMetric *> MetricsList;
+typedef QList<SbColor *> SbColorList;
+
+class MetricList
+{
+public:
+
+ enum AlignColor { noColors, perMetric, perValue };
+
+private:
+
+ MetricsList _metrics;
+ SbColorList _colors;
+ int _values;
+
+public:
+
+ ~MetricList();
+
+ MetricList();
+
+ int numMetrics() const
+ { return _metrics.size(); }
+ int numValues() const
+ { return _values; }
+ int numColors() const
+ { return _colors.size(); }
+
+ const QmcMetric &metric(int i) const
+ { return *(_metrics[i]); }
+ QmcMetric &metric(int i)
+ { return *(_metrics[i]); }
+
+ const SbColor &color(int i) const
+ { return *(_colors[i]); }
+ SbColor &color(int i)
+ { return *(_colors[i]); }
+ void color(int i, QString &str) const;
+
+ int add(char const* metric, double scale);
+ int add(char const* metric, double scale, int history);
+ int add(pmMetricSpec *metric, double scale);
+ int add(pmMetricSpec *metric, double scale, int history);
+ int traverse(const char *metric);
+
+ void add(SbColor const& color);
+ void add(int packedcol);
+
+ void resolveColors(AlignColor align = perMetric);
+
+ static void toString(const SbColor &color, QString &str);
+
+ friend QTextStream& operator<<(QTextStream&, MetricList const &);
+
+private:
+
+ MetricList(const MetricList &);
+ const MetricList &operator=(const MetricList &);
+ // Never defined
+};
+
+#endif /* _METRICLIST_H_ */