diff options
| author | Scott Shawcroft <scott@tannewt.org> | 2019-01-14 17:26:36 -0800 |
|---|---|---|
| committer | Scott Shawcroft <scott@tannewt.org> | 2019-01-14 17:29:19 -0800 |
| commit | 747f2cfe267628fda8487c533ce7a5ab10a9388f (patch) | |
| tree | f8d8d56e7682e0627801897780556dc340b5411e /shared-module/displayio/Group.c | |
| parent | 72d993d60c5e5238942491df00776ca31f9758a1 (diff) | |
Add subclass support to displayio.
Also, swap make_news to accept a kwarg map and refine param checking.
Fixes #1237
Diffstat (limited to 'shared-module/displayio/Group.c')
| -rw-r--r-- | shared-module/displayio/Group.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/shared-module/displayio/Group.c b/shared-module/displayio/Group.c index 93ac35964..b9923128a 100644 --- a/shared-module/displayio/Group.c +++ b/shared-module/displayio/Group.c @@ -38,6 +38,13 @@ void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer) if (self->size == self->max_size) { mp_raise_RuntimeError(translate("Group full")); } + mp_obj_t native_layer = mp_instance_cast_to_native_base(layer, &displayio_group_type); + if (native_layer == MP_OBJ_NULL) { + native_layer = mp_instance_cast_to_native_base(layer, &displayio_sprite_type); + } + if (native_layer == MP_OBJ_NULL) { + mp_raise_ValueError(translate("Layer must be a Group or Sprite subclass.")); + } self->children[self->size] = layer; self->size++; self->needs_refresh = true; |
