-void
-FilmViewer::paint_panel ()
-{
- wxPaintDC dc (_panel);
-
- if (!_frame || !_film || !_out_size.width || !_out_size.height || _out_size != _frame->size()) {
- dc.Clear ();
- return;
- }
-
- wxImage frame (_out_size.width, _out_size.height, _frame->data()[0], true);
- wxBitmap frame_bitmap (frame);
- dc.DrawBitmap (frame_bitmap, 0, max(0, (_panel_size.height - _out_size.height) / 2));
-
- if (_out_size.width < _panel_size.width) {
- wxPen p (_panel->GetParent()->GetBackgroundColour());
- wxBrush b (_panel->GetParent()->GetBackgroundColour());
- dc.SetPen (p);
- dc.SetBrush (b);
- dc.DrawRectangle (_out_size.width, 0, _panel_size.width - _out_size.width, _panel_size.height);
- }
-
- if (_out_size.height < _panel_size.height) {
- wxPen p (_panel->GetParent()->GetBackgroundColour());
- wxBrush b (_panel->GetParent()->GetBackgroundColour());
- dc.SetPen (p);
- dc.SetBrush (b);
- int const gap = (_panel_size.height - _out_size.height) / 2;
- dc.DrawRectangle (0, 0, _panel_size.width, gap);
- dc.DrawRectangle (0, gap + _out_size.height, _panel_size.width, gap);
- }
-
- if (_outline_content) {
- wxPen p (wxColour (255, 0, 0), 2);
- dc.SetPen (p);
- dc.SetBrush (*wxTRANSPARENT_BRUSH);
- dc.DrawRectangle (_inter_position.x, _inter_position.y, _inter_size.width, _inter_size.height);
- }
-}
-