#ifndef APPS_VARIABLE_BOX_EMPTY_CONTROLLER_H #define APPS_VARIABLE_BOX_EMPTY_CONTROLLER_H #include #include #include #include #include class VariableBoxEmptyController : public ViewController { public: VariableBoxEmptyController() : ViewController(nullptr) {} void setMessages(I18n::Message * messages); // View Controller DisplayParameter displayParameter() override { return DisplayParameter::DoNotShowOwnTitle; } protected: class VariableBoxEmptyView : public View, public Bordered { public: constexpr static const KDFont * k_font = KDFont::SmallFont; void initMessageViews(); void setMessages(I18n::Message * message); void drawRect(KDContext * ctx, KDRect rect) const override; private: constexpr static int k_expressionViewRowIndex = 2; int numberOfSubviews() const override; View * subviewAtIndex(int index) override; void layoutSubviews(bool force = false) override; virtual int numberOfMessageTextViews() const = 0; virtual MessageTextView * messageTextViewAtIndex(int index) = 0; bool hasExpressionView() const { return const_cast(this)->expressionView() != nullptr; } virtual ExpressionView * expressionView() { return nullptr; } }; }; #endif