Pass the provider to the created widgets.

This means that multiple views can now be created. The only small bug
is that the image may be freed by a second provider if two separate
once instantiated.