1) toolbar items define 3 callback functions for setting the visibility, setting the enabling state and defining their action which are set while adding a new item to the toolbar
2) the toolbar takes care to update all its items visibility and enabled states through a new update method to be called by the parent idle event handler
3) the toolbar handles mouse events by calling its on_mouse method