The arranger widget is a canvas that draws all the arranger objects it contains.
- 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.
- bool drag_update_started
- Whether a drag update operation started.
- bool 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.
- Position fade_pos_at_start
- Fade in/out position at start.
- 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.
- bool was_paused
- Whether playback was paused during drag begin.
- Position playhead_pos_at_start
- Playhead position at start of drag.
- 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.
- AutomationTrack* hovered_at
- Cache for chord object height, used during child size allocation.
- int region_icon_texture_size
- Size of above textures.
- GskRenderNode* loop_line_node
- Cached nodes for region loop lines.
- int hovered_note
- The note currently hovering over.
- int start_vel_val
- int vel_diff
- Maximum Velocity diff applied in this action.
- int hovered_chord_index
- Index of the chord being hovered on.
- float fval_at_start
- Float value at start.
- 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.
- bool redraw
- Set to 1 to redraw.
- graphene_rect_t 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.
- GdkRectangle last_selection_rect
- Last selection rectangle, used to redraw the union of the new selection and this.
- guint drag_start_btn
- Drag start button (primary, secondary, etc.).
- bool first_draw
- Whether this is the first time the widget is drawn.
- double new_hadj_val
- New temporary hadjustment value used when zooming in/out.
- TransportDisplay ruler_display
- Cached setting.
- PangoLayout* vel_layout
- Layout for drawing velocity text.
- PangoLayout* ap_layout
- Layout for drawing automation point text.
- PangoLayout* audio_layout
- Layout for drawing audio editor text.
- PangoLayout* debug_layout
- Layout for debug text.
- int queued_playhead_px
- Cached playhead x to draw.
- GPtrArray* hit_objs_to_draw
- Array of objects to draw.
- GtkPopoverMenu* popover_menu
- Popover to be reused for context menus.
Whether a drag update operation started.
drag_update will be skipped unless this is true or gtk_drag_check_threshold() returns true.
Fade in/out position at start.
Used when moving fade in/out points.
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.
This is also used when changing values via the event viewer.
FIXME this sometimes stores project objects (that should not be free'd) and sometimes clones (eg, arranger_object_edit_begin/finish()). Only allow one type.
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.
Float value at start.
Used when changing the audio region gain.
Whether the current selections can link (ie, only regions are selected).
To be set on drag begin.
Drag start button (primary, secondary, etc.).
Can be tested against GDK_BUTTON_SECONDARY and GDK_BUTTON_PRIMARY.
Whether this is the first time the widget is drawn.
This is used for loading back the scroll positions saved in the project.
Layout for drawing velocity text.
TODO move to Velocity if parallel processing is needed - no need now.
Layout for drawing automation point text.
TODO move to AutomationPoint if parallel processing is needed - no need now.
Cached playhead x to draw.
This is used to avoid queuing drawing at x and then drawing after it (if playhead moved). The playhead will be drawn at the location it was when the draw was queued.
Array of objects to draw.
To be reused in snapshot().