X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstartup.h;h=a93a29ef4238f90260bb2b895c7654131aa6d45e;hb=68e3ba189e973077dd119eefb22678f16cd6d404;hp=1657d4fcd011036a87029b726c35265932f4fb2c;hpb=922e79c94ad0fa6407bbc87e3a862c5c8eea2ee7;p=ardour.git diff --git a/gtk2_ardour/startup.h b/gtk2_ardour/startup.h index 1657d4fcd0..a93a29ef42 100644 --- a/gtk2_ardour/startup.h +++ b/gtk2_ardour/startup.h @@ -1,3 +1,22 @@ +/* + Copyright (C) 2010 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. + +*/ + #ifndef __gtk2_ardour_startup_h__ #define __gtk2_ardour_startup_h__ @@ -7,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -14,19 +34,35 @@ #include #include #include +#include +#include +#include +#include +#include + +#include "ardour/utils.h" + +class EngineControl; class ArdourStartup : public Gtk::Assistant { public: - ArdourStartup (); + ArdourStartup (); ~ArdourStartup (); + static bool required (); + + gint response () const { + return _response; + } + private: - bool applying; + gint _response; + bool config_modified; + bool new_user; void on_apply (); void on_cancel (); - void on_close (); - void on_prepare (Gtk::Widget*); + bool on_delete_event (GdkEventAny*); static ArdourStartup *the_startup; @@ -38,66 +74,29 @@ class ArdourStartup : public Gtk::Assistant { bool splash_expose (GdkEventExpose* ev); void setup_first_time_config_page (); + void config_changed (); /* first page */ + Gtk::FileChooserButton* default_dir_chooser; + void default_dir_changed(); void setup_first_page (); - - /* initial choice page */ - - void setup_initial_choice_page (); - Gtk::VBox ic_vbox; - Gtk::RadioButton ic_new_session_button; - Gtk::RadioButton ic_existing_session_button; - - /* session page (could be new or existing) */ - - void setup_session_page (); - Gtk::VBox session_vbox; - Gtk::HBox session_hbox; - - /* recent sessions */ - - void setup_existing_session_page (); - - struct RecentSessionsSorter { - bool operator() (std::pair a, std::pair b) const { - return cmp_nocase(a.first, b.first) == -1; - } - }; - - struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord { - RecentSessionModelColumns() { - add (visible_name); - add (fullpath); - } - Gtk::TreeModelColumn visible_name; - Gtk::TreeModelColumn fullpath; - }; - - RecentSessionModelColumns recent_session_columns; - Gtk::TreeView recent_session_display; - Glib::RefPtr recent_session_model; - Gtk::ScrolledWindow recent_scroller; - void redisplay_recent_sessions (); - void recent_session_row_selected (); - - /* new sessions */ - - void setup_new_session_page (); - Gtk::Entry new_name_entry; Gtk::FileChooserButton new_folder_chooser; - Gtk::FileChooserButton session_template_chooser; - Gtk::VBox session_new_vbox; - Gtk::CheckButton more_new_session_options_button; - void more_new_session_options_button_clicked(); - void new_name_changed (); + /* monitoring choices */ + + Gtk::VBox mon_vbox; + Gtk::Label monitor_label; + Gtk::RadioButton monitor_via_hardware_button; + Gtk::RadioButton monitor_via_ardour_button; + void setup_monitoring_choice_page (); - /* more options for new sessions */ + /* monitor section choices */ - Gtk::VBox more_options_vbox; - Gtk::HBox more_options_hbox; - void setup_more_options_page (); + Gtk::VBox mon_sec_vbox; + Gtk::Label monitor_section_label; + Gtk::RadioButton use_monitor_section_button; + Gtk::RadioButton no_monitor_section_button; + void setup_monitor_section_choice_page (); /* final page */ @@ -108,8 +107,16 @@ class ArdourStartup : public Gtk::Assistant { Glib::RefPtr layout; + /* page indices */ + gint audio_page_index; + gint new_user_page_index; + gint default_folder_page_index; + gint monitoring_page_index; + gint monitor_section_page_index; + gint final_page_index; + void move_along_now (); }; #endif /* __gtk2_ardour_startup_h__ */