2.5
authorTon Roosendaal <ton@blender.org>
Sat, 14 Feb 2009 13:18:18 +0000 (13:18 +0000)
committerTon Roosendaal <ton@blender.org>
Sat, 14 Feb 2009 13:18:18 +0000 (13:18 +0000)
Node editor: adding node sends proper redraw now, and calls
the old 'auto connect' to make it link to active node.

source/blender/editors/space_node/node_edit.c
source/blender/editors/space_node/node_header.c
source/blender/editors/space_node/node_intern.h

index 22e90d949e3055f628be765a9a2ed72ccefd49ad..bc9d2c10e21d312d09a1a0603152c5c1f39c1b38 100644 (file)
@@ -204,7 +204,7 @@ bNode *editnode_get_active(bNodeTree *ntree)
                return nodeGetActive(ntree);
 }
 
-static void snode_handle_recalc(bContext *C, SpaceNode *snode)
+void snode_handle_recalc(bContext *C, SpaceNode *snode)
 {
        if(snode->treetype==NTREE_SHADER)
                WM_event_add_notifier(C, NC_MATERIAL|ND_NODES, snode->id);
index fb21b894ce7161ca896aa8b75f64b55227c75555..c7257184c773ca7fad18de9b9d34afe80ca41b1a 100644 (file)
@@ -125,12 +125,8 @@ static uiBlock *node_selectmenu(bContext *C, ARegion *ar, void *arg_unused)
 
 void do_node_addmenu(bContext *C, void *arg, int event)
 {
-       // XXX enable
-       // ScrArea *curarea= CTX_wm_area(C);
        SpaceNode *snode= (SpaceNode*)CTX_wm_space_data(C);
        bNode *node;
-       //float locx, locy;
-       //short mval[2];
        
        /* store selection in temp test flag */
        for(node= snode->edittree->nodes.first; node; node= node->next) {
@@ -138,15 +134,12 @@ void do_node_addmenu(bContext *C, void *arg, int event)
                else node->flag &= ~NODE_TEST;
        }
        
-       // toolbox_mousepos(mval, 0 ); /* get initial mouse position */
-       // areamouseco_to_ipoco(G.v2d, mval, &locx, &locy);
-       // NODE_FIX_ME
-       node= node_add_node(snode, CTX_data_scene(C), event, 0.0, 0.0);
+       node= node_add_node(snode, CTX_data_scene(C), event, snode->mx, snode->my);
        
        /* uses test flag */
-       // XXX snode_autoconnect(snode, node, NODE_TEST);
+       snode_autoconnect(snode, node, NODE_TEST);
                
-       // XXX addqueue(curarea->win, UI_BUT_EVENT, B_NODE_TREE_EXEC);
+       snode_handle_recalc(C, snode);
 }
 
 static void node_make_addmenu(bContext *C, int nodeclass, uiBlock *block)
index 069f25fdbdbf4604732ad78bf38b68c63bf7c4de..b8fbed6db167e7d874e106598ede886b497b5def 100644 (file)
@@ -67,6 +67,7 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa
 void draw_nodespace_back_pix(ScrArea *sa, SpaceNode *snode);
 
 /* node_edit.c */
+void snode_handle_recalc(bContext *C, SpaceNode *snode);
 bNode *next_node(bNodeTree *ntree);
 bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy);
 void snode_set_context(SpaceNode *snode, Scene *scene);
@@ -79,6 +80,7 @@ void node_composit_default(Scene *sce);
 void node_texture_default(Tex *tx);
 void snode_composite_job(const struct bContext *C, ScrArea *sa);
 bNode *snode_get_editgroup(SpaceNode *snode);
+void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag);
 
 void NODE_OT_link(struct wmOperatorType *ot);
 void NODE_OT_delete_selection(struct wmOperatorType *ot);