X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Fsketcher%2Fsketcherwindow.h;h=6e388a02f26aa961ce2d13ad73285d5992eb17c2;hp=a0cc4ae21044ad6349e80e30f6a5d5031c38b436;hb=4a6b59824b2db18e6cc49b43a971923d5e5903ae;hpb=83bfb86d01b353bab485d0ccc336e0572bcb63c6;ds=sidebyside diff --git a/cinelerra-5.1/plugins/sketcher/sketcherwindow.h b/cinelerra-5.1/plugins/sketcher/sketcherwindow.h index a0cc4ae2..6e388a02 100644 --- a/cinelerra-5.1/plugins/sketcher/sketcherwindow.h +++ b/cinelerra-5.1/plugins/sketcher/sketcherwindow.h @@ -18,30 +18,33 @@ * */ -#ifndef __CRIKEYWINDOW_H__ -#define __CRIKEYWINDOW_H__ +#ifndef __SKETCHERWINDOW_H__ +#define __SKETCHERWINDOW_H__ +#include "sketcher.h" #include "guicast.h" #include "colorpicker.h" class Sketcher; +class SketcherCoord; class SketcherNum; class SketcherCurveTypeItem; class SketcherCurveType; class SketcherCurvePenItem; class SketcherCurvePen; class SketcherCurveColor; -class SketcherCurveColorPicker; -class SketcherCurveColorThread; class SketcherNewCurve; class SketcherDelCurve; class SketcherCurveUp; class SketcherCurveDn; -class SketcherCurveRadius; +class SketcherCurveWidth; class SketcherCurveList; class SketcherPointX; class SketcherPointY; +class SketcherPointId; class SketcherDrag; +class SketcherPointTypeItem; +class SketcherPointType; class SketcherPointList; class SketcherNewPoint; class SketcherDelPoint; @@ -51,33 +54,27 @@ class SketcherResetCurves; class SketcherResetPoints; class SketcherWindow; -class SketcherNum : public BC_TumbleTextBox + +class SketcherCoord : public BC_TumbleTextBox { public: SketcherWindow *gui; - SketcherNum(SketcherWindow *gui, int x, int y, int output, - int mn=-32767, int mx=32767); - ~SketcherNum(); - int update(int v) { return BC_TumbleTextBox::update((int64_t)v); } + SketcherCoord(SketcherWindow *gui, int x, int y, coord output, + coord mn=-32767, coord mx=32767); + ~SketcherCoord(); + int update(coord v) { return BC_TumbleTextBox::update((coord)v); } }; -class SketcherCurveTypeItem : public BC_MenuItem -{ -public: - SketcherCurveTypeItem(int ty); - int handle_event(); - int ty; -}; - -class SketcherCurveType : public BC_PopupMenu +class SketcherNum : public BC_TumbleTextBox { public: - SketcherCurveType(SketcherWindow *gui, int x, int y, int ty); - void create_objects(); - void update(int ty); - SketcherWindow *gui; + + SketcherNum(SketcherWindow *gui, int x, int y, int output, + int mn=-32767, int mx=32767); + ~SketcherNum(); + int update(int v) { return BC_TumbleTextBox::update((int64_t)v); } }; class SketcherCurvePenItem : public BC_MenuItem @@ -93,55 +90,25 @@ class SketcherCurvePen : public BC_PopupMenu public: SketcherCurvePen(SketcherWindow *gui, int x, int y, int pen); void create_objects(); - void update(int ty); + void update(int pen); SketcherWindow *gui; + int pen; }; -class SketcherCurveColor : public BC_Button +class SketcherCurveColor : public ColorBoxButton { public: - SketcherCurveColor(SketcherWindow *gui, int x, int y, int w); + SketcherCurveColor(SketcherWindow *gui, + int x, int y, int w, int h, int color, int alpha); ~SketcherCurveColor(); - void set_color(int color); - void update_gui(int color); - int handle_event(); - - int color; - VFrame *vframes[3]; - SketcherWindow *gui; -}; - -class SketcherCurveColorPicker : public ColorPicker -{ -public: - SketcherCurveColorPicker(SketcherWindow *gui, SketcherCurveColor *curve_color); - ~SketcherCurveColorPicker(); - void start(int color); int handle_new_color(int color, int alpha); - void update_gui(); void handle_done_event(int result); - SketcherWindow *gui; int color; - SketcherCurveColor *color_button; - SketcherCurveColorThread *color_update; -}; - -class SketcherCurveColorThread : public Thread -{ -public: - SketcherCurveColorThread(SketcherCurveColorPicker *color_picker); - ~SketcherCurveColorThread(); - - void start(); - void stop(); - void run(); - - SketcherCurveColorPicker *color_picker; - int done; - Condition *update_lock; + VFrame *vframes[3]; + SketcherWindow *gui; }; class SketcherNewCurve : public BC_GenericButton @@ -190,14 +157,15 @@ public: SketcherWindow *gui; }; -class SketcherCurveRadius : public SketcherNum +class SketcherCurveWidth : public SketcherNum { public: - SketcherCurveRadius(SketcherWindow *gui, int x, int y, float output) - : SketcherNum(gui, x, y, output, 0, 255) {} - ~SketcherCurveRadius() {} + SketcherCurveWidth(SketcherWindow *gui, int x, int y, int width); + ~SketcherCurveWidth(); int handle_event(); + void update(int width); + int width; }; class SketcherCurveList : public BC_ListBox @@ -211,8 +179,8 @@ public: int column_resize_event(); ArrayList cols[CV_SZ]; void clear(); - void add_curve(const char *id, const char *type, - const char *radius, const char *pen, const char *color); + void add_curve(const char *id, const char *pen, + const char *width, const char *color, const char *alpha); void del_curve(int i); void set_selected(int k); void update(int k); @@ -220,30 +188,40 @@ public: SketcherWindow *gui; Sketcher *plugin; - const char *titles[CV_SZ]; - int widths[CV_SZ]; + const char *col_titles[CV_SZ]; + int col_widths[CV_SZ]; }; -class SketcherPointX : public SketcherNum +class SketcherPointX : public SketcherCoord { public: SketcherPointX(SketcherWindow *gui, int x, int y, float output) - : SketcherNum(gui, x, y, output) {} + : SketcherCoord(gui, x, y, output) {} ~SketcherPointX() {} int handle_event(); }; -class SketcherPointY : public SketcherNum +class SketcherPointY : public SketcherCoord { public: SketcherPointY(SketcherWindow *gui, int x, int y, float output) - : SketcherNum(gui, x, y, output) {} + : SketcherCoord(gui, x, y, output) {} ~SketcherPointY() {} int handle_event(); }; +class SketcherPointId : public SketcherNum +{ +public: + SketcherPointId(SketcherWindow *gui, int x, int y, int output) + : SketcherNum(gui, x, y, output) {} + ~SketcherPointId() {} + + int handle_event(); +}; + class SketcherDrag : public BC_CheckBox { @@ -254,6 +232,25 @@ public: SketcherWindow *gui; }; +class SketcherPointTypeItem : public BC_MenuItem +{ +public: + SketcherPointTypeItem(int arc); + int handle_event(); + int arc; +}; + +class SketcherPointType : public BC_PopupMenu +{ +public: + SketcherPointType(SketcherWindow *gui, int x, int y, int arc); + void create_objects(); + void update(int arc); + + SketcherWindow *gui; + int type; +}; + class SketcherPointList : public BC_ListBox { @@ -266,8 +263,9 @@ public: int column_resize_event(); ArrayList cols[PT_SZ]; void clear(); - void add_point(const char *id, const char *xp, const char *yp); + void add_point(const char *id, const char *ty, const char *xp, const char *yp); void set_point(int i, int c, int v); + void set_point(int i, int c, coord v); void set_point(int i, int c, const char *cp); void set_selected(int k); void update(int k); @@ -276,8 +274,8 @@ public: SketcherWindow *gui; Sketcher *plugin; - const char *titles[PT_SZ]; - int widths[PT_SZ]; + const char *col_titles[PT_SZ]; + int col_widths[PT_SZ]; }; class SketcherNewPoint : public BC_GenericButton @@ -358,44 +356,52 @@ public: ~SketcherWindow(); void create_objects(); + void done_event(int result); void update_gui(); - void start_color_thread(SketcherCurveColor *curve_color); int grab_event(XEvent *event); int do_grab_event(XEvent *event); - void done_event(int result); + int grab_button_press(XEvent *event); + int grab_cursor_motion(); void send_configure_change(); int keypress_event(); Sketcher *plugin; - BC_Title *title_type, *title_pen; - BC_Title *title_color, *title_radius; + BC_Title *title_pen, *title_color, *title_width; SketcherCurveType *curve_type; SketcherCurvePen *curve_pen; SketcherCurveColor *curve_color; - SketcherCurveColorPicker *color_picker; SketcherNewCurve *new_curve; SketcherDelCurve *del_curve; SketcherCurveUp *curve_up; SketcherCurveDn *curve_dn; - SketcherCurveRadius *curve_radius; + SketcherCurveWidth *curve_width; SketcherCurveList *curve_list; SketcherResetCurves *reset_curves; - BC_Title *title_x, *title_y; + SketcherResetPoints *reset_points; + SketcherDrag *drag; + SketcherPointType *point_type; + SketcherPointList *point_list; + BC_Title *title_x, *title_y, *title_id; SketcherPointX *point_x; SketcherPointY *point_y; + SketcherPointId *point_id; SketcherNewPoint *new_point; SketcherDelPoint *del_point; SketcherPointUp *point_up; SketcherPointDn *point_dn; - int dragging, pending_config; + int64_t position; + float projector_x, projector_y, projector_z; + int track_w, track_h; int new_points; + float cursor_x, cursor_y; + float output_x, output_y; + int state, dragging; + int pending_motion, pending_config; + XEvent motion_event; float last_x, last_y; - SketcherDrag *drag; - SketcherPointList *point_list; - SketcherResetPoints *reset_points; - BC_Title *notes0, *notes1, *notes2; + BC_Title *notes0, *notes1, *notes2, *notes3; }; #endif