La estructura Button es uno de nuestros elementos básicos de la interfaz de usuario. Tiene un cuadro de texto asociado para mostrar texto, un color para el fondo y una devolución de llamada que se invoca cuando se hace clic en el botón. Proporcionamos un método render para dibujar el botón en la pantalla, un método is_pressed para verificar si se hizo clic en un botón según las coordenadas x e y de un clic del mouse, y un método on_click para ejecutar la función de devolución de llamada del botón.
Además, tenemos lógica de serialización implementada para el Button y sus componentes internos: RcTextBoxWrapper, ColorWrapper y RectWrapper. Esto nos permite convertir un Button a una forma serializada para almacenamiento o comunicación en red.