Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
inspector_port.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2019-2021, 2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __GUI_WIDGETS_INSPECTOR_PORT_H__
11#define __GUI_WIDGETS_INSPECTOR_PORT_H__
12
13#include "common/utils/types.h"
14#include "gui/backend/gtk_widgets/gtk_wrapper.h"
15
16#define INSPECTOR_PORT_WIDGET_TYPE (inspector_port_widget_get_type ())
17G_DECLARE_FINAL_TYPE (
19 inspector_port_widget,
20 Z,
21 INSPECTOR_PORT_WIDGET,
22 GtkWidget)
23
24TYPEDEF_STRUCT_UNDERSCORED (BarSliderWidget);
25TYPEDEF_STRUCT_UNDERSCORED (PortConnectionsPopoverWidget);
26class Meter;
27class Port;
28
34
38using InspectorPortWidget = struct _InspectorPortWidget
39{
40 GtkWidget parent_instance;
41
42 GtkOverlay * overlay;
43
45 BarSliderWidget * bar_slider;
46
48 gint64 last_midi_trigger_time;
49
56 gint64 last_tooltip_change;
57
59 float minf;
60 float maxf;
61 float zerof_;
62
64 float normalized_init_port_val;
65
67 std::string port_str;
68
70 Port * port;
71
81 float last_real_val;
82 float last_normalized_val;
83 bool last_port_val_set;
84
86 std::unique_ptr<Meter> meter;
87
89 GtkToggleButton * jack;
90
92 GtkToggleButton * midi;
93
95 GtkGestureClick * double_click_gesture;
96
98 GtkGestureClick * right_click_gesture;
99
100 std::string hex_color;
101
104 int last_num_connections;
105
107 GtkPopoverMenu * popover_menu;
108
109 PortConnectionsPopoverWidget * connections_popover;
110};
111
112void
113inspector_port_widget_refresh (InspectorPortWidget * self);
114
120
124
125#endif
InspectorPortWidget * inspector_port_widget_new(Port *port)
Creates a new widget.
struct _InspectorPortWidget { GtkWidget parent_instance; GtkOverlay *overlay; BarSliderWidget *bar_slider; gint64 last_midi_trigger_time; gint64 last_tooltip_change; float minf; float maxf; float zerof_; float normalized_init_port_val; std::string port_str; Port *port; float last_real_val; float last_normalized_val; bool last_port_val_set; std::unique_ptr< Meter > meter; GtkToggleButton *jack; GtkToggleButton *midi; GtkGestureClick *double_click_gesture; GtkGestureClick *right_click_gesture; std::string hex_color; int last_num_connections; GtkPopoverMenu *popover_menu; PortConnectionsPopoverWidget *connections_popover;} InspectorPortWidget
A Port to show in the inspector for Plugin's.
Draggable slider to adjust an amount (such as a percentage).
Definition bar_slider.h:54