Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
knob_with_name.h
1// SPDX-FileCopyrightText: © 2019-2022 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __GUI_WIDGETS_KNOB_WITH_NAME_H__
5#define __GUI_WIDGETS_KNOB_WITH_NAME_H__
6
7#include "common/utils/types.h"
8#include "gui/backend/gtk_widgets/gtk_wrapper.h"
9
10#define KNOB_WITH_NAME_WIDGET_TYPE (knob_with_name_widget_get_type ())
11G_DECLARE_FINAL_TYPE (
13 knob_with_name_widget,
14 Z,
15 KNOB_WITH_NAME_WIDGET,
16 GtkBox)
17
18typedef struct _KnobWidget KnobWidget;
19typedef struct _EditableLabelWidget EditableLabelWidget;
20
25typedef struct _KnobWithNameWidget
26{
27 GtkBox parent_instance;
28
30 // GtkLabel * label;
31 EditableLabelWidget * label;
32
35
37 GtkPopoverMenu * popover_menu;
39
47knob_with_name_widget_new (
48 void * obj,
49 GenericStringGetter name_getter,
50 GenericStringSetter name_setter,
51 KnobWidget * knob,
52 GtkOrientation orientation,
53 bool label_before,
54 int spacing);
55
56#endif
std::function< std::string()> GenericStringGetter
Getter prototype for strings.
Definition types.h:102
std::function< void(const std::string &)> GenericStringSetter
Setter prototype for float values.
Definition types.h:107
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
A vertical box with a knob at the top and a name at the bottom.
GtkPopoverMenu * popover_menu
Right click menu.
EditableLabelWidget * label
The label to show below the knob.
KnobWidget * knob
The knob.