This diff
- Moves the AddSetting calls from the child classes to the base class. Benefits:
a) reduces the code by few lines (minimization)
b) Makes it so that AddSetting is in the same class as GetSetting (defragmentation)
c) Might allow in the future to make settings members (D2313, see discussion with Vladislav on http://irclogs.wildfiregames.com/2019-09/2019-09-20-QuakeNet-%230ad-dev.log)
d) Cleaning all AddSetting calls allows to warn about AddSetting calls redundant in derived and base class instead of silently ignoring them and misleading authors to believe that all AddSetting calls are purposeful.
- Moves the ChooseColor() function from IGUIButtonBehavior to CButton, since it is only used by this class following rP14476 (refs rP22952 / D2314). If the function was to be considered a part of IGUIButtonBehavior, then the AddSetting calls to textcolor, textcolor_disabled, textcolor_pressed, textcolor_over should also be in this class (see argument for 1). So also the comment // Yes, the object must possess these settings. They are standard.
Notice that CDropdown mirrors part of the IGUIButtonBehavior and excludes other parts thereof, which makes it particularly less confusing if there are less AddSetting calls.