X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_editor.h;h=6579182282b7f6a2f8b4ed42f3d95698f39a7a2a;hb=159b8face74f8ba8da5e1e4225aed0c384ac9dc2;hp=176ced0792a874666a201ecc3c1c04de66f75b34;hpb=1bc8bdcab7365df58396a5011cdc899e8bd318e1;p=ardour.git diff --git a/gtk2_ardour/region_editor.h b/gtk2_ardour/region_editor.h index 176ced0792..6579182282 100644 --- a/gtk2_ardour/region_editor.h +++ b/gtk2_ardour/region_editor.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2001 Paul Davis + Copyright (C) 2001 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 @@ -15,29 +15,107 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: region_editor.h 231 2006-01-03 14:16:27Z karstenweise $ */ #ifndef __gtk_ardour_region_edit_h__ #define __gtk_ardour_region_edit_h__ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "pbd/signals.h" + +#include "audio_clock.h" #include "ardour_dialog.h" +#include "region_editor.h" + +namespace ARDOUR { + class Region; + class Session; +} -namespace ARDOUR { class Session; } +class ClockGroup; -/** Just a useless stub for now... */ class RegionEditor : public ArdourDialog { public: - RegionEditor(ARDOUR::Session& s) - : ArdourDialog ("region editor") - , _session(s) - {} - - virtual ~RegionEditor () {} + RegionEditor (ARDOUR::Session*, boost::shared_ptr); + virtual ~RegionEditor (); protected: - ARDOUR::Session& _session; + virtual void region_changed (const PBD::PropertyChange&); + + Gtk::Table _table; + int _table_row; + + private: + boost::shared_ptr _region; + + void connect_editor_events (); + + Gtk::Label name_label; + Gtk::Entry name_entry; + Gtk::ToggleButton audition_button; + + Gtk::Label position_label; + Gtk::Label end_label; + Gtk::Label length_label; + Gtk::Label sync_relative_label; + Gtk::Label sync_absolute_label; + Gtk::Label start_label; + + ClockGroup* _clock_group; + + AudioClock position_clock; + AudioClock end_clock; + AudioClock length_clock; + AudioClock sync_offset_relative_clock; ///< sync offset relative to the start of the region + AudioClock sync_offset_absolute_clock; ///< sync offset relative to the start of the timeline + AudioClock start_clock; + + PBD::ScopedConnection state_connection; + PBD::ScopedConnection audition_connection; + + void bounds_changed (const PBD::PropertyChange&); + void name_changed (); + + void audition_state_changed (bool); + + void activation (); + + void name_entry_changed (); + void position_clock_changed (); + void end_clock_changed (); + void length_clock_changed (); + void sync_offset_absolute_clock_changed (); + void sync_offset_relative_clock_changed (); + + void audition_button_toggled (); + + gint bpressed (GdkEventButton* ev, Gtk::SpinButton* but, void (RegionEditor::*pmf)()); + gint breleased (GdkEventButton* ev, Gtk::SpinButton* but, void (RegionEditor::*pmf)()); + + bool on_delete_event (GdkEventAny *); + void handle_response (int); + + bool spin_arrow_grab; + + Gtk::Label _sources_label; + Gtk::ListViewText _sources; }; #endif /* __gtk_ardour_region_edit_h__ */