patch to apply when compiling for 10/12 bit by Andrew
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mbuttons.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #ifndef MBUTTONS_H
23 #define MBUTTONS_H
24
25 class KeyFrameButton;
26 class ExpandX;
27 class ZoomX;
28 class ExpandY;
29 class ZoomY;
30 class ExpandTrack;
31 class ZoomTrack;
32 class ExpandVideo;
33 class MainEditing;
34 class ZoomVideo;
35 class LabelButton;
36 class Cut;
37 class Copy;
38 class Paste;
39 class MainFFMpegToggle;
40
41 #include "editpanel.h"
42 #include "guicast.h"
43 #include "labelnavigate.inc"
44 #include "mbuttons.inc"
45 #include "mwindow.inc"
46 #include "mwindowgui.inc"
47 #include "playtransport.h"
48 #include "record.inc"
49
50
51
52
53 class MButtons : public BC_SubWindow
54 {
55 public:
56         MButtons(MWindow *mwindow, MWindowGUI *gui);
57         ~MButtons();
58
59         void create_objects();
60         int resize_event();
61         int keypress_event();
62         void update();
63
64         MWindowGUI *gui;
65         MWindow *mwindow;
66         PlayTransport *transport;
67         MainEditing *edit_panel;
68         MainFFMpegToggle *ffmpeg_toggle;
69 };
70
71 class MainTransport : public PlayTransport
72 {
73 public:
74         MainTransport(MWindow *mwindow, MButtons *mbuttons, int x, int y);
75         bool use_mixers() { return true; }
76         void goto_start();
77         void goto_end();
78 };
79
80 class MainEditing : public EditPanel
81 {
82 public:
83         MainEditing(MWindow *mwindow, MButtons *mbuttons, int x, int y);
84         virtual ~MainEditing() {}
85
86         double get_position();
87         void set_position(double position);
88         void set_click_to_play(int v);
89
90         void panel_stop_transport();
91         void panel_toggle_label();
92         void panel_next_label(int cut);
93         void panel_prev_label(int cut);
94         void panel_prev_edit(int cut);
95         void panel_next_edit(int cut);
96         void panel_copy_selection();
97         void panel_overwrite_selection();
98         void panel_splice_selection();
99         void panel_set_inpoint();
100         void panel_set_outpoint();
101         void panel_unset_inoutpoint();
102         void panel_to_clip();
103         void panel_cut();
104         void panel_paste();
105         void panel_fit_selection();
106         void panel_fit_autos(int all);
107         void panel_set_editing_mode(int mode);
108         void panel_set_auto_keyframes(int v);
109         void panel_set_span_keyframes(int v);
110         void panel_set_labels_follow_edits(int v);
111         void panel_set_gang_tracks(int v);
112
113         MWindow *mwindow;
114         MButtons *mbuttons;
115 };
116
117 #endif