#include <libgnomecanvasmm/canvas.h>
#include <pbd/xml++.h>
+#include <gtkmm/box.h>
+#include <gtkmm/frame.h>
+#include <gtkmm/label.h>
+#include <gtkmm/table.h>
+#include <gtkmm/fixed.h>
+#include <gtkmm/drawingarea.h>
+#include <gtkmm/eventbox.h>
+#include <gtkmm/menu.h>
+#include <gtkmm/menuitem.h>
+#include <gtkmm/button.h>
+#include <gtkmm/togglebutton.h>
+#include <gtkmm/treeview.h>
+#include <gtkmm/menubar.h>
+#include <gtkmm/adjustment.h>
#include <gtkmm2ext/gtk_ui.h>
#include <gtkmm2ext/pix.h>
#include <gtkmm2ext/click_box.h>
#include "audio_clock.h"
#include "ardour_dialog.h"
#include "editing.h"
+#include "glade_factory.h"
class AudioClock;
class PublicEditor;
class Mixer_UI;
class ConnectionEditor;
class RouteParams_UI;
-class SoundFileSelector;
+class SoundFileChooser;
class About;
class AddRouteDialog;
class NewSessionDialog;
_will_create_new_session_automatically = yn;
}
- void new_session (bool startup = false, std::string path = string());
+ void new_session(bool startup = false, std::string path = string());
gint cmdline_new_session (std::string path);
int unload_session ();
void close_session() { unload_session(); }
PublicEditor& the_editor(){return *editor;}
Mixer_UI* the_mixer() { return mixer; }
- void allow_focus (bool yn);
-
- static gint generic_focus_in_event (GdkEventFocus *);
- static gint generic_focus_out_event (GdkEventFocus *);
-
void toggle_location_window ();
void toggle_big_clock_window ();
void toggle_connection_editor ();
void toggle_route_params_window ();
void toggle_tempo_window ();
- void toggle_sfdb_window ();
-
- SoundFileSelector& get_sfdb_window();
gint32 select_diskstream (GdkEventButton *ev);
protected:
friend class PublicEditor;
- void toggle_metering ();
void toggle_clocking ();
void toggle_auto_play ();
void toggle_auto_input ();
Gtk::Table transport_table;
Gtk::Table option_table;
- static SoundFileSelector* sfdb_window;
-
int setup_windows ();
void setup_session_menu ();
void setup_transport ();
void start_clocking ();
void stop_clocking ();
- class BigClockWindow : public ArdourDialog
- {
- public:
- BigClockWindow () : ArdourDialog ("big clock window") {};
- };
-
- AudioClock big_clock;
- Gtk::Frame big_clock_frame;
- BigClockWindow* big_clock_window;
-
- void big_clock_size_event (GtkAllocation *alloc);
- void big_clock_realize ();
+ void manage_window (Gtk::Window&);
+
+ AudioClock big_clock;
+ Gtk::Frame big_clock_frame;
+ Gtk::Window* big_clock_window;
/* Transport Control */
void build_menu_bar ();
void pack_toplevel_controls();
- /* handles on the menu bar items that need to
- be sensitive to whether or not we have
- a session loaded.
- */
-
- Gtk::MenuItem *add_track_item;
- Gtk::MenuItem *save_item;
- Gtk::MenuItem *snapshot_item;
- Gtk::MenuItem *save_as_item;
- Gtk::MenuItem *save_template_item;
- Gtk::MenuItem *export_item;
- Gtk::MenuItem *close_item;
-
- Gtk::CheckMenuItem *meter_bridge_dialog_check;
- Gtk::CheckMenuItem *connection_editor_check;
- Gtk::CheckMenuItem *route_params_check;
- Gtk::CheckMenuItem *locations_dialog_check;
- Gtk::CheckMenuItem *big_clock_check;
- Gtk::CheckMenuItem *tempo_editor_check;
- Gtk::CheckMenuItem *sfdb_check;
- Gtk::CheckMenuItem *options_window_check;
-
- /* <CMT Additions> */
- Gtk::MenuItem *image_compositor_item ;
- /* </CMT Additions> */
-
-
Gtk::Label wall_clock_label;
Gtk::EventBox wall_clock_box;
gint update_wall_clock ();
bool _will_create_new_session_automatically;
- NewSessionDialog* new_session_window;
- string template_name;
-
- void new_session_ok_clicked ();
- void new_session_template_choice (Gtk::TreeView&, Glib::RefPtr<Gtk::TreeSelection>);
- void hide_dialog (ArdourDialog *dialog);
-
- void fs_cancel_clicked (Gtk::FileSelection*);
- gint fs_delete_event (GdkEventAny*, Gtk::FileSelection*);
-
+ GladeRef m_new_session_dialog_ref;
+ NewSessionDialog* m_new_session_dialog;
+
void open_session ();
void open_recent_session ();
void open_ok_clicked ();
PublicEditor *editor;
int create_editor ();
- MeterBridge *meter_bridge;
- int create_meter_bridge ();
-
RouteParams_UI *route_params;
int create_route_params ();
LocationUI *location_ui;
int create_location_ui ();
- void meter_bridge_hiding ();
void location_ui_hiding ();
void big_clock_hiding ();
void route_params_hiding ();
void connection_editor_hiding ();
- void sfdb_hiding ();
void option_hiding ();
/* Various options */
AddRouteDialog *add_route_dialog;
void add_route_dialog_done (int status);
+
+ /* SoundFile Browser */
+ void toggle_sound_file_browser ();
/* Keyboard Handling */
/* Keymap handling */
void install_keybindings ();
+ Glib::RefPtr<Gtk::ActionGroup> get_common_actions();
+ void install_actions ();
void test_binding_action (const char *);
void start_keyboard_prefix();
int make_session_clean ();
bool filter_ardour_session_dirs (const Gtk::FileFilter::Info&);
- Glib::RefPtr<Gtk::UIManager> ui_manager;
+ Glib::RefPtr<Gtk::ActionGroup> common_actions;
};
#endif /* __ardour_gui_h__ */