pebble/src/fw/kernel/ui/system_icons.h
2025-01-27 11:38:16 -08:00

382 lines
14 KiB
C

/*
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <stddef.h>
#include "applib/graphics/gtypes.h"
// GBitmap + pixel data generated by bitmapgen.py:
/** Status Bar Icons */
static const uint8_t s_status_icon_launcher_pixels[] = {
0xdf, 0x07, 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, /* bytes 0 - 16 */
0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x04, 0x00, 0x00, 0x71, 0x04, 0x00, 0x00, /* bytes 16 - 32 */
0x71, 0x04, 0x00, 0x00, 0x71, 0x04, 0x00, 0x00,
};
static const GBitmap s_status_icon_launcher_bitmap = {
.addr = (void*) &s_status_icon_launcher_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 11, .h = 10 },
},
};
static const uint8_t s_status_icon_sms_pixels[] = {
0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* bytes 0 - 16 */
0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc7, 0x03, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00, /* bytes 16 - 32 */
0xf7, 0x03, 0x00, 0x00,
};
static const GBitmap s_status_icon_sms_bitmap = {
.addr = (void*) &s_status_icon_sms_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 10, .h = 9 },
},
};
static const uint8_t s_status_icon_bluetooth_pixels[] = {
0x77, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, /* bytes 0 - 16 */
0x55, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, /* bytes 16 - 32 */
0x57, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
};
static const GBitmap s_status_icon_bluetooth_bitmap = {
.addr = (void*) &s_status_icon_bluetooth_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 7, .h = 11 },
},
};
static const uint8_t s_status_icon_settings_pixels[] = {
0x3f, 0x03, 0x00, 0x00, 0xbf, 0x03, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, /* bytes 0 - 16 */
0x8f, 0x03, 0x00, 0x00, 0xc7, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf2, 0x03, 0x00, 0x00, /* bytes 16 - 32 */
0xf7, 0x03, 0x00, 0x00, 0xf3, 0x03, 0x00, 0x00,
};
static const GBitmap s_status_icon_settings_bitmap = {
.addr = (void*) &s_status_icon_settings_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 10, .h = 10 },
},
};
static const uint8_t s_status_icon_phone_pixels[] = {
0xfd, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, /* bytes 0 - 16 */
0xf9, 0x07, 0x00, 0x00, 0xf1, 0x07, 0x00, 0x00, 0xe3, 0x07, 0x00, 0x00, 0xc7, 0x06, 0x00, 0x00, /* bytes 16 - 32 */
0x0f, 0x04, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x7f, 0x04, 0x00, 0x00,
};
static const GBitmap s_status_icon_phone_bitmap = {
.addr = (void*) &s_status_icon_phone_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 11, .h = 11 },
},
};
static const uint8_t s_status_icon_music_pixels[] = {
0x3f, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, /* bytes 0 - 16 */
0xf7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, /* bytes 16 - 32 */
0x10, 0x01, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00,
};
static const GBitmap s_status_icon_music_bitmap = {
.addr = (void*) &s_status_icon_music_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 9, .h = 10 },
},
};
static const uint8_t s_status_icon_silent_pixels[] = {
0x7f, 0x03, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x9f, 0x04, 0x00, 0x00, 0x43, 0x06, 0x00, 0x00, /* bytes 0 - 16 */
0x23, 0x07, 0x00, 0x00, 0x93, 0x07, 0x00, 0x00, 0x4b, 0x07, 0x00, 0x00, 0x27, 0x07, 0x00, 0x00, /* bytes 16 - 32 */
0x13, 0x07, 0x00, 0x00, 0x39, 0x07, 0x00, 0x00, 0x7c, 0x07, 0x00, 0x00,
};
static const GBitmap s_status_icon_silent_bitmap = {
.addr = (void*) &s_status_icon_silent_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 11, .h = 11 },
},
};
static const uint8_t s_quiet_time_status_icon_pixels[] = {
0x03, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* bytes 0 - 16 */
0xfc, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* bytes 16 - 32 */
0x01, 0x02, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00,
};
static const GBitmap s_quiet_time_status_icon_bitmap = {
.addr = (void*) &s_quiet_time_status_icon_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 10, .h = 10 },
},
};
/** Action Bar Icons */
static const uint8_t s_bar_icon_actions_pixels[] = {
0xff, 0xf7, 0x00, 0x00, 0xff, 0xe7, 0x00, 0x00, 0x83, 0xc7, 0x00, 0x00, 0xfd, 0x81, 0x00, 0x00, /* bytes 0 - 16 */
0x7d, 0x00, 0x00, 0x00, 0x1d, 0x80, 0x00, 0x00, 0x9d, 0xc7, 0x00, 0x00, 0xed, 0xe7, 0x00, 0x00, /* bytes 16 - 32 */
0xed, 0xf7, 0x00, 0x00, 0xfd, 0xbf, 0x00, 0x00, 0xfd, 0xbf, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00,
};
static const GBitmap s_bar_icon_actions_bitmap = {
.addr = (void*) &s_bar_icon_actions_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 16, .h = 12 },
},
};
static const uint8_t s_bar_icon_phone_pixels[] = {
0xf3, 0x7f, 0x00, 0x00, 0xe1, 0x7f, 0x00, 0x00, 0xc1, 0x7f, 0x00, 0x00, 0xc1, 0x7f, 0x00, 0x00, /* bytes 0 - 16 */
0xe1, 0x7f, 0x00, 0x00, 0xe3, 0x7f, 0x00, 0x00, 0xe3, 0x7f, 0x00, 0x00, 0xc7, 0x7f, 0x00, 0x00, /* bytes 16 - 32 */
0x87, 0x7f, 0x00, 0x00, 0x0f, 0x67, 0x00, 0x00, 0x1f, 0x40, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, /* bytes 32 - 48 */
0xff, 0x00, 0x00, 0x00, 0xff, 0x43, 0x00, 0x00,
};
static const GBitmap s_bar_icon_phone_bitmap = {
.addr = (void*) &s_bar_icon_phone_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 15, .h = 14 },
},
};
static const uint8_t s_bar_icon_x_pixels[] = {
0xfb, 0x0d, 0x00, 0x00, 0xf1, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, /* bytes 0 - 16 */
0x03, 0x0c, 0x00, 0x00, 0x07, 0x0e, 0x00, 0x00, 0x07, 0x0e, 0x00, 0x00, 0x03, 0x0c, 0x00, 0x00, /* bytes 16 - 32 */
0x01, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xf1, 0x08, 0x00, 0x00, 0xfb, 0x0d, 0x00, 0x00,
};
static const GBitmap s_bar_icon_x_bitmap = {
.addr = (void*) &s_bar_icon_x_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 12, .h = 12 },
},
};
static const uint8_t s_bar_icon_check_pixels[] = {
0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x01, 0x00, /* bytes 0 - 16 */
0x00, 0xf8, 0x00, 0x00, 0x04, 0x7c, 0x00, 0x00, 0x0e, 0x3e, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, /* bytes 16 - 32 */
0xbe, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, /* bytes 32 - 48 */
0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
};
static const GBitmap s_bar_icon_check_bitmap = {
.addr = (void*) &s_bar_icon_check_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 18, .h = 14 },
},
};
static const uint8_t s_bar_icon_up_pixels[] = {
0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, /* bytes 0 - 16 */
0xfc, 0x03, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
};
static const GBitmap s_bar_icon_up_bitmap = {
.addr = (void*) &s_bar_icon_up_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 12, .h = 7 },
},
};
static const uint8_t s_bar_icon_down_pixels[] = {
0xff, 0x0f, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, /* bytes 0 - 16 */
0xf0, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const GBitmap s_bar_icon_down_bitmap = {
.addr = (void*) &s_bar_icon_down_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 12, .h = 7 },
},
};
static const uint8_t s_bar_icon_yes_pixels[] = {
0xf8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x71, 0x04, 0x00, 0x00, /* bytes 0 - 16 */
0x71, 0x04, 0x00, 0x00, 0x71, 0x04, 0x00, 0x00, 0x23, 0x06, 0x00, 0x00, 0x23, 0x06, 0x00, 0x00, /* bytes 16 - 32 */
0x27, 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00, /* bytes 32 - 48 */
0x8f, 0x07, 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00, /* bytes 48 - 64 */
0x8f, 0x07, 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00,
};
static const GBitmap s_bar_icon_yes_bitmap = {
.addr = (void*) &s_bar_icon_yes_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 11, .h = 18 },
},
};
static const uint8_t s_bar_icon_no_pixels[] = {
0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, /* bytes 0 - 16 */
0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, /* bytes 16 - 32 */
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, /* bytes 32 - 48 */
0x18, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, /* bytes 48 - 64 */
0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
};
static const GBitmap s_bar_icon_no_bitmap = {
.addr = (void*) &s_bar_icon_no_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 10, .h = 18 },
},
};
static const uint8_t s_bar_icon_snooze_pixels[] = {
0x3f, 0x00, 0x00, 0x00, 0xff, 0x0b, 0x00, 0x00, 0xff, 0x0d, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, /* bytes 0 - 16 */
0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0xc7, 0x0f, 0x00, 0x00, 0xe3, 0x0f, 0x00, 0x00, /* bytes 16 - 32 */
0xf1, 0x0f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00,
};
static const GBitmap s_bar_icon_snooze_bitmap = {
.addr = (void*) &s_bar_icon_snooze_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 12, .h = 12 },
},
};
// Battery Icons
////////////////////////////////////////////////////////////
static const uint8_t s_status_battery_empty_pixels[] = {
0xff, 0x3f, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, /* bytes 0 - 16 */
0x01, 0x60, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00,
};
static const GBitmap s_status_battery_empty_bitmap = {
.addr = (void*) &s_status_battery_empty_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 15, .h = 8 },
},
};
static const uint8_t s_status_battery_charging_pixels[] = {
0x88, 0xff, 0x1f, 0x00, 0x8c, 0x00, 0x10, 0x00, 0x86, 0x00, 0x30, 0x00, 0x87, 0x00, 0x30, 0x00, /* bytes 0 - 16 */
0x9c, 0x00, 0x30, 0x00, 0x8c, 0x00, 0x30, 0x00, 0x86, 0x00, 0x10, 0x00, 0x82, 0xff, 0x1f, 0x00,
};
static const GBitmap s_status_battery_charging_bitmap = {
.addr = (void*) &s_status_battery_charging_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 22, .h = 8 },
},
};
static const uint8_t s_status_battery_charged_pixels[] = {
0x0f, 0x3c, 0x00, 0x00, 0xc1, 0x21, 0x00, 0x00, 0xe1, 0x67, 0x00, 0x00, 0xfd, 0x61, 0x00, 0x00, /* bytes 0 - 16 */
0xfd, 0x61, 0x00, 0x00, 0xe1, 0x67, 0x00, 0x00, 0xc1, 0x21, 0x00, 0x00, 0x0f, 0x3c, 0x00, 0x00,
};
static const GBitmap s_status_battery_charged_bitmap = {
.addr = (void*) &s_status_battery_charged_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 15, .h = 8 },
},
};
static const uint8_t s_status_icon_phone_only_pixels[] = {
0x41, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, /* bytes 0 - 16 */
0x24, 0x00, 0x00, 0x00, 0x13, 0x02, 0x00, 0x00, 0xc9, 0x03, 0x00, 0x00, 0xe4, 0x03, 0x00, 0x00, /* bytes 16 - 32 */
0xf6, 0x03, 0x00, 0x00,
};
static const GBitmap s_status_icon_phone_only_bitmap = {
.addr = (void*) &s_status_icon_phone_only_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 10, .h = 9 },
},
};
static const uint8_t s_status_icon_airplane_mode_pixels[] = {
0xcf, 0x0f, 0x00, 0x00, 0x9f, 0x0f, 0x00, 0x00, 0x1c, 0x0f, 0x00, 0x00, 0x39, 0x0e, 0x00, 0x00, /* bytes 0 - 16 */
0x01, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x39, 0x0e, 0x00, 0x00, /* bytes 16 - 32 */
0x1c, 0x0f, 0x00, 0x00, 0x9f, 0x0f, 0x00, 0x00, 0xcf, 0x0f, 0x00, 0x00,
};
static const GBitmap s_status_icon_airplane_mode_bitmap = {
.addr = (void*) &s_status_icon_airplane_mode_pixels,
.row_size_bytes = 4,
.info_flags = 0x1000,
.bounds = {
.origin = { .x = 0, .y = 0 },
.size = { .w = 12, .h = 11 },
},
};