Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
clip_editor_inner.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2019-2023 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
10#ifndef __GUI_WIDGETS_CLIP_EDITOR_INNER_H__
11#define __GUI_WIDGETS_CLIP_EDITOR_INNER_H__
12
13#include <gtk/gtk.h>
14
15#define CLIP_EDITOR_INNER_WIDGET_TYPE (clip_editor_inner_widget_get_type ())
16G_DECLARE_FINAL_TYPE (
18 clip_editor_inner_widget,
19 Z,
20 CLIP_EDITOR_INNER_WIDGET,
21 GtkWidget)
22
23typedef struct _RulerWidget RulerWidget;
24typedef struct _ColorAreaWidget ColorAreaWidget;
25typedef struct _MidiEditorSpaceWidget MidiEditorSpaceWidget;
26typedef struct _AudioEditorSpaceWidget AudioEditorSpaceWidget;
27typedef struct _ChordEditorSpaceWidget ChordEditorSpaceWidget;
28typedef struct _AutomationEditorSpaceWidget AutomationEditorSpaceWidget;
29typedef struct _ArrangerWidget ArrangerWidget;
30TYPEDEF_STRUCT_UNDERSCORED (ZoomButtonsWidget);
31
38#define MW_CLIP_EDITOR_INNER MW_CLIP_EDITOR->clip_editor_inner
39
44void
47 GtkWidget * widget,
48 bool add);
49
54typedef struct _ClipEditorInnerWidget
55{
56 GtkWidget parent_instance;
57
58 ColorAreaWidget * color_bar;
59 GtkBox * bot_of_arranger_toolbar;
60 GtkLabel * track_name_lbl;
61 GtkBox * left_of_ruler_box;
62 RulerWidget * ruler;
63 GtkStack * editor_stack;
64 GtkSizeGroup * left_of_ruler_size_group;
65
66 /* ==== Piano Roll (Midi Editor) ==== */
67
69 GtkToggleButton * toggle_notation;
70 GtkToggleButton * toggle_listen_notes;
71 GtkToggleButton * show_automation_values;
72
73 MidiEditorSpaceWidget * midi_editor_space;
74
75 /* ==== End Piano Roll (Midi Editor) ==== */
76
77 /* ==== Automation Editor ==== */
78
79 AutomationEditorSpaceWidget * automation_editor_space;
80
81 /* ==== End Automation Editor ==== */
82
83 /* ==== Chord Editor ==== */
84
85 ChordEditorSpaceWidget * chord_editor_space;
86
87 /* ==== End Chord Editor ==== */
88
89 /* ==== Audio Editor ==== */
90
91 AudioEditorSpaceWidget * audio_editor_space;
92
93 /* ==== End Audio Editor ==== */
94
95 /* === Right toolbar === */
96
97 ZoomButtonsWidget * zoom_buttons;
98
102
104
105void
106clip_editor_inner_widget_setup (ClipEditorInnerWidget * self);
107
108void
109clip_editor_inner_widget_refresh (ClipEditorInnerWidget * self);
110
112clip_editor_inner_widget_get_visible_arranger (ClipEditorInnerWidget * self);
113
118#endif
void clip_editor_inner_widget_add_to_left_of_ruler_sizegroup(ClipEditorInnerWidget *self, GtkWidget *widget, bool add)
Adds or remove the widget from the "left of ruler" size group.
The arranger widget is a canvas that draws all the arranger objects it contains.
Definition arranger.h:108
The piano roll widget is the whole space inside the clip editor tab when a AUDIO region is selected.
The piano roll widget is the whole space inside the clip editor tab when a AUTOMATION region is selec...
The piano roll widget is the whole space inside the clip editor tab when a CHORD region is selected.
The piano roll widget is the whole space inside the clip editor tab when a MIDI region is selected.
GtkSizeGroup * ruler_arranger_hsize_group
Size group for keeping the whole ruler and each timeline the same width.
GtkToggleButton * toggle_notation
Toggle between drum mode and normal mode.
The piano roll widget is the whole space inside the clip editor tab when a MIDI region is selected.