Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
automatable_selector_popover.h
1// SPDX-FileCopyrightText: © 2019, 2023-2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __GUI_WIDGETS_AUTOMATABLE_SELECTOR_POPOVER_H__
5#define __GUI_WIDGETS_AUTOMATABLE_SELECTOR_POPOVER_H__
6
7#include "common/utils/types.h"
8#include "gui/backend/gtk_widgets/gtk_wrapper.h"
9#include "gui/backend/gtk_widgets/item_factory.h"
10
11#define AUTOMATABLE_SELECTOR_POPOVER_WIDGET_TYPE \
12 (automatable_selector_popover_widget_get_type ())
13G_DECLARE_FINAL_TYPE (
15 automatable_selector_popover_widget,
16 Z,
17 AUTOMATABLE_SELECTOR_POPOVER_WIDGET,
18 GtkPopover);
19
20class ControlPort;
21class AutomationTrack;
22
28
35{
38 AS_TYPE_MIDI_CH2,
39 AS_TYPE_MIDI_CH3,
40 AS_TYPE_MIDI_CH4,
41 AS_TYPE_MIDI_CH5,
42 AS_TYPE_MIDI_CH6,
43 AS_TYPE_MIDI_CH7,
44 AS_TYPE_MIDI_CH8,
45 AS_TYPE_MIDI_CH9,
46 AS_TYPE_MIDI_CH10,
47 AS_TYPE_MIDI_CH11,
48 AS_TYPE_MIDI_CH12,
49 AS_TYPE_MIDI_CH13,
50 AS_TYPE_MIDI_CH14,
51 AS_TYPE_MIDI_CH15,
52 AS_TYPE_MIDI_CH16,
53
56
59
62
65
68
71
74};
75
79using AutomatableSelectorPopoverWidget = struct _AutomatableSelectorPopoverWidget
80{
81 GtkPopover parent_instance;
82
84 AutomationTrack * owner;
85
86 GtkListView * type_listview;
87 GtkListView * port_listview;
88
89 std::unique_ptr<ItemFactory> port_factory;
90
91 GtkLabel * info;
92
93 GtkSearchEntry * port_search_entry;
94
100 ControlPort * selected_port;
101};
102
108
112
113#endif
struct _AutomatableSelectorPopoverWidget { GtkPopover parent_instance; AutomationTrack *owner; GtkListView *type_listview; GtkListView *port_listview; std::unique_ptr< ItemFactory > port_factory; GtkLabel *info; GtkSearchEntry *port_search_entry; ControlPort *selected_port;} AutomatableSelectorPopoverWidget
A popover for selecting the automation track to automate.
AutomatableSelectorPopoverWidget * automatable_selector_popover_widget_new(AutomationTrack *owner)
Creates the popover.
AutomatableSelectorType
Automatable type.
@ AS_TYPE_MIDI_CH1
Midi automatable (modwheel etc.).
@ AS_TYPE_MIDI_FX
Plugin at Track MIDI fx slot.