+class PaletteLum : public BC_FSlider
+{
+public:
+ PaletteLum(ColorWindow *window, int x, int y);
+ ~PaletteLum();
+ int handle_event();
+ ColorWindow *window;
+};
+
+class PaletteCr : public BC_FSlider
+{
+public:
+ PaletteCr(ColorWindow *window, int x, int y);
+ ~PaletteCr();
+ int handle_event();
+ ColorWindow *window;
+};
+
+class PaletteCb : public BC_FSlider
+{
+public:
+ PaletteCb(ColorWindow *window, int x, int y);
+ ~PaletteCb();
+ int handle_event();
+ ColorWindow *window;
+};
+
+class PaletteNum : public BC_TumbleTextBox
+{
+public:
+ ColorWindow *window;
+ float *output;
+
+ PaletteNum(ColorWindow *window, int x, int y,
+ float &output, float min, float max);
+ ~PaletteNum();
+ void update_output() { *output = atof(get_text()); }
+ static int calculate_h() { return BC_Tumbler::calculate_h(); }
+};
+
+class PaletteRGB : public PaletteNum
+{
+public:
+ PaletteRGB(ColorWindow *window, int x, int y,
+ float &output, float min, float max)
+ : PaletteNum(window, x, y, output, min, max) {}
+ int handle_event();
+};
+
+class PaletteYUV : public PaletteNum
+{
+public:
+ PaletteYUV(ColorWindow *window, int x, int y,
+ float &output, float min, float max)
+ : PaletteNum(window, x, y, output, min, max) {}
+ int handle_event();
+};
+
+class PaletteHSV : public PaletteNum
+{
+public:
+ PaletteHSV(ColorWindow *window, int x, int y,
+ float &output, float min, float max)
+ : PaletteNum(window, x, y, output, min, max) {}
+ int handle_event();
+};
+
+class PaletteAPH : public PaletteNum
+{
+public:
+ PaletteAPH(ColorWindow *window, int x, int y,
+ float &output, float min, float max)
+ : PaletteNum(window, x, y, output, min, max) {}
+ int handle_event();
+};
+
+class PaletteHexButton : public BC_GenericButton
+{
+public:
+ PaletteHexButton(ColorWindow *window, int x, int y);
+ ~PaletteHexButton();
+ int handle_event();
+ ColorWindow *window;
+};
+
+class PaletteHex : public BC_TextBox
+{
+public:
+ PaletteHex(ColorWindow *window, int x, int y, const char *hex);
+ ~PaletteHex();
+ int keypress_event();
+ void update();
+ ColorWindow *window;
+};
+
+class PaletteGrabButton : public BC_Button
+{
+public:
+ PaletteGrabButton(ColorWindow *window, int x, int y);
+ ~PaletteGrabButton();
+ int handle_event();
+
+ ColorWindow *window;
+ VFrame *vframes[3];
+};
+
+class PaletteHistory : public BC_SubWindow
+{
+public:
+ PaletteHistory(ColorWindow *window, int x, int y);
+ ~PaletteHistory();
+ void update(int flush=1);
+ int button_press_event();
+ int button_release_event();
+ int cursor_motion_event();
+ int cursor_leave_event();
+ int repeat_event(int64_t duration);
+
+ ColorWindow *window;
+ int button_down;
+};
+