Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cpanel.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  * Copyright (C) 2003-2016 Cinelerra CV contributors
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  *
21  */
22
23 #ifndef CPANEL_H
24 #define CPANEL_H
25
26 #include "cwindowgui.inc"
27 #include "cpanel.inc"
28 #include "edl.inc"
29 #include "guicast.h"
30 #include "mwindow.inc"
31
32 class CPanel
33 {
34 public:
35         CPanel(MWindow *mwindow, CWindowGUI *subwindow, int x, int y, int w, int h);
36         ~CPanel();
37
38         void create_objects();
39         void reposition_buttons(int x, int y, int h);
40         void set_operation(int value);
41
42         MWindow *mwindow;
43         CWindowGUI *subwindow;
44         CPanelZoom *cpanel_zoom;
45
46         int x, y, w, h;
47
48         BC_Toggle* operation[CPANEL_OPERATIONS];
49 };
50
51 class CPanelMask : public BC_Toggle
52 {
53 public:
54         CPanelMask(MWindow *mwindow, CPanel *gui, int x, int y);
55         ~CPanelMask();
56         int handle_event();
57         MWindow *mwindow;
58         CPanel *gui;
59 };
60
61 class CPanelRuler : public BC_Toggle
62 {
63 public:
64         CPanelRuler(MWindow *mwindow, CPanel *gui, int x, int y);
65         ~CPanelRuler();
66         int handle_event();
67         MWindow *mwindow;
68         CPanel *gui;
69 };
70
71 class CPanelTitleSafe : public BC_Toggle
72 {
73 public:
74         CPanelTitleSafe(MWindow *mwindow, CPanel *gui, int x, int y);
75         ~CPanelTitleSafe();
76         int handle_event();
77         MWindow *mwindow;
78         CPanel *gui;
79 };
80
81 class CPanelErase : public BC_Toggle
82 {
83 public:
84         CPanelErase(MWindow *mwindow, CPanel *gui, int x, int y);
85         ~CPanelErase();
86         int handle_event();
87         MWindow *mwindow;
88         CPanel *gui;
89 };
90
91 class CPanelAntierase : public BC_Toggle
92 {
93 public:
94         CPanelAntierase(MWindow *mwindow, CPanel *gui, int x, int y);
95         ~CPanelAntierase();
96         int handle_event();
97         MWindow *mwindow;
98         CPanel *gui;
99 };
100
101 class CPanelProtect : public BC_Toggle
102 {
103 public:
104         CPanelProtect(MWindow *mwindow, CPanel *gui, int x, int y);
105         ~CPanelProtect();
106         int handle_event();
107         MWindow *mwindow;
108         CPanel *gui;
109 };
110
111 class CPanelMagnify : public BC_Toggle
112 {
113 public:
114         CPanelMagnify(MWindow *mwindow, CPanel *gui, int x, int y);
115         ~CPanelMagnify();
116         int handle_event();
117         MWindow *mwindow;
118         CPanel *gui;
119 };
120
121 class CPanelCamera : public BC_Toggle
122 {
123 public:
124         CPanelCamera(MWindow *mwindow, CPanel *gui, int x, int y);
125         ~CPanelCamera();
126         int handle_event();
127         MWindow *mwindow;
128         CPanel *gui;
129 };
130
131 class CPanelProj : public BC_Toggle
132 {
133 public:
134         CPanelProj(MWindow *mwindow, CPanel *gui, int x, int y);
135         ~CPanelProj();
136         int handle_event();
137         MWindow *mwindow;
138         CPanel *gui;
139 };
140
141 class CPanelCrop : public BC_Toggle
142 {
143 public:
144         CPanelCrop(MWindow *mwindow, CPanel *gui, int x, int y);
145         ~CPanelCrop();
146         int handle_event();
147         MWindow *mwindow;
148         CPanel *gui;
149 };
150
151 class CPanelEyedrop : public BC_Toggle
152 {
153 public:
154         CPanelEyedrop(MWindow *mwindow, CPanel *gui, int x, int y);
155         ~CPanelEyedrop();
156         int handle_event();
157         MWindow *mwindow;
158         CPanel *gui;
159 };
160
161 class CPanelToolWindow : public BC_Toggle
162 {
163 public:
164         CPanelToolWindow(MWindow *mwindow, CPanel *gui, int x, int y);
165         ~CPanelToolWindow();
166         int handle_event();
167         int set_shown(int shown);
168         MWindow *mwindow;
169         CPanel *gui;
170 };
171
172 class CPanelZoom : public BC_FSlider
173 {
174 public:
175         CPanelZoom(MWindow *mwindow, CPanel *gui, int x, int y, int h);
176         ~CPanelZoom();
177         char *get_caption();
178         int handle_event();
179         int set_shown(int shown);
180         int show_window(int flush=1) { return 0; }
181         int hide_window(int flush=1) { return 0; }
182         int show(int flush=1) { return BC_SubWindow::show_window(flush); }
183         int hide(int flush=1) { return BC_SubWindow::hide_window(flush); }
184         void update(float zoom);
185         MWindow *mwindow;
186         CPanel *gui;
187 };
188
189 #endif