[escher] Add a PointerTextView class

This commit is contained in:
Romain Goyet
2018-01-30 13:39:38 +01:00
committed by EmilieNumworks
parent 0682d21a32
commit 314fde955a
4 changed files with 40 additions and 0 deletions

View File

@@ -41,6 +41,7 @@ objs += $(addprefix escher/src/,\
message_tree.o\
modal_view_controller.o\
palette.o\
pointer_text_view.o\
responder.o\
run_loop.o\
scroll_view.o\

View File

@@ -45,6 +45,7 @@
#include <escher/metric.h>
#include <escher/modal_view_controller.h>
#include <escher/palette.h>
#include <escher/pointer_text_view.h>
#include <escher/responder.h>
#include <escher/scroll_view.h>
#include <escher/scroll_view_data_source.h>

View File

@@ -0,0 +1,18 @@
#ifndef ESCHER_POINTER_TEXT_VIEW_H
#define ESCHER_POINTER_TEXT_VIEW_H
#include <escher/text_view.h>
#include <escher/i18n.h>
class PointerTextView : public TextView {
public:
PointerTextView(KDText::FontSize size = KDText::FontSize::Large, const char * text = nullptr, float horizontalAlignment = 0.0f, float verticalAlignment = 0.0f,
KDColor textColor = KDColorBlack, KDColor backgroundColor = KDColorWhite);
const char * text() const override { return m_text; }
void setText(const char * text) override;
KDSize minimalSizeForOptimalDisplay() const override;
private:
const char * m_text;
};
#endif

View File

@@ -0,0 +1,20 @@
#include <escher/pointer_text_view.h>
#include <assert.h>
PointerTextView::PointerTextView(KDText::FontSize size, const char * text, float horizontalAlignment, float verticalAlignment,
KDColor textColor, KDColor backgroundColor) :
TextView(size, horizontalAlignment, verticalAlignment, textColor, backgroundColor),
m_text(text)
{
}
void PointerTextView::setText(const char * text) {
if (text != m_text) {
m_text = text;
markRectAsDirty(bounds());
}
}
KDSize PointerTextView::minimalSizeForOptimalDisplay() const {
return KDText::stringSize(text(), m_fontSize);
}