X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcolorpicker.h;h=1fffa252250cd1b4dca24892c45de5cab58b281e;hp=0ae021edc6a31696785a5cfc88a2876c70769b24;hb=9668279ccef86a9cc9138aaa1a659f158698f829;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1 diff --git a/cinelerra-5.1/cinelerra/colorpicker.h b/cinelerra-5.1/cinelerra/colorpicker.h index 0ae021ed..1fffa252 100644 --- a/cinelerra-5.1/cinelerra/colorpicker.h +++ b/cinelerra-5.1/cinelerra/colorpicker.h @@ -27,6 +27,7 @@ #include "bctextbox.h" #include "bcsubwindow.h" #include "clip.h" +#include "colorpicker.inc" #include "condition.inc" #include "guicast.h" #include "mutex.inc" @@ -35,28 +36,6 @@ #define PALLETTE_HISTORY_SIZE 16 -class ColorWindow; -class PaletteWheel; -class PaletteWheelValue; -class PaletteOutput; -class PaletteHue; -class PaletteSat; -class PaletteVal; -class PaletteRed; -class PaletteGrn; -class PaletteBlu; -class PaletteLum; -class PaletteCr; -class PaletteCb; -class PaletteAlpha; -class PaletteHSV; -class PaletteRGB; -class PaletteYUV; -class PaletteAPH; -class PaletteHexButton; -class PaletteHex; -class PaletteGrabButton; -class PaletteHistory; class ColorPicker : public BC_DialogThread { @@ -64,13 +43,15 @@ public: ColorPicker(int do_alpha = 0, const char *title = 0); ~ColorPicker(); - void start_window(int output, int alpha, int do_okcancel=0); + void start_window(int output, int alpha, int ok_cancel=0); virtual int handle_new_color(int output, int alpha); void update_gui(int output, int alpha); BC_Window* new_gui(); + virtual void create_objects(ColorWindow *gui) {} + int orig_color, orig_alpha; int output, alpha; - int do_alpha, do_okcancel; + int do_alpha, ok_cancel; const char *title; }; @@ -102,6 +83,7 @@ public: void update_yuv(float y, float u, float v); void update_rgb_hex(const char *hex); int rgb888(); + int alpha8(); ColorPicker *thread; PaletteWheel *wheel; @@ -370,4 +352,87 @@ public: int button_down; }; +class ColorButton : public BC_Button +{ +public: + ColorButton(const char *title, + int x, int y, int w, int h, + int color, int alpha, int ok_cancel); + ~ColorButton(); + + virtual void set_color(int color); + virtual int handle_new_color(int color, int alpha); + virtual void handle_done_event(int result); + + void close_picker(); + void update_gui(int color, int alpha); + void update_gui(int color); + int handle_event(); + + const char *title; + int color, alpha, ok_cancel; + int orig_color, orig_alpha; + + VFrame *vframes[3]; + ColorButtonPicker *color_picker; + ColorButtonThread *color_thread; +}; + +class ColorButtonPicker : public ColorPicker +{ +public: + ColorButtonPicker(ColorButton *color_button); + ~ColorButtonPicker(); + void update(int color, int alpha); + int handle_new_color(int color, int alpha); + void handle_done_event(int result); + void update_gui(); + void update_gui(int color, int alpha); + + ColorButton *color_button; +}; + +class ColorButtonThread : public Thread +{ +public: + ColorButtonThread(ColorButton *color_button); + ~ColorButtonThread(); + + void start(); + void stop(); + void run(); + + ColorButton *color_button; + Condition *update_lock; + int done; +}; + +class ColorBoxButton : public ColorButton +{ +public: + ColorBoxButton(const char *title, + int x, int y, int w, int h, + int color, int alpha, int ok_cancel); + ~ColorBoxButton(); + void create_objects(); + + virtual int handle_new_color(int color, int alpha); + virtual void handle_done_event(int result); + void set_color(int color); +}; + +class ColorCircleButton : public ColorButton +{ +public: + ColorCircleButton(const char *title, + int x, int y, int w, int h, + int color, int alpha, int ok_cancel); + ~ColorCircleButton(); + void create_objects(); + + virtual int handle_new_color(int color, int alpha); + virtual void handle_done_event(int result); + void set_color(int color); +}; + #endif