diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-04-13 16:13:17 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-04-13 16:13:17 +0000 |
| commit | fbdc8b84ff670c684dafc7d7d403ed01e7077e70 (patch) | |
| tree | 964a82e4e94d8d6602e90893ac51ac9e2f7ec362 /src/ui/tool | |
| parent | Made factory a template. (diff) | |
| download | inkscape-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.cpp | 16 | ||||
| -rw-r--r-- | src/ui/tool/node-tool.h | 7 |
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; }; |
