From 747f2cfe267628fda8487c533ce7a5ab10a9388f Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Mon, 14 Jan 2019 17:26:36 -0800 Subject: Add subclass support to displayio. Also, swap make_news to accept a kwarg map and refine param checking. Fixes #1237 --- shared-module/displayio/Group.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'shared-module/displayio/Group.c') 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; -- cgit v1.2.3