[apps] Graph/Regression/Sequence::BannerView inherit from new Shared::XYBannerView

This commit is contained in:
Ruben Dashyan
2019-03-05 11:04:42 +01:00
committed by Émilie Feral
parent 236b752f4f
commit 0d34923dd1
11 changed files with 66 additions and 62 deletions

View File

@@ -5,20 +5,22 @@
namespace Graph {
BannerView::BannerView() :
m_abscissaView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle),
m_functionView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle),
Shared::XYBannerView(),
m_derivativeView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle),
m_tangentEquationView(KDFont::SmallFont, I18n::Message::LinearRegressionFormula, 0.0f, 0.5f, KDColorBlack, Palette::GreyMiddle),
m_aView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle),
m_bView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle),
m_numberOfSubviews(2)
m_numberOfSubviews(Shared::XYBannerView::k_numberOfSubviews)
{
}
View * BannerView::subviewAtIndex(int index) {
assert(0 <= index && index < numberOfSubviews());
View * subviews[] = {&m_abscissaView, &m_functionView, &m_derivativeView, &m_tangentEquationView, &m_aView, &m_bView};
return subviews[index];
if (index < Shared::XYBannerView::k_numberOfSubviews) {
return Shared::XYBannerView::subviewAtIndex(index);
}
View * subviews[] = {&m_derivativeView, &m_tangentEquationView, &m_aView, &m_bView};
return subviews[index - Shared::XYBannerView::k_numberOfSubviews];
}
MessageTextView * BannerView::messageTextViewAtIndex(int i) const {

View File

@@ -1,11 +1,11 @@
#ifndef GRAPH_BANNER_VIEW_H
#define GRAPH_BANNER_VIEW_H
#include "../../shared/banner_view.h"
#include "../../shared/xy_banner_view.h"
namespace Graph {
class BannerView : public Shared::BannerView {
class BannerView : public Shared::XYBannerView {
public:
BannerView();
void setNumberOfSubviews(int numberOfSubviews) { m_numberOfSubviews = numberOfSubviews; }
@@ -13,8 +13,6 @@ private:
int numberOfSubviews() const override { return m_numberOfSubviews; }
View * subviewAtIndex(int index) override;
MessageTextView * messageTextViewAtIndex(int i) const override;
BufferTextView m_abscissaView;
BufferTextView m_functionView;
BufferTextView m_derivativeView;
MessageTextView m_tangentEquationView;
BufferTextView m_aView;

View File

@@ -7,9 +7,8 @@ constexpr KDColor BannerView::k_textColor;
constexpr KDColor BannerView::k_backgroundColor;
BannerView::BannerView() :
Shared::XYBannerView(),
m_dotNameView(k_font, 0.0f, 0.5f, k_textColor, k_backgroundColor),
m_xView(k_font, 0.5f, 0.5f, k_textColor, k_backgroundColor),
m_yView(k_font, 0.5f, 0.5f, k_textColor, k_backgroundColor),
m_regressionTypeView(k_font, (I18n::Message)0, 0.0f, 0.5f, k_textColor,k_backgroundColor),
m_subText1(k_font, 0.5f, 0.5f, k_textColor, k_backgroundColor),
m_subText2(k_font, 0.5f, 0.5f, k_textColor, k_backgroundColor),
@@ -21,7 +20,15 @@ BannerView::BannerView() :
View * BannerView::subviewAtIndex(int index) {
assert(0 <= index && index < numberOfSubviews());
View * subviews[] = {&m_dotNameView, &m_xView, &m_yView, &m_regressionTypeView, &m_subText1, &m_subText2, &m_subText3, &m_subText4, &m_subText5};
if (index == 0) {
return &m_dotNameView;
}
index--;
if (index < Shared::XYBannerView::k_numberOfSubviews) {
return Shared::XYBannerView::subviewAtIndex(index);
}
index -= Shared::XYBannerView::k_numberOfSubviews;
View * subviews[] = {&m_regressionTypeView, &m_subText1, &m_subText2, &m_subText3, &m_subText4, &m_subText5};
return subviews[index];
}

View File

@@ -1,12 +1,11 @@
#ifndef REGRESSION_BANNER_VIEW_H
#define REGRESSION_BANNER_VIEW_H
#include <escher.h>
#include "../shared/banner_view.h"
#include "../shared/xy_banner_view.h"
namespace Regression {
class BannerView : public Shared::BannerView {
class BannerView : public Shared::XYBannerView {
public:
BannerView();
int numberOfTextviews() const { return k_numberOfSubviews; }
@@ -15,13 +14,11 @@ private:
static constexpr const KDFont * k_font = KDFont::SmallFont;
static constexpr KDColor k_textColor = KDColorBlack;
static constexpr KDColor k_backgroundColor = Palette::GreyMiddle;
static constexpr int k_numberOfSubviews = 9;
static constexpr int k_numberOfSubviews = Shared::XYBannerView::k_numberOfSubviews + 7;
int numberOfSubviews() const override { return k_numberOfSubviews; }
View * subviewAtIndex(int index) override;
MessageTextView * messageTextViewAtIndex(int i) const override;
BufferTextView m_dotNameView;
BufferTextView m_xView;
BufferTextView m_yView;
MessageTextView m_regressionTypeView;
BufferTextView m_subText1;
BufferTextView m_subText2;

View File

@@ -3,7 +3,6 @@ app_headers += apps/sequence/app.h
app_src += $(addprefix apps/sequence/,\
app.cpp \
graph/banner_view.cpp \
graph/curve_parameter_controller.cpp \
graph/curve_view_range.cpp \
graph/go_to_parameter_controller.cpp \

View File

@@ -1,18 +0,0 @@
#include "banner_view.h"
#include <assert.h>
namespace Sequence {
BannerView::BannerView() :
m_abscissaView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle),
m_sequenceView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle)
{
}
View * BannerView::subviewAtIndex(int index) {
assert(0 <= index && index < numberOfSubviews());
View * subviews[] = {&m_abscissaView, &m_sequenceView};
return subviews[index];
}
}

View File

@@ -1,22 +0,0 @@
#ifndef SEQUENCE_BANNER_VIEW_H
#define SEQUENCE_BANNER_VIEW_H
#include <escher.h>
#include "../../shared/banner_view.h"
namespace Sequence {
class BannerView : public Shared::BannerView {
public:
BannerView();
private:
static constexpr int k_numberOfSubviews = 2;
int numberOfSubviews() const override { return k_numberOfSubviews; }
View * subviewAtIndex(int index) override;
BufferTextView m_abscissaView;
BufferTextView m_sequenceView;
};
}
#endif

View File

@@ -2,7 +2,7 @@
#define SEQUENCE_GRAPH_CONTROLLER_H
#include "graph_view.h"
#include "banner_view.h"
#include "../../shared/xy_banner_view.h"
#include "curve_parameter_controller.h"
#include "curve_view_range.h"
#include "term_sum_controller.h"
@@ -21,7 +21,7 @@ public:
float interestingXMin() const override;
float interestingXHalfRange() const override;
private:
BannerView * bannerView() override { return &m_bannerView; }
Shared::XYBannerView * bannerView() override { return &m_bannerView; }
bool handleEnter() override;
bool moveCursorHorizontally(int direction) override;
double defaultCursorAbscissa() override;
@@ -33,7 +33,7 @@ private:
}
CurveParameterController * curveParameterController() override { return &m_curveParameterController; }
Shared::CursorView m_cursorView;
BannerView m_bannerView;
Shared::XYBannerView m_bannerView;
GraphView m_view;
CurveViewRange * m_graphRange;
CurveParameterController m_curveParameterController;

View File

@@ -69,5 +69,6 @@ app_src += $(addprefix apps/shared/,\
values_function_parameter_controller.cpp \
values_parameter_controller.cpp \
vertical_cursor_view.cpp \
xy_banner_view.cpp\
zoom_parameter_controller.cpp \
)

View File

@@ -0,0 +1,18 @@
#include "xy_banner_view.h"
#include <assert.h>
namespace Shared {
XYBannerView::XYBannerView() :
m_abscissaView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle),
m_ordinateView(KDFont::SmallFont, 0.5f, 0.5f, KDColorBlack, Palette::GreyMiddle)
{
}
View * XYBannerView::subviewAtIndex(int index) {
assert(0 <= index && index < numberOfSubviews());
View * subviews[] = {&m_abscissaView, &m_ordinateView};
return subviews[index];
}
}

View File

@@ -0,0 +1,22 @@
#ifndef SHARED_XY_BANNER_VIEW_H
#define SHARED_XY_BANNER_VIEW_H
#include "banner_view.h"
namespace Shared {
class XYBannerView : public BannerView {
public:
XYBannerView();
static constexpr int k_numberOfSubviews = 2;
protected:
View * subviewAtIndex(int index) override;
private:
int numberOfSubviews() const override { return k_numberOfSubviews; }
BufferTextView m_abscissaView;
BufferTextView m_ordinateView;
};
}
#endif