diff --git a/apps/probability/cell.cpp b/apps/probability/cell.cpp index 66b36f7e7..4e8dd0f55 100644 --- a/apps/probability/cell.cpp +++ b/apps/probability/cell.cpp @@ -36,7 +36,6 @@ void Cell::reloadCell() { HighlightCell::reloadCell(); KDColor backgroundColor = isHighlighted()? Palette::Select : KDColorWhite; m_labelView.setBackgroundColor(backgroundColor); - m_chevronView.setHighlighted(isHighlighted()); if (isHighlighted()) { m_iconView.setImage(m_focusedIcon); } else { diff --git a/escher/include/escher/chevron_view.h b/escher/include/escher/chevron_view.h index 2e345bbd8..68310a6af 100644 --- a/escher/include/escher/chevron_view.h +++ b/escher/include/escher/chevron_view.h @@ -1,18 +1,18 @@ #ifndef ESCHER_CHEVRON_VIEW_H #define ESCHER_CHEVRON_VIEW_H -#include +#include -class ChevronView : public HighlightCell { +class ChevronView : public View { public: ChevronView(); void drawRect(KDContext * ctx, KDRect rect) const override; KDSize minimalSizeForOptimalDisplay() override; /* k_chevronHeight and k_chevronWidth are the dimensions of the chevron. */ - constexpr static KDCoordinate k_chevronHeight = 16; + constexpr static KDCoordinate k_chevronHeight = 10; constexpr static KDCoordinate k_chevronWidth = 8; private: - constexpr static KDCoordinate k_chevronRightMargin = 20; + constexpr static KDCoordinate k_chevronRightMargin = 10; }; #endif diff --git a/escher/include/escher/pointer_table_cell_with_chevron.h b/escher/include/escher/pointer_table_cell_with_chevron.h index b20160ab4..875de7979 100644 --- a/escher/include/escher/pointer_table_cell_with_chevron.h +++ b/escher/include/escher/pointer_table_cell_with_chevron.h @@ -8,7 +8,6 @@ class PointerTableCellWithChevron : public PointerTableCell { public: PointerTableCellWithChevron(char * label = nullptr, KDText::FontSize size = KDText::FontSize::Small); View * accessoryView() const override; - void setHighlighted(bool highlight) override; private: ChevronView m_accessoryView; }; diff --git a/escher/src/chevron_view.cpp b/escher/src/chevron_view.cpp index 88a1561a6..d4350eebf 100644 --- a/escher/src/chevron_view.cpp +++ b/escher/src/chevron_view.cpp @@ -1,46 +1,21 @@ #include #include -const KDColor chevronPixel[] = { - KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, - KDColorBlack, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, KDColorWhite, -}; - -const KDColor highlightedChevronPixel[] = { - KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, - KDColorBlack, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, Palette::Select, +const uint8_t chevronMask[ChevronView::k_chevronHeight][ChevronView::k_chevronWidth] = { + {0x0C, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + {0x00, 0x00, 0x45, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + {0x00, 0x00, 0x00, 0x0C, 0xE1, 0xFF, 0xFF, 0xFF}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xFF, 0xFF}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x45}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x45}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xFF, 0xFF}, + {0x00, 0x00, 0x00, 0x0C, 0xE1, 0xFF, 0xFF, 0xFF}, + {0x00, 0x00, 0x45, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + {0x0C, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, }; ChevronView::ChevronView() : - HighlightCell() + View() { } @@ -53,14 +28,10 @@ void ChevronView::drawRect(KDContext * ctx, KDRect rect) const { KDCoordinate width = bounds().width(); KDCoordinate heightCenter = bounds().height()/2; KDCoordinate chevronHalfHeight = k_chevronHeight/2; - KDRect frame(width - k_chevronRightMargin, heightCenter -chevronHalfHeight, k_chevronWidth, k_chevronHeight); - if (m_highlighted) { - ctx->fillRectWithPixels(frame, highlightedChevronPixel, (KDColor *)s_workingBuffer); - } else { - ctx->fillRectWithPixels(frame, chevronPixel, (KDColor *)s_workingBuffer); - } + KDRect frame(width - k_chevronRightMargin - k_chevronWidth, heightCenter -chevronHalfHeight, k_chevronWidth, k_chevronHeight); + ctx->blendRectWithMask(frame, Palette::YellowDark, (const uint8_t *)chevronMask, s_workingBuffer); } KDSize ChevronView::minimalSizeForOptimalDisplay() { - return KDSize(k_chevronRightMargin, k_chevronHeight); + return KDSize(k_chevronRightMargin+k_chevronWidth, k_chevronHeight); } diff --git a/escher/src/pointer_table_cell_with_chevron.cpp b/escher/src/pointer_table_cell_with_chevron.cpp index 5e9faeead..f1d6c653a 100644 --- a/escher/src/pointer_table_cell_with_chevron.cpp +++ b/escher/src/pointer_table_cell_with_chevron.cpp @@ -10,7 +10,3 @@ View * PointerTableCellWithChevron::accessoryView() const { return (View *)&m_accessoryView; } -void PointerTableCellWithChevron::setHighlighted(bool highlight) { - PointerTableCell::setHighlighted(highlight); - m_accessoryView.setHighlighted(isHighlighted()); -}