Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
chord_pack_browser.h
1// SPDX-FileCopyrightText: © 2022, 2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __GUI_WIDGETS_CHORD_PACK_BROWSER_H__
5#define __GUI_WIDGETS_CHORD_PACK_BROWSER_H__
6
7#include "common/utils/types.h"
8#include "gui/backend/gtk_widgets/gtk_wrapper.h"
9
10class ChordPreset;
11class ChordPresetPack;
12TYPEDEF_STRUCT_UNDERSCORED (FileAuditionerControlsWidget);
13class ItemFactory;
14
20
21#define CHORD_PACK_BROWSER_WIDGET_TYPE (chord_pack_browser_widget_get_type ())
22G_DECLARE_FINAL_TYPE (
23 ChordPackBrowserWidget,
24 chord_pack_browser_widget,
25 Z,
26 CHORD_PACK_BROWSER_WIDGET,
27 GtkBox)
28
29#define MW_CHORD_PACK_BROWSER MW_RIGHT_DOCK_EDGE->chord_pack_browser
30
31using ChordPackBrowserWidget = struct _ChordPackBrowserWidget
32{
33 GtkBox parent_instance;
34
35 GtkPaned * paned;
36
37 GtkBox * browser_top;
38 GtkBox * browser_bot;
39
40 GtkSingleSelection * packs_selection_model;
41 std::unique_ptr<ItemFactory> * packs_item_factory;
42 GtkListView * packs_list_view;
43
44 GtkLabel * pset_info;
45
46 GtkCustomFilter * psets_filter;
47 GtkFilterListModel * psets_filter_model;
48 GtkSingleSelection * psets_selection_model;
49 std::unique_ptr<ItemFactory> * psets_item_factory;
50 GtkListView * psets_list_view;
51
52 std::vector<ChordPresetPack *> * selected_packs;
53 std::vector<ChordPreset *> * selected_psets;
54
55 FileAuditionerControlsWidget * auditioner_controls;
56
58 const ChordPresetPack * cur_pack;
59 const ChordPreset * cur_pset;
60
62 GtkPopoverMenu * popover_menu;
63};
64
65void
66chord_pack_browser_widget_refresh_packs (ChordPackBrowserWidget * self);
67
68void
69chord_pack_browser_widget_refresh_presets (ChordPackBrowserWidget * self);
70
71ChordPackBrowserWidget *
72chord_pack_browser_widget_new ();
73
77
78#endif
Chord preset pack.
A preset of chord descriptors.
Item factory for column views.
struct _FileAuditionerControlsWidget { GtkBox parent_instance; bool for_files; GtkButton * play_btn; GtkButton * stop_btn; GtkMenuButton *file_settings_btn; VolumeWidget * volume; GtkDropDown *instrument_dropdown; GtkWidget * owner; SelectedFileGetter selected_file_getter; GenericCallback refilter_files;} FileAuditionerControlsWidget
File auditioner controls used in file browsers.