Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin_strip_expander.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2020, 2023-2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __GUI_WIDGETS_PLUGIN_STRIP_EXPANDER_H__
11#define __GUI_WIDGETS_PLUGIN_STRIP_EXPANDER_H__
12
13#include "common/plugins/plugin_identifier.h"
14#include "common/utils/audio.h"
15#include "common/utils/types.h"
17#include "gui/backend/gtk_widgets/gtk_wrapper.h"
18
19#define PLUGIN_STRIP_EXPANDER_WIDGET_TYPE \
20 (plugin_strip_expander_widget_get_type ())
21G_DECLARE_FINAL_TYPE (
23 plugin_strip_expander_widget,
24 Z,
25 PLUGIN_STRIP_EXPANDER_WIDGET,
26 ExpanderBoxWidget);
27
28class ChannelTrack;
29TYPEDEF_STRUCT_UNDERSCORED (ChannelSlotWidget);
30
36
37enum class PluginStripExpanderPosition
38{
39 PSE_POSITION_CHANNEL,
40 PSE_POSITION_INSPECTOR,
41};
42
47using PluginStripExpanderWidget = struct _PluginStripExpanderWidget
48{
49 ExpanderBoxWidget parent_instance;
50
51 zrythm::plugins::PluginSlotType slot_type;
52 PluginStripExpanderPosition position;
53
55 GtkScrolledWindow * scroll;
56 GtkViewport * viewport;
57
59 GtkBox * box;
60
62 GtkBox * strip_boxes[STRIP_SIZE];
63
65 ChannelSlotWidget * slots[STRIP_SIZE];
66
68 ChannelTrack * track;
69};
70
74void
77 int slot);
78
82void
84
88void
91 zrythm::plugins::PluginSlotType type,
92 PluginStripExpanderPosition position,
93 ChannelTrack * track);
94
98
99#endif
Expander box.
struct _PluginStripExpanderWidget { ExpanderBoxWidget parent_instance; zrythm::plugins::PluginSlotType slot_type; PluginStripExpanderPosition position; GtkScrolledWindow *scroll; GtkViewport * viewport; GtkBox *box; GtkBox *strip_boxes[STRIP_SIZE]; ChannelSlotWidget *slots[STRIP_SIZE]; ChannelTrack *track;} PluginStripExpanderWidget
A TwoColExpanderBoxWidget for showing the ports in the InspectorWidget.
void plugin_strip_expander_widget_refresh(PluginStripExpanderWidget *self)
Refreshes each field.
void plugin_strip_expander_widget_redraw_slot(PluginStripExpanderWidget *self, int slot)
Queues a redraw of the given slot.
void plugin_strip_expander_widget_setup(PluginStripExpanderWidget *self, zrythm::plugins::PluginSlotType type, PluginStripExpanderPosition position, ChannelTrack *track)
Sets up the PluginStripExpanderWidget.