Todo List
Member AnimationBase::add_callback (AnimationCallback callback)
Need to implement removing callbacks, similar to Object class.
Class CheckBox
This should be a ValueWidget<bool>.
Member Form::m_options
This will keep pointers around to deleted child widgets.
Member Frame::add (const std::shared_ptr< Widget > &widget)
Create the idea of layers by moving m_children to a 2d array. Then add a layer index (x-order) here to add widgets to different layers for drawing.
Member Gauge::add (const std::shared_ptr< GaugeLayer > &layer)
This does not account for adding the same layer multiple times.
Member Image::copy ()
Tricky API.
Member Image::Image (shared_cairo_surface_t surface)
This is a broken API. It's different from the constructor below. Need consistency.
Member Painter::Painter (shared_cairo_t cr) noexcept
Painter needs to come from the Screen. This constructor should be hidden and you should have to get a custom version of it from the Screen for drawing. A default software/GPU painter can be created, otherwise for something like X11 we should be using X11 to paint.