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
我正在制作我的表盘的 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