_ArrangerWidget struct

The arranger widget is a canvas that draws all the arranger objects it contains.

Contents

Public variables

ArrangerWidgetType type
Type of arranger this is.
double last_offset_x
Used when dragging.
double start_x
X-axis coordinate at start of drag.
double start_y
Y-axis coordinate at start of drag.
double start_pos_px
X-axis coordinate at the start of the drag, in pixels.
int earliest_obj_exists
Whether an object exists, so we can use the earliest_obj_start_pos.
Position earliest_obj_start_pos
Start Position of the earliest object at the start of the drag.
ArrangerObject* start_object
The object that was clicked in this drag cycle, if any.
ArrangerObject* hovered_object
Object currently hovered.
int start_object_was_selected
Whether the start object was selected before drag_begin.
ArrangerSelections* sel_at_start
A clone of the ArrangerSelections on drag begin.
ZRegion* region_at_start
Region on drag begin, if editing automation.
ArrangerSelections* sel_to_delete
Selections to delete, used with the eraser tool.
Position start_pos
Start Position of the earliest object currently.
double curr_ticks_diff_from_start
The absolute (not snapped) current diff in ticks from the curr_pos to the start_pos.
double adj_ticks_diff
The adjusted diff in ticks to use for moving objects starting from their cached start positions.
double last_adj_ticks_diff
adj_ticks_diff in last cycle.
Position curr_pos
The absolute (not snapped) Position as of the current action.
Position end_pos
for moving regions
double hover_x
Current hovering positions.
int n_press
Number of clicks in current action.
SnapGrid* snap_grid
Associated SnapGrid.
int shift_held
Whether shift button is held down.
int ctrl_held
Whether Ctrl button is held down.
int alt_held
Whether Alt is currently held down.
int visible_track_diff
The number of visible tracks moved during a moving operation between tracks up to the last cycle.
int lane_diff
The number of lanes moved during a moving operation between lanes, up to the last cycle.
int is_pinned
Whether this TimelineArrangerWidget is for the PinnedTracklist or not.
int resizing_range
1 if resizing range.
int resizing_range_start
1 if this is the first call to resize the range, so range1 can be set.
int hovered_note
Cache for chord object height, used during child size allocation.
int start_vel_val
1-127.
int vel_diff
Maximum Velocity diff applied in this action.
int hovered_chord_index
Index of the chord being hovered on.
int last_playhead_px
Px the playhead was last drawn at, so we can redraw this and the new px only when the playhead changes position.
int redraw
Set to 1 to redraw.
GdkRectangle last_rect
Rectangle in the last call.
bool can_link
Whether the current selections can link (ie, only regions are selected).
bool is_highlighted
Whether a rectangle is highlighted for DND.
GdkRectangle highlight_rect
The rectangle to highlight.
guint drag_start_btn
Drag start button (primary, secondary, etc.).

Variable documentation

ArrangerObject* _ArrangerWidget::start_object

The object that was clicked in this drag cycle, if any.

This is the ArrangerObject that was clicked, even though there could be more selected.

ArrangerSelections* _ArrangerWidget::sel_at_start

A clone of the ArrangerSelections on drag begin.

When autofilling velocities, this is used to store the affected objects before editing.

This must contain clones only.

Position _ArrangerWidget::start_pos

Start Position of the earliest object currently.

The absolute (not snapped) Position at the start of a drag, translated from start_x.

int _ArrangerWidget::hovered_note

Cache for chord object height, used during child size allocation.

The note currently hovering over

int _ArrangerWidget::vel_diff

Maximum Velocity diff applied in this action.

Used in drag_end to create an UndableAction. This can have any value, even greater than 127 and it will be clamped when applying it to a Velocity.

bool _ArrangerWidget::can_link

Whether the current selections can link (ie, only regions are selected).

To be set on drag begin.