1 #ifndef SP_DYNA_DRAW_CONTEXT_H_SEEN
2 #define SP_DYNA_DRAW_CONTEXT_H_SEEN
4 /*
5 * Handwriting-like drawing mode
6 *
7 * Authors:
8 * Mitsuru Oka <oka326@parkcity.ne.jp>
9 * Lauris Kaplinski <lauris@kaplinski.com>
10 *
11 * The original dynadraw code:
12 * Paul Haeberli <paul@sgi.com>
13 *
14 * Copyright (C) 1998 The Free Software Foundation
15 * Copyright (C) 1999-2002 authors
16 * Copyright (C) 2001-2002 Ximian, Inc.
17 *
18 * Released under GNU GPL, read the file 'COPYING' for more information
19 */
21 #include "common-context.h"
23 #define SP_TYPE_DYNA_DRAW_CONTEXT (sp_dyna_draw_context_get_type())
24 #define SP_DYNA_DRAW_CONTEXT(o) (GTK_CHECK_CAST((o), SP_TYPE_DYNA_DRAW_CONTEXT, SPDynaDrawContext))
25 #define SP_DYNA_DRAW_CONTEXT_CLASS(k) (GTK_CHECK_CLASS_CAST((k), SP_TYPE_DYNA_DRAW_CONTEXT, SPDynaDrawContextClass))
26 #define SP_IS_DYNA_DRAW_CONTEXT(o) (GTK_CHECK_TYPE((o), SP_TYPE_DYNA_DRAW_CONTEXT))
27 #define SP_IS_DYNA_DRAW_CONTEXT_CLASS(k) (GTK_CHECK_CLASS_TYPE((k), SP_TYPE_DYNA_DRAW_CONTEXT))
29 class SPDynaDrawContext;
30 class SPDynaDrawContextClass;
32 #define DDC_MIN_PRESSURE 0.0
33 #define DDC_MAX_PRESSURE 1.0
34 #define DDC_DEFAULT_PRESSURE 1.0
36 #define DDC_MIN_TILT -1.0
37 #define DDC_MAX_TILT 1.0
38 #define DDC_DEFAULT_TILT 0.0
40 struct SPDynaDrawContext : public SPCommonContext {
41 /** newly created object remain selected */
42 bool keep_selected;
44 double hatch_spacing;
45 double hatch_spacing_step;
46 SPItem *hatch_item;
47 Path *hatch_livarot_path;
48 std::list<double> hatch_nearest_past;
49 std::list<double> hatch_pointer_past;
50 NR::Point hatch_last_nearest, hatch_last_pointer;
51 NR::Point hatch_vector_accumulated;
52 bool hatch_escaped;
53 SPCanvasItem *hatch_area;
55 bool trace_bg;
56 };
58 struct SPDynaDrawContextClass : public SPEventContextClass{};
60 GType sp_dyna_draw_context_get_type(void);
62 #endif // SP_DYNA_DRAW_CONTEXT_H_SEEN
64 /*
65 Local Variables:
66 mode:c++
67 c-file-style:"stroustrup"
68 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
69 indent-tabs-mode:nil
70 fill-column:99
71 End:
72 */
73 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :