anonymous contribution for much improved ChromakeyHSV plugin menu with boxes to set...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / yuv411 / yuv411win.h
1 /*
2  * CINELERRA
3  * Copyright (C) 2016 Eric Olson
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License as published
7  * by 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, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18  * USA
19  */
20
21 #ifndef YUV411WIN_H
22 #define YUV411WIN_H
23
24 #include "filexml.inc"
25 #include "yuv411.h"
26 #include "mutex.h"
27 #include "pluginvclient.h"
28 #include "bctitle.h"
29 #include "bccolors.h"
30 #include "fonts.h"
31
32 class yuv411Toggle;
33 class yuv411Offset;
34 class yuv411Thresh;
35 class yuv411Bias;
36 class yuv411Reset;
37
38 class yuv411Window : public PluginClientWindow
39 {
40 public:
41         yuv411Window(yuv411Main *client);
42         ~yuv411Window();
43
44         void create_objects();
45         void update();
46         int close_event();
47         void update_enables();
48         void show_warning(int warn);
49
50         yuv411Main *client;
51         yuv411Toggle *avg_vertical;
52         yuv411Toggle *int_horizontal;
53         yuv411Toggle *inpainting;
54         yuv411Offset *offset;
55         yuv411Thresh *thresh;
56         yuv411Bias *bias;
57         BC_Title *yuv_warning;
58         int colormodel;
59         yuv411Reset *reset;
60 };
61
62 class yuv411Toggle : public BC_CheckBox
63 {
64 public:
65         yuv411Toggle(yuv411Main *client, int *output, char *string, int x, int y);
66         ~yuv411Toggle();
67         int handle_event();
68
69         yuv411Main *client;
70         int *output;
71 };
72
73 class yuv411Offset : public BC_FSlider
74 {
75 public:
76         yuv411Offset(yuv411Main *client, int x, int y);
77         int handle_event();
78         yuv411Main *client;
79 };
80
81 class yuv411Thresh : public BC_FSlider
82 {
83 public:
84         yuv411Thresh(yuv411Main *client, int x, int y);
85         int handle_event();
86         yuv411Main *client;
87 };
88
89 class yuv411Bias : public BC_FSlider
90 {
91 public:
92         yuv411Bias(yuv411Main *client, int x, int y);
93         int handle_event();
94         yuv411Main *client;
95 };
96
97 class yuv411Reset : public BC_GenericButton
98 {
99 public:
100         yuv411Reset(yuv411Main *client, yuv411Window *window, int x, int y);
101         ~yuv411Reset();
102         int handle_event();
103         yuv411Main *client;
104         yuv411Window *window;
105 };
106
107 #endif