Code

Fix multiple minor problems in the node tool
[inkscape.git] / src / ui / tool / node-tool.h
1 /** @file
2  * @brief New node tool with support for multiple path editing
3  */
4 /* Authors:
5  *   Krzysztof KosiƄski <tweenk@gmail.com>
6  *
7  * Copyright (C) 2009 Authors
8  * Released under GNU GPL, read the file 'COPYING' for more information
9  */
11 #ifndef SEEN_UI_TOOL_NODE_TOOL_H
12 #define SEEN_UI_TOOL_NODE_TOOL_H
14 #include <memory>
15 #include <glib.h>
16 #include <sigc++/sigc++.h>
17 #include "event-context.h"
18 #include "forward.h"
19 #include "display/display-forward.h"
20 #include "ui/tool/node-types.h"
22 #define INK_TYPE_NODE_TOOL               (ink_node_tool_get_type ())
23 #define INK_NODE_TOOL(obj)            (GTK_CHECK_CAST ((obj), INK_TYPE_NODE_TOOL, InkNodeTool))
24 #define INK_NODE_TOOL_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), INK_TYPE_NODE_TOOL, InkNodeToolClass))
25 #define INK_IS_NODE_TOOL(obj)         (GTK_CHECK_TYPE ((obj), INK_TYPE_NODE_TOOL))
26 #define INK_IS_NODE_TOOL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), INK_TYPE_NODE_TOOL))
28 class InkNodeTool;
29 class InkNodeToolClass;
31 namespace Inkscape {
32 namespace UI {
33 class MultiPathManipulator;
34 class ControlPointSelection;
35 class Selector;
36 struct PathSharedData;
37 }
38 }
40 typedef std::auto_ptr<Inkscape::UI::MultiPathManipulator> MultiPathPtr;
41 typedef std::auto_ptr<Inkscape::UI::ControlPointSelection> CSelPtr;
42 typedef std::auto_ptr<Inkscape::UI::Selector> SelectorPtr;
43 typedef std::auto_ptr<Inkscape::UI::PathSharedData> PathSharedDataPtr;
45 struct InkNodeTool : public SPEventContext
46 {
47     sigc::connection _selection_changed_connection;
48     sigc::connection _mouseover_changed_connection;
49     sigc::connection _selection_modified_connection;
50     Inkscape::MessageContext *_node_message_context;
51     SPItem *flashed_item;
52     Inkscape::Display::TemporaryItem *flash_tempitem;
53     CSelPtr _selected_nodes;
54     MultiPathPtr _multipath;
55     SelectorPtr _selector;
56     PathSharedDataPtr _path_data;
57     SPCanvasGroup *_transform_handle_group;
58     SPItem *_last_over;
60     unsigned cursor_drag : 1;
61     unsigned show_outline : 1;
62     unsigned live_outline : 1;
63     unsigned live_objects : 1;
64     unsigned show_path_direction : 1;
65     unsigned show_transform_handles : 1;
66     unsigned single_node_transform_handles : 1;
67     unsigned edit_clipping_paths : 1;
68     unsigned edit_masks : 1;
69 };
71 struct InkNodeToolClass {
72         SPEventContextClass parent_class;
73 };
75 GType ink_node_tool_get_type (void);
77 #endif
79 /*
80   Local Variables:
81   mode:c++
82   c-file-style:"stroustrup"
83   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
84   indent-tabs-mode:nil
85   fill-column:99
86   End:
87 */
88 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :