summaryrefslogtreecommitdiffstats
path: root/src/ui/tool/node-tool.h
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2009-11-29 19:05:54 +0000
committerKrzysztof Kosiński <tweenk.pl@gmail.com>2009-11-29 19:05:54 +0000
commit2642ea862ab9749236d41ca96f109b46e27af9ce (patch)
treec714ce9b38e9b75680b61e7e0992aa2ab40e2584 /src/ui/tool/node-tool.h
parentDeprecation warning fix on xcf export (diff)
parentFirst GSoC node tool commit to Bazaar (diff)
downloadinkscape-2642ea862ab9749236d41ca96f109b46e27af9ce.tar.gz
inkscape-2642ea862ab9749236d41ca96f109b46e27af9ce.zip
GSoC node tool
(bzr r8846.2.1)
Diffstat (limited to 'src/ui/tool/node-tool.h')
-rw-r--r--src/ui/tool/node-tool.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/ui/tool/node-tool.h b/src/ui/tool/node-tool.h
new file mode 100644
index 000000000..f47ea0ccb
--- /dev/null
+++ b/src/ui/tool/node-tool.h
@@ -0,0 +1,84 @@
+/** @file
+ * @brief New node tool with support for multiple path editing
+ */
+/* Authors:
+ * Krzysztof Kosiński <tweenk@gmail.com>
+ *
+ * Copyright (C) 2009 Authors
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#ifndef SEEN_UI_TOOL_NODE_TOOL_H
+#define SEEN_UI_TOOL_NODE_TOOL_H
+
+#include <memory>
+#include <glib.h>
+#include <sigc++/sigc++.h>
+#include "event-context.h"
+#include "forward.h"
+#include "display/display-forward.h"
+#include "ui/tool/node-types.h"
+
+#define INK_TYPE_NODE_TOOL (ink_node_tool_get_type ())
+#define INK_NODE_TOOL(obj) (GTK_CHECK_CAST ((obj), INK_TYPE_NODE_TOOL, InkNodeTool))
+#define INK_NODE_TOOL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), INK_TYPE_NODE_TOOL, InkNodeToolClass))
+#define INK_IS_NODE_TOOL(obj) (GTK_CHECK_TYPE ((obj), INK_TYPE_NODE_TOOL))
+#define INK_IS_NODE_TOOL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), INK_TYPE_NODE_TOOL))
+
+class InkNodeTool;
+class InkNodeToolClass;
+
+namespace Inkscape {
+namespace UI {
+class MultiPathManipulator;
+class ControlPointSelection;
+class Selector;
+struct PathSharedData;
+}
+}
+
+typedef std::auto_ptr<Inkscape::UI::MultiPathManipulator> MultiPathPtr;
+typedef std::auto_ptr<Inkscape::UI::ControlPointSelection> CSelPtr;
+typedef std::auto_ptr<Inkscape::UI::Selector> SelectorPtr;
+typedef std::auto_ptr<Inkscape::UI::PathSharedData> PathSharedDataPtr;
+
+struct InkNodeTool : public SPEventContext
+{
+ sigc::connection _selection_changed_connection;
+ sigc::connection _mouseover_changed_connection;
+ Inkscape::MessageContext *_node_message_context;
+ SPItem *flashed_item;
+ Inkscape::Display::TemporaryItem *flash_tempitem;
+ CSelPtr _selected_nodes;
+ MultiPathPtr _multipath;
+ SelectorPtr _selector;
+ PathSharedDataPtr _path_data;
+ SPCanvasGroup *_transform_handle_group;
+
+ unsigned cursor_drag : 1;
+ unsigned show_outline : 1;
+ unsigned show_path_direction : 1;
+ unsigned show_transform_handles : 1;
+ unsigned single_node_transform_handles : 1;
+ unsigned edit_clipping_paths : 1;
+ unsigned edit_masks : 1;
+};
+
+struct InkNodeToolClass {
+ SPEventContextClass parent_class;
+};
+
+GType ink_node_tool_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 :