00001 #ifndef WHIRLWINDOW_H
00002 #define WHIRLWINDOW_H
00003
00004 #include "guicast.h"
00005
00006 class WhirlThread;
00007 class WhirlWindow;
00008
00009 #include "filexml.h"
00010 #include "mutex.h"
00011 #include "whirl.h"
00012
00013 class WhirlThread : public Thread
00014 {
00015 public:
00016 WhirlThread(WhirlMain *client);
00017 ~WhirlThread();
00018
00019 void run();
00020
00021 Mutex gui_started;
00022 WhirlMain *client;
00023 WhirlWindow *window;
00024 };
00025
00026 class AngleSlider;
00027 class PinchSlider;
00028 class RadiusSlider;
00029 class AutomatedFn;
00030
00031 class WhirlWindow : public BC_Window
00032 {
00033 public:
00034 WhirlWindow(WhirlMain *client);
00035 ~WhirlWindow();
00036
00037 int create_objects();
00038 int close_event();
00039
00040 WhirlMain *client;
00041 AngleSlider *angle_slider;
00042 PinchSlider *pinch_slider;
00043 RadiusSlider *radius_slider;
00044 AutomatedFn *automation[3];
00045 };
00046
00047 class AngleSlider : public BC_ISlider
00048 {
00049 public:
00050 AngleSlider(WhirlMain *client, int x, int y);
00051 ~AngleSlider();
00052 int handle_event();
00053
00054 WhirlMain *client;
00055 };
00056
00057 class PinchSlider : public BC_ISlider
00058 {
00059 public:
00060 PinchSlider(WhirlMain *client, int x, int y);
00061 ~PinchSlider();
00062 int handle_event();
00063
00064 WhirlMain *client;
00065 };
00066
00067 class RadiusSlider : public BC_ISlider
00068 {
00069 public:
00070 RadiusSlider(WhirlMain *client, int x, int y);
00071 ~RadiusSlider();
00072 int handle_event();
00073
00074 WhirlMain *client;
00075 };
00076
00077 class AutomatedFn : public BC_CheckBox
00078 {
00079 public:
00080 AutomatedFn(WhirlMain *client, WhirlWindow *window, int x, int y, int number);
00081 ~AutomatedFn();
00082 int handle_event();
00083
00084 WhirlMain *client;
00085 WhirlWindow *window;
00086 int number;
00087 };
00088
00089
00090 #endif