summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authorScott Shawcroft <scott@adafruit.com>2021-03-17 18:13:39 -0700
committerGitHub <noreply@github.com>2021-03-17 18:13:39 -0700
commit670375dc0d3de6e3e71efa8a55f4e77758562f47 (patch)
treeebc09ee20d9737ba39647bed0f8157f85b12e8c5 /shared-bindings
parent588e4b8421236221ff6ccac515a058c643f43c52 (diff)
parent592f89f6aeab6f19835baa01cc9b1db12009505a (diff)
Merge pull request #4426 from kmatch98/main
Add getter for displayio.Palette item transparency/opacity.
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/displayio/Palette.c16
-rw-r--r--shared-bindings/displayio/Palette.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/shared-bindings/displayio/Palette.c b/shared-bindings/displayio/Palette.c
index d5acf1ed6..dc71c0560 100644
--- a/shared-bindings/displayio/Palette.c
+++ b/shared-bindings/displayio/Palette.c
@@ -180,9 +180,25 @@ STATIC mp_obj_t displayio_palette_obj_make_opaque(mp_obj_t self_in, mp_obj_t pal
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_palette_make_opaque_obj, displayio_palette_obj_make_opaque);
+//| def is_transparent(self, palette_index: int) -> bool:
+//| """Returns `True` if the palette index is transparent. Returns `False` if opaque."""
+//| ...
+//|
+STATIC mp_obj_t displayio_palette_obj_is_transparent(mp_obj_t self_in, mp_obj_t palette_index_obj) {
+ displayio_palette_t *self = MP_OBJ_TO_PTR(self_in);
+
+ mp_int_t palette_index;
+ if (!mp_obj_get_int_maybe(palette_index_obj, &palette_index)) {
+ mp_raise_ValueError(translate("palette_index should be an int"));
+ }
+ return mp_obj_new_bool(common_hal_displayio_palette_is_transparent(self, palette_index));
+}
+MP_DEFINE_CONST_FUN_OBJ_2(displayio_palette_is_transparent_obj, displayio_palette_obj_is_transparent);
+
STATIC const mp_rom_map_elem_t displayio_palette_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_make_transparent), MP_ROM_PTR(&displayio_palette_make_transparent_obj) },
{ MP_ROM_QSTR(MP_QSTR_make_opaque), MP_ROM_PTR(&displayio_palette_make_opaque_obj) },
+ { MP_ROM_QSTR(MP_QSTR_is_transparent), MP_ROM_PTR(&displayio_palette_is_transparent_obj) },
};
STATIC MP_DEFINE_CONST_DICT(displayio_palette_locals_dict, displayio_palette_locals_dict_table);
diff --git a/shared-bindings/displayio/Palette.h b/shared-bindings/displayio/Palette.h
index 62b8f3600..d9a798016 100644
--- a/shared-bindings/displayio/Palette.h
+++ b/shared-bindings/displayio/Palette.h
@@ -38,5 +38,6 @@ uint32_t common_hal_displayio_palette_get_len(displayio_palette_t *self);
void common_hal_displayio_palette_make_opaque(displayio_palette_t *self, uint32_t palette_index);
void common_hal_displayio_palette_make_transparent(displayio_palette_t *self, uint32_t palette_index);
+bool common_hal_displayio_palette_is_transparent(displayio_palette_t *self, uint32_t palette_index);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_PALETTE_H