summaryrefslogtreecommitdiffstats
path: root/src/ui/tool
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-13 16:13:17 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-13 16:13:17 +0000
commitfbdc8b84ff670c684dafc7d7d403ed01e7077e70 (patch)
tree964a82e4e94d8d6602e90893ac51ac9e2f7ec362 /src/ui/tool
parentMade factory a template. (diff)
downloadinkscape-fbdc8b84ff670c684dafc7d7d403ed01e7077e70.tar.gz
inkscape-fbdc8b84ff670c684dafc7d7d403ed01e7077e70.zip
Replaced casting macros for EventContext tree; added contructors.
(bzr r11608.1.96)
Diffstat (limited to 'src/ui/tool')
-rw-r--r--src/ui/tool/node-tool.cpp16
-rw-r--r--src/ui/tool/node-tool.h7
2 files changed, 21 insertions, 2 deletions
diff --git a/src/ui/tool/node-tool.cpp b/src/ui/tool/node-tool.cpp
index 8887d4334..e30dde1ae 100644
--- a/src/ui/tool/node-tool.cpp
+++ b/src/ui/tool/node-tool.cpp
@@ -124,6 +124,21 @@ void handleControlUiStyleChange(InkNodeTool *nt);
//} // anonymous namespace
+
+#include "sp-factory.h"
+
+namespace {
+ SPEventContext* createNodesContext() {
+ return new InkNodeTool();
+ }
+
+ bool nodesContextRegistered = ToolFactory::instance().registerObject("/tools/nodes", createNodesContext);
+}
+
+const std::string& CInkNodeTool::getPrefsPath() {
+ return InkNodeTool::prefsPath;
+}
+
const std::string InkNodeTool::prefsPath = "/tools/nodes";
G_DEFINE_TYPE(InkNodeTool, ink_node_tool, SP_TYPE_EVENT_CONTEXT);
@@ -152,6 +167,7 @@ InkNodeTool::InkNodeTool() : SPEventContext() {
nt->cinknodetool = new CInkNodeTool(nt);
delete nt->ceventcontext;
nt->ceventcontext = nt->cinknodetool;
+ types.insert(typeid(InkNodeTool));
nt->show_handles = 0;
nt->single_node_transform_handles = 0;
diff --git a/src/ui/tool/node-tool.h b/src/ui/tool/node-tool.h
index b5ce65513..3de68d535 100644
--- a/src/ui/tool/node-tool.h
+++ b/src/ui/tool/node-tool.h
@@ -17,10 +17,12 @@
#include "event-context.h"
#define INK_TYPE_NODE_TOOL (ink_node_tool_get_type ())
-#define INK_NODE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INK_TYPE_NODE_TOOL, InkNodeTool))
+//#define INK_NODE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INK_TYPE_NODE_TOOL, InkNodeTool))
#define INK_NODE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INK_TYPE_NODE_TOOL, InkNodeToolClass))
-#define INK_IS_NODE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INK_TYPE_NODE_TOOL))
+//#define INK_IS_NODE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INK_TYPE_NODE_TOOL))
#define INK_IS_NODE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), INK_TYPE_NODE_TOOL))
+#define INK_NODE_TOOL(obj) ((InkNodeTool*)obj)
+#define INK_IS_NODE_TOOL(obj) (((SPEventContext*)obj)->types.count(typeid(InkNodeTool)))
namespace Inkscape {
@@ -91,6 +93,7 @@ public:
virtual gint root_handler(GdkEvent* event);
virtual gint item_handler(SPItem* item, GdkEvent* event);
+ virtual const std::string& getPrefsPath();
private:
InkNodeTool* inknodetool;
};