diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-03-23 01:21:46 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-03-23 01:21:46 +0000 |
| commit | 83cc718cc4f38bc2a9cc8cd62ed570415c5ba289 (patch) | |
| tree | e7dd1f7a17b86d6110b06fee3fa206a38edf1fc0 /src/wx | |
| parent | e2361edc2fc2c07d6474bf5a7f76dc2a5b55ee81 (diff) | |
Arrows to go forward/back one frame.
Diffstat (limited to 'src/wx')
| -rw-r--r-- | src/wx/film_viewer.cc | 28 | ||||
| -rw-r--r-- | src/wx/film_viewer.h | 9 |
2 files changed, 29 insertions, 8 deletions
diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 635a564c6..5cd09048c 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -580,7 +580,7 @@ FilmViewer::active_jobs_changed (optional<string> j) } DCPTime -FilmViewer::nudge_amount (wxMouseEvent& ev) +FilmViewer::nudge_amount (wxKeyboardState& ev) { DCPTime amount = one_video_frame (); @@ -619,17 +619,35 @@ FilmViewer::rewind_clicked (wxMouseEvent& ev) } void -FilmViewer::back_clicked (wxMouseEvent& ev) +FilmViewer::back_frame () +{ + if (!_film) { + return; + } + + go_to (_video_position - one_video_frame()); +} + +void +FilmViewer::forward_frame () +{ + if (!_film) { + return; + } + + go_to (_video_position + one_video_frame()); +} + +void +FilmViewer::back_clicked (wxKeyboardState& ev) { go_to (_video_position - nudge_amount (ev)); - ev.Skip (); } void -FilmViewer::forward_clicked (wxMouseEvent& ev) +FilmViewer::forward_clicked (wxKeyboardState& ev) { go_to (_video_position + nudge_amount (ev)); - ev.Skip (); } void diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h index 190396601..eed6c283d 100644 --- a/src/wx/film_viewer.h +++ b/src/wx/film_viewer.h @@ -72,6 +72,9 @@ public: return _playing; } + void back_frame (); + void forward_frame (); + int audio_callback (void* out, unsigned int frames); boost::signals2::signal<void (boost::weak_ptr<PlayerVideo>)> ImageChanged; @@ -87,8 +90,8 @@ private: void check_play_state (); void active_jobs_changed (boost::optional<std::string>); void rewind_clicked (wxMouseEvent &); - void back_clicked (wxMouseEvent &); - void forward_clicked (wxMouseEvent &); + void back_clicked (wxKeyboardState& s); + void forward_clicked (wxKeyboardState &); void player_changed (int, bool); void update_position_label (); void update_position_slider (); @@ -98,7 +101,7 @@ private: void refresh_panel (); void setup_sensitivity (); void film_changed (Film::Property); - DCPTime nudge_amount (wxMouseEvent &); + DCPTime nudge_amount (wxKeyboardState &); void timecode_clicked (); void frame_number_clicked (); void go_to (DCPTime t); |
