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.
- char icon_name
- Track icon, currently not placed anywhere but used by the ColorAreaWidget to get the pixbuf.
- 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.
- int bg_hovered
- Set between enter-leave signals.
- 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.
- gint64 last_midi_out_trigger_time
- Last MIDI event trigger time, for MIDI ports.
- int redraw
- Set to 1 to redraw.
- 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.