summaryrefslogtreecommitdiff
path: root/src/wx/standard_controls.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-11-20 22:21:38 +0000
committerCarl Hetherington <cth@carlh.net>2018-11-22 23:26:27 +0000
commit6349c88c4fb9d4ac76ef14b277d455e3a2b006a6 (patch)
treed309b4d8f4da844a4fbd1bb7c0d944271db46388 /src/wx/standard_controls.cc
parent8872a0a0028048e277a623fa08e8242dd43f4824 (diff)
Separate Controls into standard/swaroop.
Diffstat (limited to 'src/wx/standard_controls.cc')
-rw-r--r--src/wx/standard_controls.cc76
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);
+}