X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Flocation_ui.h;h=cdbc952e6c11821cbf6bacb727d0a112b3367363;hb=aa349d3f8c112b407d19bf09fb50a20940331295;hp=bf4474e669bdd79b67200ef4f26cb4e38cc99f66;hpb=b3ddcbcee491a48091f9b4b927c953cbcd0e8963;p=ardour.git diff --git a/gtk2_ardour/location_ui.h b/gtk2_ardour/location_ui.h index bf4474e669..cdbc952e6c 100644 --- a/gtk2_ardour/location_ui.h +++ b/gtk2_ardour/location_ui.h @@ -26,7 +26,6 @@ #include #include #include -#include #include #include "pbd/signals.h" @@ -34,11 +33,13 @@ #include "ardour/location.h" #include "ardour/session_handle.h" -#include "ardour_dialog.h" +#include + +#include "ardour_button.h" +#include "ardour_window.h" #include "audio_clock.h" namespace ARDOUR { - class LocationStack; class Location; } @@ -58,7 +59,8 @@ class LocationEditRow : public Gtk::HBox, public ARDOUR::SessionHandlePtr void set_number (int); void focus_name(); void set_clock_group (ClockGroup&); - + void unset_clock_group () { _clock_group = 0; } + sigc::signal remove_requested; sigc::signal redraw_ranges; @@ -79,12 +81,14 @@ class LocationEditRow : public Gtk::HBox, public ARDOUR::SessionHandlePtr Gtk::Label number_label; Gtk::HBox start_hbox; - Gtk::Button start_go_button; AudioClock start_clock; + ArdourButton start_to_playhead_button; + ArdourButton locate_to_start_button; Gtk::HBox end_hbox; - Gtk::Button end_go_button; AudioClock end_clock; + ArdourButton end_to_playhead_button; + ArdourButton locate_to_end_button; AudioClock length_clock; Gtk::CheckButton cd_check_button; @@ -92,7 +96,7 @@ class LocationEditRow : public Gtk::HBox, public ARDOUR::SessionHandlePtr Gtk::CheckButton lock_check_button; Gtk::CheckButton glue_check_button; - Gtk::Button remove_button; + ArdourButton remove_button; Gtk::HBox cd_track_details_hbox; Gtk::Entry isrc_entry; @@ -104,7 +108,9 @@ class LocationEditRow : public Gtk::HBox, public ARDOUR::SessionHandlePtr Gtk::Label composer_label; Gtk::Entry composer_entry; Gtk::CheckButton scms_check_button; + Gtk::Label scms_label; Gtk::CheckButton preemph_check_button; + Gtk::Label preemph_label; ClockGroup* _clock_group; guint32 i_am_the_modifier; @@ -115,11 +121,11 @@ class LocationEditRow : public Gtk::HBox, public ARDOUR::SessionHandlePtr void performer_entry_changed (); void composer_entry_changed (); - void set_button_pressed (LocationPart part); - void go_button_pressed (LocationPart part); + void to_playhead_button_pressed (LocationPart part); + void locate_button_pressed (LocationPart part); void clock_changed (LocationPart part); - void change_aborted (LocationPart part); + bool locate_to_clock (GdkEventButton*, AudioClock*); void cd_toggled (); void hide_toggled (); @@ -130,15 +136,16 @@ class LocationEditRow : public Gtk::HBox, public ARDOUR::SessionHandlePtr void scms_toggled (); void preemph_toggled (); - void end_changed (ARDOUR::Location *); - void start_changed (ARDOUR::Location *); - void name_changed (ARDOUR::Location *); - void location_changed (ARDOUR::Location *); - void flags_changed (ARDOUR::Location *, void *src); - void lock_changed (ARDOUR::Location *); - void position_lock_style_changed (ARDOUR::Location *); + void end_changed (); + void start_changed (); + void name_changed (); + void location_changed (); + void flags_changed (); + void lock_changed (); + void position_lock_style_changed (); - void set_clock_sensitivity (); + void set_clock_editable_status (); + void show_cd_track_details (); PBD::ScopedConnectionList connections; }; @@ -148,7 +155,7 @@ class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr public: LocationUI (); ~LocationUI (); - + void set_session (ARDOUR::Session *); void set_clock_mode (AudioClock::Mode); @@ -157,8 +164,13 @@ class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr void refresh_location_list (); + XMLNode & get_state () const; + private: - ARDOUR::LocationStack* locations; + /** set to the location that has just been created with the LocationUI `add' button + (if Config->get_name_new_markers() is true); if it is non-0, the name entry of + the location is given the focus by location_added(). + */ ARDOUR::Location *newest_location; void session_going_away (); @@ -167,7 +179,7 @@ class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr LocationEditRow punch_edit_row; Gtk::VBox loop_punch_box; - Gtk::VPaned loc_range_panes; + Gtkmm2ext::VPane loc_range_panes; Gtk::VBox loc_frame_box; Gtk::Button add_location_button; @@ -194,19 +206,19 @@ class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr void location_removed (ARDOUR::Location *); void location_added (ARDOUR::Location *); - void locations_changed (ARDOUR::Locations::Change); - void map_locations (ARDOUR::Locations::LocationList&); + void map_locations (const ARDOUR::Locations::LocationList&); ClockGroup* _clock_group; + AudioClock::Mode clock_mode_from_session_instant_xml () const; }; -class LocationUIWindow : public ArdourDialog +class LocationUIWindow : public ArdourWindow { public: LocationUIWindow (); ~LocationUIWindow (); - void on_show(); + void on_map (); void set_session (ARDOUR::Session *); LocationUI& ui() { return _ui; }