@@ -322,6 +322,24 @@ MP_PROPERTY_GETSET(displayio_tilegrid_transpose_xy_obj,
322
322
(mp_obj_t )& displayio_tilegrid_get_transpose_xy_obj ,
323
323
(mp_obj_t )& displayio_tilegrid_set_transpose_xy_obj );
324
324
325
+ //| def contains(self, touch_tuple: tuple) -> bool:
326
+ //| """Returns True if the first two values in ``touch_tuple`` represent an x,y coordinate
327
+ //| inside the tilegrid rectangle bounds."""
328
+ //|
329
+ STATIC mp_obj_t displayio_tilegrid_obj_contains (mp_obj_t self_in , mp_obj_t touch_tuple ) {
330
+ displayio_tilegrid_t * self = MP_OBJ_TO_PTR (self_in );
331
+
332
+ mp_obj_t * touch_tuple_items ;
333
+ mp_obj_get_array_fixed_n (touch_tuple , 3 , & touch_tuple_items );
334
+ uint16_t x = 0 ;
335
+ uint16_t y = 0 ;
336
+ x = mp_obj_get_int (touch_tuple_items [0 ]);
337
+ y = mp_obj_get_int (touch_tuple_items [1 ]);
338
+
339
+ return mp_obj_new_bool (common_hal_displayio_tilegrid_contains (self , x , y ));
340
+ }
341
+ MP_DEFINE_CONST_FUN_OBJ_2 (displayio_tilegrid_contains_obj , displayio_tilegrid_obj_contains );
342
+
325
343
//| pixel_shader: Union[ColorConverter, Palette]
326
344
//| """The pixel shader of the tilegrid."""
327
345
//|
@@ -484,6 +502,7 @@ STATIC const mp_rom_map_elem_t displayio_tilegrid_locals_dict_table[] = {
484
502
{ MP_ROM_QSTR (MP_QSTR_flip_x ), MP_ROM_PTR (& displayio_tilegrid_flip_x_obj ) },
485
503
{ MP_ROM_QSTR (MP_QSTR_flip_y ), MP_ROM_PTR (& displayio_tilegrid_flip_y_obj ) },
486
504
{ MP_ROM_QSTR (MP_QSTR_transpose_xy ), MP_ROM_PTR (& displayio_tilegrid_transpose_xy_obj ) },
505
+ { MP_ROM_QSTR (MP_QSTR_contains ), MP_ROM_PTR (& displayio_tilegrid_contains_obj ) },
487
506
{ MP_ROM_QSTR (MP_QSTR_pixel_shader ), MP_ROM_PTR (& displayio_tilegrid_pixel_shader_obj ) },
488
507
{ MP_ROM_QSTR (MP_QSTR_bitmap ), MP_ROM_PTR (& displayio_tilegrid_bitmap_obj ) },
489
508
};
0 commit comments