diff options
author | solido <solido@dummy.example.com> | 2005-11-14 08:38:16 +0000 |
---|---|---|
committer | solido <solido@dummy.example.com> | 2005-11-14 08:38:16 +0000 |
commit | f0416627d63d94cac80e7fc2e0e585b79a8147f0 (patch) | |
tree | f62292c10e578f85f259e22f036e609982fd0fa9 /gtk2_ardour/new_session_dialog.h | |
parent | 3c6f29ceeacc6bf2f393169792903a730dd84ad7 (diff) |
support for glade and new new session dialog
git-svn-id: svn://localhost/trunk/ardour2@88 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/new_session_dialog.h')
-rw-r--r-- | gtk2_ardour/new_session_dialog.h | 193 |
1 files changed, 102 insertions, 91 deletions
diff --git a/gtk2_ardour/new_session_dialog.h b/gtk2_ardour/new_session_dialog.h index ba79598c8f..79e7000ee7 100644 --- a/gtk2_ardour/new_session_dialog.h +++ b/gtk2_ardour/new_session_dialog.h @@ -1,99 +1,110 @@ -#ifndef __gtk_ardour_new_session_dialog_h__ -#define __gtk_ardour_new_session_dialog_h__ - -#include <gtkmm/adjustment.h> -#include <gtkmm/radiobutton.h> -#include <gtkmm/frame.h> -#include <gtkmm/filechooserwidget.h> -#include <gtkmm/box.h> -#include <gtkmm/checkbutton.h> -#include <gtkmm/comboboxtext.h> - -namespace Gtk { - class CList; -} - -namespace ARDOUR { - class AudioEngine; -} - -#include <gtkmm2ext/click_box.h> -#include <gtkmm2ext/selector.h> -#include "ardour_dialog.h" - -class NewSessionDialog : public ArdourDialog +/* + Copyright (C) 2005 Paul Davis + + This program 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, + 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. + + $Id$ +*/ + +// -*- c++ -*- + +#ifndef NEW_SESSION_DIALOG_H +#define NEW_SESSION_DIALOG_H + +#include <string> +#include <gtkmm.h> + +#include "glade_factory.h" + +struct NewSessionDialogFactory : public GladeFactory { - public: - NewSessionDialog (ARDOUR::AudioEngine&, bool startup, std::string path); + static GladeRef create(); + + static const char* top_level_widget_name(); + +private: + + static const char* s_m_top_level_widget_name; - Gtk::FileChooserWidget file_selector; - Gtk::ComboBoxText control_out_channel_combo; - Gtk::ComboBoxText master_out_channel_combo; - Gtk::CheckButton use_control_button; - Gtk::CheckButton use_master_button; - Gtk::CheckButton connect_to_physical_inputs_button; - - Gtk::RadioButton connect_to_master_button; - Gtk::RadioButton connect_to_physical_outputs_button; - Gtk::RadioButton manual_connect_outputs_button; - - Gtk::VBox input_vbox; - Gtk::VBox manual_vbox; - Gtk::VBox output_vbox; - Gtk::VBox vbox; - - Gtk::Adjustment in_count_adjustment; - Gtk::Adjustment out_count_adjustment; - - string get_template_name (); - - private: - Gtk::Notebook notebook; - Gtk::VBox main_vbox; - Gtk::VBox fsbox; - - Gtk::Frame control_out_config_frame; - Gtk::Frame master_out_config_frame; - Gtk::Label output_label; - Gtk::Label input_label; - Gtk::Frame sr_frame; - Gtk::Frame template_frame; - Gtk::Frame manual_frame; - Gtk::HBox control_hbox; - Gtk::HBox master_hbox; - Gtk::Table io_table; - Gtk::VBox template_box; - Gtk::HBox output_hbox; - Gtk::HBox input_hbox; - Gtk::HBox option_hbox; - Gtk::VBox io_box; - Gtk::Label sr_label2; - Gtk::Label sr_label1; - Gtk::VBox sr_box; - Gtk::Button expansion_button; - Gtk::Table out_table; - Gtk::CheckButton show_again; - Gtk::ComboBoxText template_combo; - list<string> templates; - Gtk::SpinButton in_count_spinner; - Gtk::SpinButton out_count_spinner; - Gtk::Label in_count_label; - Gtk::Label out_count_label; - - void reset_templates (); +}; + +class NewSessionDialog : public Gtk::Dialog +{ +public: + + NewSessionDialog(BaseObjectType* cobject, + const Glib::RefPtr<Gnome::Glade::Xml>& xml); + + void set_session_name(const Glib::ustring& name); + + std::string session_name() const; + std::string session_folder() const; - static void _mix_template_refiller (Gtk::CList &clist, void *); - void mix_template_refiller (Gtk::CList &clist); + bool use_session_template() const; + std::string session_template_name() const; + + // advanced. + + bool create_master_track() const; + int master_channel_count() const; + + bool create_control_track() const; + int control_channel_count() const; + + bool connect_inputs() const; + bool limit_inputs_used_for_connection() const; + int input_limit_count() const; - void mix_template_shift (Gtkmm2ext::Selector *, Gtkmm2ext::Selector::Result*); - void mix_template_control (Gtkmm2ext::Selector *, Gtkmm2ext::Selector::Result*); + bool connect_outputs() const; + bool limit_outputs_used_for_connection() const; + int output_limit_count() const; - void fixup_at_realize (); - void fixup_at_show (); - void toggle_expansion (); - void file_selector_expansion (bool); + bool connect_outs_to_master() const; + bool connect_outs_to_physical() const ; - void show_again_toggled (); +protected: + + void reset_name(); + void reset_template(); + + // reset everything to default values. + void reset(); + + // references to widgets we care about. + + Gtk::Entry* m_name; + Gtk::FileChooserButton* m_folder; + Gtk::FileChooserButton* m_template; + + Gtk::CheckButton* m_create_master_track; + Gtk::SpinButton* m_master_track_channel_count; + + Gtk::CheckButton* m_create_control_track; + Gtk::SpinButton* m_control_track_channel_count; + + Gtk::CheckButton* m_connect_inputs; + Gtk::CheckButton* m_limit_input_ports; + Gtk::SpinButton* m_input_limit_count; + + Gtk::CheckButton* m_connect_outputs; + Gtk::CheckButton* m_limit_output_ports; + Gtk::SpinButton* m_output_limit_count; + + Gtk::RadioButton* m_connect_outputs_to_master; + Gtk::RadioButton* m_connect_outputs_to_physical; + }; -#endif // __gtk_ardour_new_session_dialog_h__ */ +#endif // NEW_SESSION_DIALOG_H |