diff --git a/apps/probability/law_controller.cpp b/apps/probability/law_controller.cpp index 045e9e5e4..915fd0cf2 100644 --- a/apps/probability/law_controller.cpp +++ b/apps/probability/law_controller.cpp @@ -84,7 +84,7 @@ bool Probability::LawController::handleEvent(Ion::Events::Event event) { if (event == Ion::Events::OK) { StackViewController * stack = (StackViewController *)parentResponder(); setLawAccordingToIndex(m_selectableTableView.selectedRow()); - stack->push(&m_parametersController); + stack->push(&m_parametersController, KDColorWhite, Palette::PurpleBright, Palette::PurpleBright); return true; } return false; diff --git a/apps/probability/parameters_controller.cpp b/apps/probability/parameters_controller.cpp index b714580ea..a90d05f86 100644 --- a/apps/probability/parameters_controller.cpp +++ b/apps/probability/parameters_controller.cpp @@ -15,7 +15,7 @@ ParametersController::ContentView::ContentView(Responder * parentResponder, Sele calculationController->selectSubview(1); calculationController->reload(); StackViewController * stack = parameterController->stackController(); - stack->push(calculationController); + stack->push(calculationController, KDColorWhite, Palette::SubTab, Palette::SubTab); }, parentResponder), KDText::FontSize::Large)), m_titleView(PointerTextView(KDText::FontSize::Small, "Choisir les parametres", 0.5f, 0.5f, Palette::GreyDark, Palette::WallScreen)), m_firstParameterDefinition(PointerTextView(KDText::FontSize::Small, nullptr, 0.5f, 0.5f, KDColorBlack, Palette::WallScreen)), diff --git a/escher/include/escher/stack_view_controller.h b/escher/include/escher/stack_view_controller.h index 3465a17af..1093879b9 100644 --- a/escher/include/escher/stack_view_controller.h +++ b/escher/include/escher/stack_view_controller.h @@ -13,7 +13,7 @@ public: KDColor textColor = Palette::SubTab, KDColor backgroundColor = KDColorWhite, KDColor separatorColor = Palette::GreyBright); /* Push creates a new StackView and adds it */ - void push(ViewController * vc); + void push(ViewController * vc, KDColor textColor = Palette::SubTab, KDColor backgroundColor = KDColorWhite, KDColor separatorColor = Palette::GreyBright); void pop(); @@ -24,9 +24,9 @@ public: private: class ControllerView : public View { public: - ControllerView(bool displayFirstStackHeader, KDColor textColor, KDColor backgroundColor, KDColor separatorColor); + ControllerView(bool displayFirstStackHeader); void setContentView(View * view); - void pushStack(const char * name); + void pushStack(const char * name, KDColor textColor, KDColor backgroundColor, KDColor separatorColor); void popStack(); protected: #if ESCHER_VIEW_LOGGING @@ -42,9 +42,6 @@ private: View * m_contentView; int8_t m_numberOfStacks; bool m_displayFirstStackHeader; - KDColor m_textColor; - KDColor m_backgroundColor; - KDColor m_separatorColor; }; ControllerView m_view; @@ -54,6 +51,9 @@ private: ViewController * m_children[k_maxNumberOfChildren]; uint8_t m_numberOfChildren; ViewController * m_rootViewController; + KDColor m_textColor; + KDColor m_backgroundColor; + KDColor m_separatorColor; }; #endif diff --git a/escher/src/stack_view_controller.cpp b/escher/src/stack_view_controller.cpp index 1f6a8d507..799f4dabf 100644 --- a/escher/src/stack_view_controller.cpp +++ b/escher/src/stack_view_controller.cpp @@ -4,14 +4,11 @@ extern "C" { #include #include -StackViewController::ControllerView::ControllerView(bool displayFirstStackHeader, KDColor textColor, KDColor backgroundColor, KDColor separatorColor) : +StackViewController::ControllerView::ControllerView(bool displayFirstStackHeader) : View(), m_contentView(nullptr), m_numberOfStacks(0), - m_displayFirstStackHeader(displayFirstStackHeader), - m_textColor(textColor), - m_backgroundColor(backgroundColor), - m_separatorColor(separatorColor) + m_displayFirstStackHeader(displayFirstStackHeader) { } @@ -21,11 +18,11 @@ void StackViewController::ControllerView::setContentView(View * view) { markRectAsDirty(bounds()); } -void StackViewController::ControllerView::pushStack(const char * name) { +void StackViewController::ControllerView::pushStack(const char * name, KDColor textColor, KDColor backgroundColor, KDColor separatorColor) { m_stackViews[m_numberOfStacks].setName(name); - m_stackViews[m_numberOfStacks].setTextColor(m_textColor); - m_stackViews[m_numberOfStacks].setBackgroundColor(m_backgroundColor); - m_stackViews[m_numberOfStacks].setSeparatorColor(m_separatorColor); + m_stackViews[m_numberOfStacks].setTextColor(textColor); + m_stackViews[m_numberOfStacks].setBackgroundColor(backgroundColor); + m_stackViews[m_numberOfStacks].setSeparatorColor(separatorColor); m_numberOfStacks++; } @@ -68,11 +65,15 @@ const char * StackViewController::ControllerView::className() const { } #endif -StackViewController::StackViewController(Responder * parentResponder, ViewController * rootViewController, bool displayFirstStackHeader, KDColor textColor, KDColor backgroundColor, KDColor separatorColor) : +StackViewController::StackViewController(Responder * parentResponder, ViewController * rootViewController, + bool displayFirstStackHeader, KDColor textColor, KDColor backgroundColor, KDColor separatorColor) : ViewController(parentResponder), - m_view(ControllerView(displayFirstStackHeader, textColor, backgroundColor, separatorColor)), + m_view(ControllerView(displayFirstStackHeader)), m_numberOfChildren(0), - m_rootViewController(rootViewController) + m_rootViewController(rootViewController), + m_textColor(textColor), + m_backgroundColor(backgroundColor), + m_separatorColor(separatorColor) { // push(rootViewController); } @@ -86,8 +87,8 @@ const char * StackViewController::title() const { } } -void StackViewController::push(ViewController * vc) { - m_view.pushStack(vc->title()); +void StackViewController::push(ViewController * vc, KDColor textColor, KDColor backgroundColor, KDColor separatorColor) { + m_view.pushStack(vc->title(), textColor, backgroundColor, separatorColor); m_children[m_numberOfChildren++] = vc; setupActiveViewController(); } @@ -123,7 +124,7 @@ bool StackViewController::handleEvent(Ion::Events::Event event) { View * StackViewController::view() { if (m_rootViewController != nullptr) { - push(m_rootViewController); + push(m_rootViewController, m_textColor, m_backgroundColor, m_separatorColor); m_rootViewController = nullptr; } return &m_view;