* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
*/
-#ifndef __CRIKEYWINDOW_H__
-#define __CRIKEYWINDOW_H__
+#ifndef __SKETCHERWINDOW_H__
+#define __SKETCHERWINDOW_H__
#include "sketcher.h"
#include "guicast.h"
class SketcherCurvePenItem;
class SketcherCurvePen;
class SketcherCurveColor;
-class SketcherCurveColorPicker;
-class SketcherCurveColorThread;
class SketcherNewCurve;
class SketcherDelCurve;
class SketcherCurveUp;
class SketcherCurveDn;
class SketcherCurveWidth;
+class SketcherAliasItem;
+class SketcherAliasing;
class SketcherCurveList;
class SketcherPointX;
class SketcherPointY;
class SketcherPointDn;
class SketcherResetCurves;
class SketcherResetPoints;
+class SketcherHelp;
class SketcherWindow;
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
int width;
};
+class SketcherAliasItem : public BC_MenuItem
+{
+public:
+ SketcherAliasItem(SketcherAliasing *popup, int v);
+ int handle_event();
+
+ SketcherAliasing *popup;
+ int v;
+};
+
+class SketcherAliasing : public BC_PopupMenu
+{
+public:
+ SketcherAliasing(SketcherWindow *gui, Sketcher *plugin,
+ int x, int y);
+ ~SketcherAliasing();
+
+ const char *alias_to_text(int alias);
+ void create_objects();
+
+ Sketcher *plugin;
+ SketcherWindow *gui;
+};
+
class SketcherCurveList : public BC_ListBox
{
public:
SketcherWindow *gui;
};
+class SketcherHelp : public BC_CheckBox
+{
+public:
+ SketcherHelp(SketcherWindow *gui, Sketcher *plugin, int x, int y);
+ ~SketcherHelp();
+ int handle_event();
+
+ Sketcher *plugin;
+ SketcherWindow *gui;
+};
class SketcherWindow : public PluginClientWindow
{
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);
+ int handle_ungrab();
int grab_button_press(XEvent *event);
int grab_cursor_motion();
void send_configure_change();
SketcherCurveType *curve_type;
SketcherCurvePen *curve_pen;
SketcherCurveColor *curve_color;
- SketcherCurveColorPicker *color_picker;
SketcherNewCurve *new_curve;
SketcherDelCurve *del_curve;
SketcherCurveUp *curve_up;
SketcherCurveDn *curve_dn;
SketcherCurveWidth *curve_width;
+ SketcherAliasing *aliasing;
SketcherCurveList *curve_list;
SketcherResetCurves *reset_curves;
+ SketcherHelp *help;
SketcherResetPoints *reset_points;
SketcherDrag *drag;
float projector_x, projector_y, projector_z;
int track_w, track_h;
int new_points;
- float cursor_x, cursor_y;
+ int cursor_x, cursor_y;
float output_x, output_y;
+ float track_x, track_y;
int state, dragging;
int pending_motion, pending_config;
+ int helped, help_y, help_h;
XEvent motion_event;
float last_x, last_y;
+ int64_t last_time;
BC_Title *notes0, *notes1, *notes2, *notes3;
};
#endif