00001 #ifndef RESIZETRACKTHREAD_H
00002 #define RESIZETRACKTHREAD_h
00003
00004
00005
00006
00007
00008 #include "guicast.h"
00009 #include "mutex.inc"
00010 #include "mwindow.inc"
00011 #include "thread.h"
00012 #include "track.inc"
00013
00014
00015 class ResizeTrackWindow;
00016
00017 class ResizeTrackThread : public Thread
00018 {
00019 public:
00020 ResizeTrackThread(MWindow *mwindow, int track_number);
00021 ~ResizeTrackThread();
00022
00023 void start_window(Track *track, int track_number);
00024 void run();
00025
00026 ResizeTrackWindow *window;
00027 MWindow *mwindow;
00028 int track_number;
00029 int w, h;
00030 int w1, h1;
00031 double w_scale, h_scale;
00032 };
00033
00034
00035
00036 class ResizeTrackWindow;
00037
00038
00039 class ResizeTrackWidth : public BC_TextBox
00040 {
00041 public:
00042 ResizeTrackWidth(ResizeTrackWindow *gui,
00043 ResizeTrackThread *thread,
00044 int x,
00045 int y);
00046 int handle_event();
00047 ResizeTrackWindow *gui;
00048 ResizeTrackThread *thread;
00049 };
00050
00051 class ResizeTrackSwap : public BC_Button
00052 {
00053 public:
00054 ResizeTrackSwap(ResizeTrackWindow *gui,
00055 ResizeTrackThread *thread,
00056 int x,
00057 int y);
00058 int handle_event();
00059 ResizeTrackWindow *gui;
00060 ResizeTrackThread *thread;
00061 };
00062
00063 class ResizeTrackHeight : public BC_TextBox
00064 {
00065 public:
00066 ResizeTrackHeight(ResizeTrackWindow *gui,
00067 ResizeTrackThread *thread,
00068 int x,
00069 int y);
00070 int handle_event();
00071 ResizeTrackWindow *gui;
00072 ResizeTrackThread *thread;
00073 };
00074
00075
00076 class ResizeTrackScaleW : public BC_TextBox
00077 {
00078 public:
00079 ResizeTrackScaleW(ResizeTrackWindow *gui,
00080 ResizeTrackThread *thread,
00081 int x,
00082 int y);
00083 int handle_event();
00084 ResizeTrackWindow *gui;
00085 ResizeTrackThread *thread;
00086 };
00087
00088 class ResizeTrackScaleH : public BC_TextBox
00089 {
00090 public:
00091 ResizeTrackScaleH(ResizeTrackWindow *gui,
00092 ResizeTrackThread *thread,
00093 int x,
00094 int y);
00095 int handle_event();
00096 ResizeTrackWindow *gui;
00097 ResizeTrackThread *thread;
00098 };
00099
00100
00101 class ResizeTrackWindow : public BC_Window
00102 {
00103 public:
00104 ResizeTrackWindow(MWindow *mwindow,
00105 ResizeTrackThread *thread,
00106 int x,
00107 int y);
00108 ~ResizeTrackWindow();
00109
00110 void create_objects();
00111 void update(int changed_scale,
00112 int changed_size,
00113 int changed_all);
00114
00115 MWindow *mwindow;
00116 ResizeTrackThread *thread;
00117 ResizeTrackWidth *w;
00118 ResizeTrackHeight *h;
00119 ResizeTrackScaleW *w_scale;
00120 ResizeTrackScaleH *h_scale;
00121 };
00122
00123
00124
00125 #endif