Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
TrackWidget Struct Reference

The TrackWidget is split into 3 parts. More...

#include <gui/widgets/track.h>

Collaboration diagram for TrackWidget:

Data Fields

GtkWidget parent_instance
 
GtkBox * main_box
 Main box containing the drawing area and the meters on the right.
 
GtkBox * group_colors_box
 Group colors.
 
GtkGestureDrag * drag
 
GtkGestureClick * click
 
GtkGestureClick * right_click
 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.
 
Tracktrack
 Associated Track.
 
int ctrl_held_at_start
 Control held down on drag begin.
 
GtkBox * highlight_top_box
 Used for highlighting.
 
GtkBox * highlight_bot_box
 
TrackWidgetHighlight highlight_loc
 Highlight location.
 
int selected_in_dnd
 The track selection processing was done in the dnd callbacks, so no need to do it in drag_end.
 
double start_x
 For drag actions.
 
double start_y
 
double last_offset_y
 
double last_x
 Used during hovering to remember the last known cursor position.
 
double last_y
 
CustomButtonWidgetlast_hovered_btn
 Last hovered button.
 
int button_pressed
 Used when mouse button is held down to mark buttons as clicked.
 
CustomButtonWidgetclicked_button
 Currently clicked button.
 
AutomationModeWidgetclicked_am
 Currently clicked automation mode button.
 
TrackCanvasWidgetcanvas
 
CustomButtonWidgettop_buttons [8]
 Signal handler IDs for tracks that have them.
 
int num_top_buttons
 
CustomButtonWidgetbot_buttons [8]
 
int num_bot_buttons
 
MeterWidgetmeter_l
 
MeterWidgetmeter_r
 
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.
 
cairo_surface_t * cached_surface
 
GtkPopoverMenu * popover_menu
 Popover to be reused for context menus.
 
GtkPopover * track_name_popover
 Popover for changing the track name.
 
FaderButtonsWidgetfader_buttons_for_popover
 

Detailed Description

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.

Definition at line 108 of file track.h.

Field Documentation

◆ bg_hovered

bool TrackWidget::bg_hovered

Set between enter-leave signals.

This is because hover can continue to send signals when hovering over other overlayed widgets (buttons, etc.).

Definition at line 140 of file track.h.

◆ bot_buttons

CustomButtonWidget* TrackWidget::bot_buttons[8]

Definition at line 238 of file track.h.

◆ button_pressed

int TrackWidget::button_pressed

Used when mouse button is held down to mark buttons as clicked.

Definition at line 215 of file track.h.

◆ cached_cr

cairo_t* TrackWidget::cached_cr

Cairo caches.

Definition at line 261 of file track.h.

◆ cached_surface

cairo_surface_t* TrackWidget::cached_surface

Definition at line 262 of file track.h.

◆ canvas

TrackCanvasWidget* TrackWidget::canvas

Definition at line 223 of file track.h.

◆ click

GtkGestureClick* TrackWidget::click

Definition at line 120 of file track.h.

◆ clicked_am

AutomationModeWidget* TrackWidget::clicked_am

Currently clicked automation mode button.

Definition at line 221 of file track.h.

◆ clicked_button

CustomButtonWidget* TrackWidget::clicked_button

Currently clicked button.

Definition at line 218 of file track.h.

◆ color_area_hovered

bool TrackWidget::color_area_hovered

Whether color area is currently hoverred.

This is not mutually exclusive with TrackWidget.bg_hovered. The color area is considered part of the BG.

Definition at line 149 of file track.h.

◆ ctrl_held_at_start

int TrackWidget::ctrl_held_at_start

Control held down on drag begin.

Definition at line 182 of file track.h.

◆ drag

GtkGestureDrag* TrackWidget::drag

Definition at line 119 of file track.h.

◆ dragged

int TrackWidget::dragged

If drag update was called at least once.

Definition at line 126 of file track.h.

◆ fader_buttons_for_popover

FaderButtonsWidget* TrackWidget::fader_buttons_for_popover

Definition at line 269 of file track.h.

◆ group_colors_box

GtkBox* TrackWidget::group_colors_box

Group colors.

Definition at line 117 of file track.h.

◆ highlight_bot_box

GtkBox* TrackWidget::highlight_bot_box

Definition at line 186 of file track.h.

◆ highlight_loc

TrackWidgetHighlight TrackWidget::highlight_loc

Highlight location.

Eg, whether to highlight inside the track (eg, when dragging inside foldable tracks).

Definition at line 194 of file track.h.

◆ highlight_top_box

GtkBox* TrackWidget::highlight_top_box

Used for highlighting.

Definition at line 185 of file track.h.

◆ icon_hovered

bool TrackWidget::icon_hovered

Whether the icon in the color area is currently hoverred.

This is not mutually exclusive with TrackWidget.color_area_hovered. The icon is considered part of the color area.

Definition at line 159 of file track.h.

◆ last_hovered_btn

CustomButtonWidget* TrackWidget::last_hovered_btn

Last hovered button.

Definition at line 211 of file track.h.

◆ last_midi_out_trigger_time

gint64 TrackWidget::last_midi_out_trigger_time

Last MIDI event trigger time, for MIDI ports.

Definition at line 251 of file track.h.

◆ last_offset_y

double TrackWidget::last_offset_y

Definition at line 204 of file track.h.

◆ last_x

double TrackWidget::last_x

Used during hovering to remember the last known cursor position.

Definition at line 207 of file track.h.

◆ last_y

double TrackWidget::last_y

Definition at line 208 of file track.h.

◆ main_box

GtkBox* TrackWidget::main_box

Main box containing the drawing area and the meters on the right.

Definition at line 114 of file track.h.

◆ meter_l

MeterWidget* TrackWidget::meter_l

Definition at line 241 of file track.h.

◆ meter_r

MeterWidget* TrackWidget::meter_r

Definition at line 242 of file track.h.

◆ n_press

int TrackWidget::n_press

Number of clicks, used when selecting/moving/ dragging channels.

Definition at line 130 of file track.h.

◆ num_bot_buttons

int TrackWidget::num_bot_buttons

Definition at line 239 of file track.h.

◆ num_top_buttons

int TrackWidget::num_top_buttons

Definition at line 237 of file track.h.

◆ parent_instance

GtkWidget TrackWidget::parent_instance

Definition at line 110 of file track.h.

◆ popover_menu

GtkPopoverMenu* TrackWidget::popover_menu

Popover to be reused for context menus.

Definition at line 265 of file track.h.

◆ redraw

int TrackWidget::redraw

Set to 1 to redraw.

Definition at line 254 of file track.h.

◆ resize

int TrackWidget::resize

Set when the drag should resize instead of dnd.

This is used to determine if we should resize on drag begin.

Definition at line 167 of file track.h.

◆ resize_target

void* TrackWidget::resize_target

The object to resize.

Definition at line 176 of file track.h.

◆ resize_target_type

TrackWidgetResizeTarget TrackWidget::resize_target_type

Resize target type (track/at/lane).

Definition at line 173 of file track.h.

◆ resizing

int TrackWidget::resizing

Set during the whole resizing action.

Definition at line 170 of file track.h.

◆ right_click

GtkGestureClick* TrackWidget::right_click

Right-click gesture.

Definition at line 123 of file track.h.

◆ selected_in_dnd

int TrackWidget::selected_in_dnd

The track selection processing was done in the dnd callbacks, so no need to do it in drag_end.

Definition at line 199 of file track.h.

◆ start_x

double TrackWidget::start_x

For drag actions.

Definition at line 202 of file track.h.

◆ start_y

double TrackWidget::start_y

Definition at line 203 of file track.h.

◆ tooltip_text

char* TrackWidget::tooltip_text

Current tooltip text.

Definition at line 247 of file track.h.

◆ top_buttons

CustomButtonWidget* TrackWidget::top_buttons[8]

Signal handler IDs for tracks that have them.

This is more convenient instead of having them in each widget. Buttons to be drawin in order.

Definition at line 236 of file track.h.

◆ track

Track* TrackWidget::track

Associated Track.

Definition at line 179 of file track.h.

◆ track_name_popover

GtkPopover* TrackWidget::track_name_popover

Popover for changing the track name.

Definition at line 268 of file track.h.

◆ was_armed

bool TrackWidget::was_armed

Whether the track was armed for recording at the start of the current action.

Definition at line 258 of file track.h.


The documentation for this struct was generated from the following file: