00001 #ifndef IVTCWINDOW_H
00002 #define IVTCWINDOW_H
00003
00004 #include "guicast.h"
00005
00006 class IVTCThread;
00007 class IVTCWindow;
00008
00009 #include "filexml.h"
00010 #include "mutex.h"
00011 #include "ivtc.h"
00012
00013 #define TOTAL_PATTERNS 3
00014
00015 PLUGIN_THREAD_HEADER(IVTCMain, IVTCThread, IVTCWindow)
00016
00017
00018 class IVTCOffset;
00019 class IVTCFieldOrder;
00020 class IVTCAuto;
00021 class IVTCAutoThreshold;
00022 class IVTCPattern;
00023
00024 class IVTCWindow : public BC_Window
00025 {
00026 public:
00027 IVTCWindow(IVTCMain *client, int x, int y);
00028 ~IVTCWindow();
00029
00030 int create_objects();
00031 int close_event();
00032
00033 IVTCMain *client;
00034 IVTCOffset *frame_offset;
00035 IVTCFieldOrder *first_field;
00036
00037 IVTCAutoThreshold *threshold;
00038 IVTCPattern *pattern[TOTAL_PATTERNS];
00039 };
00040
00041 class IVTCOffset : public BC_TextBox
00042 {
00043 public:
00044 IVTCOffset(IVTCMain *client, int x, int y);
00045 ~IVTCOffset();
00046 int handle_event();
00047 IVTCMain *client;
00048 };
00049
00050 class IVTCFieldOrder : public BC_CheckBox
00051 {
00052 public:
00053 IVTCFieldOrder(IVTCMain *client, int x, int y);
00054 ~IVTCFieldOrder();
00055 int handle_event();
00056 IVTCMain *client;
00057 };
00058
00059 class IVTCAuto : public BC_CheckBox
00060 {
00061 public:
00062 IVTCAuto(IVTCMain *client, int x, int y);
00063 ~IVTCAuto();
00064 int handle_event();
00065 IVTCMain *client;
00066 };
00067
00068 class IVTCPattern : public BC_Radial
00069 {
00070 public:
00071 IVTCPattern(IVTCMain *client,
00072 IVTCWindow *window,
00073 int number,
00074 char *text,
00075 int x,
00076 int y);
00077 ~IVTCPattern();
00078 int handle_event();
00079 IVTCWindow *window;
00080 IVTCMain *client;
00081 int number;
00082 };
00083
00084 class IVTCAutoThreshold : public BC_TextBox
00085 {
00086 public:
00087 IVTCAutoThreshold(IVTCMain *client, int x, int y);
00088 ~IVTCAutoThreshold();
00089 int handle_event();
00090 IVTCMain *client;
00091 };
00092
00093 #endif