diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-11-20 22:21:38 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-11-22 23:26:27 +0000 |
| commit | 6349c88c4fb9d4ac76ef14b277d455e3a2b006a6 (patch) | |
| tree | d309b4d8f4da844a4fbd1bb7c0d944271db46388 /src/wx/standard_controls.cc | |
| parent | 8872a0a0028048e277a623fa08e8242dd43f4824 (diff) | |
Separate Controls into standard/swaroop.
Diffstat (limited to 'src/wx/standard_controls.cc')
| -rw-r--r-- | src/wx/standard_controls.cc | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/wx/standard_controls.cc b/src/wx/standard_controls.cc new file mode 100644 index 000000000..956f82c96 --- /dev/null +++ b/src/wx/standard_controls.cc @@ -0,0 +1,76 @@ +/* + Copyright (C) 2018 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "standard_controls.h" +#include "film_viewer.h" +#include <wx/wx.h> +#include <wx/tglbtn.h> + +using boost::shared_ptr; + +StandardControls::StandardControls (wxWindow* parent, shared_ptr<FilmViewer> viewer, bool editor_controls) + : Controls (parent, viewer, editor_controls) + , _play_button (new wxToggleButton(this, wxID_ANY, _("Play"))) +{ + _button_sizer->Add (_play_button, 0, wxEXPAND); + _play_button->Bind (wxEVT_TOGGLEBUTTON, boost::bind(&StandardControls::play_clicked, this)); +} + +void +StandardControls::started () +{ + Controls::started (); + _play_button->SetValue (true); +} + +void +StandardControls::stopped () +{ + Controls::stopped (); + _play_button->SetValue (false); +} + +void +StandardControls::play_clicked () +{ + check_play_state (); +} + +void +StandardControls::check_play_state () +{ + if (!_film || _film->video_frame_rate() == 0) { + return; + } + + if (_play_button->GetValue()) { + _viewer->start (); + } else { + _viewer->stop (); + } +} + +void +StandardControls::setup_sensitivity () +{ + Controls::setup_sensitivity (); + bool const active_job = _active_job && *_active_job != "examine_content"; + _play_button->Enable (_film && !_film->content().empty() && !active_job); +} |
