Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
timeline_panel.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2019-2020 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
10#ifndef __GUI_WIDGETS_TIMELINE_PANEL_H__
11#define __GUI_WIDGETS_TIMELINE_PANEL_H__
12
13#include "utils/types.h"
14
15#include "gtk_wrapper.h"
16
17#define TIMELINE_PANEL_WIDGET_TYPE (timeline_panel_widget_get_type ())
18G_DECLARE_FINAL_TYPE (
20 timeline_panel_widget,
21 Z,
22 TIMELINE_PANEL_WIDGET,
23 GtkBox)
24
25TYPEDEF_STRUCT_UNDERSCORED (RulerWidget);
26TYPEDEF_STRUCT_UNDERSCORED (TracklistWidget);
27TYPEDEF_STRUCT_UNDERSCORED (TracklistHeaderWidget);
28TYPEDEF_STRUCT_UNDERSCORED (TimelineToolbarWidget);
29TYPEDEF_STRUCT_UNDERSCORED (TimelineBotBoxWidget);
30TYPEDEF_STRUCT_UNDERSCORED (ArrangerWrapperWidget);
31
38#define MW_TIMELINE_PANEL (MW_MAIN_NOTEBOOK->timeline_panel)
39
40#define MW_TRACKLIST_SCROLL (MW_TIMELINE_PANEL->tracklist_scroll)
41
42typedef struct _TimelinePanelWidget
43{
44 GtkBox parent_instance;
45
46 GtkPaned * tracklist_timeline;
47 GtkBox * tracklist_top;
48 TracklistHeaderWidget * tracklist_header;
49 TracklistWidget * tracklist;
50
53
56
60
61 ArrangerWrapperWidget * timeline_wrapper;
62
65
66 TimelineToolbarWidget * timeline_toolbar;
67
70
75
76void
77timeline_panel_widget_setup (TimelinePanelWidget * self);
78
80timeline_panel_widget_new (void);
81
85void
87
92#endif
void timeline_panel_widget_tear_down(TimelinePanelWidget *self)
Prepare for finalization.
The arranger widget is a canvas that draws all the arranger objects it contains.
Definition arranger.h:108
Wraps the arranger widget in a box with scrollbars.
GtkBox * timeline_divider_box
The paned dividing the pinned and unpinned timelines.
GtkBox * timelines_plus_ruler
Box for the timelines and the ruler.
ArrangerWidget * pinned_timeline
The pinned timeline above the main one.
ArrangerWidget * timeline
The main timeline.
GtkSizeGroup * timeline_ruler_h_size_group
Size group for keeping the whole ruler and each timeline the same width.
RulerWidget * ruler
Ruler.
The Timeline toolbar in the top.
The TracklistWidget holds all the Track's in the Project.
Definition tracklist.h:40
Custom types.