Blender V4.3
sequencer_select.cc File Reference
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_math_geom.h"
#include "BLI_math_vector.h"
#include "BLI_math_vector_types.hh"
#include "BLI_utildefines.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "BKE_context.hh"
#include "BKE_report.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "RNA_define.hh"
#include "SEQ_channels.hh"
#include "SEQ_connect.hh"
#include "SEQ_effects.hh"
#include "SEQ_iterator.hh"
#include "SEQ_relations.hh"
#include "SEQ_retiming.hh"
#include "SEQ_select.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "SEQ_transform.hh"
#include "ED_outliner.hh"
#include "ED_screen.hh"
#include "ED_select_utils.hh"
#include "ED_sequencer.hh"
#include "UI_view2d.hh"
#include "sequencer_intern.hh"

Go to the source code of this file.

Classes

class  MouseCoords
 
struct  SeqSelect_Link
 

Functions

Selection Utilities
blender::VectorSet< Sequence * > all_strips_from_context (bContext *C)
 
blender::VectorSet< Sequence * > ED_sequencer_selected_strips_from_context (bContext *C)
 
static void select_surrounding_handles (Scene *scene, Sequence *test)
 
static void select_active_side (const Scene *scene, ListBase *seqbase, int sel_side, int channel, int frame)
 
static void select_active_side_range (const Scene *scene, ListBase *seqbase, const int sel_side, const int frame_ranges[SEQ_MAX_CHANNELS], const int frame_ignore)
 
static void select_linked_time_seq (const Scene *scene, const Sequence *seq_source, const eSeqHandle handle_clicked)
 
void ED_sequencer_select_sequence_single (Scene *scene, Sequence *seq, bool deselect_all)
 
void seq_rectf (const Scene *scene, const Sequence *seq, rctf *r_rect)
 
Sequencefind_neighboring_sequence (Scene *scene, Sequence *test, int lr, int sel)
 
Sequencefind_nearest_seq (const Scene *scene, const View2D *v2d, const int mval[2], eSeqHandle *r_hand)
 
void recurs_sel_seq (Sequence *seq_meta)
 
static bool seq_point_image_isect (const Scene *scene, const Sequence *seq, float point[2])
 
static void sequencer_select_do_updates (bContext *C, Scene *scene)
 
(De)select All Operator
static int sequencer_de_select_all_exec (bContext *C, wmOperator *op)
 
void SEQUENCER_OT_select_all (wmOperatorType *ot)
 
Select Inverse Operator
static int sequencer_select_inverse_exec (bContext *C, wmOperator *)
 
void SEQUENCER_OT_select_inverse (wmOperatorType *ot)
 
Select Operator
static void sequencer_select_set_active (Scene *scene, Sequence *seq)
 
static void sequencer_select_side_of_frame (const bContext *C, const View2D *v2d, const int mval[2], Scene *scene)
 
static void sequencer_select_linked_handle (const bContext *C, Sequence *seq, const eSeqHandle handle_clicked)
 
static int seq_sort_for_depth_select (const void *a, const void *b)
 
static int seq_sort_for_center_select (const void *a, const void *b)
 
static Sequenceseq_select_seq_from_preview (const bContext *C, const int mval[2], const bool toggle, const bool extend, const bool center)
 
bool ED_sequencer_handle_is_selected (const Sequence *seq, eSeqHandle handle)
 
static bool element_already_selected (const StripSelection &selection)
 
static void sequencer_select_connected_strips (const StripSelection &selection)
 
static void sequencer_select_strip_impl (const Editing *ed, Sequence *seq, const eSeqHandle handle_clicked, const bool extend, const bool deselect, const bool toggle)
 
static void select_linked_time (const Scene *scene, const StripSelection &selection, const bool extend, const bool deselect, const bool toggle)
 
static float clickable_handle_size_get (const Scene *scene, const Sequence *seq, const View2D *v2d)
 
bool ED_sequencer_can_select_handle (const Scene *scene, const Sequence *seq, const View2D *v2d)
 
static void strip_clickable_areas_get (const Scene *scene, const Sequence *seq, const View2D *v2d, rctf *r_body, rctf *r_left_handle, rctf *r_right_handle)
 
static rctf strip_clickable_area_get (const Scene *scene, const View2D *v2d, const Sequence *seq)
 
static float strip_to_frame_distance (const Scene *scene, const View2D *v2d, const Sequence *seq, float timeline_frame)
 
static blender::Vector< Sequence * > mouseover_strips_sorted_get (const Scene *scene, const View2D *v2d, float mouse_co[2])
 
static bool strips_are_adjacent (const Scene *scene, const Sequence *seq1, const Sequence *seq2)
 
static eSeqHandle get_strip_handle_under_cursor (const Scene *scene, const Sequence *seq, const View2D *v2d, float mouse_co[2])
 
static bool is_mouse_over_both_handles_of_adjacent_strips (const Scene *scene, blender::Vector< Sequence * > strips, const View2D *v2d, float mouse_co[2])
 
StripSelection ED_sequencer_pick_strip_and_handle (const Scene *scene, const View2D *v2d, float mouse_co[2])
 
int sequencer_select_exec (bContext *C, wmOperator *op)
 
static int sequencer_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_select (wmOperatorType *ot)
 
Select Handle Operator
static int sequencer_select_handle_exec (bContext *C, wmOperator *op)
 
static int sequencer_select_handle_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_select_handle (wmOperatorType *ot)
 
Select More Operator
static bool select_linked_internal (Scene *scene)
 
static bool select_more_less_seq__internal (Scene *scene, bool select_more)
 
static int sequencer_select_more_exec (bContext *C, wmOperator *)
 
void SEQUENCER_OT_select_more (wmOperatorType *ot)
 
Select Less Operator
static int sequencer_select_less_exec (bContext *C, wmOperator *)
 
void SEQUENCER_OT_select_less (wmOperatorType *ot)
 
Select Pick Linked Operator
static int sequencer_select_linked_pick_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_select_linked_pick (wmOperatorType *ot)
 
Select Linked Operator
static int sequencer_select_linked_exec (bContext *C, wmOperator *)
 
void SEQUENCER_OT_select_linked (wmOperatorType *ot)
 
Select Side of Frame Operator
static int sequencer_select_side_of_frame_exec (bContext *C, wmOperator *op)
 
void SEQUENCER_OT_select_side_of_frame (wmOperatorType *ot)
 
Select Side Operator
static int sequencer_select_side_exec (bContext *C, wmOperator *op)
 
void SEQUENCER_OT_select_side (wmOperatorType *ot)
 
Box Select Operator
static bool seq_box_select_rect_image_isect (const Scene *scene, const Sequence *seq, const rctf *rect)
 
static void seq_box_select_seq_from_preview (const bContext *C, const rctf *rect, const eSelectOp mode)
 
static int sequencer_box_select_exec (bContext *C, wmOperator *op)
 
static int sequencer_box_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_select_box (wmOperatorType *ot)
 

Select Grouped Operator

#define SEQ_IS_SOUND(_seq)   ((_seq->type & SEQ_TYPE_SOUND_RAM) && !(_seq->type & SEQ_TYPE_EFFECT))
 
#define SEQ_IS_EFFECT(_seq)   ((_seq->type & SEQ_TYPE_EFFECT) != 0)
 
#define SEQ_USE_DATA(_seq)    (ELEM(_seq->type, SEQ_TYPE_SCENE, SEQ_TYPE_MOVIECLIP, SEQ_TYPE_MASK) || SEQ_HAS_PATH(_seq))
 
#define SEQ_CHANNEL_CHECK(_seq, _chan)   ELEM((_chan), 0, (_seq)->machine)
 
enum  {
  SEQ_SELECT_GROUP_TYPE , SEQ_SELECT_GROUP_TYPE_BASIC , SEQ_SELECT_GROUP_TYPE_EFFECT , SEQ_SELECT_GROUP_DATA ,
  SEQ_SELECT_GROUP_EFFECT , SEQ_SELECT_GROUP_EFFECT_LINK , SEQ_SELECT_GROUP_OVERLAP
}
 
static const EnumPropertyItem sequencer_prop_select_grouped_types []
 
static bool select_grouped_type (blender::Span< Sequence * > strips, ListBase *, Sequence *actseq, const int channel)
 
static bool select_grouped_type_basic (blender::Span< Sequence * > strips, ListBase *, Sequence *actseq, const int channel)
 
static bool select_grouped_type_effect (blender::Span< Sequence * > strips, ListBase *, Sequence *actseq, const int channel)
 
static bool select_grouped_data (blender::Span< Sequence * > strips, ListBase *, Sequence *actseq, const int channel)
 
static bool select_grouped_effect (blender::Span< Sequence * > strips, ListBase *, Sequence *actseq, const int channel)
 
static bool select_grouped_time_overlap (const Scene *scene, blender::Span< Sequence * > strips, ListBase *, Sequence *actseq)
 
static void query_lower_channel_strips (const Scene *scene, Sequence *seq_reference, ListBase *seqbase, blender::VectorSet< Sequence * > &strips)
 
static bool select_grouped_effect_link (const Scene *scene, blender::VectorSet< Sequence * > strips, ListBase *seqbase, Sequence *, const int)
 
static int sequencer_select_grouped_exec (bContext *C, wmOperator *op)
 
void SEQUENCER_OT_select_grouped (wmOperatorType *ot)
 

Select Handles Operator

enum  {
  SEQ_SELECT_HANDLES_SIDE_LEFT , SEQ_SELECT_HANDLES_SIDE_RIGHT , SEQ_SELECT_HANDLES_SIDE_BOTH , SEQ_SELECT_HANDLES_SIDE_LEFT_NEIGHBOR ,
  SEQ_SELECT_HANDLES_SIDE_RIGHT_NEIGHBOR , SEQ_SELECT_HANDLES_SIDE_BOTH_NEIGHBORS
}
 
static const EnumPropertyItem prop_select_handles_side_types []
 
static int sequencer_select_handles_exec (bContext *C, wmOperator *op)
 
void SEQUENCER_OT_select_handles (wmOperatorType *ot)
 

Macro Definition Documentation

◆ SEQ_CHANNEL_CHECK

#define SEQ_CHANNEL_CHECK ( _seq,
_chan )   ELEM((_chan), 0, (_seq)->machine)

◆ SEQ_IS_EFFECT

#define SEQ_IS_EFFECT ( _seq)    ((_seq->type & SEQ_TYPE_EFFECT) != 0)

Definition at line 2287 of file sequencer_select.cc.

Referenced by select_grouped_type_effect().

◆ SEQ_IS_SOUND

#define SEQ_IS_SOUND ( _seq)    ((_seq->type & SEQ_TYPE_SOUND_RAM) && !(_seq->type & SEQ_TYPE_EFFECT))

Definition at line 2285 of file sequencer_select.cc.

Referenced by select_grouped_type_basic().

◆ SEQ_USE_DATA

#define SEQ_USE_DATA ( _seq)     (ELEM(_seq->type, SEQ_TYPE_SCENE, SEQ_TYPE_MOVIECLIP, SEQ_TYPE_MASK) || SEQ_HAS_PATH(_seq))

Definition at line 2289 of file sequencer_select.cc.

Referenced by select_grouped_data().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SEQ_SELECT_HANDLES_SIDE_LEFT 
SEQ_SELECT_HANDLES_SIDE_RIGHT 
SEQ_SELECT_HANDLES_SIDE_BOTH 
SEQ_SELECT_HANDLES_SIDE_LEFT_NEIGHBOR 
SEQ_SELECT_HANDLES_SIDE_RIGHT_NEIGHBOR 
SEQ_SELECT_HANDLES_SIDE_BOTH_NEIGHBORS 

Definition at line 1753 of file sequencer_select.cc.

◆ anonymous enum

anonymous enum
Enumerator
SEQ_SELECT_GROUP_TYPE 
SEQ_SELECT_GROUP_TYPE_BASIC 
SEQ_SELECT_GROUP_TYPE_EFFECT 
SEQ_SELECT_GROUP_DATA 
SEQ_SELECT_GROUP_EFFECT 
SEQ_SELECT_GROUP_EFFECT_LINK 
SEQ_SELECT_GROUP_OVERLAP 

Definition at line 2250 of file sequencer_select.cc.

Function Documentation

◆ all_strips_from_context()

blender::VectorSet< Sequence * > all_strips_from_context ( bContext * C)

Returns collection with all strips presented to user. If operation is done in preview, collection is limited to all presented strips that can produce image output.

Parameters
Ccontext
Returns
collection of strips (Sequence)

Definition at line 73 of file sequencer_select.cc.

References CTX_data_scene(), SEQ_active_seqbase_get(), SEQ_channels_displayed_get(), SEQ_editing_get(), SEQ_query_all_strips(), SEQ_query_rendered_strips(), and sequencer_view_has_preview_poll().

Referenced by sequencer_de_select_all_exec(), sequencer_retiming_select_all_exec(), sequencer_select_grouped_exec(), and sequencer_select_inverse_exec().

◆ clickable_handle_size_get()

static float clickable_handle_size_get ( const Scene * scene,
const Sequence * seq,
const View2D * v2d )
static

◆ ED_sequencer_can_select_handle()

◆ ED_sequencer_handle_is_selected()

bool ED_sequencer_handle_is_selected ( const Sequence * seq,
eSeqHandle handle )

◆ ED_sequencer_pick_strip_and_handle()

◆ ED_sequencer_select_sequence_single()

◆ ED_sequencer_selected_strips_from_context()

blender::VectorSet< Sequence * > ED_sequencer_selected_strips_from_context ( bContext * C)

Returns collection with selected strips presented to user. If operation is done in preview, collection is limited to selected presented strips, that can produce image output at current frame.

Parameters
Ccontext
Returns
collection of strips (Sequence)

Definition at line 88 of file sequencer_select.cc.

References CTX_data_scene(), Sequence::flag, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_if(), SELECT, SEQ_active_seqbase_get(), SEQ_channels_displayed_get(), SEQ_editing_get(), SEQ_query_rendered_strips(), SEQ_query_selected_strips(), and sequencer_view_has_preview_poll().

Referenced by freeze_frame_add_from_strip_selection(), sequencer_delete_exec(), sequencer_retiming_key_add_exec(), sequencer_view_selected_exec(), strip_speed_get(), strip_speed_set_exec(), and transform_seq_slide_cursor_get().

◆ element_already_selected()

static bool element_already_selected ( const StripSelection & selection)
static

◆ find_nearest_seq()

◆ find_neighboring_sequence()

◆ get_strip_handle_under_cursor()

static eSeqHandle get_strip_handle_under_cursor ( const Scene * scene,
const Sequence * seq,
const View2D * v2d,
float mouse_co[2] )
static

◆ is_mouse_over_both_handles_of_adjacent_strips()

static bool is_mouse_over_both_handles_of_adjacent_strips ( const Scene * scene,
blender::Vector< Sequence * > strips,
const View2D * v2d,
float mouse_co[2] )
static

◆ mouseover_strips_sorted_get()

◆ query_lower_channel_strips()

static void query_lower_channel_strips ( const Scene * scene,
Sequence * seq_reference,
ListBase * seqbase,
blender::VectorSet< Sequence * > & strips )
static

◆ recurs_sel_seq()

◆ select_active_side()

static void select_active_side ( const Scene * scene,
ListBase * seqbase,
int sel_side,
int channel,
int frame )
static

◆ select_active_side_range()

static void select_active_side_range ( const Scene * scene,
ListBase * seqbase,
const int sel_side,
const int frame_ranges[SEQ_MAX_CHANNELS],
const int frame_ignore )
static

◆ select_grouped_data()

◆ select_grouped_effect()

static bool select_grouped_effect ( blender::Span< Sequence * > strips,
ListBase * ,
Sequence * actseq,
const int channel )
static

◆ select_grouped_effect_link()

◆ select_grouped_time_overlap()

static bool select_grouped_time_overlap ( const Scene * scene,
blender::Span< Sequence * > strips,
ListBase * ,
Sequence * actseq )
static

◆ select_grouped_type()

static bool select_grouped_type ( blender::Span< Sequence * > strips,
ListBase * ,
Sequence * actseq,
const int channel )
static

Definition at line 2294 of file sequencer_select.cc.

References Sequence::flag, SELECT, SEQ_CHANNEL_CHECK, and Sequence::type.

Referenced by sequencer_select_grouped_exec().

◆ select_grouped_type_basic()

static bool select_grouped_type_basic ( blender::Span< Sequence * > strips,
ListBase * ,
Sequence * actseq,
const int channel )
static

◆ select_grouped_type_effect()

static bool select_grouped_type_effect ( blender::Span< Sequence * > strips,
ListBase * ,
Sequence * actseq,
const int channel )
static

Definition at line 2329 of file sequencer_select.cc.

References Sequence::flag, SELECT, SEQ_CHANNEL_CHECK, and SEQ_IS_EFFECT.

Referenced by sequencer_select_grouped_exec().

◆ select_linked_internal()

◆ select_linked_time()

static void select_linked_time ( const Scene * scene,
const StripSelection & selection,
const bool extend,
const bool deselect,
const bool toggle )
static

◆ select_linked_time_seq()

static void select_linked_time_seq ( const Scene * scene,
const Sequence * seq_source,
const eSeqHandle handle_clicked )
static

◆ select_more_less_seq__internal()

◆ select_surrounding_handles()

static void select_surrounding_handles ( Scene * scene,
Sequence * test )
static

◆ seq_box_select_rect_image_isect()

static bool seq_box_select_rect_image_isect ( const Scene * scene,
const Sequence * seq,
const rctf * rect )
static

◆ seq_box_select_seq_from_preview()

◆ seq_point_image_isect()

static bool seq_point_image_isect ( const Scene * scene,
const Sequence * seq,
float point[2] )
static

◆ seq_rectf()

◆ seq_select_seq_from_preview()

◆ seq_sort_for_center_select()

static int seq_sort_for_center_select ( const void * a,
const void * b )
static

◆ seq_sort_for_depth_select()

static int seq_sort_for_depth_select ( const void * a,
const void * b )
static

◆ sequencer_box_select_exec()

◆ sequencer_box_select_invoke()

◆ sequencer_de_select_all_exec()

◆ SEQUENCER_OT_select()

◆ SEQUENCER_OT_select_all()

◆ SEQUENCER_OT_select_box()

◆ SEQUENCER_OT_select_grouped()

◆ SEQUENCER_OT_select_handle()

◆ SEQUENCER_OT_select_handles()

◆ SEQUENCER_OT_select_inverse()

◆ SEQUENCER_OT_select_less()

◆ SEQUENCER_OT_select_linked()

◆ SEQUENCER_OT_select_linked_pick()

◆ SEQUENCER_OT_select_more()

◆ SEQUENCER_OT_select_side()

◆ SEQUENCER_OT_select_side_of_frame()

◆ sequencer_select_connected_strips()

◆ sequencer_select_do_updates()

static void sequencer_select_do_updates ( bContext * C,
Scene * scene )
static

◆ sequencer_select_exec()

◆ sequencer_select_grouped_exec()

◆ sequencer_select_handle_exec()

◆ sequencer_select_handle_invoke()

static int sequencer_select_handle_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ sequencer_select_handles_exec()

◆ sequencer_select_inverse_exec()

◆ sequencer_select_invoke()

static int sequencer_select_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ sequencer_select_less_exec()

◆ sequencer_select_linked_exec()

◆ sequencer_select_linked_handle()

◆ sequencer_select_linked_pick_invoke()

◆ sequencer_select_more_exec()

◆ sequencer_select_set_active()

◆ sequencer_select_side_exec()

◆ sequencer_select_side_of_frame()

static void sequencer_select_side_of_frame ( const bContext * C,
const View2D * v2d,
const int mval[2],
Scene * scene )
static

◆ sequencer_select_side_of_frame_exec()

◆ sequencer_select_strip_impl()

static void sequencer_select_strip_impl ( const Editing * ed,
Sequence * seq,
const eSeqHandle handle_clicked,
const bool extend,
const bool deselect,
const bool toggle )
static

◆ strip_clickable_area_get()

static rctf strip_clickable_area_get ( const Scene * scene,
const View2D * v2d,
const Sequence * seq )
static

Definition at line 1017 of file sequencer_select.cc.

References BLI_rctf_union(), left, and strip_clickable_areas_get().

Referenced by mouseover_strips_sorted_get().

◆ strip_clickable_areas_get()

static void strip_clickable_areas_get ( const Scene * scene,
const Sequence * seq,
const View2D * v2d,
rctf * r_body,
rctf * r_left_handle,
rctf * r_right_handle )
static

◆ strip_to_frame_distance()

static float strip_to_frame_distance ( const Scene * scene,
const View2D * v2d,
const Sequence * seq,
float timeline_frame )
static

Definition at line 1026 of file sequencer_select.cc.

References BLI_rctf_length_x(), left, and strip_clickable_areas_get().

Referenced by mouseover_strips_sorted_get().

◆ strips_are_adjacent()

static bool strips_are_adjacent ( const Scene * scene,
const Sequence * seq1,
const Sequence * seq2 )
static

Variable Documentation

◆ prop_select_handles_side_types

const EnumPropertyItem prop_select_handles_side_types[]
static
Initial value:
= {
{SEQ_SELECT_HANDLES_SIDE_LEFT, "LEFT", 0, "Left", ""},
{SEQ_SELECT_HANDLES_SIDE_RIGHT, "RIGHT", 0, "Right", ""},
{SEQ_SELECT_HANDLES_SIDE_BOTH, "BOTH", 0, "Both", ""},
{SEQ_SELECT_HANDLES_SIDE_LEFT_NEIGHBOR, "LEFT_NEIGHBOR", 0, "Left Neighbor", ""},
{SEQ_SELECT_HANDLES_SIDE_RIGHT_NEIGHBOR, "RIGHT_NEIGHBOR", 0, "Right Neighbor", ""},
{SEQ_SELECT_HANDLES_SIDE_BOTH_NEIGHBORS, "BOTH_NEIGHBORS", 0, "Both Neighbors", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ SEQ_SELECT_HANDLES_SIDE_LEFT_NEIGHBOR
@ SEQ_SELECT_HANDLES_SIDE_LEFT
@ SEQ_SELECT_HANDLES_SIDE_BOTH
@ SEQ_SELECT_HANDLES_SIDE_BOTH_NEIGHBORS
@ SEQ_SELECT_HANDLES_SIDE_RIGHT_NEIGHBOR
@ SEQ_SELECT_HANDLES_SIDE_RIGHT

Definition at line 1762 of file sequencer_select.cc.

Referenced by SEQUENCER_OT_select_handles().

◆ sequencer_prop_select_grouped_types

const EnumPropertyItem sequencer_prop_select_grouped_types[]
static
Initial value:
= {
{SEQ_SELECT_GROUP_TYPE, "TYPE", 0, "Type", "Shared strip type"},
"TYPE_BASIC",
0,
"Global Type",
"All strips of same basic type (graphical or sound)"},
"TYPE_EFFECT",
0,
"Effect Type",
"Shared strip effect type (if active strip is not an effect one, select all non-effect "
"strips)"},
{SEQ_SELECT_GROUP_DATA, "DATA", 0, "Data", "Shared data (scene, image, sound, etc.)"},
{SEQ_SELECT_GROUP_EFFECT, "EFFECT", 0, "Effect", "Shared effects"},
"EFFECT_LINK",
0,
"Effect/Linked",
"Other strips affected by the active one (sharing some time, and below or "
"effect-assigned)"},
{SEQ_SELECT_GROUP_OVERLAP, "OVERLAP", 0, "Overlap", "Overlapping time"},
{0, nullptr, 0, nullptr, nullptr},
}
@ SEQ_SELECT_GROUP_TYPE_EFFECT
@ SEQ_SELECT_GROUP_TYPE_BASIC
@ SEQ_SELECT_GROUP_EFFECT_LINK
@ SEQ_SELECT_GROUP_EFFECT
@ SEQ_SELECT_GROUP_OVERLAP
@ SEQ_SELECT_GROUP_TYPE
@ SEQ_SELECT_GROUP_DATA

Definition at line 2260 of file sequencer_select.cc.

Referenced by SEQUENCER_OT_select_grouped().