10#ifndef __GUI_WIDGETS_TRACK_H__
11#define __GUI_WIDGETS_TRACK_H__
17#define TRACK_WIDGET_TYPE (track_widget_get_type ())
18G_DECLARE_FINAL_TYPE (
TrackWidget, track_widget, Z, TRACK_WIDGET, GtkWidget)
34#define TRACK_BUTTON_SIZE 18
37#define TRACK_BUTTON_PADDING 6
41#define TRACK_BUTTON_PADDING_FROM_EDGE 3
43#define TRACK_BOT_BUTTONS_SHOULD_BE_VISIBLE(height) \
45 >= (TRACK_BUTTON_SIZE + TRACK_BUTTON_PADDING_FROM_EDGE) * 2 \
46 + TRACK_BUTTON_PADDING)
48#define TRACK_COLOR_AREA_WIDTH 18
50#define TRACK_ICON_NAME_MONO_COMPAT "mono"
51#define TRACK_ICON_NAME_SWAP_PHASE "phase"
52#define TRACK_ICON_NAME_RECORD "media-record"
53#define TRACK_ICON_NAME_SOLO "solo"
54#define TRACK_ICON_NAME_MUTE "mute"
55#define TRACK_ICON_NAME_LISTEN "gnome-icon-library-headphones-symbolic"
56#define TRACK_ICON_NAME_SHOW_UI "jam-icons-screen"
57#define TRACK_ICON_NAME_SHOW_AUTOMATION_LANES "automation-4p"
58#define TRACK_ICON_NAME_SHOW_TRACK_LANES "untitled-ui-rows-03"
59#define TRACK_ICON_NAME_LOCK "gnome-icon-library-padlock2-symbolic"
60#define TRACK_ICON_NAME_UNLOCK "gnome-icon-library-padlock2-open-symbolic"
61#define TRACK_ICON_NAME_FREEZE "fork-awesome-snowflake-o"
62#define TRACK_ICON_NAME_PLUS "add"
63#define TRACK_ICON_NAME_MINUS "remove"
64#define TRACK_ICON_NAME_BUS "effect"
65#define TRACK_ICON_NAME_CHORDS "minuet-chords"
66#define TRACK_ICON_NAME_SHOW_MARKERS \
67 "gnome-icon-library-flag-outline-thick-symbolic"
68#define TRACK_ICON_NAME_MIDI "instrument"
69#define TRACK_ICON_NAME_TEMPO "filename-bpm-amarok"
70#define TRACK_ICON_NAME_MODULATOR "gnome-icon-library-encoder-knob-symbolic"
71#define TRACK_ICON_NAME_FOLD "fluentui-folder-regular"
72#define TRACK_ICON_NAME_FOLD_OPEN "fluentui-folder-open-regular"
73#define TRACK_ICON_NAME_MONITOR_AUDIO "audition"
75#define TRACK_ICON_IS(x, name) (string_is_equal (x, TRACK_ICON_NAME_##name))
77#define TRACK_CB_ICON_IS(name) TRACK_ICON_IS (cb->icon_name, name)
84 TRACK_WIDGET_HIGHLIGHT_NONE,
85 TRACK_WIDGET_HIGHLIGHT_TOP,
86 TRACK_WIDGET_HIGHLIGHT_BOTTOM,
87 TRACK_WIDGET_HIGHLIGHT_INSIDE,
95 TRACK_WIDGET_RESIZE_TARGET_TRACK,
96 TRACK_WIDGET_RESIZE_TARGET_AT,
97 TRACK_WIDGET_RESIZE_TARGET_LANE,
108typedef struct _TrackWidget
110 GtkWidget parent_instance;
119 GtkGestureDrag * drag;
120 GtkGestureClick * click;
186 GtkBox * highlight_bot_box;
204 double last_offset_y;
262 cairo_surface_t * cached_surface;
348 const int highlight);
373track_widget_get_hovered_button (
TrackWidget * self,
int x,
int y);
376track_widget_get_hovered_am_widget (
TrackWidget * self,
int x,
int y);
379track_widget_get_at_at_y (
TrackWidget * self,
double y);
Track to be inserted into the Project's Tracklist.