Files
Upsilon/escher/include/escher/header_view_controller.h
Émilie Feral dd2fb25737 [escher] In header view controller, return a boolean when a button is
selectionned

Change-Id: I59e10ace4232d9e8d6fce5edf7215e04f909e73e
2016-10-25 17:55:28 +02:00

48 lines
1.5 KiB
C++

#ifndef HEADER_VIEW_CONTROLLER_H
#define HEADER_VIEW_CONTROLLER_H
#include <escher/view_controller.h>
#include <escher/view.h>
#include <escher/invocation.h>
#include <escher/button.h>
#include <escher/app.h>
class HeaderViewController : public ViewController {
public:
HeaderViewController(Responder * parentResponder, View * mainView);
View * view() override;
const char * title() const override;
bool handleEvent(Ion::Events::Event event) override;
void setVisibleHeader(bool isVisibleHeader);
virtual int numberOfButtons() const;
virtual Button * buttonAtIndex(int index);
protected:
bool setSelectedButton(int selectedButton);
private:
class ContentView : public View {
public:
ContentView(View * subview, HeaderViewController * headerViewController);
int numberOfButtons() const;
Button * buttonAtIndex(int index);
int numberOfSubviews() const override;
View * subviewAtIndex(int index) override;
void layoutSubviews() override;
void drawRect(KDContext * ctx, KDRect rect) const override;
void setVisibleHeader(bool isVisibleHeader);
bool setSelectedButton(int selectedButton, App * app);
int selectedButton();
private:
constexpr static KDCoordinate k_headerHeight = 20;
constexpr static KDColor k_separatorHeaderColor = KDColor(0xDEE0E2);
constexpr static KDColor k_selectedBackgroundColor = KDColor(0x426DA7);;
View * m_mainView;
bool m_visibleHeader;
int m_selectedButton;
HeaderViewController * m_headerViewController;
};
ContentView m_contentView;
};
#endif