The TrackWidget is split into 3 parts.
- 1. Top part contains the "main" view.
- 2. Lane part contains each lane.
- 3. Automation tracklist part contains each automation track.
- GtkBox* main_box
- Main box containing the drawing area and the meters on the right.
- GtkGestureMultiPress* right_mouse_mp
- Right-click gesture.
- int dragged
- If drag update was called at least once.
- int n_press
- Number of clicks, used when selecting/moving/ dragging channels.
- bool bg_hovered
- Set between enter-leave signals.
- bool color_area_hovered
- Whether color area is currently hoverred.
- bool icon_hovered
- Whether the icon in the color area is currently hoverred.
- int resize
- Set when the drag should resize instead of dnd.
- int resizing
- Set during the whole resizing action.
- TrackWidgetResizeTarget resize_target_type
- Resize target type (track/at/lane).
- void* resize_target
- The object to resize.
- Track* track
- Associated Track.
- int ctrl_held_at_start
- Control held down on drag begin.
- GtkBox* highlight_top_box
- Used for highlighting.
- int selected_in_dnd
- The track selection processing was done in the dnd callbacks, so no need to do it in drag_end.
- PangoLayout* layout
- Cache layout for drawing the name.
- double start_x
- For drag actions.
- double last_x
- Used during hovering to remember the last known cursor position.
- int button_pressed
- Used when mouse button is held down to mark buttons as clicked.
- CustomButtonWidget* clicked_button
- Currently clicked button.
- AutomationModeWidget* clicked_am
- Currently clicked automation mode button.
- CustomButtonWidget* top_buttons
- Signal handler IDs for tracks that have them.
- char* tooltip_text
- Current tooltip text.
- gint64 last_midi_out_trigger_time
- Last MIDI event trigger time, for MIDI ports.
- int redraw
- Set to 1 to redraw.
- bool was_armed
- Whether the track was armed for recording at the start of the current action.
- cairo_t* cached_cr
- Cairo caches.
Set between enter-leave signals.
This is because hover can continue to send signals when hovering over other overlayed widgets (buttons, etc.).
Set when the drag should resize instead of dnd.
This is used to determine if we should resize on drag begin.