class_name EmojiQuickGrid extends GridContainer signal emoji_selected(text: String) func configure(items: Array[String], columns: int = 8, theme: Variant = null) -> void: for child: Node in get_children(): child.queue_free() self.columns = maxi(1, columns) for text: String in items: var button := Button.new(); button.text = text; button.custom_minimum_size = Vector2(44,44); button.focus_mode = Control.FOCUS_ALL if theme != null: button.add_theme_font_override("font", theme.emoji_font()) button.pressed.connect(func() -> void: emoji_selected.emit(text)); add_child(button)