+ void map_values_changed ();
+ 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<std::pair<NamedChannel, NamedChannel>> mouse_event_to_channels (wxMouseEvent& ev) const;
+ boost::optional<std::string> 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 ();
+
+ AudioMapping _map;
+
+ wxMenu* _menu = nullptr;
+ int _menu_input;
+ int _menu_output;
+
+ wxString _left_label;
+ wxString _from;
+ wxString _top_label;
+ wxString _to;
+
+ std::vector<NamedChannel> _input_channels;
+ std::vector<NamedChannel> _output_channels;
+ std::vector<Group> _input_groups;
+ std::vector<int> _column_widths;
+ int _column_widths_total = 0;