Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
folder_channel.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2021-2022 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
10#ifndef __GUI_WIDGETS_FOLDER_CHANNEL_H__
11#define __GUI_WIDGETS_FOLDER_CHANNEL_H__
12
13#include <gtk/gtk.h>
14
15#define FOLDER_CHANNEL_WIDGET_TYPE (folder_channel_widget_get_type ())
16G_DECLARE_FINAL_TYPE (
18 folder_channel_widget,
19 Z,
20 FOLDER_CHANNEL_WIDGET,
21 GtkWidget)
22
23typedef struct _ColorAreaWidget ColorAreaWidget;
24typedef struct Track Track;
25typedef struct _FolderChannelSlotWidget FolderChannelSlotWidget;
26typedef struct _EditableLabelWidget EditableLabelWidget;
27typedef struct _FaderButtonsWidget FaderButtonsWidget;
28
35typedef struct _FolderChannelWidget
36{
37 GtkWidget parent_instance;
38 GtkGrid * grid;
39 ColorAreaWidget * color_top;
40 ColorAreaWidget * color_left;
41 GtkBox * icon_and_name_event_box;
42 GtkLabel * name_lbl;
43
44 GtkImage * icon;
45
46 GtkToggleButton * fold_toggle;
47
50 GtkBox * highlight_right_box;
51
54
58
61
64
69
72
74 GtkGestureClick * mp;
75
76 GtkGestureClick * right_mouse_mp;
77
79 GtkGestureDrag * drag;
80
81 gulong fold_toggled_handler_id;
82
83 bool setup;
84
86 GtkPopoverMenu * popover_menu;
88
94
95void
96folder_channel_widget_tear_down (FolderChannelWidget * self);
97
104void
106
110void
112
117#endif
void folder_channel_widget_show(FolderChannelWidget *self)
Displays the widget.
FolderChannelWidget * folder_channel_widget_new(Track *track)
Creates a folder_channel widget using the given folder_channel data.
void folder_channel_widget_refresh(FolderChannelWidget *self)
Updates everything on the widget.
FaderButtonsWidget * fader_buttons
Fader buttons.
GtkGestureClick * mp
Whole folder_channel press.
int dragged
If drag update was called at least once.
GtkGestureDrag * drag
Drag on the icon and name event box.
GtkPopoverMenu * popover_menu
Popover to be reused for context menus.
Track * track
Pointer to owner Track.
GtkBox * highlight_left_box
Used for highlighting.
int ctrl_held_at_start
Control held down on drag begin.
int selected_in_dnd
The track selection processing was done in the dnd callbacks, so no need to do it in drag_end.
int n_press
Number of clicks, used when selecting/moving/ dragging channels.
Track to be inserted into the Project's Tracklist.
Definition track.h:177