*
*/
-#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 SketcherWindow;
+class SketcherCoord : public BC_TumbleTextBox
+{
+public:
+ SketcherWindow *gui;
+
+ 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 SketcherNum : public BC_TumbleTextBox
{
public:
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, int h);
+ 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
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
ArrayList<BC_ListBoxItem*> cols[CV_SZ];
void clear();
void add_curve(const char *id, const char *pen,
- const char *radius, const char *color);
+ const char *width, const char *color, const char *alpha);
void del_curve(int i);
- void set_curve(int i, int c, const char *cp);
void set_selected(int k);
void update(int k);
void update_list(int k);
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
{
class SketcherPointTypeItem : public BC_MenuItem
{
public:
- SketcherPointTypeItem(int pty);
+ SketcherPointTypeItem(int arc);
int handle_event();
- int pty;
+ int arc;
};
class SketcherPointType : public BC_PopupMenu
{
public:
- SketcherPointType(SketcherWindow *gui, int x, int y, int pty);
+ SketcherPointType(SketcherWindow *gui, int x, int y, int arc);
void create_objects();
- void update(int pty);
+ void update(int arc);
SketcherWindow *gui;
+ int type;
};
void clear();
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);
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
~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_pen, *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;
SketcherDrag *drag;
SketcherPointType *point_type;
SketcherPointList *point_list;
- BC_Title *title_x, *title_y;
+ 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;
- BC_Title *notes0, *notes1, *notes2;
+ BC_Title *notes0, *notes1, *notes2, *notes3;
};
#endif