Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
port_connection_row.h
1// SPDX-FileCopyrightText: © 2019-2021, 2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __GUI_WIDGETS_PORT_CONNECTION_ROW_H__
5#define __GUI_WIDGETS_PORT_CONNECTION_ROW_H__
6
7#include "common/utils/types.h"
8#include "gui/backend/gtk_widgets/gtk_wrapper.h"
9
10#define PORT_CONNECTION_ROW_WIDGET_TYPE (port_connection_row_widget_get_type ())
11G_DECLARE_FINAL_TYPE (
12 PortConnectionRowWidget,
13 port_connection_row_widget,
14 Z,
15 PORT_CONNECTION_ROW_WIDGET,
16 GtkBox)
17
18TYPEDEF_STRUCT_UNDERSCORED (KnobWidget);
19TYPEDEF_STRUCT_UNDERSCORED (BarSliderWidget);
20TYPEDEF_STRUCT_UNDERSCORED (PortConnectionsPopoverWidget);
21class PortConnection;
22
23using PortConnectionRowWidget = struct _PortConnectionRowWidget
24{
25 GtkBox parent_instance;
26
27 std::unique_ptr<PortConnection> connection;
28
34 bool is_input;
35
38 GtkOverlay * overlay;
39
40 GtkButton * delete_btn;
41
43 BarSliderWidget * slider;
44
45 PortConnectionsPopoverWidget * parent;
46};
47
51PortConnectionRowWidget *
52port_connection_row_widget_new (
54 const PortConnection &connection,
55 bool is_input);
56
57#endif
struct _KnobWidget { GtkWidget parent_instance; KnobType type; GenericFloatGetter getter; GenericFloatGetter default_getter; GenericFloatGetter snapped_getter; GenericFloatSetter setter; GenericFloatSetter init_setter; GenericFloatSetter end_setter; GenericStringGetter hover_str_getter; void *object; int size; bool hover; float zero; bool arc; int bevel; bool flat; float min; float max; GdkRGBA start_color; GdkRGBA end_color; GtkGestureDrag *drag; double last_x; double last_y; bool drag_updated; PangoLayout *layout; float last_real_val; GtkPopoverMenu *popover_menu;} KnobWidget
Basic knob widget.
Definition knob.h:37
Draggable slider to adjust an amount (such as a percentage).
Definition bar_slider.h:54