initial commit
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / stylizeobj / stylizeobjwindow.h
1 /*
2  * CINELERRA
3  * Copyright (C) 2008-2014 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 STYLIZEOBJWINDOW_H
22 #define STYLIZEOBJWINDOW_H
23
24
25 #include "guicast.h"
26
27 class StylizeObj;
28 class StylizeObjWindow;
29 class StylizeObjModeItem;
30 class StylizeObjMode;
31 class StylizeObjFSlider;
32
33 class StylizeObjModeItem : public BC_MenuItem
34 {
35 public:
36         StylizeObjModeItem(StylizeObjMode *popup, int type, const char *text);
37         ~StylizeObjModeItem();
38         int handle_event();
39
40         StylizeObjMode *popup;
41         int type;
42 };
43
44 class StylizeObjMode : public BC_PopupMenu
45 {
46 public:
47         StylizeObjMode(StylizeObjWindow *win, int x, int y, int *value);
48         ~StylizeObjMode();
49         void create_objects();
50         int handle_event();
51         void update(int v);
52         void set_value(int v);
53
54         StylizeObjWindow *win;
55         int *value;
56 };
57
58 class StylizeObjFSlider : public BC_FSlider
59 {
60 public:
61         StylizeObjFSlider(StylizeObjWindow *win,
62                 int x, int y, int w, float min, float max, float *output);
63         ~StylizeObjFSlider();
64         int handle_event();
65
66         StylizeObjWindow *win;
67         float *output;
68 };
69
70 class StylizeObjWindow : public PluginClientWindow
71 {
72 public:
73         StylizeObjWindow(StylizeObj *plugin);
74         ~StylizeObjWindow();
75
76         void create_objects();
77         void update_params();
78         int x0, y0;
79
80         StylizeObj *plugin;
81         StylizeObjMode *mode;
82         BC_Title *smooth_title;
83         BC_Title *edge_title;
84         BC_Title *shade_title;
85         StylizeObjFSlider *smoothing;
86         StylizeObjFSlider *edge_strength;
87         StylizeObjFSlider *shade_factor;
88 };
89
90 #endif