along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id$
*/
// -*- c++ -*-
#include <glibmm/refptr.h>
#include "ardour_dialog.h"
+#include "engine_dialog.h"
namespace Gtk {
class Entry;
{
public:
+ enum Pages {
+ NewPage = 0x1,
+ OpenPage = 0x2,
+ EnginePage = 0x4
+ };
+
NewSessionDialog();
+ ~NewSessionDialog ();
+
+ int run ();
void set_session_name(const Glib::ustring& name);
+ void set_session_folder(const Glib::ustring& folder);
std::string session_name() const;
std::string session_folder() const;
bool connect_outs_to_master() const;
bool connect_outs_to_physical() const ;
+ Pages which_page () const;
+
int get_current_page();
+ void set_current_page (int);
void reset_recent();
// reset everything to default values.
void reset();
+ EngineControl engine_control;
+ void set_have_engine (bool yn);
+ void set_existing_session (bool yn);
+
protected:
void reset_name();
Gtk::Label * session_name_label;
Gtk::Label * session_location_label;
Gtk::Label * session_template_label;
- Gtk::Label * chan_count_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::Alignment * input_port_alignment;
+ 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::Alignment * output_port_alignment;
+ Gtk::HBox * output_hbox;
+
Gtk::Label * output_label;
Gtk::Frame * output_frame;
Gtk::VBox * advanced_vbox;
Gtk::Table * new_session_table;
Gtk::HBox * open_session_hbox;
Gtk::ScrolledWindow * recent_scrolledwindow;
- Gtk::Alignment * recent_alignment;
+
Gtk::Label * recent_sesion_label;
Gtk::Frame * recent_frame;
Gtk::VBox * open_session_vbox;
Gtk::Notebook* m_notebook;
private:
+
+ Pages page_set;
+
struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord {
RecentSessionModelColumns() {
add (visible_name);
RecentSessionModelColumns recent_columns;
Glib::RefPtr<Gtk::TreeStore> recent_model;
+ bool in_destructor;
+
void recent_session_selection_changed ();
void nsd_redisplay_recent_sessions();
void nsd_recent_session_row_activated (const Gtk::TreePath& path, Gtk::TreeViewColumn* col);
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 monitor_bus_button_clicked ();
bool on_new_session_page;
-
-
+ bool have_engine;
};
#endif // NEW_SESSION_DIALOG_H