Wt examples  4.2.2
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 
13 namespace 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 
40 class ChartConfig : public Wt::WContainerWidget
41 {
42 public:
45  ChartConfig(Wt::Chart::WCartesianChart *chart);
46 
47  void setValueFill(Wt::Chart::FillRangeType fill);
48 
49 private:
50  Wt::Chart::WCartesianChart *chart_;
51  Wt::Chart::FillRangeType fill_;
52 
54  struct SeriesControl {
55  Wt::WCheckBox *enabledEdit;
56  Wt::WComboBox *typeEdit;
57  Wt::WComboBox *markerEdit;
58  Wt::WComboBox *axisEdit;
59  Wt::WCheckBox *legendEdit;
60  Wt::WCheckBox *shadowEdit;
61  Wt::WComboBox *labelsEdit;
62  };
63 
65  std::vector<SeriesControl> seriesControls_;
66 
68  struct AxisControl {
69  Wt::WCheckBox *visibleEdit;
70  Wt::WComboBox *scaleEdit;
71  Wt::WCheckBox *autoEdit;
72  Wt::WLineEdit *minimumEdit;
73  Wt::WLineEdit *maximumEdit;
74  Wt::WCheckBox *gridLinesEdit;
75  Wt::WLineEdit *labelAngleEdit;
76  Wt::WLineEdit *titleEdit;
77  Wt::WComboBox *titleOrientationEdit;
78  Wt::WComboBox *tickDirectionEdit;
79  Wt::WComboBox *locationEdit;
80  };
81 
83  std::vector<AxisControl> axisControls_;
84 
85  Wt::WLineEdit *titleEdit_;
86  Wt::WLineEdit *chartWidthEdit_;
87  Wt::WLineEdit *chartHeightEdit_;
88  Wt::WComboBox *chartOrientationEdit_;
89  Wt::WComboBox *legendLocationEdit_;
90  Wt::WComboBox *legendSideEdit_;
91  Wt::WComboBox *legendAlignmentEdit_;
92  Wt::WCheckBox *borderEdit_;
93 
94  std::shared_ptr<Wt::WStandardItemModel> yAxesModel_, xScales_, yScales_;
95  Wt::WTable *axisConfig_;
96  std::shared_ptr<Wt::WValidator> anyNumberValidator_, angleValidator_;
97 
98  void connectSignals(Wt::WFormWidget *w);
99  void update();
100  void addYAxis();
101  void addAxis(Wt::Chart::Axis axis, int yAxis);
102  void removeYAxis(const Wt::Chart::WAxis *axis);
103  void clearYAxes();
104 
105  static bool validate(Wt::WFormWidget *w);
106 };
107 
110 #endif // CHARTS_EXAMPLE_H_
ChartConfig(Wt::Chart::WCartesianChart *chart)
Constructor.
Definition: ChartConfig.C:76
Wt::WCheckBox * borderEdit_
Definition: ChartConfig.h:92
Wt::WComboBox * axisEdit
Definition: ChartConfig.h:58
std::shared_ptr< Wt::WStandardItemModel > xScales_
Definition: ChartConfig.h:94
std::shared_ptr< Wt::WValidator > angleValidator_
Definition: ChartConfig.h:96
Wt::Chart::FillRangeType fill_
Definition: ChartConfig.h:51
Wt::WComboBox * scaleEdit
Definition: ChartConfig.h:70
Wt::WLineEdit * titleEdit_
Definition: ChartConfig.h:85
Wt::Chart::WCartesianChart * chart_
Definition: ChartConfig.h:50
Wt::WTable * axisConfig_
Definition: ChartConfig.h:95
void connectSignals(Wt::WFormWidget *w)
Definition: ChartConfig.C:651
Wt::WCheckBox * enabledEdit
Definition: ChartConfig.h:55
Wt::WComboBox * locationEdit
Definition: ChartConfig.h:79
Struct that holds the controls for one series.
Definition: ChartConfig.h:54
Wt::WLineEdit * titleEdit
Definition: ChartConfig.h:76
Wt::WComboBox * typeEdit
Definition: ChartConfig.h:56
Wt::WCheckBox * visibleEdit
Definition: ChartConfig.h:69
void removeYAxis(const Wt::Chart::WAxis *axis)
Definition: ChartConfig.C:766
Wt::WComboBox * markerEdit
Definition: ChartConfig.h:57
Wt::WLineEdit * chartWidthEdit_
Definition: ChartConfig.h:86
Struct that holds the controls for one axis.
Definition: ChartConfig.h:68
Wt::WComboBox * chartOrientationEdit_
Definition: ChartConfig.h:88
Wt::WComboBox * legendLocationEdit_
Definition: ChartConfig.h:89
std::vector< SeriesControl > seriesControls_
Controls for series.
Definition: ChartConfig.h:65
Wt::WLineEdit * minimumEdit
Definition: ChartConfig.h:72
Wt::WComboBox * legendSideEdit_
Definition: ChartConfig.h:90
std::vector< AxisControl > axisControls_
Controls for axes.
Definition: ChartConfig.h:83
void update()
Definition: ChartConfig.C:383
Wt::WCheckBox * shadowEdit
Definition: ChartConfig.h:60
Wt::WComboBox * labelsEdit
Definition: ChartConfig.h:61
void setValueFill(Wt::Chart::FillRangeType fill)
Definition: ChartConfig.C:378
Wt::WComboBox * tickDirectionEdit
Definition: ChartConfig.h:78
Wt::WLineEdit * labelAngleEdit
Definition: ChartConfig.h:75
Wt::WCheckBox * legendEdit
Definition: ChartConfig.h:59
std::shared_ptr< Wt::WStandardItemModel > yScales_
Definition: ChartConfig.h:94
std::shared_ptr< Wt::WValidator > anyNumberValidator_
Definition: ChartConfig.h:96
Wt::WCheckBox * gridLinesEdit
Definition: ChartConfig.h:74
Wt::WComboBox * titleOrientationEdit
Definition: ChartConfig.h:77
void addYAxis()
Definition: ChartConfig.C:658
Wt::WComboBox * legendAlignmentEdit_
Definition: ChartConfig.h:91
Wt::WCheckBox * autoEdit
Definition: ChartConfig.h:71
A class that allows configuration of a cartesian chart.
Definition: ChartConfig.h:40
void clearYAxes()
Definition: ChartConfig.C:780
Wt::WLineEdit * maximumEdit
Definition: ChartConfig.h:73
void addAxis(Wt::Chart::Axis axis, int yAxis)
Definition: ChartConfig.C:667
std::shared_ptr< Wt::WStandardItemModel > yAxesModel_
Definition: ChartConfig.h:94
static bool validate(Wt::WFormWidget *w)
Definition: ChartConfig.C:639
Wt::WLineEdit * chartHeightEdit_
Definition: ChartConfig.h:87

Generated on Fri Mar 20 2020 for the C++ Web Toolkit (Wt) by doxygen 1.8.15