Button hudget

Depends on #588

Buttons with std::function Callbacks, implementation example in hud.cpp
these alternatives are the same, aren't they? why not put them in one or'ed block?