X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Faudio_mapping_view.h;h=c568954a0902b359e20670025ea20991d81a49fe;hb=25a119e21cfb73fdef4571d6abc322cb7d8cf92e;hp=18ab2540772a2c4ede6ad79fb88ab7ab52ef8cfb;hpb=a69d242f3f00207d6ea7320e6723775f4b0dbfb3;p=dcpomatic.git diff --git a/src/wx/audio_mapping_view.h b/src/wx/audio_mapping_view.h index 18ab25407..c568954a0 100644 --- a/src/wx/audio_mapping_view.h +++ b/src/wx/audio_mapping_view.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2016 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,15 +18,20 @@ */ + /** @file src/wx/audio_mapping_view.h * @brief AudioMappingView class. - * */ -#include -#include -#include + #include "lib/audio_mapping.h" +#include "lib/named_channel.h" +#include +LIBDCP_DISABLE_WARNINGS +#include +LIBDCP_ENABLE_WARNINGS +#include + /** @class AudioMappingView * @brief This class displays the mapping of one set of audio channels to another, @@ -42,15 +47,14 @@ * hidden from view. Thus input channels are never hidden but output channels * might be. */ - class AudioMappingView : public wxPanel { public: - explicit AudioMappingView (wxWindow *); + AudioMappingView (wxWindow *, wxString left_label, wxString from, wxString top_label, wxString to); void set (AudioMapping); - void set_input_channels (std::vector const & names); - void set_output_channels (std::vector const & names); + void set_input_channels (std::vector const& channels); + void set_output_channels (std::vector const& channels); struct Group { @@ -73,35 +77,43 @@ public: boost::signals2::signal Changed; private: - void left_click (wxGridEvent &); - void right_click (wxGridEvent &); - void mouse_moved_grid (wxMouseEvent &); - void update_cells (); void map_values_changed (); - void sized (wxSizeEvent &); - void paint_left_labels (); - void paint_top_labels (); - void mouse_moved_left_labels (wxMouseEvent &); - void setup_sizes (); - void grid_scrolled (); - - void off (); - void full (); - void minus6dB (); + void paint (); + void paint_static (wxDC& dc); + void paint_column_labels (wxDC& dc); + void paint_column_lines (wxDC& dc); + void paint_row_labels (wxDC& dc); + void paint_row_lines (wxDC& dc); + void paint_indicators (wxDC& dc); + void size (wxSizeEvent &); + void left_down (wxMouseEvent &); + void right_down (wxMouseEvent &); + void motion (wxMouseEvent &); + boost::optional> mouse_event_to_channels (wxMouseEvent& ev) const; + boost::optional mouse_event_to_input_group_name (wxMouseEvent& ev) const; + void setup (); + wxString input_channel_name_with_group (NamedChannel const& n) const; + int left_width() const; + + void set_gain_from_menu (double linear); void edit (); - wxGrid* _grid; - wxPanel* _left_labels; - wxPanel* _top_labels; AudioMapping _map; - wxMenu* _menu; - int _menu_row; - int _menu_column; + wxMenu* _menu = nullptr; + int _menu_input; + int _menu_output; + + wxString _left_label; + wxString _from; + wxString _top_label; + wxString _to; + std::vector _input_channels; + std::vector _output_channels; std::vector _input_groups; - std::vector > _input_group_positions; + std::vector _column_widths; + int _column_widths_total = 0; - int _last_tooltip_row; - int _last_tooltip_column; + boost::optional> _last_tooltip_channels; };