Implement Selection Marker class and events
This commit is contained in:
parent
cfba965db3
commit
1ee2675716
|
@ -1728,6 +1728,7 @@ private:
|
|||
|
||||
bool canvas_ruler_event (GdkEvent* event, ArdourCanvas::Item*, ItemType);
|
||||
bool canvas_ruler_bar_event (GdkEvent* event, ArdourCanvas::Item*, ItemType, std::string const&);
|
||||
bool canvas_selection_marker_event (GdkEvent* event, ArdourCanvas::Item*);
|
||||
|
||||
bool canvas_videotl_bar_event (GdkEvent* event, ArdourCanvas::Item*);
|
||||
void update_video_timeline (bool flush = false);
|
||||
|
|
|
@ -1480,6 +1480,7 @@ Editor::which_canvas_cursor(ItemType type) const
|
|||
case MinsecRulerItem:
|
||||
case BBTRulerItem:
|
||||
case SamplesRulerItem:
|
||||
case SelectionMarkerItem:
|
||||
cursor = _cursors->timebar;
|
||||
break;
|
||||
|
||||
|
|
|
@ -978,6 +978,12 @@ Editor::canvas_marker_event (GdkEvent *event, ArdourCanvas::Item* item, ArdourMa
|
|||
return typed_event (item, event, MarkerItem);
|
||||
}
|
||||
|
||||
bool
|
||||
Editor::canvas_selection_marker_event (GdkEvent *event, ArdourCanvas::Item* item)
|
||||
{
|
||||
return typed_event (item, event, SelectionMarkerItem);
|
||||
}
|
||||
|
||||
bool
|
||||
Editor::canvas_videotl_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
|
||||
{
|
||||
|
|
|
@ -66,6 +66,7 @@ enum ItemType {
|
|||
MinsecRulerItem,
|
||||
BBTRulerItem,
|
||||
SamplesRulerItem,
|
||||
SelectionMarkerItem,
|
||||
DropZoneItem,
|
||||
|
||||
/* don't remove this */
|
||||
|
|
|
@ -849,6 +849,7 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
|||
case SamplesRulerItem:
|
||||
case MinsecRulerItem:
|
||||
case MarkerBarItem:
|
||||
case SelectionMarkerItem:
|
||||
if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)
|
||||
&& !ArdourKeyboard::indicates_constraint (event->button.state)) {
|
||||
_drags->set (new CursorDrag (this, *_playhead_cursor, false), event);
|
||||
|
@ -1698,6 +1699,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
|||
case SamplesRulerItem:
|
||||
case MinsecRulerItem:
|
||||
case BBTRulerItem:
|
||||
case SelectionMarkerItem:
|
||||
popup_ruler_menu (where, item_type);
|
||||
break;
|
||||
|
||||
|
@ -1839,6 +1841,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
|||
case SamplesRulerItem:
|
||||
case MinsecRulerItem:
|
||||
case BBTRulerItem:
|
||||
case SelectionMarkerItem:
|
||||
return true;
|
||||
break;
|
||||
|
||||
|
|
|
@ -716,6 +716,17 @@ MetricMarker::MetricMarker (PublicEditor& ed, ArdourCanvas::Item& parent, guint3
|
|||
{
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
SelectionMarker::SelectionMarker (PublicEditor& editor, ArdourCanvas::Item& parent, guint32 rgba, Type type)
|
||||
: ArdourMarker (editor, parent, rgba, "", type, timepos_t(0), false)
|
||||
{
|
||||
assert (type == SelectionStart || type == SelectionEnd);
|
||||
#ifdef CANVAS_DEBUG
|
||||
group->name = string_compose ("Marker::group for %1", type == SelectionStart ? "SelectionStart" : "SelectionEnd");
|
||||
#endif
|
||||
group->Event.connect (sigc::bind (sigc::mem_fun (editor, &PublicEditor::canvas_selection_marker_event), group));
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
|
||||
TempoMarker::TempoMarker (PublicEditor& editor, ArdourCanvas::Item& parent, ArdourCanvas::Item& text_parent, guint32 rgba, const string& text, Temporal::TempoPoint const & temp, samplepos_t sample, uint32_t curve_color)
|
||||
|
|
|
@ -171,6 +171,12 @@ private:
|
|||
ArdourMarker & operator= (ArdourMarker const &);
|
||||
};
|
||||
|
||||
class SelectionMarker : public ArdourMarker
|
||||
{
|
||||
public:
|
||||
SelectionMarker (PublicEditor& ed, ArdourCanvas::Item& parent, guint32 rgba, Type);
|
||||
};
|
||||
|
||||
class MetricMarker : public ArdourMarker
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -469,6 +469,7 @@ public:
|
|||
virtual bool canvas_stream_view_event (GdkEvent* event, ArdourCanvas::Item*, RouteTimeAxisView*) = 0;
|
||||
virtual bool canvas_marker_event (GdkEvent* event, ArdourCanvas::Item*, ArdourMarker*) = 0;
|
||||
virtual bool canvas_videotl_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
|
||||
virtual bool canvas_selection_marker_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
|
||||
virtual bool canvas_tempo_marker_event (GdkEvent* event, ArdourCanvas::Item*, TempoMarker*) = 0;
|
||||
virtual bool canvas_tempo_curve_event (GdkEvent* event, ArdourCanvas::Item*, TempoCurve*) = 0;
|
||||
virtual bool canvas_meter_marker_event (GdkEvent* event, ArdourCanvas::Item*, MeterMarker*) = 0;
|
||||
|
|
Loading…
Reference in New Issue