Rework vttgui, old up/down buttons are gone, hello drag'n'drop!
[terminatorX.git] / src / tX_panel.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2016  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 */
19
20 #ifndef _h_tX_panel_
21 #define _h_tX_panel_
22
23 #include <gtk/gtk.h>
24
25 class vtt_fx;
26
27 class tX_panel
28 {
29         GtkWidget *list_box_row;
30         GtkWidget *drag_handle;
31         GtkWidget *mainbox;
32         GtkWidget *topbox;
33         GtkWidget *clientbox;
34         GtkWidget *clientframe;
35         GtkWidget *labelbutton;
36         GtkWidget *minimize_button;
37         GtkWidget *maximize_button;
38         GtkWidget *close_button;
39         GtkWidget *button_box;
40         GtkWidget *controlbox;
41         GtkWidget *add_drywet_button;
42         GtkWidget *remove_drywet_button;
43         int client_hidden;
44
45         public:
46         tX_panel(const char *name, GtkWidget *controlbox, GCallback close_callback = NULL, vtt_fx* effect = NULL);
47         ~tX_panel();
48
49         GtkWidget *get_widget() {return mainbox;};
50         GtkWidget *get_list_box_row() {return list_box_row;};
51         GtkWidget *get_labelbutton() {return labelbutton;}
52         GtkWidget *get_add_drywet_button() { return add_drywet_button; }
53         GtkWidget *get_remove_drywet_button() { return remove_drywet_button; }
54
55         void add_client_widget(GtkWidget *w);
56         int is_hidden() { return client_hidden; }
57         void hide(int i) { client_hidden=i; tX_panel::minimize(NULL, this); }
58
59         static void minimize(GtkWidget *w, tX_panel *p);
60 };
61
62 extern void tX_panel_make_label_bold(GtkWidget *widget);
63 #endif