#ifndef __gtk2_ardour_startup_h__ #define __gtk2_ardour_startup_h__ #include #include #include #include #include #include #include #include #include #include #include #include class ArdourStartup : public Gtk::Assistant { public: ArdourStartup (); ~ArdourStartup (); private: bool applying; void on_apply (); void on_cancel (); void on_close (); void on_prepare (Gtk::Widget*); static ArdourStartup *the_startup; Glib::RefPtr icon_pixbuf; void setup_new_user_page (); Glib::RefPtr splash_pixbuf; Gtk::DrawingArea splash_area; bool splash_expose (GdkEventExpose* ev); void setup_first_time_config_page (); /* first page */ 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 (); /* more options for new sessions */ Gtk::VBox more_options_vbox; Gtk::HBox more_options_hbox; void setup_more_options_page (); /* final page */ void setup_final_page (); Gtk::Label final_page; /* always there */ Glib::RefPtr layout; }; #endif /* __gtk2_ardour_startup_h__ */