changes from colin for route_params, nick for location_ui and route_ui, and me for...
[ardour.git] / gtk2_ardour / new_session_dialog.h
1 #ifndef __gtk_ardour_new_session_dialog_h__
2 #define __gtk_ardour_new_session_dialog_h__
3
4 #include <gtkmm/adjustment.h>
5 #include <gtkmm/radiobutton.h>
6 #include <gtkmm/frame.h>
7 #include <gtkmm/filechooserwidget.h>
8 #include <gtkmm/box.h>
9 #include <gtkmm/checkbutton.h>
10 #include <gtkmm/comboboxtext.h>
11
12 namespace Gtk {
13         class CList;
14 }
15
16 namespace ARDOUR {
17         class AudioEngine;
18 }
19
20 #include <gtkmm2ext/click_box.h>
21 #include <gtkmm2ext/selector.h>
22 #include "ardour_dialog.h"
23
24 class NewSessionDialog : public ArdourDialog
25 {
26   public:
27         NewSessionDialog (ARDOUR::AudioEngine&, bool startup, std::string path);
28         
29         Gtk::FileChooserWidget file_selector;
30         Gtk::ComboBoxText control_out_channel_combo;
31         Gtk::ComboBoxText master_out_channel_combo;
32         Gtk::CheckButton use_control_button;
33         Gtk::CheckButton use_master_button;
34         Gtk::CheckButton connect_to_physical_inputs_button;
35
36         Gtk::RadioButton connect_to_master_button;
37         Gtk::RadioButton connect_to_physical_outputs_button;
38         Gtk::RadioButton manual_connect_outputs_button;
39
40         Gtk::VBox input_vbox;
41         Gtk::VBox manual_vbox;
42         Gtk::VBox output_vbox;
43         Gtk::VBox vbox;
44
45         Gtk::Adjustment in_count_adjustment;
46         Gtk::Adjustment out_count_adjustment;
47
48         string get_template_name ();
49
50   private:
51         Gtk::Notebook notebook;
52         Gtk::VBox     main_vbox;
53         Gtk::VBox     fsbox;
54
55         Gtk::Frame control_out_config_frame;
56         Gtk::Frame master_out_config_frame;
57         Gtk::Label output_label;
58         Gtk::Label input_label;
59         Gtk::Frame sr_frame;
60         Gtk::Frame template_frame;
61         Gtk::Frame manual_frame;
62         Gtk::HBox control_hbox;
63         Gtk::HBox master_hbox;
64         Gtk::Table io_table;
65         Gtk::VBox template_box;
66         Gtk::HBox output_hbox;
67         Gtk::HBox input_hbox;
68         Gtk::HBox option_hbox;
69         Gtk::VBox io_box;
70         Gtk::Label sr_label2;
71         Gtk::Label sr_label1;
72         Gtk::VBox  sr_box;
73         Gtk::Button expansion_button;
74         Gtk::Table out_table;
75         Gtk::CheckButton show_again;
76         Gtk::ComboBoxText template_combo;
77         list<string> templates;
78         Gtk::SpinButton in_count_spinner;
79         Gtk::SpinButton out_count_spinner;
80         Gtk::Label      in_count_label;
81         Gtk::Label      out_count_label;
82
83         void reset_templates ();
84         
85         static void _mix_template_refiller (Gtk::CList &clist, void *);
86         void mix_template_refiller (Gtk::CList &clist);
87
88         void mix_template_shift (Gtkmm2ext::Selector *, Gtkmm2ext::Selector::Result*);
89         void mix_template_control (Gtkmm2ext::Selector *, Gtkmm2ext::Selector::Result*);
90
91         void fixup_at_realize ();
92         void fixup_at_show ();
93         void toggle_expansion ();
94         void file_selector_expansion (bool);
95
96         void show_again_toggled ();
97 };
98
99 #endif // __gtk_ardour_new_session_dialog_h__ */