those calculations are done to make the button's size resolution independent in the menus, defaulting to one button size would be bad if you increase the resolution: the buttons would need scaling.
A better approach might be remodel the UI to work with normalized coordinates going from 0 to 1 or so. With this, the resolution would not matter for the layout and your approach with the default sizes will work out.
As it stands now, I cannot see how the button default size can be moved inside the button class besides adding a static member variable. That is clutchy though.
those calculations are done to make the button's size resolution independent in the menus, defaulting to one button size would be bad if you increase the resolution: the buttons would need scaling.
A better approach might be remodel the UI to work with normalized coordinates going from 0 to 1 or so. With this, the resolution would not matter for the layout and your approach with the default sizes will work out.
As it stands now, I cannot see how the button default size can be moved inside the button class besides adding a static member variable. That is clutchy though.