IF the hierarchy was as I suggested
Control
RectControl
Button
MacButton
WindowsButton
LinuxButton
iOSButton
AndroidButton
then adding a new platform could be as simple as adding a new subclass that, at runtime is whats used