10#ifndef __GUI_WIDGETS_TRACK_H__
11#define __GUI_WIDGETS_TRACK_H__
13#include "gtk_wrapper.h"
15#define TRACK_WIDGET_TYPE (track_widget_get_type ())
16G_DECLARE_FINAL_TYPE (
TrackWidget, track_widget, Z, TRACK_WIDGET, GtkWidget)
32#define TRACK_BUTTON_SIZE 18
35#define TRACK_BUTTON_PADDING 6
39#define TRACK_BUTTON_PADDING_FROM_EDGE 3
41#define TRACK_BOT_BUTTONS_SHOULD_BE_VISIBLE(height) \
43 >= (TRACK_BUTTON_SIZE + TRACK_BUTTON_PADDING_FROM_EDGE) * 2 \
44 + TRACK_BUTTON_PADDING)
46#define TRACK_COLOR_AREA_WIDTH 18
48#define TRACK_ICON_NAME_MONO_COMPAT "mono"
49#define TRACK_ICON_NAME_SWAP_PHASE "phase"
50#define TRACK_ICON_NAME_RECORD "media-record"
51#define TRACK_ICON_NAME_SOLO "solo"
52#define TRACK_ICON_NAME_MUTE "mute"
53#define TRACK_ICON_NAME_LISTEN "gnome-icon-library-headphones-symbolic"
54#define TRACK_ICON_NAME_SHOW_UI "jam-icons-screen"
55#define TRACK_ICON_NAME_SHOW_AUTOMATION_LANES "automation-4p"
56#define TRACK_ICON_NAME_SHOW_TRACK_LANES "untitled-ui-rows-03"
57#define TRACK_ICON_NAME_LOCK "gnome-icon-library-padlock2-symbolic"
58#define TRACK_ICON_NAME_UNLOCK "gnome-icon-library-padlock2-open-symbolic"
59#define TRACK_ICON_NAME_FREEZE "fork-awesome-snowflake-o"
60#define TRACK_ICON_NAME_PLUS "add"
61#define TRACK_ICON_NAME_MINUS "remove"
62#define TRACK_ICON_NAME_BUS "effect"
63#define TRACK_ICON_NAME_CHORDS "minuet-chords"
64#define TRACK_ICON_NAME_SHOW_MARKERS \
65 "gnome-icon-library-flag-outline-thick-symbolic"
66#define TRACK_ICON_NAME_MIDI "instrument"
67#define TRACK_ICON_NAME_TEMPO "filename-bpm-amarok"
68#define TRACK_ICON_NAME_MODULATOR "gnome-icon-library-encoder-knob-symbolic"
69#define TRACK_ICON_NAME_FOLD "fluentui-folder-regular"
70#define TRACK_ICON_NAME_FOLD_OPEN "fluentui-folder-open-regular"
71#define TRACK_ICON_NAME_MONITOR_AUDIO "audition"
73#define TRACK_ICON_IS(x, name) (string_is_equal (x, TRACK_ICON_NAME_##name))
75#define TRACK_CB_ICON_IS(name) TRACK_ICON_IS (cb->icon_name, name)
82 TRACK_WIDGET_HIGHLIGHT_NONE,
83 TRACK_WIDGET_HIGHLIGHT_TOP,
84 TRACK_WIDGET_HIGHLIGHT_BOTTOM,
85 TRACK_WIDGET_HIGHLIGHT_INSIDE,
93 TRACK_WIDGET_RESIZE_TARGET_TRACK,
94 TRACK_WIDGET_RESIZE_TARGET_AT,
95 TRACK_WIDGET_RESIZE_TARGET_LANE,
106typedef struct _TrackWidget
108 GtkWidget parent_instance;
117 GtkGestureDrag * drag;
118 GtkGestureClick * click;
184 GtkBox * highlight_bot_box;
202 double last_offset_y;
260 cairo_surface_t * cached_surface;
106typedef struct _TrackWidget {
…};
346 const int highlight);
371track_widget_get_hovered_button (
TrackWidget * self,
int x,
int y);
374track_widget_get_hovered_am_widget (
TrackWidget * self,
int x,
int y);
377track_widget_get_at_at_y (
TrackWidget * self,
double y);
Track to be inserted into the Project's Tracklist.