[themes] Color with pointers

This commit is contained in:
Laury
2022-02-11 18:41:00 +01:00
parent 84d88a3e8d
commit 63d1e0ee4e
175 changed files with 546 additions and 652 deletions

View File

@@ -60,8 +60,8 @@ mp_obj_t modkandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t input) {
mp_obj_t modkandinsky_draw_string(size_t n_args, const mp_obj_t * args) {
const char * text = mp_obj_str_get_str(args[0]);
KDPoint point(mp_obj_get_int(args[1]), mp_obj_get_int(args[2]));
KDColor textColor = (n_args >= 4) ? MicroPython::Color::Parse(args[3]) : Palette::PrimaryText;
KDColor backgroundColor = (n_args >= 5) ? MicroPython::Color::Parse(args[4]) : Palette::HomeBackground;
KDColor textColor = (n_args >= 4) ? MicroPython::Color::Parse(args[3]) : *Palette::PrimaryText;
KDColor backgroundColor = (n_args >= 5) ? MicroPython::Color::Parse(args[4]) : *Palette::HomeBackground;
const KDFont * font = (n_args >= 6) ? ((mp_obj_is_true(args[5])) ? KDFont::SmallFont : KDFont::LargeFont) : KDFont::LargeFont;
MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->displaySandbox();
KDIonContext::sharedContext()->drawString(text, point, font, textColor, backgroundColor);
@@ -249,11 +249,11 @@ mp_obj_t modkandinsky_get_keys() {
mp_obj_t modkandinsky_get_palette() {
mp_obj_t modkandinsky_palette_table = mp_obj_new_dict(0);
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_PrimaryText), TupleForKDColor(Palette::PrimaryText));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_SecondaryText), TupleForKDColor(Palette::SecondaryText));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_AccentText), TupleForKDColor(Palette::AccentText));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_Toolbar), TupleForKDColor(Palette::Toolbar));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_HomeBackground), TupleForKDColor(Palette::HomeBackground));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_PrimaryText), TupleForKDColor(*Palette::PrimaryText));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_SecondaryText), TupleForKDColor(*Palette::SecondaryText));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_AccentText), TupleForKDColor(*Palette::AccentText));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_Toolbar), TupleForKDColor(*Palette::Toolbar));
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_HomeBackground), TupleForKDColor(*Palette::HomeBackground));
return modkandinsky_palette_table;
}

View File

@@ -230,20 +230,20 @@ KDColor MicroPython::Color::Parse(mp_obj_t input, Mode mode){
if (mp_obj_is_str(input)) {
size_t l;
const char * color = mp_obj_str_get_data(input, &l);
constexpr NamedColor pairs[] = {
NamedColor("blue", KDColorBlue),
NamedColor("b", KDColorBlue),
NamedColor("red", KDColorRed),
NamedColor("r", KDColorRed),
const NamedColor pairs[] = {
NamedColor("blue", &KDColorBlue),
NamedColor("b", &KDColorBlue),
NamedColor("red", &KDColorRed),
NamedColor("r", &KDColorRed),
NamedColor("green", Palette::Green),
NamedColor("g", Palette::Green),
NamedColor("yellow", KDColorYellow),
NamedColor("y", KDColorYellow),
NamedColor("yellow", &KDColorYellow),
NamedColor("y", &KDColorYellow),
NamedColor("brown", Palette::Brown),
NamedColor("black", KDColorBlack),
NamedColor("k", KDColorBlack),
NamedColor("white", KDColorWhite),
NamedColor("w", KDColorWhite),
NamedColor("black", &KDColorBlack),
NamedColor("k", &KDColorBlack),
NamedColor("white", &KDColorWhite),
NamedColor("w", &KDColorWhite),
NamedColor("pink", Palette::Pink),
NamedColor("orange", Palette::Orange),
NamedColor("purple", Palette::Purple),

View File

@@ -52,15 +52,15 @@ public:
private:
class NamedColor {
public:
constexpr NamedColor(const char * name, KDColor color) :
constexpr NamedColor(const char * name, KDColor const * color) :
m_name(name),
m_color(color)
{}
const char * name() const { return m_name; }
KDColor color() const { return m_color; }
KDColor color() const { return *m_color; }
private:
const char * m_name;
KDColor m_color;
KDColor const * m_color;
};
};