initial commit
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / interpolatevideo / interpolatewindow.h
1 /*
2  * CINELERRA
3  * Copyright (C) 1997-2011 Adam Williams <broadcast at earthling dot net>
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  *
19  */
20
21 #ifndef INTERPOLATEWINDOW_H
22 #define INTERPOLATEWINDOW_H
23
24 #include "guicast.h"
25 #include "interpolatevideo.inc"
26 #include "interpolatewindow.inc"
27 #include "pluginvclient.h"
28
29
30
31 class InterpolateVideoRate : public BC_TextBox
32 {
33 public:
34         InterpolateVideoRate(InterpolateVideo *plugin,
35                 InterpolateVideoWindow *gui,
36                 int x,
37                 int y);
38         int handle_event();
39         InterpolateVideo *plugin;
40         InterpolateVideoWindow *gui;
41 };
42
43 class InterpolateVideoRateMenu : public BC_ListBox
44 {
45 public:
46         InterpolateVideoRateMenu(InterpolateVideo *plugin,
47                 InterpolateVideoWindow *gui,
48                 int x,
49                 int y);
50         int handle_event();
51         InterpolateVideo *plugin;
52         InterpolateVideoWindow *gui;
53 };
54
55 class InterpolateVideoFlow : public BC_CheckBox
56 {
57 public:
58         InterpolateVideoFlow(InterpolateVideo *plugin,
59                 InterpolateVideoWindow *gui,
60                 int x,
61                 int y);
62         int handle_event();
63         InterpolateVideoWindow *gui;
64         InterpolateVideo *plugin;
65 };
66
67 class InterpolateVideoVectors : public BC_CheckBox
68 {
69 public:
70         InterpolateVideoVectors(InterpolateVideo *plugin,
71                 InterpolateVideoWindow *gui,
72                 int x,
73                 int y);
74         int handle_event();
75         InterpolateVideoWindow *gui;
76         InterpolateVideo *plugin;
77 };
78
79 class InterpolateVideoRadius : public BC_IPot
80 {
81 public:
82         InterpolateVideoRadius(InterpolateVideo *plugin,
83                 InterpolateVideoWindow *gui,
84                 int x,
85                 int y);
86         int handle_event();
87         InterpolateVideoWindow *gui;
88         InterpolateVideo *plugin;
89 };
90
91 class InterpolateVideoSize : public BC_IPot
92 {
93 public:
94         InterpolateVideoSize(InterpolateVideo *plugin,
95                 InterpolateVideoWindow *gui,
96                 int x,
97                 int y);
98         int handle_event();
99         InterpolateVideoWindow *gui;
100         InterpolateVideo *plugin;
101 };
102
103 class InterpolateVideoKeyframes : public BC_CheckBox
104 {
105 public:
106         InterpolateVideoKeyframes(InterpolateVideo *plugin,
107                 InterpolateVideoWindow *gui,
108                 int x,
109                 int y);
110         int handle_event();
111         InterpolateVideoWindow *gui;
112         InterpolateVideo *plugin;
113 };
114
115 class InterpolateVideoWindow : public PluginClientWindow
116 {
117 public:
118         InterpolateVideoWindow(InterpolateVideo *plugin);
119         ~InterpolateVideoWindow();
120
121         void create_objects();
122         void update_enabled();
123
124         ArrayList<BC_ListBoxItem*> frame_rates;
125         InterpolateVideo *plugin;
126
127         InterpolateVideoRate *rate;
128         InterpolateVideoRateMenu *rate_menu;
129         InterpolateVideoKeyframes *keyframes;
130         InterpolateVideoFlow *flow;
131         InterpolateVideoVectors *vectors;
132         BC_Title *radius_title;
133         InterpolateVideoRadius *radius;
134         BC_Title *size_title;
135         InterpolateVideoSize *size;
136
137 };
138
139
140
141
142 #endif
143
144