Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
arranger_minimap.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2019, 2021, 2023 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __GUI_WIDGETS_ARRANGER_MINIMAP_H__
11#define __GUI_WIDGETS_ARRANGER_MINIMAP_H__
12
13#include "common/dsp/position.h"
14#include "gui/backend/gtk_widgets/gtk_wrapper.h"
15
16#define ARRANGER_MINIMAP_WIDGET_TYPE (arranger_minimap_widget_get_type ())
17G_DECLARE_FINAL_TYPE (
19 arranger_minimap_widget,
20 Z,
21 ARRANGER_MINIMAP_WIDGET,
22 GtkWidget)
23
24typedef struct _ArrangerMinimapBgWidget ArrangerMinimapBgWidget;
25typedef struct _ArrangerMinimapSelectionWidget ArrangerMinimapSelectionWidget;
26class ArrangerMinimap;
27
33
34#define MW_TIMELINE_MINIMAP (MW_TIMELINE_PANEL->timeline_wrapper->minimap)
35
37{
38 ARRANGER_MINIMAP_ACTION_NONE,
39 ARRANGER_MINIMAP_ACTION_RESIZING_L,
40 ARRANGER_MINIMAP_ACTION_RESIZING_R,
44};
45
46enum class ArrangerMinimapType
47{
48 ARRANGER_MINIMAP_TYPE_TIMELINE,
49 ARRANGER_MINIMAP_TYPE_CLIP_EDITOR,
50};
51
52typedef struct _ArrangerMinimapWidget
53{
54 GtkWidget parent_instance;
55
56 GtkOverlay * overlay;
57
58 ArrangerMinimapType type;
59
60 ArrangerMinimapBgWidget * bg;
61 ArrangerMinimapSelectionWidget * selection;
63
66 double last_offset_y;
67
69 double start_x;
70 double start_y;
71
74 double selection_start_pos;
75 double selection_end_pos;
76
80
84void
87 Position * pos,
88 int px);
89
93void
95
99
100#endif
void arranger_minimap_widget_px_to_pos(ArrangerMinimapWidget *self, Position *pos, int px)
Taken from arranger.c.
ArrangerMinimapAction
void arranger_minimap_widget_refresh(ArrangerMinimapWidget *self)
Causes reallocation.
@ ARRANGER_MINIMAP_ACTION_STARTING_MOVING
in drag_start
@ ARRANGER_MINIMAP_ACTION_MOVING
in drag start,
double start_zoom_level
To be set in drag_begin().
int n_press
Number of presses, for click controller.
double start_x
Coordinates at the start of a drag action.
double last_offset_x
Last drag offsets during a drag.