X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Faudio_mapping_view.h;h=f45c2480ccd29c24442612cbd0a9eed0b159ce28;hb=a5be11a965c2c38442e4e069874e7e21b5b43a5c;hp=4210d755493de61d39e54a8f7756e8a2cb5102e0;hpb=fa61fc99549264810e17fcd35abffe9e8ddab5b2;p=dcpomatic.git diff --git a/src/wx/audio_mapping_view.h b/src/wx/audio_mapping_view.h index 4210d7554..f45c2480c 100644 --- a/src/wx/audio_mapping_view.h +++ b/src/wx/audio_mapping_view.h @@ -1,19 +1,20 @@ /* - Copyright (C) 2013-2015 Carl Hetherington + Copyright (C) 2013-2016 Carl Hetherington - This program is free software; you can redistribute it and/or modify + 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. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ @@ -45,20 +46,44 @@ class AudioMappingView : public wxPanel { public: - AudioMappingView (wxWindow *); + explicit AudioMappingView (wxWindow *); void set (AudioMapping); void set_input_channels (std::vector const & names); void set_output_channels (std::vector const & names); + struct Group + { + Group (int f, int t, std::string n) + : from (f) + , to (t) + , name (n) + {} + + /** First channel index (from 0) */ + int from; + /** Last channel index (from 0) */ + int to; + /** Name of this group */ + std::string name; + }; + + void set_input_groups (std::vector const & groups); + boost::signals2::signal Changed; private: void left_click (wxGridEvent &); void right_click (wxGridEvent &); - void mouse_moved (wxMouseEvent &); + 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 (wxScrollWinEvent& ev); void off (); void full (); @@ -66,13 +91,17 @@ private: void edit (); wxGrid* _grid; - wxSizer* _sizer; + wxScrolledCanvas* _left_labels; + wxScrolledCanvas* _top_labels; AudioMapping _map; wxMenu* _menu; int _menu_row; int _menu_column; + std::vector _input_groups; + std::vector > _input_group_positions; + int _last_tooltip_row; int _last_tooltip_column; };