mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[escher] Add a booleen in stack controller to decide whether or not display the first stack header
Change-Id: I13bdb3c70da9d1ef16f192439d6daf6a00438ad4
This commit is contained in:
@@ -4,7 +4,7 @@ Probability::App::App() :
|
||||
::App(),
|
||||
m_lawController(LawController(nullptr)),
|
||||
m_parametersController(ParametersController(nullptr)),
|
||||
m_stackViewController(this, &m_lawController)
|
||||
m_stackViewController(this, &m_lawController, true)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ constexpr uint8_t kMaxNumberOfStacks = 4;
|
||||
|
||||
class StackViewController : public ViewController {
|
||||
public:
|
||||
StackViewController(Responder * parentResponder, ViewController * rootViewController);
|
||||
StackViewController(Responder * parentResponder, ViewController * rootViewController, bool displayFirstStackHeader = false);
|
||||
|
||||
/* Push creates a new StackView and adds it */
|
||||
void push(ViewController * vc);
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
private:
|
||||
class ControllerView : public View {
|
||||
public:
|
||||
ControllerView();
|
||||
ControllerView(bool displayFirstStackHeader);
|
||||
void setContentView(View * view);
|
||||
void pushStack(const char * name);
|
||||
void popStack();
|
||||
@@ -38,6 +38,7 @@ private:
|
||||
StackView m_stackViews[kMaxNumberOfStacks];
|
||||
View * m_contentView;
|
||||
int8_t m_numberOfStacks;
|
||||
bool m_displayFirstStackHeader;
|
||||
};
|
||||
|
||||
ControllerView m_view;
|
||||
|
||||
@@ -4,10 +4,11 @@ extern "C" {
|
||||
#include <escher/stack_view_controller.h>
|
||||
#include <escher/app.h>
|
||||
|
||||
StackViewController::ControllerView::ControllerView() :
|
||||
StackViewController::ControllerView::ControllerView(bool displayFirstStackHeader) :
|
||||
View(),
|
||||
m_contentView(nullptr),
|
||||
m_numberOfStacks(0)
|
||||
m_numberOfStacks(0),
|
||||
m_displayFirstStackHeader(displayFirstStackHeader)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -30,11 +31,12 @@ void StackViewController::ControllerView::popStack() {
|
||||
void StackViewController::ControllerView::layoutSubviews() {
|
||||
KDCoordinate stackHeight = 20;
|
||||
KDCoordinate width = m_frame.width();
|
||||
for (int i=1; i<m_numberOfStacks; i++) {
|
||||
m_stackViews[i].setFrame(KDRect(0, stackHeight*(i-1), width, stackHeight));
|
||||
int indexFirstHeader = m_displayFirstStackHeader ? 0 : 1;
|
||||
for (int i=indexFirstHeader; i<m_numberOfStacks; i++) {
|
||||
m_stackViews[i].setFrame(KDRect(0, stackHeight*(i-indexFirstHeader), width, stackHeight));
|
||||
}
|
||||
if (m_contentView) {
|
||||
KDRect contentViewFrame = KDRect( 0, (m_numberOfStacks-1)*stackHeight,
|
||||
KDRect contentViewFrame = KDRect( 0, (m_numberOfStacks-indexFirstHeader)*stackHeight,
|
||||
width, m_frame.height() - m_numberOfStacks*stackHeight);
|
||||
m_contentView->setFrame(contentViewFrame);
|
||||
}
|
||||
@@ -60,10 +62,11 @@ const char * StackViewController::ControllerView::className() const {
|
||||
}
|
||||
#endif
|
||||
|
||||
StackViewController::StackViewController(Responder * parentResponder, ViewController * rootViewController) :
|
||||
StackViewController::StackViewController(Responder * parentResponder, ViewController * rootViewController, bool displayFirstStackHeader) :
|
||||
ViewController(parentResponder),
|
||||
m_numberOfChildren(0),
|
||||
m_rootViewController(rootViewController)
|
||||
m_rootViewController(rootViewController),
|
||||
m_view(ControllerView(displayFirstStackHeader))
|
||||
{
|
||||
// push(rootViewController);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user