00001 #ifndef LINEARIZEWINDOW_H
00002 #define LINEARIZEWINDOW_H
00003
00004
00005 class GammaThread;
00006 class GammaWindow;
00007 class MaxSlider;
00008 class MaxText;
00009 class GammaSlider;
00010 class GammaText;
00011 class GammaAuto;
00012 class GammaPlot;
00013 class GammaColorPicker;
00014
00015 #include "filexml.h"
00016 #include "guicast.h"
00017 #include "mutex.h"
00018 #include "gamma.h"
00019 #include "pluginclient.h"
00020
00021
00022 PLUGIN_THREAD_HEADER(GammaMain, GammaThread, GammaWindow)
00023
00024 class GammaWindow : public BC_Window
00025 {
00026 public:
00027 GammaWindow(GammaMain *client, int x, int y);
00028
00029 int create_objects();
00030 int close_event();
00031 void update();
00032 void update_histogram();
00033
00034
00035 BC_SubWindow *histogram;
00036 GammaMain *client;
00037 MaxSlider *max_slider;
00038 MaxText *max_text;
00039 GammaSlider *gamma_slider;
00040 GammaText *gamma_text;
00041 GammaAuto *automatic;
00042 GammaPlot *plot;
00043 };
00044
00045 class MaxSlider : public BC_FSlider
00046 {
00047 public:
00048 MaxSlider(GammaMain *client,
00049 GammaWindow *gui,
00050 int x,
00051 int y,
00052 int w);
00053 int handle_event();
00054 GammaMain *client;
00055 GammaWindow *gui;
00056 };
00057
00058 class MaxText : public BC_TextBox
00059 {
00060 public:
00061 MaxText(GammaMain *client,
00062 GammaWindow *gui,
00063 int x,
00064 int y,
00065 int w);
00066 int handle_event();
00067 GammaMain *client;
00068 GammaWindow *gui;
00069 };
00070
00071 class GammaSlider : public BC_FSlider
00072 {
00073 public:
00074 GammaSlider(GammaMain *client,
00075 GammaWindow *gui,
00076 int x,
00077 int y,
00078 int w);
00079 int handle_event();
00080 GammaMain *client;
00081 GammaWindow *gui;
00082 };
00083
00084 class GammaText : public BC_TextBox
00085 {
00086 public:
00087 GammaText(GammaMain *client,
00088 GammaWindow *gui,
00089 int x,
00090 int y,
00091 int w);
00092 int handle_event();
00093 GammaMain *client;
00094 GammaWindow *gui;
00095 };
00096
00097 class GammaAuto : public BC_CheckBox
00098 {
00099 public:
00100 GammaAuto(GammaMain *plugin, int x, int y);
00101 int handle_event();
00102 GammaMain *plugin;
00103 };
00104
00105 class GammaPlot : public BC_CheckBox
00106 {
00107 public:
00108 GammaPlot(GammaMain *plugin, int x, int y);
00109 int handle_event();
00110 GammaMain *plugin;
00111 };
00112
00113 class GammaColorPicker : public BC_GenericButton
00114 {
00115 public:
00116 GammaColorPicker(GammaMain *plugin,
00117 GammaWindow *gui,
00118 int x,
00119 int y);
00120 int handle_event();
00121 GammaMain *plugin;
00122 GammaWindow *gui;
00123 };
00124
00125 #endif