Abstracted buttons and checkbox to a "Component" class

Signed-off-by: Lasconik <caillouxnicolas@gmail.com>