use canvas rulers now instead of gtk widgets
Some bugs that exist in master are still present.
This commit is contained in:
parent
143f9509ea
commit
b73352880e
@ -469,8 +469,8 @@ Editor::Editor ()
|
|||||||
transport_mark_label.hide();
|
transport_mark_label.hide();
|
||||||
transport_mark_label.set_no_show_all();
|
transport_mark_label.set_no_show_all();
|
||||||
|
|
||||||
initialize_rulers ();
|
|
||||||
initialize_canvas ();
|
initialize_canvas ();
|
||||||
|
initialize_rulers ();
|
||||||
|
|
||||||
_summary = new EditorSummary (this);
|
_summary = new EditorSummary (this);
|
||||||
|
|
||||||
@ -512,36 +512,22 @@ Editor::Editor ()
|
|||||||
// CAIROCANVAS
|
// CAIROCANVAS
|
||||||
time_pad->show();
|
time_pad->show();
|
||||||
|
|
||||||
time_canvas_vbox.set_size_request (-1, (int)(timebar_height * visible_timebars) + 2);
|
|
||||||
time_canvas_vbox.set_size_request (-1, -1);
|
|
||||||
|
|
||||||
ruler_label_event_box.add (ruler_label_vbox);
|
|
||||||
ruler_label_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
|
|
||||||
ruler_label_event_box.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::ruler_label_button_release));
|
|
||||||
|
|
||||||
time_bars_event_box.add (time_bars_vbox);
|
|
||||||
time_bars_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
|
|
||||||
time_bars_event_box.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::ruler_label_button_release));
|
|
||||||
|
|
||||||
time_canvas_event_box.add (time_canvas_vbox);
|
|
||||||
time_canvas_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
|
|
||||||
|
|
||||||
edit_packer.set_col_spacings (0);
|
edit_packer.set_col_spacings (0);
|
||||||
edit_packer.set_row_spacings (0);
|
edit_packer.set_row_spacings (0);
|
||||||
edit_packer.set_homogeneous (false);
|
edit_packer.set_homogeneous (false);
|
||||||
edit_packer.set_border_width (0);
|
edit_packer.set_border_width (0);
|
||||||
edit_packer.set_name ("EditorWindow");
|
edit_packer.set_name ("EditorWindow");
|
||||||
|
|
||||||
/* labels for the rulers */
|
time_bars_event_box.add (time_bars_vbox);
|
||||||
edit_packer.attach (ruler_label_event_box, 1, 2, 0, 1, FILL, SHRINK, 0, 0);
|
time_bars_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
|
||||||
/* labels for the marker "tracks" (time bars) */
|
time_bars_event_box.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::ruler_label_button_release));
|
||||||
edit_packer.attach (time_bars_event_box, 1, 2, 1, 2, FILL, SHRINK, 0, 0);
|
|
||||||
/* the rulers */
|
/* labels for the time bars */
|
||||||
edit_packer.attach (time_canvas_event_box, 2, 3, 0, 1, FILL|EXPAND, FILL, 0, 0);
|
edit_packer.attach (time_bars_event_box, 0, 1, 0, 1, FILL, SHRINK, 0, 0);
|
||||||
/* track controls */
|
/* track controls */
|
||||||
edit_packer.attach (controls_layout, 0, 2, 2, 3, FILL, FILL|EXPAND, 0, 0);
|
edit_packer.attach (controls_layout, 0, 1, 1, 2, FILL, FILL|EXPAND, 0, 0);
|
||||||
/* track canvas */
|
/* canvas */
|
||||||
edit_packer.attach (*_track_canvas_viewport, 2, 3, 1, 3, FILL|EXPAND, FILL|EXPAND, 0, 0);
|
edit_packer.attach (*_track_canvas_viewport, 1, 2, 0, 2, FILL|EXPAND, FILL|EXPAND, 0, 0);
|
||||||
|
|
||||||
bottom_hbox.set_border_width (2);
|
bottom_hbox.set_border_width (2);
|
||||||
bottom_hbox.set_spacing (3);
|
bottom_hbox.set_spacing (3);
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
#include "ardour/types.h"
|
#include "ardour/types.h"
|
||||||
|
|
||||||
#include "canvas/fwd.h"
|
#include "canvas/fwd.h"
|
||||||
|
#include "canvas/ruler.h"
|
||||||
|
|
||||||
#include "gtk-custom-ruler.h"
|
#include "gtk-custom-ruler.h"
|
||||||
#include "ardour_button.h"
|
#include "ardour_button.h"
|
||||||
@ -455,6 +456,13 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||||||
|
|
||||||
void override_visible_track_count ();
|
void override_visible_track_count ();
|
||||||
|
|
||||||
|
/* Ruler metrics methods */
|
||||||
|
|
||||||
|
void metric_get_timecode (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
|
||||||
|
void metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
|
||||||
|
void metric_get_samples (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
|
||||||
|
void metric_get_minsec (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void map_transport_state ();
|
void map_transport_state ();
|
||||||
void map_position_change (framepos_t);
|
void map_position_change (framepos_t);
|
||||||
@ -706,9 +714,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||||||
|
|
||||||
bool track_canvas_motion (GdkEvent*);
|
bool track_canvas_motion (GdkEvent*);
|
||||||
|
|
||||||
Gtk::EventBox time_canvas_event_box;
|
|
||||||
Gtk::EventBox time_bars_event_box;
|
Gtk::EventBox time_bars_event_box;
|
||||||
Gtk::EventBox ruler_label_event_box;
|
Gtk::VBox time_bars_vbox;
|
||||||
|
|
||||||
ArdourCanvas::Pixbuf *logo_item;
|
ArdourCanvas::Pixbuf *logo_item;
|
||||||
#if 0
|
#if 0
|
||||||
@ -771,7 +778,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||||||
ruler_video_timeline = 10,
|
ruler_video_timeline = 10,
|
||||||
};
|
};
|
||||||
|
|
||||||
static GtkCustomMetric ruler_metrics[4];
|
|
||||||
Glib::RefPtr<Gtk::ToggleAction> ruler_timecode_action;
|
Glib::RefPtr<Gtk::ToggleAction> ruler_timecode_action;
|
||||||
Glib::RefPtr<Gtk::ToggleAction> ruler_bbt_action;
|
Glib::RefPtr<Gtk::ToggleAction> ruler_bbt_action;
|
||||||
Glib::RefPtr<Gtk::ToggleAction> ruler_samples_action;
|
Glib::RefPtr<Gtk::ToggleAction> ruler_samples_action;
|
||||||
@ -806,11 +812,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||||||
void store_ruler_visibility ();
|
void store_ruler_visibility ();
|
||||||
void restore_ruler_visibility ();
|
void restore_ruler_visibility ();
|
||||||
|
|
||||||
static gint _metric_get_timecode (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
|
||||||
static gint _metric_get_bbt (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
|
||||||
static gint _metric_get_samples (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
|
||||||
static gint _metric_get_minsec (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
|
||||||
|
|
||||||
enum MinsecRulerScale {
|
enum MinsecRulerScale {
|
||||||
minsec_show_seconds,
|
minsec_show_seconds,
|
||||||
minsec_show_minutes,
|
minsec_show_minutes,
|
||||||
@ -864,21 +865,10 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||||||
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin,
|
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin,
|
||||||
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end);
|
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end);
|
||||||
|
|
||||||
gint metric_get_timecode (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
ArdourCanvas::Ruler* timecode_ruler;
|
||||||
gint metric_get_bbt (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
ArdourCanvas::Ruler* bbt_ruler;
|
||||||
gint metric_get_samples (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
ArdourCanvas::Ruler* samples_ruler;
|
||||||
gint metric_get_minsec (GtkCustomRulerMark **, gdouble, gdouble, gint);
|
ArdourCanvas::Ruler* minsec_ruler;
|
||||||
|
|
||||||
Gtk::Widget *_ruler_separator;
|
|
||||||
GtkWidget *_timecode_ruler;
|
|
||||||
GtkWidget *_bbt_ruler;
|
|
||||||
GtkWidget *_samples_ruler;
|
|
||||||
GtkWidget *_minsec_ruler;
|
|
||||||
Gtk::Widget *timecode_ruler;
|
|
||||||
Gtk::Widget *bbt_ruler;
|
|
||||||
Gtk::Widget *samples_ruler;
|
|
||||||
Gtk::Widget *minsec_ruler;
|
|
||||||
static Editor *ruler_editor;
|
|
||||||
|
|
||||||
static const double timebar_height;
|
static const double timebar_height;
|
||||||
guint32 visible_timebars;
|
guint32 visible_timebars;
|
||||||
@ -926,8 +916,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||||||
void export_video (bool range = false);
|
void export_video (bool range = false);
|
||||||
void toggle_region_video_lock ();
|
void toggle_region_video_lock ();
|
||||||
|
|
||||||
Gtk::VBox time_bars_vbox;
|
|
||||||
|
|
||||||
friend class EditorCursor;
|
friend class EditorCursor;
|
||||||
|
|
||||||
EditorCursor* playhead_cursor;
|
EditorCursor* playhead_cursor;
|
||||||
@ -1000,9 +988,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||||||
Gtk::Menu *edit_controls_left_menu;
|
Gtk::Menu *edit_controls_left_menu;
|
||||||
Gtk::Menu *edit_controls_right_menu;
|
Gtk::Menu *edit_controls_right_menu;
|
||||||
|
|
||||||
Gtk::VBox ruler_label_vbox;
|
|
||||||
Gtk::VBox track_canvas_vbox;
|
Gtk::VBox track_canvas_vbox;
|
||||||
Gtk::VBox time_canvas_vbox;
|
|
||||||
Gtk::VBox edit_controls_vbox;
|
Gtk::VBox edit_controls_vbox;
|
||||||
Gtk::HBox edit_controls_hbox;
|
Gtk::HBox edit_controls_hbox;
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user