Colors customizable - 'w' + 'f' "fix" - Alex
[terminatorX.git] / src / tX_mastergui.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2003  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, write to the Free Software
17     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  
19     File: tX_mastergui.h
20  
21     Description: Header to tX_mastergui.cc
22 */    
23
24 #ifndef _h_tx_mastergui
25 #define _h_tx_mastergui 1
26
27 #include <gtk/gtk.h>
28 #include <X11/Xlib.h>
29
30 #include "tX_seqpar.h"
31
32 extern int audioon;
33 extern Window xwindow;
34 extern GtkWidget *main_window;
35
36 extern GtkAdjustment *volume_adj;
37 extern GtkAdjustment *pitch_adj;
38
39
40 extern GtkWidget *main_flash_l;
41 extern GtkWidget *main_flash_r;
42
43 extern tX_seqpar_master_volume sp_master_volume;
44 extern tX_seqpar_master_pitch sp_master_pitch;
45
46 extern void create_mastergui(int x, int y);
47 extern void wav_progress_update(gfloat percent);
48 extern void note_destroy(GtkWidget *widget, GtkWidget *mbox);
49 extern void tx_note(const char *message, bool isError=false);
50 extern void tx_l_note(const char *message);
51 extern void display_mastergui();
52 extern void grab_off();
53 extern void mg_update_status();
54 extern void load_tt_part(char *);
55 extern void seq_update();
56
57 extern GtkWidget *control_parent;
58 extern GtkWidget *audio_parent;
59 extern GtkTooltips *gui_tooltips;
60 extern void gui_set_tooltip(GtkWidget *wid, char *tip);
61
62 extern GtkWidget *panel_bar;
63
64 void add_to_panel_bar(GtkWidget *);
65 void remove_from_panel_bar(GtkWidget *);
66
67 typedef enum {
68         ALL_EVENTS_ALL_TURNTABLES,
69         ALL_EVENTS_FOR_TURNTABLE,
70         ALL_EVENTS_FOR_SP
71 } tx_menu_del_mode;
72
73 extern GtkWidget *del_dialog;
74 extern tx_menu_del_mode menu_del_mode;
75 extern tX_seqpar *del_sp;
76 extern vtt_class *del_vtt;
77
78 class tX_cursor {
79         public:
80         enum cursor_shape {
81                 DEFAULT_CURSOR,
82                 WAIT_CURSOR,
83                 WAIT_A_SECOND_CURSOR,
84                 MAX_CURSOR
85         };
86         
87         private:
88         static GdkCursor *cursors[MAX_CURSOR];
89         static cursor_shape current_shape;
90         
91         public:
92         static void set_cursor(cursor_shape shape);
93         static void reset_cursor();
94         static GdkCursor *get_cursor();
95 };
96
97 extern GCallback menu_delete_all_events_for_sp(GtkWidget *, tX_seqpar *sp);
98 extern bool tX_shutdown;
99 #endif