diff --git a/escher/include/escher/message_table_cell.h b/escher/include/escher/message_table_cell.h index d80109627..3b820283a 100644 --- a/escher/include/escher/message_table_cell.h +++ b/escher/include/escher/message_table_cell.h @@ -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; }; diff --git a/escher/include/escher/message_table_cell_with_buffer.h b/escher/include/escher/message_table_cell_with_buffer.h index 1208a7688..c10faf334 100644 --- a/escher/include/escher/message_table_cell_with_buffer.h +++ b/escher/include/escher/message_table_cell_with_buffer.h @@ -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; }; diff --git a/escher/include/escher/text_view.h b/escher/include/escher/text_view.h index 91510cf30..6baef8b84 100644 --- a/escher/include/escher/text_view.h +++ b/escher/include/escher/text_view.h @@ -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; diff --git a/escher/src/message_table_cell.cpp b/escher/src/message_table_cell.cpp index e35f36c6c..8389c5156 100644 --- a/escher/src/message_table_cell.cpp +++ b/escher/src/message_table_cell.cpp @@ -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(); +} diff --git a/escher/src/message_table_cell_with_buffer.cpp b/escher/src/message_table_cell_with_buffer.cpp index fb05563f8..b21cc9cfd 100644 --- a/escher/src/message_table_cell_with_buffer.cpp +++ b/escher/src/message_table_cell_with_buffer.cpp @@ -1,9 +1,9 @@ #include #include -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); +} diff --git a/escher/src/text_view.cpp b/escher/src/text_view.cpp index 6d324f6d6..824d161e1 100644 --- a/escher/src/text_view.cpp +++ b/escher/src/text_view.cpp @@ -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); }