Pebble SDK:将颜色存储为变量

Pebble SDK: Store color as a variable

我正在制作我的表盘的 Pebble Time 版本。

我希望能够设置一个颜色变量,该变量将根据使用 Pebble Time 还是使用 Pebble OG 来保存颜色。

我知道你可以做到:

#ifdef PBL_COLOR
  window_set_background_color(s_main_window, GColorDukeBlue);
#else
  window_set_background_color(s_main_window, GColorBlack);
#endif

但我不想将此应用到我想要更改颜色的 50 个不同元素。我可以在我的程序开始时在我的程序开始时设置一个名为 myColor 的变量,如果它使用 Basalt 硬件,则将其设置为 GColorPastelYellow,如果它是 Aplite 硬件,则将其设置为 GColorWhite?

我现在有这个:

static GColor *myColor;

#ifdef PBL_COLOR
  myColor = GColorPastelYellow;
#else
  myColor = GColorWhite;
#endif

不幸的是,这不起作用:/有人有解决方案吗?

您可能遇到了错误,因为 window_set_background_color 期望 GColor 而不是 GColor *,但您仍然无法使 GColor 静态化。一个很好的解释是 here.

但是您可以利用 #define 发挥您的优势。喜欢:

#ifdef PBL_COLOR
  #define MYCOLOR GColorPastelYellow
#else
  #define MYCOLOR GColorWhite
#endif