4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
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.
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.
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
23 * 2023. Derivative by Flip plugin.
26 #ifndef MIRRORWINDOW_H
27 #define MIRRORWINDOW_H
34 class MirrorReflectionCenter;
35 class MirrorReflectionCenterXText;
36 class MirrorReflectionCenterXSlider;
37 class MirrorReflectionCenterYText;
38 class MirrorReflectionCenterYSlider;
39 class MirrorReflectionCenterClr;
44 #include "filexml.inc"
47 #include "pluginvclient.h"
49 #define RESET_DEFAULT_SETTINGS 10
51 #define RESET_REFLECTION_CENTER_X 1
52 #define RESET_REFLECTION_CENTER_Y 2
55 class MirrorWindow : public PluginClientWindow
58 MirrorWindow(MirrorMain *client);
61 void create_objects();
62 void update(int clear);
64 void update_reflection_center_enable();
67 MirrorToggle *mirror_vertical;
68 MirrorToggle *mirror_horizontal;
69 MirrorSwapSide *mirror_swapvertical;
70 MirrorSwapSide *mirror_swaphorizontal;
71 MirrorReflectionCenter *reflection_center_enable;
73 // Mirror Reflection Center X, Y
74 MirrorReflectionCenterXText *reflection_center_x_text;
75 MirrorReflectionCenterXSlider *reflection_center_x_slider;
76 MirrorReflectionCenterClr *reflection_center_x_clr;
78 MirrorReflectionCenterYText *reflection_center_y_text;
79 MirrorReflectionCenterYSlider *reflection_center_y_slider;
80 MirrorReflectionCenterClr *reflection_center_y_clr;
85 class MirrorToggle : public BC_CheckBox
88 MirrorToggle(MirrorMain *client, int *output, char *string, int x, int y);
96 class MirrorSwapSide : public BC_CheckBox
99 MirrorSwapSide(MirrorMain *client, int *output, char *string, int x, int y);
107 class MirrorReflectionCenter : public BC_CheckBox
110 MirrorReflectionCenter(MirrorWindow *window, MirrorMain *client, int x, int y);
111 ~MirrorReflectionCenter();
115 MirrorWindow *window;
118 class MirrorReflectionCenterXText : public BC_TumbleTextBox
121 MirrorReflectionCenterXText(MirrorWindow *window,
125 ~MirrorReflectionCenterXText();
128 MirrorWindow *window;
131 class MirrorReflectionCenterXSlider : public BC_FSlider
134 MirrorReflectionCenterXSlider(MirrorWindow *window, MirrorMain *client,
135 int x, int y, int w);
136 ~MirrorReflectionCenterXSlider();
138 MirrorWindow *window;
142 class MirrorReflectionCenterYText : public BC_TumbleTextBox
145 MirrorReflectionCenterYText(MirrorWindow *window,
149 ~MirrorReflectionCenterYText();
152 MirrorWindow *window;
155 class MirrorReflectionCenterYSlider : public BC_FSlider
158 MirrorReflectionCenterYSlider(MirrorWindow *window, MirrorMain *client,
159 int x, int y, int w);
160 ~MirrorReflectionCenterYSlider();
162 MirrorWindow *window;
166 class MirrorReflectionCenterClr : public BC_Button
169 MirrorReflectionCenterClr(MirrorWindow *window, MirrorMain *client,
170 int x, int y, int clear);
171 ~MirrorReflectionCenterClr();
173 MirrorWindow *window;
178 class MirrorReset : public BC_GenericButton
181 MirrorReset(MirrorMain *client, MirrorWindow *window, int x, int y);
185 MirrorWindow *window;