10#ifndef __GUI_WIDGETS_FOLDER_CHANNEL_H__
11#define __GUI_WIDGETS_FOLDER_CHANNEL_H__
13#include "common/dsp/foldable_track.h"
14#include "common/utils/types.h"
15#include "gui/backend/gtk_widgets/gtk_wrapper.h"
17#define FOLDER_CHANNEL_WIDGET_TYPE (folder_channel_widget_get_type ())
20 folder_channel_widget,
22 FOLDER_CHANNEL_WIDGET,
26TYPEDEF_STRUCT_UNDERSCORED (ColorAreaWidget);
27TYPEDEF_STRUCT_UNDERSCORED (FolderChannelSlotWidget);
28TYPEDEF_STRUCT_UNDERSCORED (EditableLabelWidget);
29TYPEDEF_STRUCT_UNDERSCORED (FaderButtonsWidget);
37using FolderChannelWidget =
struct _FolderChannelWidget
39 GtkWidget parent_instance;
41 ColorAreaWidget * color_top;
42 ColorAreaWidget * color_left;
43 GtkBox * icon_and_name_event_box;
48 GtkToggleButton * fold_toggle;
51 GtkBox * highlight_left_box;
52 GtkBox * highlight_right_box;
55 FaderButtonsWidget * fader_buttons;
62 bool ctrl_held_at_start;
73 FoldableTrack * track;
78 GtkGestureClick * right_mouse_mp;
81 GtkGestureDrag * drag;
83 gulong fold_toggled_handler_id;
88 GtkPopoverMenu * popover_menu;
98folder_channel_widget_tear_down (FolderChannelWidget * self);