X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fnew_session_dialog.h;h=2a2081e56a5d58cd21257b593561932906d48f39;hb=1315ee3dff1e4966ab28bd47e81b5f003cac6e40;hp=8ee4a93969b920703afe7c8c4ea951a3ffdaad21;hpb=3732decd72d387d7005644621205b872ff7fd8d6;p=ardour.git diff --git a/gtk2_ardour/new_session_dialog.h b/gtk2_ardour/new_session_dialog.h index 8ee4a93969..2a2081e56a 100644 --- a/gtk2_ardour/new_session_dialog.h +++ b/gtk2_ardour/new_session_dialog.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ // -*- c++ -*- @@ -24,17 +23,22 @@ #define NEW_SESSION_DIALOG_H #include -#include #include #include #include #include #include +#include +#include +#include +#include #include #include +#include "ardour_dialog.h" + namespace Gtk { class Entry; class FileChooserButton; @@ -45,26 +49,11 @@ namespace Gtk { class Notebook; } -#include "glade_factory.h" - -struct NewSessionDialogFactory : public GladeFactory -{ - static GladeRef create(); - - static const char* top_level_widget_name(); - -private: - - static const char* s_m_top_level_widget_name; - -}; - -class NewSessionDialog : public Gtk::Dialog +class NewSessionDialog : public ArdourDialog { public: - NewSessionDialog(BaseObjectType* cobject, - const Glib::RefPtr& xml); + NewSessionDialog(); void set_session_name(const Glib::ustring& name); @@ -92,7 +81,10 @@ public: bool connect_outs_to_master() const; bool connect_outs_to_physical() const ; - int get_current_page(); + + bool on_new_session_page () const; + + void set_current_page (int); void reset_recent(); // reset everything to default values. @@ -102,13 +94,50 @@ protected: void reset_name(); void reset_template(); - - // references to widgets we care about. - Gtk::Dialog* m_new_session_dialog; + + Gtk::Label * session_name_label; + Gtk::Label * session_location_label; + Gtk::Label * session_template_label; + Gtk::Label * chan_count_label_1; + Gtk::Label * chan_count_label_2; + Gtk::Label * chan_count_label_3; + Gtk::Label * chan_count_label_4; + Gtk::Table * advanced_table; + Gtk::HBox * input_port_limit_hbox; + Gtk::VBox * input_port_vbox; + Gtk::Table * input_table; + Gtk::HBox * input_hbox; + + Gtk::Label * bus_label; + Gtk::Frame * bus_frame; + Gtk::Table * bus_table; + Gtk::HBox * bus_hbox; + + Gtk::Label * input_label; + Gtk::Frame * input_frame; + Gtk::HBox * output_port_limit_hbox; + Gtk::VBox * output_port_vbox; + Gtk::VBox * output_conn_vbox; + Gtk::VBox * output_vbox; + Gtk::HBox * output_hbox; + + Gtk::Label * output_label; + Gtk::Frame * output_frame; + Gtk::VBox * advanced_vbox; + Gtk::Label * advanced_label; + Gtk::Expander * advanced_expander; + Gtk::Table * new_session_table; + Gtk::HBox * open_session_hbox; + Gtk::ScrolledWindow * recent_scrolledwindow; + + Gtk::Label * recent_sesion_label; + Gtk::Frame * recent_frame; + Gtk::VBox * open_session_vbox; Gtk::Entry* m_name; Gtk::FileChooserButton* m_folder; Gtk::FileChooserButton* m_template; - + Gtk::Label * open_session_file_label; + Gtk::CheckButton* m_create_master_bus; Gtk::SpinButton* m_master_bus_channel_count; @@ -130,7 +159,7 @@ protected: Gtk::FileChooserButton* m_open_filechooser; Gtk::TreeView* m_treeview; Gtk::Notebook* m_notebook; - Gtk::ScrolledWindow* m_scrolledwindow; + private: struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord { RecentSessionModelColumns() { @@ -152,13 +181,19 @@ protected: return cmp_nocase(a.first, b.first) == -1; } }; - bool entry_key_release (GdkEventKey*); + void on_new_session_name_entry_changed(); void notebook_page_changed (GtkNotebookPage*, uint); void treeview_selection_changed (); void file_chosen (); + void template_chosen (); void recent_row_activated (const Gtk::TreePath&, Gtk::TreeViewColumn*); + void connect_inputs_clicked (); + void connect_outputs_clicked (); + void limit_inputs_clicked (); + void limit_outputs_clicked (); + void master_bus_button_clicked (); + void monitor_bus_button_clicked (); - }; #endif // NEW_SESSION_DIALOG_H