Wt examples  4.10.3
Loading...
Searching...
No Matches
ChartConfig.h
Go to the documentation of this file.
1// This may look like C code, but it's really -*- C++ -*-
2/*
3 * Copyright (C) 2008 Emweb bv, Herent, Belgium.
4 *
5 * See the LICENSE file for terms of use.
6 */
7#ifndef CHART_CONFIG_H_
8#define CHART_CONFIG_H_
9
10#include <Wt/WContainerWidget.h>
11#include <Wt/Chart/WDataSeries.h>
12
13namespace Wt {
14 class WCheckBox;
15 class WComboBox;
16 class WFormWidget;
17 class WLineEdit;
18 class WStandardItemModel;
19 class WTable;
20 class WValidator;
21
22 namespace Chart {
23 class WAxis;
24 class WCartesianChart;
25 }
26}
27
32
40class ChartConfig : public Wt::WContainerWidget
41{
42public:
45 ChartConfig(Wt::Chart::WCartesianChart *chart);
46
47 void setValueFill(Wt::Chart::FillRangeType fill);
48
49private:
50 Wt::Chart::WCartesianChart *chart_;
51 Wt::Chart::FillRangeType fill_;
52
55 Wt::WCheckBox *enabledEdit;
56 Wt::WComboBox *typeEdit;
57 Wt::WComboBox *markerEdit;
58 Wt::WComboBox *xAxisEdit;
59 Wt::WComboBox *yAxisEdit;
60 Wt::WCheckBox *legendEdit;
61 Wt::WCheckBox *shadowEdit;
62 Wt::WComboBox *labelsEdit;
63 };
64
66 std::vector<SeriesControl> seriesControls_;
67
69 struct AxisControl {
70 Wt::WCheckBox *visibleEdit;
71 Wt::WComboBox *scaleEdit;
72 Wt::WCheckBox *autoEdit;
73 Wt::WLineEdit *minimumEdit;
74 Wt::WLineEdit *maximumEdit;
75 Wt::WCheckBox *gridLinesEdit;
76 Wt::WLineEdit *labelAngleEdit;
77 Wt::WLineEdit *titleEdit;
78 Wt::WComboBox *titleOrientationEdit;
79 Wt::WComboBox *tickDirectionEdit;
80 Wt::WComboBox *locationEdit;
81 };
82
84 std::vector<AxisControl> axisControls_;
85
86 Wt::WLineEdit *titleEdit_;
87 Wt::WLineEdit *chartWidthEdit_;
88 Wt::WLineEdit *chartHeightEdit_;
89 Wt::WComboBox *chartOrientationEdit_;
90 Wt::WComboBox *legendLocationEdit_;
91 Wt::WComboBox *legendSideEdit_;
92 Wt::WComboBox *legendAlignmentEdit_;
93 Wt::WCheckBox *borderEdit_;
94
95 std::shared_ptr<Wt::WStandardItemModel> xAxesModel_, yAxesModel_, xScales_, yScales_;
96 Wt::WTable *axisConfig_;
97 std::shared_ptr<Wt::WValidator> anyNumberValidator_, angleValidator_;
98
99 void connectSignals(Wt::WFormWidget *w);
100 void update();
101 void addXAxis();
102 void addYAxis();
103 void addAxis(Wt::Chart::Axis axis, int axisId);
104 void removeXAxis(const Wt::Chart::WAxis *axis);
105 void removeYAxis(const Wt::Chart::WAxis *axis);
106 void clearXAxes();
107 void clearYAxes();
108
109 static bool validate(Wt::WFormWidget *w);
110};
111
114#endif // CHARTS_EXAMPLE_H_
A class that allows configuration of a cartesian chart.
Definition ChartConfig.h:41
std::vector< SeriesControl > seriesControls_
Controls for series.
Definition ChartConfig.h:66
void addAxis(Wt::Chart::Axis axis, int axisId)
Wt::WComboBox * legendAlignmentEdit_
Definition ChartConfig.h:92
Wt::WComboBox * legendLocationEdit_
Definition ChartConfig.h:90
std::shared_ptr< Wt::WValidator > angleValidator_
Definition ChartConfig.h:97
Wt::WTable * axisConfig_
Definition ChartConfig.h:96
Wt::WComboBox * legendSideEdit_
Definition ChartConfig.h:91
void removeXAxis(const Wt::Chart::WAxis *axis)
std::shared_ptr< Wt::WValidator > anyNumberValidator_
Definition ChartConfig.h:97
void setValueFill(Wt::Chart::FillRangeType fill)
Wt::WLineEdit * chartWidthEdit_
Definition ChartConfig.h:87
Wt::WLineEdit * titleEdit_
Definition ChartConfig.h:86
void removeYAxis(const Wt::Chart::WAxis *axis)
void addYAxis()
std::shared_ptr< Wt::WStandardItemModel > xAxesModel_
Definition ChartConfig.h:95
static bool validate(Wt::WFormWidget *w)
void connectSignals(Wt::WFormWidget *w)
Wt::Chart::WCartesianChart * chart_
Definition ChartConfig.h:50
std::vector< AxisControl > axisControls_
Controls for axes.
Definition ChartConfig.h:84
void clearYAxes()
std::shared_ptr< Wt::WStandardItemModel > xScales_
Definition ChartConfig.h:95
void clearXAxes()
Wt::Chart::FillRangeType fill_
Definition ChartConfig.h:51
void addXAxis()
void update()
Wt::WCheckBox * borderEdit_
Definition ChartConfig.h:93
Wt::WLineEdit * chartHeightEdit_
Definition ChartConfig.h:88
std::shared_ptr< Wt::WStandardItemModel > yAxesModel_
Definition ChartConfig.h:95
Wt::WComboBox * chartOrientationEdit_
Definition ChartConfig.h:89
std::shared_ptr< Wt::WStandardItemModel > yScales_
Definition ChartConfig.h:95
Struct that holds the controls for one axis.
Definition ChartConfig.h:69
Wt::WLineEdit * maximumEdit
Definition ChartConfig.h:74
Wt::WComboBox * tickDirectionEdit
Definition ChartConfig.h:79
Wt::WLineEdit * titleEdit
Definition ChartConfig.h:77
Wt::WLineEdit * labelAngleEdit
Definition ChartConfig.h:76
Wt::WComboBox * titleOrientationEdit
Definition ChartConfig.h:78
Wt::WCheckBox * gridLinesEdit
Definition ChartConfig.h:75
Wt::WLineEdit * minimumEdit
Definition ChartConfig.h:73
Wt::WComboBox * locationEdit
Definition ChartConfig.h:80
Wt::WComboBox * scaleEdit
Definition ChartConfig.h:71
Wt::WCheckBox * visibleEdit
Definition ChartConfig.h:70
Wt::WCheckBox * autoEdit
Definition ChartConfig.h:72
Struct that holds the controls for one series.
Definition ChartConfig.h:54
Wt::WComboBox * markerEdit
Definition ChartConfig.h:57
Wt::WComboBox * labelsEdit
Definition ChartConfig.h:62
Wt::WCheckBox * enabledEdit
Definition ChartConfig.h:55
Wt::WCheckBox * legendEdit
Definition ChartConfig.h:60
Wt::WCheckBox * shadowEdit
Definition ChartConfig.h:61
Wt::WComboBox * typeEdit
Definition ChartConfig.h:56
Wt::WComboBox * xAxisEdit
Definition ChartConfig.h:58
Wt::WComboBox * yAxisEdit
Definition ChartConfig.h:59