summaryrefslogtreecommitdiffstats
path: root/src/tweak-context.h
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2007-08-08 07:33:15 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2007-08-08 07:33:15 +0000
commitfe2e11977cd38b6fd43bcfc1a0da47358b06fd8a (patch)
treeab9ea70e13f54424f7d7cfe6cbcfa30a20c6f63f /src/tweak-context.h
parentnew methods for tweaking, modeled after MakeOffset (diff)
downloadinkscape-fe2e11977cd38b6fd43bcfc1a0da47358b06fd8a.tar.gz
inkscape-fe2e11977cd38b6fd43bcfc1a0da47358b06fd8a.zip
tweak tool
(bzr r3423)
Diffstat (limited to 'src/tweak-context.h')
-rw-r--r--src/tweak-context.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/tweak-context.h b/src/tweak-context.h
new file mode 100644
index 000000000..14297b5a2
--- /dev/null
+++ b/src/tweak-context.h
@@ -0,0 +1,88 @@
+#ifndef __SP_TWEAK_CONTEXT_H__
+#define __SP_TWEAK_CONTEXT_H__
+
+/*
+ * tweaking paths without node editing
+ *
+ * Authors:
+ * bulia byak
+ *
+ * Copyright (C) 2007 authors
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#include "display/curve.h"
+#include "event-context.h"
+#include <display/display-forward.h>
+#include <libnr/nr-point.h>
+
+#define SP_TYPE_TWEAK_CONTEXT (sp_tweak_context_get_type())
+#define SP_TWEAK_CONTEXT(o) (GTK_CHECK_CAST((o), SP_TYPE_TWEAK_CONTEXT, SPTweakContext))
+#define SP_TWEAK_CONTEXT_CLASS(k) (GTK_CHECK_CLASS_CAST((k), SP_TYPE_TWEAK_CONTEXT, SPTweakContextClass))
+#define SP_IS_TWEAK_CONTEXT(o) (GTK_CHECK_TYPE((o), SP_TYPE_TWEAK_CONTEXT))
+#define SP_IS_TWEAK_CONTEXT_CLASS(k) (GTK_CHECK_CLASS_TYPE((k), SP_TYPE_TWEAK_CONTEXT))
+
+class SPTweakContext;
+class SPTweakContextClass;
+
+#define SAMPLING_SIZE 8 /* fixme: ?? */
+
+#define TC_MIN_PRESSURE 0.0
+#define TC_MAX_PRESSURE 1.0
+#define TC_DEFAULT_PRESSURE 0.4
+
+enum {
+ TWEAK_MODE_PUSH,
+ TWEAK_MODE_SUCK,
+ TWEAK_MODE_BLOW,
+ TWEAK_MODE_ROUGHEN
+};
+
+struct SPTweakContext
+{
+ SPEventContext event_context;
+
+ /* extended input data */
+ gdouble pressure;
+
+ /* attributes */
+ guint dragging : 1; /* mouse state: mouse is dragging */
+ guint usepressure : 1;
+ guint usetilt : 1;
+
+ double width;
+ double force;
+ double fidelity;
+
+ gint mode;
+
+ Inkscape::MessageContext *_message_context;
+
+ bool is_drawing;
+
+ bool is_dilating;
+ bool has_dilated;
+ NR::Point last_push;
+ SPCanvasItem *dilate_area;
+};
+
+struct SPTweakContextClass
+{
+ SPEventContextClass parent_class;
+};
+
+GtkType sp_tweak_context_get_type(void);
+
+#endif
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :