mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-21 14:16:31 +01:00
Implement Selection Marker class and events
This commit is contained in:
parent
cfba965db3
commit
1ee2675716
8 changed files with 30 additions and 0 deletions
|
|
@ -1728,6 +1728,7 @@ private:
|
||||||
|
|
||||||
bool canvas_ruler_event (GdkEvent* event, ArdourCanvas::Item*, ItemType);
|
bool canvas_ruler_event (GdkEvent* event, ArdourCanvas::Item*, ItemType);
|
||||||
bool canvas_ruler_bar_event (GdkEvent* event, ArdourCanvas::Item*, ItemType, std::string const&);
|
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*);
|
bool canvas_videotl_bar_event (GdkEvent* event, ArdourCanvas::Item*);
|
||||||
void update_video_timeline (bool flush = false);
|
void update_video_timeline (bool flush = false);
|
||||||
|
|
|
||||||
|
|
@ -1480,6 +1480,7 @@ Editor::which_canvas_cursor(ItemType type) const
|
||||||
case MinsecRulerItem:
|
case MinsecRulerItem:
|
||||||
case BBTRulerItem:
|
case BBTRulerItem:
|
||||||
case SamplesRulerItem:
|
case SamplesRulerItem:
|
||||||
|
case SelectionMarkerItem:
|
||||||
cursor = _cursors->timebar;
|
cursor = _cursors->timebar;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -978,6 +978,12 @@ Editor::canvas_marker_event (GdkEvent *event, ArdourCanvas::Item* item, ArdourMa
|
||||||
return typed_event (item, event, MarkerItem);
|
return typed_event (item, event, MarkerItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Editor::canvas_selection_marker_event (GdkEvent *event, ArdourCanvas::Item* item)
|
||||||
|
{
|
||||||
|
return typed_event (item, event, SelectionMarkerItem);
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Editor::canvas_videotl_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
|
Editor::canvas_videotl_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ enum ItemType {
|
||||||
MinsecRulerItem,
|
MinsecRulerItem,
|
||||||
BBTRulerItem,
|
BBTRulerItem,
|
||||||
SamplesRulerItem,
|
SamplesRulerItem,
|
||||||
|
SelectionMarkerItem,
|
||||||
DropZoneItem,
|
DropZoneItem,
|
||||||
|
|
||||||
/* don't remove this */
|
/* don't remove this */
|
||||||
|
|
|
||||||
|
|
@ -849,6 +849,7 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
case SamplesRulerItem:
|
case SamplesRulerItem:
|
||||||
case MinsecRulerItem:
|
case MinsecRulerItem:
|
||||||
case MarkerBarItem:
|
case MarkerBarItem:
|
||||||
|
case SelectionMarkerItem:
|
||||||
if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)
|
if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)
|
||||||
&& !ArdourKeyboard::indicates_constraint (event->button.state)) {
|
&& !ArdourKeyboard::indicates_constraint (event->button.state)) {
|
||||||
_drags->set (new CursorDrag (this, *_playhead_cursor, false), event);
|
_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 SamplesRulerItem:
|
||||||
case MinsecRulerItem:
|
case MinsecRulerItem:
|
||||||
case BBTRulerItem:
|
case BBTRulerItem:
|
||||||
|
case SelectionMarkerItem:
|
||||||
popup_ruler_menu (where, item_type);
|
popup_ruler_menu (where, item_type);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1839,6 +1841,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
case SamplesRulerItem:
|
case SamplesRulerItem:
|
||||||
case MinsecRulerItem:
|
case MinsecRulerItem:
|
||||||
case BBTRulerItem:
|
case BBTRulerItem:
|
||||||
|
case SelectionMarkerItem:
|
||||||
return true;
|
return true;
|
||||||
break;
|
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)
|
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 &);
|
ArdourMarker & operator= (ArdourMarker const &);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class SelectionMarker : public ArdourMarker
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SelectionMarker (PublicEditor& ed, ArdourCanvas::Item& parent, guint32 rgba, Type);
|
||||||
|
};
|
||||||
|
|
||||||
class MetricMarker : public ArdourMarker
|
class MetricMarker : public ArdourMarker
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -469,6 +469,7 @@ public:
|
||||||
virtual bool canvas_stream_view_event (GdkEvent* event, ArdourCanvas::Item*, RouteTimeAxisView*) = 0;
|
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_marker_event (GdkEvent* event, ArdourCanvas::Item*, ArdourMarker*) = 0;
|
||||||
virtual bool canvas_videotl_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 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_marker_event (GdkEvent* event, ArdourCanvas::Item*, TempoMarker*) = 0;
|
||||||
virtual bool canvas_tempo_curve_event (GdkEvent* event, ArdourCanvas::Item*, TempoCurve*) = 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;
|
virtual bool canvas_meter_marker_event (GdkEvent* event, ArdourCanvas::Item*, MeterMarker*) = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue