It's 2020...
[terminatorX.git] / src / tX_mastergui.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2020  Alexander K├Ânig
4  
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9  
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14  
15     You should have received a copy of the GNU General Public License
16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  
18     File: tX_mastergui.h
19  
20     Description: Header to tX_mastergui.cc
21 */    
22
23 #ifndef _h_tx_mastergui
24 #define _h_tx_mastergui 1
25
26 #include <gtk/gtk.h>
27
28 #include "tX_seqpar.h"
29 #include "tX_mouse.h"
30
31 extern int audioon;
32 extern tx_mouse mouse;
33 extern GdkWindow* top_window;
34
35 extern GtkWidget *main_window;
36
37 extern GtkAdjustment *volume_adj;
38 extern GtkAdjustment *pitch_adj;
39 extern GtkWidget *main_flash;
40
41 extern tX_seqpar_master_volume sp_master_volume;
42 extern tX_seqpar_master_pitch sp_master_pitch;
43
44 extern void create_mastergui(int x, int y);
45 extern void wav_progress_update(gfloat percent);
46 extern void note_destroy(GtkWidget *widget, GtkWidget *mbox);
47 extern void tx_note(const char *message, bool isError=false, GtkWindow *window=NULL);
48 extern void tx_l_note(const char *message);
49 extern void display_mastergui();
50 extern void grab_off();
51 extern void mg_update_status();
52 extern void load_tt_part(char *);
53 extern void seq_update();
54
55 extern GtkWidget *control_parent;
56 extern GtkWidget *audio_parent;
57
58 extern void gui_set_tooltip(GtkWidget *wid, const char *tip);
59
60 extern GtkWidget *panel_bar;
61
62 void add_to_panel_bar(GtkWidget *);
63 void remove_from_panel_bar(GtkWidget *);
64
65 typedef enum {
66         ALL_EVENTS_ALL_TURNTABLES,
67         ALL_EVENTS_FOR_TURNTABLE,
68         ALL_EVENTS_FOR_SP
69 } tx_menu_del_mode;
70
71 extern GtkWidget *del_dialog;
72 extern tx_menu_del_mode menu_del_mode;
73 extern tX_seqpar *del_sp;
74 extern vtt_class *del_vtt;
75
76 class tX_cursor {
77         public:
78         enum cursor_shape {
79                 DEFAULT_CURSOR,
80                 WAIT_CURSOR,
81                 WAIT_A_SECOND_CURSOR,
82                 MAX_CURSOR
83         };
84         
85         private:
86         static GdkCursor *cursors[MAX_CURSOR];
87         static cursor_shape current_shape;
88         
89         public:
90         static void set_cursor(cursor_shape shape);
91         static void reset_cursor();
92         static GdkCursor *get_cursor();
93 };
94
95 extern GCallback menu_delete_all_events_for_sp(GtkWidget *, tX_seqpar *sp);
96 extern bool tX_shutdown;
97 #endif