[escher] Add methods on message table cells to change rendering

parameters (font size, color ...)

Change-Id: I57a6a606607787a83d152eb326f87d9209d273b3
This commit is contained in:
Émilie Feral
2017-04-04 14:05:50 +02:00
parent 7091b2ea35
commit e42d4eee20
6 changed files with 26 additions and 4 deletions

View File

@@ -12,6 +12,7 @@ public:
virtual void setHighlighted(bool highlight) override;
void setMessage(I18n::Message message);
virtual void setTextColor(KDColor color);
void setMessageFontSize(KDText::FontSize fontSize);
private:
MessageTextView m_messageTextView;
};

View File

@@ -6,12 +6,14 @@
class MessageTableCellWithBuffer : public MessageTableCell {
public:
MessageTableCellWithBuffer(I18n::Message message = (I18n::Message)0);
MessageTableCellWithBuffer(I18n::Message message = (I18n::Message)0, KDText::FontSize fontSize = KDText::FontSize::Small, KDText::FontSize accessoryFontSize = KDText::FontSize::Large, KDColor accessoryTextColor = KDColorBlack);
View * accessoryView() const override;
void setHighlighted(bool highlight) override;
void setAccessoryText(const char * textBody);
const char * accessoryText();
void setTextColor(KDColor color) override;
void setAccessoryTextColor(KDColor color);
void setAccessoryFontSize(KDText::FontSize fontSize);
protected:
BufferTextView m_accessoryView;
};

View File

@@ -18,6 +18,7 @@ public:
KDSize minimalSizeForOptimalDisplay() const override;
virtual const char * text() const = 0;
virtual void setText(const char * text) = 0;
void setFontSize(KDText::FontSize fontSize);
protected:
#if ESCHER_VIEW_LOGGING
const char * className() const override;

View File

@@ -26,3 +26,8 @@ void MessageTableCell::setMessage(I18n::Message text) {
void MessageTableCell::setTextColor(KDColor color) {
m_messageTextView.setTextColor(color);
}
void MessageTableCell::setMessageFontSize(KDText::FontSize fontSize) {
m_messageTextView.setFontSize(fontSize);
layoutSubviews();
}

View File

@@ -1,9 +1,9 @@
#include <escher/message_table_cell_with_buffer.h>
#include <escher/palette.h>
MessageTableCellWithBuffer::MessageTableCellWithBuffer(I18n::Message message) :
MessageTableCell(message),
m_accessoryView(BufferTextView(KDText::FontSize::Large, 1.0f, 0.5f))
MessageTableCellWithBuffer::MessageTableCellWithBuffer(I18n::Message message, KDText::FontSize fontSize, KDText::FontSize accessoryFontSize, KDColor accessoryTextColor) :
MessageTableCell(message, fontSize),
m_accessoryView(BufferTextView(accessoryFontSize, 1.0f, 0.5f, accessoryTextColor))
{
}
@@ -30,3 +30,11 @@ void MessageTableCellWithBuffer::setTextColor(KDColor color) {
m_accessoryView.setTextColor(color);
MessageTableCell::setTextColor(color);
}
void MessageTableCellWithBuffer::setAccessoryTextColor(KDColor color) {
m_accessoryView.setTextColor(color);
}
void MessageTableCellWithBuffer::setAccessoryFontSize(KDText::FontSize fontSize) {
m_accessoryView.setFontSize(fontSize);
}

View File

@@ -27,6 +27,11 @@ void TextView::setAlignment(float horizontalAlignment, float verticalAlignment)
markRectAsDirty(bounds());
}
void TextView::setFontSize(KDText::FontSize fontSize) {
m_fontSize = fontSize;
markRectAsDirty(bounds());
}
KDSize TextView::minimalSizeForOptimalDisplay() const {
return KDText::stringSize(text(), m_fontSize);
}