1 #ifndef __gtk2_ardour_startup_h__
2 #define __gtk2_ardour_startup_h__
6 #include <gdkmm/pixbuf.h>
7 #include <gtkmm/assistant.h>
8 #include <gtkmm/label.h>
9 #include <gtkmm/drawingarea.h>
10 #include <gtkmm/box.h>
11 #include <gtkmm/radiobutton.h>
12 #include <gtkmm/filechooserbutton.h>
13 #include <gtkmm/scrolledwindow.h>
14 #include <gtkmm/treeview.h>
15 #include <gtkmm/treestore.h>
16 #include <gtkmm/checkbutton.h>
18 class ArdourStartup : public Gtk::Assistant {
29 void on_prepare (Gtk::Widget*);
31 static ArdourStartup *the_startup;
33 Glib::RefPtr<Gdk::Pixbuf> icon_pixbuf;
35 void setup_new_user_page ();
36 Glib::RefPtr<Gdk::Pixbuf> splash_pixbuf;
37 Gtk::DrawingArea splash_area;
38 bool splash_expose (GdkEventExpose* ev);
40 void setup_first_time_config_page ();
43 void setup_first_page ();
45 /* initial choice page */
47 void setup_initial_choice_page ();
49 Gtk::RadioButton ic_new_session_button;
50 Gtk::RadioButton ic_existing_session_button;
52 /* session page (could be new or existing) */
54 void setup_session_page ();
55 Gtk::VBox session_vbox;
56 Gtk::HBox session_hbox;
60 void setup_existing_session_page ();
62 struct RecentSessionsSorter {
63 bool operator() (std::pair<std::string,std::string> a, std::pair<std::string,std::string> b) const {
64 return cmp_nocase(a.first, b.first) == -1;
68 struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord {
69 RecentSessionModelColumns() {
73 Gtk::TreeModelColumn<Glib::ustring> visible_name;
74 Gtk::TreeModelColumn<Glib::ustring> fullpath;
77 RecentSessionModelColumns recent_session_columns;
78 Gtk::TreeView recent_session_display;
79 Glib::RefPtr<Gtk::TreeStore> recent_session_model;
80 Gtk::ScrolledWindow recent_scroller;
81 void redisplay_recent_sessions ();
82 void recent_session_row_selected ();
86 void setup_new_session_page ();
87 Gtk::Entry new_name_entry;
88 Gtk::FileChooserButton new_folder_chooser;
89 Gtk::FileChooserButton session_template_chooser;
90 Gtk::VBox session_new_vbox;
91 Gtk::CheckButton more_new_session_options_button;
93 void more_new_session_options_button_clicked();
94 void new_name_changed ();
96 /* more options for new sessions */
98 Gtk::VBox more_options_vbox;
99 Gtk::HBox more_options_hbox;
100 void setup_more_options_page ();
104 void setup_final_page ();
105 Gtk::Label final_page;
109 Glib::RefPtr<Pango::Layout> layout;
115 #endif /* __gtk2_ardour_startup_h__ */