X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Fcrikey%2Fcrikeywindow.h;h=22188eec1bdd1fb60afd7e9d846dc424f7a64ec2;hp=5af60d541c86f398d29edb6e432ce5a5fc52edad;hb=20002b54e92573aafc97cbc3a85ec529b35bb191;hpb=6f8a01f30489bde88280931c3ef9ea4edeb44d0f diff --git a/cinelerra-5.1/plugins/crikey/crikeywindow.h b/cinelerra-5.1/plugins/crikey/crikeywindow.h index 5af60d54..22188eec 100644 --- a/cinelerra-5.1/plugins/crikey/crikeywindow.h +++ b/cinelerra-5.1/plugins/crikey/crikeywindow.h @@ -22,50 +22,49 @@ #define __CRIKEYWINDOW_H__ #include "guicast.h" -#include "colorpicker.h" class CriKey; class CriKeyWindow; class CriKeyNum; -class CriKeyColorButton; -class CriKeyColorPicker; +class CriKeyPointX; +class CriKeyPointY; class CriKeyDrawMode; class CriKeyDrawModeItem; -class CriKeyKeyMode; -class CriKeyKeyModeItem; class CriKeyThreshold; +class CriKeyDrag; +class CriKeyPointList; +class CriKeyNewPoint; +class CriKeyDelPoint; +class CriKeyPointUp; +class CriKeyPointDn; +class CriKeyReset; + class CriKeyNum : public BC_TumbleTextBox { public: CriKeyWindow *gui; - float *output; - int handle_event(); - CriKeyNum(CriKeyWindow *gui, int x, int y, float &output); + CriKeyNum(CriKeyWindow *gui, int x, int y, float output); ~CriKeyNum(); }; - -class CriKeyColorButton : public BC_GenericButton +class CriKeyPointX : public CriKeyNum { public: - CriKeyColorButton(CriKeyWindow *gui, int x, int y); + CriKeyPointX(CriKeyWindow *gui, int x, int y, float output) + : CriKeyNum(gui, x, y, output) {} + ~CriKeyPointX() {} int handle_event(); - CriKeyWindow *gui; }; - -class CriKeyColorPicker : public ColorPicker +class CriKeyPointY : public CriKeyNum { public: - CriKeyColorPicker(CriKeyColorButton *color_button); - - void start(int color); - int handle_new_color(int color, int alpha); - void handle_done_event(int result); + CriKeyPointY(CriKeyWindow *gui, int x, int y, float output) + : CriKeyNum(gui, x, y, output) {} + ~CriKeyPointY() {} - CriKeyColorButton *color_button; - int color; + int handle_event(); }; class CriKeyDrawMode : public BC_PopupMenu @@ -90,45 +89,109 @@ public: int id; }; -class CriKeyKeyMode : public BC_PopupMenu +class CriKeyThreshold : public BC_FSlider { - const char *key_modes[KEY_MODES]; public: - CriKeyKeyMode(CriKeyWindow *gui, int x, int y); + CriKeyThreshold(CriKeyWindow *gui, int x, int y, int w); + int handle_event(); + CriKeyWindow *gui; +}; - void create_objects(); - void update(int mode, int send=1); +class CriKeyDrag : public BC_CheckBox +{ +public: + CriKeyDrag(CriKeyWindow *gui, int x, int y); + + int handle_event(); CriKeyWindow *gui; - int mode; }; -class CriKeyKeyModeItem : public BC_MenuItem + +class CriKeyPointList : public BC_ListBox { public: - CriKeyKeyModeItem(const char *text, int id) - : BC_MenuItem(text) { this->id = id; } + CriKeyPointList(CriKeyWindow *gui, CriKey *plugin, int x, int y); + ~CriKeyPointList(); int handle_event(); + int selection_changed(); + int column_resize_event(); + ArrayList cols[PT_SZ]; + void clear(); + void new_point(const char *ep, const char *xp, const char *yp, + const char *tp, const char *tag); + void del_point(int i); + void set_point(int i, int c, float v); + void set_point(int i, int c, const char *cp); + int set_selected(int k); + void update(int k); + void update_list(int k); + + CriKeyWindow *gui; - int id; + CriKey *plugin; + const char *titles[PT_SZ]; + int widths[PT_SZ]; }; -class CriKeyThreshold : public BC_FSlider +class CriKeyNewPoint : public BC_GenericButton { public: - CriKeyThreshold(CriKeyWindow *gui, int x, int y, int w); + CriKeyNewPoint(CriKeyWindow *gui, CriKey *plugin, int x, int y); + ~CriKeyNewPoint(); + int handle_event(); + CriKeyWindow *gui; + CriKey *plugin; }; -class CriKeyDrag : public BC_CheckBox +class CriKeyDelPoint : public BC_GenericButton { public: - CriKeyDrag(CriKeyWindow *gui, int x, int y); + CriKeyDelPoint(CriKeyWindow *gui, CriKey *plugin, int x, int y); + ~CriKeyDelPoint(); + + int handle_event(); + + CriKey *plugin; + CriKeyWindow *gui; +}; + +class CriKeyPointUp : public BC_GenericButton +{ +public: + CriKeyPointUp(CriKeyWindow *gui, int x, int y); + ~CriKeyPointUp(); + + int handle_event(); + + CriKeyWindow *gui; +}; + +class CriKeyPointDn : public BC_GenericButton +{ +public: + CriKeyPointDn(CriKeyWindow *gui, int x, int y); + ~CriKeyPointDn(); int handle_event(); + CriKeyWindow *gui; }; +class CriKeyReset : public BC_GenericButton +{ +public: + CriKeyReset(CriKeyWindow *gui, CriKey *plugin, int x, int y); + ~CriKeyReset(); + + int handle_event(); + + CriKey *plugin; + CriKeyWindow *gui; +}; + + class CriKeyWindow : public PluginClientWindow { public: @@ -136,25 +199,30 @@ public: ~CriKeyWindow(); void create_objects(); - void draw_key(int mode); - void update_color(int color); void update_gui(); void start_color_thread(); int grab_event(XEvent *event); void done_event(int result); + int check_configure_change(int ret); + void send_configure_change(); CriKey *plugin; CriKeyThreshold *threshold; CriKeyDrawMode *draw_mode; - CriKeyKeyMode *key_mode; - CriKeyColorButton *color_button; - CriKeyColorPicker *color_picker; - int color_x, color_y, key_x, key_y; BC_Title *title_x, *title_y; - CriKeyNum *point_x, *point_y; - int dragging; + CriKeyPointX *point_x; + CriKeyPointY *point_y; + CriKeyNewPoint *new_point; + CriKeyDelPoint *del_point; + CriKeyPointUp *point_up; + CriKeyPointDn *point_dn; + int dragging, pending_config; + float last_x, last_y; CriKeyDrag *drag; + CriKeyPointList *point_list; + CriKeyReset *reset; + BC_Title *notes; }; #endif