//Creates a cControl and returns a pointer to it. cControls retains ownership, and the label will be destroyed in cControls' destructor.
template<typename ControlType, typename Arg>
ControlType *cControls::Create(Arg &&arg)
{
ControlType *newControl = new ControlType(std::forward<Arg>(arg));
this->AddControl(newControl);
return newControl;
}