Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
pinned_tracklist.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: © 2019 Alexandros Theodotou <alex@zrythm.org>
3 *
4 * SPDX-License-Identifier: LicenseRef-ZrythmLicense
5 */
6
14
15#ifndef __GUI_WIDGETS_PINNED_TRACKLIST_H__
16#define __GUI_WIDGETS_PINNED_TRACKLIST_H__
17
18#include "common/dsp/region.h"
19#include "common/utils/ui.h"
20#include "gui/backend/gtk_widgets/gtk_wrapper.h"
22
23#define PINNED_TRACKLIST_WIDGET_TYPE (pinned_tracklist_widget_get_type ())
24G_DECLARE_FINAL_TYPE (
26 pinned_tracklist_widget,
27 Z,
28 PINNED_TRACKLIST_WIDGET,
29 GtkBox);
30
36
37#define MW_PINNED_TRACKLIST MW_TIMELINE_PANEL->pinned_tracklist
38
39class Tracklist;
40TYPEDEF_STRUCT_UNDERSCORED (TrackWidget);
41
50typedef struct _PinnedTracklistWidget
51{
52 GtkBox parent_instance;
53
55 Tracklist * tracklist;
56
58
65 double x,
66 double y);
67
71void
73
77void
80 Tracklist * tracklist);
81
85
86#endif
void pinned_tracklist_widget_setup(PinnedTracklistWidget *self, Tracklist *tracklist)
Sets up the PinnedTracklistWidget.
TrackWidget * pinned_tracklist_widget_get_hit_track(PinnedTracklistWidget *self, double x, double y)
Gets TrackWidget hit at the given coordinates.
void pinned_tracklist_widget_hard_refresh(PinnedTracklistWidget *self)
Removes and readds the tracks.
struct _TrackWidget { GtkWidget parent_instance; GtkBox *main_box; GtkBox *group_colors_box; GtkGestureDrag * drag; GtkGestureClick *click; GtkGestureClick *right_click; int dragged; int n_press; bool bg_hovered; bool color_area_hovered; bool icon_hovered; int resize; int resizing; TrackWidgetResizeTarget resize_target_type; void *resize_target; Track *track; int ctrl_held_at_start; GtkBox *highlight_top_box; GtkBox *highlight_bot_box; TrackWidgetHighlight highlight_loc; int selected_in_dnd; double start_x; double start_y; double last_offset_y; double last_x; double last_y; CustomButtonWidget *last_hovered_btn; int button_pressed; CustomButtonWidget *clicked_button; AutomationModeWidget *clicked_am; TrackCanvasWidget *canvas; std::vector< std::unique_ptr< CustomButtonWidget > > top_buttons; std::vector< std::unique_ptr< CustomButtonWidget > > bot_buttons; MeterWidget *meter_l; MeterWidget *meter_r; char *tooltip_text; SteadyTimePoint last_midi_out_trigger_time; int redraw; bool was_armed; cairo_t * cached_cr; cairo_surface_t *cached_surface; GtkPopoverMenu *popover_menu; GtkPopover * track_name_popover; FaderButtonsWidget *fader_buttons_for_popover;} TrackWidget
The TrackWidget is split into 3 parts.
Definition track.h:107
Base widget class for Region's.
The PinnedTracklistWidget contains special tracks (chord, marker, etc.) as thin boxes above the norma...
Tracklist * tracklist
The backend.